Repository navigation
Releases: uhyo/funstack-ui
Releases · uhyo/funstack-ui
Release list
0.1.0-alpha.2
What's Changed
Features
- Add the
Selectcomponent: a real<select>progressively enhanced with customizable select (appearance: base-select). Parts:Root,Trigger,Value(<selectedcontent>),Option,Group/GroupLabel,Separator. ItsvalueActionruns in a transition, shows the optimistic value, and works with forms (including form reset) and server rendering / hydration. - Add the
Comboboxcomponent, following the WAI-ARIA APG pattern: an<input role="combobox">with a listbox in apopover="auto"popup andaria-activedescendantfocus.- Typing goes through the urgent
inputValueChangeAction. Results are deferred and exposedata-stale/aria-busy. - A
Statuspart inside the List marks loading. - Result counts are announced in English by default, and you can override the text with
announce. - Other options:
autoHighlight, and a hidden form input whennameis set.
- Typing goes through the urgent
- Export the
UrgentChangeActiontype.
Full Changelog: 0.1.0-alpha.1...0.1.0-alpha.2
0.1.0-alpha.1
What's Changed
Features
- Add the
Popovercomponent:<dialog popover="auto">driven by invoker commands (commandfor), with CSS anchor positioning, browser-owned light dismiss, andPopover.Closerunning an action before closing. - Add the
Menucomponent, an APG menu button on the Popover API:Item,CheckboxItem,RadioGroup/RadioItem,Group/GroupLabel,Separatorand submenus (SubmenuTrigger). Item actions run in a transition and the menu closes after the action settles. Includes keyboard navigation, typeahead, RTL-aware submenu keys and hover intent. - Add the
CheckboxGroupcomponent: a<fieldset>group withvalueAction, nativerequiredwhile nothing is checked, and a tri-stateParentcheckbox. Popover.Close,Dialog.CloseandMenu.Itemshare one action trigger. A rejection from a superseded action now reaches the Error Boundary, and a close whose action settles after the user re-opened the surface is dropped.
Fixes
Tabs: the experimentalfocusgroupprop now detects support through thefocusGroupIDL attribute and uses the browser's native arrow-key handling (#43).Dialog: a pendingDialog.Closeno longer closes a dialog that was dismissed and re-opened in the meantime, including JS-free/native opens.
Full Changelog: 0.1.0-alpha.0...0.1.0-alpha.1
0.1.0-alpha.0
The first alpha of FUNSTACK UI, a headless React UI library and the first Async React-native UI library: Suspense-native, transition-by-default, action props instead of event handlers, <ViewTransition> built in, and modern HTML/CSS first.
npm install @funstack/ui@alphaRequires React >=19.3. Docs: https://ui.funstack.work
Components
- Toggle: a pressed/unpressed button with
pressedChangeAction, optimistic state and pending state. - Tabs: roving-focus tabs with
valueChangeAction. Panels usehidden="until-found", so find-in-page reveals them. - Accordion: built on
<details>/<summary>. Works without JavaScript (Server Component friendly) and supports async expand actions. - Tooltip: built on the Popover API (
popover="hint"), CSS anchor positioning andinterestfor. - Dialog: built on native
<dialog>, modal or non-modal, with light dismiss.Dialog.Formcan close on settle, and nested confirm dialogs are supported. - Switch, Checkbox (including indeterminate), RadioGroup: native inputs with action props, optimistic and pending state, and full form participation (submission, reset,
required).
Highlights
- Every change goes through an action prop run inside a transition, and pending state is exposed as data attributes and render state.
- Server Functions can be passed directly as action props.
- An opt-in
transitionprop adds a<ViewTransition>boundary. - Tested in Chromium, Firefox and WebKit.
This is an experimental alpha, so APIs may change in any release.