@krelborn/stylesui 0.0.0-stage → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +74 -0
- package/README.md +129 -2
- package/dist/accessibility/RequiredAccessibleName.d.ts +26 -0
- package/dist/accessibility/idSegment.d.ts +7 -0
- package/dist/accessibility/idSegment.js +5 -0
- package/dist/accessibility/index.d.ts +2 -0
- package/dist/collections/index.d.ts +7 -0
- package/dist/collections/optionId.d.ts +8 -0
- package/dist/collections/optionId.js +6 -0
- package/dist/collections/renderedOptions.d.ts +37 -0
- package/dist/collections/renderedOptions.js +17 -0
- package/dist/collections/targetIndexForKey.d.ts +45 -0
- package/dist/collections/targetIndexForKey.js +16 -0
- package/dist/collections/typeAhead.d.ts +43 -0
- package/dist/collections/typeAhead.js +18 -0
- package/dist/components/Accordion/Accordion.css +1 -0
- package/dist/components/Accordion/Accordion.d.ts +90 -0
- package/dist/components/Accordion/Accordion.js +47 -0
- package/dist/components/Accordion/Accordion.module.js +19 -0
- package/dist/components/Accordion/AccordionContext.d.ts +40 -0
- package/dist/components/Accordion/AccordionContext.js +4 -0
- package/dist/components/Accordion/AccordionItem.d.ts +51 -0
- package/dist/components/Accordion/AccordionItem.js +69 -0
- package/dist/components/Accordion/AccordionToggleContent.d.ts +30 -0
- package/dist/components/Accordion/AccordionToggleContent.js +44 -0
- package/dist/components/Accordion/accordionIds.d.ts +24 -0
- package/dist/components/Accordion/accordionIds.js +12 -0
- package/dist/components/Accordion/index.d.ts +4 -0
- package/dist/components/Accordion/useAccordionContext.d.ts +9 -0
- package/dist/components/Accordion/useAccordionContext.js +10 -0
- package/dist/components/Accordion/useFindablePanel.d.ts +25 -0
- package/dist/components/Accordion/useFindablePanel.js +36 -0
- package/dist/components/Accordion/useFragmentTargetReveal.d.ts +27 -0
- package/dist/components/Accordion/useFragmentTargetReveal.js +36 -0
- package/dist/components/Accordion/useHasOpened.d.ts +7 -0
- package/dist/components/Accordion/useHasOpened.js +7 -0
- package/dist/components/Alert/Alert.css +1 -0
- package/dist/components/Alert/Alert.d.ts +47 -0
- package/dist/components/Alert/Alert.js +27 -0
- package/dist/components/Alert/Alert.module.js +8 -0
- package/dist/components/Alert/AlertIcon.d.ts +14 -0
- package/dist/components/Alert/AlertIcon.js +42 -0
- package/dist/components/Alert/index.d.ts +2 -0
- package/dist/components/Avatar/Avatar.css +1 -0
- package/dist/components/Avatar/Avatar.d.ts +33 -0
- package/dist/components/Avatar/Avatar.js +26 -0
- package/dist/components/Avatar/Avatar.module.js +6 -0
- package/dist/components/Avatar/index.d.ts +2 -0
- package/dist/components/Avatar/initialsOf.d.ts +9 -0
- package/dist/components/Avatar/initialsOf.js +9 -0
- package/dist/components/AvatarGroup/AvatarGroup.css +1 -0
- package/dist/components/AvatarGroup/AvatarGroup.d.ts +30 -0
- package/dist/components/AvatarGroup/AvatarGroup.js +33 -0
- package/dist/components/AvatarGroup/AvatarGroup.module.js +6 -0
- package/dist/components/AvatarGroup/index.d.ts +2 -0
- package/dist/components/Badge/Badge.css +1 -0
- package/dist/components/Badge/Badge.d.ts +36 -0
- package/dist/components/Badge/Badge.js +15 -0
- package/dist/components/Badge/Badge.module.js +3 -0
- package/dist/components/Badge/index.d.ts +2 -0
- package/dist/components/Box/Box.css +1 -0
- package/dist/components/Box/Box.d.ts +31 -0
- package/dist/components/Box/Box.js +17 -0
- package/dist/components/Box/Box.module.js +3 -0
- package/dist/components/Box/index.d.ts +2 -0
- package/dist/components/Button/Button.css +1 -0
- package/dist/components/Button/Button.d.ts +42 -0
- package/dist/components/Button/Button.js +24 -0
- package/dist/components/Button/Button.module.js +6 -0
- package/dist/components/Button/index.d.ts +2 -0
- package/dist/components/Card/Card.css +1 -0
- package/dist/components/Card/Card.d.ts +24 -0
- package/dist/components/Card/Card.js +14 -0
- package/dist/components/Card/Card.module.js +3 -0
- package/dist/components/Card/index.d.ts +2 -0
- package/dist/components/Center/Center.css +1 -0
- package/dist/components/Center/Center.d.ts +34 -0
- package/dist/components/Center/Center.js +19 -0
- package/dist/components/Center/Center.module.js +3 -0
- package/dist/components/Center/index.d.ts +2 -0
- package/dist/components/Checkbox/Checkbox.d.ts +23 -0
- package/dist/components/Checkbox/Checkbox.js +12 -0
- package/dist/components/Checkbox/index.d.ts +2 -0
- package/dist/components/ChoiceControl/ChoiceControl.css +1 -0
- package/dist/components/ChoiceControl/ChoiceControl.d.ts +21 -0
- package/dist/components/ChoiceControl/ChoiceControl.js +39 -0
- package/dist/components/ChoiceControl/ChoiceControl.module.js +8 -0
- package/dist/components/ChoiceControl/index.d.ts +1 -0
- package/dist/components/Cluster/Cluster.d.ts +29 -0
- package/dist/components/Cluster/Cluster.js +13 -0
- package/dist/components/Cluster/index.d.ts +2 -0
- package/dist/components/Code/Code.css +1 -0
- package/dist/components/Code/Code.d.ts +13 -0
- package/dist/components/Code/Code.js +19 -0
- package/dist/components/Code/Code.module.js +3 -0
- package/dist/components/Code/index.d.ts +2 -0
- package/dist/components/Combobox/Autocomplete.d.ts +83 -0
- package/dist/components/Combobox/Autocomplete.js +102 -0
- package/dist/components/Combobox/Combobox.css +1 -0
- package/dist/components/Combobox/Combobox.d.ts +59 -0
- package/dist/components/Combobox/Combobox.js +82 -0
- package/dist/components/Combobox/Combobox.module.js +17 -0
- package/dist/components/Combobox/ComboboxContext.d.ts +88 -0
- package/dist/components/Combobox/ComboboxContext.js +4 -0
- package/dist/components/Combobox/ComboboxFieldValue.d.ts +17 -0
- package/dist/components/Combobox/ComboboxFieldValue.js +33 -0
- package/dist/components/Combobox/ComboboxOption.d.ts +51 -0
- package/dist/components/Combobox/ComboboxOption.js +74 -0
- package/dist/components/Combobox/ComboboxOptionContent.d.ts +32 -0
- package/dist/components/Combobox/ComboboxOptionContent.js +51 -0
- package/dist/components/Combobox/ComboboxPopup.d.ts +50 -0
- package/dist/components/Combobox/ComboboxPopup.js +59 -0
- package/dist/components/Combobox/autocompleteKeys.d.ts +31 -0
- package/dist/components/Combobox/autocompleteKeys.js +25 -0
- package/dist/components/Combobox/comboboxKeys.d.ts +10 -0
- package/dist/components/Combobox/comboboxKeys.js +22 -0
- package/dist/components/Combobox/containsText.d.ts +9 -0
- package/dist/components/Combobox/containsText.js +8 -0
- package/dist/components/Combobox/index.d.ts +6 -0
- package/dist/components/Combobox/isAltArrow.d.ts +9 -0
- package/dist/components/Combobox/isAltArrow.js +5 -0
- package/dist/components/Combobox/isOptionShown.d.ts +10 -0
- package/dist/components/Combobox/isOptionShown.js +5 -0
- package/dist/components/Combobox/useAutocompleteText.d.ts +56 -0
- package/dist/components/Combobox/useAutocompleteText.js +27 -0
- package/dist/components/Combobox/useComboboxContext.d.ts +9 -0
- package/dist/components/Combobox/useComboboxContext.js +10 -0
- package/dist/components/Combobox/useComboboxList.d.ts +129 -0
- package/dist/components/Combobox/useComboboxList.js +138 -0
- package/dist/components/Combobox/useComboboxOption.d.ts +35 -0
- package/dist/components/Combobox/useComboboxOption.js +46 -0
- package/dist/components/Combobox/useComboboxSelection.d.ts +45 -0
- package/dist/components/Combobox/useComboboxSelection.js +17 -0
- package/dist/components/Combobox/useResultsAnnouncement.d.ts +23 -0
- package/dist/components/Combobox/useResultsAnnouncement.js +24 -0
- package/dist/components/ContextMenu/index.d.ts +2 -0
- package/dist/components/ContextMenu/useContextMenu.d.ts +112 -0
- package/dist/components/ContextMenu/useContextMenu.js +202 -0
- package/dist/components/ContextMenu/watchLongPress.d.ts +35 -0
- package/dist/components/ContextMenu/watchLongPress.js +38 -0
- package/dist/components/Counter/Counter.css +1 -0
- package/dist/components/Counter/Counter.d.ts +39 -0
- package/dist/components/Counter/Counter.js +18 -0
- package/dist/components/Counter/Counter.module.js +3 -0
- package/dist/components/Counter/index.d.ts +2 -0
- package/dist/components/Cover/Cover.css +1 -0
- package/dist/components/Cover/Cover.d.ts +40 -0
- package/dist/components/Cover/Cover.js +29 -0
- package/dist/components/Cover/Cover.module.js +6 -0
- package/dist/components/Cover/index.d.ts +2 -0
- package/dist/components/Divider/Divider.css +1 -0
- package/dist/components/Divider/Divider.d.ts +25 -0
- package/dist/components/Divider/Divider.js +15 -0
- package/dist/components/Divider/Divider.module.js +3 -0
- package/dist/components/Divider/index.d.ts +2 -0
- package/dist/components/Field/Field.css +1 -0
- package/dist/components/Field/Field.d.ts +49 -0
- package/dist/components/Field/Field.js +49 -0
- package/dist/components/Field/Field.module.js +8 -0
- package/dist/components/Field/index.d.ts +2 -0
- package/dist/components/Fieldset/Fieldset.css +1 -0
- package/dist/components/Fieldset/Fieldset.d.ts +35 -0
- package/dist/components/Fieldset/Fieldset.js +64 -0
- package/dist/components/Fieldset/Fieldset.module.js +8 -0
- package/dist/components/Fieldset/index.d.ts +2 -0
- package/dist/components/Frame/Frame.css +1 -0
- package/dist/components/Frame/Frame.d.ts +23 -0
- package/dist/components/Frame/Frame.js +16 -0
- package/dist/components/Frame/Frame.module.js +3 -0
- package/dist/components/Frame/index.d.ts +2 -0
- package/dist/components/Grid/Grid.css +1 -0
- package/dist/components/Grid/Grid.d.ts +25 -0
- package/dist/components/Grid/Grid.js +22 -0
- package/dist/components/Grid/Grid.module.js +3 -0
- package/dist/components/Grid/index.d.ts +2 -0
- package/dist/components/Heading/Heading.css +1 -0
- package/dist/components/Heading/Heading.d.ts +39 -0
- package/dist/components/Heading/Heading.js +23 -0
- package/dist/components/Heading/Heading.module.js +3 -0
- package/dist/components/Heading/index.d.ts +2 -0
- package/dist/components/HorizontalFlow/HorizontalFlow.css +1 -0
- package/dist/components/HorizontalFlow/HorizontalFlow.d.ts +30 -0
- package/dist/components/HorizontalFlow/HorizontalFlow.js +30 -0
- package/dist/components/HorizontalFlow/HorizontalFlow.module.js +3 -0
- package/dist/components/HorizontalFlow/index.d.ts +2 -0
- package/dist/components/Icon/AddIcon.d.ts +11 -0
- package/dist/components/Icon/AddIcon.js +21 -0
- package/dist/components/Icon/CheckIcon.d.ts +11 -0
- package/dist/components/Icon/CheckIcon.js +18 -0
- package/dist/components/Icon/ChevronDownIcon.d.ts +11 -0
- package/dist/components/Icon/ChevronDownIcon.js +18 -0
- package/dist/components/Icon/ChevronRightIcon.d.ts +11 -0
- package/dist/components/Icon/ChevronRightIcon.js +19 -0
- package/dist/components/Icon/CloseIcon.d.ts +12 -0
- package/dist/components/Icon/CloseIcon.js +21 -0
- package/dist/components/Icon/ColorModeIcon.d.ts +12 -0
- package/dist/components/Icon/ColorModeIcon.js +36 -0
- package/dist/components/Icon/DeleteIcon.d.ts +11 -0
- package/dist/components/Icon/DeleteIcon.js +36 -0
- package/dist/components/Icon/Icon.css +1 -0
- package/dist/components/Icon/Icon.d.ts +40 -0
- package/dist/components/Icon/Icon.js +27 -0
- package/dist/components/Icon/Icon.module.js +6 -0
- package/dist/components/Icon/InfoIcon.d.ts +11 -0
- package/dist/components/Icon/InfoIcon.js +30 -0
- package/dist/components/Icon/MenuIcon.d.ts +12 -0
- package/dist/components/Icon/MenuIcon.js +28 -0
- package/dist/components/Icon/MoreHorizontalIcon.d.ts +11 -0
- package/dist/components/Icon/MoreHorizontalIcon.js +34 -0
- package/dist/components/Icon/MoreVerticalIcon.d.ts +11 -0
- package/dist/components/Icon/MoreVerticalIcon.js +34 -0
- package/dist/components/Icon/PaletteIcon.d.ts +12 -0
- package/dist/components/Icon/PaletteIcon.js +48 -0
- package/dist/components/Icon/RefreshIcon.d.ts +13 -0
- package/dist/components/Icon/RefreshIcon.js +32 -0
- package/dist/components/Icon/RemoveIcon.d.ts +11 -0
- package/dist/components/Icon/RemoveIcon.js +18 -0
- package/dist/components/Icon/SendIcon.d.ts +11 -0
- package/dist/components/Icon/SendIcon.js +22 -0
- package/dist/components/Icon/index.d.ts +16 -0
- package/dist/components/IconButton/IconButton.css +1 -0
- package/dist/components/IconButton/IconButton.d.ts +45 -0
- package/dist/components/IconButton/IconButton.js +40 -0
- package/dist/components/IconButton/IconButton.module.js +7 -0
- package/dist/components/IconButton/index.d.ts +2 -0
- package/dist/components/Kbd/Kbd.css +1 -0
- package/dist/components/Kbd/Kbd.d.ts +13 -0
- package/dist/components/Kbd/Kbd.js +19 -0
- package/dist/components/Kbd/Kbd.module.js +3 -0
- package/dist/components/Kbd/index.d.ts +2 -0
- package/dist/components/Link/Link.css +1 -0
- package/dist/components/Link/Link.d.ts +52 -0
- package/dist/components/Link/Link.js +26 -0
- package/dist/components/Link/Link.module.js +3 -0
- package/dist/components/Link/index.d.ts +2 -0
- package/dist/components/Listbox/Listbox.css +1 -0
- package/dist/components/Listbox/Listbox.d.ts +46 -0
- package/dist/components/Listbox/Listbox.js +55 -0
- package/dist/components/Listbox/Listbox.module.js +6 -0
- package/dist/components/Listbox/ListboxContext.d.ts +38 -0
- package/dist/components/Listbox/ListboxContext.js +4 -0
- package/dist/components/Listbox/ListboxOption.d.ts +31 -0
- package/dist/components/Listbox/ListboxOption.js +42 -0
- package/dist/components/Listbox/index.d.ts +4 -0
- package/dist/components/Listbox/useListbox.d.ts +54 -0
- package/dist/components/Listbox/useListbox.js +103 -0
- package/dist/components/Listbox/useListboxContext.d.ts +9 -0
- package/dist/components/Listbox/useListboxContext.js +10 -0
- package/dist/components/Menu/Menu.d.ts +70 -0
- package/dist/components/Menu/Menu.js +76 -0
- package/dist/components/Menu/MenuContext.d.ts +29 -0
- package/dist/components/Menu/MenuContext.js +4 -0
- package/dist/components/Menu/MenuGroup.d.ts +22 -0
- package/dist/components/Menu/MenuGroup.js +32 -0
- package/dist/components/Menu/MenuItem.d.ts +77 -0
- package/dist/components/Menu/MenuItem.js +54 -0
- package/dist/components/Menu/MenuItemCheckbox.d.ts +61 -0
- package/dist/components/Menu/MenuItemCheckbox.js +37 -0
- package/dist/components/Menu/MenuItemRadio.d.ts +47 -0
- package/dist/components/Menu/MenuItemRadio.js +39 -0
- package/dist/components/Menu/MenuRadioGroup.d.ts +34 -0
- package/dist/components/Menu/MenuRadioGroup.js +27 -0
- package/dist/components/Menu/MenuRadioGroupContext.d.ts +17 -0
- package/dist/components/Menu/MenuRadioGroupContext.js +4 -0
- package/dist/components/Menu/MenuSeparator.d.ts +16 -0
- package/dist/components/Menu/MenuSeparator.js +20 -0
- package/dist/components/Menu/Submenu.d.ts +36 -0
- package/dist/components/Menu/Submenu.js +122 -0
- package/dist/components/Menu/index.d.ts +18 -0
- package/dist/components/Menu/useMenu.d.ts +18 -0
- package/dist/components/Menu/useMenu.js +20 -0
- package/dist/components/Menu/useMenuButton.d.ts +124 -0
- package/dist/components/Menu/useMenuButton.js +92 -0
- package/dist/components/Menu/useMenuContext.d.ts +9 -0
- package/dist/components/Menu/useMenuContext.js +10 -0
- package/dist/components/Menu/useMenuItemContent.d.ts +55 -0
- package/dist/components/Menu/useMenuItemContent.js +66 -0
- package/dist/components/Menu/useMenuPointer.d.ts +27 -0
- package/dist/components/Menu/useMenuPointer.js +56 -0
- package/dist/components/Menu/useMenuRadioGroupContext.d.ts +9 -0
- package/dist/components/Menu/useMenuRadioGroupContext.js +10 -0
- package/dist/components/MenuSurface/MenuSurface.css +1 -0
- package/dist/components/MenuSurface/MenuSurface.module.js +16 -0
- package/dist/components/Menubar/Menubar.css +1 -0
- package/dist/components/Menubar/Menubar.d.ts +23 -0
- package/dist/components/Menubar/Menubar.js +67 -0
- package/dist/components/Menubar/Menubar.module.js +7 -0
- package/dist/components/Menubar/MenubarContext.d.ts +29 -0
- package/dist/components/Menubar/MenubarContext.js +4 -0
- package/dist/components/Menubar/MenubarMenu.d.ts +26 -0
- package/dist/components/Menubar/MenubarMenu.js +88 -0
- package/dist/components/Menubar/findOpenMenubarItem.d.ts +7 -0
- package/dist/components/Menubar/findOpenMenubarItem.js +6 -0
- package/dist/components/Menubar/index.d.ts +4 -0
- package/dist/components/Menubar/menubarItems.d.ts +7 -0
- package/dist/components/Menubar/menubarItems.js +5 -0
- package/dist/components/Menubar/useMenubarContext.d.ts +9 -0
- package/dist/components/Menubar/useMenubarContext.js +10 -0
- package/dist/components/NavBar/NavBar.css +1 -0
- package/dist/components/NavBar/NavBar.d.ts +53 -0
- package/dist/components/NavBar/NavBar.js +97 -0
- package/dist/components/NavBar/NavBar.module.js +22 -0
- package/dist/components/NavBar/NavBarContext.d.ts +21 -0
- package/dist/components/NavBar/NavBarContext.js +4 -0
- package/dist/components/NavBar/NavBarItem.d.ts +32 -0
- package/dist/components/NavBar/NavBarItem.js +18 -0
- package/dist/components/NavBar/NavBarMenu.d.ts +32 -0
- package/dist/components/NavBar/NavBarMenu.js +84 -0
- package/dist/components/NavBar/NavBarMenuGroup.d.ts +25 -0
- package/dist/components/NavBar/NavBarMenuGroup.js +40 -0
- package/dist/components/NavBar/NavBarMenuItem.d.ts +36 -0
- package/dist/components/NavBar/NavBarMenuItem.js +49 -0
- package/dist/components/NavBar/index.d.ts +10 -0
- package/dist/components/NavBar/isNavBarCollapsed.d.ts +8 -0
- package/dist/components/NavBar/isNavBarCollapsed.js +5 -0
- package/dist/components/NavBar/leavesPageInPlace.d.ts +12 -0
- package/dist/components/NavBar/leavesPageInPlace.js +29 -0
- package/dist/components/NavBar/renderNavBarLink.d.ts +12 -0
- package/dist/components/NavBar/renderNavBarLink.js +16 -0
- package/dist/components/NavBar/useLayoutSwitch.d.ts +26 -0
- package/dist/components/NavBar/useLayoutSwitch.js +25 -0
- package/dist/components/NavBar/useNavBarContext.d.ts +9 -0
- package/dist/components/NavBar/useNavBarContext.js +10 -0
- package/dist/components/NavList/NavList.css +1 -0
- package/dist/components/NavList/NavList.d.ts +20 -0
- package/dist/components/NavList/NavList.js +27 -0
- package/dist/components/NavList/NavList.module.js +11 -0
- package/dist/components/NavList/NavListGroup.d.ts +25 -0
- package/dist/components/NavList/NavListGroup.js +39 -0
- package/dist/components/NavList/NavListItem.d.ts +49 -0
- package/dist/components/NavList/NavListItem.js +56 -0
- package/dist/components/NavList/index.d.ts +6 -0
- package/dist/components/Overlay/Overlay.css +1 -0
- package/dist/components/Overlay/Overlay.d.ts +33 -0
- package/dist/components/Overlay/Overlay.js +35 -0
- package/dist/components/Overlay/Overlay.module.js +3 -0
- package/dist/components/Overlay/index.d.ts +1 -0
- package/dist/components/PageLayout/PageLayout.css +1 -0
- package/dist/components/PageLayout/PageLayout.d.ts +26 -0
- package/dist/components/PageLayout/PageLayout.js +17 -0
- package/dist/components/PageLayout/PageLayout.module.js +3 -0
- package/dist/components/PageLayout/index.d.ts +2 -0
- package/dist/components/Popover/Popover.css +1 -0
- package/dist/components/Popover/Popover.d.ts +52 -0
- package/dist/components/Popover/Popover.js +20 -0
- package/dist/components/Popover/Popover.module.js +3 -0
- package/dist/components/Popover/index.d.ts +4 -0
- package/dist/components/Popover/usePopover.d.ts +96 -0
- package/dist/components/Popover/usePopover.js +71 -0
- package/dist/components/Prose/Prose.css +1 -0
- package/dist/components/Prose/Prose.d.ts +50 -0
- package/dist/components/Prose/Prose.js +15 -0
- package/dist/components/Prose/Prose.module.js +3 -0
- package/dist/components/Prose/index.d.ts +2 -0
- package/dist/components/Radio/Radio.d.ts +29 -0
- package/dist/components/Radio/Radio.js +23 -0
- package/dist/components/Radio/index.d.ts +2 -0
- package/dist/components/RadioGroup/RadioGroup.css +1 -0
- package/dist/components/RadioGroup/RadioGroup.d.ts +58 -0
- package/dist/components/RadioGroup/RadioGroup.js +36 -0
- package/dist/components/RadioGroup/RadioGroup.module.js +3 -0
- package/dist/components/RadioGroup/index.d.ts +2 -0
- package/dist/components/RequiredIndicator/RequiredIndicator.css +1 -0
- package/dist/components/RequiredIndicator/RequiredIndicator.d.ts +6 -0
- package/dist/components/RequiredIndicator/RequiredIndicator.js +15 -0
- package/dist/components/RequiredIndicator/RequiredIndicator.module.js +3 -0
- package/dist/components/RequiredIndicator/index.d.ts +1 -0
- package/dist/components/Row/Row.d.ts +29 -0
- package/dist/components/Row/Row.js +13 -0
- package/dist/components/Row/index.d.ts +2 -0
- package/dist/components/SegmentedControl/Segment.d.ts +24 -0
- package/dist/components/SegmentedControl/Segment.js +41 -0
- package/dist/components/SegmentedControl/SegmentedControl.css +1 -0
- package/dist/components/SegmentedControl/SegmentedControl.d.ts +25 -0
- package/dist/components/SegmentedControl/SegmentedControl.js +19 -0
- package/dist/components/SegmentedControl/SegmentedControl.module.js +9 -0
- package/dist/components/SegmentedControl/index.d.ts +4 -0
- package/dist/components/Select/Select.d.ts +27 -0
- package/dist/components/Select/Select.js +11 -0
- package/dist/components/Select/index.d.ts +2 -0
- package/dist/components/Sidebar/Sidebar.css +1 -0
- package/dist/components/Sidebar/Sidebar.d.ts +42 -0
- package/dist/components/Sidebar/Sidebar.js +23 -0
- package/dist/components/Sidebar/Sidebar.module.js +3 -0
- package/dist/components/Sidebar/index.d.ts +2 -0
- package/dist/components/SkipLink/SkipLink.css +1 -0
- package/dist/components/SkipLink/SkipLink.d.ts +20 -0
- package/dist/components/SkipLink/SkipLink.js +20 -0
- package/dist/components/SkipLink/SkipLink.module.js +3 -0
- package/dist/components/SkipLink/index.d.ts +2 -0
- package/dist/components/Spinner/Spinner.css +1 -0
- package/dist/components/Spinner/Spinner.d.ts +13 -0
- package/dist/components/Spinner/Spinner.js +32 -0
- package/dist/components/Spinner/Spinner.module.js +7 -0
- package/dist/components/Spinner/index.d.ts +1 -0
- package/dist/components/Stack/Stack.css +1 -0
- package/dist/components/Stack/Stack.d.ts +25 -0
- package/dist/components/Stack/Stack.js +20 -0
- package/dist/components/Stack/Stack.module.js +3 -0
- package/dist/components/Stack/index.d.ts +2 -0
- package/dist/components/StatusDot/StatusDot.css +1 -0
- package/dist/components/StatusDot/StatusDot.d.ts +57 -0
- package/dist/components/StatusDot/StatusDot.js +20 -0
- package/dist/components/StatusDot/StatusDot.module.js +3 -0
- package/dist/components/StatusDot/index.d.ts +2 -0
- package/dist/components/Switch/Switch.d.ts +24 -0
- package/dist/components/Switch/Switch.js +12 -0
- package/dist/components/Switch/index.d.ts +2 -0
- package/dist/components/Switcher/Switcher.css +1 -0
- package/dist/components/Switcher/Switcher.d.ts +27 -0
- package/dist/components/Switcher/Switcher.js +22 -0
- package/dist/components/Switcher/Switcher.module.js +3 -0
- package/dist/components/Switcher/index.d.ts +2 -0
- package/dist/components/Tabs/Tab.d.ts +26 -0
- package/dist/components/Tabs/Tab.js +60 -0
- package/dist/components/Tabs/TabList.d.ts +16 -0
- package/dist/components/Tabs/TabList.js +22 -0
- package/dist/components/Tabs/TabPanel.d.ts +24 -0
- package/dist/components/Tabs/TabPanel.js +21 -0
- package/dist/components/Tabs/Tabs.css +1 -0
- package/dist/components/Tabs/Tabs.d.ts +81 -0
- package/dist/components/Tabs/Tabs.js +30 -0
- package/dist/components/Tabs/Tabs.module.js +8 -0
- package/dist/components/Tabs/TabsContext.d.ts +39 -0
- package/dist/components/Tabs/TabsContext.js +4 -0
- package/dist/components/Tabs/index.d.ts +8 -0
- package/dist/components/Tabs/tabIds.d.ts +16 -0
- package/dist/components/Tabs/tabIds.js +9 -0
- package/dist/components/Tabs/useTabsContext.d.ts +9 -0
- package/dist/components/Tabs/useTabsContext.js +10 -0
- package/dist/components/Text/Text.css +1 -0
- package/dist/components/Text/Text.d.ts +40 -0
- package/dist/components/Text/Text.js +16 -0
- package/dist/components/Text/Text.module.js +3 -0
- package/dist/components/Text/index.d.ts +2 -0
- package/dist/components/TextControl/TextControl.css +1 -0
- package/dist/components/TextControl/TextControl.d.ts +22 -0
- package/dist/components/TextControl/TextControl.js +27 -0
- package/dist/components/TextControl/TextControl.module.js +3 -0
- package/dist/components/TextControl/index.d.ts +1 -0
- package/dist/components/TextInput/TextInput.d.ts +31 -0
- package/dist/components/TextInput/TextInput.js +12 -0
- package/dist/components/TextInput/index.d.ts +2 -0
- package/dist/components/Textarea/Textarea.d.ts +24 -0
- package/dist/components/Textarea/Textarea.js +11 -0
- package/dist/components/Textarea/index.d.ts +2 -0
- package/dist/components/Theme/Theme.d.ts +46 -0
- package/dist/components/Theme/Theme.js +17 -0
- package/dist/components/Theme/index.d.ts +2 -0
- package/dist/components/Tooltip/Tooltip.css +1 -0
- package/dist/components/Tooltip/Tooltip.d.ts +49 -0
- package/dist/components/Tooltip/Tooltip.js +21 -0
- package/dist/components/Tooltip/Tooltip.module.js +3 -0
- package/dist/components/Tooltip/index.d.ts +4 -0
- package/dist/components/Tooltip/tooltipCoordinator.d.ts +14 -0
- package/dist/components/Tooltip/tooltipCoordinator.js +16 -0
- package/dist/components/Tooltip/useTooltip.d.ts +119 -0
- package/dist/components/Tooltip/useTooltip.js +73 -0
- package/dist/components/VisuallyHidden/VisuallyHidden.css +1 -0
- package/dist/components/VisuallyHidden/VisuallyHidden.d.ts +14 -0
- package/dist/components/VisuallyHidden/VisuallyHidden.js +19 -0
- package/dist/components/VisuallyHidden/VisuallyHidden.module.js +3 -0
- package/dist/components/VisuallyHidden/index.d.ts +2 -0
- package/dist/errors/MissingContextError.d.ts +11 -0
- package/dist/errors/MissingContextError.js +8 -0
- package/dist/errors/PopoverRefusedError.d.ts +12 -0
- package/dist/errors/PopoverRefusedError.js +8 -0
- package/dist/errors/index.d.ts +2 -0
- package/dist/forms/ControlSize.d.ts +4 -0
- package/dist/forms/FieldContext.d.ts +34 -0
- package/dist/forms/FieldContext.js +4 -0
- package/dist/forms/RadioGroupContext.d.ts +34 -0
- package/dist/forms/RadioGroupContext.js +4 -0
- package/dist/forms/hasContent.d.ts +10 -0
- package/dist/forms/hasContent.js +6 -0
- package/dist/forms/index.d.ts +8 -0
- package/dist/forms/useFieldControl.d.ts +36 -0
- package/dist/forms/useFieldControl.js +28 -0
- package/dist/forms/useRadioGroupItem.d.ts +50 -0
- package/dist/forms/useRadioGroupItem.js +26 -0
- package/dist/index.d.ts +107 -0
- package/dist/index.js +92 -0
- package/dist/layout/Space.d.ts +4 -0
- package/dist/layout/alignment.d.ts +8 -0
- package/dist/layout/index.d.ts +5 -0
- package/dist/layout/listRole.d.ts +11 -0
- package/dist/layout/listRole.js +5 -0
- package/dist/layout/spaceValue.d.ts +8 -0
- package/dist/layout/spaceValue.js +5 -0
- package/dist/layout/withCustomProperties.d.ts +9 -0
- package/dist/layout/withCustomProperties.js +8 -0
- package/dist/links/LinkOrButtonProps.d.ts +17 -0
- package/dist/links/index.d.ts +1 -0
- package/dist/menus/closeWhenFocusLeaves.d.ts +9 -0
- package/dist/menus/closeWhenFocusLeaves.js +11 -0
- package/dist/menus/focusItem.d.ts +6 -0
- package/dist/menus/focusItem.js +9 -0
- package/dist/menus/focusOnOpening.d.ts +11 -0
- package/dist/menus/focusOnOpening.js +11 -0
- package/dist/menus/hasModifier.d.ts +7 -0
- package/dist/menus/hasModifier.js +5 -0
- package/dist/menus/index.d.ts +11 -0
- package/dist/menus/itemText.d.ts +8 -0
- package/dist/menus/itemText.js +6 -0
- package/dist/menus/leaveMenuOnTab.d.ts +9 -0
- package/dist/menus/leaveMenuOnTab.js +6 -0
- package/dist/menus/pointerIntent.d.ts +36 -0
- package/dist/menus/pointerIntent.js +68 -0
- package/dist/menus/renderedItems.d.ts +8 -0
- package/dist/menus/renderedItems.js +4 -0
- package/dist/menus/watchRemovals.d.ts +8 -0
- package/dist/menus/watchRemovals.js +23 -0
- package/dist/overlays/OverlayDelay.d.ts +13 -0
- package/dist/overlays/OverlayPlacement.d.ts +6 -0
- package/dist/overlays/anchorNameFor.d.ts +7 -0
- package/dist/overlays/anchorNameFor.js +5 -0
- package/dist/overlays/index.d.ts +6 -0
- package/dist/overlays/mergeProps.d.ts +13 -0
- package/dist/overlays/mergeProps.js +29 -0
- package/dist/overlays/syncPopover.d.ts +11 -0
- package/dist/overlays/syncPopover.js +24 -0
- package/dist/overlays/useOverlay.d.ts +71 -0
- package/dist/overlays/useOverlay.js +49 -0
- package/dist/styles.css +1 -0
- package/fonts/playful.css +3 -0
- package/package.json +103 -3
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { JSX } from "react";
|
|
2
|
+
import type { Alignment, Justification, Space } from "../../layout";
|
|
3
|
+
import type { BoxElement, BoxProps } from "../Box";
|
|
4
|
+
interface ClusterOwnProps {
|
|
5
|
+
/**
|
|
6
|
+
* Cross-axis placement of children. Defaults to `center`.
|
|
7
|
+
*/
|
|
8
|
+
align?: Alignment;
|
|
9
|
+
/**
|
|
10
|
+
* Space between children and between wrapped lines. Defaults to `2`.
|
|
11
|
+
*/
|
|
12
|
+
gap?: Space;
|
|
13
|
+
/**
|
|
14
|
+
* Main-axis distribution of children. Defaults to `start`.
|
|
15
|
+
*/
|
|
16
|
+
justify?: Justification;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Props for `Cluster`: its own props plus every prop supported by the element given in `as`
|
|
20
|
+
*/
|
|
21
|
+
export type ClusterProps<E extends BoxElement = "div"> = ClusterOwnProps & Omit<BoxProps<E>, keyof ClusterOwnProps>;
|
|
22
|
+
/**
|
|
23
|
+
* Horizontal flow that wraps its children onto new lines when they run out of room
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* <Cluster as="ul" aria-label="Tags">...</Cluster>
|
|
27
|
+
*/
|
|
28
|
+
export declare function Cluster<E extends BoxElement = "div">({ align, gap, justify, ...rest }: ClusterProps<E>): JSX.Element;
|
|
29
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { HorizontalFlow as e } from "../HorizontalFlow/HorizontalFlow.js";
|
|
2
|
+
import { jsx as t } from "react/jsx-runtime";
|
|
3
|
+
// src/components/Cluster/Cluster.tsx
|
|
4
|
+
function n({ align: n = "center", gap: r = 2, justify: i = "start", ...a }) {
|
|
5
|
+
return /* @__PURE__ */ t(e, {
|
|
6
|
+
...a,
|
|
7
|
+
align: n,
|
|
8
|
+
gap: r,
|
|
9
|
+
justify: i,
|
|
10
|
+
wrap: !0
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
export { n as Cluster };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.sui-code-arLxg{padding:0 var(--sui-space-1,.25rem);border-radius:var(--sui-radius-sm,2px);background-color:var(--sui-color-sunken,#f3f4f6);color:var(--sui-color-text,#111827);font-family:var(--sui-font-mono,ui-monospace, SFMono-Regular, Menlo, monospace);overflow-wrap:anywhere;font-size:.875em}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { JSX } from "react";
|
|
2
|
+
import type { BoxProps } from "../Box";
|
|
3
|
+
/**
|
|
4
|
+
* Props for `Code`: every native `code` prop
|
|
5
|
+
*/
|
|
6
|
+
export type CodeProps = Omit<BoxProps<"code">, "as">;
|
|
7
|
+
/**
|
|
8
|
+
* Inline code, such as a command, a file name or a value, in the theme's monospace font on the sunken colour
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* <Text as="p">Run <Code>pnpm install</Code> first.</Text>
|
|
12
|
+
*/
|
|
13
|
+
export declare function Code({ className, ...rest }: CodeProps): JSX.Element;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Box as e } from "../Box/Box.js";
|
|
2
|
+
import t from "./Code.module.js";
|
|
3
|
+
import { clsx as n } from "clsx";
|
|
4
|
+
import { c as r } from "react/compiler-runtime";
|
|
5
|
+
import { jsx as i } from "react/jsx-runtime";
|
|
6
|
+
// src/components/Code/Code.tsx
|
|
7
|
+
function a(a) {
|
|
8
|
+
let o = r(8), s, c;
|
|
9
|
+
o[0] === a ? (s = o[1], c = o[2]) : ({className: s, ...c} = a, o[0] = a, o[1] = s, o[2] = c);
|
|
10
|
+
let l;
|
|
11
|
+
o[3] === s ? l = o[4] : (l = n(t.code, s), o[3] = s, o[4] = l);
|
|
12
|
+
let u;
|
|
13
|
+
return o[5] !== c || o[6] !== l ? (u = /* @__PURE__ */ i(e, {
|
|
14
|
+
...c,
|
|
15
|
+
as: "code",
|
|
16
|
+
className: l
|
|
17
|
+
}), o[5] = c, o[6] = l, o[7] = u) : u = o[7], u;
|
|
18
|
+
}
|
|
19
|
+
export { a as Code };
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import type { JSX, ReactNode } from "react";
|
|
2
|
+
import type { ControlSize } from "../../forms";
|
|
3
|
+
import type { BoxProps } from "../Box";
|
|
4
|
+
import type { ComboboxFilter } from "./ComboboxContext";
|
|
5
|
+
import type { ComboboxPlacement } from "./ComboboxPopup";
|
|
6
|
+
interface AutocompleteOwnProps {
|
|
7
|
+
/**
|
|
8
|
+
* The `ComboboxOption`s
|
|
9
|
+
*/
|
|
10
|
+
children?: ReactNode;
|
|
11
|
+
/**
|
|
12
|
+
* The text the input starts with when `inputValue` is not given. Defaults to the selected option's text.
|
|
13
|
+
*/
|
|
14
|
+
defaultInputValue?: string;
|
|
15
|
+
/**
|
|
16
|
+
* The option selected at first, which leaves the selection uncontrolled. Defaults to none.
|
|
17
|
+
*/
|
|
18
|
+
defaultValue?: string | null;
|
|
19
|
+
/**
|
|
20
|
+
* Whether an option shows for the typed text. Defaults to the option's text containing it, ignoring case and
|
|
21
|
+
* accents. Null shows every option rendered, for a list filtered elsewhere, such as on a server; typing then makes no
|
|
22
|
+
* option active, since the options for the text are still to come.
|
|
23
|
+
*/
|
|
24
|
+
filter?: ComboboxFilter | null;
|
|
25
|
+
/**
|
|
26
|
+
* The text in the input, which makes it controlled: update it from `onInputValueChange`
|
|
27
|
+
*/
|
|
28
|
+
inputValue?: string;
|
|
29
|
+
/**
|
|
30
|
+
* Adds a hidden input that submits the selected value with a form under this name
|
|
31
|
+
*/
|
|
32
|
+
name?: string;
|
|
33
|
+
/**
|
|
34
|
+
* Called with the text as the user types, with an option's text when they commit it, and with the selected
|
|
35
|
+
* option's text, or none, when focus leaves
|
|
36
|
+
*/
|
|
37
|
+
onInputValueChange?: (inputValue: string) => void;
|
|
38
|
+
/**
|
|
39
|
+
* Called with the value of the option the user commits, or null when they clear the input with Escape
|
|
40
|
+
*/
|
|
41
|
+
onValueChange?: (value: string | null) => void;
|
|
42
|
+
/**
|
|
43
|
+
* Where the list opens. It flips to the other side when there is no room. Defaults to `bottom-start`.
|
|
44
|
+
*/
|
|
45
|
+
placement?: ComboboxPlacement;
|
|
46
|
+
/**
|
|
47
|
+
* What the live region says, and the empty list shows, for a number of matching options. Defaults to English:
|
|
48
|
+
* "No results", "1 result", "12 results".
|
|
49
|
+
*/
|
|
50
|
+
resultsLabel?: (count: number) => string;
|
|
51
|
+
/**
|
|
52
|
+
* Height of the input, matching the `Button` sizes. Takes the place of the native `size` attribute. Defaults to
|
|
53
|
+
* `md`.
|
|
54
|
+
*/
|
|
55
|
+
size?: ControlSize;
|
|
56
|
+
/**
|
|
57
|
+
* The selected option, or null for none, which makes the selection controlled: update it from `onValueChange`
|
|
58
|
+
*/
|
|
59
|
+
value?: string | null;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Props for `Autocomplete`: its own props plus every `input` prop except those the combobox pattern sets
|
|
63
|
+
*/
|
|
64
|
+
export interface AutocompleteProps extends AutocompleteOwnProps, Omit<BoxProps<"input">, "aria-activedescendant" | "aria-autocomplete" | "aria-controls" | "aria-expanded" | "as" | "children" | "dangerouslySetInnerHTML" | "defaultValue" | "role" | "size" | "type" | "value" | keyof AutocompleteOwnProps> {
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* A text input that filters a list of options as the user types, following the WAI-ARIA combobox pattern with list
|
|
68
|
+
* autocomplete, to choose one of many options by typing part of its name. Typing opens the list and makes the first
|
|
69
|
+
* match active; the arrow keys move through it; Enter or a click chooses an option, putting its text in the input;
|
|
70
|
+
* Escape closes the list, and then clears the input. Only an option can be the value: when focus leaves, the input shows
|
|
71
|
+
* the selected option's text again. The number of matches is announced once typing pauses. Inside a `Field` it takes
|
|
72
|
+
* its label, description, error, and required and disabled state from the field; outside one, give it an `aria-label`.
|
|
73
|
+
*
|
|
74
|
+
* @example
|
|
75
|
+
* <Field label="Country">
|
|
76
|
+
* <Autocomplete name="country" onValueChange={setCountry} value={country}>
|
|
77
|
+
* <ComboboxOption value="fr">France</ComboboxOption>
|
|
78
|
+
* <ComboboxOption value="jp">Japan</ComboboxOption>
|
|
79
|
+
* </Autocomplete>
|
|
80
|
+
* </Field>
|
|
81
|
+
*/
|
|
82
|
+
export declare function Autocomplete({ children, className, defaultInputValue, defaultValue, filter, inputValue, name, onInputValueChange, onValueChange, placement, resultsLabel, size, value, ...rest }: AutocompleteProps): JSX.Element;
|
|
83
|
+
export {};
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { useFieldControl as e } from "../../forms/useFieldControl.js";
|
|
2
|
+
import { anchorNameFor as t } from "../../overlays/anchorNameFor.js";
|
|
3
|
+
import { mergeProps as n } from "../../overlays/mergeProps.js";
|
|
4
|
+
import { Box as r } from "../Box/Box.js";
|
|
5
|
+
import { ChevronDownIcon as i } from "../Icon/ChevronDownIcon.js";
|
|
6
|
+
import { TextControl as a } from "../TextControl/TextControl.js";
|
|
7
|
+
import { VisuallyHidden as o } from "../VisuallyHidden/VisuallyHidden.js";
|
|
8
|
+
import s from "./Combobox.module.js";
|
|
9
|
+
import { ComboboxPopup as c } from "./ComboboxPopup.js";
|
|
10
|
+
import { handleAutocompleteKey as l } from "./autocompleteKeys.js";
|
|
11
|
+
import { containsText as u } from "./containsText.js";
|
|
12
|
+
import { useAutocompleteText as d } from "./useAutocompleteText.js";
|
|
13
|
+
import { useComboboxList as f } from "./useComboboxList.js";
|
|
14
|
+
import { useComboboxSelection as p } from "./useComboboxSelection.js";
|
|
15
|
+
import { useResultsAnnouncement as m } from "./useResultsAnnouncement.js";
|
|
16
|
+
import { clsx as h } from "clsx";
|
|
17
|
+
import { Fragment as g, jsx as _, jsxs as v } from "react/jsx-runtime";
|
|
18
|
+
// src/components/Combobox/Autocomplete.tsx
|
|
19
|
+
function y({ children: y, className: x, defaultInputValue: S, defaultValue: C = null, filter: w = u, inputValue: T, name: E, onInputValueChange: D, onValueChange: O, placement: k = "bottom-start", resultsLabel: A = b, size: j = "md", value: M, ...N }) {
|
|
20
|
+
let P = e(N), F = p({
|
|
21
|
+
defaultValue: C,
|
|
22
|
+
onValueChange: O,
|
|
23
|
+
value: M
|
|
24
|
+
}), I = d({
|
|
25
|
+
defaultInputValue: S,
|
|
26
|
+
inputValue: T,
|
|
27
|
+
onInputValueChange: D,
|
|
28
|
+
selectedText: F.selectedContent?.text
|
|
29
|
+
}), L = f({
|
|
30
|
+
controlId: P.id,
|
|
31
|
+
filter: w,
|
|
32
|
+
onCommit: I.commit,
|
|
33
|
+
query: I.query,
|
|
34
|
+
selection: F
|
|
35
|
+
}), { announceCount: R, announcement: z } = m(A, L.countShown, L.open), B = I.shown, V = { anchorName: t(L.listId) }, H = N.readOnly === !0;
|
|
36
|
+
function U(e) {
|
|
37
|
+
let t = e.currentTarget.value;
|
|
38
|
+
I.edit(t), L.openList("none", "keyboard"), L.matchFirst(), R();
|
|
39
|
+
}
|
|
40
|
+
function W(e) {
|
|
41
|
+
let t = {
|
|
42
|
+
commit: I.commit,
|
|
43
|
+
editing: I.editing,
|
|
44
|
+
shown: B
|
|
45
|
+
};
|
|
46
|
+
!e.defaultPrevented && !H && l(e, L, t) && e.preventDefault();
|
|
47
|
+
}
|
|
48
|
+
function G(e) {
|
|
49
|
+
e.defaultPrevented || H || L.open || L.openList("none", "pointer");
|
|
50
|
+
}
|
|
51
|
+
function K(e) {
|
|
52
|
+
L.close(), e.currentTarget.ownerDocument.hasFocus() && I.restore();
|
|
53
|
+
}
|
|
54
|
+
return /* @__PURE__ */ v(g, { children: [
|
|
55
|
+
/* @__PURE__ */ v(r, {
|
|
56
|
+
as: "span",
|
|
57
|
+
className: s.inputFrame,
|
|
58
|
+
"data-disabled": P.disabled === !0 ? "" : void 0,
|
|
59
|
+
"data-size": j,
|
|
60
|
+
children: [/* @__PURE__ */ _(a, {
|
|
61
|
+
autoComplete: "off",
|
|
62
|
+
...n(N, {
|
|
63
|
+
onBlur: K,
|
|
64
|
+
onChange: U,
|
|
65
|
+
onClick: G,
|
|
66
|
+
onKeyDown: W,
|
|
67
|
+
style: V
|
|
68
|
+
}),
|
|
69
|
+
as: "input",
|
|
70
|
+
className: h(s.input, x),
|
|
71
|
+
id: L.controlId,
|
|
72
|
+
role: "combobox",
|
|
73
|
+
size: j,
|
|
74
|
+
type: "text",
|
|
75
|
+
value: B,
|
|
76
|
+
"aria-activedescendant": L.activeDescendant,
|
|
77
|
+
"aria-autocomplete": "list",
|
|
78
|
+
"aria-controls": L.listId,
|
|
79
|
+
"aria-expanded": L.open
|
|
80
|
+
}), /* @__PURE__ */ _(i, { className: s.chevron })]
|
|
81
|
+
}),
|
|
82
|
+
/* @__PURE__ */ _(c, {
|
|
83
|
+
"aria-label": N["aria-label"],
|
|
84
|
+
"aria-labelledby": N["aria-labelledby"],
|
|
85
|
+
disabled: P.disabled,
|
|
86
|
+
emptyMessage: A(0),
|
|
87
|
+
form: N.form,
|
|
88
|
+
list: L,
|
|
89
|
+
name: E,
|
|
90
|
+
placement: k,
|
|
91
|
+
children: y
|
|
92
|
+
}),
|
|
93
|
+
/* @__PURE__ */ _(o, {
|
|
94
|
+
"aria-live": "polite",
|
|
95
|
+
children: z
|
|
96
|
+
})
|
|
97
|
+
] });
|
|
98
|
+
}
|
|
99
|
+
function b(e) {
|
|
100
|
+
return e === 0 ? "No results" : e === 1 ? "1 result" : `${e} results`;
|
|
101
|
+
}
|
|
102
|
+
export { y as Autocomplete };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.sui-field-BenH0{align-items:center;gap:var(--sui-space-2,.5rem);text-align:start;cursor:default;min-inline-size:0;display:inline-flex}.sui-placeholder-NQX-b,.sui-fieldLabel-zBN6l{text-overflow:ellipsis;white-space:nowrap;flex:1;min-inline-size:0;overflow:hidden}.sui-placeholder-NQX-b{color:var(--sui-color-text-muted,#4b5563)}.sui-fieldLeading-4y-j7{flex:none;align-items:center;block-size:1lh;display:flex}.sui-chevron-NVqyn{flex:none;transition:rotate .12s}[aria-expanded=true]+.sui-chevron-NVqyn,[aria-expanded=true]>.sui-chevron-NVqyn{rotate:180deg}.sui-inputFrame-mYx2Q{--_sui-combobox-chevron-inset:var(--sui-space-4,1rem);align-items:center;display:inline-grid}.sui-inputFrame-mYx2Q[data-size=sm]{--_sui-combobox-chevron-inset:var(--sui-space-3,.75rem)}.sui-inputFrame-mYx2Q[data-size=lg]{--_sui-combobox-chevron-inset:var(--sui-space-6,1.5rem)}.sui-inputFrame-mYx2Q>*{grid-area:1/1}.sui-inputFrame-mYx2Q .sui-input--HTv1{padding-inline-end:calc(var(--_sui-combobox-chevron-inset) + 1em + var(--sui-space-2,.5rem))}.sui-inputFrame-mYx2Q .sui-chevron-NVqyn{color:var(--sui-color-text,#111827);pointer-events:none;justify-self:end;margin-inline-end:var(--_sui-combobox-chevron-inset)}.sui-inputFrame-mYx2Q[data-disabled] .sui-chevron-NVqyn{opacity:.5}.sui-popup-rsvuH:popover-open{min-inline-size:max(12rem, anchor-size(width));max-inline-size:min(max(20rem, anchor-size(width)), 100vw - var(--sui-space-2,.5rem) * 2);overflow:hidden}.sui-listbox-2wSrg{--_sui-menu-leading-column:calc(1rem + var(--sui-space-2,.5rem));overscroll-behavior:contain;flex-direction:column;flex:auto;gap:1px;min-block-size:0;display:flex;overflow-y:auto}.sui-option-vhhn5[hidden]{display:none}.sui-option-vhhn5 .sui-check-9yQbP{color:var(--_sui-menu-ink)}.sui-optionLeading-kXakJ{opacity:var(--_sui-menu-part-opacity,1);flex:none;align-items:center;display:flex}.sui-empty-Ahw5K{min-block-size:2rem;padding:var(--sui-space-1,.25rem) var(--sui-space-2,.5rem);color:var(--sui-color-text-muted,#4b5563);align-items:center;display:none}.sui-listbox-2wSrg[data-empty]+.sui-empty-Ahw5K{display:flex}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { JSX, ReactNode } from "react";
|
|
2
|
+
import type { ControlSize } from "../../forms";
|
|
3
|
+
import type { BoxProps } from "../Box";
|
|
4
|
+
import type { ComboboxPlacement } from "./ComboboxPopup";
|
|
5
|
+
interface ComboboxOwnProps {
|
|
6
|
+
/**
|
|
7
|
+
* The `ComboboxOption`s
|
|
8
|
+
*/
|
|
9
|
+
children?: ReactNode;
|
|
10
|
+
/**
|
|
11
|
+
* The option selected at first, which leaves the combobox uncontrolled. Defaults to none.
|
|
12
|
+
*/
|
|
13
|
+
defaultValue?: string | null;
|
|
14
|
+
/**
|
|
15
|
+
* Adds a hidden input that submits the selected value with a form under this name
|
|
16
|
+
*/
|
|
17
|
+
name?: string;
|
|
18
|
+
/**
|
|
19
|
+
* Called with the value of the option the user commits
|
|
20
|
+
*/
|
|
21
|
+
onValueChange?: (value: string) => void;
|
|
22
|
+
/**
|
|
23
|
+
* Shown in the field while no option is selected
|
|
24
|
+
*/
|
|
25
|
+
placeholder?: ReactNode;
|
|
26
|
+
/**
|
|
27
|
+
* Where the list opens. It flips to the other side when there is no room. Defaults to `bottom-start`.
|
|
28
|
+
*/
|
|
29
|
+
placement?: ComboboxPlacement;
|
|
30
|
+
/**
|
|
31
|
+
* Height of the field, matching the `Button` sizes. Defaults to `md`.
|
|
32
|
+
*/
|
|
33
|
+
size?: ControlSize;
|
|
34
|
+
/**
|
|
35
|
+
* The selected option, or null for none, which makes the combobox controlled: update it from `onValueChange`
|
|
36
|
+
*/
|
|
37
|
+
value?: string | null;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Props for `Combobox`: its own props plus every `button` prop except those the combobox pattern sets
|
|
41
|
+
*/
|
|
42
|
+
export interface ComboboxProps extends ComboboxOwnProps, Omit<BoxProps<"button">, "aria-activedescendant" | "aria-autocomplete" | "aria-controls" | "aria-expanded" | "aria-haspopup" | "as" | "defaultValue" | "role" | "type" | "value" | keyof ComboboxOwnProps> {
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* A field that opens a list of options to choose one from, following the WAI-ARIA select-only combobox pattern, for
|
|
46
|
+
* options a native `Select` cannot show, such as people with avatars. The field shows the selected option. Down Arrow,
|
|
47
|
+
* Enter, Space or a click opens the list; the arrow keys, Home, End and type-ahead move through it; Enter, Space or a
|
|
48
|
+
* click chooses an option; Escape and Tab close it without choosing. Focus stays on the field. Inside a `Field` it takes
|
|
49
|
+
* its label, description, error, and required and disabled state from the field; outside one, give it an `aria-label`.
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* <Field label="Assignee">
|
|
53
|
+
* <Combobox onValueChange={setAssignee} placeholder="Unassigned" value={assignee}>
|
|
54
|
+
* <ComboboxOption leading={<Avatar name="Pat Lee" size="xs" />} value="pat">Pat Lee</ComboboxOption>
|
|
55
|
+
* </Combobox>
|
|
56
|
+
* </Field>
|
|
57
|
+
*/
|
|
58
|
+
export declare function Combobox({ children, className, defaultValue, name, onValueChange, placeholder, placement, size, value, ...rest }: ComboboxProps): JSX.Element;
|
|
59
|
+
export {};
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { useFieldControl as e } from "../../forms/useFieldControl.js";
|
|
2
|
+
import { anchorNameFor as t } from "../../overlays/anchorNameFor.js";
|
|
3
|
+
import { mergeProps as n } from "../../overlays/mergeProps.js";
|
|
4
|
+
import { ChevronDownIcon as r } from "../Icon/ChevronDownIcon.js";
|
|
5
|
+
import { TextControl as i } from "../TextControl/TextControl.js";
|
|
6
|
+
import a from "./Combobox.module.js";
|
|
7
|
+
import { ComboboxFieldValue as o } from "./ComboboxFieldValue.js";
|
|
8
|
+
import { ComboboxPopup as s } from "./ComboboxPopup.js";
|
|
9
|
+
import { handleComboboxKey as c } from "./comboboxKeys.js";
|
|
10
|
+
import { useComboboxList as l } from "./useComboboxList.js";
|
|
11
|
+
import { useComboboxSelection as u } from "./useComboboxSelection.js";
|
|
12
|
+
import { clsx as d } from "clsx";
|
|
13
|
+
import { useState as f } from "react";
|
|
14
|
+
import { Fragment as p, jsx as m, jsxs as h } from "react/jsx-runtime";
|
|
15
|
+
// src/components/Combobox/Combobox.tsx
|
|
16
|
+
function g({ children: g, className: v, defaultValue: y = null, name: b, onValueChange: x, placeholder: S, placement: C = "bottom-start", size: w = "md", value: T, ...E }) {
|
|
17
|
+
let D = e(E), [O, k] = f(null), A = u({
|
|
18
|
+
defaultValue: y,
|
|
19
|
+
onValueChange: _(x),
|
|
20
|
+
value: T
|
|
21
|
+
}), j = l({
|
|
22
|
+
controlId: D.id,
|
|
23
|
+
filter: null,
|
|
24
|
+
query: "",
|
|
25
|
+
selection: A
|
|
26
|
+
}), M = { anchorName: t(j.listId) };
|
|
27
|
+
function N(e) {
|
|
28
|
+
!e.defaultPrevented && c(e, j) && e.preventDefault();
|
|
29
|
+
}
|
|
30
|
+
function P(e) {
|
|
31
|
+
e.key === " " && e.preventDefault();
|
|
32
|
+
}
|
|
33
|
+
function F(e) {
|
|
34
|
+
k(j.open);
|
|
35
|
+
}
|
|
36
|
+
function I(e) {
|
|
37
|
+
let t = e.detail > 0, n = t ? O ?? j.open : j.open;
|
|
38
|
+
k(null), e.defaultPrevented || (e.currentTarget.focus(), j.toggleList(n, t ? "pointer" : "keyboard"));
|
|
39
|
+
}
|
|
40
|
+
function L(e) {
|
|
41
|
+
j.close();
|
|
42
|
+
}
|
|
43
|
+
return /* @__PURE__ */ h(p, { children: [/* @__PURE__ */ h(i, {
|
|
44
|
+
...n(E, {
|
|
45
|
+
onBlur: L,
|
|
46
|
+
onClick: I,
|
|
47
|
+
onKeyDown: N,
|
|
48
|
+
onKeyUp: P,
|
|
49
|
+
onPointerDown: F,
|
|
50
|
+
style: M
|
|
51
|
+
}),
|
|
52
|
+
as: "button",
|
|
53
|
+
className: d(a.field, v),
|
|
54
|
+
id: j.controlId,
|
|
55
|
+
role: "combobox",
|
|
56
|
+
size: w,
|
|
57
|
+
type: "button",
|
|
58
|
+
"aria-activedescendant": j.activeDescendant,
|
|
59
|
+
"aria-controls": j.listId,
|
|
60
|
+
"aria-expanded": j.open,
|
|
61
|
+
"aria-haspopup": "listbox",
|
|
62
|
+
children: [/* @__PURE__ */ m(o, {
|
|
63
|
+
placeholder: S,
|
|
64
|
+
selected: j.selectedContent
|
|
65
|
+
}), /* @__PURE__ */ m(r, { className: a.chevron })]
|
|
66
|
+
}), /* @__PURE__ */ m(s, {
|
|
67
|
+
"aria-label": E["aria-label"],
|
|
68
|
+
"aria-labelledby": E["aria-labelledby"],
|
|
69
|
+
disabled: D.disabled,
|
|
70
|
+
form: E.form,
|
|
71
|
+
list: j,
|
|
72
|
+
name: b,
|
|
73
|
+
placement: C,
|
|
74
|
+
children: g
|
|
75
|
+
})] });
|
|
76
|
+
}
|
|
77
|
+
function _(e) {
|
|
78
|
+
return (t) => {
|
|
79
|
+
t !== null && e?.(t);
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
export { g as Combobox };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import './Combobox.css';// src/components/Combobox/Combobox.module.css
|
|
2
|
+
var e = "sui-field-BenH0", t = "sui-placeholder-NQX-b", n = "sui-fieldLabel-zBN6l", r = "sui-fieldLeading-4y-j7", i = "sui-chevron-NVqyn", a = "sui-inputFrame-mYx2Q", o = "sui-input--HTv1", s = "sui-popup-rsvuH", c = "sui-listbox-2wSrg", l = "sui-option-vhhn5", u = "sui-check-9yQbP", d = "sui-optionLeading-kXakJ", f = "sui-empty-Ahw5K", p = {
|
|
3
|
+
field: e,
|
|
4
|
+
placeholder: t,
|
|
5
|
+
fieldLabel: n,
|
|
6
|
+
fieldLeading: r,
|
|
7
|
+
chevron: i,
|
|
8
|
+
inputFrame: a,
|
|
9
|
+
input: o,
|
|
10
|
+
popup: s,
|
|
11
|
+
listbox: c,
|
|
12
|
+
option: l,
|
|
13
|
+
check: u,
|
|
14
|
+
optionLeading: d,
|
|
15
|
+
empty: f
|
|
16
|
+
};
|
|
17
|
+
export { u as check, i as chevron, p as default, f as empty, e as field, n as fieldLabel, r as fieldLeading, o as input, a as inputFrame, c as listbox, l as option, d as optionLeading, t as placeholder, s as popup };
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import type { Dispatch, ReactNode, SetStateAction } from "react";
|
|
2
|
+
/**
|
|
3
|
+
* What made an option active: a key, which shows the focus ring, or the pointer, which shows only the tint
|
|
4
|
+
*/
|
|
5
|
+
export type ActiveSource = "keyboard" | "pointer";
|
|
6
|
+
/**
|
|
7
|
+
* The option the keys act on, which `aria-activedescendant` names
|
|
8
|
+
*/
|
|
9
|
+
export interface ActiveOption {
|
|
10
|
+
/**
|
|
11
|
+
* What made it active
|
|
12
|
+
*/
|
|
13
|
+
source: ActiveSource;
|
|
14
|
+
/**
|
|
15
|
+
* Its value
|
|
16
|
+
*/
|
|
17
|
+
value: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* What the selected option shows in the field
|
|
21
|
+
*/
|
|
22
|
+
export interface SelectedContent {
|
|
23
|
+
/**
|
|
24
|
+
* The option's label
|
|
25
|
+
*/
|
|
26
|
+
label: ReactNode;
|
|
27
|
+
/**
|
|
28
|
+
* The option's leading content, such as an avatar
|
|
29
|
+
*/
|
|
30
|
+
leading: ReactNode;
|
|
31
|
+
/**
|
|
32
|
+
* The option's text, which an `Autocomplete`'s input shows
|
|
33
|
+
*/
|
|
34
|
+
text: string;
|
|
35
|
+
/**
|
|
36
|
+
* The option's value
|
|
37
|
+
*/
|
|
38
|
+
value: string;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Tests whether an option shows for the typed text
|
|
42
|
+
*/
|
|
43
|
+
export type ComboboxFilter = (textValue: string, inputValue: string) => boolean;
|
|
44
|
+
/**
|
|
45
|
+
* State a combobox shares with its options
|
|
46
|
+
*/
|
|
47
|
+
export interface ComboboxContextValue {
|
|
48
|
+
/**
|
|
49
|
+
* The option the keys act on, or null for none
|
|
50
|
+
*/
|
|
51
|
+
active: ActiveOption | null;
|
|
52
|
+
/**
|
|
53
|
+
* Makes an option active under the pointer
|
|
54
|
+
*/
|
|
55
|
+
activateFromPointer: (value: string) => void;
|
|
56
|
+
/**
|
|
57
|
+
* The generated id every option id starts with
|
|
58
|
+
*/
|
|
59
|
+
baseId: string;
|
|
60
|
+
/**
|
|
61
|
+
* Commits an option's value and closes the list
|
|
62
|
+
*/
|
|
63
|
+
commit: (value: string) => void;
|
|
64
|
+
/**
|
|
65
|
+
* Whether an option shows for the typed text, or null to show every option
|
|
66
|
+
*/
|
|
67
|
+
filter: ComboboxFilter | null;
|
|
68
|
+
/**
|
|
69
|
+
* The text the options are filtered by; empty shows every option
|
|
70
|
+
*/
|
|
71
|
+
query: string;
|
|
72
|
+
/**
|
|
73
|
+
* The selected option's value, or null for none
|
|
74
|
+
*/
|
|
75
|
+
selectedValue: string | null;
|
|
76
|
+
/**
|
|
77
|
+
* Sets the option the keys act on
|
|
78
|
+
*/
|
|
79
|
+
setActive: Dispatch<SetStateAction<ActiveOption | null>>;
|
|
80
|
+
/**
|
|
81
|
+
* Sets what the selected option shows in the field
|
|
82
|
+
*/
|
|
83
|
+
setSelectedContent: Dispatch<SetStateAction<SelectedContent | null>>;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Carries a `Combobox`'s or `Autocomplete`'s state to its options; null outside one
|
|
87
|
+
*/
|
|
88
|
+
export declare const ComboboxContext: import("react").Context<ComboboxContextValue | null>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { JSX, ReactNode } from "react";
|
|
2
|
+
import type { SelectedContent } from "./ComboboxContext";
|
|
3
|
+
interface ComboboxFieldValueProps {
|
|
4
|
+
/**
|
|
5
|
+
* Shown while no option is selected
|
|
6
|
+
*/
|
|
7
|
+
placeholder: ReactNode;
|
|
8
|
+
/**
|
|
9
|
+
* What the selected option shows, or null for none
|
|
10
|
+
*/
|
|
11
|
+
selected: SelectedContent | null;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* What a `Combobox`'s field shows: the selected option's leading content and label, or the placeholder
|
|
15
|
+
*/
|
|
16
|
+
export declare function ComboboxFieldValue({ placeholder, selected }: ComboboxFieldValueProps): JSX.Element;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { hasContent as e } from "../../forms/hasContent.js";
|
|
2
|
+
import { Box as t } from "../Box/Box.js";
|
|
3
|
+
import n from "./Combobox.module.js";
|
|
4
|
+
import { c as r } from "react/compiler-runtime";
|
|
5
|
+
import { Fragment as i, jsx as a, jsxs as o } from "react/jsx-runtime";
|
|
6
|
+
// src/components/Combobox/ComboboxFieldValue.tsx
|
|
7
|
+
function s(s) {
|
|
8
|
+
let c = r(9), { placeholder: l, selected: u } = s;
|
|
9
|
+
if (u === null) {
|
|
10
|
+
let e;
|
|
11
|
+
return c[0] === l ? e = c[1] : (e = /* @__PURE__ */ a(t, {
|
|
12
|
+
as: "span",
|
|
13
|
+
className: n.placeholder,
|
|
14
|
+
children: l
|
|
15
|
+
}), c[0] = l, c[1] = e), e;
|
|
16
|
+
}
|
|
17
|
+
let d;
|
|
18
|
+
c[2] === u.leading ? d = c[3] : (d = e(u.leading) && /* @__PURE__ */ a(t, {
|
|
19
|
+
as: "span",
|
|
20
|
+
className: n.fieldLeading,
|
|
21
|
+
"aria-hidden": !0,
|
|
22
|
+
children: u.leading
|
|
23
|
+
}), c[2] = u.leading, c[3] = d);
|
|
24
|
+
let f;
|
|
25
|
+
c[4] === u.label ? f = c[5] : (f = /* @__PURE__ */ a(t, {
|
|
26
|
+
as: "span",
|
|
27
|
+
className: n.fieldLabel,
|
|
28
|
+
children: u.label
|
|
29
|
+
}), c[4] = u.label, c[5] = f);
|
|
30
|
+
let p;
|
|
31
|
+
return c[6] !== d || c[7] !== f ? (p = /* @__PURE__ */ o(i, { children: [d, f] }), c[6] = d, c[7] = f, c[8] = p) : p = c[8], p;
|
|
32
|
+
}
|
|
33
|
+
export { s as ComboboxFieldValue };
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { JSX, ReactNode } from "react";
|
|
2
|
+
import type { BoxProps } from "../Box";
|
|
3
|
+
/**
|
|
4
|
+
* Props for `ComboboxOption`: its own props plus every `div` prop except those the combobox pattern sets and the name
|
|
5
|
+
* its label gives it
|
|
6
|
+
*/
|
|
7
|
+
export interface ComboboxOptionProps extends Omit<BoxProps<"div">, "aria-disabled" | "aria-label" | "aria-labelledby" | "aria-selected" | "as" | "children" | "dangerouslySetInnerHTML" | "hidden" | "id" | "role" | "tabIndex"> {
|
|
8
|
+
/**
|
|
9
|
+
* Not accepted: the label names the option
|
|
10
|
+
*/
|
|
11
|
+
"aria-label"?: never;
|
|
12
|
+
/**
|
|
13
|
+
* Not accepted: the label names the option
|
|
14
|
+
*/
|
|
15
|
+
"aria-labelledby"?: never;
|
|
16
|
+
/**
|
|
17
|
+
* The label, which names the option
|
|
18
|
+
*/
|
|
19
|
+
children: ReactNode;
|
|
20
|
+
/**
|
|
21
|
+
* A line of muted text below the label, which describes the option
|
|
22
|
+
*/
|
|
23
|
+
description?: ReactNode;
|
|
24
|
+
/**
|
|
25
|
+
* Whether the option can be reached with the keys but not chosen. Defaults to `false`.
|
|
26
|
+
*/
|
|
27
|
+
disabled?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Content before the label, such as an `Avatar` or an icon, which a `Combobox` shows in its field too while the
|
|
30
|
+
* option is selected
|
|
31
|
+
*/
|
|
32
|
+
leading?: ReactNode;
|
|
33
|
+
/**
|
|
34
|
+
* The text filtering, type-ahead and an `Autocomplete`'s input use. Defaults to the label's text.
|
|
35
|
+
*/
|
|
36
|
+
textValue?: string;
|
|
37
|
+
/**
|
|
38
|
+
* The value this option stands for
|
|
39
|
+
*/
|
|
40
|
+
value: string;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* One option in a `Combobox` or `Autocomplete`. The selected option shows a check. To leave an option out, do not
|
|
44
|
+
* render it; an `Autocomplete` hides the options its filter rejects itself.
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* <ComboboxOption description="Design" leading={<Avatar name="Pat Lee" size="xs" />} value="pat">
|
|
48
|
+
* Pat Lee
|
|
49
|
+
* </ComboboxOption>
|
|
50
|
+
*/
|
|
51
|
+
export declare function ComboboxOption({ "aria-describedby": describedBy, children, className, description, disabled, leading, onClick, onPointerMove, ref, textValue, value, ...rest }: ComboboxOptionProps): JSX.Element;
|