@astryxdesign/core 0.2.0-canary.8d64648 → 0.2.0-canary.8dfd7cf
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/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.js +1 -1
- 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 +1 -1
- package/dist/Carousel/Carousel.js +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 +1 -1
- package/dist/Chat/ChatLayout.js +1 -1
- 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.js +2 -2
- 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 +6 -4
- package/dist/Icon/globalIconRegistry.d.ts.map +1 -1
- package/dist/Icon/globalIconRegistry.js +25 -6
- package/dist/Icon/index.d.ts +3 -2
- package/dist/Icon/index.d.ts.map +1 -1
- package/dist/Icon/index.js +1 -0
- 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.js +1 -1
- 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.js +4 -4
- 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.js +1 -1
- 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.js +1 -1
- 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/Text/Text.d.ts +1 -1
- package/dist/Text/Text.js +1 -1
- 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.js +1 -1
- package/dist/TextInput/TextInput.d.ts +1 -1
- package/dist/TextInput/TextInput.js +1 -1
- package/dist/Thumbnail/Thumbnail.js +1 -1
- package/dist/TimeInput/TimeInput.js +1 -1
- package/dist/Timestamp/Timestamp.js +1 -1
- 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 +35 -16
- 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/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/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.map +1 -1
- package/dist/theme/defineTheme.js +4 -1
- package/dist/theme/index.d.ts +4 -2
- 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 +1 -30
- 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/package.json +2 -11
- 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 +1 -1
- 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 +3 -3
- package/src/Carousel/Carousel.tsx +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.tsx +1 -1
- 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 +2 -2
- 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 +3 -3
- package/src/Icon/Icon.test.tsx +23 -0
- package/src/Icon/Icon.tsx +4 -2
- package/src/Icon/globalIconRegistry.test.tsx +52 -1
- package/src/Icon/globalIconRegistry.tsx +43 -6
- package/src/Icon/index.ts +7 -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.tsx +1 -1
- 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 +1 -1
- package/src/Markdown/Markdown.tsx +3 -3
- 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 +3 -3
- package/src/MultiSelector/MultiSelector.tsx +1 -1
- 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 +3 -3
- package/src/Selector/Selector.tsx +1 -1
- 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/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 +1 -1
- package/src/Table/useTableTreeState.doc.mjs +1 -1
- package/src/Text/Heading.doc.mjs +1 -1
- package/src/Text/Text.doc.mjs +3 -3
- package/src/Text/Text.tsx +1 -1
- package/src/Text/index.ts +31 -1
- package/src/TextArea/TextArea.doc.mjs +3 -3
- package/src/TextArea/TextArea.tsx +1 -1
- 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.tsx +1 -1
- package/src/TimeInput/TimeInput.doc.mjs +3 -3
- package/src/TimeInput/TimeInput.tsx +1 -1
- package/src/Timestamp/Timestamp.doc.mjs +3 -3
- package/src/Timestamp/Timestamp.tsx +1 -1
- 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__/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/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/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/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 +5 -1
- package/src/theme/index.ts +8 -2
- package/src/theme/themeRegistry.test.ts +59 -0
- package/src/theme/themeRegistry.ts +53 -0
- package/src/theme/types.ts +2 -31
- 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
package/src/Dialog/Dialog.tsx
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* - /packages/core/src/Dialog/Dialog.test.tsx (tests for new/changed behavior)
|
|
14
14
|
* - /packages/core/src/Dialog/index.ts (exports if types change)
|
|
15
15
|
* - /apps/storybook/stories/Dialog.stories.tsx (storybook stories)
|
|
16
|
-
* - /packages/cli/templates/blocks/components/Dialog/ (showcase blocks)
|
|
16
|
+
* - /packages/cli/assets/templates/blocks/components/Dialog/ (showcase blocks)
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
19
|
import {
|
|
@@ -49,6 +49,7 @@ import {mergeProps, mergeRefs} from '../utils';
|
|
|
49
49
|
import {devWarn} from '../utils/devWarning';
|
|
50
50
|
import {DialogContext} from './DialogContext';
|
|
51
51
|
import {themeProps} from '../utils/themeProps';
|
|
52
|
+
import type {DialogVariantMap} from './index';
|
|
52
53
|
|
|
53
54
|
/**
|
|
54
55
|
* Calculate a directional translate offset for dialog entry animation.
|
|
@@ -69,24 +70,6 @@ function getDialogDirection(
|
|
|
69
70
|
};
|
|
70
71
|
}
|
|
71
72
|
|
|
72
|
-
/**
|
|
73
|
-
* Extensible variant map for Dialog.
|
|
74
|
-
*
|
|
75
|
-
* Theme packages can add custom variants via TypeScript module augmentation:
|
|
76
|
-
* @example
|
|
77
|
-
* ```
|
|
78
|
-
* declare module '@astryxdesign/core/Dialog' {
|
|
79
|
-
* interface DialogVariantMap {
|
|
80
|
-
* 'drawer': true;
|
|
81
|
-
* }
|
|
82
|
-
* }
|
|
83
|
-
* ```
|
|
84
|
-
*/
|
|
85
|
-
export interface DialogVariantMap {
|
|
86
|
-
standard: true;
|
|
87
|
-
fullscreen: true;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
73
|
/**
|
|
91
74
|
* Dialog variant type
|
|
92
75
|
* - standard: Normal dialog with configurable width/height
|
|
@@ -104,16 +87,38 @@ export type DialogVariant = keyof DialogVariantMap;
|
|
|
104
87
|
*/
|
|
105
88
|
export type DialogPurpose = 'required' | 'form' | 'info';
|
|
106
89
|
|
|
107
|
-
/**
|
|
108
|
-
|
|
109
|
-
*/
|
|
110
|
-
export interface DialogPosition {
|
|
111
|
-
bottom?: number | string;
|
|
112
|
-
left?: number | string;
|
|
113
|
-
right?: number | string;
|
|
90
|
+
/** Block-axis offsets — always allowed, independent of inline direction. */
|
|
91
|
+
interface DialogBlockPosition {
|
|
114
92
|
top?: number | string;
|
|
93
|
+
bottom?: number | string;
|
|
115
94
|
}
|
|
116
95
|
|
|
96
|
+
/**
|
|
97
|
+
* Static position for a dialog. The inline axis is logical XOR physical — the
|
|
98
|
+
* type forbids mixing the two, so a single dialog can't be positioned both ways:
|
|
99
|
+
* - Logical `start`/`end` map to `inset-inline-*` and mirror under RTL (preferred).
|
|
100
|
+
* - Physical `left`/`right` are deprecated, do not mirror, and are removed in a
|
|
101
|
+
* future major.
|
|
102
|
+
* Block-axis `top`/`bottom` may be combined with either.
|
|
103
|
+
*/
|
|
104
|
+
export type DialogPosition =
|
|
105
|
+
| (DialogBlockPosition & {
|
|
106
|
+
/** Logical inline-start offset (`inset-inline-start`); mirrors under RTL. */
|
|
107
|
+
start?: number | string;
|
|
108
|
+
/** Logical inline-end offset (`inset-inline-end`); mirrors under RTL. */
|
|
109
|
+
end?: number | string;
|
|
110
|
+
left?: never;
|
|
111
|
+
right?: never;
|
|
112
|
+
})
|
|
113
|
+
| (DialogBlockPosition & {
|
|
114
|
+
/** @deprecated Use `start`. Physical (never mirrors); removed in a future major. */
|
|
115
|
+
left?: number | string;
|
|
116
|
+
/** @deprecated Use `end`. Physical (never mirrors); removed in a future major. */
|
|
117
|
+
right?: number | string;
|
|
118
|
+
start?: never;
|
|
119
|
+
end?: never;
|
|
120
|
+
});
|
|
121
|
+
|
|
117
122
|
const enterDirectional = stylex.keyframes({
|
|
118
123
|
from: {
|
|
119
124
|
opacity: 0,
|
|
@@ -215,30 +220,62 @@ const dynamicStyles = stylex.create({
|
|
|
215
220
|
maxHeight: typeof maxHeight === 'number' ? `${maxHeight}px` : maxHeight,
|
|
216
221
|
}),
|
|
217
222
|
position: (
|
|
218
|
-
top:
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
223
|
+
top: string,
|
|
224
|
+
insetInlineStart: string,
|
|
225
|
+
insetInlineEnd: string,
|
|
226
|
+
right: string,
|
|
227
|
+
bottom: string,
|
|
228
|
+
left: string,
|
|
222
229
|
) => ({
|
|
223
|
-
//
|
|
230
|
+
// Assigns pre-resolved offsets from resolveDialogPositionOffsets(). This
|
|
231
|
+
// literal has no logic — StyleX can't analyze a helper, so the values
|
|
232
|
+
// (logical start/end → inset-inline-*, physical left/right, `auto`
|
|
233
|
+
// fallbacks) are computed at the call site and passed in.
|
|
224
234
|
margin: 0,
|
|
225
|
-
top
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
235
|
+
top,
|
|
236
|
+
insetInlineStart,
|
|
237
|
+
insetInlineEnd,
|
|
238
|
+
// eslint-disable-next-line @astryx/no-physical-properties -- deprecated consumer-facing DialogPosition.right; physical by contract, superseded by logical `end`
|
|
239
|
+
right,
|
|
240
|
+
bottom,
|
|
241
|
+
// eslint-disable-next-line @astryx/no-physical-properties -- deprecated consumer-facing DialogPosition.left; physical by contract, superseded by logical `start`
|
|
242
|
+
left,
|
|
229
243
|
}),
|
|
230
244
|
});
|
|
231
245
|
|
|
232
246
|
/**
|
|
233
247
|
* Format position value - numbers become pixels, strings pass through, undefined becomes null
|
|
234
248
|
*/
|
|
235
|
-
function formatPosition(value: number | string
|
|
236
|
-
if (value === undefined) {
|
|
237
|
-
return null;
|
|
238
|
-
}
|
|
249
|
+
function formatPosition(value: number | string): string {
|
|
239
250
|
return typeof value === 'number' ? `${value}px` : value;
|
|
240
251
|
}
|
|
241
252
|
|
|
253
|
+
/**
|
|
254
|
+
* Map a {@link DialogPosition} to resolved CSS offsets. Logical `start`/`end`
|
|
255
|
+
* become `inset-inline-*` (mirror under RTL); physical `left`/`right` stay
|
|
256
|
+
* physical. The union type guarantees at most one inline pair is set, so no
|
|
257
|
+
* precedence is needed — each unset offset falls back to `auto`.
|
|
258
|
+
*
|
|
259
|
+
* Not re-exported from the package; internal to Dialog. Directly unit-tested
|
|
260
|
+
* so the mapping is verified without StyleX class compilation.
|
|
261
|
+
*
|
|
262
|
+
* @see DialogPosition
|
|
263
|
+
*/
|
|
264
|
+
export function resolveDialogPositionOffsets(position: DialogPosition) {
|
|
265
|
+
const {top, bottom, start, end, left, right} = position;
|
|
266
|
+
|
|
267
|
+
return {
|
|
268
|
+
top: top !== undefined ? formatPosition(top) : 'auto',
|
|
269
|
+
bottom: bottom !== undefined ? formatPosition(bottom) : 'auto',
|
|
270
|
+
// Logical offsets mirror under RTL (preferred replacements).
|
|
271
|
+
insetInlineStart: start !== undefined ? formatPosition(start) : 'auto',
|
|
272
|
+
insetInlineEnd: end !== undefined ? formatPosition(end) : 'auto',
|
|
273
|
+
// Deprecated physical offsets never mirror.
|
|
274
|
+
left: left !== undefined ? formatPosition(left) : 'auto',
|
|
275
|
+
right: right !== undefined ? formatPosition(right) : 'auto',
|
|
276
|
+
};
|
|
277
|
+
}
|
|
278
|
+
|
|
242
279
|
export interface DialogProps extends BaseProps<HTMLDialogElement> {
|
|
243
280
|
/** Ref forwarded to the root element */
|
|
244
281
|
ref?: React.Ref<HTMLDialogElement>;
|
|
@@ -632,12 +669,17 @@ export function Dialog({
|
|
|
632
669
|
styles.backdrop,
|
|
633
670
|
!isFullscreen && dynamicStyles.sizing(width, maxHeight),
|
|
634
671
|
hasPosition &&
|
|
635
|
-
|
|
636
|
-
position
|
|
637
|
-
position
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
672
|
+
(() => {
|
|
673
|
+
const o = resolveDialogPositionOffsets(position);
|
|
674
|
+
return dynamicStyles.position(
|
|
675
|
+
o.top,
|
|
676
|
+
o.insetInlineStart,
|
|
677
|
+
o.insetInlineEnd,
|
|
678
|
+
o.right,
|
|
679
|
+
o.bottom,
|
|
680
|
+
o.left,
|
|
681
|
+
);
|
|
682
|
+
})(),
|
|
641
683
|
isFullscreen && styles.fullscreen,
|
|
642
684
|
xstyle,
|
|
643
685
|
),
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* - /packages/core/src/Dialog/DialogHeader.test.tsx
|
|
14
14
|
* - /packages/core/src/Dialog/index.ts
|
|
15
15
|
* - /apps/storybook/stories/Dialog.stories.tsx
|
|
16
|
-
* - /packages/cli/templates/blocks/components/Dialog/ (showcase blocks)
|
|
16
|
+
* - /packages/cli/assets/templates/blocks/components/Dialog/ (showcase blocks)
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
19
|
import {useEffect, useRef, type ReactNode} from 'react';
|
package/src/Dialog/index.ts
CHANGED
|
@@ -11,11 +11,28 @@
|
|
|
11
11
|
* SYNC: When modified, update this header and /packages/core/src/Dialog/Dialog.doc.mjs
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
|
+
/**
|
|
15
|
+
* Extensible variant map for Dialog.
|
|
16
|
+
*
|
|
17
|
+
* Theme packages can add custom variants via TypeScript module augmentation:
|
|
18
|
+
* @example
|
|
19
|
+
* ```
|
|
20
|
+
* declare module '@astryxdesign/core/Dialog' {
|
|
21
|
+
* interface DialogVariantMap {
|
|
22
|
+
* 'drawer': true;
|
|
23
|
+
* }
|
|
24
|
+
* }
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export interface DialogVariantMap {
|
|
28
|
+
standard: true;
|
|
29
|
+
fullscreen: true;
|
|
30
|
+
}
|
|
31
|
+
|
|
14
32
|
export {Dialog} from './Dialog';
|
|
15
33
|
export type {
|
|
16
34
|
DialogProps,
|
|
17
35
|
DialogVariant,
|
|
18
|
-
DialogVariantMap,
|
|
19
36
|
DialogPurpose,
|
|
20
37
|
DialogPosition,
|
|
21
38
|
} from './Dialog';
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
/** @type {import('
|
|
5
|
+
/** @type {import('@astryxdesign/cli/authoring').ComponentDoc} */
|
|
6
6
|
|
|
7
7
|
export const docs = {
|
|
8
8
|
name: 'Divider',
|
|
@@ -56,7 +56,7 @@ export const docs = {
|
|
|
56
56
|
},
|
|
57
57
|
};
|
|
58
58
|
|
|
59
|
-
/** @type {import('
|
|
59
|
+
/** @type {import('@astryxdesign/cli/authoring').ComponentDoc} */
|
|
60
60
|
export const docsZh = {
|
|
61
61
|
name: 'Divider',
|
|
62
62
|
displayName: 'Divider',
|
|
@@ -106,7 +106,7 @@ export const docsZh = {
|
|
|
106
106
|
},
|
|
107
107
|
};
|
|
108
108
|
|
|
109
|
-
/** @type {import('
|
|
109
|
+
/** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
|
|
110
110
|
export const docsDense = {
|
|
111
111
|
description: 'visual separator w/ optional label, using Astryx design tokens',
|
|
112
112
|
usage: {
|
package/src/Divider/Divider.tsx
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* - /packages/core/src/Divider/Divider.doc.mjs
|
|
13
13
|
* - /packages/core/src/Divider/Divider.test.tsx
|
|
14
14
|
* - /apps/storybook/stories/Divider.stories.tsx
|
|
15
|
-
* - /packages/cli/templates/blocks/components/Divider/ (showcase blocks)
|
|
15
|
+
* - /packages/cli/assets/templates/blocks/components/Divider/ (showcase blocks)
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
18
|
import {useId, type ReactNode} from 'react';
|
|
@@ -27,24 +27,7 @@ import {
|
|
|
27
27
|
} from '../theme/tokens.stylex';
|
|
28
28
|
import {mergeProps} from '../utils';
|
|
29
29
|
import {themeProps} from '../utils/themeProps';
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Extensible variant map for Divider.
|
|
33
|
-
*
|
|
34
|
-
* Theme packages can add custom variants via TypeScript module augmentation:
|
|
35
|
-
* @example
|
|
36
|
-
* ```
|
|
37
|
-
* declare module '@astryxdesign/core/Divider' {
|
|
38
|
-
* interface DividerVariantMap {
|
|
39
|
-
* 'accent': true;
|
|
40
|
-
* }
|
|
41
|
-
* }
|
|
42
|
-
* ```
|
|
43
|
-
*/
|
|
44
|
-
export interface DividerVariantMap {
|
|
45
|
-
subtle: true;
|
|
46
|
-
strong: true;
|
|
47
|
-
}
|
|
30
|
+
import type {DividerVariantMap} from './index';
|
|
48
31
|
|
|
49
32
|
/**
|
|
50
33
|
* Divider variant type. Extensible via module augmentation of DividerVariantMap.
|
package/src/Divider/index.ts
CHANGED
|
@@ -11,9 +11,23 @@
|
|
|
11
11
|
* SYNC: When modified, update /packages/core/src/Divider/Divider.doc.mjs
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
|
+
/**
|
|
15
|
+
* Extensible variant map for Divider.
|
|
16
|
+
*
|
|
17
|
+
* Theme packages can add custom variants via TypeScript module augmentation:
|
|
18
|
+
* @example
|
|
19
|
+
* ```
|
|
20
|
+
* declare module '@astryxdesign/core/Divider' {
|
|
21
|
+
* interface DividerVariantMap {
|
|
22
|
+
* 'accent': true;
|
|
23
|
+
* }
|
|
24
|
+
* }
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export interface DividerVariantMap {
|
|
28
|
+
subtle: true;
|
|
29
|
+
strong: true;
|
|
30
|
+
}
|
|
31
|
+
|
|
14
32
|
export {Divider} from './Divider';
|
|
15
|
-
export type {
|
|
16
|
-
DividerProps,
|
|
17
|
-
DividerVariant,
|
|
18
|
-
DividerVariantMap,
|
|
19
|
-
} from './Divider';
|
|
33
|
+
export type {DividerProps, DividerVariant} from './Divider';
|
|
@@ -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: 'DropdownMenu',
|
|
@@ -26,15 +26,18 @@ export const docs = {
|
|
|
26
26
|
{className: 'astryx-dropdown-menu'},
|
|
27
27
|
{className: 'astryx-dropdown-menu-item', visualProps: ['size']},
|
|
28
28
|
{
|
|
29
|
-
className: 'astryx-dropdown-menu-
|
|
29
|
+
className: 'astryx-dropdown-menu-radio',
|
|
30
30
|
visualProps: ['size'],
|
|
31
31
|
states: ['checked', 'disabled'],
|
|
32
32
|
},
|
|
33
33
|
{
|
|
34
|
-
className: 'astryx-dropdown-menu-radio',
|
|
34
|
+
className: 'astryx-dropdown-menu-radio-dot',
|
|
35
35
|
visualProps: ['size'],
|
|
36
36
|
states: ['checked', 'disabled'],
|
|
37
37
|
},
|
|
38
|
+
{className: 'astryx-dropdown-menu-section-heading'},
|
|
39
|
+
{className: 'astryx-dropdown-menu-divider'},
|
|
40
|
+
{className: 'astryx-dropdown-menu-indicator-icon'},
|
|
38
41
|
],
|
|
39
42
|
vars: [
|
|
40
43
|
{name: '--_dropdown-menu-radius', description: 'Border radius of the menu popup', default: 'var(--radius-element)', private: true},
|
|
@@ -74,6 +77,18 @@ export const docs = {
|
|
|
74
77
|
type: 'number | string',
|
|
75
78
|
description: 'Custom menu width; defaults to matching the trigger button width.',
|
|
76
79
|
},
|
|
80
|
+
{
|
|
81
|
+
name: 'placement',
|
|
82
|
+
type: "'above' | 'below' | 'start' | 'end'",
|
|
83
|
+
description: "Position placement relative to the trigger. Logical: start/end resolve against the menu's own inherited direction (RTL mirrors).",
|
|
84
|
+
default: "'below'",
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
name: 'alignment',
|
|
88
|
+
type: "'start' | 'center' | 'end'",
|
|
89
|
+
description: "Alignment along the placement axis. Logical: start/end follow the menu's own inherited direction (RTL mirrors).",
|
|
90
|
+
default: "'start'",
|
|
91
|
+
},
|
|
77
92
|
{
|
|
78
93
|
name: 'onClick',
|
|
79
94
|
type: '() => void',
|
|
@@ -104,7 +119,7 @@ export const docs = {
|
|
|
104
119
|
},
|
|
105
120
|
};
|
|
106
121
|
|
|
107
|
-
/** @type {import('
|
|
122
|
+
/** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
|
|
108
123
|
export const docsZh = {
|
|
109
124
|
usage: {
|
|
110
125
|
description: 'A dropdown menu that displays a list of actionable items in a popup triggered by a button. Use to present action options as a next step in a process, or to offer contextual actions without cluttering the interface.',
|
|
@@ -117,7 +132,7 @@ export const docsZh = {
|
|
|
117
132
|
},
|
|
118
133
|
};
|
|
119
134
|
|
|
120
|
-
/** @type {import('
|
|
135
|
+
/** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
|
|
121
136
|
export const docsDense = {
|
|
122
137
|
description: 'dropdown menu for actionable items in popup',
|
|
123
138
|
usage: {
|
|
@@ -109,6 +109,22 @@ describe('DropdownMenu', () => {
|
|
|
109
109
|
);
|
|
110
110
|
});
|
|
111
111
|
|
|
112
|
+
it('supports explicit menu alignment', () => {
|
|
113
|
+
render(
|
|
114
|
+
<DropdownMenu
|
|
115
|
+
button={{label: 'Actions'}}
|
|
116
|
+
alignment="end"
|
|
117
|
+
items={[{label: 'Item 1'}]}
|
|
118
|
+
/>,
|
|
119
|
+
);
|
|
120
|
+
const popover = screen
|
|
121
|
+
.getByRole('menu', {hidden: true})
|
|
122
|
+
.closest('[popover]');
|
|
123
|
+
expect(popover?.getAttribute('style')).toContain(
|
|
124
|
+
'position-area: self-block-end span-self-inline-start',
|
|
125
|
+
);
|
|
126
|
+
});
|
|
127
|
+
|
|
112
128
|
it('emits the direction-independent logical mapping under an RTL ancestor (#3389)', async () => {
|
|
113
129
|
// The self-* position-area keywords resolve against the popover's own
|
|
114
130
|
// inherited direction in the browser, so RTL emits the same string as
|
|
@@ -148,6 +164,77 @@ describe('DropdownMenu', () => {
|
|
|
148
164
|
expect(HTMLElement.prototype.showPopover).toHaveBeenCalled();
|
|
149
165
|
});
|
|
150
166
|
|
|
167
|
+
it('calls onOpenChange for uncontrolled native open and close transitions', async () => {
|
|
168
|
+
const user = userEvent.setup();
|
|
169
|
+
const handleOpenChange = vi.fn();
|
|
170
|
+
render(
|
|
171
|
+
<DropdownMenu
|
|
172
|
+
button={{label: 'Actions'}}
|
|
173
|
+
items={[{label: 'Item 1'}]}
|
|
174
|
+
onOpenChange={handleOpenChange}
|
|
175
|
+
/>,
|
|
176
|
+
);
|
|
177
|
+
|
|
178
|
+
await user.click(screen.getByRole('button', {name: /Actions/}));
|
|
179
|
+
expect(handleOpenChange).toHaveBeenCalledWith(true);
|
|
180
|
+
|
|
181
|
+
handleOpenChange.mockClear();
|
|
182
|
+
const popoverEl = screen
|
|
183
|
+
.getByRole('menu', {hidden: true})
|
|
184
|
+
.closest('[popover]');
|
|
185
|
+
expect(popoverEl).not.toBeNull();
|
|
186
|
+
const toggleEvent = new Event('toggle');
|
|
187
|
+
Object.defineProperty(toggleEvent, 'newState', {value: 'closed'});
|
|
188
|
+
fireEvent(popoverEl as HTMLElement, toggleEvent);
|
|
189
|
+
|
|
190
|
+
expect(handleOpenChange).toHaveBeenCalledWith(false);
|
|
191
|
+
expect(screen.getByRole('button', {name: /Actions/})).toHaveAttribute(
|
|
192
|
+
'aria-expanded',
|
|
193
|
+
'false',
|
|
194
|
+
);
|
|
195
|
+
});
|
|
196
|
+
|
|
197
|
+
it('restores focus to the trigger after native light dismiss', async () => {
|
|
198
|
+
const raf = vi
|
|
199
|
+
.spyOn(window, 'requestAnimationFrame')
|
|
200
|
+
.mockImplementation(callback => {
|
|
201
|
+
callback(0);
|
|
202
|
+
return 0;
|
|
203
|
+
});
|
|
204
|
+
|
|
205
|
+
try {
|
|
206
|
+
const user = userEvent.setup();
|
|
207
|
+
render(
|
|
208
|
+
<DropdownMenu
|
|
209
|
+
button={{label: 'Actions'}}
|
|
210
|
+
items={[{label: 'Edit'}, {label: 'Delete'}]}
|
|
211
|
+
/>,
|
|
212
|
+
);
|
|
213
|
+
|
|
214
|
+
const trigger = screen.getByRole('button', {name: /Actions/});
|
|
215
|
+
trigger.focus();
|
|
216
|
+
await user.click(trigger);
|
|
217
|
+
expect(
|
|
218
|
+
screen.getByRole('menuitem', {name: 'Edit', hidden: true}),
|
|
219
|
+
).toHaveFocus();
|
|
220
|
+
|
|
221
|
+
const popoverEl = screen
|
|
222
|
+
.getByRole('menu', {hidden: true})
|
|
223
|
+
.closest('[popover]');
|
|
224
|
+
expect(popoverEl).not.toBeNull();
|
|
225
|
+
popoverEl?.addEventListener('toggle', () => {
|
|
226
|
+
trigger.blur();
|
|
227
|
+
});
|
|
228
|
+
const toggleEvent = new Event('toggle');
|
|
229
|
+
Object.defineProperty(toggleEvent, 'newState', {value: 'closed'});
|
|
230
|
+
fireEvent(popoverEl as HTMLElement, toggleEvent);
|
|
231
|
+
|
|
232
|
+
expect(trigger).toHaveFocus();
|
|
233
|
+
} finally {
|
|
234
|
+
raf.mockRestore();
|
|
235
|
+
}
|
|
236
|
+
});
|
|
237
|
+
|
|
151
238
|
it('closes the menu when Tab is pressed inside it (APG menu-button)', async () => {
|
|
152
239
|
const user = userEvent.setup();
|
|
153
240
|
render(
|
|
@@ -415,6 +502,41 @@ describe('DropdownMenu dividers', () => {
|
|
|
415
502
|
});
|
|
416
503
|
});
|
|
417
504
|
|
|
505
|
+
describe('DropdownMenu theming slots', () => {
|
|
506
|
+
it('exposes a themeable slot on the section heading', () => {
|
|
507
|
+
render(
|
|
508
|
+
<DropdownMenu
|
|
509
|
+
button={{label: 'Actions'}}
|
|
510
|
+
items={[
|
|
511
|
+
{
|
|
512
|
+
type: 'section',
|
|
513
|
+
title: 'File Actions',
|
|
514
|
+
items: [{label: 'New'}],
|
|
515
|
+
},
|
|
516
|
+
]}
|
|
517
|
+
/>,
|
|
518
|
+
);
|
|
519
|
+
|
|
520
|
+
expect(screen.getByText('File Actions')).toHaveClass(
|
|
521
|
+
'astryx-dropdown-menu-section-heading',
|
|
522
|
+
);
|
|
523
|
+
});
|
|
524
|
+
|
|
525
|
+
it('exposes a themeable slot on the menu divider', () => {
|
|
526
|
+
render(
|
|
527
|
+
<DropdownMenu
|
|
528
|
+
button={{label: 'Actions'}}
|
|
529
|
+
items={[{label: 'Edit'}, {type: 'divider'}, {label: 'Delete'}]}
|
|
530
|
+
/>,
|
|
531
|
+
);
|
|
532
|
+
|
|
533
|
+
const divider = screen.getByRole('separator', {hidden: true});
|
|
534
|
+
expect(divider).toHaveClass('astryx-dropdown-menu-divider');
|
|
535
|
+
// Still carries the base Divider slot so global divider theming applies too.
|
|
536
|
+
expect(divider).toHaveClass('astryx-divider');
|
|
537
|
+
});
|
|
538
|
+
});
|
|
539
|
+
|
|
418
540
|
describe('DropdownMenu button customization', () => {
|
|
419
541
|
it('renders with different button variants', () => {
|
|
420
542
|
const {rerender} = render(
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
* - /packages/core/src/DropdownMenu/DropdownMenu.test.tsx
|
|
20
20
|
* - /packages/core/src/DropdownMenu/index.ts
|
|
21
21
|
* - /apps/storybook/stories/DropdownMenu.stories.tsx
|
|
22
|
-
* - /packages/cli/templates/blocks/components/DropdownMenu/ (showcase blocks)
|
|
22
|
+
* - /packages/cli/assets/templates/blocks/components/DropdownMenu/ (showcase blocks)
|
|
23
23
|
*/
|
|
24
24
|
|
|
25
25
|
import React, {
|
|
@@ -50,7 +50,7 @@ import {
|
|
|
50
50
|
import {useListFocus} from '../hooks/useListFocus';
|
|
51
51
|
import {useTypeahead} from '../hooks/useTypeahead';
|
|
52
52
|
import {layerAnimations} from '../Layer/layerAnimations.stylex';
|
|
53
|
-
import type {LayerPlacement} from '../Layer/useLayer';
|
|
53
|
+
import type {LayerAlignment, LayerPlacement} from '../Layer/useLayer';
|
|
54
54
|
import {
|
|
55
55
|
spacingVars,
|
|
56
56
|
radiusVars,
|
|
@@ -145,6 +145,13 @@ interface DropdownMenuBaseProps extends BaseProps {
|
|
|
145
145
|
*/
|
|
146
146
|
placement?: LayerPlacement;
|
|
147
147
|
|
|
148
|
+
/**
|
|
149
|
+
* Alignment along the placement axis.
|
|
150
|
+
* Uses the same alignment values as other Astryx layer-based components.
|
|
151
|
+
* @default 'start'
|
|
152
|
+
*/
|
|
153
|
+
alignment?: LayerAlignment;
|
|
154
|
+
|
|
148
155
|
'data-testid'?: string;
|
|
149
156
|
}
|
|
150
157
|
|
|
@@ -198,6 +205,7 @@ export function DropdownMenu({
|
|
|
198
205
|
onClick,
|
|
199
206
|
hasChevron = true,
|
|
200
207
|
placement = 'below',
|
|
208
|
+
alignment = 'start',
|
|
201
209
|
className,
|
|
202
210
|
style,
|
|
203
211
|
xstyle,
|
|
@@ -235,28 +243,22 @@ export function DropdownMenu({
|
|
|
235
243
|
// Close menu + return focus to trigger
|
|
236
244
|
const handleLayerHide = useCallback(() => {
|
|
237
245
|
lastHideTimeRef.current = Date.now();
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
} else {
|
|
246
|
+
onOpenChange?.(false);
|
|
247
|
+
if (!isControlled) {
|
|
241
248
|
setInternalIsOpen(false);
|
|
242
249
|
}
|
|
243
250
|
buttonRef.current?.focus();
|
|
244
251
|
}, [isControlled, onOpenChange]);
|
|
245
252
|
|
|
246
|
-
//
|
|
253
|
+
// Defer item focus until the layer has committed open, so focus restore
|
|
254
|
+
// captures the trigger instead of the first menu item.
|
|
247
255
|
const shouldFocusOnOpenRef = useRef(false);
|
|
248
256
|
|
|
249
257
|
const handleLayerShow = useCallback(() => {
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
} else {
|
|
258
|
+
onOpenChange?.(true);
|
|
259
|
+
if (!isControlled) {
|
|
253
260
|
setInternalIsOpen(true);
|
|
254
261
|
}
|
|
255
|
-
if (shouldFocusOnOpenRef.current) {
|
|
256
|
-
shouldFocusOnOpenRef.current = false;
|
|
257
|
-
// focusFirst is called via openAndFocus below — defer to rAF
|
|
258
|
-
// so the popover content is rendered before we query for items
|
|
259
|
-
}
|
|
260
262
|
}, [isControlled, onOpenChange]);
|
|
261
263
|
|
|
262
264
|
const popover = usePopover({
|
|
@@ -305,17 +307,26 @@ export function DropdownMenu({
|
|
|
305
307
|
),
|
|
306
308
|
});
|
|
307
309
|
|
|
308
|
-
// Sync controlled open state → popover
|
|
310
|
+
// Sync controlled open state → popover.
|
|
309
311
|
useEffect(() => {
|
|
310
312
|
if (isControlled) {
|
|
311
313
|
if (controlledIsOpen && !popover.isOpen) {
|
|
314
|
+
shouldFocusOnOpenRef.current = true;
|
|
312
315
|
popover.show();
|
|
313
|
-
requestAnimationFrame(() => focusFirst());
|
|
314
316
|
} else if (!controlledIsOpen && popover.isOpen) {
|
|
315
317
|
popover.hide();
|
|
316
318
|
}
|
|
317
319
|
}
|
|
318
|
-
}, [controlledIsOpen, isControlled, popover
|
|
320
|
+
}, [controlledIsOpen, isControlled, popover]);
|
|
321
|
+
|
|
322
|
+
// Move focus into the menu only after the layer has committed open.
|
|
323
|
+
useEffect(() => {
|
|
324
|
+
if (!popover.isOpen || !shouldFocusOnOpenRef.current) {
|
|
325
|
+
return;
|
|
326
|
+
}
|
|
327
|
+
shouldFocusOnOpenRef.current = false;
|
|
328
|
+
requestAnimationFrame(() => focusFirst());
|
|
329
|
+
}, [popover.isOpen, focusFirst]);
|
|
319
330
|
|
|
320
331
|
// Extend useListFocus with Enter/Space activation + typeahead
|
|
321
332
|
const listKeyDown = useCallback(
|
|
@@ -356,9 +367,9 @@ export function DropdownMenu({
|
|
|
356
367
|
);
|
|
357
368
|
|
|
358
369
|
const openAndFocus = useCallback(() => {
|
|
370
|
+
shouldFocusOnOpenRef.current = true;
|
|
359
371
|
popover.show();
|
|
360
|
-
|
|
361
|
-
}, [popover, focusFirst]);
|
|
372
|
+
}, [popover]);
|
|
362
373
|
|
|
363
374
|
const handleButtonClick = useCallback(() => {
|
|
364
375
|
// If the menu was just closed by light dismiss (e.g. iOS Safari fires
|
|
@@ -474,7 +485,7 @@ export function DropdownMenu({
|
|
|
474
485
|
</div>,
|
|
475
486
|
{
|
|
476
487
|
placement,
|
|
477
|
-
alignment
|
|
488
|
+
alignment,
|
|
478
489
|
xstyle: [popoverXstyle, popoverGapStyle, layerAnimations[placement]],
|
|
479
490
|
},
|
|
480
491
|
)}
|