@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
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* - /packages/core/src/MultiSelector/MultiSelector.test.tsx
|
|
14
14
|
* - /packages/core/src/MultiSelector/index.ts
|
|
15
15
|
* - /apps/storybook/stories/InputGroup.stories.tsx
|
|
16
|
-
* - /packages/cli/templates/blocks/components/MultiSelector/ (showcase blocks)
|
|
16
|
+
* - /packages/cli/assets/templates/blocks/components/MultiSelector/ (showcase blocks)
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
19
|
import React, {
|
|
@@ -41,6 +41,7 @@ import {
|
|
|
41
41
|
} from '../Field';
|
|
42
42
|
import {Divider} from '../Divider';
|
|
43
43
|
import {Spinner} from '../Spinner';
|
|
44
|
+
import {TextInput} from '../TextInput';
|
|
44
45
|
import {CheckboxInput} from '../CheckboxInput';
|
|
45
46
|
import {Badge} from '../Badge';
|
|
46
47
|
import {
|
|
@@ -119,11 +120,12 @@ const styles = stylex.create({
|
|
|
119
120
|
lineHeight: 'inherit',
|
|
120
121
|
color: 'inherit',
|
|
121
122
|
cursor: 'pointer',
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
123
|
+
// The wrapper (inputWrapperStyles.base) renders the focus ring via
|
|
124
|
+
// :focus-within when this button is focused, matching
|
|
125
|
+
// TextInput/NumberInput/Selector. The button must not draw its own
|
|
126
|
+
// :focus-visible outline or the two stack into a doubled ring over the
|
|
127
|
+
// trigger.
|
|
128
|
+
outline: 'none',
|
|
127
129
|
borderRadius: radiusVars['--radius-element'],
|
|
128
130
|
},
|
|
129
131
|
triggerPlaceholder: {
|
|
@@ -156,24 +158,67 @@ const styles = stylex.create({
|
|
|
156
158
|
color: colorVars['--color-text-secondary'],
|
|
157
159
|
fontWeight: fontWeightVars['--font-weight-medium'],
|
|
158
160
|
},
|
|
161
|
+
// Only what Icon does not already provide: `size="sm"` gives the 16px box
|
|
162
|
+
// and `color` the token, but the glyph still must not shrink inside the flex
|
|
163
|
+
// trigger.
|
|
159
164
|
triggerIcon: {
|
|
160
165
|
flexShrink: 0,
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
+
},
|
|
167
|
+
// Rotation lives on the chevron glyph itself (passed through `xstyle`), not
|
|
168
|
+
// on the layout wrapper above, so the icon's `multi-selector-indicator-icon`
|
|
169
|
+
// theme target and the open/closed transform sit on one element — a theme can
|
|
170
|
+
// restyle the mark and its rotation through a single selector. The wrapper
|
|
171
|
+
// keeps only layout. The status branch renders a different icon, so it never
|
|
172
|
+
// picks these up and needs no transition opt-out.
|
|
173
|
+
triggerIconRotation: {
|
|
166
174
|
transitionProperty: 'transform',
|
|
167
175
|
transitionDuration: durationVars['--duration-fast'],
|
|
168
176
|
transitionTimingFunction: easeVars['--ease-standard'],
|
|
169
177
|
transformOrigin: 'center',
|
|
170
|
-
color: colorVars['--color-icon-secondary'],
|
|
171
178
|
},
|
|
172
179
|
triggerIconOpen: {
|
|
173
180
|
transform: 'rotate(180deg)',
|
|
174
181
|
},
|
|
175
|
-
|
|
176
|
-
|
|
182
|
+
triggerGhost: {
|
|
183
|
+
width: 'auto',
|
|
184
|
+
borderWidth: 0,
|
|
185
|
+
backgroundColor: 'transparent',
|
|
186
|
+
backgroundImage: {
|
|
187
|
+
default: null,
|
|
188
|
+
':hover': {
|
|
189
|
+
'@media (hover: hover)': `linear-gradient(${colorVars['--color-overlay-hover']}, ${colorVars['--color-overlay-hover']})`,
|
|
190
|
+
},
|
|
191
|
+
':active': `linear-gradient(${colorVars['--color-overlay-pressed']}, ${colorVars['--color-overlay-pressed']})`,
|
|
192
|
+
},
|
|
193
|
+
boxShadow: {
|
|
194
|
+
default: 'none',
|
|
195
|
+
':hover:not(:focus-within)': {
|
|
196
|
+
'@media (hover: hover)': 'none',
|
|
197
|
+
},
|
|
198
|
+
':focus-within': 'none',
|
|
199
|
+
},
|
|
200
|
+
fontWeight: fontWeightVars['--font-weight-medium'],
|
|
201
|
+
outline: {
|
|
202
|
+
default: 'none',
|
|
203
|
+
':has(:focus-visible)': `2px solid ${colorVars['--color-accent']}`,
|
|
204
|
+
},
|
|
205
|
+
outlineOffset: {
|
|
206
|
+
default: '0',
|
|
207
|
+
':has(:focus-visible)': '3px',
|
|
208
|
+
},
|
|
209
|
+
transitionProperty:
|
|
210
|
+
'background-image, background-color, color, opacity, transform',
|
|
211
|
+
transform: {
|
|
212
|
+
default: 'scale(1)',
|
|
213
|
+
':active': 'scale(0.98)',
|
|
214
|
+
},
|
|
215
|
+
},
|
|
216
|
+
triggerGhostDisabled: {
|
|
217
|
+
backgroundImage: 'none',
|
|
218
|
+
transform: {
|
|
219
|
+
default: 'none',
|
|
220
|
+
':active': 'none',
|
|
221
|
+
},
|
|
177
222
|
},
|
|
178
223
|
|
|
179
224
|
// Clear button
|
|
@@ -194,6 +239,24 @@ const styles = stylex.create({
|
|
|
194
239
|
},
|
|
195
240
|
outlineOffset: 1,
|
|
196
241
|
},
|
|
242
|
+
statusButton: {
|
|
243
|
+
display: 'flex',
|
|
244
|
+
alignItems: 'center',
|
|
245
|
+
justifyContent: 'center',
|
|
246
|
+
padding: 0,
|
|
247
|
+
margin: 0,
|
|
248
|
+
borderWidth: 0,
|
|
249
|
+
borderStyle: 'none',
|
|
250
|
+
backgroundColor: 'transparent',
|
|
251
|
+
color: 'inherit',
|
|
252
|
+
cursor: 'pointer',
|
|
253
|
+
borderRadius: radiusVars['--radius-element'],
|
|
254
|
+
outline: {
|
|
255
|
+
default: 'none',
|
|
256
|
+
':focus-visible': `${borderVars['--border-width']} solid ${colorVars['--color-accent']}`,
|
|
257
|
+
},
|
|
258
|
+
outlineOffset: 1,
|
|
259
|
+
},
|
|
197
260
|
|
|
198
261
|
// Dropdown container
|
|
199
262
|
dropdown: {
|
|
@@ -209,33 +272,15 @@ const styles = stylex.create({
|
|
|
209
272
|
marginBlockStart: spacingVars['--spacing-1'],
|
|
210
273
|
},
|
|
211
274
|
|
|
212
|
-
// Search
|
|
275
|
+
// Search field. The inner TextInput owns the border, focus ring, magnifier
|
|
276
|
+
// (startIcon), and clear button (hasClear); this wrapper only supplies the
|
|
277
|
+
// dropdown's inline/block padding around it.
|
|
213
278
|
searchWrapper: {
|
|
279
|
+
display: 'flex',
|
|
280
|
+
alignItems: 'center',
|
|
214
281
|
paddingInline: spacingVars['--spacing-2'],
|
|
215
282
|
paddingBlock: spacingVars['--spacing-1'],
|
|
216
283
|
},
|
|
217
|
-
searchInput: {
|
|
218
|
-
boxSizing: 'border-box',
|
|
219
|
-
width: '100%',
|
|
220
|
-
paddingBlock: spacingVars['--spacing-1'],
|
|
221
|
-
paddingInline: spacingVars['--spacing-2'],
|
|
222
|
-
borderWidth: borderVars['--border-width'],
|
|
223
|
-
borderStyle: 'solid',
|
|
224
|
-
borderColor: colorVars['--color-border-emphasized'],
|
|
225
|
-
borderRadius: radiusVars['--radius-element'],
|
|
226
|
-
backgroundColor: colorVars['--color-background-surface'],
|
|
227
|
-
fontFamily: typographyVars['--font-family-body'],
|
|
228
|
-
fontSize: {
|
|
229
|
-
default: typeScaleVars['--text-label-size'],
|
|
230
|
-
'@media (pointer: coarse)': `max(1rem, ${typeScaleVars['--text-label-size']})`,
|
|
231
|
-
},
|
|
232
|
-
color: colorVars['--color-text-primary'],
|
|
233
|
-
outline: {
|
|
234
|
-
default: 'none',
|
|
235
|
-
':focus': `${borderVars['--border-width']} solid ${colorVars['--color-accent']}`,
|
|
236
|
-
},
|
|
237
|
-
outlineOffset: '0',
|
|
238
|
-
},
|
|
239
284
|
|
|
240
285
|
// Select-all wrapper
|
|
241
286
|
selectAllWrapper: {
|
|
@@ -363,8 +408,16 @@ const STATUS_ICON_COLOR_MAP: Record<
|
|
|
363
408
|
success: 'success',
|
|
364
409
|
};
|
|
365
410
|
|
|
411
|
+
const STATUS_BUTTON_LABEL_KEY: Record<MultiSelectorStatusType, string> = {
|
|
412
|
+
warning: '@astryx.input.statusButton.warning',
|
|
413
|
+
error: '@astryx.input.statusButton.error',
|
|
414
|
+
success: '@astryx.input.statusButton.success',
|
|
415
|
+
};
|
|
416
|
+
|
|
366
417
|
export type MultiSelectorSize = 'sm' | 'md' | 'lg';
|
|
367
418
|
|
|
419
|
+
export type MultiSelectorVariant = 'input' | 'ghost';
|
|
420
|
+
|
|
368
421
|
export type MultiSelectorStatusType = 'warning' | 'error' | 'success';
|
|
369
422
|
|
|
370
423
|
export type {MultiSelectorStatus};
|
|
@@ -476,15 +529,24 @@ export interface MultiSelectorProps<
|
|
|
476
529
|
*/
|
|
477
530
|
size?: MultiSelectorSize;
|
|
478
531
|
|
|
532
|
+
/**
|
|
533
|
+
* Visual style of the selector trigger.
|
|
534
|
+
* - 'input': bordered input-style trigger for forms
|
|
535
|
+
* - 'ghost': borderless trigger matching ghost buttons, for toolbars
|
|
536
|
+
* @default 'input'
|
|
537
|
+
*/
|
|
538
|
+
variant?: MultiSelectorVariant;
|
|
539
|
+
|
|
479
540
|
/**
|
|
480
541
|
* Status indicator for the selector.
|
|
481
542
|
*/
|
|
482
543
|
status?: MultiSelectorStatus;
|
|
483
544
|
/**
|
|
484
545
|
* How the status message is placed relative to the input.
|
|
485
|
-
* - 'attached': message overlaps directly below the input (
|
|
546
|
+
* - 'attached': message overlaps directly below the bordered input (input variant only)
|
|
486
547
|
* - 'detached': message floats below as a separate element with spacing
|
|
487
|
-
*
|
|
548
|
+
* - 'tooltip': message is exposed from the on-field status icon
|
|
549
|
+
* @default 'attached' for input selectors; 'detached' for ghost selectors
|
|
488
550
|
*/
|
|
489
551
|
statusVariant?: FieldStatusVariant;
|
|
490
552
|
|
|
@@ -629,6 +691,7 @@ export function MultiSelector<T extends MultiSelectorOptionType>({
|
|
|
629
691
|
isLoading = false,
|
|
630
692
|
placeholder: placeholderFromProps,
|
|
631
693
|
size: sizeProp,
|
|
694
|
+
variant = 'input',
|
|
632
695
|
status,
|
|
633
696
|
statusVariant = 'attached',
|
|
634
697
|
labelTooltip,
|
|
@@ -657,6 +720,11 @@ export function MultiSelector<T extends MultiSelectorOptionType>({
|
|
|
657
720
|
const searchPlaceholder =
|
|
658
721
|
searchPlaceholderFromProps ?? t('@astryx.multiSelector.searchPlaceholder');
|
|
659
722
|
const size = useSize(sizeProp, 'md');
|
|
723
|
+
const effectiveStatusVariant =
|
|
724
|
+
variant === 'ghost' && statusVariant === 'attached'
|
|
725
|
+
? 'detached'
|
|
726
|
+
: statusVariant;
|
|
727
|
+
|
|
660
728
|
const triggerId = useId();
|
|
661
729
|
const listboxId = useId();
|
|
662
730
|
const descriptionId = useId();
|
|
@@ -668,6 +736,9 @@ export function MultiSelector<T extends MultiSelectorOptionType>({
|
|
|
668
736
|
const inputGroup = useInputGroup();
|
|
669
737
|
|
|
670
738
|
const [searchQuery, setSearchQuery] = useState('');
|
|
739
|
+
// A typed query shows TextInput's built-in clear (✕) button, which becomes
|
|
740
|
+
// the next tab stop after the search input.
|
|
741
|
+
const hasQuery = searchQuery.length > 0;
|
|
671
742
|
|
|
672
743
|
// Snapshot of which values were selected when the dropdown opened.
|
|
673
744
|
// Stored as state (not a ref) so sortedItems recomputes exactly once on open,
|
|
@@ -693,12 +764,21 @@ export function MultiSelector<T extends MultiSelectorOptionType>({
|
|
|
693
764
|
focusTrigger: 'always',
|
|
694
765
|
isEnabled: showsDisabledMessage,
|
|
695
766
|
});
|
|
767
|
+
const statusTooltip = useTooltip({
|
|
768
|
+
placement: 'above',
|
|
769
|
+
isEnabled: effectiveStatusVariant === 'tooltip' && !!status?.message,
|
|
770
|
+
});
|
|
696
771
|
|
|
697
772
|
const {ariaLabelledBy, ariaDescribedBy} = getInputARIA(
|
|
698
773
|
inputLabelId,
|
|
699
774
|
[
|
|
700
775
|
description ? descriptionId : null,
|
|
701
|
-
|
|
776
|
+
!inputGroup && effectiveStatusVariant !== 'tooltip' && status?.message
|
|
777
|
+
? statusMessageId
|
|
778
|
+
: null,
|
|
779
|
+
effectiveStatusVariant === 'tooltip' && status?.message
|
|
780
|
+
? statusTooltip.describedBy
|
|
781
|
+
: null,
|
|
702
782
|
showsDisabledMessage ? disabledMessageTooltip.describedBy : null,
|
|
703
783
|
],
|
|
704
784
|
inputGroup,
|
|
@@ -817,8 +897,7 @@ export function MultiSelector<T extends MultiSelectorOptionType>({
|
|
|
817
897
|
// not re-speak on unrelated re-renders. Reuses the announce instance shared
|
|
818
898
|
// with the selection-count announcements above.
|
|
819
899
|
const handleSearchChange = useCallback(
|
|
820
|
-
(
|
|
821
|
-
const nextQuery = event.target.value;
|
|
900
|
+
(nextQuery: string) => {
|
|
822
901
|
setSearchQuery(nextQuery);
|
|
823
902
|
if (nextQuery.length === 0) {
|
|
824
903
|
// Emptying the query clears the region rather than announcing a count.
|
|
@@ -1064,13 +1143,41 @@ export function MultiSelector<T extends MultiSelectorOptionType>({
|
|
|
1064
1143
|
return null;
|
|
1065
1144
|
}
|
|
1066
1145
|
return (
|
|
1067
|
-
<div
|
|
1068
|
-
|
|
1146
|
+
<div
|
|
1147
|
+
{...stylex.props(styles.searchWrapper)}
|
|
1148
|
+
onKeyDown={e => {
|
|
1149
|
+
// The clear (✕) button lives inside the TextInput, after the input in
|
|
1150
|
+
// DOM order. When it is focused and the user tabs forward there is
|
|
1151
|
+
// nothing else in the popup, so dismiss it (Shift+Tab returns to the
|
|
1152
|
+
// input natively). Key events originating on the input are handled on
|
|
1153
|
+
// the input below; ignore them here so we don't double-dismiss.
|
|
1154
|
+
if (e.target === searchRef.current) {
|
|
1155
|
+
return;
|
|
1156
|
+
}
|
|
1157
|
+
if (e.key === 'Tab' && !e.shiftKey) {
|
|
1158
|
+
onKeyDown(e);
|
|
1159
|
+
}
|
|
1160
|
+
}}>
|
|
1161
|
+
<TextInput
|
|
1069
1162
|
ref={searchRef}
|
|
1070
1163
|
id={searchId}
|
|
1164
|
+
// The search field IS a TextInput: the leading magnifier is its
|
|
1165
|
+
// `startIcon` and the trailing clear (✕) is its built-in `hasClear`
|
|
1166
|
+
// (which resets the value and refocuses the input). We add no bespoke
|
|
1167
|
+
// affordance chrome — the field just looks and behaves like every
|
|
1168
|
+
// other Astryx input.
|
|
1169
|
+
label={t('@astryx.multiSelector.searchOptions')}
|
|
1170
|
+
isLabelHidden
|
|
1171
|
+
startIcon="search"
|
|
1172
|
+
hasClear
|
|
1173
|
+
size="sm"
|
|
1174
|
+
// Fill the dropdown's width (minus the wrapper's inline padding) so
|
|
1175
|
+
// the field is flush end-to-end rather than sized to its content.
|
|
1176
|
+
width="100%"
|
|
1071
1177
|
// When hasSearch is set, focus moves into this input on open, so it —
|
|
1072
1178
|
// not the trigger — must be the combobox reporting the highlighted
|
|
1073
|
-
// option via aria-activedescendant (comboboxes-4).
|
|
1179
|
+
// option via aria-activedescendant (comboboxes-4). role + aria-* pass
|
|
1180
|
+
// through to the underlying <input> via BaseProps.
|
|
1074
1181
|
role="combobox"
|
|
1075
1182
|
aria-expanded={popover.isOpen}
|
|
1076
1183
|
aria-controls={listboxId}
|
|
@@ -1080,12 +1187,10 @@ export function MultiSelector<T extends MultiSelectorOptionType>({
|
|
|
1080
1187
|
? getItemId(highlightedIndex)
|
|
1081
1188
|
: undefined
|
|
1082
1189
|
}
|
|
1083
|
-
aria-label={t('@astryx.multiSelector.searchOptions')}
|
|
1084
|
-
type="text"
|
|
1085
1190
|
value={searchQuery}
|
|
1086
1191
|
onChange={handleSearchChange}
|
|
1087
1192
|
onKeyDown={e => {
|
|
1088
|
-
// Arrow keys navigate options; Enter toggles; Escape
|
|
1193
|
+
// Arrow keys navigate options; Enter toggles; Escape closes.
|
|
1089
1194
|
// Space and Home/End are left to the input (type a space / move
|
|
1090
1195
|
// the caret) per the APG editable combobox; PageUp/PageDown are
|
|
1091
1196
|
// the sanctioned substitute for jumping to the first/last option.
|
|
@@ -1095,14 +1200,19 @@ export function MultiSelector<T extends MultiSelectorOptionType>({
|
|
|
1095
1200
|
e.key === 'PageUp' ||
|
|
1096
1201
|
e.key === 'PageDown' ||
|
|
1097
1202
|
e.key === 'Enter' ||
|
|
1098
|
-
e.key === 'Escape'
|
|
1099
|
-
e.key === 'Tab'
|
|
1203
|
+
e.key === 'Escape'
|
|
1100
1204
|
) {
|
|
1101
1205
|
onKeyDown(e);
|
|
1206
|
+
return;
|
|
1207
|
+
}
|
|
1208
|
+
// Tab: when a query is showing the clear (✕) button, forward-tab
|
|
1209
|
+
// moves focus to it (keeping the popup open) so the affordance is
|
|
1210
|
+
// keyboard-reachable. Every other Tab dismisses the popup as usual.
|
|
1211
|
+
if (e.key === 'Tab' && (e.shiftKey || !hasQuery)) {
|
|
1212
|
+
onKeyDown(e);
|
|
1102
1213
|
}
|
|
1103
1214
|
}}
|
|
1104
1215
|
placeholder={searchPlaceholder}
|
|
1105
|
-
{...stylex.props(styles.searchInput)}
|
|
1106
1216
|
/>
|
|
1107
1217
|
</div>
|
|
1108
1218
|
);
|
|
@@ -1111,6 +1221,7 @@ export function MultiSelector<T extends MultiSelectorOptionType>({
|
|
|
1111
1221
|
searchId,
|
|
1112
1222
|
listboxId,
|
|
1113
1223
|
searchQuery,
|
|
1224
|
+
hasQuery,
|
|
1114
1225
|
searchPlaceholder,
|
|
1115
1226
|
handleSearchChange,
|
|
1116
1227
|
onKeyDown,
|
|
@@ -1129,6 +1240,11 @@ export function MultiSelector<T extends MultiSelectorOptionType>({
|
|
|
1129
1240
|
? allEnabledSelected
|
|
1130
1241
|
: optimisticValue.includes(item.value);
|
|
1131
1242
|
const checkboxValue = isSelectAll ? selectAllState : isSelected;
|
|
1243
|
+
// aria-selected="mixed" is invalid on role="option", and the tri-state
|
|
1244
|
+
// checkbox is inert/decorative, so the indeterminate state must be
|
|
1245
|
+
// conveyed through the option's accessible name (WCAG 4.1.2).
|
|
1246
|
+
const isPartiallySelected =
|
|
1247
|
+
isSelectAll && selectAllState === 'indeterminate';
|
|
1132
1248
|
|
|
1133
1249
|
return (
|
|
1134
1250
|
<div
|
|
@@ -1136,6 +1252,13 @@ export function MultiSelector<T extends MultiSelectorOptionType>({
|
|
|
1136
1252
|
id={getItemId(flatIndex)}
|
|
1137
1253
|
role="option"
|
|
1138
1254
|
aria-selected={isSelected}
|
|
1255
|
+
aria-label={
|
|
1256
|
+
isPartiallySelected
|
|
1257
|
+
? t('@astryx.multiSelector.selectAllPartiallySelected', {
|
|
1258
|
+
label: selectAllLabel,
|
|
1259
|
+
})
|
|
1260
|
+
: undefined
|
|
1261
|
+
}
|
|
1139
1262
|
aria-disabled={item.disabled}
|
|
1140
1263
|
onClick={() => {
|
|
1141
1264
|
if (!item.disabled) {
|
|
@@ -1180,10 +1303,12 @@ export function MultiSelector<T extends MultiSelectorOptionType>({
|
|
|
1180
1303
|
optimisticValue,
|
|
1181
1304
|
allEnabledSelected,
|
|
1182
1305
|
selectAllState,
|
|
1306
|
+
selectAllLabel,
|
|
1183
1307
|
getItemId,
|
|
1184
1308
|
handleNavigableToggle,
|
|
1185
1309
|
onItemMouseEnter,
|
|
1186
1310
|
size,
|
|
1311
|
+
t,
|
|
1187
1312
|
],
|
|
1188
1313
|
);
|
|
1189
1314
|
|
|
@@ -1211,10 +1336,19 @@ export function MultiSelector<T extends MultiSelectorOptionType>({
|
|
|
1211
1336
|
cursor = 1;
|
|
1212
1337
|
}
|
|
1213
1338
|
|
|
1214
|
-
// Empty state — no real items to show
|
|
1339
|
+
// Empty state — no real items to show. role="presentation" keeps the
|
|
1340
|
+
// message out of the listbox's accessibility tree (role="listbox" only
|
|
1341
|
+
// permits option/group children); the no-results outcome is announced
|
|
1342
|
+
// via the result-count live region instead.
|
|
1215
1343
|
if (realItemCount === 0) {
|
|
1216
1344
|
elements.push(
|
|
1217
|
-
<div
|
|
1345
|
+
<div
|
|
1346
|
+
key="empty"
|
|
1347
|
+
role="presentation"
|
|
1348
|
+
{...mergeProps(
|
|
1349
|
+
themeProps('multi-selector-empty-state'),
|
|
1350
|
+
stylex.props(styles.emptyState),
|
|
1351
|
+
)}>
|
|
1218
1352
|
No results found
|
|
1219
1353
|
</div>,
|
|
1220
1354
|
);
|
|
@@ -1292,6 +1426,13 @@ export function MultiSelector<T extends MultiSelectorOptionType>({
|
|
|
1292
1426
|
return elements;
|
|
1293
1427
|
}, [options, renderItem, sortedItems, searchQuery, hasSelectAll]);
|
|
1294
1428
|
|
|
1429
|
+
// The detached message box renders its own leading status icon, so the
|
|
1430
|
+
// on-field icon would duplicate it — keep the chevron indicator instead.
|
|
1431
|
+
const showStatusIcon =
|
|
1432
|
+
status != null && effectiveStatusVariant !== 'detached';
|
|
1433
|
+
const showStatusTooltip =
|
|
1434
|
+
status != null && effectiveStatusVariant === 'tooltip' && !!status.message;
|
|
1435
|
+
|
|
1295
1436
|
const multiSelectorContent = (
|
|
1296
1437
|
<>
|
|
1297
1438
|
<div
|
|
@@ -1305,16 +1446,28 @@ export function MultiSelector<T extends MultiSelectorOptionType>({
|
|
|
1305
1446
|
onClick={onTriggerClick}
|
|
1306
1447
|
data-testid={testId}
|
|
1307
1448
|
{...mergeProps(
|
|
1308
|
-
themeProps('multi-selector', {
|
|
1449
|
+
themeProps('multi-selector', {
|
|
1450
|
+
variant,
|
|
1451
|
+
size,
|
|
1452
|
+
status: status?.type ?? null,
|
|
1453
|
+
disabled: isDisabled ? 'disabled' : null,
|
|
1454
|
+
}),
|
|
1309
1455
|
stylex.props(
|
|
1310
1456
|
inputWrapperStyles.base,
|
|
1311
1457
|
styles.triggerContainer,
|
|
1312
1458
|
sizeStyles[size],
|
|
1459
|
+
variant === 'ghost' && styles.triggerGhost,
|
|
1313
1460
|
isDisabled && inputWrapperStyles.disabled,
|
|
1461
|
+
variant === 'ghost' && isDisabled && styles.triggerGhostDisabled,
|
|
1314
1462
|
optimisticValue.length === 0 && styles.triggerPlaceholder,
|
|
1315
|
-
|
|
1316
|
-
|
|
1317
|
-
|
|
1463
|
+
variant !== 'ghost' &&
|
|
1464
|
+
status &&
|
|
1465
|
+
inputStatusBorderStyles[status.type],
|
|
1466
|
+
variant !== 'ghost' &&
|
|
1467
|
+
status &&
|
|
1468
|
+
!isDisabled &&
|
|
1469
|
+
inputStatusHoverShadowStyles[status.type],
|
|
1470
|
+
variant !== 'ghost' && inputGroup && groupStyles.inGroup,
|
|
1318
1471
|
xstyle,
|
|
1319
1472
|
),
|
|
1320
1473
|
className,
|
|
@@ -1390,23 +1543,49 @@ export function MultiSelector<T extends MultiSelectorOptionType>({
|
|
|
1390
1543
|
/>
|
|
1391
1544
|
</button>
|
|
1392
1545
|
)}
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1546
|
+
{/*
|
|
1547
|
+
No wrapper span: Icon's own span already provides the 16px box (`sm`)
|
|
1548
|
+
and the icon color, so the status glyph and the chevron are each
|
|
1549
|
+
directly targetable instead of sharing one untargetable parent — and
|
|
1550
|
+
the two affordances stop sharing a node.
|
|
1551
|
+
*/}
|
|
1552
|
+
{showStatusIcon ? (
|
|
1553
|
+
showStatusTooltip ? (
|
|
1554
|
+
<button
|
|
1555
|
+
ref={statusTooltip.ref}
|
|
1556
|
+
type="button"
|
|
1557
|
+
aria-label={t(STATUS_BUTTON_LABEL_KEY[status.type])}
|
|
1558
|
+
aria-describedby={statusTooltip.describedBy}
|
|
1559
|
+
onClick={e => e.stopPropagation()}
|
|
1560
|
+
{...stylex.props(styles.statusButton)}>
|
|
1561
|
+
<Icon
|
|
1562
|
+
icon={STATUS_ICON_MAP[status.type]}
|
|
1563
|
+
size="sm"
|
|
1564
|
+
color={STATUS_ICON_COLOR_MAP[status.type]}
|
|
1565
|
+
xstyle={styles.triggerIcon}
|
|
1566
|
+
/>
|
|
1567
|
+
</button>
|
|
1568
|
+
) : (
|
|
1569
|
+
<Icon
|
|
1570
|
+
icon={STATUS_ICON_MAP[status.type]}
|
|
1571
|
+
size="sm"
|
|
1572
|
+
color={STATUS_ICON_COLOR_MAP[status.type]}
|
|
1573
|
+
xstyle={styles.triggerIcon}
|
|
1574
|
+
/>
|
|
1575
|
+
)
|
|
1405
1576
|
) : (
|
|
1406
1577
|
<Icon
|
|
1407
1578
|
icon="chevronDown"
|
|
1408
1579
|
size="sm"
|
|
1409
|
-
color="
|
|
1580
|
+
color="secondary"
|
|
1581
|
+
// The rotation rides on the glyph, alongside the box and color
|
|
1582
|
+
// the wrapper used to provide, so one element carries the mark,
|
|
1583
|
+
// its open/closed transform, and the theme target.
|
|
1584
|
+
xstyle={[
|
|
1585
|
+
styles.triggerIcon,
|
|
1586
|
+
styles.triggerIconRotation,
|
|
1587
|
+
popover.isOpen && styles.triggerIconOpen,
|
|
1588
|
+
]}
|
|
1410
1589
|
// Stable theme target on the chevron glyph itself, so a theme can
|
|
1411
1590
|
// restyle just this icon (color, size, hover) — and its
|
|
1412
1591
|
// open/closed state — via `defineTheme`. Same-element rules in
|
|
@@ -1415,9 +1594,8 @@ export function MultiSelector<T extends MultiSelectorOptionType>({
|
|
|
1415
1594
|
{...themeProps('multi-selector-indicator-icon', {
|
|
1416
1595
|
state: popover.isOpen ? 'expanded' : 'collapsed',
|
|
1417
1596
|
})}
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
</span>
|
|
1597
|
+
/>
|
|
1598
|
+
)}
|
|
1421
1599
|
</div>
|
|
1422
1600
|
|
|
1423
1601
|
{popover.render(
|
|
@@ -1438,6 +1616,8 @@ export function MultiSelector<T extends MultiSelectorOptionType>({
|
|
|
1438
1616
|
},
|
|
1439
1617
|
)}
|
|
1440
1618
|
|
|
1619
|
+
{showStatusTooltip && statusTooltip.renderTooltip(status?.message ?? '')}
|
|
1620
|
+
|
|
1441
1621
|
{showsDisabledMessage &&
|
|
1442
1622
|
disabledMessageTooltip.renderTooltip(disabledMessage)}
|
|
1443
1623
|
</>
|
|
@@ -1466,7 +1646,7 @@ export function MultiSelector<T extends MultiSelectorOptionType>({
|
|
|
1466
1646
|
}
|
|
1467
1647
|
: undefined
|
|
1468
1648
|
}
|
|
1469
|
-
statusVariant={
|
|
1649
|
+
statusVariant={effectiveStatusVariant}
|
|
1470
1650
|
labelTooltip={labelTooltip}
|
|
1471
1651
|
width={width}>
|
|
1472
1652
|
{multiSelectorContent}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
|
-
/** @type {import('
|
|
3
|
+
/** @type {import('@astryxdesign/cli/authoring').ComponentDoc} */
|
|
4
4
|
|
|
5
5
|
export const docs = {
|
|
6
6
|
name: 'NavIcon',
|
|
@@ -36,7 +36,7 @@ export const docs = {
|
|
|
36
36
|
},
|
|
37
37
|
};
|
|
38
38
|
|
|
39
|
-
/** @type {import('
|
|
39
|
+
/** @type {import('@astryxdesign/cli/authoring').ComponentDoc} */
|
|
40
40
|
export const docsZh = {
|
|
41
41
|
name: 'NavIcon',
|
|
42
42
|
displayName: 'Nav Icon',
|
|
@@ -65,7 +65,7 @@ export const docsZh = {
|
|
|
65
65
|
},
|
|
66
66
|
};
|
|
67
67
|
|
|
68
|
-
/** @type {import('
|
|
68
|
+
/** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
|
|
69
69
|
export const docsDense = {
|
|
70
70
|
description:
|
|
71
71
|
'Circular icon container w/ accent background for navigation headers.',
|
package/src/NavIcon/NavIcon.tsx
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* - /packages/core/src/NavIcon/NavIcon.test.tsx
|
|
12
12
|
* - /packages/core/src/NavIcon/index.ts
|
|
13
13
|
* - /apps/storybook/stories/TopNav.stories.tsx
|
|
14
|
-
* - /packages/cli/templates/blocks/components/NavIcon/NavIconShowcase.tsx
|
|
14
|
+
* - /packages/cli/assets/templates/blocks/components/NavIcon/NavIconShowcase.tsx
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
17
|
import type {ReactNode} from 'react';
|
|
@@ -5,7 +5,6 @@ import {render, screen, fireEvent} from '@testing-library/react';
|
|
|
5
5
|
import userEvent from '@testing-library/user-event';
|
|
6
6
|
import {NavHeadingMenu} from './NavHeadingMenu';
|
|
7
7
|
import {NavHeadingMenuItem} from './NavHeadingMenuItem';
|
|
8
|
-
import {NavMenuItem} from './NavMenuItem';
|
|
9
8
|
import {NavHeadingCloseContext} from './NavMenuContext';
|
|
10
9
|
|
|
11
10
|
describe('NavHeadingMenu', () => {
|
|
@@ -322,18 +321,3 @@ describe('context forwarding', () => {
|
|
|
322
321
|
expect(closeMenu).toHaveBeenCalledOnce();
|
|
323
322
|
});
|
|
324
323
|
});
|
|
325
|
-
|
|
326
|
-
describe('NavMenuItem backward compat', () => {
|
|
327
|
-
it('is the same component as NavHeadingMenuItem', () => {
|
|
328
|
-
expect(NavMenuItem).toBe(NavHeadingMenuItem);
|
|
329
|
-
});
|
|
330
|
-
|
|
331
|
-
it('renders correctly when used as NavMenuItem', () => {
|
|
332
|
-
render(
|
|
333
|
-
<NavHeadingMenu>
|
|
334
|
-
<NavMenuItem label="Legacy" />
|
|
335
|
-
</NavHeadingMenu>,
|
|
336
|
-
);
|
|
337
|
-
expect(screen.getByRole('menuitem')).toHaveTextContent('Legacy');
|
|
338
|
-
});
|
|
339
|
-
});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
|
-
/** @type {import('
|
|
3
|
+
/** @type {import('@astryxdesign/cli/authoring').ComponentDoc} */
|
|
4
4
|
|
|
5
5
|
export const docs = {
|
|
6
6
|
name: 'NavHeadingMenu',
|
|
@@ -40,7 +40,7 @@ export const docs = {
|
|
|
40
40
|
},
|
|
41
41
|
};
|
|
42
42
|
|
|
43
|
-
/** @type {import('
|
|
43
|
+
/** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
|
|
44
44
|
export const docsDense = {
|
|
45
45
|
description: 'Accessible menu container + items for nav heading popovers. NavHeadingMenu = role="menu" w/ keyboard nav; NavHeadingMenuItem renders selectable items.',
|
|
46
46
|
usage: {
|
package/src/NavMenu/index.ts
CHANGED