@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
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
/** @type {import('@astryxdesign/cli/authoring').HookDoc} */
|
|
4
|
+
export const docs = {
|
|
5
|
+
name: 'useContainerReveal',
|
|
6
|
+
displayName: 'useContainerReveal',
|
|
7
|
+
keywords: ['reveal', 'hover', 'focus', 'container', 'row', 'actions', 'overlay', 'conceal', 'hidden', 'show'],
|
|
8
|
+
params: [
|
|
9
|
+
{
|
|
10
|
+
name: 'options',
|
|
11
|
+
type: 'UseContainerRevealOptions',
|
|
12
|
+
description: 'Configuration object for the reveal container. Optional.',
|
|
13
|
+
required: false,
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
name: 'options.isEnabled',
|
|
17
|
+
type: 'boolean',
|
|
18
|
+
description: 'When false the hook is inert: no marker is applied and content getters return no styles, so content is always shown. Lets a component gate reveal on its own prop (e.g. revealOn === "hover").',
|
|
19
|
+
default: 'true',
|
|
20
|
+
required: false,
|
|
21
|
+
},
|
|
22
|
+
],
|
|
23
|
+
returns: [
|
|
24
|
+
{
|
|
25
|
+
name: 'getContainerProps',
|
|
26
|
+
type: '() => {className?: string; style?: CSSProperties}',
|
|
27
|
+
description: 'Spread onto the container whose hover/focus-within drives the reveal.',
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
name: 'getContentRevealProps',
|
|
31
|
+
type: '(options?: ContentRevealOptions) => {className?: string; style?: CSSProperties}',
|
|
32
|
+
description: 'Spread onto each revealed (or concealed) child. Accepts isRevealInverted to conceal-on-hover instead of reveal-on-hover, and isLayoutPreserved to reserve the layout box while hidden (opacity-only) and avoid layout shift.',
|
|
33
|
+
},
|
|
34
|
+
],
|
|
35
|
+
usage: {
|
|
36
|
+
description:
|
|
37
|
+
'A headless hover/focus reveal primitive. Gives a container a scoped trigger that reveals (or conceals) content inside it when the container is hovered or receives keyboard focus: the classic "row actions appear on hover" pattern. The reveal is CSS-only: no hover state lives in React and hovering never triggers a re-render. The caller authors no StyleX for the reveal itself; the hook hands out a scoped marker and matching styles, so nested containers never leak hover/focus into one another. Accessible by construction: revealed content is visually hidden at rest with position and opacity (never display:none), so it stays mounted, keeps its place in the tab order, and is announced to assistive technology; it reveals on :focus-within so keyboard users see it when tabbing in, stays visible on touch (never gated behind hover on coarse pointers), and honors prefers-reduced-motion.',
|
|
38
|
+
bestPractices: [
|
|
39
|
+
{ guidance: true, description: 'Destructure getContainerProps and getContentRevealProps; spread getContainerProps() on the container (via mergeProps with your own stylex.props) and getContentRevealProps() on the content to reveal.' },
|
|
40
|
+
{ guidance: true, description: 'Use for secondary affordances: reveal-on-hover row actions (edit/copy/remove on list or table rows) and overlay controls on a card or media tile (e.g. Thumbnail\'s remove button).' },
|
|
41
|
+
{ guidance: true, description: 'Gate the reveal with isEnabled when a consumer prop decides whether content is revealed on hover or always shown.' },
|
|
42
|
+
{ guidance: true, description: 'Pass isLayoutPreserved for absolutely-positioned or overlay content to reserve its box and avoid layout shift when it appears.' },
|
|
43
|
+
{ guidance: false, description: 'Use it to hide content that must always be discoverable; keep essential actions visible instead of gating them behind hover.' },
|
|
44
|
+
],
|
|
45
|
+
},
|
|
46
|
+
relatedComponents: ['Thumbnail'],
|
|
47
|
+
relatedHooks: ['useClickableContainer'],
|
|
48
|
+
importPath: '@astryxdesign/core/hooks',
|
|
49
|
+
category: 'interaction',
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
/** @type {import('@astryxdesign/cli/authoring').HookTranslationDoc} */
|
|
53
|
+
export const docsDense = {
|
|
54
|
+
description:
|
|
55
|
+
'Headless hover/focus reveal primitive. Gives a container a scoped trigger that reveals (or conceals) content inside it on hover / keyboard focus: the "row actions appear on hover" pattern. CSS-only: no hover state in React, no re-render on hover. Caller authors no StyleX; hook hands out a scoped marker + matching styles, so nested containers never leak hover/focus. Accessible: revealed content visually hidden at rest via position + opacity (never display:none), stays mounted + in tab order + announced; reveals on :focus-within, stays visible on touch, honors prefers-reduced-motion.',
|
|
56
|
+
paramDescriptions: {
|
|
57
|
+
options: 'config for reveal container. optional.',
|
|
58
|
+
'options.isEnabled': 'when false hook is inert: no marker, content getters return no styles, content always shown. Lets component gate reveal on its own prop.',
|
|
59
|
+
},
|
|
60
|
+
returnDescriptions: {
|
|
61
|
+
getContainerProps: 'spread onto container whose hover/focus-within drives reveal.',
|
|
62
|
+
getContentRevealProps: 'spread onto each revealed / concealed child. Accepts isRevealInverted (conceal-on-hover) + isLayoutPreserved (reserve layout box while hidden).',
|
|
63
|
+
},
|
|
64
|
+
usage: {
|
|
65
|
+
description:
|
|
66
|
+
'Headless hover/focus reveal primitive. Gives a container a scoped trigger that reveals (or conceals) content inside it on hover / keyboard focus: the "row actions appear on hover" pattern. CSS-only: no hover state in React, no re-render on hover. Caller authors no StyleX; hook hands out a scoped marker + matching styles, so nested containers never leak hover/focus. Accessible: revealed content visually hidden at rest via position + opacity (never display:none), stays mounted + in tab order + announced; reveals on :focus-within, stays visible on touch, honors prefers-reduced-motion.',
|
|
67
|
+
bestPractices: [
|
|
68
|
+
{ guidance: true, description: 'Destructure getContainerProps + getContentRevealProps; spread getContainerProps() on container (via mergeProps w/ your stylex.props) + getContentRevealProps() on content to reveal.' },
|
|
69
|
+
{ guidance: true, description: 'Use for secondary affordances: reveal-on-hover row actions (edit/copy/remove on list / table rows) + overlay controls on card / media tile (e.g. Thumbnail remove button).' },
|
|
70
|
+
{ guidance: true, description: 'Gate reveal w/ isEnabled when a consumer prop decides revealed-on-hover vs always shown.' },
|
|
71
|
+
{ guidance: true, description: 'Pass isLayoutPreserved for absolutely-positioned / overlay content to reserve its box + avoid layout shift.' },
|
|
72
|
+
{ guidance: false, description: 'Use to hide content that must always be discoverable; keep essential actions visible instead of gating behind hover.' },
|
|
73
|
+
],
|
|
74
|
+
},
|
|
75
|
+
};
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* marker + matching reveal styles from a pre-compiled pool.
|
|
17
17
|
*
|
|
18
18
|
* ACCESSIBILITY (WCAG 2.2 by construction):
|
|
19
|
-
* - Revealed content is visually hidden at rest via
|
|
19
|
+
* - Revealed content is visually hidden at rest via position + opacity, so it
|
|
20
20
|
* stays in the accessibility tree and tab order — never display:none.
|
|
21
21
|
* - Keyboard: revealed on :focus-within, so tabbing in shows it.
|
|
22
22
|
* - Touch: always visible on coarse pointers; never gated behind hover.
|
|
@@ -102,9 +102,10 @@ export interface UseContainerRevealReturn {
|
|
|
102
102
|
/** Spread onto the container whose hover/focus-within drives the reveal. */
|
|
103
103
|
getContainerProps: () => {className?: string; style?: CSSProperties};
|
|
104
104
|
/** Spread onto each revealed / concealed child. */
|
|
105
|
-
getContentRevealProps: (
|
|
106
|
-
|
|
107
|
-
|
|
105
|
+
getContentRevealProps: (options?: ContentRevealOptions) => {
|
|
106
|
+
className?: string;
|
|
107
|
+
style?: CSSProperties;
|
|
108
|
+
};
|
|
108
109
|
}
|
|
109
110
|
|
|
110
111
|
const EMPTY = Object.freeze({});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
|
-
/** @type {import('
|
|
3
|
+
/** @type {import('@astryxdesign/cli/authoring').HookDoc} */
|
|
4
4
|
export const docs = {
|
|
5
5
|
name: 'useEntryAnimation',
|
|
6
6
|
displayName: 'useEntryAnimation',
|
|
@@ -36,7 +36,7 @@ export const docs = {
|
|
|
36
36
|
category: 'animation',
|
|
37
37
|
};
|
|
38
38
|
|
|
39
|
-
/** @type {import('
|
|
39
|
+
/** @type {import('@astryxdesign/cli/authoring').HookTranslationDoc} */
|
|
40
40
|
export const docsDense = {
|
|
41
41
|
description:
|
|
42
42
|
'Returns StyleX style for animating element on mount. Only animates when element dynamically inserted after initial page paint; elements rendered on page load not animated. Uses Astryx motion tokens (duration, easing) for consistent timing. Requires "use client"; does not support SSR.',
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
|
-
/** @type {import('
|
|
3
|
+
/** @type {import('@astryxdesign/cli/authoring').HookDoc} */
|
|
4
4
|
export const docs = {
|
|
5
5
|
name: 'useFocusTrap',
|
|
6
6
|
displayName: 'useFocusTrap',
|
|
@@ -53,7 +53,7 @@ export const docs = {
|
|
|
53
53
|
category: 'focus',
|
|
54
54
|
};
|
|
55
55
|
|
|
56
|
-
/** @type {import('
|
|
56
|
+
/** @type {import('@astryxdesign/cli/authoring').HookTranslationDoc} */
|
|
57
57
|
export const docsDense = {
|
|
58
58
|
description:
|
|
59
59
|
'Traps focus within container element following WAI-ARIA dialog focus trap pattern. Listens to document focus events + redirects focus back into container if it escapes via keyboard navigation. Handles both Tab + Shift+Tab wrapping. Mouse clicks outside container not intercepted; use light-dismiss handler for that.',
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
|
-
/** @type {import('
|
|
3
|
+
/** @type {import('@astryxdesign/cli/authoring').HookDoc} */
|
|
4
4
|
export const docs = {
|
|
5
5
|
name: 'useGridFocus',
|
|
6
6
|
displayName: 'useGridFocus',
|
|
@@ -124,7 +124,7 @@ export const docs = {
|
|
|
124
124
|
category: 'focus',
|
|
125
125
|
};
|
|
126
126
|
|
|
127
|
-
/** @type {import('
|
|
127
|
+
/** @type {import('@astryxdesign/cli/authoring').HookTranslationDoc} */
|
|
128
128
|
export const docsDense = {
|
|
129
129
|
description:
|
|
130
130
|
'Manages keyboard navigation within 2D grid following WAI-ARIA grid pattern. Supports arrow keys for cell-to-cell navigation, Home/End for row boundaries, Ctrl+Home/Ctrl+End for grid boundaries, Page Up/Down for custom callbacks (e.g. month navigation in calendars). Boundary navigation callbacks allow cross-grid navigation.',
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
|
-
/** @type {import('
|
|
3
|
+
/** @type {import('@astryxdesign/cli/authoring').HookDoc} */
|
|
4
4
|
export const docs = {
|
|
5
5
|
name: 'useHotkeys',
|
|
6
6
|
displayName: 'useHotkeys',
|
|
@@ -31,7 +31,7 @@ export const docs = {
|
|
|
31
31
|
category: 'interaction',
|
|
32
32
|
};
|
|
33
33
|
|
|
34
|
-
/** @type {import('
|
|
34
|
+
/** @type {import('@astryxdesign/cli/authoring').HookTranslationDoc} */
|
|
35
35
|
export const docsDense = {
|
|
36
36
|
description:
|
|
37
37
|
'Global keyboard shortcuts w/ one window keydown listener per hook instance. Handlers kept in ref; re-renders never re-subscribe. Skips typing targets (input/textarea/select/contenteditable) unless allowInInputs, skips defaultPrevented, preventDefault() on match. "mod" = ⌘ on macOS, Ctrl elsewhere. SSR-safe.',
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
|
-
/** @type {import('
|
|
3
|
+
/** @type {import('@astryxdesign/cli/authoring').HookDoc} */
|
|
4
4
|
export const docs = {
|
|
5
5
|
name: 'useImageMode',
|
|
6
6
|
displayName: 'useImageMode',
|
|
@@ -61,7 +61,7 @@ export const docs = {
|
|
|
61
61
|
category: 'media',
|
|
62
62
|
};
|
|
63
63
|
|
|
64
|
-
/** @type {import('
|
|
64
|
+
/** @type {import('@astryxdesign/cli/authoring').HookTranslationDoc} */
|
|
65
65
|
export const docsDense = {
|
|
66
66
|
description:
|
|
67
67
|
'Detects whether image is predominantly dark / light by sampling pixels via OffscreenCanvas. Uses APCA perceptual lightness (sRGB linearization + power curve) for accurate detection, esp. on saturated colors. Runs entirely off paint path: no visible canvas, no layout thrash. Supports regional sampling for detecting luminance where text overlays will appear. Returns null while loading + falls back gracefully on CORS / network errors.',
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
|
-
/** @type {import('
|
|
3
|
+
/** @type {import('@astryxdesign/cli/authoring').HookDoc} */
|
|
4
4
|
export const docs = {
|
|
5
5
|
name: 'useInputContainer',
|
|
6
6
|
displayName: 'useInputContainer',
|
|
@@ -59,7 +59,7 @@ export const docs = {
|
|
|
59
59
|
category: 'interaction',
|
|
60
60
|
};
|
|
61
61
|
|
|
62
|
-
/** @type {import('
|
|
62
|
+
/** @type {import('@astryxdesign/cli/authoring').HookTranslationDoc} */
|
|
63
63
|
export const docsDense = {
|
|
64
64
|
description:
|
|
65
65
|
'Makes input container wrapper clickable, delegating focus to inner input/textarea when user clicks non-interactive areas (icons, padding, status indicators). Built on useClickableContainer, so nested interactive elements (clear buttons, calendar toggles, links) handled safely; clicking them does NOT steal focus from input. Automatically detects input type: text-like inputs receive .focus(), other types (checkbox, radio, file) receive .click().',
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @file useInputContainer.test.tsx
|
|
5
|
+
* @input Uses React Testing Library, useInputContainer
|
|
6
|
+
* @output Unit tests for focus-vs-click forwarding on container click
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import {fireEvent, render} from '@testing-library/react';
|
|
10
|
+
import {useRef} from 'react';
|
|
11
|
+
import {describe, expect, it, vi} from 'vitest';
|
|
12
|
+
import {useInputContainer} from './useInputContainer';
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Renders a container wired with useInputContainer around a single control.
|
|
16
|
+
* The control is described by `control`, which receives the ref to attach.
|
|
17
|
+
*/
|
|
18
|
+
function TestContainer({
|
|
19
|
+
renderControl,
|
|
20
|
+
}: {
|
|
21
|
+
renderControl: (ref: React.RefObject<HTMLElement | null>) => React.ReactNode;
|
|
22
|
+
}) {
|
|
23
|
+
const containerRef = useRef<HTMLDivElement>(null);
|
|
24
|
+
const inputRef = useRef<HTMLElement | null>(null);
|
|
25
|
+
const {onClick, onMouseUp} = useInputContainer({
|
|
26
|
+
containerRef,
|
|
27
|
+
inputRef,
|
|
28
|
+
});
|
|
29
|
+
return (
|
|
30
|
+
<div ref={containerRef} onClick={onClick} onMouseUp={onMouseUp}>
|
|
31
|
+
<span data-testid="chrome">chrome</span>
|
|
32
|
+
{renderControl(inputRef)}
|
|
33
|
+
</div>
|
|
34
|
+
);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
describe('useInputContainer', () => {
|
|
38
|
+
it('clicks (not focuses) a role="combobox" aria-haspopup="dialog" text input', () => {
|
|
39
|
+
const onFocus = vi.fn();
|
|
40
|
+
const onControlClick = vi.fn();
|
|
41
|
+
const {getByTestId} = render(
|
|
42
|
+
<TestContainer
|
|
43
|
+
renderControl={ref => (
|
|
44
|
+
<input
|
|
45
|
+
ref={ref as React.RefObject<HTMLInputElement>}
|
|
46
|
+
data-testid="control"
|
|
47
|
+
type="text"
|
|
48
|
+
role="combobox"
|
|
49
|
+
aria-haspopup="dialog"
|
|
50
|
+
onFocus={onFocus}
|
|
51
|
+
onClick={onControlClick}
|
|
52
|
+
/>
|
|
53
|
+
)}
|
|
54
|
+
/>,
|
|
55
|
+
);
|
|
56
|
+
|
|
57
|
+
// Click the non-interactive chrome so the container handler fires.
|
|
58
|
+
fireEvent.click(getByTestId('chrome'));
|
|
59
|
+
|
|
60
|
+
// A popup trigger must be activated via click, not merely focused —
|
|
61
|
+
// otherwise DateInput's calendar would never open.
|
|
62
|
+
expect(onControlClick).toHaveBeenCalledTimes(1);
|
|
63
|
+
expect(onFocus).not.toHaveBeenCalled();
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
it('clicks a control that only advertises aria-haspopup (no combobox role)', () => {
|
|
67
|
+
const onFocus = vi.fn();
|
|
68
|
+
const onControlClick = vi.fn();
|
|
69
|
+
const {getByTestId} = render(
|
|
70
|
+
<TestContainer
|
|
71
|
+
renderControl={ref => (
|
|
72
|
+
<input
|
|
73
|
+
ref={ref as React.RefObject<HTMLInputElement>}
|
|
74
|
+
data-testid="control"
|
|
75
|
+
type="text"
|
|
76
|
+
aria-haspopup="menu"
|
|
77
|
+
onFocus={onFocus}
|
|
78
|
+
onClick={onControlClick}
|
|
79
|
+
/>
|
|
80
|
+
)}
|
|
81
|
+
/>,
|
|
82
|
+
);
|
|
83
|
+
|
|
84
|
+
fireEvent.click(getByTestId('chrome'));
|
|
85
|
+
|
|
86
|
+
expect(onControlClick).toHaveBeenCalledTimes(1);
|
|
87
|
+
expect(onFocus).not.toHaveBeenCalled();
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
it('focuses (not clicks) a plain type="text" input', () => {
|
|
91
|
+
const onFocus = vi.fn();
|
|
92
|
+
const onControlClick = vi.fn();
|
|
93
|
+
const {getByTestId} = render(
|
|
94
|
+
<TestContainer
|
|
95
|
+
renderControl={ref => (
|
|
96
|
+
<input
|
|
97
|
+
ref={ref as React.RefObject<HTMLInputElement>}
|
|
98
|
+
data-testid="control"
|
|
99
|
+
type="text"
|
|
100
|
+
onFocus={onFocus}
|
|
101
|
+
onClick={onControlClick}
|
|
102
|
+
/>
|
|
103
|
+
)}
|
|
104
|
+
/>,
|
|
105
|
+
);
|
|
106
|
+
|
|
107
|
+
fireEvent.click(getByTestId('chrome'));
|
|
108
|
+
|
|
109
|
+
expect(onFocus).toHaveBeenCalledTimes(1);
|
|
110
|
+
expect(onControlClick).not.toHaveBeenCalled();
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
it('focuses (not clicks) a plain type="number" input', () => {
|
|
114
|
+
const onFocus = vi.fn();
|
|
115
|
+
const onControlClick = vi.fn();
|
|
116
|
+
const {getByTestId} = render(
|
|
117
|
+
<TestContainer
|
|
118
|
+
renderControl={ref => (
|
|
119
|
+
<input
|
|
120
|
+
ref={ref as React.RefObject<HTMLInputElement>}
|
|
121
|
+
data-testid="control"
|
|
122
|
+
type="number"
|
|
123
|
+
onFocus={onFocus}
|
|
124
|
+
onClick={onControlClick}
|
|
125
|
+
/>
|
|
126
|
+
)}
|
|
127
|
+
/>,
|
|
128
|
+
);
|
|
129
|
+
|
|
130
|
+
fireEvent.click(getByTestId('chrome'));
|
|
131
|
+
|
|
132
|
+
expect(onFocus).toHaveBeenCalledTimes(1);
|
|
133
|
+
expect(onControlClick).not.toHaveBeenCalled();
|
|
134
|
+
});
|
|
135
|
+
|
|
136
|
+
it('focuses (not clicks) a textarea', () => {
|
|
137
|
+
const onFocus = vi.fn();
|
|
138
|
+
const onControlClick = vi.fn();
|
|
139
|
+
const {getByTestId} = render(
|
|
140
|
+
<TestContainer
|
|
141
|
+
renderControl={ref => (
|
|
142
|
+
<textarea
|
|
143
|
+
ref={ref as React.RefObject<HTMLTextAreaElement>}
|
|
144
|
+
data-testid="control"
|
|
145
|
+
onFocus={onFocus}
|
|
146
|
+
onClick={onControlClick}
|
|
147
|
+
/>
|
|
148
|
+
)}
|
|
149
|
+
/>,
|
|
150
|
+
);
|
|
151
|
+
|
|
152
|
+
fireEvent.click(getByTestId('chrome'));
|
|
153
|
+
|
|
154
|
+
expect(onFocus).toHaveBeenCalledTimes(1);
|
|
155
|
+
expect(onControlClick).not.toHaveBeenCalled();
|
|
156
|
+
});
|
|
157
|
+
|
|
158
|
+
it('clicks (not focuses) a checkbox — unchanged behavior', () => {
|
|
159
|
+
const onFocus = vi.fn();
|
|
160
|
+
const onControlClick = vi.fn();
|
|
161
|
+
const {getByTestId} = render(
|
|
162
|
+
<TestContainer
|
|
163
|
+
renderControl={ref => (
|
|
164
|
+
<input
|
|
165
|
+
ref={ref as React.RefObject<HTMLInputElement>}
|
|
166
|
+
data-testid="control"
|
|
167
|
+
type="checkbox"
|
|
168
|
+
onFocus={onFocus}
|
|
169
|
+
onClick={onControlClick}
|
|
170
|
+
/>
|
|
171
|
+
)}
|
|
172
|
+
/>,
|
|
173
|
+
);
|
|
174
|
+
|
|
175
|
+
fireEvent.click(getByTestId('chrome'));
|
|
176
|
+
|
|
177
|
+
expect(onControlClick).toHaveBeenCalledTimes(1);
|
|
178
|
+
expect(onFocus).not.toHaveBeenCalled();
|
|
179
|
+
});
|
|
180
|
+
});
|
|
@@ -35,6 +35,36 @@ const FOCUS_INPUT_TYPES = new Set([
|
|
|
35
35
|
'week',
|
|
36
36
|
]);
|
|
37
37
|
|
|
38
|
+
/**
|
|
39
|
+
* `aria-haspopup` values that advertise a control opens a popup on activation.
|
|
40
|
+
* https://www.w3.org/TR/wai-aria-1.2/#aria-haspopup
|
|
41
|
+
*/
|
|
42
|
+
const HASPOPUP_VALUES = new Set([
|
|
43
|
+
'true',
|
|
44
|
+
'menu',
|
|
45
|
+
'listbox',
|
|
46
|
+
'tree',
|
|
47
|
+
'grid',
|
|
48
|
+
'dialog',
|
|
49
|
+
]);
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Whether an element is a popup trigger — a combobox or any control that
|
|
53
|
+
* advertises `aria-haspopup`. Such controls activate their popup on *click*
|
|
54
|
+
* (e.g. DateInput's `<input type="text" role="combobox" aria-haspopup="dialog">`
|
|
55
|
+
* opens its calendar via `onClick`, with no `onFocus` opener). Forwarding a
|
|
56
|
+
* container click to `.focus()` would focus the control but leave the popup
|
|
57
|
+
* closed — so we `.click()` these instead. Plain text inputs (no popup) are
|
|
58
|
+
* unaffected and keep `.focus()`.
|
|
59
|
+
*/
|
|
60
|
+
function isPopupTrigger(el: HTMLElement): boolean {
|
|
61
|
+
if (el.getAttribute('role') === 'combobox') {
|
|
62
|
+
return true;
|
|
63
|
+
}
|
|
64
|
+
const haspopup = el.getAttribute('aria-haspopup');
|
|
65
|
+
return haspopup != null && HASPOPUP_VALUES.has(haspopup);
|
|
66
|
+
}
|
|
67
|
+
|
|
38
68
|
export interface UseInputContainerOptions {
|
|
39
69
|
/** Ref to the outer container/wrapper element */
|
|
40
70
|
containerRef: RefObject<HTMLElement | null>;
|
|
@@ -83,7 +113,12 @@ export function useInputContainer({
|
|
|
83
113
|
if (input == null) {
|
|
84
114
|
return;
|
|
85
115
|
}
|
|
86
|
-
|
|
116
|
+
// Popup triggers (combobox / aria-haspopup) activate their popup on
|
|
117
|
+
// *click*, not focus — so check this BEFORE the type check, otherwise a
|
|
118
|
+
// `type="text"` combobox (DateInput) would `.focus()` and never open.
|
|
119
|
+
if (input instanceof HTMLElement && isPopupTrigger(input)) {
|
|
120
|
+
input.click();
|
|
121
|
+
} else if (
|
|
87
122
|
input instanceof HTMLInputElement &&
|
|
88
123
|
FOCUS_INPUT_TYPES.has(input.type)
|
|
89
124
|
) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
|
-
/** @type {import('
|
|
3
|
+
/** @type {import('@astryxdesign/cli/authoring').HookDoc} */
|
|
4
4
|
export const docs = {
|
|
5
5
|
name: 'useKeyboardHint',
|
|
6
6
|
displayName: 'useKeyboardHint',
|
|
@@ -72,7 +72,7 @@ export const docs = {
|
|
|
72
72
|
category: 'focus',
|
|
73
73
|
};
|
|
74
74
|
|
|
75
|
-
/** @type {import('
|
|
75
|
+
/** @type {import('@astryxdesign/cli/authoring').HookTranslationDoc} */
|
|
76
76
|
export const docsDense = {
|
|
77
77
|
description:
|
|
78
78
|
'Ephemeral "← → to navigate" hint anchored to the focused item on first keyboard focus of a roving-tabindex composite (Toolbar/TabList/SegmentedControl). Teaches sighted keyboard users that arrows move within the group. Kbd-rendered arrows in a top-layer popover="manual", CSS-anchor-positioned (never clipped by overflow), aria-hidden. Auto-dismisses on first arrow press, timeout, or blur; never re-shows for that instance.',
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* - /packages/core/src/hooks/index.ts
|
|
14
14
|
* - /packages/core/src/hooks/useKeyboardHint.doc.mjs
|
|
15
15
|
* - /apps/storybook/stories/useKeyboardHint.stories.tsx
|
|
16
|
-
* - /packages/cli/templates/blocks/components/Hooks/useKeyboardHintHookUsage.tsx
|
|
16
|
+
* - /packages/cli/assets/templates/blocks/components/Hooks/useKeyboardHintHookUsage.tsx
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
19
|
import React, {useCallback, useEffect, useRef, 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').HookDoc} */
|
|
4
4
|
export const docs = {
|
|
5
5
|
name: 'useListFocus',
|
|
6
6
|
displayName: 'useListFocus',
|
|
@@ -135,7 +135,7 @@ export const docs = {
|
|
|
135
135
|
category: 'focus',
|
|
136
136
|
};
|
|
137
137
|
|
|
138
|
-
/** @type {import('
|
|
138
|
+
/** @type {import('@astryxdesign/cli/authoring').HookTranslationDoc} */
|
|
139
139
|
export const docsDense = {
|
|
140
140
|
description:
|
|
141
141
|
'Manages keyboard navigation within linear list following WAI-ARIA menu/listbox/toolbar patterns. Supports arrow key navigation (vertical / horizontal), Home/End for boundaries, optional wrap-around, Escape to close. Suitable for dropdown menus, toolbars, any 1D focusable list.',
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
|
-
/** @type {import('
|
|
3
|
+
/** @type {import('@astryxdesign/cli/authoring').HookDoc} */
|
|
4
4
|
export const docs = {
|
|
5
5
|
name: 'useMediaQuery',
|
|
6
6
|
displayName: 'useMediaQuery',
|
|
@@ -34,7 +34,7 @@ export const docs = {
|
|
|
34
34
|
category: 'media',
|
|
35
35
|
};
|
|
36
36
|
|
|
37
|
-
/** @type {import('
|
|
37
|
+
/** @type {import('@astryxdesign/cli/authoring').HookTranslationDoc} */
|
|
38
38
|
export const docsDense = {
|
|
39
39
|
description: 'SSR-safe media query hook subscribing to window.matchMedia changes. Returns whether given media query matches. Always returns false on first render for SSR compatibility.',
|
|
40
40
|
paramDescriptions: {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
|
-
/** @type {import('
|
|
3
|
+
/** @type {import('@astryxdesign/cli/authoring').HookDoc} */
|
|
4
4
|
export const docs = {
|
|
5
5
|
name: 'useOverflow',
|
|
6
6
|
displayName: 'useOverflow',
|
|
@@ -84,7 +84,7 @@ export const docs = {
|
|
|
84
84
|
category: 'layout',
|
|
85
85
|
};
|
|
86
86
|
|
|
87
|
-
/** @type {import('
|
|
87
|
+
/** @type {import('@astryxdesign/cli/authoring').HookTranslationDoc} */
|
|
88
88
|
export const docsDense = {
|
|
89
89
|
description:
|
|
90
90
|
'Measures children rendered in hidden container to determine how many fit in available width w/o flickering. Uses ResizeObserver to react to container size changes. Measurement container should hold all items plus optional overflow indicator element (identified by data-overflow-indicator attribute).',
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
|
-
/** @type {import('
|
|
3
|
+
/** @type {import('@astryxdesign/cli/authoring').HookDoc} */
|
|
4
4
|
export const docs = {
|
|
5
5
|
name: 'useScrollLock',
|
|
6
6
|
displayName: 'useScrollLock',
|
|
@@ -29,7 +29,7 @@ export const docs = {
|
|
|
29
29
|
category: 'layout',
|
|
30
30
|
};
|
|
31
31
|
|
|
32
|
-
/** @type {import('
|
|
32
|
+
/** @type {import('@astryxdesign/cli/authoring').HookTranslationDoc} */
|
|
33
33
|
export const docsDense = {
|
|
34
34
|
description:
|
|
35
35
|
'Locks body scroll when active by pinning body w/ position: fixed. Prevents background scrolling behind modals + dialogs, necessary for iOS Safari where overscroll-behavior: contain does not work. Restores original scroll position when unlocked.',
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
|
-
/** @type {import('
|
|
3
|
+
/** @type {import('@astryxdesign/cli/authoring').HookDoc} */
|
|
4
4
|
export const docs = {
|
|
5
5
|
name: 'useScrollOverflow',
|
|
6
6
|
displayName: 'useScrollOverflow',
|
|
@@ -43,7 +43,7 @@ export const docs = {
|
|
|
43
43
|
category: 'layout',
|
|
44
44
|
};
|
|
45
45
|
|
|
46
|
-
/** @type {import('
|
|
46
|
+
/** @type {import('@astryxdesign/cli/authoring').HookTranslationDoc} */
|
|
47
47
|
export const docsDense = {
|
|
48
48
|
description:
|
|
49
49
|
'Tracks scroll overflow state for horizontally scrollable container. Returns ref callback + state booleans that update as user scrolls / container resizes. Uses scroll event listeners + ResizeObserver for reactive updates. Tolerance of 1px applied to avoid sub-pixel false positives.',
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
|
-
/** @type {import('
|
|
3
|
+
/** @type {import('@astryxdesign/cli/authoring').HookDoc} */
|
|
4
4
|
export const docs = {
|
|
5
5
|
name: 'useStreamingText',
|
|
6
6
|
displayName: 'useStreamingText',
|
|
@@ -55,7 +55,7 @@ export const docs = {
|
|
|
55
55
|
category: 'streaming',
|
|
56
56
|
};
|
|
57
57
|
|
|
58
|
-
/** @type {import('
|
|
58
|
+
/** @type {import('@astryxdesign/cli/authoring').HookTranslationDoc} */
|
|
59
59
|
export const docsDense = {
|
|
60
60
|
description:
|
|
61
61
|
'Smooths bursty streamed text into steady character-by-character reveal using requestAnimationFrame. Decouples arrival rate from display rate. Advances on word + syntax boundaries to avoid slicing mid-markdown / mid-word, preventing visual glitches w/ markdown renderers. Animation timing derives from Astryx motion tokens via useTheme when available, w/ sensible fallbacks outside theme provider. Snaps to full text when isStreaming becomes false.',
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
|
-
/** @type {import('
|
|
3
|
+
/** @type {import('@astryxdesign/cli/authoring').HookDoc} */
|
|
4
4
|
export const docs = {
|
|
5
5
|
name: 'useTreeFocus',
|
|
6
6
|
displayName: 'useTreeFocus',
|
|
@@ -106,7 +106,7 @@ export const docs = {
|
|
|
106
106
|
category: 'focus',
|
|
107
107
|
};
|
|
108
108
|
|
|
109
|
-
/** @type {import('
|
|
109
|
+
/** @type {import('@astryxdesign/cli/authoring').HookTranslationDoc} */
|
|
110
110
|
export const docsDense = {
|
|
111
111
|
description:
|
|
112
112
|
'Manages roving-tabindex focus + WAI-ARIA tree keyboard model. ArrowUp/Down/Home/End roam linearly over visible treeitems (skip disabled); ArrowRight/Left carry tree semantics (expand/collapse, move to first-child/parent). Enter/Space activate; printable chars trigger typeahead.',
|
|
@@ -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: 'InternationalizationProvider',
|
|
@@ -128,7 +128,7 @@ export function AppI18n({children}: {children: ReactNode}) {
|
|
|
128
128
|
],
|
|
129
129
|
};
|
|
130
130
|
|
|
131
|
-
/** @type {import('
|
|
131
|
+
/** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
|
|
132
132
|
export const docsDense = {
|
|
133
133
|
description:
|
|
134
134
|
'Wraps app to set active locale and (optionally) merge translation catalogs + per-locale overrides. Astryx components resolve strings against this context; missing keys fall back to shipped English.',
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
|
-
/** @type {import('
|
|
3
|
+
/** @type {import('@astryxdesign/cli/authoring').HookDoc} */
|
|
4
4
|
export const docs = {
|
|
5
5
|
name: 'useTranslator',
|
|
6
6
|
displayName: 'useTranslator',
|
|
@@ -31,7 +31,7 @@ export const docs = {
|
|
|
31
31
|
importPath: '@astryxdesign/core',
|
|
32
32
|
};
|
|
33
33
|
|
|
34
|
-
/** @type {import('
|
|
34
|
+
/** @type {import('@astryxdesign/cli/authoring').HookTranslationDoc} */
|
|
35
35
|
export const docsDense = {
|
|
36
36
|
description:
|
|
37
37
|
'Hook returning a translator function bound to the current InternationalizationProvider context. Call with an ICU MessageFormat key and values to get the formatted string for the active locale.',
|