@astryxdesign/core 0.2.0-canary.fc53ff7 → 0.2.0-canary.fce8b64
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/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 +1 -14
- 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 +4 -4
- 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 +1 -1
- package/dist/AvatarGroup/AvatarGroupOverflow.js +1 -1
- 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 +6 -34
- 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.js +4 -3
- 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 +2 -20
- package/dist/Button/Button.d.ts.map +1 -1
- package/dist/Button/Button.js +2 -17
- 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.js +1 -1
- package/dist/Calendar/styles.d.ts +2 -2
- package/dist/Calendar/styles.js +2 -2
- 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 +82 -15
- 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 +3 -3
- 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.js +1 -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/CheckboxInput/CheckboxInput.d.ts +1 -1
- package/dist/CheckboxInput/CheckboxInput.js +1 -1
- 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.js +1 -1
- 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.js +3 -3
- package/dist/Code/Code.d.ts +2 -2
- package/dist/Code/Code.js +2 -2
- package/dist/Collapsible/Collapsible.d.ts +1 -1
- package/dist/Collapsible/Collapsible.js +3 -3
- 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/ContextMenu/ContextMenu.d.ts +2 -2
- package/dist/ContextMenu/ContextMenu.d.ts.map +1 -1
- package/dist/ContextMenu/ContextMenu.js +14 -5
- package/dist/DateInput/DateInput.js +1 -1
- package/dist/DateRangeInput/DateRangeInput.js +1 -1
- package/dist/DateTimeInput/DateTimeInput.js +1 -1
- package/dist/Dialog/Dialog.d.ts +46 -23
- package/dist/Dialog/Dialog.d.ts.map +1 -1
- package/dist/Dialog/Dialog.js +59 -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 +9 -3
- package/dist/DropdownMenu/DropdownMenu.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenu.js +23 -19
- 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 +1 -1
- package/dist/DropdownMenu/DropdownMenuItem.js +1 -1
- package/dist/DropdownMenu/DropdownMenuRadioItem.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenuRadioItem.js +5 -1
- package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts +1 -1
- package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenuSubMenu.js +5 -5
- package/dist/DropdownMenu/renderDropdownItems.d.ts.map +1 -1
- package/dist/DropdownMenu/renderDropdownItems.js +6 -4
- 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 +2 -2
- package/dist/Field/FieldLabel.d.ts.map +1 -1
- package/dist/Field/FieldLabel.js +41 -2
- package/dist/FieldStatus/FieldStatus.d.ts +1 -18
- package/dist/FieldStatus/FieldStatus.d.ts.map +1 -1
- package/dist/FieldStatus/FieldStatus.js +1 -15
- 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 +1 -1
- package/dist/Grid/Grid.js +1 -1
- 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/globalIconRegistry.d.ts +47 -5
- 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 +1 -1
- package/dist/Item/Item.js +1 -1
- 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 +1 -1
- package/dist/Lightbox/Lightbox.d.ts.map +1 -1
- package/dist/Lightbox/Lightbox.js +16 -3
- package/dist/Link/Link.d.ts +1 -1
- package/dist/Link/Link.js +1 -1
- 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 +1 -1
- package/dist/List/ListItem.js +1 -1
- package/dist/Markdown/Markdown.d.ts.map +1 -1
- package/dist/Markdown/Markdown.js +35 -13
- package/dist/MetadataList/MetadataList.d.ts +1 -1
- package/dist/MetadataList/MetadataList.js +1 -1
- 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 +1 -1
- package/dist/MoreMenu/MoreMenu.d.ts +1 -1
- package/dist/MoreMenu/MoreMenu.js +3 -3
- package/dist/MultiSelector/MultiSelector.d.ts +1 -1
- package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
- package/dist/MultiSelector/MultiSelector.js +55 -17
- package/dist/NavIcon/NavIcon.d.ts +1 -1
- package/dist/NavIcon/NavIcon.js +1 -1
- package/dist/NumberInput/NumberInput.d.ts +1 -1
- package/dist/NumberInput/NumberInput.js +1 -1
- package/dist/Outline/Outline.js +1 -1
- package/dist/OverflowList/OverflowList.d.ts +1 -1
- package/dist/OverflowList/OverflowList.js +1 -1
- package/dist/Pagination/Pagination.d.ts +1 -20
- package/dist/Pagination/Pagination.d.ts.map +1 -1
- package/dist/Pagination/Pagination.js +1 -15
- package/dist/Pagination/index.d.ts +21 -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/ProgressBar/ProgressBar.d.ts +1 -20
- package/dist/ProgressBar/ProgressBar.d.ts.map +1 -1
- package/dist/ProgressBar/ProgressBar.js +1 -15
- 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.js +1 -1
- package/dist/Resizable/ResizeHandle.d.ts.map +1 -1
- package/dist/Resizable/ResizeHandle.js +3 -10
- 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.js +1 -1
- package/dist/SelectableCard/SelectableCard.d.ts +4 -3
- package/dist/SelectableCard/SelectableCard.d.ts.map +1 -1
- package/dist/SelectableCard/SelectableCard.js +15 -3
- package/dist/Selector/Selector.d.ts +1 -1
- package/dist/Selector/Selector.d.ts.map +1 -1
- package/dist/Selector/Selector.js +55 -17
- package/dist/SideNav/SideNav.d.ts +1 -1
- package/dist/SideNav/SideNav.js +1 -1
- package/dist/SideNav/SideNavCollapseButton.d.ts +1 -1
- package/dist/SideNav/SideNavCollapseButton.d.ts.map +1 -1
- package/dist/SideNav/SideNavCollapseButton.js +4 -3
- package/dist/SideNav/SideNavHeading.d.ts +1 -1
- package/dist/SideNav/SideNavHeading.d.ts.map +1 -1
- package/dist/SideNav/SideNavHeading.js +8 -7
- package/dist/SideNav/SideNavItem.d.ts +2 -2
- package/dist/SideNav/SideNavItem.d.ts.map +1 -1
- package/dist/SideNav/SideNavItem.js +6 -7
- 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.js +1 -1
- 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/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 +1 -1
- package/dist/Switch/Switch.js +1 -1
- package/dist/TabList/Tab.d.ts +1 -1
- package/dist/TabList/Tab.js +1 -1
- 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.js +1 -1
- package/dist/Table/BaseTable.d.ts +1 -1
- package/dist/Table/BaseTable.js +1 -1
- 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 +1 -1
- package/dist/Table/TableHeaderCell.d.ts +1 -1
- package/dist/Table/TableHeaderCell.js +1 -1
- package/dist/Table/TableRow.d.ts +1 -1
- package/dist/Table/TableRow.js +1 -1
- 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 +21 -3
- 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 +36 -2
- 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 +107 -39
- package/dist/TextInput/TextInput.d.ts +1 -1
- package/dist/TextInput/TextInput.js +1 -1
- package/dist/Thumbnail/Thumbnail.d.ts.map +1 -1
- package/dist/Thumbnail/Thumbnail.js +10 -3
- package/dist/TimeInput/TimeInput.js +1 -1
- package/dist/Timestamp/Timestamp.d.ts +4 -1
- package/dist/Timestamp/Timestamp.d.ts.map +1 -1
- package/dist/Timestamp/Timestamp.js +78 -7
- package/dist/Timestamp/formatInstant.d.ts +3 -3
- package/dist/Timestamp/formatInstant.d.ts.map +1 -1
- package/dist/Timestamp/formatInstant.js +2 -2
- package/dist/Timestamp/tooltipEntries.d.ts +3 -2
- package/dist/Timestamp/tooltipEntries.d.ts.map +1 -1
- package/dist/Timestamp/tooltipEntries.js +3 -2
- package/dist/ToggleButton/ToggleButton.d.ts +1 -1
- package/dist/ToggleButton/ToggleButton.js +1 -1
- 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 +2 -27
- package/dist/Token/Token.d.ts.map +1 -1
- package/dist/Token/Token.js +1 -15
- 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.js +1 -1
- 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.js +1 -1
- package/dist/TopNav/TopNavHeading.d.ts +1 -1
- package/dist/TopNav/TopNavHeading.d.ts.map +1 -1
- package/dist/TopNav/TopNavHeading.js +7 -6
- package/dist/TopNav/TopNavItem.d.ts +1 -1
- package/dist/TopNav/TopNavItem.js +1 -1
- package/dist/TopNav/TopNavMegaMenu.d.ts +1 -1
- package/dist/TopNav/TopNavMegaMenu.js +6 -4
- 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.js +1 -1
- package/dist/TopNav/TopNavMenu.d.ts +1 -1
- package/dist/TopNav/TopNavMenu.d.ts.map +1 -1
- package/dist/TopNav/TopNavMenu.js +5 -4
- package/dist/TreeList/TreeList.d.ts +1 -1
- package/dist/TreeList/TreeList.js +1 -1
- package/dist/TreeList/TreeListBranches.js +1 -1
- package/dist/TreeList/TreeListItem.d.ts +1 -1
- package/dist/TreeList/TreeListItem.d.ts.map +1 -1
- package/dist/TreeList/TreeListItem.js +4 -3
- 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 +1 -1
- package/dist/Typeahead/BaseTypeahead.js +1 -1
- package/dist/Typeahead/Typeahead.d.ts +1 -1
- package/dist/Typeahead/Typeahead.js +1 -1
- 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 +45 -17
- package/dist/astryx.umd.js +49 -49
- package/dist/astryx.umd.js.map +4 -4
- package/dist/hooks/containerReveal.pool.stylex.d.ts +49 -27
- package/dist/hooks/containerReveal.pool.stylex.d.ts.map +1 -1
- package/dist/hooks/containerReveal.pool.stylex.js +40 -29
- package/dist/hooks/useContainerReveal.d.ts +1 -1
- package/dist/hooks/useContainerReveal.d.ts.map +1 -1
- package/dist/hooks/useContainerReveal.js +1 -1
- 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/useKeyboardHint.d.ts +1 -1
- package/dist/hooks/useKeyboardHint.js +1 -1
- package/dist/hooks/useListFocus.d.ts +8 -7
- package/dist/hooks/useListFocus.d.ts.map +1 -1
- package/dist/hooks/useTreeFocus.d.ts.map +1 -1
- package/dist/hooks/useTreeFocus.js +13 -2
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/theme/Theme.d.ts.map +1 -1
- package/dist/theme/Theme.js +2 -7
- package/dist/theme/defineTheme.d.ts +6 -0
- package/dist/theme/defineTheme.d.ts.map +1 -1
- package/dist/theme/defineTheme.js +4 -1
- package/dist/theme/expandColorScale.d.ts +19 -2
- package/dist/theme/expandColorScale.d.ts.map +1 -1
- package/dist/theme/expandColorScale.js +38 -10
- package/dist/theme/index.d.ts +6 -4
- package/dist/theme/index.d.ts.map +1 -1
- package/dist/theme/index.js +2 -1
- 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/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/rtlStyles.d.ts +21 -0
- package/dist/utils/rtlStyles.d.ts.map +1 -1
- package/dist/utils/rtlStyles.js +26 -1
- package/groups.doc.mjs +2 -2
- package/locales/en.json +8 -0
- package/locales/pseudo.json +6 -0
- package/package.json +4 -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.tsx +2 -20
- 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 +3 -3
- package/src/Avatar/Avatar.tsx +8 -3
- 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.tsx +3 -7
- package/src/AvatarGroup/AvatarGroupOverflow.doc.mjs +1 -1
- package/src/AvatarGroup/AvatarGroupOverflow.tsx +1 -1
- 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 +8 -45
- 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 +5 -3
- package/src/Breadcrumbs/Breadcrumbs.doc.mjs +3 -3
- 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.tsx +2 -21
- 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 +15 -3
- package/src/Calendar/Calendar.tsx +1 -1
- package/src/Calendar/styles.ts +2 -2
- package/src/Card/Card.doc.mjs +3 -3
- package/src/Card/Card.tsx +1 -1
- package/src/Carousel/Carousel.doc.mjs +10 -3
- package/src/Carousel/Carousel.test.tsx +232 -1
- package/src/Carousel/Carousel.tsx +144 -21
- 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 +3 -3
- 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.tsx +1 -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/CheckboxInput/CheckboxInput.doc.mjs +3 -3
- package/src/CheckboxInput/CheckboxInput.test.tsx +33 -0
- package/src/CheckboxInput/CheckboxInput.tsx +1 -1
- package/src/CheckboxList/CheckboxList.doc.mjs +3 -3
- package/src/CheckboxList/CheckboxList.tsx +1 -1
- package/src/CheckboxList/CheckboxListItem.doc.mjs +1 -1
- package/src/CheckboxList/CheckboxListItem.tsx +1 -1
- 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 +3 -3
- 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/Collapsible/Collapsible.doc.mjs +3 -3
- package/src/Collapsible/Collapsible.tsx +3 -3
- 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.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.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/ContextMenu/ContextMenu.doc.mjs +3 -3
- package/src/ContextMenu/ContextMenu.tsx +17 -5
- package/src/ContextMenu/ContextMenuItem.doc.mjs +1 -1
- package/src/DateInput/DateInput.doc.mjs +3 -3
- package/src/DateInput/DateInput.tsx +1 -1
- package/src/DateRangeInput/DateRangeInput.doc.mjs +2 -2
- package/src/DateRangeInput/DateRangeInput.tsx +1 -1
- package/src/DateTimeInput/DateTimeInput.doc.mjs +3 -3
- package/src/DateTimeInput/DateTimeInput.tsx +1 -1
- package/src/Dialog/Dialog.doc.mjs +9 -5
- package/src/Dialog/Dialog.test.tsx +84 -1
- package/src/Dialog/Dialog.tsx +87 -45
- 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 +20 -5
- package/src/DropdownMenu/DropdownMenu.test.tsx +122 -0
- package/src/DropdownMenu/DropdownMenu.tsx +31 -20
- package/src/DropdownMenu/DropdownMenuCheckboxItem.doc.mjs +1 -1
- package/src/DropdownMenu/DropdownMenuCheckboxItem.tsx +41 -64
- package/src/DropdownMenu/DropdownMenuItem.doc.mjs +1 -1
- package/src/DropdownMenu/DropdownMenuItem.tsx +1 -1
- package/src/DropdownMenu/DropdownMenuRadioGroup.doc.mjs +1 -1
- package/src/DropdownMenu/DropdownMenuRadioItem.doc.mjs +1 -1
- package/src/DropdownMenu/DropdownMenuRadioItem.tsx +10 -1
- package/src/DropdownMenu/DropdownMenuSelectable.test.tsx +64 -0
- package/src/DropdownMenu/DropdownMenuSubMenu.doc.mjs +1 -1
- package/src/DropdownMenu/DropdownMenuSubMenu.test.tsx +17 -0
- package/src/DropdownMenu/DropdownMenuSubMenu.tsx +11 -3
- package/src/DropdownMenu/renderDropdownItems.tsx +14 -2
- package/src/EmptyState/EmptyState.doc.mjs +3 -3
- package/src/EmptyState/EmptyState.tsx +1 -1
- package/src/Field/Field.doc.mjs +3 -3
- package/src/Field/Field.tsx +1 -1
- package/src/Field/FieldLabel.doc.mjs +1 -1
- package/src/Field/FieldLabel.test.tsx +78 -0
- package/src/Field/FieldLabel.tsx +50 -3
- package/src/FieldStatus/FieldStatus.doc.mjs +2 -2
- package/src/FieldStatus/FieldStatus.tsx +2 -20
- 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 -3
- package/src/Grid/Grid.tsx +1 -1
- 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 +4 -3
- package/src/Icon/Icon.test.tsx +23 -0
- package/src/Icon/Icon.tsx +4 -2
- package/src/Icon/globalIconRegistry.test.tsx +87 -1
- package/src/Icon/globalIconRegistry.tsx +109 -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 +3 -3
- package/src/Item/Item.tsx +1 -1
- 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 +3 -3
- package/src/Lightbox/Lightbox.test.tsx +33 -0
- package/src/Lightbox/Lightbox.tsx +16 -4
- package/src/Link/Link.doc.mjs +3 -3
- package/src/Link/Link.tsx +1 -1
- 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 +2 -2
- package/src/List/ListItem.tsx +1 -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.tsx +1 -1
- 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 +1 -1
- package/src/MoreMenu/MoreMenu.doc.mjs +3 -3
- package/src/MoreMenu/MoreMenu.tsx +3 -3
- package/src/MultiSelector/MultiSelector.doc.mjs +4 -4
- package/src/MultiSelector/MultiSelector.test.tsx +175 -0
- package/src/MultiSelector/MultiSelector.tsx +59 -38
- package/src/NavIcon/NavIcon.doc.mjs +3 -3
- package/src/NavIcon/NavIcon.tsx +1 -1
- package/src/NavMenu/NavMenu.doc.mjs +2 -2
- package/src/NumberInput/NumberInput.doc.mjs +3 -3
- package/src/NumberInput/NumberInput.tsx +1 -1
- package/src/Outline/Outline.doc.mjs +3 -3
- package/src/Outline/Outline.tsx +1 -1
- 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 +3 -3
- package/src/Pagination/Pagination.tsx +2 -22
- package/src/Pagination/index.ts +21 -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/ProgressBar/ProgressBar.doc.mjs +3 -3
- package/src/ProgressBar/ProgressBar.tsx +2 -22
- package/src/ProgressBar/index.ts +22 -5
- package/src/RadioList/RadioList.doc.mjs +3 -3
- package/src/RadioList/RadioList.tsx +1 -1
- package/src/RadioList/RadioListItem.doc.mjs +1 -1
- package/src/RadioList/RadioListItem.tsx +1 -1
- package/src/Resizable/Resizable.doc.mjs +2 -2
- package/src/Resizable/ResizeHandle.test.tsx +3 -2
- package/src/Resizable/ResizeHandle.tsx +8 -12
- 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.tsx +1 -1
- package/src/SegmentedControl/SegmentedControlItem.doc.mjs +1 -1
- package/src/SegmentedControl/SegmentedControlItem.tsx +1 -1
- package/src/SelectableCard/SelectableCard.doc.mjs +4 -2
- package/src/SelectableCard/SelectableCard.test.tsx +55 -0
- package/src/SelectableCard/SelectableCard.tsx +19 -3
- package/src/Selector/Selector.doc.mjs +4 -4
- package/src/Selector/Selector.test.tsx +152 -0
- package/src/Selector/Selector.tsx +59 -38
- package/src/Selector/SelectorOption.doc.mjs +1 -1
- package/src/SideNav/SideNav.doc.mjs +3 -3
- package/src/SideNav/SideNav.tsx +1 -1
- package/src/SideNav/SideNavCollapseButton.doc.mjs +1 -1
- package/src/SideNav/SideNavCollapseButton.tsx +4 -3
- package/src/SideNav/SideNavHeading.doc.mjs +1 -1
- package/src/SideNav/SideNavHeading.tsx +8 -9
- package/src/SideNav/SideNavItem.doc.mjs +1 -1
- package/src/SideNav/SideNavItem.tsx +5 -6
- 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.tsx +1 -1
- 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 +3 -3
- package/src/Stack/Stack.tsx +1 -1
- package/src/Stack/StackItem.tsx +1 -1
- package/src/StatusDot/StatusDot.doc.mjs +3 -3
- package/src/StatusDot/StatusDot.tsx +2 -22
- package/src/StatusDot/index.ts +22 -5
- package/src/Switch/Switch.doc.mjs +3 -3
- package/src/Switch/Switch.test.tsx +34 -0
- package/src/Switch/Switch.tsx +1 -1
- package/src/TabList/Tab.doc.mjs +1 -1
- package/src/TabList/Tab.tsx +1 -1
- package/src/TabList/TabList.doc.mjs +3 -3
- package/src/TabList/TabList.tsx +1 -1
- package/src/TabList/TabMenu.doc.mjs +1 -1
- package/src/TabList/TabMenu.tsx +1 -1
- package/src/Table/BaseTable.tsx +1 -1
- package/src/Table/Table.doc.mjs +3 -3
- package/src/Table/Table.tsx +1 -1
- package/src/Table/TableCell.doc.mjs +1 -1
- package/src/Table/TableCell.tsx +1 -1
- package/src/Table/TableHeaderCell.doc.mjs +1 -1
- package/src/Table/TableHeaderCell.tsx +1 -1
- package/src/Table/TableRow.doc.mjs +1 -1
- package/src/Table/TableRow.tsx +1 -1
- package/src/Table/plugins/rowExpansion/useTableRowExpansion.tsx +21 -3
- package/src/Table/plugins/tree/useTableTreeData.test.tsx +161 -2
- package/src/Table/plugins/tree/useTableTreeData.tsx +54 -1
- 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 +2 -2
- 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 +5 -5
- package/src/TextArea/TextArea.test.tsx +112 -7
- package/src/TextArea/TextArea.tsx +143 -50
- package/src/TextInput/TextInput.doc.mjs +3 -3
- package/src/TextInput/TextInput.tsx +1 -1
- package/src/Thumbnail/Thumbnail.doc.mjs +2 -2
- package/src/Thumbnail/Thumbnail.test.tsx +24 -1
- package/src/Thumbnail/Thumbnail.tsx +10 -3
- package/src/TimeInput/TimeInput.doc.mjs +3 -3
- package/src/TimeInput/TimeInput.tsx +1 -1
- package/src/Timestamp/Timestamp.doc.mjs +5 -5
- package/src/Timestamp/Timestamp.test.tsx +131 -0
- package/src/Timestamp/Timestamp.tsx +92 -9
- package/src/Timestamp/formatInstant.ts +3 -4
- package/src/Timestamp/tooltipEntries.ts +3 -2
- package/src/Toast/Toast.doc.mjs +3 -3
- package/src/Toast/useToast.doc.mjs +2 -2
- package/src/ToggleButton/ToggleButton.doc.mjs +3 -3
- package/src/ToggleButton/ToggleButton.tsx +1 -1
- 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.tsx +2 -28
- package/src/Token/index.ts +28 -1
- package/src/Tokenizer/Tokenizer.doc.mjs +3 -3
- package/src/Tokenizer/Tokenizer.tsx +1 -1
- 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.tsx +1 -1
- package/src/TopNav/TopNavHeading.doc.mjs +1 -1
- package/src/TopNav/TopNavHeading.tsx +7 -8
- package/src/TopNav/TopNavItem.doc.mjs +1 -1
- package/src/TopNav/TopNavItem.tsx +1 -1
- package/src/TopNav/TopNavMegaMenu.doc.mjs +1 -1
- package/src/TopNav/TopNavMegaMenu.tsx +6 -4
- 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 +1 -1
- package/src/TopNav/TopNavMenu.doc.mjs +1 -1
- package/src/TopNav/TopNavMenu.tsx +5 -4
- package/src/TreeList/TreeList.doc.mjs +3 -3
- package/src/TreeList/TreeList.tsx +1 -1
- package/src/TreeList/TreeListBranches.tsx +1 -1
- package/src/TreeList/TreeListItem.tsx +4 -3
- 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 +1 -1
- package/src/Typeahead/Typeahead.doc.mjs +3 -3
- package/src/Typeahead/Typeahead.tsx +1 -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__/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 +154 -47
- package/src/hooks/useClickableContainer.doc.mjs +2 -2
- package/src/hooks/useContainerReveal.doc.mjs +75 -0
- package/src/hooks/useContainerReveal.ts +5 -4
- 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/useInputContainer.doc.mjs +2 -2
- package/src/hooks/useInputContainer.test.tsx +180 -0
- package/src/hooks/useInputContainer.ts +36 -1
- package/src/hooks/useKeyboardHint.doc.mjs +2 -2
- package/src/hooks/useKeyboardHint.tsx +1 -1
- package/src/hooks/useListFocus.doc.mjs +2 -2
- package/src/hooks/useListFocus.ts +8 -7
- 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/useTreeFocus.doc.mjs +2 -2
- package/src/hooks/useTreeFocus.test.tsx +53 -1
- package/src/hooks/useTreeFocus.ts +13 -2
- package/src/i18n/InternationalizationProvider.doc.mjs +2 -2
- package/src/i18n/useTranslator.doc.mjs +2 -2
- package/src/index.ts +14 -10
- 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/defineTheme.ts +11 -1
- package/src/theme/expandColorScale.test.ts +144 -0
- package/src/theme/expandColorScale.ts +53 -15
- package/src/theme/index.ts +11 -9
- package/src/theme/themeRegistry.test.ts +59 -0
- package/src/theme/themeRegistry.ts +53 -0
- 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/rtlStyles.ts +22 -0
- 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/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
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* - /packages/core/src/SegmentedControl/SegmentedControl.doc.mjs
|
|
13
13
|
* - /packages/core/src/SegmentedControl/index.ts
|
|
14
14
|
* - /packages/core/src/SegmentedControl/SegmentedControl.test.tsx
|
|
15
|
-
* - /packages/cli/templates/blocks/components/SegmentedControl/ (showcase blocks)
|
|
15
|
+
* - /packages/cli/assets/templates/blocks/components/SegmentedControl/ (showcase blocks)
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
18
|
import React, {type ReactNode} from 'react';
|
|
@@ -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
|
export const docs = {
|
|
5
5
|
name: 'SelectableCard',
|
|
6
6
|
displayName: 'Selectable Card',
|
|
@@ -12,6 +12,7 @@ export const docs = {
|
|
|
12
12
|
bestPractices: [
|
|
13
13
|
{guidance: true, description: 'Use for plan pickers, filter chips, or option grids.'},
|
|
14
14
|
{guidance: true, description: 'For single-select track one ID; for multi-select use a Set.'},
|
|
15
|
+
{guidance: true, description: 'When focused, toggle selection with Space or Enter.'},
|
|
15
16
|
{guidance: false, description: 'Use for navigation; use ClickableCard for that.'},
|
|
16
17
|
],
|
|
17
18
|
anatomy: [
|
|
@@ -54,7 +55,7 @@ export const docs = {
|
|
|
54
55
|
},
|
|
55
56
|
};
|
|
56
57
|
|
|
57
|
-
/** @type {import('
|
|
58
|
+
/** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
|
|
58
59
|
export const docsDense = {
|
|
59
60
|
description: 'Card toggling between selected/unselected states w/ accent border. For navigation use ClickableCard instead.',
|
|
60
61
|
usage: {
|
|
@@ -62,6 +63,7 @@ export const docsDense = {
|
|
|
62
63
|
bestPractices: [
|
|
63
64
|
{guidance: true, description: 'Use for plan pickers, filter chips, option grids.'},
|
|
64
65
|
{guidance: true, description: 'For single-select track one ID; for multi-select use a Set.'},
|
|
66
|
+
{guidance: true, description: 'When focused, toggle selection with Space or Enter.'},
|
|
65
67
|
{guidance: false, description: 'Use for navigation; use ClickableCard instead.'},
|
|
66
68
|
],
|
|
67
69
|
},
|
|
@@ -108,6 +108,61 @@ describe('SelectableCard', () => {
|
|
|
108
108
|
expect(handleChange).not.toHaveBeenCalled();
|
|
109
109
|
});
|
|
110
110
|
|
|
111
|
+
it('calls onChange with true when Enter is pressed on the checkbox (unselected)', () => {
|
|
112
|
+
const handleChange = vi.fn();
|
|
113
|
+
render(
|
|
114
|
+
<SelectableCard label="Test" isSelected={false} onChange={handleChange}>
|
|
115
|
+
Content
|
|
116
|
+
</SelectableCard>,
|
|
117
|
+
);
|
|
118
|
+
const checkbox = screen.getByRole('checkbox', {name: 'Test'});
|
|
119
|
+
fireEvent.keyDown(checkbox, {key: 'Enter'});
|
|
120
|
+
expect(handleChange).toHaveBeenCalledWith(true);
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
it('calls onChange with false when Enter is pressed on the checkbox (selected)', () => {
|
|
124
|
+
const handleChange = vi.fn();
|
|
125
|
+
render(
|
|
126
|
+
<SelectableCard label="Test" isSelected={true} onChange={handleChange}>
|
|
127
|
+
Content
|
|
128
|
+
</SelectableCard>,
|
|
129
|
+
);
|
|
130
|
+
const checkbox = screen.getByRole('checkbox', {name: 'Test'});
|
|
131
|
+
fireEvent.keyDown(checkbox, {key: 'Enter'});
|
|
132
|
+
expect(handleChange).toHaveBeenCalledWith(false);
|
|
133
|
+
});
|
|
134
|
+
|
|
135
|
+
it('does not toggle on Enter when disabled', () => {
|
|
136
|
+
const handleChange = vi.fn();
|
|
137
|
+
render(
|
|
138
|
+
<SelectableCard
|
|
139
|
+
label="Disabled"
|
|
140
|
+
isSelected={false}
|
|
141
|
+
onChange={handleChange}
|
|
142
|
+
isDisabled>
|
|
143
|
+
Content
|
|
144
|
+
</SelectableCard>,
|
|
145
|
+
);
|
|
146
|
+
const checkbox = screen.getByRole('checkbox', {name: 'Disabled'});
|
|
147
|
+
fireEvent.keyDown(checkbox, {key: 'Enter'});
|
|
148
|
+
expect(handleChange).not.toHaveBeenCalled();
|
|
149
|
+
});
|
|
150
|
+
|
|
151
|
+
it('toggles exactly once on Space (native), not doubled by the Enter handler', () => {
|
|
152
|
+
const handleChange = vi.fn();
|
|
153
|
+
render(
|
|
154
|
+
<SelectableCard label="Test" isSelected={false} onChange={handleChange}>
|
|
155
|
+
Content
|
|
156
|
+
</SelectableCard>,
|
|
157
|
+
);
|
|
158
|
+
const checkbox = screen.getByRole('checkbox', {name: 'Test'});
|
|
159
|
+
// Space activates the native checkbox, firing a single change event.
|
|
160
|
+
fireEvent.click(checkbox);
|
|
161
|
+
fireEvent.keyDown(checkbox, {key: ' '});
|
|
162
|
+
expect(handleChange).toHaveBeenCalledTimes(1);
|
|
163
|
+
expect(handleChange).toHaveBeenCalledWith(true);
|
|
164
|
+
});
|
|
165
|
+
|
|
111
166
|
describe('elevation', () => {
|
|
112
167
|
const noop = () => {};
|
|
113
168
|
|
|
@@ -12,9 +12,9 @@
|
|
|
12
12
|
* - /packages/core/src/SelectableCard/SelectableCard.doc.mjs (props table, features)
|
|
13
13
|
* - /packages/core/src/SelectableCard/index.ts (exports if types change)
|
|
14
14
|
* - /apps/storybook/stories/SelectableCard.stories.tsx (storybook stories)
|
|
15
|
-
* - /packages/cli/templates/blocks/components/Card/SelectableCardShowcase.tsx (showcase block)
|
|
16
|
-
* - /packages/cli/templates/blocks/components/Card/SelectableCardMulti.tsx (block)
|
|
17
|
-
* - /packages/cli/templates/blocks/components/Card/SelectableCardElevated.tsx (block)
|
|
15
|
+
* - /packages/cli/assets/templates/blocks/components/Card/SelectableCardShowcase.tsx (showcase block)
|
|
16
|
+
* - /packages/cli/assets/templates/blocks/components/Card/SelectableCardMulti.tsx (block)
|
|
17
|
+
* - /packages/cli/assets/templates/blocks/components/Card/SelectableCardElevated.tsx (block)
|
|
18
18
|
*
|
|
19
19
|
* Composes Card for all visual styling. Adds selection state with
|
|
20
20
|
* an inset box-shadow (zero layout jitter) and useClickableContainer
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
*
|
|
23
23
|
* A hidden <input type="checkbox"> inside the card provides the accessible
|
|
24
24
|
* role, label, and checked state — the card surface itself has no role/tabIndex.
|
|
25
|
+
* Space toggles it natively; Enter is wired up as an additional toggle key.
|
|
25
26
|
*
|
|
26
27
|
* For static display, use Card.
|
|
27
28
|
* For navigation or action cards, use ClickableCard.
|
|
@@ -30,6 +31,7 @@
|
|
|
30
31
|
import {
|
|
31
32
|
type ReactNode,
|
|
32
33
|
type MouseEvent,
|
|
34
|
+
type KeyboardEvent,
|
|
33
35
|
useRef,
|
|
34
36
|
useCallback,
|
|
35
37
|
type Ref,
|
|
@@ -311,6 +313,19 @@ export function SelectableCard({
|
|
|
311
313
|
[isDisabled, isSelected, onChange],
|
|
312
314
|
);
|
|
313
315
|
|
|
316
|
+
// The focusable control is a native checkbox, which toggles on Space but
|
|
317
|
+
// ignores Enter. Add Enter as an extra toggle key; Space keeps its native
|
|
318
|
+
// handling, so we deliberately do not toggle on Space here (would double).
|
|
319
|
+
const handleKeyDown = useCallback(
|
|
320
|
+
(event: KeyboardEvent<HTMLInputElement>) => {
|
|
321
|
+
if (!isDisabled && event.key === 'Enter') {
|
|
322
|
+
event.preventDefault();
|
|
323
|
+
onChange(!isSelected);
|
|
324
|
+
}
|
|
325
|
+
},
|
|
326
|
+
[isDisabled, isSelected, onChange],
|
|
327
|
+
);
|
|
328
|
+
|
|
314
329
|
const {onClick, onMouseUp} = useClickableContainer({
|
|
315
330
|
containerRef,
|
|
316
331
|
interactiveRef,
|
|
@@ -369,6 +384,7 @@ export function SelectableCard({
|
|
|
369
384
|
aria-label={label}
|
|
370
385
|
disabled={isDisabled}
|
|
371
386
|
onChange={() => onChange(!isSelected)}
|
|
387
|
+
onKeyDown={handleKeyDown}
|
|
372
388
|
{...stylex.props(styles.srOnly)}
|
|
373
389
|
/>
|
|
374
390
|
{children}
|
|
@@ -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: 'Selector',
|
|
@@ -63,7 +63,7 @@ export const docs = {
|
|
|
63
63
|
name: 'hasSearch',
|
|
64
64
|
type: 'boolean',
|
|
65
65
|
description:
|
|
66
|
-
'Whether to show a search input for filtering options. As the user types, the match count (or "No results found") is announced to screen readers via a polite live region.',
|
|
66
|
+
'Whether to show a search input for filtering options. As the user types, the match count (or "No results found") is announced to screen readers via a polite live region. The search field has built-in affordances: a leading magnifier icon and, once a query is typed, a trailing clear (✕) button that resets the query and returns focus to the input.',
|
|
67
67
|
default: 'false',
|
|
68
68
|
},
|
|
69
69
|
{
|
|
@@ -252,7 +252,7 @@ export const docs = {
|
|
|
252
252
|
},
|
|
253
253
|
};
|
|
254
254
|
|
|
255
|
-
/** @type {import('
|
|
255
|
+
/** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
|
|
256
256
|
export const docsZh = {
|
|
257
257
|
usage: {
|
|
258
258
|
description:
|
|
@@ -344,7 +344,7 @@ export const docsZh = {
|
|
|
344
344
|
},
|
|
345
345
|
};
|
|
346
346
|
|
|
347
|
-
/** @type {import('
|
|
347
|
+
/** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
|
|
348
348
|
export const docsDense = {
|
|
349
349
|
usage: {
|
|
350
350
|
description:
|
|
@@ -1241,6 +1241,36 @@ describe('Selector statusVariant forwarding', () => {
|
|
|
1241
1241
|
'detached',
|
|
1242
1242
|
);
|
|
1243
1243
|
});
|
|
1244
|
+
|
|
1245
|
+
it('keeps the on-field status icon for the attached variant', () => {
|
|
1246
|
+
const {container} = render(
|
|
1247
|
+
<Selector
|
|
1248
|
+
label="Fruit"
|
|
1249
|
+
options={['Apple', 'Banana']}
|
|
1250
|
+
status={{type: 'error', message: 'Required'}}
|
|
1251
|
+
/>,
|
|
1252
|
+
);
|
|
1253
|
+
// Attached: the status glyph replaces the chevron indicator on the field.
|
|
1254
|
+
expect(
|
|
1255
|
+
container.querySelector('.astryx-selector-indicator-icon'),
|
|
1256
|
+
).toBeNull();
|
|
1257
|
+
});
|
|
1258
|
+
|
|
1259
|
+
it('suppresses the on-field status icon for the detached variant', () => {
|
|
1260
|
+
const {container} = render(
|
|
1261
|
+
<Selector
|
|
1262
|
+
label="Fruit"
|
|
1263
|
+
options={['Apple', 'Banana']}
|
|
1264
|
+
status={{type: 'error', message: 'Required'}}
|
|
1265
|
+
statusVariant="detached"
|
|
1266
|
+
/>,
|
|
1267
|
+
);
|
|
1268
|
+
// Detached: the message box below carries its own leading icon, so the
|
|
1269
|
+
// field keeps its chevron indicator rather than duplicating the glyph.
|
|
1270
|
+
expect(
|
|
1271
|
+
container.querySelector('.astryx-selector-indicator-icon'),
|
|
1272
|
+
).not.toBeNull();
|
|
1273
|
+
});
|
|
1244
1274
|
});
|
|
1245
1275
|
|
|
1246
1276
|
describe('Selector clear icon theme target', () => {
|
|
@@ -1443,3 +1473,125 @@ describe('Selector indicator (chevron) icon theme target', () => {
|
|
|
1443
1473
|
expect(css).toContain('color: var(--color-icon-primary)');
|
|
1444
1474
|
});
|
|
1445
1475
|
});
|
|
1476
|
+
|
|
1477
|
+
describe('Selector search affordances', () => {
|
|
1478
|
+
it('renders a decorative (aria-hidden) magnifier icon whenever hasSearch is on', async () => {
|
|
1479
|
+
const user = userEvent.setup();
|
|
1480
|
+
render(
|
|
1481
|
+
<Selector
|
|
1482
|
+
label="Fruit"
|
|
1483
|
+
options={OPTIONS}
|
|
1484
|
+
value="Apple"
|
|
1485
|
+
onChange={() => {}}
|
|
1486
|
+
hasSearch
|
|
1487
|
+
/>,
|
|
1488
|
+
);
|
|
1489
|
+
await user.click(screen.getByRole('button', {name: 'Fruit'}));
|
|
1490
|
+
const search = screen.getByRole('combobox', {hidden: true});
|
|
1491
|
+
// The search field is a TextInput; the magnifier is its startIcon, so it
|
|
1492
|
+
// sits inside the input container as a sibling of the <input>.
|
|
1493
|
+
const container = search.parentElement;
|
|
1494
|
+
const magnifier = container?.querySelector('.astryx-icon');
|
|
1495
|
+
expect(magnifier).toBeTruthy();
|
|
1496
|
+
// Decorative: the icon is hidden from assistive tech and carries no name.
|
|
1497
|
+
expect(magnifier?.getAttribute('aria-hidden')).toBe('true');
|
|
1498
|
+
expect(magnifier?.getAttribute('aria-label')).toBeNull();
|
|
1499
|
+
});
|
|
1500
|
+
|
|
1501
|
+
it('renders the clear button once a query is typed and clears + refocuses on click', async () => {
|
|
1502
|
+
const user = userEvent.setup();
|
|
1503
|
+
render(
|
|
1504
|
+
<Selector
|
|
1505
|
+
label="Fruit"
|
|
1506
|
+
options={OPTIONS}
|
|
1507
|
+
value="Apple"
|
|
1508
|
+
onChange={() => {}}
|
|
1509
|
+
hasSearch
|
|
1510
|
+
/>,
|
|
1511
|
+
);
|
|
1512
|
+
await user.click(screen.getByRole('button', {name: 'Fruit'}));
|
|
1513
|
+
const search = screen.getByRole('combobox', {hidden: true});
|
|
1514
|
+
await user.type(search, 'ap');
|
|
1515
|
+
expect(search).toHaveValue('ap');
|
|
1516
|
+
|
|
1517
|
+
// The clear button is TextInput's built-in hasClear affordance; its name is
|
|
1518
|
+
// derived from the field label ("Search options").
|
|
1519
|
+
const clear = screen.getByRole('button', {
|
|
1520
|
+
name: 'Clear Search options',
|
|
1521
|
+
hidden: true,
|
|
1522
|
+
});
|
|
1523
|
+
|
|
1524
|
+
await user.click(clear);
|
|
1525
|
+
expect(search).toHaveValue('');
|
|
1526
|
+
expect(search).toHaveFocus();
|
|
1527
|
+
});
|
|
1528
|
+
|
|
1529
|
+
it('does not render the clear button when the query is empty', async () => {
|
|
1530
|
+
const user = userEvent.setup();
|
|
1531
|
+
render(
|
|
1532
|
+
<Selector
|
|
1533
|
+
label="Fruit"
|
|
1534
|
+
options={OPTIONS}
|
|
1535
|
+
value="Apple"
|
|
1536
|
+
onChange={() => {}}
|
|
1537
|
+
hasSearch
|
|
1538
|
+
/>,
|
|
1539
|
+
);
|
|
1540
|
+
await user.click(screen.getByRole('button', {name: 'Fruit'}));
|
|
1541
|
+
expect(
|
|
1542
|
+
screen.queryByRole('button', {
|
|
1543
|
+
name: 'Clear Search options',
|
|
1544
|
+
hidden: true,
|
|
1545
|
+
}),
|
|
1546
|
+
).not.toBeInTheDocument();
|
|
1547
|
+
});
|
|
1548
|
+
|
|
1549
|
+
it('keeps the combobox contract on the input, not the affordances', async () => {
|
|
1550
|
+
const user = userEvent.setup();
|
|
1551
|
+
render(
|
|
1552
|
+
<Selector
|
|
1553
|
+
label="Fruit"
|
|
1554
|
+
options={OPTIONS}
|
|
1555
|
+
value="Apple"
|
|
1556
|
+
onChange={() => {}}
|
|
1557
|
+
hasSearch
|
|
1558
|
+
/>,
|
|
1559
|
+
);
|
|
1560
|
+
await user.click(screen.getByRole('button', {name: 'Fruit'}));
|
|
1561
|
+
// Exactly one combobox — the input. The magnifier and clear button are not
|
|
1562
|
+
// part of the combobox contract.
|
|
1563
|
+
const comboboxes = screen.getAllByRole('combobox', {hidden: true});
|
|
1564
|
+
expect(comboboxes).toHaveLength(1);
|
|
1565
|
+
expect(comboboxes[0].tagName).toBe('INPUT');
|
|
1566
|
+
expect(comboboxes[0]).toHaveAttribute('aria-autocomplete', 'list');
|
|
1567
|
+
});
|
|
1568
|
+
|
|
1569
|
+
it('tabs from the search input to the clear button (keeping the popup open) when a query is showing it', async () => {
|
|
1570
|
+
const user = userEvent.setup();
|
|
1571
|
+
render(
|
|
1572
|
+
<Selector
|
|
1573
|
+
label="Fruit"
|
|
1574
|
+
options={OPTIONS}
|
|
1575
|
+
value="Apple"
|
|
1576
|
+
onChange={() => {}}
|
|
1577
|
+
hasSearch
|
|
1578
|
+
/>,
|
|
1579
|
+
);
|
|
1580
|
+
await user.click(screen.getByRole('button', {name: 'Fruit'}));
|
|
1581
|
+
const trigger = screen.getByRole('button', {name: 'Fruit'});
|
|
1582
|
+
const search = screen.getByRole('combobox', {hidden: true});
|
|
1583
|
+
await user.type(search, 'ap');
|
|
1584
|
+
expect(search).toHaveFocus();
|
|
1585
|
+
|
|
1586
|
+
// Forward-tab lands on the clear (✕) button and the popup stays open, so
|
|
1587
|
+
// the affordance is keyboard-reachable rather than being skipped when the
|
|
1588
|
+
// input's Tab dismisses the popup.
|
|
1589
|
+
await user.tab();
|
|
1590
|
+
const clear = screen.getByRole('button', {
|
|
1591
|
+
name: 'Clear Search options',
|
|
1592
|
+
hidden: true,
|
|
1593
|
+
});
|
|
1594
|
+
expect(clear).toHaveFocus();
|
|
1595
|
+
expect(trigger).toHaveAttribute('aria-expanded', 'true');
|
|
1596
|
+
});
|
|
1597
|
+
});
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* - /packages/core/src/Selector/Selector.test.tsx
|
|
14
14
|
* - /packages/core/src/Selector/index.ts
|
|
15
15
|
* - /apps/storybook/stories/InputGroup.stories.tsx
|
|
16
|
-
* - /packages/cli/templates/blocks/components/Selector/ (showcase blocks)
|
|
16
|
+
* - /packages/cli/assets/templates/blocks/components/Selector/ (showcase blocks)
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
19
|
import React, {
|
|
@@ -43,6 +43,7 @@ import {Divider} from '../Divider';
|
|
|
43
43
|
import {layerAnimations} from '../Layer/layerAnimations.stylex';
|
|
44
44
|
import type {LayerPlacement} from '../Layer/useLayer';
|
|
45
45
|
import {Spinner} from '../Spinner';
|
|
46
|
+
import {TextInput} from '../TextInput';
|
|
46
47
|
import {useAnnounce} from '../hooks/useAnnounce';
|
|
47
48
|
import {
|
|
48
49
|
colorVars,
|
|
@@ -191,33 +192,15 @@ const styles = stylex.create({
|
|
|
191
192
|
popover: {
|
|
192
193
|
minWidth: 'anchor-size(width)',
|
|
193
194
|
},
|
|
194
|
-
// Search
|
|
195
|
+
// Search field. The inner TextInput owns the border, focus ring, magnifier
|
|
196
|
+
// (startIcon), and clear button (hasClear); this wrapper only supplies the
|
|
197
|
+
// dropdown's inline/block padding around it.
|
|
195
198
|
searchWrapper: {
|
|
199
|
+
display: 'flex',
|
|
200
|
+
alignItems: 'center',
|
|
196
201
|
paddingInline: spacingVars['--spacing-2'],
|
|
197
202
|
paddingBlock: spacingVars['--spacing-1'],
|
|
198
203
|
},
|
|
199
|
-
searchInput: {
|
|
200
|
-
boxSizing: 'border-box',
|
|
201
|
-
width: '100%',
|
|
202
|
-
paddingBlock: spacingVars['--spacing-1'],
|
|
203
|
-
paddingInline: spacingVars['--spacing-2'],
|
|
204
|
-
borderWidth: borderVars['--border-width'],
|
|
205
|
-
borderStyle: 'solid',
|
|
206
|
-
borderColor: colorVars['--color-border-emphasized'],
|
|
207
|
-
borderRadius: radiusVars['--radius-element'],
|
|
208
|
-
backgroundColor: colorVars['--color-background-surface'],
|
|
209
|
-
fontFamily: typographyVars['--font-family-body'],
|
|
210
|
-
fontSize: {
|
|
211
|
-
default: typeScaleVars['--text-label-size'],
|
|
212
|
-
'@media (pointer: coarse)': `max(1rem, ${typeScaleVars['--text-label-size']})`,
|
|
213
|
-
},
|
|
214
|
-
color: colorVars['--color-text-primary'],
|
|
215
|
-
outline: {
|
|
216
|
-
default: 'none',
|
|
217
|
-
':focus': `${borderVars['--border-width']} solid ${colorVars['--color-accent']}`,
|
|
218
|
-
},
|
|
219
|
-
outlineOffset: '0',
|
|
220
|
-
},
|
|
221
204
|
|
|
222
205
|
// Empty state
|
|
223
206
|
emptyState: {
|
|
@@ -644,6 +627,9 @@ export function Selector<T extends SelectorOptionType>(
|
|
|
644
627
|
const inputGroup = useInputGroup();
|
|
645
628
|
|
|
646
629
|
const [searchQuery, setSearchQuery] = useState('');
|
|
630
|
+
// A typed query shows TextInput's built-in clear (✕) button, which becomes
|
|
631
|
+
// the next tab stop after the search input.
|
|
632
|
+
const hasQuery = searchQuery.length > 0;
|
|
647
633
|
|
|
648
634
|
const [, startTransition] = useTransition();
|
|
649
635
|
const [optimisticValue, setOptimisticValue] = useOptimistic(normalizedValue);
|
|
@@ -737,8 +723,7 @@ export function Selector<T extends SelectorOptionType>(
|
|
|
737
723
|
// next query here fires the announcement exactly once per keystroke and does
|
|
738
724
|
// not re-speak on unrelated re-renders.
|
|
739
725
|
const handleSearchChange = useCallback(
|
|
740
|
-
(
|
|
741
|
-
const nextQuery = event.target.value;
|
|
726
|
+
(nextQuery: string) => {
|
|
742
727
|
setSearchQuery(nextQuery);
|
|
743
728
|
if (nextQuery.length === 0) {
|
|
744
729
|
// Emptying the query clears the region rather than announcing a count.
|
|
@@ -856,14 +841,42 @@ export function Selector<T extends SelectorOptionType>(
|
|
|
856
841
|
return null;
|
|
857
842
|
}
|
|
858
843
|
return (
|
|
859
|
-
<div
|
|
860
|
-
|
|
844
|
+
<div
|
|
845
|
+
{...stylex.props(styles.searchWrapper)}
|
|
846
|
+
onKeyDown={e => {
|
|
847
|
+
// The clear (✕) button lives inside the TextInput, after the input in
|
|
848
|
+
// DOM order. When it is focused and the user tabs forward there is
|
|
849
|
+
// nothing else in the popup, so dismiss it (Shift+Tab returns to the
|
|
850
|
+
// input natively). Key events originating on the input are handled on
|
|
851
|
+
// the input below; ignore them here so we don't double-dismiss.
|
|
852
|
+
if (e.target === searchRef.current) {
|
|
853
|
+
return;
|
|
854
|
+
}
|
|
855
|
+
if (e.key === 'Tab' && !e.shiftKey) {
|
|
856
|
+
onKeyDown(e);
|
|
857
|
+
}
|
|
858
|
+
}}>
|
|
859
|
+
<TextInput
|
|
861
860
|
ref={searchRef}
|
|
862
861
|
id={searchId}
|
|
862
|
+
// The search field IS a TextInput: the leading magnifier is its
|
|
863
|
+
// `startIcon` and the trailing clear (✕) is its built-in `hasClear`
|
|
864
|
+
// (which resets the value and refocuses the input). We add no bespoke
|
|
865
|
+
// affordance chrome — the field just looks and behaves like every
|
|
866
|
+
// other Astryx input.
|
|
867
|
+
label={t('@astryx.selector.searchOptions')}
|
|
868
|
+
isLabelHidden
|
|
869
|
+
startIcon="search"
|
|
870
|
+
hasClear
|
|
871
|
+
size="sm"
|
|
872
|
+
// Fill the dropdown's width (minus the wrapper's inline padding) so
|
|
873
|
+
// the field is flush end-to-end rather than sized to its content.
|
|
874
|
+
width="100%"
|
|
863
875
|
// When hasSearch is set, focus moves into this input on open, so it —
|
|
864
876
|
// not the trigger — must be the combobox that reports the highlighted
|
|
865
877
|
// option via aria-activedescendant (comboboxes-4). A bare searchbox
|
|
866
|
-
// left the highlight silent to screen readers.
|
|
878
|
+
// left the highlight silent to screen readers. role + aria-* pass
|
|
879
|
+
// through to the underlying <input> via BaseProps.
|
|
867
880
|
role="combobox"
|
|
868
881
|
aria-expanded={popover.isOpen}
|
|
869
882
|
aria-controls={listboxId}
|
|
@@ -873,12 +886,10 @@ export function Selector<T extends SelectorOptionType>(
|
|
|
873
886
|
? getItemId(highlightedIndex)
|
|
874
887
|
: undefined
|
|
875
888
|
}
|
|
876
|
-
aria-label={t('@astryx.selector.searchOptions')}
|
|
877
|
-
type="text"
|
|
878
889
|
value={searchQuery}
|
|
879
890
|
onChange={handleSearchChange}
|
|
880
891
|
onKeyDown={e => {
|
|
881
|
-
// Arrow keys navigate options; Enter selects; Escape
|
|
892
|
+
// Arrow keys navigate options; Enter selects; Escape closes.
|
|
882
893
|
// Home/End are left to the input for caret movement (APG editable
|
|
883
894
|
// combobox); PageUp/PageDown are the sanctioned substitute for
|
|
884
895
|
// jumping to the first/last option.
|
|
@@ -888,14 +899,19 @@ export function Selector<T extends SelectorOptionType>(
|
|
|
888
899
|
e.key === 'PageUp' ||
|
|
889
900
|
e.key === 'PageDown' ||
|
|
890
901
|
e.key === 'Enter' ||
|
|
891
|
-
e.key === 'Escape'
|
|
892
|
-
e.key === 'Tab'
|
|
902
|
+
e.key === 'Escape'
|
|
893
903
|
) {
|
|
894
904
|
onKeyDown(e);
|
|
905
|
+
return;
|
|
906
|
+
}
|
|
907
|
+
// Tab: when a query is showing the clear (✕) button, forward-tab
|
|
908
|
+
// moves focus to it (keeping the popup open) so the affordance is
|
|
909
|
+
// keyboard-reachable. Every other Tab dismisses the popup as usual.
|
|
910
|
+
if (e.key === 'Tab' && (e.shiftKey || !hasQuery)) {
|
|
911
|
+
onKeyDown(e);
|
|
895
912
|
}
|
|
896
913
|
}}
|
|
897
914
|
placeholder={searchPlaceholder}
|
|
898
|
-
{...stylex.props(styles.searchInput)}
|
|
899
915
|
/>
|
|
900
916
|
</div>
|
|
901
917
|
);
|
|
@@ -904,6 +920,7 @@ export function Selector<T extends SelectorOptionType>(
|
|
|
904
920
|
searchId,
|
|
905
921
|
listboxId,
|
|
906
922
|
searchQuery,
|
|
923
|
+
hasQuery,
|
|
907
924
|
searchPlaceholder,
|
|
908
925
|
handleSearchChange,
|
|
909
926
|
onKeyDown,
|
|
@@ -1032,6 +1049,10 @@ export function Selector<T extends SelectorOptionType>(
|
|
|
1032
1049
|
return elements;
|
|
1033
1050
|
}, [options, renderItem, hasSearch, searchQuery, filteredItems]);
|
|
1034
1051
|
|
|
1052
|
+
// The detached message box renders its own leading status icon, so the
|
|
1053
|
+
// on-field icon would duplicate it — keep the chevron indicator instead.
|
|
1054
|
+
const showStatusIcon = status != null && statusVariant !== 'detached';
|
|
1055
|
+
|
|
1035
1056
|
const selectorContent = (
|
|
1036
1057
|
<>
|
|
1037
1058
|
<div
|
|
@@ -1132,10 +1153,10 @@ export function Selector<T extends SelectorOptionType>(
|
|
|
1132
1153
|
<span
|
|
1133
1154
|
{...stylex.props(
|
|
1134
1155
|
styles.triggerIcon,
|
|
1135
|
-
!
|
|
1136
|
-
|
|
1156
|
+
!showStatusIcon && popover.isOpen && styles.triggerIconOpen,
|
|
1157
|
+
showStatusIcon && styles.triggerIconStatus,
|
|
1137
1158
|
)}>
|
|
1138
|
-
{
|
|
1159
|
+
{showStatusIcon ? (
|
|
1139
1160
|
<Icon
|
|
1140
1161
|
icon={STATUS_ICON_MAP[status.type]}
|
|
1141
1162
|
size="sm"
|
|
@@ -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: 'SideNav',
|
|
@@ -142,7 +142,7 @@ export const docs = {
|
|
|
142
142
|
},
|
|
143
143
|
};
|
|
144
144
|
|
|
145
|
-
/** @type {import('
|
|
145
|
+
/** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
|
|
146
146
|
export const docsZh = {
|
|
147
147
|
usage: {
|
|
148
148
|
description:
|
|
@@ -161,7 +161,7 @@ export const docsZh = {
|
|
|
161
161
|
},
|
|
162
162
|
};
|
|
163
163
|
|
|
164
|
-
/** @type {import('
|
|
164
|
+
/** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
|
|
165
165
|
export const docsDense = {
|
|
166
166
|
usage: {
|
|
167
167
|
description:
|
package/src/SideNav/SideNav.tsx
CHANGED
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
* - /packages/core/src/SideNav/SideNav.test.tsx
|
|
19
19
|
* - /packages/core/src/SideNav/index.ts
|
|
20
20
|
* - /apps/storybook/stories/SideNav.stories.tsx
|
|
21
|
-
* - /packages/cli/templates/blocks/components/SideNav/ (showcase blocks)
|
|
21
|
+
* - /packages/cli/assets/templates/blocks/components/SideNav/ (showcase blocks)
|
|
22
22
|
*/
|
|
23
23
|
|
|
24
24
|
import {
|
|
@@ -14,13 +14,13 @@
|
|
|
14
14
|
* SYNC: When modified, update:
|
|
15
15
|
* - /packages/core/src/SideNav/SideNav.doc.mjs
|
|
16
16
|
* - /packages/core/src/SideNav/index.ts
|
|
17
|
-
* - /packages/cli/templates/blocks/components/SideNav/ (showcase blocks)
|
|
17
|
+
* - /packages/cli/assets/templates/blocks/components/SideNav/ (showcase blocks)
|
|
18
18
|
*/
|
|
19
19
|
|
|
20
20
|
import React, {type ReactNode} from 'react';
|
|
21
21
|
import * as stylex from '@stylexjs/stylex';
|
|
22
22
|
import {durationVars, easeVars} from '../theme/tokens.stylex';
|
|
23
|
-
import {
|
|
23
|
+
import {useIcon} from '../Icon';
|
|
24
24
|
import {Button} from '../Button';
|
|
25
25
|
import type {BaseProps} from '../BaseProps';
|
|
26
26
|
import {composeEventHandlers, rtlStyles} from '../utils';
|
|
@@ -107,6 +107,7 @@ export function SideNavCollapseButton({
|
|
|
107
107
|
...props
|
|
108
108
|
}: SideNavCollapseButtonProps) {
|
|
109
109
|
const t = useTranslator();
|
|
110
|
+
const chevronLeftIcon = useIcon('chevronLeft');
|
|
110
111
|
const {isCollapsed, toggle, isCollapsible} =
|
|
111
112
|
useSideNavCollapseState(handleRef);
|
|
112
113
|
const {isMobile} = useAppShellMobile();
|
|
@@ -137,7 +138,7 @@ export function SideNavCollapseButton({
|
|
|
137
138
|
styles.chevron,
|
|
138
139
|
isCollapsed && styles.chevronCollapsed,
|
|
139
140
|
)}>
|
|
140
|
-
{
|
|
141
|
+
{chevronLeftIcon}
|
|
141
142
|
</span>
|
|
142
143
|
</span>
|
|
143
144
|
)
|