@astryxdesign/core 0.2.0 → 0.3.0-canary.041a0ef
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/CHANGELOG.md +110 -0
- package/README.md +5 -3
- package/dist/AlertDialog/AlertDialog.d.ts +1 -1
- package/dist/AlertDialog/AlertDialog.js +1 -1
- package/dist/AppShell/AppShell.d.ts +2 -20
- package/dist/AppShell/AppShell.d.ts.map +1 -1
- package/dist/AppShell/AppShell.js +25 -18
- package/dist/AppShell/index.d.ts +20 -1
- package/dist/AppShell/index.d.ts.map +1 -1
- package/dist/AppShell/index.js +14 -0
- package/dist/AspectRatio/AspectRatio.d.ts +1 -1
- package/dist/AspectRatio/AspectRatio.js +1 -1
- package/dist/Avatar/Avatar.d.ts +1 -1
- package/dist/Avatar/Avatar.d.ts.map +1 -1
- package/dist/Avatar/Avatar.js +37 -24
- package/dist/Avatar/AvatarStatusDot.d.ts +2 -26
- package/dist/Avatar/AvatarStatusDot.d.ts.map +1 -1
- package/dist/Avatar/AvatarStatusDot.js +1 -22
- package/dist/Avatar/index.d.ts +26 -1
- package/dist/Avatar/index.d.ts.map +1 -1
- package/dist/Avatar/index.js +21 -0
- package/dist/AvatarGroup/AvatarGroup.d.ts +1 -1
- package/dist/AvatarGroup/AvatarGroup.d.ts.map +1 -1
- package/dist/AvatarGroup/AvatarGroup.js +4 -8
- package/dist/AvatarGroup/AvatarGroupOverflow.d.ts +2 -2
- package/dist/AvatarGroup/AvatarGroupOverflow.d.ts.map +1 -1
- package/dist/AvatarGroup/AvatarGroupOverflow.js +9 -6
- package/dist/Badge/Badge.d.ts +2 -30
- package/dist/Badge/Badge.d.ts.map +1 -1
- package/dist/Badge/Badge.js +2 -17
- package/dist/Badge/index.d.ts +31 -2
- package/dist/Badge/index.d.ts.map +1 -1
- package/dist/Badge/index.js +15 -1
- package/dist/Banner/Banner.d.ts +2 -37
- package/dist/Banner/Banner.d.ts.map +1 -1
- package/dist/Banner/Banner.js +21 -48
- package/dist/Banner/index.d.ts +37 -1
- package/dist/Banner/index.d.ts.map +1 -1
- package/dist/Banner/index.js +27 -0
- package/dist/Blockquote/Blockquote.d.ts +1 -1
- package/dist/Blockquote/Blockquote.js +1 -1
- package/dist/Breadcrumbs/BreadcrumbItem.d.ts +1 -1
- package/dist/Breadcrumbs/BreadcrumbItem.d.ts.map +1 -1
- package/dist/Breadcrumbs/BreadcrumbItem.js +22 -8
- package/dist/Breadcrumbs/Breadcrumbs.d.ts +2 -18
- package/dist/Breadcrumbs/Breadcrumbs.d.ts.map +1 -1
- package/dist/Breadcrumbs/Breadcrumbs.js +1 -15
- package/dist/Breadcrumbs/index.d.ts +18 -1
- package/dist/Breadcrumbs/index.d.ts.map +1 -1
- package/dist/Breadcrumbs/index.js +14 -0
- package/dist/Button/Button.d.ts +3 -21
- package/dist/Button/Button.d.ts.map +1 -1
- package/dist/Button/Button.js +17 -34
- package/dist/Button/index.d.ts +21 -3
- package/dist/Button/index.d.ts.map +1 -1
- package/dist/Button/index.js +15 -1
- package/dist/ButtonGroup/ButtonGroup.d.ts +1 -1
- package/dist/ButtonGroup/ButtonGroup.js +1 -1
- package/dist/Calendar/Calendar.d.ts.map +1 -1
- package/dist/Calendar/Calendar.js +3 -2
- package/dist/Calendar/index.d.ts +1 -1
- package/dist/Calendar/index.d.ts.map +1 -1
- package/dist/Calendar/index.js +1 -1
- package/dist/Calendar/styles.d.ts +2 -4
- package/dist/Calendar/styles.d.ts.map +1 -1
- package/dist/Calendar/styles.js +2 -4
- package/dist/Calendar/utils.d.ts +0 -4
- package/dist/Calendar/utils.d.ts.map +1 -1
- package/dist/Calendar/utils.js +1 -8
- package/dist/Card/Card.d.ts +1 -1
- package/dist/Card/Card.js +1 -1
- package/dist/Carousel/Carousel.d.ts +54 -3
- package/dist/Carousel/Carousel.d.ts.map +1 -1
- package/dist/Carousel/Carousel.js +90 -27
- package/dist/Carousel/index.d.ts +1 -1
- package/dist/Carousel/index.d.ts.map +1 -1
- package/dist/Center/Center.d.ts +21 -4
- package/dist/Center/Center.d.ts.map +1 -1
- package/dist/Center/Center.js +11 -3
- package/dist/Chat/ChatComposer.d.ts +1 -1
- package/dist/Chat/ChatComposer.js +9 -9
- package/dist/Chat/ChatComposerDrawer.d.ts +1 -1
- package/dist/Chat/ChatComposerDrawer.js +5 -5
- package/dist/Chat/ChatComposerInput.d.ts +1 -1
- package/dist/Chat/ChatComposerInput.js +1 -1
- package/dist/Chat/ChatDictationButton.d.ts +1 -1
- package/dist/Chat/ChatDictationButton.js +1 -1
- package/dist/Chat/ChatLayout.d.ts +8 -1
- package/dist/Chat/ChatLayout.d.ts.map +1 -1
- package/dist/Chat/ChatLayout.js +15 -4
- package/dist/Chat/ChatLayoutScrollButton.d.ts +1 -1
- package/dist/Chat/ChatLayoutScrollButton.d.ts.map +1 -1
- package/dist/Chat/ChatLayoutScrollButton.js +2 -1
- package/dist/Chat/ChatMessage.d.ts +1 -1
- package/dist/Chat/ChatMessage.js +1 -1
- package/dist/Chat/ChatMessageBubble.d.ts +1 -1
- package/dist/Chat/ChatMessageBubble.js +1 -1
- package/dist/Chat/ChatMessageList.d.ts +1 -1
- package/dist/Chat/ChatMessageList.js +1 -1
- package/dist/Chat/ChatSendButton.d.ts.map +1 -1
- package/dist/Chat/ChatSendButton.js +4 -2
- package/dist/Chat/ChatSystemMessage.d.ts +1 -1
- package/dist/Chat/ChatSystemMessage.js +1 -1
- package/dist/Chat/ChatTokenizedText.d.ts +1 -1
- package/dist/Chat/ChatTokenizedText.js +1 -1
- package/dist/Chat/ChatToolCalls.d.ts.map +1 -1
- package/dist/Chat/ChatToolCalls.js +17 -17
- package/dist/CheckboxInput/CheckboxInput.d.ts +1 -1
- package/dist/CheckboxInput/CheckboxInput.d.ts.map +1 -1
- package/dist/CheckboxInput/CheckboxInput.js +3 -3
- package/dist/CheckboxList/CheckboxList.d.ts +1 -1
- package/dist/CheckboxList/CheckboxList.js +1 -1
- package/dist/CheckboxList/CheckboxListItem.d.ts +1 -1
- package/dist/CheckboxList/CheckboxListItem.d.ts.map +1 -1
- package/dist/CheckboxList/CheckboxListItem.js +20 -5
- package/dist/Citation/Citation.d.ts +1 -1
- package/dist/Citation/Citation.js +1 -1
- package/dist/ClickableCard/ClickableCard.d.ts +3 -3
- package/dist/ClickableCard/ClickableCard.d.ts.map +1 -1
- package/dist/ClickableCard/ClickableCard.js +6 -14
- package/dist/Code/Code.d.ts +2 -2
- package/dist/Code/Code.js +2 -2
- package/dist/CodeBlock/CodeBlock.d.ts.map +1 -1
- package/dist/CodeBlock/CodeBlock.js +35 -18
- package/dist/Collapsible/Collapsible.d.ts +1 -1
- package/dist/Collapsible/Collapsible.d.ts.map +1 -1
- package/dist/Collapsible/Collapsible.js +36 -16
- package/dist/Collapsible/CollapsibleGroup.d.ts +1 -1
- package/dist/Collapsible/CollapsibleGroup.js +1 -1
- package/dist/Collapsible/CollapsibleGroupContext.js +1 -1
- package/dist/CommandPalette/CommandPalette.d.ts +1 -1
- package/dist/CommandPalette/CommandPalette.js +1 -1
- package/dist/CommandPalette/CommandPaletteEmpty.js +1 -1
- package/dist/CommandPalette/CommandPaletteFooter.js +1 -1
- package/dist/CommandPalette/CommandPaletteGroup.js +1 -1
- package/dist/CommandPalette/CommandPaletteInput.d.ts +2 -2
- package/dist/CommandPalette/CommandPaletteInput.d.ts.map +1 -1
- package/dist/CommandPalette/CommandPaletteInput.js +4 -2
- package/dist/CommandPalette/CommandPaletteItem.d.ts +1 -1
- package/dist/CommandPalette/CommandPaletteItem.js +1 -1
- package/dist/CommandPalette/CommandPaletteList.js +1 -1
- package/dist/ComplexSelector/ComplexSelector.d.ts +108 -0
- package/dist/ComplexSelector/ComplexSelector.d.ts.map +1 -0
- package/dist/ComplexSelector/ComplexSelector.js +310 -0
- package/dist/ComplexSelector/index.d.ts +7 -0
- package/dist/ComplexSelector/index.d.ts.map +1 -0
- package/dist/ComplexSelector/index.js +10 -0
- package/dist/ContextMenu/ContextMenu.d.ts +2 -2
- package/dist/ContextMenu/ContextMenu.d.ts.map +1 -1
- package/dist/ContextMenu/ContextMenu.js +24 -6
- package/dist/DateInput/DateInput.d.ts +9 -2
- package/dist/DateInput/DateInput.d.ts.map +1 -1
- package/dist/DateInput/DateInput.js +6 -3
- package/dist/DateRangeInput/DateRangeInput.d.ts +9 -2
- package/dist/DateRangeInput/DateRangeInput.d.ts.map +1 -1
- package/dist/DateRangeInput/DateRangeInput.js +6 -3
- package/dist/DateTimeInput/DateTimeInput.d.ts +9 -1
- package/dist/DateTimeInput/DateTimeInput.d.ts.map +1 -1
- package/dist/DateTimeInput/DateTimeInput.js +6 -3
- package/dist/Dialog/Dialog.d.ts +33 -24
- package/dist/Dialog/Dialog.d.ts.map +1 -1
- package/dist/Dialog/Dialog.js +47 -31
- package/dist/Dialog/DialogHeader.d.ts +1 -1
- package/dist/Dialog/DialogHeader.js +1 -1
- package/dist/Dialog/index.d.ts +18 -1
- package/dist/Dialog/index.d.ts.map +1 -1
- package/dist/Dialog/index.js +14 -0
- package/dist/Divider/Divider.d.ts +2 -18
- package/dist/Divider/Divider.d.ts.map +1 -1
- package/dist/Divider/Divider.js +1 -15
- package/dist/Divider/index.d.ts +18 -1
- package/dist/Divider/index.d.ts.map +1 -1
- package/dist/Divider/index.js +14 -0
- package/dist/DropdownMenu/DropdownMenu.d.ts +28 -8
- package/dist/DropdownMenu/DropdownMenu.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenu.js +75 -23
- package/dist/DropdownMenu/DropdownMenuCheckboxItem.d.ts +18 -12
- package/dist/DropdownMenu/DropdownMenuCheckboxItem.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenuCheckboxItem.js +38 -63
- package/dist/DropdownMenu/DropdownMenuItem.d.ts +8 -3
- package/dist/DropdownMenu/DropdownMenuItem.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenuItem.js +14 -5
- package/dist/DropdownMenu/DropdownMenuRadioGroup.d.ts +8 -11
- package/dist/DropdownMenu/DropdownMenuRadioGroup.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenuRadioGroup.js +3 -1
- package/dist/DropdownMenu/DropdownMenuRadioItem.d.ts +1 -1
- package/dist/DropdownMenu/DropdownMenuRadioItem.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenuRadioItem.js +6 -2
- package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts +1 -1
- package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenuSubMenu.js +14 -6
- package/dist/DropdownMenu/menuItemHover.d.ts +1 -0
- package/dist/DropdownMenu/menuItemHover.d.ts.map +1 -1
- package/dist/DropdownMenu/menuItemHover.js +1 -0
- package/dist/DropdownMenu/renderDropdownItems.d.ts.map +1 -1
- package/dist/DropdownMenu/renderDropdownItems.js +27 -16
- package/dist/EmptyState/EmptyState.d.ts +1 -1
- package/dist/EmptyState/EmptyState.js +1 -1
- package/dist/Field/Field.d.ts +1 -1
- package/dist/Field/Field.js +1 -1
- package/dist/Field/FieldLabel.d.ts +4 -3
- package/dist/Field/FieldLabel.d.ts.map +1 -1
- package/dist/Field/FieldLabel.js +48 -5
- package/dist/FieldStatus/FieldStatus.d.ts +1 -18
- package/dist/FieldStatus/FieldStatus.d.ts.map +1 -1
- package/dist/FieldStatus/FieldStatus.js +13 -17
- package/dist/FieldStatus/index.d.ts +19 -1
- package/dist/FieldStatus/index.d.ts.map +1 -1
- package/dist/FieldStatus/index.js +14 -0
- package/dist/FileInput/FileInput.js +1 -1
- package/dist/FormLayout/FormLayout.d.ts +1 -1
- package/dist/FormLayout/FormLayout.d.ts.map +1 -1
- package/dist/FormLayout/FormLayout.js +1 -1
- package/dist/Grid/Grid.d.ts +2 -10
- package/dist/Grid/Grid.d.ts.map +1 -1
- package/dist/Grid/Grid.js +1 -10
- package/dist/Grid/GridSpan.d.ts +1 -1
- package/dist/Grid/GridSpan.js +1 -1
- package/dist/HStack/HStack.d.ts +1 -1
- package/dist/HStack/HStack.js +1 -1
- package/dist/Heading/Heading.d.ts +2 -2
- package/dist/Heading/Heading.d.ts.map +1 -1
- package/dist/Heading/Heading.js +5 -4
- package/dist/HoverCard/HoverCard.d.ts +1 -1
- package/dist/HoverCard/HoverCard.js +1 -1
- package/dist/Icon/Icon.d.ts +1 -1
- package/dist/Icon/Icon.d.ts.map +1 -1
- package/dist/Icon/Icon.js +4 -2
- package/dist/Icon/defaultIcons.d.ts.map +1 -1
- package/dist/Icon/defaultIcons.js +14 -0
- package/dist/Icon/globalIconRegistry.d.ts +48 -6
- package/dist/Icon/globalIconRegistry.d.ts.map +1 -1
- package/dist/Icon/globalIconRegistry.js +74 -7
- package/dist/Icon/index.d.ts +4 -3
- package/dist/Icon/index.d.ts.map +1 -1
- package/dist/Icon/index.js +2 -1
- package/dist/Icon/useIcon.d.ts +14 -0
- package/dist/Icon/useIcon.d.ts.map +1 -0
- package/dist/Icon/useIcon.js +21 -0
- package/dist/IconButton/IconButton.d.ts +1 -1
- package/dist/IconButton/IconButton.js +1 -1
- package/dist/InputGroup/InputGroup.d.ts +1 -1
- package/dist/InputGroup/InputGroup.js +1 -1
- package/dist/InputGroup/InputGroupText.d.ts +1 -1
- package/dist/InputGroup/InputGroupText.js +1 -1
- package/dist/Item/Item.d.ts +17 -4
- package/dist/Item/Item.d.ts.map +1 -1
- package/dist/Item/Item.js +36 -15
- package/dist/Kbd/Kbd.d.ts +1 -1
- package/dist/Kbd/Kbd.js +1 -1
- package/dist/Layout/Layout.d.ts +1 -1
- package/dist/Layout/Layout.js +1 -1
- package/dist/Layout/LayoutContent.d.ts +1 -1
- package/dist/Layout/LayoutContent.js +1 -1
- package/dist/Layout/LayoutFooter.d.ts +1 -1
- package/dist/Layout/LayoutFooter.js +1 -1
- package/dist/Layout/LayoutHeader.d.ts +1 -1
- package/dist/Layout/LayoutHeader.js +1 -1
- package/dist/Layout/LayoutPanel.d.ts +1 -1
- package/dist/Layout/LayoutPanel.js +1 -1
- package/dist/Lightbox/Lightbox.d.ts +6 -4
- package/dist/Lightbox/Lightbox.d.ts.map +1 -1
- package/dist/Lightbox/Lightbox.js +173 -79
- package/dist/Link/Link.d.ts +1 -1
- package/dist/Link/Link.d.ts.map +1 -1
- package/dist/Link/Link.js +5 -6
- package/dist/Link/LinkProvider.d.ts +2 -2
- package/dist/Link/LinkProvider.js +2 -2
- package/dist/List/List.d.ts +1 -1
- package/dist/List/List.js +1 -1
- package/dist/List/ListItem.d.ts +12 -2
- package/dist/List/ListItem.d.ts.map +1 -1
- package/dist/List/ListItem.js +3 -1
- package/dist/Markdown/Markdown.d.ts.map +1 -1
- package/dist/Markdown/Markdown.js +35 -13
- package/dist/MetadataList/MetadataList.d.ts +2 -2
- package/dist/MetadataList/MetadataList.d.ts.map +1 -1
- package/dist/MetadataList/MetadataList.js +38 -12
- package/dist/MetadataList/MetadataListItem.d.ts +1 -1
- package/dist/MetadataList/MetadataListItem.js +1 -1
- package/dist/MobileNav/MobileNav.d.ts +1 -1
- package/dist/MobileNav/MobileNav.js +9 -9
- package/dist/MoreMenu/MoreMenu.d.ts +1 -1
- package/dist/MoreMenu/MoreMenu.js +3 -3
- package/dist/MultiSelector/MultiSelector.d.ts +13 -4
- package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
- package/dist/MultiSelector/MultiSelector.js +155 -54
- package/dist/NavIcon/NavIcon.d.ts +1 -1
- package/dist/NavIcon/NavIcon.js +1 -1
- package/dist/NavMenu/index.d.ts +0 -2
- package/dist/NavMenu/index.d.ts.map +1 -1
- package/dist/NavMenu/index.js +1 -3
- package/dist/NumberInput/NumberInput.d.ts +1 -1
- package/dist/NumberInput/NumberInput.d.ts.map +1 -1
- package/dist/NumberInput/NumberInput.js +19 -7
- package/dist/Outline/Outline.d.ts.map +1 -1
- package/dist/Outline/Outline.js +3 -4
- package/dist/OverflowList/OverflowList.d.ts +1 -1
- package/dist/OverflowList/OverflowList.js +1 -1
- package/dist/Pagination/Pagination.d.ts +26 -21
- package/dist/Pagination/Pagination.d.ts.map +1 -1
- package/dist/Pagination/Pagination.js +204 -78
- package/dist/Pagination/index.d.ts +22 -1
- package/dist/Pagination/index.d.ts.map +1 -1
- package/dist/Pagination/index.js +14 -0
- package/dist/Popover/Popover.d.ts +20 -3
- package/dist/Popover/Popover.d.ts.map +1 -1
- package/dist/Popover/Popover.js +5 -1
- package/dist/Popover/usePopover.d.ts.map +1 -1
- package/dist/Popover/usePopover.js +14 -3
- package/dist/PowerSearch/PowerSearch.d.ts +1 -1
- package/dist/PowerSearch/PowerSearch.js +1 -1
- package/dist/PowerSearch/PowerSearchEditPopover.d.ts.map +1 -1
- package/dist/PowerSearch/PowerSearchEditPopover.js +7 -0
- package/dist/ProgressBar/ProgressBar.d.ts +56 -22
- package/dist/ProgressBar/ProgressBar.d.ts.map +1 -1
- package/dist/ProgressBar/ProgressBar.js +169 -22
- package/dist/ProgressBar/ProgressBarMarkTooltip.d.ts +27 -0
- package/dist/ProgressBar/ProgressBarMarkTooltip.d.ts.map +1 -0
- package/dist/ProgressBar/ProgressBarMarkTooltip.js +35 -0
- package/dist/ProgressBar/index.d.ts +21 -1
- package/dist/ProgressBar/index.d.ts.map +1 -1
- package/dist/ProgressBar/index.js +14 -0
- package/dist/RadioList/RadioList.d.ts +1 -1
- package/dist/RadioList/RadioList.js +1 -1
- package/dist/RadioList/RadioListItem.d.ts +1 -1
- package/dist/RadioList/RadioListItem.d.ts.map +1 -1
- package/dist/RadioList/RadioListItem.js +2 -2
- package/dist/Resizable/ResizeHandle.d.ts.map +1 -1
- package/dist/Resizable/ResizeHandle.js +17 -14
- package/dist/Section/Section.d.ts +2 -19
- package/dist/Section/Section.d.ts.map +1 -1
- package/dist/Section/Section.js +1 -15
- package/dist/Section/index.d.ts +19 -1
- package/dist/Section/index.d.ts.map +1 -1
- package/dist/Section/index.js +14 -0
- package/dist/SegmentedControl/SegmentedControl.d.ts +1 -1
- package/dist/SegmentedControl/SegmentedControl.js +1 -1
- package/dist/SegmentedControl/SegmentedControlItem.d.ts +1 -1
- package/dist/SegmentedControl/SegmentedControlItem.d.ts.map +1 -1
- package/dist/SegmentedControl/SegmentedControlItem.js +6 -6
- package/dist/SelectableCard/SelectableCard.d.ts +4 -3
- package/dist/SelectableCard/SelectableCard.d.ts.map +1 -1
- package/dist/SelectableCard/SelectableCard.js +18 -14
- package/dist/Selector/Selector.d.ts +14 -4
- package/dist/Selector/Selector.d.ts.map +1 -1
- package/dist/Selector/Selector.js +247 -77
- package/dist/Selector/hooks.d.ts +18 -6
- package/dist/Selector/hooks.d.ts.map +1 -1
- package/dist/Selector/hooks.js +57 -40
- package/dist/SideNav/SideNav.d.ts +1 -1
- package/dist/SideNav/SideNav.d.ts.map +1 -1
- package/dist/SideNav/SideNav.js +2 -2
- package/dist/SideNav/SideNavCollapseButton.d.ts +2 -2
- package/dist/SideNav/SideNavCollapseButton.d.ts.map +1 -1
- package/dist/SideNav/SideNavCollapseButton.js +30 -14
- package/dist/SideNav/SideNavHeading.d.ts +1 -1
- package/dist/SideNav/SideNavHeading.d.ts.map +1 -1
- package/dist/SideNav/SideNavHeading.js +57 -20
- package/dist/SideNav/SideNavItem.d.ts +2 -2
- package/dist/SideNav/SideNavItem.d.ts.map +1 -1
- package/dist/SideNav/SideNavItem.js +30 -25
- package/dist/SideNav/SideNavSection.d.ts +1 -1
- package/dist/SideNav/SideNavSection.js +1 -1
- package/dist/Skeleton/Skeleton.d.ts +1 -1
- package/dist/Skeleton/Skeleton.d.ts.map +1 -1
- package/dist/Skeleton/Skeleton.js +3 -3
- package/dist/Slider/Slider.d.ts.map +1 -1
- package/dist/Slider/Slider.js +78 -68
- package/dist/Spinner/Spinner.d.ts +1 -1
- package/dist/Spinner/Spinner.js +1 -1
- package/dist/Stack/Stack.d.ts +1 -1
- package/dist/Stack/Stack.js +1 -1
- package/dist/Stack/StackItem.d.ts +1 -1
- package/dist/Stack/StackItem.js +1 -1
- package/dist/Stack/stack.stylex.d.ts +3 -3
- package/dist/StatusDot/StatusDot.d.ts +1 -20
- package/dist/StatusDot/StatusDot.d.ts.map +1 -1
- package/dist/StatusDot/StatusDot.js +2 -17
- package/dist/StatusDot/index.d.ts +21 -1
- package/dist/StatusDot/index.d.ts.map +1 -1
- package/dist/StatusDot/index.js +14 -0
- package/dist/Switch/Switch.d.ts +2 -6
- package/dist/Switch/Switch.d.ts.map +1 -1
- package/dist/Switch/Switch.js +28 -20
- package/dist/TabList/Tab.d.ts +1 -1
- package/dist/TabList/Tab.d.ts.map +1 -1
- package/dist/TabList/Tab.js +3 -4
- package/dist/TabList/TabList.d.ts +1 -1
- package/dist/TabList/TabList.js +1 -1
- package/dist/TabList/TabMenu.d.ts +1 -1
- package/dist/TabList/TabMenu.d.ts.map +1 -1
- package/dist/TabList/TabMenu.js +52 -22
- package/dist/Table/BaseTable.d.ts +1 -1
- package/dist/Table/BaseTable.d.ts.map +1 -1
- package/dist/Table/BaseTable.js +4 -7
- package/dist/Table/Table.d.ts +1 -1
- package/dist/Table/Table.js +1 -1
- package/dist/Table/TableCell.d.ts +1 -1
- package/dist/Table/TableCell.js +4 -2
- package/dist/Table/TableHeaderCell.d.ts +1 -1
- package/dist/Table/TableHeaderCell.js +4 -2
- package/dist/Table/TableRow.d.ts +1 -1
- package/dist/Table/TableRow.js +1 -1
- package/dist/Table/index.d.ts +1 -1
- package/dist/Table/index.d.ts.map +1 -1
- package/dist/Table/index.js +1 -1
- package/dist/Table/plugins/groupedRows/useTableGroupedRows.d.ts +1 -1
- package/dist/Table/plugins/groupedRows/useTableGroupedRows.d.ts.map +1 -1
- package/dist/Table/plugins/groupedRows/useTableGroupedRows.js +22 -18
- package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts +18 -3
- package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts.map +1 -1
- package/dist/Table/plugins/rowExpansion/useTableRowExpansion.js +55 -43
- package/dist/Table/plugins/sortable/useTableSortable.d.ts.map +1 -1
- package/dist/Table/plugins/sortable/useTableSortable.js +23 -4
- package/dist/Table/plugins/tree/useTableTreeData.d.ts +11 -0
- package/dist/Table/plugins/tree/useTableTreeData.d.ts.map +1 -1
- package/dist/Table/plugins/tree/useTableTreeData.js +65 -35
- package/dist/Table/tableContextMenu.d.ts.map +1 -1
- package/dist/Table/tableContextMenu.js +2 -1
- package/dist/Table/types.d.ts +5 -9
- package/dist/Table/types.d.ts.map +1 -1
- package/dist/Text/Text.d.ts +11 -2
- package/dist/Text/Text.d.ts.map +1 -1
- package/dist/Text/Text.js +26 -3
- package/dist/Text/index.d.ts +31 -1
- package/dist/Text/index.d.ts.map +1 -1
- package/dist/Text/index.js +23 -0
- package/dist/TextArea/TextArea.d.ts +1 -1
- package/dist/TextArea/TextArea.d.ts.map +1 -1
- package/dist/TextArea/TextArea.js +111 -41
- package/dist/TextInput/TextInput.d.ts +1 -1
- package/dist/TextInput/TextInput.d.ts.map +1 -1
- package/dist/TextInput/TextInput.js +4 -3
- package/dist/Thumbnail/Thumbnail.d.ts.map +1 -1
- package/dist/Thumbnail/Thumbnail.js +28 -16
- package/dist/TimeInput/TimeInput.d.ts.map +1 -1
- package/dist/TimeInput/TimeInput.js +3 -2
- package/dist/Timestamp/Timestamp.d.ts +26 -12
- package/dist/Timestamp/Timestamp.d.ts.map +1 -1
- package/dist/Timestamp/Timestamp.js +128 -65
- package/dist/Timestamp/TimestampHoverCard.d.ts +45 -0
- package/dist/Timestamp/TimestampHoverCard.d.ts.map +1 -0
- package/dist/Timestamp/TimestampHoverCard.js +228 -0
- package/dist/Timestamp/formatInstant.d.ts +3 -3
- package/dist/Timestamp/formatInstant.d.ts.map +1 -1
- package/dist/Timestamp/formatInstant.js +7 -2
- package/dist/Timestamp/tooltipEntries.d.ts +17 -2
- package/dist/Timestamp/tooltipEntries.d.ts.map +1 -1
- package/dist/Timestamp/tooltipEntries.js +4 -2
- package/dist/Toast/ToastViewport.d.ts.map +1 -1
- package/dist/Toast/ToastViewport.js +61 -9
- package/dist/ToggleButton/ToggleButton.d.ts +1 -1
- package/dist/ToggleButton/ToggleButton.d.ts.map +1 -1
- package/dist/ToggleButton/ToggleButton.js +4 -2
- package/dist/ToggleButton/ToggleButtonGroup.d.ts +1 -1
- package/dist/ToggleButton/ToggleButtonGroup.d.ts.map +1 -1
- package/dist/ToggleButton/ToggleButtonGroup.js +1 -1
- package/dist/Token/Token.d.ts +6 -28
- package/dist/Token/Token.d.ts.map +1 -1
- package/dist/Token/Token.js +84 -64
- package/dist/Token/TokenLink.d.ts +62 -0
- package/dist/Token/TokenLink.d.ts.map +1 -0
- package/dist/Token/TokenLink.js +76 -0
- package/dist/Token/index.d.ts +27 -1
- package/dist/Token/index.d.ts.map +1 -1
- package/dist/Token/index.js +14 -0
- package/dist/Tokenizer/Tokenizer.d.ts +1 -1
- package/dist/Tokenizer/Tokenizer.d.ts.map +1 -1
- package/dist/Tokenizer/Tokenizer.js +5 -3
- package/dist/Toolbar/Toolbar.d.ts +1 -1
- package/dist/Toolbar/Toolbar.js +1 -1
- package/dist/Tooltip/Tooltip.d.ts +1 -1
- package/dist/Tooltip/Tooltip.js +1 -1
- package/dist/TopNav/TopNav.d.ts +1 -1
- package/dist/TopNav/TopNav.d.ts.map +1 -1
- package/dist/TopNav/TopNav.js +7 -6
- package/dist/TopNav/TopNavHeading.d.ts +2 -8
- package/dist/TopNav/TopNavHeading.d.ts.map +1 -1
- package/dist/TopNav/TopNavHeading.js +56 -20
- package/dist/TopNav/TopNavItem.d.ts +1 -1
- package/dist/TopNav/TopNavItem.d.ts.map +1 -1
- package/dist/TopNav/TopNavItem.js +4 -10
- package/dist/TopNav/TopNavMegaMenu.d.ts +1 -1
- package/dist/TopNav/TopNavMegaMenu.d.ts.map +1 -1
- package/dist/TopNav/TopNavMegaMenu.js +89 -42
- package/dist/TopNav/TopNavMegaMenuFeaturedCard.d.ts +1 -1
- package/dist/TopNav/TopNavMegaMenuFeaturedCard.js +1 -1
- package/dist/TopNav/TopNavMegaMenuItem.d.ts +1 -1
- package/dist/TopNav/TopNavMegaMenuItem.d.ts.map +1 -1
- package/dist/TopNav/TopNavMegaMenuItem.js +23 -4
- package/dist/TopNav/TopNavMenu.d.ts +1 -1
- package/dist/TopNav/TopNavMenu.d.ts.map +1 -1
- package/dist/TopNav/TopNavMenu.js +84 -33
- package/dist/TreeList/TreeList.d.ts +1 -1
- package/dist/TreeList/TreeList.d.ts.map +1 -1
- package/dist/TreeList/TreeList.js +14 -1
- package/dist/TreeList/TreeListBranches.d.ts +1 -1
- package/dist/TreeList/TreeListBranches.d.ts.map +1 -1
- package/dist/TreeList/TreeListBranches.js +15 -5
- package/dist/TreeList/TreeListItem.d.ts +12 -2
- package/dist/TreeList/TreeListItem.d.ts.map +1 -1
- package/dist/TreeList/TreeListItem.js +58 -30
- package/dist/TreeList/TreeListTypes.d.ts +1 -17
- package/dist/TreeList/TreeListTypes.d.ts.map +1 -1
- package/dist/TreeList/index.d.ts +18 -1
- package/dist/TreeList/index.d.ts.map +1 -1
- package/dist/TreeList/index.js +14 -0
- package/dist/Typeahead/BaseTypeahead.d.ts +10 -1
- package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
- package/dist/Typeahead/BaseTypeahead.js +17 -3
- package/dist/Typeahead/Typeahead.d.ts +1 -1
- package/dist/Typeahead/Typeahead.d.ts.map +1 -1
- package/dist/Typeahead/Typeahead.js +9 -2
- package/dist/Typeahead/TypeaheadItem.d.ts +1 -1
- package/dist/Typeahead/TypeaheadItem.js +1 -1
- package/dist/VStack/VStack.d.ts +1 -1
- package/dist/VStack/VStack.js +1 -1
- package/dist/VisuallyHidden/VisuallyHidden.d.ts +1 -1
- package/dist/VisuallyHidden/VisuallyHidden.js +1 -1
- package/dist/astryx.css +143 -46
- package/dist/astryx.umd.js +52 -56
- package/dist/astryx.umd.js.map +4 -4
- package/dist/hooks/containerReveal.pool.stylex.d.ts +303 -0
- package/dist/hooks/containerReveal.pool.stylex.d.ts.map +1 -0
- package/dist/hooks/containerReveal.pool.stylex.js +292 -0
- package/dist/hooks/index.d.ts +2 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +2 -1
- package/dist/hooks/useContainerReveal.d.ts +83 -0
- package/dist/hooks/useContainerReveal.d.ts.map +1 -0
- package/dist/hooks/useContainerReveal.js +123 -0
- package/dist/hooks/useGridFocus.d.ts +8 -6
- package/dist/hooks/useGridFocus.d.ts.map +1 -1
- package/dist/hooks/useInputContainer.d.ts.map +1 -1
- package/dist/hooks/useInputContainer.js +29 -1
- package/dist/hooks/useInputStatusIcon.d.ts.map +1 -1
- package/dist/hooks/useInputStatusIcon.js +11 -0
- package/dist/hooks/useKeyboardHint.d.ts +2 -2
- package/dist/hooks/useKeyboardHint.d.ts.map +1 -1
- package/dist/hooks/useKeyboardHint.js +5 -3
- package/dist/hooks/useListFocus.d.ts +8 -7
- package/dist/hooks/useListFocus.d.ts.map +1 -1
- package/dist/hooks/useLongPress.d.ts.map +1 -1
- package/dist/hooks/useLongPress.js +12 -2
- package/dist/hooks/useStreamingText.d.ts +18 -3
- package/dist/hooks/useStreamingText.d.ts.map +1 -1
- package/dist/hooks/useStreamingText.js +47 -7
- package/dist/hooks/useTreeFocus.d.ts.map +1 -1
- package/dist/hooks/useTreeFocus.js +13 -2
- package/dist/hooks/useTypeahead.d.ts +3 -2
- package/dist/hooks/useTypeahead.d.ts.map +1 -1
- package/dist/hooks/useTypeahead.js +19 -7
- package/dist/i18n/InternationalizationProvider.d.ts +6 -0
- package/dist/i18n/InternationalizationProvider.d.ts.map +1 -1
- package/dist/i18n/useDirection.d.ts.map +1 -1
- package/dist/i18n/useDirection.js +6 -3
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/theme/Theme.d.ts.map +1 -1
- package/dist/theme/Theme.js +2 -7
- package/dist/theme/contrast.d.ts +45 -0
- package/dist/theme/contrast.d.ts.map +1 -0
- package/dist/theme/contrast.js +88 -0
- package/dist/theme/defineTheme.d.ts +9 -3
- package/dist/theme/defineTheme.d.ts.map +1 -1
- package/dist/theme/defineTheme.js +6 -4
- package/dist/theme/derivedVarRegistry.d.ts +8 -0
- package/dist/theme/derivedVarRegistry.d.ts.map +1 -1
- package/dist/theme/derivedVarRegistry.js +5 -13
- package/dist/theme/expandColorScale.d.ts +32 -3
- package/dist/theme/expandColorScale.d.ts.map +1 -1
- package/dist/theme/expandColorScale.js +102 -13
- package/dist/theme/expandTypeScale.d.ts.map +1 -1
- package/dist/theme/expandTypeScale.js +17 -0
- package/dist/theme/generateThemeRules.d.ts +0 -6
- package/dist/theme/generateThemeRules.d.ts.map +1 -1
- package/dist/theme/generateThemeRules.js +11 -15
- package/dist/theme/index.d.ts +9 -7
- package/dist/theme/index.d.ts.map +1 -1
- package/dist/theme/index.js +4 -3
- package/dist/theme/themeRegistry.d.ts +32 -0
- package/dist/theme/themeRegistry.d.ts.map +1 -0
- package/dist/theme/themeRegistry.js +49 -0
- package/dist/theme/tokens.stylex.d.ts +0 -17
- package/dist/theme/tokens.stylex.d.ts.map +1 -1
- package/dist/theme/tokens.stylex.js +0 -22
- package/dist/theme/types.d.ts +10 -2
- package/dist/theme/types.d.ts.map +1 -1
- package/dist/theme/useTheme.d.ts +9 -0
- package/dist/theme/useTheme.d.ts.map +1 -1
- package/dist/theme/useTheme.js +82 -27
- package/dist/utils/focusOutline.stylex.d.ts +74 -0
- package/dist/utils/focusOutline.stylex.d.ts.map +1 -0
- package/dist/utils/focusOutline.stylex.js +95 -0
- package/dist/utils/rtlStyles.d.ts +23 -2
- package/dist/utils/rtlStyles.d.ts.map +1 -1
- package/dist/utils/rtlStyles.js +28 -3
- package/groups.doc.mjs +2 -2
- package/locales/en.json +128 -0
- package/locales/pseudo.json +96 -0
- package/package.json +9 -13
- package/src/AlertDialog/AlertDialog.doc.mjs +3 -3
- package/src/AlertDialog/AlertDialog.tsx +1 -1
- package/src/AlertDialog/useImperativeAlertDialog.doc.mjs +1 -1
- package/src/AppShell/AppShell.doc.mjs +3 -3
- package/src/AppShell/AppShell.test.tsx +55 -0
- package/src/AppShell/AppShell.tsx +27 -22
- package/src/AppShell/index.ts +20 -1
- package/src/AppShell/useAppShellMobile.doc.mjs +2 -2
- package/src/AspectRatio/AspectRatio.doc.mjs +3 -3
- package/src/AspectRatio/AspectRatio.tsx +1 -1
- package/src/Avatar/Avatar.doc.mjs +5 -16
- package/src/Avatar/Avatar.test.tsx +33 -8
- package/src/Avatar/Avatar.tsx +60 -53
- package/src/Avatar/AvatarStatusDot.doc.mjs +1 -1
- package/src/Avatar/AvatarStatusDot.tsx +2 -27
- package/src/Avatar/index.ts +26 -1
- package/src/AvatarGroup/AvatarGroup.doc.mjs +3 -3
- package/src/AvatarGroup/AvatarGroup.test.tsx +21 -1
- package/src/AvatarGroup/AvatarGroup.tsx +3 -7
- package/src/AvatarGroup/AvatarGroupOverflow.doc.mjs +1 -1
- package/src/AvatarGroup/AvatarGroupOverflow.tsx +7 -12
- package/src/Badge/Badge.doc.mjs +3 -3
- package/src/Badge/Badge.tsx +2 -31
- package/src/Badge/index.ts +32 -6
- package/src/Banner/Banner.doc.mjs +3 -3
- package/src/Banner/Banner.tsx +17 -51
- package/src/Banner/index.ts +39 -7
- package/src/Blockquote/Blockquote.doc.mjs +3 -3
- package/src/Blockquote/Blockquote.tsx +1 -1
- package/src/Breadcrumbs/BreadcrumbItem.doc.mjs +1 -1
- package/src/Breadcrumbs/BreadcrumbItem.tsx +17 -5
- package/src/Breadcrumbs/Breadcrumbs.doc.mjs +3 -3
- package/src/Breadcrumbs/Breadcrumbs.test.tsx +1 -1
- package/src/Breadcrumbs/Breadcrumbs.tsx +2 -19
- package/src/Breadcrumbs/index.ts +19 -5
- package/src/Button/Button.doc.mjs +3 -3
- package/src/Button/Button.test.tsx +16 -0
- package/src/Button/Button.tsx +27 -64
- package/src/Button/index.ts +22 -7
- package/src/ButtonGroup/ButtonGroup.doc.mjs +3 -3
- package/src/ButtonGroup/ButtonGroup.tsx +1 -1
- package/src/Calendar/Calendar.doc.mjs +3 -3
- package/src/Calendar/Calendar.test.tsx +22 -6
- package/src/Calendar/Calendar.tsx +3 -2
- package/src/Calendar/index.ts +1 -6
- package/src/Calendar/styles.ts +2 -10
- package/src/Calendar/utils.ts +0 -11
- package/src/Card/Card.doc.mjs +3 -3
- package/src/Card/Card.tsx +1 -1
- package/src/Carousel/Carousel.doc.mjs +13 -3
- package/src/Carousel/Carousel.test.tsx +232 -1
- package/src/Carousel/Carousel.tsx +154 -27
- package/src/Carousel/index.ts +1 -1
- package/src/Center/Center.doc.mjs +41 -3
- package/src/Center/Center.test.tsx +75 -0
- package/src/Center/Center.tsx +38 -3
- package/src/Chat/Chat.doc.mjs +3 -3
- package/src/Chat/ChatComposer.doc.mjs +1 -1
- package/src/Chat/ChatComposer.tsx +5 -5
- package/src/Chat/ChatComposerDrawer.doc.mjs +1 -1
- package/src/Chat/ChatComposerDrawer.tsx +5 -5
- package/src/Chat/ChatComposerInput.doc.mjs +1 -1
- package/src/Chat/ChatComposerInput.tsx +1 -1
- package/src/Chat/ChatComposerTokenElement.doc.mjs +1 -1
- package/src/Chat/ChatDictationButton.doc.mjs +3 -3
- package/src/Chat/ChatDictationButton.tsx +1 -1
- package/src/Chat/ChatLayout.doc.mjs +1 -1
- package/src/Chat/ChatLayout.test.tsx +57 -0
- package/src/Chat/ChatLayout.tsx +23 -2
- package/src/Chat/ChatLayoutScrollButton.doc.mjs +1 -1
- package/src/Chat/ChatLayoutScrollButton.test.tsx +22 -0
- package/src/Chat/ChatLayoutScrollButton.tsx +2 -1
- package/src/Chat/ChatMessage.doc.mjs +1 -1
- package/src/Chat/ChatMessage.tsx +1 -1
- package/src/Chat/ChatMessageBubble.doc.mjs +1 -1
- package/src/Chat/ChatMessageBubble.tsx +1 -1
- package/src/Chat/ChatMessageList.doc.mjs +1 -1
- package/src/Chat/ChatMessageList.tsx +1 -1
- package/src/Chat/ChatMessageMetadata.doc.mjs +1 -1
- package/src/Chat/ChatSendButton.doc.mjs +1 -1
- package/src/Chat/ChatSendButton.tsx +5 -3
- package/src/Chat/ChatSystemMessage.doc.mjs +1 -1
- package/src/Chat/ChatSystemMessage.tsx +1 -1
- package/src/Chat/ChatTokenizedText.doc.mjs +1 -1
- package/src/Chat/ChatTokenizedText.tsx +1 -1
- package/src/Chat/ChatToolCalls.doc.mjs +3 -3
- package/src/Chat/ChatToolCalls.test.tsx +35 -0
- package/src/Chat/ChatToolCalls.tsx +36 -16
- package/src/CheckboxInput/CheckboxInput.doc.mjs +3 -3
- package/src/CheckboxInput/CheckboxInput.test.tsx +56 -0
- package/src/CheckboxInput/CheckboxInput.tsx +18 -3
- package/src/CheckboxList/CheckboxList.doc.mjs +3 -3
- package/src/CheckboxList/CheckboxList.test.tsx +94 -3
- package/src/CheckboxList/CheckboxList.tsx +1 -1
- package/src/CheckboxList/CheckboxListItem.doc.mjs +1 -1
- package/src/CheckboxList/CheckboxListItem.tsx +18 -11
- package/src/Citation/Citation.doc.mjs +2 -2
- package/src/Citation/Citation.tsx +1 -1
- package/src/ClickableCard/ClickableCard.doc.mjs +2 -2
- package/src/ClickableCard/ClickableCard.tsx +9 -14
- package/src/Code/Code.tsx +2 -2
- package/src/CodeBlock/Code.doc.mjs +1 -1
- package/src/CodeBlock/CodeBlock.doc.mjs +3 -3
- package/src/CodeBlock/CodeBlock.test.tsx +17 -0
- package/src/CodeBlock/CodeBlock.tsx +18 -17
- package/src/Collapsible/Collapsible.doc.mjs +3 -3
- package/src/Collapsible/Collapsible.tsx +23 -19
- package/src/Collapsible/CollapsibleGroup.doc.mjs +1 -1
- package/src/Collapsible/CollapsibleGroup.tsx +1 -1
- package/src/Collapsible/CollapsibleGroupContext.tsx +1 -1
- package/src/Collapsible/useCollapsible.doc.mjs +2 -2
- package/src/CommandPalette/CommandPalette.doc.mjs +4 -4
- package/src/CommandPalette/CommandPalette.test.tsx +29 -0
- package/src/CommandPalette/CommandPalette.tsx +1 -1
- package/src/CommandPalette/CommandPaletteEmpty.doc.mjs +1 -1
- package/src/CommandPalette/CommandPaletteEmpty.tsx +1 -1
- package/src/CommandPalette/CommandPaletteFooter.doc.mjs +1 -1
- package/src/CommandPalette/CommandPaletteFooter.tsx +1 -1
- package/src/CommandPalette/CommandPaletteGroup.doc.mjs +1 -1
- package/src/CommandPalette/CommandPaletteGroup.test.tsx +6 -2
- package/src/CommandPalette/CommandPaletteGroup.tsx +1 -1
- package/src/CommandPalette/CommandPaletteInput.doc.mjs +1 -1
- package/src/CommandPalette/CommandPaletteInput.tsx +5 -1
- package/src/CommandPalette/CommandPaletteItem.doc.mjs +1 -1
- package/src/CommandPalette/CommandPaletteItem.tsx +1 -1
- package/src/CommandPalette/CommandPaletteList.doc.mjs +1 -1
- package/src/CommandPalette/CommandPaletteList.tsx +1 -1
- package/src/ComplexSelector/ComplexSelector.doc.mjs +220 -0
- package/src/ComplexSelector/ComplexSelector.test.tsx +181 -0
- package/src/ComplexSelector/ComplexSelector.tsx +443 -0
- package/src/ComplexSelector/index.ts +17 -0
- package/src/ContextMenu/ContextMenu.doc.mjs +4 -4
- package/src/ContextMenu/ContextMenu.test.tsx +38 -2
- package/src/ContextMenu/ContextMenu.tsx +27 -6
- package/src/ContextMenu/ContextMenuItem.doc.mjs +1 -1
- package/src/DateInput/DateInput.doc.mjs +19 -4
- package/src/DateInput/DateInput.test.tsx +79 -3
- package/src/DateInput/DateInput.tsx +23 -3
- package/src/DateRangeInput/DateRangeInput.doc.mjs +11 -3
- package/src/DateRangeInput/DateRangeInput.test.tsx +97 -2
- package/src/DateRangeInput/DateRangeInput.tsx +19 -2
- package/src/DateTimeInput/DateTimeInput.doc.mjs +19 -5
- package/src/DateTimeInput/DateTimeInput.test.tsx +81 -2
- package/src/DateTimeInput/DateTimeInput.tsx +19 -2
- package/src/Dialog/Dialog.doc.mjs +7 -5
- package/src/Dialog/Dialog.test.tsx +46 -3
- package/src/Dialog/Dialog.tsx +63 -53
- package/src/Dialog/DialogHeader.doc.mjs +1 -1
- package/src/Dialog/DialogHeader.tsx +1 -1
- package/src/Dialog/index.ts +18 -1
- package/src/Dialog/useImperativeDialog.doc.mjs +1 -1
- package/src/Divider/Divider.doc.mjs +3 -3
- package/src/Divider/Divider.tsx +2 -19
- package/src/Divider/index.ts +19 -5
- package/src/DropdownMenu/DropdownMenu.doc.mjs +22 -7
- package/src/DropdownMenu/DropdownMenu.test.tsx +405 -1
- package/src/DropdownMenu/DropdownMenu.tsx +117 -50
- package/src/DropdownMenu/DropdownMenuCheckboxItem.doc.mjs +1 -1
- package/src/DropdownMenu/DropdownMenuCheckboxItem.tsx +41 -64
- package/src/DropdownMenu/DropdownMenuItem.doc.mjs +25 -5
- package/src/DropdownMenu/DropdownMenuItem.tsx +34 -7
- package/src/DropdownMenu/DropdownMenuRadioGroup.doc.mjs +5 -13
- package/src/DropdownMenu/DropdownMenuRadioGroup.tsx +9 -10
- package/src/DropdownMenu/DropdownMenuRadioItem.doc.mjs +1 -1
- package/src/DropdownMenu/DropdownMenuRadioItem.tsx +11 -2
- package/src/DropdownMenu/DropdownMenuSelectable.test.tsx +84 -2
- package/src/DropdownMenu/DropdownMenuSubMenu.doc.mjs +1 -1
- package/src/DropdownMenu/DropdownMenuSubMenu.test.tsx +90 -15
- package/src/DropdownMenu/DropdownMenuSubMenu.tsx +24 -8
- package/src/DropdownMenu/menuItemHover.ts +1 -0
- package/src/DropdownMenu/renderDropdownItems.tsx +31 -21
- package/src/EmptyState/EmptyState.doc.mjs +3 -3
- package/src/EmptyState/EmptyState.tsx +1 -1
- package/src/Field/Field.doc.mjs +7 -3
- package/src/Field/Field.tsx +1 -1
- package/src/Field/FieldLabel.doc.mjs +1 -1
- package/src/Field/FieldLabel.test.tsx +103 -0
- package/src/Field/FieldLabel.tsx +61 -5
- package/src/FieldStatus/FieldStatus.doc.mjs +3 -2
- package/src/FieldStatus/FieldStatus.test.tsx +61 -0
- package/src/FieldStatus/FieldStatus.tsx +16 -23
- package/src/FieldStatus/index.ts +20 -5
- package/src/FileInput/FileInput.doc.mjs +3 -3
- package/src/FileInput/FileInput.tsx +1 -1
- package/src/FormLayout/FormLayout.doc.mjs +3 -3
- package/src/FormLayout/FormLayout.tsx +2 -5
- package/src/Grid/Grid.doc.mjs +3 -8
- package/src/Grid/Grid.tsx +1 -25
- package/src/Grid/GridSpan.doc.mjs +1 -1
- package/src/Grid/GridSpan.tsx +1 -1
- package/src/HStack/HStack.tsx +1 -1
- package/src/Heading/Heading.tsx +4 -3
- package/src/HoverCard/HoverCard.doc.mjs +3 -3
- package/src/HoverCard/HoverCard.tsx +1 -1
- package/src/HoverCard/useHoverCard.doc.mjs +2 -2
- package/src/Icon/Icon.doc.mjs +8 -6
- package/src/Icon/Icon.test.tsx +23 -0
- package/src/Icon/Icon.tsx +4 -2
- package/src/Icon/defaultIcons.tsx +14 -0
- package/src/Icon/globalIconRegistry.test.tsx +87 -1
- package/src/Icon/globalIconRegistry.tsx +111 -9
- package/src/Icon/index.ts +9 -7
- package/src/Icon/useIcon.ts +23 -0
- package/src/IconButton/IconButton.doc.mjs +2 -2
- package/src/IconButton/IconButton.tsx +1 -1
- package/src/InputGroup/InputGroup.doc.mjs +2 -2
- package/src/InputGroup/InputGroup.tsx +1 -1
- package/src/InputGroup/InputGroupText.doc.mjs +1 -1
- package/src/InputGroup/InputGroupText.tsx +1 -1
- package/src/Item/Item.doc.mjs +8 -3
- package/src/Item/Item.test.tsx +88 -0
- package/src/Item/Item.tsx +65 -26
- package/src/Kbd/Kbd.doc.mjs +3 -3
- package/src/Kbd/Kbd.tsx +1 -1
- package/src/Layer/Layer.doc.mjs +2 -2
- package/src/Layer/useLayer.doc.mjs +2 -2
- package/src/Layout/Layout.doc.mjs +3 -3
- package/src/Layout/Layout.tsx +1 -1
- package/src/Layout/LayoutContent.doc.mjs +1 -1
- package/src/Layout/LayoutContent.tsx +1 -1
- package/src/Layout/LayoutFooter.doc.mjs +1 -1
- package/src/Layout/LayoutFooter.tsx +1 -1
- package/src/Layout/LayoutHeader.doc.mjs +1 -1
- package/src/Layout/LayoutHeader.tsx +1 -1
- package/src/Layout/LayoutPanel.doc.mjs +1 -1
- package/src/Layout/LayoutPanel.tsx +1 -1
- package/src/Lightbox/Lightbox.doc.mjs +6 -6
- package/src/Lightbox/Lightbox.test.tsx +211 -0
- package/src/Lightbox/Lightbox.tsx +152 -60
- package/src/Link/Link.doc.mjs +3 -3
- package/src/Link/Link.tsx +5 -12
- package/src/Link/LinkProvider.doc.mjs +2 -2
- package/src/Link/LinkProvider.tsx +2 -2
- package/src/List/List.doc.mjs +3 -3
- package/src/List/List.tsx +1 -1
- package/src/List/ListItem.doc.mjs +13 -1
- package/src/List/ListItem.tsx +14 -1
- package/src/Markdown/Markdown.doc.mjs +81 -1
- package/src/Markdown/Markdown.test.tsx +92 -0
- package/src/Markdown/Markdown.tsx +96 -68
- package/src/Markdown/parser.perf.test.ts +47 -35
- package/src/MetadataList/MetadataList.doc.mjs +3 -3
- package/src/MetadataList/MetadataList.test.tsx +82 -0
- package/src/MetadataList/MetadataList.tsx +45 -20
- package/src/MetadataList/MetadataListItem.doc.mjs +1 -1
- package/src/MetadataList/MetadataListItem.tsx +1 -1
- package/src/MobileNav/MobileNav.doc.mjs +3 -3
- package/src/MobileNav/MobileNav.tsx +4 -4
- package/src/MoreMenu/MoreMenu.doc.mjs +3 -3
- package/src/MoreMenu/MoreMenu.test.tsx +28 -1
- package/src/MoreMenu/MoreMenu.tsx +3 -3
- package/src/MultiSelector/MultiSelector.doc.mjs +37 -10
- package/src/MultiSelector/MultiSelector.test.tsx +396 -8
- package/src/MultiSelector/MultiSelector.tsx +254 -74
- package/src/NavIcon/NavIcon.doc.mjs +3 -3
- package/src/NavIcon/NavIcon.tsx +1 -1
- package/src/NavMenu/NavHeadingMenu.test.tsx +0 -16
- package/src/NavMenu/NavMenu.doc.mjs +2 -2
- package/src/NavMenu/index.ts +0 -4
- package/src/NumberInput/NumberInput.doc.mjs +5 -8
- package/src/NumberInput/NumberInput.test.tsx +117 -3
- package/src/NumberInput/NumberInput.tsx +30 -3
- package/src/Outline/Outline.doc.mjs +3 -3
- package/src/Outline/Outline.tsx +3 -6
- package/src/OverflowList/OverflowList.doc.mjs +3 -3
- package/src/OverflowList/OverflowList.tsx +1 -1
- package/src/Overlay/Overlay.doc.mjs +2 -2
- package/src/Pagination/Pagination.doc.mjs +55 -8
- package/src/Pagination/Pagination.test.tsx +582 -0
- package/src/Pagination/Pagination.tsx +249 -64
- package/src/Pagination/index.ts +22 -1
- package/src/Popover/Popover.doc.mjs +31 -3
- package/src/Popover/Popover.test.tsx +41 -0
- package/src/Popover/Popover.tsx +25 -2
- package/src/Popover/usePopover.doc.mjs +2 -2
- package/src/Popover/usePopover.tsx +10 -4
- package/src/PowerSearch/PowerSearch.doc.mjs +3 -3
- package/src/PowerSearch/PowerSearch.tsx +1 -1
- package/src/PowerSearch/PowerSearchEditPopover.test.tsx +42 -0
- package/src/PowerSearch/PowerSearchEditPopover.tsx +7 -0
- package/src/ProgressBar/ProgressBar.doc.mjs +24 -3
- package/src/ProgressBar/ProgressBar.test.tsx +523 -2
- package/src/ProgressBar/ProgressBar.tsx +250 -25
- package/src/ProgressBar/ProgressBarMarkTooltip.tsx +43 -0
- package/src/ProgressBar/index.ts +22 -1
- package/src/RadioList/RadioList.doc.mjs +3 -3
- package/src/RadioList/RadioList.test.tsx +26 -4
- package/src/RadioList/RadioList.tsx +1 -1
- package/src/RadioList/RadioListItem.doc.mjs +1 -1
- package/src/RadioList/RadioListItem.tsx +9 -2
- package/src/Resizable/Resizable.doc.mjs +2 -2
- package/src/Resizable/ResizeHandle.test.tsx +52 -3
- package/src/Resizable/ResizeHandle.tsx +27 -22
- package/src/Resizable/useResizable.doc.mjs +2 -2
- package/src/Section/Section.doc.mjs +3 -3
- package/src/Section/Section.tsx +2 -20
- package/src/Section/index.ts +20 -5
- package/src/SegmentedControl/SegmentedControl.doc.mjs +3 -3
- package/src/SegmentedControl/SegmentedControl.test.tsx +28 -0
- package/src/SegmentedControl/SegmentedControl.tsx +1 -1
- package/src/SegmentedControl/SegmentedControlItem.doc.mjs +1 -1
- package/src/SegmentedControl/SegmentedControlItem.tsx +23 -12
- package/src/SelectableCard/SelectableCard.doc.mjs +4 -2
- package/src/SelectableCard/SelectableCard.test.tsx +55 -0
- package/src/SelectableCard/SelectableCard.tsx +23 -12
- package/src/Selector/Selector.doc.mjs +34 -11
- package/src/Selector/Selector.test.tsx +1176 -118
- package/src/Selector/Selector.tsx +345 -96
- package/src/Selector/SelectorOption.doc.mjs +1 -1
- package/src/Selector/hooks.ts +77 -50
- package/src/SideNav/SideNav.doc.mjs +3 -3
- package/src/SideNav/SideNav.test.tsx +46 -0
- package/src/SideNav/SideNav.tsx +2 -1
- package/src/SideNav/SideNavCollapseButton.doc.mjs +1 -1
- package/src/SideNav/SideNavCollapseButton.tsx +16 -10
- package/src/SideNav/SideNavHeading.doc.mjs +1 -1
- package/src/SideNav/SideNavHeading.tsx +49 -12
- package/src/SideNav/SideNavItem.doc.mjs +1 -1
- package/src/SideNav/SideNavItem.tsx +21 -14
- package/src/SideNav/SideNavSection.doc.mjs +1 -1
- package/src/SideNav/SideNavSection.tsx +1 -1
- package/src/Skeleton/Skeleton.doc.mjs +3 -3
- package/src/Skeleton/Skeleton.test.tsx +16 -0
- package/src/Skeleton/Skeleton.tsx +14 -2
- package/src/Slider/Slider.doc.mjs +3 -3
- package/src/Slider/Slider.tsx +9 -13
- package/src/Spinner/Spinner.doc.mjs +3 -3
- package/src/Spinner/Spinner.tsx +1 -1
- package/src/Stack/Stack.doc.mjs +113 -3
- package/src/Stack/Stack.tsx +1 -1
- package/src/Stack/StackItem.tsx +1 -1
- package/src/StatusDot/StatusDot.doc.mjs +15 -6
- package/src/StatusDot/StatusDot.tsx +2 -22
- package/src/StatusDot/index.ts +22 -5
- package/src/Switch/Switch.doc.mjs +5 -5
- package/src/Switch/Switch.test.tsx +71 -25
- package/src/Switch/Switch.tsx +63 -26
- package/src/TabList/Tab.doc.mjs +1 -1
- package/src/TabList/Tab.tsx +3 -10
- package/src/TabList/TabList.doc.mjs +3 -3
- package/src/TabList/TabList.test.tsx +21 -18
- package/src/TabList/TabList.tsx +1 -1
- package/src/TabList/TabMenu.doc.mjs +1 -1
- package/src/TabList/TabMenu.tsx +25 -24
- package/src/Table/BaseTable.tsx +4 -5
- package/src/Table/Table.doc.mjs +5 -5
- package/src/Table/Table.test.tsx +27 -49
- package/src/Table/Table.tsx +1 -1
- package/src/Table/TableCell.doc.mjs +1 -1
- package/src/Table/TableCell.tsx +2 -2
- package/src/Table/TableHeaderCell.doc.mjs +1 -1
- package/src/Table/TableHeaderCell.tsx +2 -2
- package/src/Table/TableRow.doc.mjs +1 -1
- package/src/Table/TableRow.tsx +1 -1
- package/src/Table/index.ts +1 -1
- package/src/Table/plugins/groupedRows/useTableGroupedRows.tsx +30 -14
- package/src/Table/plugins/rowExpansion/useTableRowExpansion.test.tsx +19 -0
- package/src/Table/plugins/rowExpansion/useTableRowExpansion.tsx +72 -33
- package/src/Table/plugins/sortable/useTableSortable.tsx +2 -6
- package/src/Table/plugins/tree/useTableTreeData.test.tsx +161 -2
- package/src/Table/plugins/tree/useTableTreeData.tsx +97 -25
- package/src/Table/tableContextMenu.test.tsx +27 -0
- package/src/Table/tableContextMenu.tsx +1 -0
- package/src/Table/types.ts +5 -9
- package/src/Table/useTableColumnResize.doc.mjs +1 -1
- package/src/Table/useTableColumnSettings.doc.mjs +1 -1
- package/src/Table/useTableFilterState.doc.mjs +1 -1
- package/src/Table/useTableFiltering.doc.mjs +1 -1
- package/src/Table/useTableGroupedRows.doc.mjs +2 -2
- package/src/Table/useTablePagination.doc.mjs +1 -1
- package/src/Table/useTableRowExpansion.doc.mjs +57 -4
- package/src/Table/useTableRowIndex.doc.mjs +2 -2
- package/src/Table/useTableRowStatus.doc.mjs +3 -3
- package/src/Table/useTableSelection.doc.mjs +1 -1
- package/src/Table/useTableSelectionState.doc.mjs +1 -1
- package/src/Table/useTableSortable.doc.mjs +1 -1
- package/src/Table/useTableStickyColumns.doc.mjs +1 -1
- package/src/Table/useTableTreeData.doc.mjs +10 -1
- package/src/Table/useTableTreeState.doc.mjs +1 -1
- package/src/Text/Heading.doc.mjs +4 -4
- package/src/Text/Text.doc.mjs +4 -4
- package/src/Text/Text.test.tsx +42 -0
- package/src/Text/Text.tsx +26 -2
- package/src/Text/index.ts +32 -6
- package/src/TextArea/TextArea.doc.mjs +31 -7
- package/src/TextArea/TextArea.test.tsx +186 -7
- package/src/TextArea/TextArea.tsx +156 -52
- package/src/TextInput/TextInput.doc.mjs +5 -5
- package/src/TextInput/TextInput.test.tsx +77 -0
- package/src/TextInput/TextInput.tsx +7 -3
- package/src/Thumbnail/Thumbnail.doc.mjs +2 -2
- package/src/Thumbnail/Thumbnail.test.tsx +24 -1
- package/src/Thumbnail/Thumbnail.tsx +29 -43
- package/src/TimeInput/TimeInput.doc.mjs +5 -5
- package/src/TimeInput/TimeInput.test.tsx +30 -3
- package/src/TimeInput/TimeInput.tsx +6 -2
- package/src/Timestamp/Timestamp.doc.mjs +30 -24
- package/src/Timestamp/Timestamp.test.tsx +438 -107
- package/src/Timestamp/Timestamp.tsx +167 -103
- package/src/Timestamp/TimestampHoverCard.tsx +283 -0
- package/src/Timestamp/formatInstant.ts +9 -4
- package/src/Timestamp/tooltipEntries.test.ts +9 -0
- package/src/Timestamp/tooltipEntries.ts +18 -2
- package/src/Toast/Toast.doc.mjs +3 -3
- package/src/Toast/ToastViewport.test.tsx +218 -8
- package/src/Toast/ToastViewport.tsx +71 -12
- package/src/Toast/useToast.doc.mjs +2 -2
- package/src/ToggleButton/ToggleButton.doc.mjs +3 -3
- package/src/ToggleButton/ToggleButton.test.tsx +24 -0
- package/src/ToggleButton/ToggleButton.tsx +20 -2
- package/src/ToggleButton/ToggleButtonGroup.doc.mjs +1 -1
- package/src/ToggleButton/ToggleButtonGroup.tsx +3 -6
- package/src/Token/Token.doc.mjs +3 -3
- package/src/Token/Token.test.tsx +145 -0
- package/src/Token/Token.tsx +77 -86
- package/src/Token/TokenLink.tsx +107 -0
- package/src/Token/index.ts +28 -1
- package/src/Tokenizer/Tokenizer.doc.mjs +5 -5
- package/src/Tokenizer/Tokenizer.test.tsx +45 -3
- package/src/Tokenizer/Tokenizer.tsx +11 -3
- package/src/Toolbar/Toolbar.doc.mjs +3 -3
- package/src/Toolbar/Toolbar.tsx +1 -1
- package/src/Tooltip/Tooltip.doc.mjs +3 -3
- package/src/Tooltip/Tooltip.tsx +1 -1
- package/src/Tooltip/useTooltip.doc.mjs +2 -2
- package/src/TopNav/TopNav.doc.mjs +3 -3
- package/src/TopNav/TopNav.test.tsx +2 -2
- package/src/TopNav/TopNav.tsx +2 -4
- package/src/TopNav/TopNavHeading.doc.mjs +1 -12
- package/src/TopNav/TopNavHeading.tsx +44 -25
- package/src/TopNav/TopNavItem.doc.mjs +1 -1
- package/src/TopNav/TopNavItem.tsx +4 -22
- package/src/TopNav/TopNavMegaMenu.doc.mjs +1 -1
- package/src/TopNav/TopNavMegaMenu.tsx +62 -30
- package/src/TopNav/TopNavMegaMenuFeaturedCard.doc.mjs +1 -1
- package/src/TopNav/TopNavMegaMenuFeaturedCard.tsx +1 -1
- package/src/TopNav/TopNavMegaMenuItem.doc.mjs +1 -1
- package/src/TopNav/TopNavMegaMenuItem.tsx +3 -10
- package/src/TopNav/TopNavMenu.doc.mjs +1 -1
- package/src/TopNav/TopNavMenu.tsx +34 -32
- package/src/TreeList/TreeList.doc.mjs +8 -3
- package/src/TreeList/TreeList.test.tsx +216 -13
- package/src/TreeList/TreeList.tsx +23 -1
- package/src/TreeList/TreeListBranches.tsx +26 -3
- package/src/TreeList/TreeListItem.tsx +90 -52
- package/src/TreeList/TreeListTypes.ts +1 -18
- package/src/TreeList/index.ts +19 -1
- package/src/Typeahead/BaseTypeahead.doc.mjs +1 -1
- package/src/Typeahead/BaseTypeahead.tsx +30 -2
- package/src/Typeahead/Typeahead.doc.mjs +4 -3
- package/src/Typeahead/Typeahead.test.tsx +138 -3
- package/src/Typeahead/Typeahead.tsx +7 -1
- package/src/Typeahead/TypeaheadItem.doc.mjs +1 -1
- package/src/Typeahead/TypeaheadItem.tsx +1 -1
- package/src/VStack/VStack.tsx +1 -1
- package/src/VisuallyHidden/VisuallyHidden.doc.mjs +3 -3
- package/src/VisuallyHidden/VisuallyHidden.tsx +1 -1
- package/src/__tests__/babelPluginAddExtensions.test.ts +190 -0
- package/src/__tests__/forcedColors.ts +60 -0
- package/src/__tests__/inputWidthContract.test.tsx +8 -1
- package/src/doc-mjs.d.ts +5 -2
- package/src/docPropLiterals.test.ts +1 -1
- package/src/docPropReferences.test.ts +1 -1
- package/src/hooks/containerReveal.pool.stylex.ts +571 -0
- package/src/hooks/index.ts +7 -0
- package/src/hooks/useClickableContainer.doc.mjs +2 -2
- package/src/hooks/useContainerReveal.doc.mjs +75 -0
- package/src/hooks/useContainerReveal.test.tsx +116 -0
- package/src/hooks/useContainerReveal.ts +181 -0
- package/src/hooks/useEntryAnimation.doc.mjs +2 -2
- package/src/hooks/useFocusTrap.doc.mjs +2 -2
- package/src/hooks/useGridFocus.doc.mjs +2 -2
- package/src/hooks/useGridFocus.ts +8 -6
- package/src/hooks/useHotkeys.doc.mjs +2 -2
- package/src/hooks/useImageMode.doc.mjs +2 -2
- package/src/hooks/useImageMode.test.ts +1 -1
- package/src/hooks/useInputContainer.doc.mjs +2 -2
- package/src/hooks/useInputContainer.test.tsx +180 -0
- package/src/hooks/useInputContainer.ts +36 -1
- package/src/hooks/useInputStatusIcon.test.tsx +59 -0
- package/src/hooks/useInputStatusIcon.tsx +12 -1
- package/src/hooks/useKeyboardHint.doc.mjs +2 -2
- package/src/hooks/useKeyboardHint.test.tsx +22 -0
- package/src/hooks/useKeyboardHint.tsx +7 -3
- package/src/hooks/useListFocus.doc.mjs +2 -2
- package/src/hooks/useListFocus.ts +8 -7
- package/src/hooks/useLongPress.test.tsx +18 -0
- package/src/hooks/useLongPress.ts +12 -2
- package/src/hooks/useMediaQuery.doc.mjs +2 -2
- package/src/hooks/useOverflow.doc.mjs +2 -2
- package/src/hooks/useScrollLock.doc.mjs +2 -2
- package/src/hooks/useScrollOverflow.doc.mjs +2 -2
- package/src/hooks/useStreamingText.doc.mjs +2 -2
- package/src/hooks/useStreamingText.test.ts +46 -1
- package/src/hooks/useStreamingText.ts +49 -7
- package/src/hooks/useTreeFocus.doc.mjs +2 -2
- package/src/hooks/useTreeFocus.test.tsx +53 -1
- package/src/hooks/useTreeFocus.ts +13 -2
- package/src/hooks/useTypeahead.test.tsx +150 -0
- package/src/hooks/useTypeahead.ts +24 -9
- package/src/i18n/InternationalizationProvider.doc.mjs +14 -2
- package/src/i18n/InternationalizationProvider.tsx +6 -0
- package/src/i18n/useDirection.ts +6 -3
- package/src/i18n/useTranslator.doc.mjs +2 -2
- package/src/index.ts +2 -18
- package/src/theme/MediaTheme.doc.mjs +2 -2
- package/src/theme/SyntaxTheme.doc.mjs +2 -2
- package/src/theme/Theme.doc.mjs +2 -2
- package/src/theme/Theme.tsx +3 -7
- package/src/theme/contrast.test.ts +94 -0
- package/src/theme/contrast.ts +99 -0
- package/src/theme/defineTheme.test.ts +29 -30
- package/src/theme/defineTheme.ts +11 -5
- package/src/theme/derivedVarRegistry.test.ts +8 -1
- package/src/theme/derivedVarRegistry.ts +15 -6
- package/src/theme/expandColorScale.test.ts +401 -1
- package/src/theme/expandColorScale.ts +143 -19
- package/src/theme/expandTypeScale.test.ts +43 -0
- package/src/theme/expandTypeScale.ts +17 -0
- package/src/theme/generateThemeRules.test.ts +41 -20
- package/src/theme/generateThemeRules.ts +11 -15
- package/src/theme/index.ts +11 -13
- package/src/theme/themeRegistry.test.ts +59 -0
- package/src/theme/themeRegistry.ts +53 -0
- package/src/theme/tokens.stylex.ts +0 -19
- package/src/theme/types.ts +14 -13
- package/src/theme/useTheme.doc.mjs +2 -2
- package/src/theme/useTheme.test.tsx +48 -3
- package/src/theme/useTheme.ts +100 -29
- package/src/utils/focusOutline.stylex.ts +128 -0
- package/src/utils/rtlStyles.ts +24 -2
- package/dist/NavMenu/NavMenuItem.d.ts +0 -13
- package/dist/NavMenu/NavMenuItem.d.ts.map +0 -1
- package/dist/NavMenu/NavMenuItem.js +0 -16
- package/dist/Thumbnail/thumbnail.markers.stylex.d.ts +0 -9
- package/dist/Thumbnail/thumbnail.markers.stylex.d.ts.map +0 -1
- package/dist/Thumbnail/thumbnail.markers.stylex.js +0 -14
- package/dist/authoring/doc.d.ts +0 -145
- package/dist/authoring/doc.d.ts.map +0 -1
- package/dist/authoring/doc.js +0 -100
- package/dist/authoring/index.d.ts +0 -29
- package/dist/authoring/index.d.ts.map +0 -1
- package/dist/authoring/index.js +0 -28
- package/dist/authoring/integration.d.ts +0 -35
- package/dist/authoring/integration.d.ts.map +0 -1
- package/dist/authoring/integration.js +0 -30
- package/dist/authoring/template.d.ts +0 -66
- package/dist/authoring/template.d.ts.map +0 -1
- package/dist/authoring/template.js +0 -55
- package/dist/config.d.ts +0 -80
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js +0 -40
- package/dist/docs-types.d.ts +0 -969
- package/dist/docs-types.d.ts.map +0 -1
- package/dist/docs-types.js +0 -1
- package/src/NavMenu/NavMenuItem.tsx +0 -19
- package/src/Thumbnail/thumbnail.markers.stylex.ts +0 -12
- package/src/authoring/doc.ts +0 -164
- package/src/authoring/index.test.ts +0 -52
- package/src/authoring/index.ts +0 -50
- package/src/authoring/integration.ts +0 -42
- package/src/authoring/template.ts +0 -74
- package/src/config.test.ts +0 -16
- package/src/config.ts +0 -92
- package/src/docs-types.ts +0 -1108
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* @file Selector.tsx
|
|
7
|
-
* @input Uses React, StyleX, usePopover, useTooltip, Icon, InputGroupContext
|
|
7
|
+
* @input Uses React, StyleX, usePopover, useTooltip, Icon, InputGroupContext,
|
|
8
|
+
* and Selector positioning hooks
|
|
8
9
|
* @output Exports Selector component
|
|
9
10
|
* @position Core implementation; consumed by index.ts
|
|
10
11
|
*
|
|
@@ -13,7 +14,7 @@
|
|
|
13
14
|
* - /packages/core/src/Selector/Selector.test.tsx
|
|
14
15
|
* - /packages/core/src/Selector/index.ts
|
|
15
16
|
* - /apps/storybook/stories/InputGroup.stories.tsx
|
|
16
|
-
* - /packages/cli/templates/blocks/components/Selector/ (showcase blocks)
|
|
17
|
+
* - /packages/cli/assets/templates/blocks/components/Selector/ (showcase blocks)
|
|
17
18
|
*/
|
|
18
19
|
import React, { useCallback, useEffect, useId, useMemo, useOptimistic, useRef, useState, useTransition } from 'react';
|
|
19
20
|
import * as stylex from '@stylexjs/stylex';
|
|
@@ -24,11 +25,13 @@ import { Field, inputStatusBorderStyles, inputStatusHoverShadowStyles, inputWrap
|
|
|
24
25
|
import { Divider } from "../Divider/index.js";
|
|
25
26
|
import { layerAnimations } from "../Layer/layerAnimations.stylex.js";
|
|
26
27
|
import { Spinner } from "../Spinner/index.js";
|
|
28
|
+
import { TextInput } from "../TextInput/index.js";
|
|
27
29
|
import { useAnnounce } from "../hooks/useAnnounce.js";
|
|
28
30
|
import "../theme/tokens.stylex.js";
|
|
29
31
|
import { colorVars, sizeVars, spacingVars, radiusVars, durationVars, easeVars, typographyVars, fontWeightVars, typeScaleVars, borderVars } from "../theme/tokens.stylex.js";
|
|
30
32
|
import { isOptionData, isDivider, isSection, normalizeOption, getSelectableOptions } from "./utils.js";
|
|
31
33
|
import { useCombobox, useSelectedItemOffset } from "./hooks.js";
|
|
34
|
+
import { useTypeahead } from "../hooks/useTypeahead.js";
|
|
32
35
|
import { SelectorOption } from "./SelectorOption.js";
|
|
33
36
|
import { getInputARIA, mergeProps } from "../utils/index.js";
|
|
34
37
|
import { useSize } from "../SizeContext/SizeContext.js";
|
|
@@ -59,6 +62,39 @@ const styles = {
|
|
|
59
62
|
kMwMTN: "xv1l7n4",
|
|
60
63
|
$$css: true
|
|
61
64
|
},
|
|
65
|
+
triggerIcon: {
|
|
66
|
+
kmuXW: "x2lah0s",
|
|
67
|
+
$$css: true
|
|
68
|
+
},
|
|
69
|
+
triggerIconRotation: {
|
|
70
|
+
k1ekBW: "x11xpdln",
|
|
71
|
+
kIyJzY: "xuedmi6",
|
|
72
|
+
kAMwcw: "xlr8y92",
|
|
73
|
+
k3nNDw: "x1g0ag68",
|
|
74
|
+
$$css: true
|
|
75
|
+
},
|
|
76
|
+
triggerIconOpen: {
|
|
77
|
+
k3aq6I: "x19jd1h0",
|
|
78
|
+
$$css: true
|
|
79
|
+
},
|
|
80
|
+
triggerGhost: {
|
|
81
|
+
kzqmXN: "x14atkfc",
|
|
82
|
+
kMzoRj: "xc342km",
|
|
83
|
+
kWkggS: "xjbqb8w",
|
|
84
|
+
kKwaWg: "x1ilzqfv xq8i9tn",
|
|
85
|
+
kGVxlE: "x1gnnqk1 x1irk71m x15ysqaf",
|
|
86
|
+
k63SB2: "x1e4wzip",
|
|
87
|
+
kI3sdo: "x1a2a7pz x1irc7jg",
|
|
88
|
+
kInvED: "x1wfwxd8 xscfbxq",
|
|
89
|
+
k1ekBW: "xrafxwg",
|
|
90
|
+
k3aq6I: "x3oybdh xk4oym4",
|
|
91
|
+
$$css: true
|
|
92
|
+
},
|
|
93
|
+
triggerGhostDisabled: {
|
|
94
|
+
kKwaWg: "x18o3ruo",
|
|
95
|
+
k3aq6I: "x1c071of x1pdlv7q",
|
|
96
|
+
$$css: true
|
|
97
|
+
},
|
|
62
98
|
popover: {
|
|
63
99
|
k7Eaqz: "xrzjruh",
|
|
64
100
|
$$css: true
|
|
@@ -148,6 +184,11 @@ const STATUS_ICON_COLOR_MAP = {
|
|
|
148
184
|
error: 'error',
|
|
149
185
|
success: 'success'
|
|
150
186
|
};
|
|
187
|
+
const STATUS_BUTTON_LABEL_KEY = {
|
|
188
|
+
warning: '@astryx.input.statusButton.warning',
|
|
189
|
+
error: '@astryx.input.statusButton.error',
|
|
190
|
+
success: '@astryx.input.statusButton.success'
|
|
191
|
+
};
|
|
151
192
|
|
|
152
193
|
/**
|
|
153
194
|
* Without `hasClear`, the selector always has a string value (or undefined for placeholder).
|
|
@@ -218,6 +259,7 @@ export function Selector(props) {
|
|
|
218
259
|
isLoading = false,
|
|
219
260
|
placeholder: placeholderFromProps,
|
|
220
261
|
size: sizeProp,
|
|
262
|
+
variant = 'input',
|
|
221
263
|
status,
|
|
222
264
|
statusVariant = 'attached',
|
|
223
265
|
labelTooltip,
|
|
@@ -240,6 +282,7 @@ export function Selector(props) {
|
|
|
240
282
|
const searchPlaceholder = searchPlaceholderFromProps ?? t('@astryx.selector.searchPlaceholder');
|
|
241
283
|
const hasClear = hasClearProp === true;
|
|
242
284
|
const size = useSize(sizeProp, 'md');
|
|
285
|
+
const effectiveStatusVariant = variant === 'ghost' && statusVariant === 'attached' ? 'detached' : statusVariant;
|
|
243
286
|
|
|
244
287
|
// Normalize null to undefined for internal use (null is the clear sentinel)
|
|
245
288
|
const normalizedValue = value === null ? undefined : value;
|
|
@@ -249,13 +292,20 @@ export function Selector(props) {
|
|
|
249
292
|
const statusMessageId = useId();
|
|
250
293
|
const inputLabelId = useId();
|
|
251
294
|
const searchId = useId();
|
|
295
|
+
// Measure from the same outer control that usePopover anchors to; using the
|
|
296
|
+
// shorter inner button makes every size's selected row land too low.
|
|
297
|
+
const anchorRef = useRef(null);
|
|
252
298
|
const triggerRef = useRef(null);
|
|
253
299
|
const searchRef = useRef(null);
|
|
254
300
|
const inputGroup = useInputGroup();
|
|
255
301
|
const [searchQuery, setSearchQuery] = useState('');
|
|
302
|
+
// A typed query shows TextInput's built-in clear (✕) button, which becomes
|
|
303
|
+
// the next tab stop after the search input.
|
|
304
|
+
const hasQuery = searchQuery.length > 0;
|
|
256
305
|
const [, startTransition] = useTransition();
|
|
257
306
|
const [optimisticValue, setOptimisticValue] = useOptimistic(normalizedValue);
|
|
258
307
|
const isBusy = isLoading || optimisticValue !== normalizedValue;
|
|
308
|
+
const announce = useAnnounce();
|
|
259
309
|
|
|
260
310
|
// Disabled-reason tooltip. Disabled controls swallow pointer events, so the
|
|
261
311
|
// tooltip listeners attach to the trigger container (which already exists)
|
|
@@ -270,10 +320,14 @@ export function Selector(props) {
|
|
|
270
320
|
focusTrigger: 'always',
|
|
271
321
|
isEnabled: showsDisabledMessage
|
|
272
322
|
});
|
|
323
|
+
const statusTooltip = useTooltip({
|
|
324
|
+
placement: 'above',
|
|
325
|
+
isEnabled: effectiveStatusVariant === 'tooltip' && !!status?.message
|
|
326
|
+
});
|
|
273
327
|
const {
|
|
274
328
|
ariaLabelledBy,
|
|
275
329
|
ariaDescribedBy
|
|
276
|
-
} = getInputARIA(inputLabelId, [description ? descriptionId : null, status?.message ? statusMessageId : null, showsDisabledMessage ? disabledMessageTooltip.describedBy : null], inputGroup);
|
|
330
|
+
} = getInputARIA(inputLabelId, [description ? descriptionId : null, !inputGroup && effectiveStatusVariant !== 'tooltip' && status?.message ? statusMessageId : null, effectiveStatusVariant === 'tooltip' && status?.message ? statusTooltip.describedBy : null, showsDisabledMessage ? disabledMessageTooltip.describedBy : null], inputGroup);
|
|
277
331
|
|
|
278
332
|
// Flatten options for keyboard navigation
|
|
279
333
|
const selectableItems = useMemo(() => getSelectableOptions(options), [options]);
|
|
@@ -292,15 +346,15 @@ export function Selector(props) {
|
|
|
292
346
|
// Ref for listbox to measure selected item position
|
|
293
347
|
const listboxRef = useRef(null);
|
|
294
348
|
|
|
295
|
-
//
|
|
296
|
-
//
|
|
297
|
-
//
|
|
298
|
-
|
|
299
|
-
const announce = useAnnounce();
|
|
349
|
+
// Typeahead is defined below (it needs the popover), but closing and clearing
|
|
350
|
+
// must drop its pending buffer — otherwise a stale prefix survives the reset
|
|
351
|
+
// window and poisons the next keystroke ("Dog" then "c" would search "dc").
|
|
352
|
+
const resetTypeaheadRef = useRef(() => {});
|
|
300
353
|
|
|
301
354
|
// Layer for dropdown positioning
|
|
302
355
|
const handleLayerHide = useCallback(() => {
|
|
303
356
|
setSearchQuery('');
|
|
357
|
+
resetTypeaheadRef.current();
|
|
304
358
|
// Clear any lingering result count when the popover closes so stale status
|
|
305
359
|
// text does not linger in the a11y tree.
|
|
306
360
|
announce('');
|
|
@@ -328,8 +382,7 @@ export function Selector(props) {
|
|
|
328
382
|
// BaseTypeahead) rather than a reactive effect: computing the count for the
|
|
329
383
|
// next query here fires the announcement exactly once per keystroke and does
|
|
330
384
|
// not re-speak on unrelated re-renders.
|
|
331
|
-
const handleSearchChange = useCallback(
|
|
332
|
-
const nextQuery = event.target.value;
|
|
385
|
+
const handleSearchChange = useCallback(nextQuery => {
|
|
333
386
|
setSearchQuery(nextQuery);
|
|
334
387
|
if (nextQuery.length === 0) {
|
|
335
388
|
// Emptying the query clears the region rather than announcing a count.
|
|
@@ -352,7 +405,7 @@ export function Selector(props) {
|
|
|
352
405
|
selectedItemIndex,
|
|
353
406
|
listboxId,
|
|
354
407
|
listboxRef,
|
|
355
|
-
|
|
408
|
+
anchorRef
|
|
356
409
|
});
|
|
357
410
|
const selectedItemOffset = shouldOverlaySelectedItem ? rawOffset : 0;
|
|
358
411
|
const isPositioned = shouldOverlaySelectedItem ? rawIsPositioned : true;
|
|
@@ -364,6 +417,7 @@ export function Selector(props) {
|
|
|
364
417
|
// Clear the current value. Shared by the clear button and the keyboard
|
|
365
418
|
// Delete/Backspace path so clearing is reachable without a mouse.
|
|
366
419
|
const clearValue = useCallback(() => {
|
|
420
|
+
resetTypeaheadRef.current();
|
|
367
421
|
onChange?.(null);
|
|
368
422
|
if (changeAction) {
|
|
369
423
|
startTransition(async () => {
|
|
@@ -373,10 +427,25 @@ export function Selector(props) {
|
|
|
373
427
|
}
|
|
374
428
|
}, [onChange, changeAction, startTransition, setOptimisticValue]);
|
|
375
429
|
|
|
376
|
-
//
|
|
430
|
+
// Type-to-find appends to the query rather than replacing it: characters
|
|
431
|
+
// typed before focus reaches the search input must not be dropped.
|
|
432
|
+
const appendSearchQuery = useCallback(char => {
|
|
433
|
+
setSearchQuery(query => query + char);
|
|
434
|
+
}, []);
|
|
435
|
+
const commitValue = useCallback(newValue => {
|
|
436
|
+
onChange?.(newValue);
|
|
437
|
+
if (changeAction) {
|
|
438
|
+
startTransition(async () => {
|
|
439
|
+
setOptimisticValue(newValue);
|
|
440
|
+
await changeAction(newValue);
|
|
441
|
+
});
|
|
442
|
+
}
|
|
443
|
+
}, [onChange, changeAction, startTransition, setOptimisticValue]);
|
|
444
|
+
|
|
445
|
+
// Selector behavior (keyboard nav, selection)
|
|
377
446
|
const {
|
|
378
447
|
highlightedIndex,
|
|
379
|
-
setHighlightedIndex
|
|
448
|
+
setHighlightedIndex,
|
|
380
449
|
getItemId,
|
|
381
450
|
onTriggerClick,
|
|
382
451
|
onKeyDown,
|
|
@@ -384,7 +453,11 @@ export function Selector(props) {
|
|
|
384
453
|
onItemMouseEnter
|
|
385
454
|
} = useCombobox({
|
|
386
455
|
selectableItems: filteredItems,
|
|
387
|
-
value:
|
|
456
|
+
// The optimistic value, not the raw prop: with a pending changeAction the
|
|
457
|
+
// prop still holds the old selection, so the popup would open with the
|
|
458
|
+
// highlight on it and Delete/Backspace could clear a value the action has
|
|
459
|
+
// already replaced.
|
|
460
|
+
value: optimisticValue,
|
|
388
461
|
isDisabled,
|
|
389
462
|
isOpen: popover.isOpen,
|
|
390
463
|
hasSearch,
|
|
@@ -392,24 +465,56 @@ export function Selector(props) {
|
|
|
392
465
|
popover.show();
|
|
393
466
|
if (hasSearch) {
|
|
394
467
|
requestAnimationFrame(() => {
|
|
395
|
-
searchRef.current
|
|
468
|
+
const input = searchRef.current;
|
|
469
|
+
if (input) {
|
|
470
|
+
input.focus();
|
|
471
|
+
// When typing seeded the query, place the caret after it so the
|
|
472
|
+
// user keeps typing where they left off.
|
|
473
|
+
input.setSelectionRange(input.value.length, input.value.length);
|
|
474
|
+
}
|
|
396
475
|
});
|
|
397
476
|
}
|
|
398
477
|
}, [popover, hasSearch]),
|
|
399
478
|
onClose: popover.hide,
|
|
400
|
-
onSelect:
|
|
401
|
-
onChange?.(newValue);
|
|
402
|
-
if (changeAction) {
|
|
403
|
-
startTransition(async () => {
|
|
404
|
-
setOptimisticValue(newValue);
|
|
405
|
-
await changeAction(newValue);
|
|
406
|
-
});
|
|
407
|
-
}
|
|
408
|
-
}, [onChange, changeAction, startTransition, setOptimisticValue]),
|
|
479
|
+
onSelect: commitValue,
|
|
409
480
|
onClear: hasClear ? clearValue : undefined,
|
|
481
|
+
onSearchSeed: appendSearchQuery,
|
|
410
482
|
listboxId
|
|
411
483
|
});
|
|
412
484
|
|
|
485
|
+
// Type-to-select, shared with the other collections (menus, listboxes).
|
|
486
|
+
// Open, it walks the highlight — aria-activedescendant announces each match.
|
|
487
|
+
// Closed, it commits the match like a native select, which changes the value
|
|
488
|
+
// without opening the popup or moving focus, so nothing else would prompt
|
|
489
|
+
// assistive tech to re-read the trigger: announce it explicitly.
|
|
490
|
+
const typeahead = useTypeahead({
|
|
491
|
+
getItemLabels: () => selectableItems.map(item => item.label ?? item.value),
|
|
492
|
+
isDisabled: index => selectableItems[index]?.disabled === true,
|
|
493
|
+
// Cycle onward from the highlight when open, from the committed selection
|
|
494
|
+
// when closed — the optimistic one, so a pending changeAction cannot strand
|
|
495
|
+
// cycling on the first match. -1 means nothing is selected or highlighted,
|
|
496
|
+
// which the hook reads as "search from the top".
|
|
497
|
+
getCurrentIndex: () => popover.isOpen ? highlightedIndex : selectedItemIndex,
|
|
498
|
+
onMatch: index => {
|
|
499
|
+
const item = selectableItems[index];
|
|
500
|
+
if (popover.isOpen) {
|
|
501
|
+
setHighlightedIndex(index);
|
|
502
|
+
} else if (item.value !== optimisticValue) {
|
|
503
|
+
commitValue(item.value);
|
|
504
|
+
announce(item.label ?? item.value);
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
});
|
|
508
|
+
resetTypeaheadRef.current = typeahead.reset;
|
|
509
|
+
const handleTriggerKeyDown = useCallback(e => {
|
|
510
|
+
// With hasSearch the query input owns typing, so type-to-select is off.
|
|
511
|
+
if (!isDisabled && !hasSearch && typeahead.onKeyDown(e)) {
|
|
512
|
+
e.preventDefault();
|
|
513
|
+
return;
|
|
514
|
+
}
|
|
515
|
+
onKeyDown(e);
|
|
516
|
+
}, [isDisabled, hasSearch, typeahead, onKeyDown]);
|
|
517
|
+
|
|
413
518
|
// Keep the highlighted option visible during keyboard navigation. The
|
|
414
519
|
// listbox is a fixed-height scroll container, so without this the virtual
|
|
415
520
|
// cursor walks off-screen once navigation passes the visible window. Mirrors
|
|
@@ -436,41 +541,72 @@ export function Selector(props) {
|
|
|
436
541
|
}
|
|
437
542
|
return /*#__PURE__*/_jsx("div", {
|
|
438
543
|
...{
|
|
439
|
-
className: "xf314gf xu0wf1k"
|
|
544
|
+
className: "x78zum5 x6s0dn4 xf314gf xu0wf1k"
|
|
545
|
+
},
|
|
546
|
+
onKeyDown: e => {
|
|
547
|
+
// The clear (✕) button lives inside the TextInput, after the input in
|
|
548
|
+
// DOM order. When it is focused and the user tabs forward there is
|
|
549
|
+
// nothing else in the popup, so dismiss it (Shift+Tab returns to the
|
|
550
|
+
// input natively). Key events originating on the input are handled on
|
|
551
|
+
// the input below; ignore them here so we don't double-dismiss.
|
|
552
|
+
if (e.target === searchRef.current) {
|
|
553
|
+
return;
|
|
554
|
+
}
|
|
555
|
+
if (e.key === 'Tab' && !e.shiftKey) {
|
|
556
|
+
onKeyDown(e);
|
|
557
|
+
}
|
|
440
558
|
},
|
|
441
|
-
children: /*#__PURE__*/_jsx(
|
|
559
|
+
children: /*#__PURE__*/_jsx(TextInput, {
|
|
442
560
|
ref: searchRef,
|
|
443
561
|
id: searchId
|
|
562
|
+
// The search field IS a TextInput: the leading magnifier is its
|
|
563
|
+
// `startIcon` and the trailing clear (✕) is its built-in `hasClear`
|
|
564
|
+
// (which resets the value and refocuses the input). We add no bespoke
|
|
565
|
+
// affordance chrome — the field just looks and behaves like every
|
|
566
|
+
// other Astryx input.
|
|
567
|
+
,
|
|
568
|
+
label: t('@astryx.selector.searchOptions'),
|
|
569
|
+
isLabelHidden: true,
|
|
570
|
+
startIcon: "search",
|
|
571
|
+
hasClear: true,
|
|
572
|
+
size: "sm"
|
|
573
|
+
// Fill the dropdown's width (minus the wrapper's inline padding) so
|
|
574
|
+
// the field is flush end-to-end rather than sized to its content.
|
|
575
|
+
,
|
|
576
|
+
width: "100%"
|
|
444
577
|
// When hasSearch is set, focus moves into this input on open, so it —
|
|
445
578
|
// not the trigger — must be the combobox that reports the highlighted
|
|
446
579
|
// option via aria-activedescendant (comboboxes-4). A bare searchbox
|
|
447
|
-
// left the highlight silent to screen readers.
|
|
580
|
+
// left the highlight silent to screen readers. role + aria-* pass
|
|
581
|
+
// through to the underlying <input> via BaseProps.
|
|
448
582
|
,
|
|
449
583
|
role: "combobox",
|
|
450
584
|
"aria-expanded": popover.isOpen,
|
|
451
585
|
"aria-controls": listboxId,
|
|
452
586
|
"aria-autocomplete": "list",
|
|
453
587
|
"aria-activedescendant": popover.isOpen && highlightedIndex >= 0 ? getItemId(highlightedIndex) : undefined,
|
|
454
|
-
"aria-label": t('@astryx.selector.searchOptions'),
|
|
455
|
-
type: "text",
|
|
456
588
|
value: searchQuery,
|
|
457
589
|
onChange: handleSearchChange,
|
|
458
590
|
onKeyDown: e => {
|
|
459
|
-
// Arrow keys navigate options; Enter selects; Escape
|
|
591
|
+
// Arrow keys navigate options; Enter selects; Escape closes.
|
|
460
592
|
// Home/End are left to the input for caret movement (APG editable
|
|
461
593
|
// combobox); PageUp/PageDown are the sanctioned substitute for
|
|
462
594
|
// jumping to the first/last option.
|
|
463
|
-
if (e.key === 'ArrowDown' || e.key === 'ArrowUp' || e.key === 'PageUp' || e.key === 'PageDown' || e.key === 'Enter' || e.key === 'Escape'
|
|
595
|
+
if (e.key === 'ArrowDown' || e.key === 'ArrowUp' || e.key === 'PageUp' || e.key === 'PageDown' || e.key === 'Enter' || e.key === 'Escape') {
|
|
596
|
+
onKeyDown(e);
|
|
597
|
+
return;
|
|
598
|
+
}
|
|
599
|
+
// Tab: when a query is showing the clear (✕) button, forward-tab
|
|
600
|
+
// moves focus to it (keeping the popup open) so the affordance is
|
|
601
|
+
// keyboard-reachable. Every other Tab dismisses the popup as usual.
|
|
602
|
+
if (e.key === 'Tab' && (e.shiftKey || !hasQuery)) {
|
|
464
603
|
onKeyDown(e);
|
|
465
604
|
}
|
|
466
605
|
},
|
|
467
|
-
placeholder: searchPlaceholder
|
|
468
|
-
...{
|
|
469
|
-
className: "x9f619 xh8yej3 xu0wf1k xf314gf x1litavf x1y0btm7 xvy26l8 xh6dtrn x10xzikg x9ynric xcr08ib xdk3u5w x1tgivj0 x1a2a7pz xzeu18z x1wfwxd8"
|
|
470
|
-
}
|
|
606
|
+
placeholder: searchPlaceholder
|
|
471
607
|
})
|
|
472
608
|
});
|
|
473
|
-
}, [hasSearch, searchId, listboxId, searchQuery, searchPlaceholder, handleSearchChange, onKeyDown, popover.isOpen, highlightedIndex, getItemId, t]);
|
|
609
|
+
}, [hasSearch, searchId, listboxId, searchQuery, hasQuery, searchPlaceholder, handleSearchChange, onKeyDown, popover.isOpen, highlightedIndex, getItemId, t]);
|
|
474
610
|
|
|
475
611
|
// Render an individual item
|
|
476
612
|
const renderItem = useCallback((item, flatIndex) => {
|
|
@@ -495,6 +631,11 @@ export function Selector(props) {
|
|
|
495
631
|
icon: "check",
|
|
496
632
|
size: "sm",
|
|
497
633
|
color: "accent"
|
|
634
|
+
// Stable theme target on the selected-row marker, so a theme can
|
|
635
|
+
// restyle or hide it (e.g. to compose its own selected indicator
|
|
636
|
+
// via renderOption) without a structural sibling selector.
|
|
637
|
+
,
|
|
638
|
+
...themeProps('selector-check')
|
|
498
639
|
})]
|
|
499
640
|
}, item.value);
|
|
500
641
|
}, [renderOption, highlightedIndex, size, normalizedValue, getItemId, onItemSelect, onItemMouseEnter]);
|
|
@@ -505,10 +646,15 @@ export function Selector(props) {
|
|
|
505
646
|
|
|
506
647
|
// Nothing matched across every group/option: show the empty state.
|
|
507
648
|
if (isSearching && filteredItems.length === 0) {
|
|
649
|
+
// role="presentation" keeps the message out of the listbox's
|
|
650
|
+
// accessibility tree (role="listbox" only permits option/group
|
|
651
|
+
// children); the no-results outcome is announced via the
|
|
652
|
+
// result-count live region instead.
|
|
508
653
|
return [/*#__PURE__*/_jsx("div", {
|
|
509
|
-
|
|
654
|
+
role: "presentation",
|
|
655
|
+
...mergeProps(themeProps('selector-empty-state'), {
|
|
510
656
|
className: "x1b2ylru x2b8uid xv1l7n4 x9ynric xcr08ib"
|
|
511
|
-
},
|
|
657
|
+
}),
|
|
512
658
|
children: "No results found"
|
|
513
659
|
}, "empty")];
|
|
514
660
|
}
|
|
@@ -562,9 +708,15 @@ export function Selector(props) {
|
|
|
562
708
|
}
|
|
563
709
|
return elements;
|
|
564
710
|
}, [options, renderItem, hasSearch, searchQuery, filteredItems]);
|
|
711
|
+
|
|
712
|
+
// The detached message box renders its own leading status icon, so the
|
|
713
|
+
// on-field icon would duplicate it — keep the chevron indicator instead.
|
|
714
|
+
const showStatusIcon = status != null && effectiveStatusVariant !== 'detached';
|
|
715
|
+
const showStatusTooltip = status != null && effectiveStatusVariant === 'tooltip' && !!status.message;
|
|
565
716
|
const selectorContent = /*#__PURE__*/_jsxs(_Fragment, {
|
|
566
717
|
children: [/*#__PURE__*/_jsxs("div", {
|
|
567
718
|
ref: el => {
|
|
719
|
+
anchorRef.current = el;
|
|
568
720
|
popover.triggerRef(el);
|
|
569
721
|
// Anchor + hover/focus listeners for the disabled-message tooltip.
|
|
570
722
|
// Handlers are gated internally by isEnabled, and anchor names
|
|
@@ -574,9 +726,11 @@ export function Selector(props) {
|
|
|
574
726
|
onClick: onTriggerClick,
|
|
575
727
|
"data-testid": testId,
|
|
576
728
|
...mergeProps(themeProps('selector', {
|
|
729
|
+
variant,
|
|
577
730
|
size,
|
|
578
|
-
status: status?.type ?? null
|
|
579
|
-
|
|
731
|
+
status: status?.type ?? null,
|
|
732
|
+
disabled: isDisabled ? 'disabled' : null
|
|
733
|
+
}), stylex.props(inputWrapperStyles.base, styles.triggerContainer, sizeStyles[size], variant === 'ghost' && styles.triggerGhost, isDisabled && inputWrapperStyles.disabled, variant === 'ghost' && isDisabled && styles.triggerGhostDisabled, !selectedItem && styles.triggerPlaceholder, variant !== 'ghost' && status && inputStatusBorderStyles[status.type], variant !== 'ghost' && status && !isDisabled && inputStatusHoverShadowStyles[status.type], variant !== 'ghost' && inputGroup && groupStyles.inGroup, xstyle), className, style),
|
|
580
734
|
children: [startIcon && renderIconSlot(startIcon, {
|
|
581
735
|
size: 'sm',
|
|
582
736
|
color: 'secondary'
|
|
@@ -608,7 +762,7 @@ export function Selector(props) {
|
|
|
608
762
|
,
|
|
609
763
|
disabled: isDisabled && !showsDisabledMessage,
|
|
610
764
|
"aria-disabled": showsDisabledMessage ? 'true' : undefined,
|
|
611
|
-
onKeyDown:
|
|
765
|
+
onKeyDown: handleTriggerKeyDown,
|
|
612
766
|
tabIndex: isDisabled && !showsDisabledMessage ? -1 : 0,
|
|
613
767
|
...{
|
|
614
768
|
className: "x78zum5 x6s0dn4 x1qughib x1txdalj x1iyjqo2 xs83m0k x1r8uery xeuugli x1717udv x1ghz6dp xc342km xng3xce xjbqb8w xjb2p0i x1qlqyl8 x15bjb6t x1heor9g x1ypdohk x1a2a7pz"
|
|
@@ -650,38 +804,43 @@ export function Selector(props) {
|
|
|
650
804
|
,
|
|
651
805
|
...themeProps('selector-clear-icon')
|
|
652
806
|
})
|
|
653
|
-
}), /*#__PURE__*/_jsx("
|
|
807
|
+
}), showStatusIcon ? showStatusTooltip ? /*#__PURE__*/_jsx("button", {
|
|
808
|
+
ref: statusTooltip.ref,
|
|
809
|
+
type: "button",
|
|
810
|
+
"aria-label": t(STATUS_BUTTON_LABEL_KEY[status.type]),
|
|
811
|
+
"aria-describedby": statusTooltip.describedBy,
|
|
812
|
+
onClick: e => e.stopPropagation(),
|
|
654
813
|
...{
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
2: {
|
|
659
|
-
className: "x2lah0s x78zum5 x6s0dn4 xl56j7k x1kky2od xlup9mm x11xpdln xuedmi6 xlr8y92 x1g0ag68 xv9yike x19jd1h0"
|
|
660
|
-
},
|
|
661
|
-
1: {
|
|
662
|
-
className: "x2lah0s x78zum5 x6s0dn4 xl56j7k x1kky2od xlup9mm x11xpdln xuedmi6 xlr8y92 x1g0ag68 xv9yike xq2gx43"
|
|
663
|
-
},
|
|
664
|
-
3: {
|
|
665
|
-
className: "x2lah0s x78zum5 x6s0dn4 xl56j7k x1kky2od xlup9mm x11xpdln xuedmi6 xlr8y92 x1g0ag68 xv9yike x19jd1h0 xq2gx43"
|
|
666
|
-
}
|
|
667
|
-
}[!!(!status && popover.isOpen) << 1 | !!status << 0],
|
|
668
|
-
children: status ? /*#__PURE__*/_jsx(Icon, {
|
|
814
|
+
className: "x78zum5 x6s0dn4 xl56j7k x1717udv x1ghz6dp xc342km xng3xce xjbqb8w x1heor9g x1ypdohk xh6dtrn x1a2a7pz x1p25gnr x1y3gkto"
|
|
815
|
+
},
|
|
816
|
+
children: /*#__PURE__*/_jsx(Icon, {
|
|
669
817
|
icon: STATUS_ICON_MAP[status.type],
|
|
670
818
|
size: "sm",
|
|
671
|
-
color: STATUS_ICON_COLOR_MAP[status.type]
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
819
|
+
color: STATUS_ICON_COLOR_MAP[status.type],
|
|
820
|
+
xstyle: styles.triggerIcon
|
|
821
|
+
})
|
|
822
|
+
}) : /*#__PURE__*/_jsx(Icon, {
|
|
823
|
+
icon: STATUS_ICON_MAP[status.type],
|
|
824
|
+
size: "sm",
|
|
825
|
+
color: STATUS_ICON_COLOR_MAP[status.type],
|
|
826
|
+
xstyle: styles.triggerIcon
|
|
827
|
+
}) : /*#__PURE__*/_jsx(Icon, {
|
|
828
|
+
icon: "chevronDown",
|
|
829
|
+
size: "sm",
|
|
830
|
+
color: "secondary"
|
|
831
|
+
// The rotation rides on the glyph, alongside the box and color
|
|
832
|
+
// the wrapper used to provide, so one element carries the mark,
|
|
833
|
+
// its open/closed transform, and the theme target.
|
|
834
|
+
,
|
|
835
|
+
xstyle: [styles.triggerIcon, styles.triggerIconRotation, popover.isOpen && styles.triggerIconOpen]
|
|
836
|
+
// Stable theme target on the chevron glyph itself, so a theme can
|
|
837
|
+
// restyle just this icon (color, size, hover) — and its
|
|
838
|
+
// open/closed state — via `defineTheme`. Same-element rules in
|
|
839
|
+
// @layer astryx-theme win over the icon's own base color/size,
|
|
840
|
+
// which a button-level target could not reach.
|
|
841
|
+
,
|
|
842
|
+
...themeProps('selector-indicator-icon', {
|
|
843
|
+
state: popover.isOpen ? 'expanded' : 'collapsed'
|
|
685
844
|
})
|
|
686
845
|
})]
|
|
687
846
|
}), popover.render(hasSearch ? /*#__PURE__*/_jsxs("div", {
|
|
@@ -691,8 +850,13 @@ export function Selector(props) {
|
|
|
691
850
|
role: "listbox",
|
|
692
851
|
"aria-labelledby": triggerId,
|
|
693
852
|
...{
|
|
694
|
-
|
|
695
|
-
|
|
853
|
+
0: {
|
|
854
|
+
className: "x9f619 xuyqlj2 x1odjw0f xu0wf1k x7a5moj x1hc1fzr x1ey1afo"
|
|
855
|
+
},
|
|
856
|
+
1: {
|
|
857
|
+
className: "x9f619 xuyqlj2 x1odjw0f xu0wf1k x1hc1fzr x1ey1afo x2hg6jq"
|
|
858
|
+
}
|
|
859
|
+
}[!!(variant !== 'ghost') << 0],
|
|
696
860
|
children: renderOptions()
|
|
697
861
|
})]
|
|
698
862
|
}) : /*#__PURE__*/_jsx("div", {
|
|
@@ -702,19 +866,25 @@ export function Selector(props) {
|
|
|
702
866
|
"aria-labelledby": triggerId,
|
|
703
867
|
...{
|
|
704
868
|
0: {
|
|
705
|
-
className: "x9f619 xuyqlj2 x1odjw0f
|
|
869
|
+
className: "x9f619 xuyqlj2 x1odjw0f xu0wf1k x7a5moj x1hc1fzr x1ey1afo"
|
|
870
|
+
},
|
|
871
|
+
2: {
|
|
872
|
+
className: "x9f619 xuyqlj2 x1odjw0f xu0wf1k x1hc1fzr x1ey1afo x2hg6jq"
|
|
706
873
|
},
|
|
707
874
|
1: {
|
|
708
|
-
className: "x9f619 xuyqlj2 x1odjw0f
|
|
875
|
+
className: "x9f619 xuyqlj2 x1odjw0f xu0wf1k x7a5moj xg01cxk xq2gx43"
|
|
876
|
+
},
|
|
877
|
+
3: {
|
|
878
|
+
className: "x9f619 xuyqlj2 x1odjw0f xu0wf1k x2hg6jq xg01cxk xq2gx43"
|
|
709
879
|
}
|
|
710
|
-
}[!!!isPositioned << 0],
|
|
880
|
+
}[!!(variant !== 'ghost') << 1 | !!!isPositioned << 0],
|
|
711
881
|
children: renderOptions()
|
|
712
882
|
}), {
|
|
713
883
|
placement: popoverPlacement,
|
|
714
884
|
alignment: 'start',
|
|
715
885
|
xstyle: [styles.popover, layerAnimations[popoverPlacement]],
|
|
716
886
|
style: popoverOffsetStyle
|
|
717
|
-
}), showsDisabledMessage && disabledMessageTooltip.renderTooltip(disabledMessage)]
|
|
887
|
+
}), showStatusTooltip && statusTooltip.renderTooltip(status?.message ?? ''), showsDisabledMessage && disabledMessageTooltip.renderTooltip(disabledMessage)]
|
|
718
888
|
});
|
|
719
889
|
if (inputGroup) {
|
|
720
890
|
return selectorContent;
|
|
@@ -733,7 +903,7 @@ export function Selector(props) {
|
|
|
733
903
|
message: status.message,
|
|
734
904
|
messageID: status.message ? statusMessageId : undefined
|
|
735
905
|
} : undefined,
|
|
736
|
-
statusVariant:
|
|
906
|
+
statusVariant: effectiveStatusVariant,
|
|
737
907
|
labelTooltip: labelTooltip,
|
|
738
908
|
width: width,
|
|
739
909
|
children: selectorContent
|
package/dist/Selector/hooks.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ interface UseSelectedItemOffsetOptions {
|
|
|
5
5
|
selectedItemIndex: number;
|
|
6
6
|
listboxId: string;
|
|
7
7
|
listboxRef: RefObject<HTMLDivElement | null>;
|
|
8
|
-
|
|
8
|
+
anchorRef: RefObject<HTMLElement | null>;
|
|
9
9
|
}
|
|
10
10
|
interface UseSelectedItemOffsetResult {
|
|
11
11
|
offset: number;
|
|
@@ -13,15 +13,15 @@ interface UseSelectedItemOffsetResult {
|
|
|
13
13
|
}
|
|
14
14
|
/**
|
|
15
15
|
* Calculates the offset needed to position the dropdown so that the selected
|
|
16
|
-
* item appears centered over the
|
|
16
|
+
* item appears centered over the outer selector control (macOS-style selector).
|
|
17
17
|
*
|
|
18
|
-
* The desired dropdown top is calculated directly from the
|
|
18
|
+
* The desired dropdown top is calculated directly from the anchor center and
|
|
19
19
|
* selected-item center, then clamped to the viewport. This preserves the
|
|
20
20
|
* default "selected item over trigger" behavior while letting the menu slide
|
|
21
21
|
* upward near the bottom edge or downward near the top edge instead of being
|
|
22
22
|
* clipped off-screen.
|
|
23
23
|
*/
|
|
24
|
-
export declare function useSelectedItemOffset({ isOpen, selectedItemIndex, listboxId, listboxRef,
|
|
24
|
+
export declare function useSelectedItemOffset({ isOpen, selectedItemIndex, listboxId, listboxRef, anchorRef, }: UseSelectedItemOffsetOptions): UseSelectedItemOffsetResult;
|
|
25
25
|
interface UseComboboxOptions {
|
|
26
26
|
selectableItems: SelectorOptionData[];
|
|
27
27
|
value?: string;
|
|
@@ -38,6 +38,13 @@ interface UseComboboxOptions {
|
|
|
38
38
|
* navigation owns those keys there) or when there is no value.
|
|
39
39
|
*/
|
|
40
40
|
onClear?: () => void;
|
|
41
|
+
/**
|
|
42
|
+
* With `hasSearch`, printable characters typed on the trigger are appended to
|
|
43
|
+
* the search query (opening the popup if needed), so type-to-find works
|
|
44
|
+
* without a separate open step. Characters keep arriving here until focus
|
|
45
|
+
* lands in the search input, which then owns its own typing.
|
|
46
|
+
*/
|
|
47
|
+
onSearchSeed?: (char: string) => void;
|
|
41
48
|
listboxId: string;
|
|
42
49
|
}
|
|
43
50
|
interface UseComboboxResult {
|
|
@@ -50,8 +57,13 @@ interface UseComboboxResult {
|
|
|
50
57
|
onItemMouseEnter: (item: SelectorOptionData, index: number) => void;
|
|
51
58
|
}
|
|
52
59
|
/**
|
|
53
|
-
* Handles keyboard navigation
|
|
60
|
+
* Handles keyboard navigation and selection for combobox/listbox patterns.
|
|
61
|
+
*
|
|
62
|
+
* Type-to-select is not handled here: callers that want it compose the shared
|
|
63
|
+
* `useTypeahead` hook and run it ahead of this handler (see Selector). That
|
|
64
|
+
* keeps matching consistent with the other collections and leaves consumers
|
|
65
|
+
* whose own input already filters the items (CommandPalette) untouched.
|
|
54
66
|
*/
|
|
55
|
-
export declare function useCombobox({ selectableItems, value, isDisabled, isOpen, hasSearch, onOpen, onClose, onSelect, onClear, listboxId, }: UseComboboxOptions): UseComboboxResult;
|
|
67
|
+
export declare function useCombobox({ selectableItems, value, isDisabled, isOpen, hasSearch, onOpen, onClose, onSelect, onClear, onSearchSeed, listboxId, }: UseComboboxOptions): UseComboboxResult;
|
|
56
68
|
export {};
|
|
57
69
|
//# sourceMappingURL=hooks.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/Selector/hooks.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/Selector/hooks.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AACrC,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,SAAS,CAAC;AAyBhD,UAAU,4BAA4B;IACpC,MAAM,EAAE,OAAO,CAAC;IAChB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC7C,SAAS,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;CAC1C;AAED,UAAU,2BAA2B;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,MAAM,EACN,iBAAiB,EACjB,SAAS,EACT,UAAU,EACV,SAAS,GACV,EAAE,4BAA4B,GAAG,2BAA2B,CAgF5D;AAMD,UAAU,kBAAkB;IAC1B,eAAe,EAAE,kBAAkB,EAAE,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,iBAAiB;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACrC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,SAAS,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,aAAa,KAAK,IAAI,CAAC;IAC5C,YAAY,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACjD,gBAAgB,EAAE,CAAC,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACrE;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,EAC1B,eAAe,EACf,KAAK,EACL,UAAkB,EAClB,MAAM,EACN,SAAiB,EACjB,MAAM,EACN,OAAO,EACP,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,SAAS,GACV,EAAE,kBAAkB,GAAG,iBAAiB,CA2NxC"}
|