@astryxdesign/core 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +110 -0
- package/README.md +5 -3
- package/dist/AlertDialog/AlertDialog.d.ts +1 -1
- package/dist/AlertDialog/AlertDialog.js +1 -1
- package/dist/AppShell/AppShell.d.ts +2 -20
- package/dist/AppShell/AppShell.d.ts.map +1 -1
- package/dist/AppShell/AppShell.js +25 -18
- package/dist/AppShell/index.d.ts +20 -1
- package/dist/AppShell/index.d.ts.map +1 -1
- package/dist/AppShell/index.js +14 -0
- package/dist/AspectRatio/AspectRatio.d.ts +1 -1
- package/dist/AspectRatio/AspectRatio.js +1 -1
- package/dist/Avatar/Avatar.d.ts +1 -1
- package/dist/Avatar/Avatar.d.ts.map +1 -1
- package/dist/Avatar/Avatar.js +4 -4
- package/dist/Avatar/AvatarStatusDot.d.ts +2 -26
- package/dist/Avatar/AvatarStatusDot.d.ts.map +1 -1
- package/dist/Avatar/AvatarStatusDot.js +1 -22
- package/dist/Avatar/index.d.ts +26 -1
- package/dist/Avatar/index.d.ts.map +1 -1
- package/dist/Avatar/index.js +21 -0
- package/dist/AvatarGroup/AvatarGroup.d.ts +1 -1
- package/dist/AvatarGroup/AvatarGroup.d.ts.map +1 -1
- package/dist/AvatarGroup/AvatarGroup.js +4 -8
- package/dist/AvatarGroup/AvatarGroupOverflow.d.ts +2 -2
- package/dist/AvatarGroup/AvatarGroupOverflow.d.ts.map +1 -1
- package/dist/AvatarGroup/AvatarGroupOverflow.js +7 -3
- 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 +3 -21
- package/dist/Button/Button.d.ts.map +1 -1
- package/dist/Button/Button.js +6 -19
- 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/index.d.ts +1 -1
- package/dist/Calendar/index.d.ts.map +1 -1
- package/dist/Calendar/index.js +1 -1
- package/dist/Calendar/styles.d.ts +2 -2
- package/dist/Calendar/styles.js +2 -2
- package/dist/Calendar/utils.d.ts +0 -4
- package/dist/Calendar/utils.d.ts.map +1 -1
- package/dist/Calendar/utils.js +1 -8
- package/dist/Card/Card.d.ts +1 -1
- package/dist/Card/Card.js +1 -1
- package/dist/Carousel/Carousel.d.ts +54 -3
- package/dist/Carousel/Carousel.d.ts.map +1 -1
- package/dist/Carousel/Carousel.js +82 -15
- package/dist/Carousel/index.d.ts +1 -1
- package/dist/Carousel/index.d.ts.map +1 -1
- package/dist/Center/Center.d.ts +21 -4
- package/dist/Center/Center.d.ts.map +1 -1
- package/dist/Center/Center.js +11 -3
- package/dist/Chat/ChatComposer.d.ts +1 -1
- package/dist/Chat/ChatComposer.js +9 -9
- package/dist/Chat/ChatComposerDrawer.d.ts +1 -1
- package/dist/Chat/ChatComposerDrawer.js +5 -5
- package/dist/Chat/ChatComposerInput.d.ts +1 -1
- package/dist/Chat/ChatComposerInput.js +1 -1
- package/dist/Chat/ChatDictationButton.d.ts +1 -1
- package/dist/Chat/ChatDictationButton.js +1 -1
- package/dist/Chat/ChatLayout.d.ts +8 -1
- package/dist/Chat/ChatLayout.d.ts.map +1 -1
- package/dist/Chat/ChatLayout.js +15 -4
- package/dist/Chat/ChatLayoutScrollButton.d.ts +1 -1
- package/dist/Chat/ChatLayoutScrollButton.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.d.ts.map +1 -1
- package/dist/CheckboxInput/CheckboxInput.js +3 -3
- package/dist/CheckboxList/CheckboxList.d.ts +1 -1
- package/dist/CheckboxList/CheckboxList.js +1 -1
- package/dist/CheckboxList/CheckboxListItem.d.ts +1 -1
- package/dist/CheckboxList/CheckboxListItem.d.ts.map +1 -1
- package/dist/CheckboxList/CheckboxListItem.js +20 -5
- package/dist/Citation/Citation.d.ts +1 -1
- package/dist/Citation/Citation.js +1 -1
- package/dist/ClickableCard/ClickableCard.d.ts +3 -3
- package/dist/ClickableCard/ClickableCard.js +3 -3
- package/dist/Code/Code.d.ts +2 -2
- package/dist/Code/Code.js +2 -2
- package/dist/CodeBlock/CodeBlock.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/ComplexSelector/ComplexSelector.d.ts +108 -0
- package/dist/ComplexSelector/ComplexSelector.d.ts.map +1 -0
- package/dist/ComplexSelector/ComplexSelector.js +316 -0
- package/dist/ComplexSelector/index.d.ts +7 -0
- package/dist/ComplexSelector/index.d.ts.map +1 -0
- package/dist/ComplexSelector/index.js +10 -0
- package/dist/ContextMenu/ContextMenu.d.ts +2 -2
- package/dist/ContextMenu/ContextMenu.d.ts.map +1 -1
- package/dist/ContextMenu/ContextMenu.js +24 -6
- package/dist/DateInput/DateInput.js +1 -1
- package/dist/DateRangeInput/DateRangeInput.js +1 -1
- package/dist/DateTimeInput/DateTimeInput.js +1 -1
- package/dist/Dialog/Dialog.d.ts +33 -24
- package/dist/Dialog/Dialog.d.ts.map +1 -1
- package/dist/Dialog/Dialog.js +47 -31
- package/dist/Dialog/DialogHeader.d.ts +1 -1
- package/dist/Dialog/DialogHeader.js +1 -1
- package/dist/Dialog/index.d.ts +18 -1
- package/dist/Dialog/index.d.ts.map +1 -1
- package/dist/Dialog/index.js +14 -0
- package/dist/Divider/Divider.d.ts +2 -18
- package/dist/Divider/Divider.d.ts.map +1 -1
- package/dist/Divider/Divider.js +1 -15
- package/dist/Divider/index.d.ts +18 -1
- package/dist/Divider/index.d.ts.map +1 -1
- package/dist/Divider/index.js +14 -0
- package/dist/DropdownMenu/DropdownMenu.d.ts +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/DropdownMenuRadioGroup.d.ts +8 -11
- package/dist/DropdownMenu/DropdownMenuRadioGroup.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenuRadioGroup.js +3 -1
- package/dist/DropdownMenu/DropdownMenuRadioItem.d.ts +1 -1
- package/dist/DropdownMenu/DropdownMenuRadioItem.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenuRadioItem.js +6 -2
- package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts +1 -1
- package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenuSubMenu.js +14 -6
- package/dist/DropdownMenu/menuItemHover.d.ts +1 -0
- package/dist/DropdownMenu/menuItemHover.d.ts.map +1 -1
- package/dist/DropdownMenu/menuItemHover.js +1 -0
- package/dist/DropdownMenu/renderDropdownItems.d.ts.map +1 -1
- package/dist/DropdownMenu/renderDropdownItems.js +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 +4 -3
- package/dist/Field/FieldLabel.d.ts.map +1 -1
- package/dist/Field/FieldLabel.js +48 -5
- package/dist/FieldStatus/FieldStatus.d.ts +1 -18
- package/dist/FieldStatus/FieldStatus.d.ts.map +1 -1
- package/dist/FieldStatus/FieldStatus.js +13 -17
- package/dist/FieldStatus/index.d.ts +19 -1
- package/dist/FieldStatus/index.d.ts.map +1 -1
- package/dist/FieldStatus/index.js +14 -0
- package/dist/FileInput/FileInput.js +1 -1
- package/dist/FormLayout/FormLayout.d.ts +1 -1
- package/dist/FormLayout/FormLayout.d.ts.map +1 -1
- package/dist/FormLayout/FormLayout.js +1 -1
- package/dist/Grid/Grid.d.ts +2 -10
- package/dist/Grid/Grid.d.ts.map +1 -1
- package/dist/Grid/Grid.js +1 -10
- package/dist/Grid/GridSpan.d.ts +1 -1
- package/dist/Grid/GridSpan.js +1 -1
- package/dist/HStack/HStack.d.ts +1 -1
- package/dist/HStack/HStack.js +1 -1
- package/dist/Heading/Heading.d.ts +2 -2
- package/dist/Heading/Heading.d.ts.map +1 -1
- package/dist/Heading/Heading.js +5 -4
- package/dist/HoverCard/HoverCard.d.ts +1 -1
- package/dist/HoverCard/HoverCard.js +1 -1
- package/dist/Icon/Icon.d.ts +1 -1
- package/dist/Icon/Icon.d.ts.map +1 -1
- package/dist/Icon/Icon.js +4 -2
- package/dist/Icon/defaultIcons.d.ts.map +1 -1
- package/dist/Icon/defaultIcons.js +14 -0
- package/dist/Icon/globalIconRegistry.d.ts +48 -6
- package/dist/Icon/globalIconRegistry.d.ts.map +1 -1
- package/dist/Icon/globalIconRegistry.js +74 -7
- package/dist/Icon/index.d.ts +4 -3
- package/dist/Icon/index.d.ts.map +1 -1
- package/dist/Icon/index.js +2 -1
- package/dist/Icon/useIcon.d.ts +14 -0
- package/dist/Icon/useIcon.d.ts.map +1 -0
- package/dist/Icon/useIcon.js +21 -0
- package/dist/IconButton/IconButton.d.ts +1 -1
- package/dist/IconButton/IconButton.js +1 -1
- package/dist/InputGroup/InputGroup.d.ts +1 -1
- package/dist/InputGroup/InputGroup.js +1 -1
- package/dist/InputGroup/InputGroupText.d.ts +1 -1
- package/dist/InputGroup/InputGroupText.js +1 -1
- package/dist/Item/Item.d.ts +17 -4
- package/dist/Item/Item.d.ts.map +1 -1
- package/dist/Item/Item.js +32 -7
- package/dist/Kbd/Kbd.d.ts +1 -1
- package/dist/Kbd/Kbd.js +1 -1
- package/dist/Layout/Layout.d.ts +1 -1
- package/dist/Layout/Layout.js +1 -1
- package/dist/Layout/LayoutContent.d.ts +1 -1
- package/dist/Layout/LayoutContent.js +1 -1
- package/dist/Layout/LayoutFooter.d.ts +1 -1
- package/dist/Layout/LayoutFooter.js +1 -1
- package/dist/Layout/LayoutHeader.d.ts +1 -1
- package/dist/Layout/LayoutHeader.js +1 -1
- package/dist/Layout/LayoutPanel.d.ts +1 -1
- package/dist/Layout/LayoutPanel.js +1 -1
- package/dist/Lightbox/Lightbox.d.ts +6 -4
- package/dist/Lightbox/Lightbox.d.ts.map +1 -1
- package/dist/Lightbox/Lightbox.js +117 -26
- 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 +12 -2
- package/dist/List/ListItem.d.ts.map +1 -1
- package/dist/List/ListItem.js +3 -1
- package/dist/Markdown/Markdown.d.ts.map +1 -1
- package/dist/Markdown/Markdown.js +35 -13
- package/dist/MetadataList/MetadataList.d.ts +2 -2
- package/dist/MetadataList/MetadataList.d.ts.map +1 -1
- package/dist/MetadataList/MetadataList.js +38 -12
- package/dist/MetadataList/MetadataListItem.d.ts +1 -1
- package/dist/MetadataList/MetadataListItem.js +1 -1
- package/dist/MobileNav/MobileNav.d.ts +1 -1
- package/dist/MobileNav/MobileNav.js +1 -1
- package/dist/MoreMenu/MoreMenu.d.ts +1 -1
- package/dist/MoreMenu/MoreMenu.js +3 -3
- package/dist/MultiSelector/MultiSelector.d.ts +13 -4
- package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
- package/dist/MultiSelector/MultiSelector.js +118 -24
- package/dist/NavIcon/NavIcon.d.ts +1 -1
- package/dist/NavIcon/NavIcon.js +1 -1
- package/dist/NavMenu/index.d.ts +0 -2
- package/dist/NavMenu/index.d.ts.map +1 -1
- package/dist/NavMenu/index.js +1 -3
- package/dist/NumberInput/NumberInput.d.ts +1 -1
- package/dist/NumberInput/NumberInput.d.ts.map +1 -1
- package/dist/NumberInput/NumberInput.js +16 -5
- 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 +26 -21
- package/dist/Pagination/Pagination.d.ts.map +1 -1
- package/dist/Pagination/Pagination.js +169 -41
- package/dist/Pagination/index.d.ts +22 -1
- package/dist/Pagination/index.d.ts.map +1 -1
- package/dist/Pagination/index.js +14 -0
- package/dist/Popover/Popover.d.ts +20 -3
- package/dist/Popover/Popover.d.ts.map +1 -1
- package/dist/Popover/Popover.js +5 -1
- package/dist/Popover/usePopover.d.ts.map +1 -1
- package/dist/Popover/usePopover.js +14 -3
- package/dist/PowerSearch/PowerSearch.d.ts +1 -1
- package/dist/PowerSearch/PowerSearch.js +1 -1
- package/dist/ProgressBar/ProgressBar.d.ts +49 -22
- package/dist/ProgressBar/ProgressBar.d.ts.map +1 -1
- package/dist/ProgressBar/ProgressBar.js +79 -22
- package/dist/ProgressBar/ProgressBarMarkTooltip.d.ts +27 -0
- package/dist/ProgressBar/ProgressBarMarkTooltip.d.ts.map +1 -0
- package/dist/ProgressBar/ProgressBarMarkTooltip.js +35 -0
- package/dist/ProgressBar/index.d.ts +21 -1
- package/dist/ProgressBar/index.d.ts.map +1 -1
- package/dist/ProgressBar/index.js +14 -0
- package/dist/RadioList/RadioList.d.ts +1 -1
- package/dist/RadioList/RadioList.js +1 -1
- package/dist/RadioList/RadioListItem.d.ts +1 -1
- package/dist/RadioList/RadioListItem.d.ts.map +1 -1
- package/dist/RadioList/RadioListItem.js +2 -2
- package/dist/Resizable/ResizeHandle.d.ts.map +1 -1
- package/dist/Resizable/ResizeHandle.js +15 -11
- package/dist/Section/Section.d.ts +2 -19
- package/dist/Section/Section.d.ts.map +1 -1
- package/dist/Section/Section.js +1 -15
- package/dist/Section/index.d.ts +19 -1
- package/dist/Section/index.d.ts.map +1 -1
- package/dist/Section/index.js +14 -0
- package/dist/SegmentedControl/SegmentedControl.d.ts +1 -1
- package/dist/SegmentedControl/SegmentedControl.js +1 -1
- package/dist/SegmentedControl/SegmentedControlItem.d.ts +1 -1
- package/dist/SegmentedControl/SegmentedControlItem.d.ts.map +1 -1
- package/dist/SegmentedControl/SegmentedControlItem.js +4 -3
- 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 +12 -3
- package/dist/Selector/Selector.d.ts.map +1 -1
- package/dist/Selector/Selector.js +109 -21
- 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.d.ts.map +1 -1
- package/dist/Skeleton/Skeleton.js +3 -3
- package/dist/Slider/Slider.d.ts.map +1 -1
- package/dist/Slider/Slider.js +78 -68
- package/dist/Spinner/Spinner.d.ts +1 -1
- package/dist/Spinner/Spinner.js +1 -1
- package/dist/Stack/Stack.d.ts +1 -1
- package/dist/Stack/Stack.js +1 -1
- package/dist/Stack/StackItem.d.ts +1 -1
- package/dist/Stack/StackItem.js +1 -1
- package/dist/StatusDot/StatusDot.d.ts +1 -20
- package/dist/StatusDot/StatusDot.d.ts.map +1 -1
- package/dist/StatusDot/StatusDot.js +2 -17
- package/dist/StatusDot/index.d.ts +21 -1
- package/dist/StatusDot/index.d.ts.map +1 -1
- package/dist/StatusDot/index.js +14 -0
- package/dist/Switch/Switch.d.ts +2 -6
- package/dist/Switch/Switch.d.ts.map +1 -1
- package/dist/Switch/Switch.js +18 -10
- 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.d.ts.map +1 -1
- package/dist/TabList/TabMenu.js +11 -3
- package/dist/Table/BaseTable.d.ts +1 -1
- package/dist/Table/BaseTable.d.ts.map +1 -1
- package/dist/Table/BaseTable.js +4 -7
- package/dist/Table/Table.d.ts +1 -1
- package/dist/Table/Table.js +1 -1
- package/dist/Table/TableCell.d.ts +1 -1
- package/dist/Table/TableCell.js +4 -2
- package/dist/Table/TableHeaderCell.d.ts +1 -1
- package/dist/Table/TableHeaderCell.js +4 -2
- package/dist/Table/TableRow.d.ts +1 -1
- package/dist/Table/TableRow.js +1 -1
- package/dist/Table/index.d.ts +1 -1
- package/dist/Table/index.d.ts.map +1 -1
- package/dist/Table/index.js +1 -1
- package/dist/Table/plugins/groupedRows/useTableGroupedRows.d.ts +1 -1
- package/dist/Table/plugins/groupedRows/useTableGroupedRows.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 +22 -4
- package/dist/Table/plugins/tree/useTableTreeData.d.ts +11 -0
- package/dist/Table/plugins/tree/useTableTreeData.d.ts.map +1 -1
- package/dist/Table/plugins/tree/useTableTreeData.js +36 -2
- package/dist/Table/types.d.ts +0 -9
- package/dist/Table/types.d.ts.map +1 -1
- package/dist/Text/Text.d.ts +11 -2
- package/dist/Text/Text.d.ts.map +1 -1
- package/dist/Text/Text.js +26 -3
- package/dist/Text/index.d.ts +31 -1
- package/dist/Text/index.d.ts.map +1 -1
- package/dist/Text/index.js +23 -0
- package/dist/TextArea/TextArea.d.ts +1 -1
- package/dist/TextArea/TextArea.d.ts.map +1 -1
- package/dist/TextArea/TextArea.js +107 -39
- package/dist/TextInput/TextInput.d.ts +1 -1
- package/dist/TextInput/TextInput.js +1 -1
- package/dist/Thumbnail/Thumbnail.d.ts.map +1 -1
- package/dist/Thumbnail/Thumbnail.js +52 -46
- package/dist/TimeInput/TimeInput.js +1 -1
- package/dist/Timestamp/Timestamp.d.ts +26 -12
- package/dist/Timestamp/Timestamp.d.ts.map +1 -1
- package/dist/Timestamp/Timestamp.js +128 -65
- package/dist/Timestamp/TimestampHoverCard.d.ts +45 -0
- package/dist/Timestamp/TimestampHoverCard.d.ts.map +1 -0
- package/dist/Timestamp/TimestampHoverCard.js +228 -0
- package/dist/Timestamp/formatInstant.d.ts +3 -3
- package/dist/Timestamp/formatInstant.d.ts.map +1 -1
- package/dist/Timestamp/formatInstant.js +7 -2
- package/dist/Timestamp/tooltipEntries.d.ts +17 -2
- package/dist/Timestamp/tooltipEntries.d.ts.map +1 -1
- package/dist/Timestamp/tooltipEntries.js +4 -2
- package/dist/Toast/ToastViewport.d.ts.map +1 -1
- package/dist/Toast/ToastViewport.js +61 -9
- package/dist/ToggleButton/ToggleButton.d.ts +1 -1
- package/dist/ToggleButton/ToggleButton.d.ts.map +1 -1
- package/dist/ToggleButton/ToggleButton.js +4 -2
- package/dist/ToggleButton/ToggleButtonGroup.d.ts +1 -1
- package/dist/ToggleButton/ToggleButtonGroup.d.ts.map +1 -1
- package/dist/ToggleButton/ToggleButtonGroup.js +1 -1
- package/dist/Token/Token.d.ts +6 -28
- package/dist/Token/Token.d.ts.map +1 -1
- package/dist/Token/Token.js +69 -58
- package/dist/Token/TokenLink.d.ts +62 -0
- package/dist/Token/TokenLink.d.ts.map +1 -0
- package/dist/Token/TokenLink.js +76 -0
- package/dist/Token/index.d.ts +27 -1
- package/dist/Token/index.d.ts.map +1 -1
- package/dist/Token/index.js +14 -0
- package/dist/Tokenizer/Tokenizer.d.ts +1 -1
- package/dist/Tokenizer/Tokenizer.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 +2 -8
- package/dist/TopNav/TopNavHeading.d.ts.map +1 -1
- package/dist/TopNav/TopNavHeading.js +8 -10
- 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.d.ts.map +1 -1
- package/dist/TopNav/TopNavMegaMenu.js +15 -7
- 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 +10 -1
- package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
- package/dist/Typeahead/BaseTypeahead.js +3 -1
- package/dist/Typeahead/Typeahead.d.ts +1 -1
- package/dist/Typeahead/Typeahead.d.ts.map +1 -1
- package/dist/Typeahead/Typeahead.js +9 -2
- package/dist/Typeahead/TypeaheadItem.d.ts +1 -1
- package/dist/Typeahead/TypeaheadItem.js +1 -1
- package/dist/VStack/VStack.d.ts +1 -1
- package/dist/VStack/VStack.js +1 -1
- package/dist/VisuallyHidden/VisuallyHidden.d.ts +1 -1
- package/dist/VisuallyHidden/VisuallyHidden.js +1 -1
- package/dist/astryx.css +111 -33
- package/dist/astryx.umd.js +50 -54
- package/dist/astryx.umd.js.map +4 -4
- package/dist/hooks/containerReveal.pool.stylex.d.ts +303 -0
- package/dist/hooks/containerReveal.pool.stylex.d.ts.map +1 -0
- package/dist/hooks/containerReveal.pool.stylex.js +292 -0
- package/dist/hooks/index.d.ts +2 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +2 -1
- package/dist/hooks/useContainerReveal.d.ts +83 -0
- package/dist/hooks/useContainerReveal.d.ts.map +1 -0
- package/dist/hooks/useContainerReveal.js +123 -0
- package/dist/hooks/useGridFocus.d.ts +8 -6
- package/dist/hooks/useGridFocus.d.ts.map +1 -1
- package/dist/hooks/useInputContainer.d.ts.map +1 -1
- package/dist/hooks/useInputContainer.js +29 -1
- package/dist/hooks/useInputStatusIcon.d.ts.map +1 -1
- package/dist/hooks/useInputStatusIcon.js +11 -0
- package/dist/hooks/useKeyboardHint.d.ts +2 -2
- package/dist/hooks/useKeyboardHint.d.ts.map +1 -1
- package/dist/hooks/useKeyboardHint.js +5 -3
- package/dist/hooks/useListFocus.d.ts +8 -7
- package/dist/hooks/useListFocus.d.ts.map +1 -1
- package/dist/hooks/useTreeFocus.d.ts.map +1 -1
- package/dist/hooks/useTreeFocus.js +13 -2
- package/dist/i18n/InternationalizationProvider.d.ts +6 -0
- package/dist/i18n/InternationalizationProvider.d.ts.map +1 -1
- package/dist/i18n/useDirection.d.ts.map +1 -1
- package/dist/i18n/useDirection.js +6 -3
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/theme/Theme.d.ts.map +1 -1
- package/dist/theme/Theme.js +2 -7
- package/dist/theme/contrast.d.ts +45 -0
- package/dist/theme/contrast.d.ts.map +1 -0
- package/dist/theme/contrast.js +88 -0
- package/dist/theme/defineTheme.d.ts +9 -3
- package/dist/theme/defineTheme.d.ts.map +1 -1
- package/dist/theme/defineTheme.js +6 -4
- package/dist/theme/expandColorScale.d.ts +29 -2
- package/dist/theme/expandColorScale.d.ts.map +1 -1
- package/dist/theme/expandColorScale.js +91 -12
- package/dist/theme/generateThemeRules.d.ts +0 -6
- package/dist/theme/generateThemeRules.d.ts.map +1 -1
- package/dist/theme/generateThemeRules.js +0 -15
- package/dist/theme/index.d.ts +9 -7
- package/dist/theme/index.d.ts.map +1 -1
- package/dist/theme/index.js +4 -3
- package/dist/theme/themeRegistry.d.ts +32 -0
- package/dist/theme/themeRegistry.d.ts.map +1 -0
- package/dist/theme/themeRegistry.js +49 -0
- package/dist/theme/tokens.stylex.d.ts +0 -17
- package/dist/theme/tokens.stylex.d.ts.map +1 -1
- package/dist/theme/tokens.stylex.js +0 -22
- package/dist/theme/types.d.ts +10 -2
- package/dist/theme/types.d.ts.map +1 -1
- package/dist/theme/useTheme.d.ts +9 -0
- package/dist/theme/useTheme.d.ts.map +1 -1
- package/dist/theme/useTheme.js +82 -27
- package/dist/utils/rtlStyles.d.ts +21 -0
- package/dist/utils/rtlStyles.d.ts.map +1 -1
- package/dist/utils/rtlStyles.js +26 -1
- package/groups.doc.mjs +2 -2
- package/locales/en.json +124 -0
- package/locales/pseudo.json +93 -0
- package/package.json +10 -14
- package/src/AlertDialog/AlertDialog.doc.mjs +3 -3
- package/src/AlertDialog/AlertDialog.tsx +1 -1
- package/src/AlertDialog/useImperativeAlertDialog.doc.mjs +1 -1
- package/src/AppShell/AppShell.doc.mjs +3 -3
- package/src/AppShell/AppShell.test.tsx +55 -0
- package/src/AppShell/AppShell.tsx +27 -22
- package/src/AppShell/index.ts +20 -1
- package/src/AppShell/useAppShellMobile.doc.mjs +2 -2
- package/src/AspectRatio/AspectRatio.doc.mjs +3 -3
- package/src/AspectRatio/AspectRatio.tsx +1 -1
- package/src/Avatar/Avatar.doc.mjs +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.test.tsx +21 -1
- package/src/AvatarGroup/AvatarGroup.tsx +3 -7
- package/src/AvatarGroup/AvatarGroupOverflow.doc.mjs +1 -1
- package/src/AvatarGroup/AvatarGroupOverflow.tsx +5 -3
- 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.test.tsx +1 -1
- package/src/Breadcrumbs/Breadcrumbs.tsx +2 -19
- package/src/Breadcrumbs/index.ts +19 -5
- package/src/Button/Button.doc.mjs +3 -3
- package/src/Button/Button.test.tsx +16 -0
- package/src/Button/Button.tsx +6 -23
- package/src/Button/index.ts +22 -7
- package/src/ButtonGroup/ButtonGroup.doc.mjs +3 -3
- package/src/ButtonGroup/ButtonGroup.tsx +1 -1
- package/src/Calendar/Calendar.doc.mjs +3 -3
- package/src/Calendar/Calendar.test.tsx +22 -6
- package/src/Calendar/Calendar.tsx +1 -1
- package/src/Calendar/index.ts +1 -6
- package/src/Calendar/styles.ts +2 -2
- package/src/Calendar/utils.ts +0 -11
- package/src/Card/Card.doc.mjs +3 -3
- package/src/Card/Card.tsx +1 -1
- package/src/Carousel/Carousel.doc.mjs +10 -3
- package/src/Carousel/Carousel.test.tsx +232 -1
- package/src/Carousel/Carousel.tsx +144 -21
- package/src/Carousel/index.ts +1 -1
- package/src/Center/Center.doc.mjs +41 -3
- package/src/Center/Center.test.tsx +75 -0
- package/src/Center/Center.tsx +38 -3
- package/src/Chat/Chat.doc.mjs +3 -3
- package/src/Chat/ChatComposer.doc.mjs +1 -1
- package/src/Chat/ChatComposer.tsx +5 -5
- package/src/Chat/ChatComposerDrawer.doc.mjs +1 -1
- package/src/Chat/ChatComposerDrawer.tsx +5 -5
- package/src/Chat/ChatComposerInput.doc.mjs +1 -1
- package/src/Chat/ChatComposerInput.tsx +1 -1
- package/src/Chat/ChatComposerTokenElement.doc.mjs +1 -1
- package/src/Chat/ChatDictationButton.doc.mjs +3 -3
- package/src/Chat/ChatDictationButton.tsx +1 -1
- package/src/Chat/ChatLayout.doc.mjs +1 -1
- package/src/Chat/ChatLayout.test.tsx +57 -0
- package/src/Chat/ChatLayout.tsx +23 -2
- package/src/Chat/ChatLayoutScrollButton.doc.mjs +1 -1
- package/src/Chat/ChatLayoutScrollButton.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 +56 -0
- package/src/CheckboxInput/CheckboxInput.tsx +18 -3
- package/src/CheckboxList/CheckboxList.doc.mjs +3 -3
- package/src/CheckboxList/CheckboxList.test.tsx +94 -3
- package/src/CheckboxList/CheckboxList.tsx +1 -1
- package/src/CheckboxList/CheckboxListItem.doc.mjs +1 -1
- package/src/CheckboxList/CheckboxListItem.tsx +18 -11
- package/src/Citation/Citation.doc.mjs +2 -2
- package/src/Citation/Citation.tsx +1 -1
- package/src/ClickableCard/ClickableCard.doc.mjs +2 -2
- package/src/ClickableCard/ClickableCard.tsx +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/CodeBlock/CodeBlock.test.tsx +17 -0
- package/src/CodeBlock/CodeBlock.tsx +2 -2
- 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.test.tsx +6 -2
- package/src/CommandPalette/CommandPaletteGroup.tsx +1 -1
- package/src/CommandPalette/CommandPaletteInput.doc.mjs +1 -1
- package/src/CommandPalette/CommandPaletteInput.tsx +5 -1
- package/src/CommandPalette/CommandPaletteItem.doc.mjs +1 -1
- package/src/CommandPalette/CommandPaletteItem.tsx +1 -1
- package/src/CommandPalette/CommandPaletteList.doc.mjs +1 -1
- package/src/CommandPalette/CommandPaletteList.tsx +1 -1
- package/src/ComplexSelector/ComplexSelector.doc.mjs +179 -0
- package/src/ComplexSelector/ComplexSelector.test.tsx +156 -0
- package/src/ComplexSelector/ComplexSelector.tsx +429 -0
- package/src/ComplexSelector/index.ts +17 -0
- package/src/ContextMenu/ContextMenu.doc.mjs +3 -3
- package/src/ContextMenu/ContextMenu.test.tsx +17 -2
- package/src/ContextMenu/ContextMenu.tsx +27 -6
- package/src/ContextMenu/ContextMenuItem.doc.mjs +1 -1
- package/src/DateInput/DateInput.doc.mjs +3 -3
- package/src/DateInput/DateInput.test.tsx +7 -3
- package/src/DateInput/DateInput.tsx +1 -1
- package/src/DateRangeInput/DateRangeInput.doc.mjs +2 -2
- package/src/DateRangeInput/DateRangeInput.test.tsx +7 -2
- package/src/DateRangeInput/DateRangeInput.tsx +1 -1
- package/src/DateTimeInput/DateTimeInput.doc.mjs +3 -3
- package/src/DateTimeInput/DateTimeInput.test.tsx +6 -2
- package/src/DateTimeInput/DateTimeInput.tsx +1 -1
- package/src/Dialog/Dialog.doc.mjs +7 -5
- package/src/Dialog/Dialog.test.tsx +46 -3
- package/src/Dialog/Dialog.tsx +61 -44
- 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 +5 -13
- package/src/DropdownMenu/DropdownMenuRadioGroup.tsx +9 -10
- package/src/DropdownMenu/DropdownMenuRadioItem.doc.mjs +1 -1
- package/src/DropdownMenu/DropdownMenuRadioItem.tsx +11 -2
- package/src/DropdownMenu/DropdownMenuSelectable.test.tsx +84 -2
- package/src/DropdownMenu/DropdownMenuSubMenu.doc.mjs +1 -1
- package/src/DropdownMenu/DropdownMenuSubMenu.test.tsx +46 -1
- package/src/DropdownMenu/DropdownMenuSubMenu.tsx +24 -8
- package/src/DropdownMenu/menuItemHover.ts +1 -0
- 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 +7 -3
- package/src/Field/Field.tsx +1 -1
- package/src/Field/FieldLabel.doc.mjs +1 -1
- package/src/Field/FieldLabel.test.tsx +103 -0
- package/src/Field/FieldLabel.tsx +61 -5
- package/src/FieldStatus/FieldStatus.doc.mjs +3 -2
- package/src/FieldStatus/FieldStatus.test.tsx +61 -0
- package/src/FieldStatus/FieldStatus.tsx +16 -23
- package/src/FieldStatus/index.ts +20 -5
- package/src/FileInput/FileInput.doc.mjs +3 -3
- package/src/FileInput/FileInput.tsx +1 -1
- package/src/FormLayout/FormLayout.doc.mjs +3 -3
- package/src/FormLayout/FormLayout.tsx +2 -5
- package/src/Grid/Grid.doc.mjs +3 -8
- package/src/Grid/Grid.tsx +1 -25
- package/src/Grid/GridSpan.doc.mjs +1 -1
- package/src/Grid/GridSpan.tsx +1 -1
- package/src/HStack/HStack.tsx +1 -1
- package/src/Heading/Heading.tsx +4 -3
- package/src/HoverCard/HoverCard.doc.mjs +3 -3
- package/src/HoverCard/HoverCard.tsx +1 -1
- package/src/HoverCard/useHoverCard.doc.mjs +2 -2
- package/src/Icon/Icon.doc.mjs +7 -6
- package/src/Icon/Icon.test.tsx +23 -0
- package/src/Icon/Icon.tsx +4 -2
- package/src/Icon/defaultIcons.tsx +14 -0
- package/src/Icon/globalIconRegistry.test.tsx +87 -1
- package/src/Icon/globalIconRegistry.tsx +111 -9
- package/src/Icon/index.ts +9 -7
- package/src/Icon/useIcon.ts +23 -0
- package/src/IconButton/IconButton.doc.mjs +2 -2
- package/src/IconButton/IconButton.tsx +1 -1
- package/src/InputGroup/InputGroup.doc.mjs +2 -2
- package/src/InputGroup/InputGroup.tsx +1 -1
- package/src/InputGroup/InputGroupText.doc.mjs +1 -1
- package/src/InputGroup/InputGroupText.tsx +1 -1
- package/src/Item/Item.doc.mjs +8 -3
- package/src/Item/Item.test.tsx +88 -0
- package/src/Item/Item.tsx +58 -12
- 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 +5 -5
- package/src/Lightbox/Lightbox.test.tsx +211 -0
- package/src/Lightbox/Lightbox.tsx +109 -22
- 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 +13 -1
- package/src/List/ListItem.tsx +14 -1
- package/src/Markdown/Markdown.doc.mjs +81 -1
- package/src/Markdown/Markdown.test.tsx +92 -0
- package/src/Markdown/Markdown.tsx +96 -68
- package/src/Markdown/parser.perf.test.ts +47 -35
- package/src/MetadataList/MetadataList.doc.mjs +3 -3
- package/src/MetadataList/MetadataList.test.tsx +82 -0
- package/src/MetadataList/MetadataList.tsx +45 -20
- package/src/MetadataList/MetadataListItem.doc.mjs +1 -1
- package/src/MetadataList/MetadataListItem.tsx +1 -1
- package/src/MobileNav/MobileNav.doc.mjs +3 -3
- package/src/MobileNav/MobileNav.tsx +1 -1
- package/src/MoreMenu/MoreMenu.doc.mjs +3 -3
- package/src/MoreMenu/MoreMenu.tsx +3 -3
- package/src/MultiSelector/MultiSelector.doc.mjs +35 -10
- package/src/MultiSelector/MultiSelector.test.tsx +303 -3
- package/src/MultiSelector/MultiSelector.tsx +223 -58
- package/src/NavIcon/NavIcon.doc.mjs +3 -3
- package/src/NavIcon/NavIcon.tsx +1 -1
- package/src/NavMenu/NavHeadingMenu.test.tsx +0 -16
- package/src/NavMenu/NavMenu.doc.mjs +2 -2
- package/src/NavMenu/index.ts +0 -4
- package/src/NumberInput/NumberInput.doc.mjs +3 -6
- package/src/NumberInput/NumberInput.test.tsx +38 -3
- package/src/NumberInput/NumberInput.tsx +24 -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 +55 -8
- package/src/Pagination/Pagination.test.tsx +567 -0
- package/src/Pagination/Pagination.tsx +223 -41
- package/src/Pagination/index.ts +22 -1
- package/src/Popover/Popover.doc.mjs +31 -3
- package/src/Popover/Popover.test.tsx +41 -0
- package/src/Popover/Popover.tsx +25 -2
- package/src/Popover/usePopover.doc.mjs +2 -2
- package/src/Popover/usePopover.tsx +10 -4
- package/src/PowerSearch/PowerSearch.doc.mjs +3 -3
- package/src/PowerSearch/PowerSearch.tsx +1 -1
- package/src/ProgressBar/ProgressBar.doc.mjs +18 -3
- package/src/ProgressBar/ProgressBar.test.tsx +340 -2
- package/src/ProgressBar/ProgressBar.tsx +153 -25
- package/src/ProgressBar/ProgressBarMarkTooltip.tsx +43 -0
- package/src/ProgressBar/index.ts +22 -1
- package/src/RadioList/RadioList.doc.mjs +3 -3
- package/src/RadioList/RadioList.test.tsx +26 -4
- package/src/RadioList/RadioList.tsx +1 -1
- package/src/RadioList/RadioListItem.doc.mjs +1 -1
- package/src/RadioList/RadioListItem.tsx +9 -2
- package/src/Resizable/Resizable.doc.mjs +2 -2
- package/src/Resizable/ResizeHandle.test.tsx +52 -3
- package/src/Resizable/ResizeHandle.tsx +25 -13
- package/src/Resizable/useResizable.doc.mjs +2 -2
- package/src/Section/Section.doc.mjs +3 -3
- package/src/Section/Section.tsx +2 -20
- package/src/Section/index.ts +20 -5
- package/src/SegmentedControl/SegmentedControl.doc.mjs +3 -3
- package/src/SegmentedControl/SegmentedControl.test.tsx +28 -0
- package/src/SegmentedControl/SegmentedControl.tsx +1 -1
- package/src/SegmentedControl/SegmentedControlItem.doc.mjs +1 -1
- package/src/SegmentedControl/SegmentedControlItem.tsx +21 -3
- 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 +28 -8
- package/src/Selector/Selector.test.tsx +222 -3
- package/src/Selector/Selector.tsx +202 -52
- 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.test.tsx +16 -0
- package/src/Skeleton/Skeleton.tsx +14 -2
- package/src/Slider/Slider.doc.mjs +3 -3
- package/src/Slider/Slider.tsx +9 -13
- package/src/Spinner/Spinner.doc.mjs +3 -3
- package/src/Spinner/Spinner.tsx +1 -1
- package/src/Stack/Stack.doc.mjs +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 +5 -5
- package/src/Switch/Switch.test.tsx +71 -25
- package/src/Switch/Switch.tsx +56 -18
- 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.test.tsx +21 -18
- package/src/TabList/TabList.tsx +1 -1
- package/src/TabList/TabMenu.doc.mjs +1 -1
- package/src/TabList/TabMenu.tsx +11 -3
- package/src/Table/BaseTable.tsx +4 -5
- package/src/Table/Table.doc.mjs +5 -5
- package/src/Table/Table.test.tsx +27 -49
- package/src/Table/Table.tsx +1 -1
- package/src/Table/TableCell.doc.mjs +1 -1
- package/src/Table/TableCell.tsx +2 -2
- package/src/Table/TableHeaderCell.doc.mjs +1 -1
- package/src/Table/TableHeaderCell.tsx +2 -2
- package/src/Table/TableRow.doc.mjs +1 -1
- package/src/Table/TableRow.tsx +1 -1
- package/src/Table/index.ts +1 -1
- package/src/Table/plugins/groupedRows/useTableGroupedRows.tsx +1 -1
- package/src/Table/plugins/rowExpansion/useTableRowExpansion.test.tsx +19 -0
- package/src/Table/plugins/rowExpansion/useTableRowExpansion.tsx +24 -4
- package/src/Table/plugins/tree/useTableTreeData.test.tsx +161 -2
- package/src/Table/plugins/tree/useTableTreeData.tsx +54 -1
- package/src/Table/types.ts +0 -9
- package/src/Table/useTableColumnResize.doc.mjs +1 -1
- package/src/Table/useTableColumnSettings.doc.mjs +1 -1
- package/src/Table/useTableFilterState.doc.mjs +1 -1
- package/src/Table/useTableFiltering.doc.mjs +1 -1
- package/src/Table/useTableGroupedRows.doc.mjs +2 -2
- package/src/Table/useTablePagination.doc.mjs +1 -1
- package/src/Table/useTableRowExpansion.doc.mjs +57 -4
- package/src/Table/useTableRowIndex.doc.mjs +2 -2
- package/src/Table/useTableRowStatus.doc.mjs +3 -3
- package/src/Table/useTableSelection.doc.mjs +1 -1
- package/src/Table/useTableSelectionState.doc.mjs +1 -1
- package/src/Table/useTableSortable.doc.mjs +1 -1
- package/src/Table/useTableStickyColumns.doc.mjs +1 -1
- package/src/Table/useTableTreeData.doc.mjs +10 -1
- package/src/Table/useTableTreeState.doc.mjs +1 -1
- package/src/Text/Heading.doc.mjs +4 -4
- package/src/Text/Text.doc.mjs +4 -4
- package/src/Text/Text.test.tsx +42 -0
- package/src/Text/Text.tsx +26 -2
- package/src/Text/index.ts +32 -6
- package/src/TextArea/TextArea.doc.mjs +5 -5
- package/src/TextArea/TextArea.test.tsx +112 -7
- package/src/TextArea/TextArea.tsx +143 -50
- package/src/TextInput/TextInput.doc.mjs +3 -3
- package/src/TextInput/TextInput.tsx +1 -1
- package/src/Thumbnail/Thumbnail.doc.mjs +2 -2
- package/src/Thumbnail/Thumbnail.test.tsx +24 -1
- package/src/Thumbnail/Thumbnail.tsx +28 -35
- package/src/TimeInput/TimeInput.doc.mjs +3 -3
- package/src/TimeInput/TimeInput.tsx +1 -1
- package/src/Timestamp/Timestamp.doc.mjs +29 -24
- package/src/Timestamp/Timestamp.test.tsx +438 -107
- package/src/Timestamp/Timestamp.tsx +167 -103
- package/src/Timestamp/TimestampHoverCard.tsx +283 -0
- package/src/Timestamp/formatInstant.ts +9 -4
- package/src/Timestamp/tooltipEntries.test.ts +9 -0
- package/src/Timestamp/tooltipEntries.ts +18 -2
- package/src/Toast/Toast.doc.mjs +3 -3
- package/src/Toast/ToastViewport.test.tsx +218 -8
- package/src/Toast/ToastViewport.tsx +71 -12
- package/src/Toast/useToast.doc.mjs +2 -2
- package/src/ToggleButton/ToggleButton.doc.mjs +3 -3
- package/src/ToggleButton/ToggleButton.test.tsx +24 -0
- package/src/ToggleButton/ToggleButton.tsx +20 -2
- package/src/ToggleButton/ToggleButtonGroup.doc.mjs +1 -1
- package/src/ToggleButton/ToggleButtonGroup.tsx +3 -6
- package/src/Token/Token.doc.mjs +3 -3
- package/src/Token/Token.test.tsx +145 -0
- package/src/Token/Token.tsx +75 -61
- package/src/Token/TokenLink.tsx +107 -0
- 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.test.tsx +2 -2
- package/src/TopNav/TopNav.tsx +1 -1
- package/src/TopNav/TopNavHeading.doc.mjs +1 -12
- package/src/TopNav/TopNavHeading.tsx +8 -18
- 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 +32 -6
- 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.test.tsx +10 -6
- 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 +13 -1
- package/src/Typeahead/Typeahead.doc.mjs +3 -3
- package/src/Typeahead/Typeahead.test.tsx +62 -0
- package/src/Typeahead/Typeahead.tsx +7 -1
- package/src/Typeahead/TypeaheadItem.doc.mjs +1 -1
- package/src/Typeahead/TypeaheadItem.tsx +1 -1
- package/src/VStack/VStack.tsx +1 -1
- package/src/VisuallyHidden/VisuallyHidden.doc.mjs +3 -3
- package/src/VisuallyHidden/VisuallyHidden.tsx +1 -1
- package/src/__tests__/babelPluginAddExtensions.test.ts +190 -0
- package/src/__tests__/forcedColors.ts +60 -0
- package/src/__tests__/inputWidthContract.test.tsx +8 -1
- package/src/doc-mjs.d.ts +5 -2
- package/src/docPropLiterals.test.ts +1 -1
- package/src/docPropReferences.test.ts +1 -1
- package/src/hooks/containerReveal.pool.stylex.ts +571 -0
- package/src/hooks/index.ts +7 -0
- package/src/hooks/useClickableContainer.doc.mjs +2 -2
- package/src/hooks/useContainerReveal.doc.mjs +75 -0
- package/src/hooks/useContainerReveal.test.tsx +116 -0
- package/src/hooks/useContainerReveal.ts +181 -0
- package/src/hooks/useEntryAnimation.doc.mjs +2 -2
- package/src/hooks/useFocusTrap.doc.mjs +2 -2
- package/src/hooks/useGridFocus.doc.mjs +2 -2
- package/src/hooks/useGridFocus.ts +8 -6
- package/src/hooks/useHotkeys.doc.mjs +2 -2
- package/src/hooks/useImageMode.doc.mjs +2 -2
- package/src/hooks/useInputContainer.doc.mjs +2 -2
- package/src/hooks/useInputContainer.test.tsx +180 -0
- package/src/hooks/useInputContainer.ts +36 -1
- package/src/hooks/useInputStatusIcon.test.tsx +59 -0
- package/src/hooks/useInputStatusIcon.tsx +12 -1
- package/src/hooks/useKeyboardHint.doc.mjs +2 -2
- package/src/hooks/useKeyboardHint.test.tsx +22 -0
- package/src/hooks/useKeyboardHint.tsx +7 -3
- package/src/hooks/useListFocus.doc.mjs +2 -2
- package/src/hooks/useListFocus.ts +8 -7
- package/src/hooks/useMediaQuery.doc.mjs +2 -2
- package/src/hooks/useOverflow.doc.mjs +2 -2
- package/src/hooks/useScrollLock.doc.mjs +2 -2
- package/src/hooks/useScrollOverflow.doc.mjs +2 -2
- package/src/hooks/useStreamingText.doc.mjs +2 -2
- package/src/hooks/useTreeFocus.doc.mjs +2 -2
- package/src/hooks/useTreeFocus.test.tsx +53 -1
- package/src/hooks/useTreeFocus.ts +13 -2
- package/src/i18n/InternationalizationProvider.doc.mjs +14 -2
- package/src/i18n/InternationalizationProvider.tsx +6 -0
- package/src/i18n/useDirection.ts +6 -3
- package/src/i18n/useTranslator.doc.mjs +2 -2
- package/src/index.ts +2 -18
- package/src/theme/MediaTheme.doc.mjs +2 -2
- package/src/theme/SyntaxTheme.doc.mjs +2 -2
- package/src/theme/Theme.doc.mjs +2 -2
- package/src/theme/Theme.tsx +3 -7
- package/src/theme/contrast.test.ts +94 -0
- package/src/theme/contrast.ts +99 -0
- package/src/theme/defineTheme.test.ts +29 -30
- package/src/theme/defineTheme.ts +11 -5
- package/src/theme/expandColorScale.test.ts +387 -1
- package/src/theme/expandColorScale.ts +126 -17
- package/src/theme/generateThemeRules.ts +0 -15
- package/src/theme/index.ts +11 -13
- package/src/theme/themeRegistry.test.ts +59 -0
- package/src/theme/themeRegistry.ts +53 -0
- package/src/theme/tokens.stylex.ts +0 -19
- package/src/theme/types.ts +14 -13
- package/src/theme/useTheme.doc.mjs +2 -2
- package/src/theme/useTheme.test.tsx +48 -3
- package/src/theme/useTheme.ts +100 -29
- package/src/utils/rtlStyles.ts +22 -0
- package/dist/NavMenu/NavMenuItem.d.ts +0 -13
- package/dist/NavMenu/NavMenuItem.d.ts.map +0 -1
- package/dist/NavMenu/NavMenuItem.js +0 -16
- package/dist/Thumbnail/thumbnail.markers.stylex.d.ts +0 -9
- package/dist/Thumbnail/thumbnail.markers.stylex.d.ts.map +0 -1
- package/dist/Thumbnail/thumbnail.markers.stylex.js +0 -14
- package/dist/authoring/doc.d.ts +0 -145
- package/dist/authoring/doc.d.ts.map +0 -1
- package/dist/authoring/doc.js +0 -100
- package/dist/authoring/index.d.ts +0 -29
- package/dist/authoring/index.d.ts.map +0 -1
- package/dist/authoring/index.js +0 -28
- package/dist/authoring/integration.d.ts +0 -35
- package/dist/authoring/integration.d.ts.map +0 -1
- package/dist/authoring/integration.js +0 -30
- package/dist/authoring/template.d.ts +0 -66
- package/dist/authoring/template.d.ts.map +0 -1
- package/dist/authoring/template.js +0 -55
- package/dist/config.d.ts +0 -80
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js +0 -40
- package/dist/docs-types.d.ts +0 -969
- package/dist/docs-types.d.ts.map +0 -1
- package/dist/docs-types.js +0 -1
- package/src/NavMenu/NavMenuItem.tsx +0 -19
- package/src/Thumbnail/thumbnail.markers.stylex.ts +0 -12
- package/src/authoring/doc.ts +0 -164
- package/src/authoring/index.test.ts +0 -52
- package/src/authoring/index.ts +0 -50
- package/src/authoring/integration.ts +0 -42
- package/src/authoring/template.ts +0 -74
- package/src/config.test.ts +0 -16
- package/src/config.ts +0 -92
- package/src/docs-types.ts +0 -1108
|
@@ -5,7 +5,9 @@
|
|
|
5
5
|
/**
|
|
6
6
|
* @file Pagination.tsx
|
|
7
7
|
* @input Uses React, StyleX, Button, Icon, Selector, Text; page number buttons delegate to Button.
|
|
8
|
-
*
|
|
8
|
+
* Prev/next and first/last chevrons mirror under RTL via the shared rtlStyles.mirror
|
|
9
|
+
* (CSS scaleX), not a JS direction read. The input variant uses the chevronsLeft/chevronsRight
|
|
10
|
+
* (first/last) icons.
|
|
9
11
|
* @output Exports Pagination component, PaginationProps, PaginationVariant, PaginationSize types
|
|
10
12
|
* @position Core implementation; consumed by index.ts, tested by Pagination.test.tsx
|
|
11
13
|
*
|
|
@@ -13,11 +15,11 @@
|
|
|
13
15
|
* - /packages/core/src/Pagination/Pagination.test.tsx (tests for new/changed behavior)
|
|
14
16
|
* - /packages/core/src/Pagination/index.ts (exports if types change)
|
|
15
17
|
* - /apps/storybook/stories/Pagination.stories.tsx (storybook stories)
|
|
16
|
-
* - /packages/cli/templates/blocks/components/Pagination/ (showcase blocks)
|
|
18
|
+
* - /packages/cli/assets/templates/blocks/components/Pagination/ (showcase blocks)
|
|
17
19
|
*
|
|
18
20
|
* Last synced props: page, onChange, changeAction, totalItems, totalPages, hasMore,
|
|
19
|
-
* pageSize, pageSizeOptions, onPageSizeChange, variant,
|
|
20
|
-
* label, data-testid, xstyle
|
|
21
|
+
* pageSize, pageSizeOptions, onPageSizeChange, variant, pageLabel,
|
|
22
|
+
* hasFirstLast, step, siblingCount, size, isDisabled, label, data-testid, xstyle
|
|
21
23
|
*/
|
|
22
24
|
|
|
23
25
|
import {useOptimistic, useTransition} from 'react';
|
|
@@ -33,41 +35,21 @@ import {
|
|
|
33
35
|
} from '../theme/tokens.stylex';
|
|
34
36
|
import {Button} from '../Button';
|
|
35
37
|
import {Icon} from '../Icon';
|
|
38
|
+
import {NumberInput} from '../NumberInput';
|
|
36
39
|
import {Selector} from '../Selector';
|
|
37
40
|
import {Text} from '../Text';
|
|
38
41
|
import {useAnnounce} from '../hooks/useAnnounce';
|
|
39
42
|
import {useListFocus} from '../hooks/useListFocus';
|
|
40
|
-
import {mergeProps} from '../utils';
|
|
43
|
+
import {mergeProps, rtlStyles} from '../utils';
|
|
41
44
|
import type {BaseProps} from '../BaseProps';
|
|
42
45
|
import {themeProps} from '../utils/themeProps';
|
|
43
46
|
import {useTranslator} from '../i18n/useTranslator';
|
|
44
|
-
import {
|
|
47
|
+
import type {PaginationVariantMap} from './index';
|
|
45
48
|
|
|
46
49
|
// =============================================================================
|
|
47
50
|
// Types
|
|
48
51
|
// =============================================================================
|
|
49
52
|
|
|
50
|
-
/**
|
|
51
|
-
* Extensible variant map for Pagination.
|
|
52
|
-
*
|
|
53
|
-
* Theme packages can add custom variants via TypeScript module augmentation:
|
|
54
|
-
* @example
|
|
55
|
-
* ```
|
|
56
|
-
* declare module '@astryxdesign/core/Pagination' {
|
|
57
|
-
* interface PaginationVariantMap {
|
|
58
|
-
* 'progress': true;
|
|
59
|
-
* }
|
|
60
|
-
* }
|
|
61
|
-
* ```
|
|
62
|
-
*/
|
|
63
|
-
export interface PaginationVariantMap {
|
|
64
|
-
pages: true;
|
|
65
|
-
count: true;
|
|
66
|
-
compact: true;
|
|
67
|
-
dots: true;
|
|
68
|
-
none: true;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
53
|
/** Visual variant controlling what appears between prev/next buttons.
|
|
72
54
|
* Extensible via module augmentation of PaginationVariantMap.
|
|
73
55
|
*/
|
|
@@ -124,10 +106,34 @@ export interface PaginationProps extends Omit<
|
|
|
124
106
|
* - count: "X–Y of Z" text
|
|
125
107
|
* - compact: "Page X of Y" text
|
|
126
108
|
* - dots: Dot indicators
|
|
109
|
+
* - input: An editable number box rendering "Page [ n ] / N". The leading
|
|
110
|
+
* noun is controlled by `pageLabel`. First/last double-chevron buttons
|
|
111
|
+
* flank prev/next by default (see hasFirstLast).
|
|
127
112
|
* - none: Just prev/next buttons
|
|
128
113
|
* @default 'pages'
|
|
129
114
|
*/
|
|
130
115
|
variant?: PaginationVariant;
|
|
116
|
+
/**
|
|
117
|
+
* The noun rendered before the editable box in the `input` variant, e.g.
|
|
118
|
+
* "Page" or "Row". Navigation is always page-based (via `onChange`); this
|
|
119
|
+
* only relabels the box. @default the localized "Page"
|
|
120
|
+
*/
|
|
121
|
+
pageLabel?: string;
|
|
122
|
+
/**
|
|
123
|
+
* Whether to show first/last («/») double-chevron buttons flanking
|
|
124
|
+
* prev/next. Only applies to the `input` variant; other variants ignore it.
|
|
125
|
+
* The last button needs a known total — it is omitted when the page count is
|
|
126
|
+
* unknown (cursor/hasMore pagination). @default true
|
|
127
|
+
*/
|
|
128
|
+
hasFirstLast?: boolean;
|
|
129
|
+
/**
|
|
130
|
+
* Number of pages the previous/next («‹ ›») buttons advance per click.
|
|
131
|
+
* Clamped to the valid page range, so a step that would overshoot lands on
|
|
132
|
+
* the first/last page. When greater than 1, the buttons' accessible names
|
|
133
|
+
* reflect the stride (e.g. "Go forward 5 pages"). Non-integer or values < 1
|
|
134
|
+
* fall back to 1. @default 1
|
|
135
|
+
*/
|
|
136
|
+
step?: number;
|
|
131
137
|
/**
|
|
132
138
|
* Number of page buttons to show on each side of the current page.
|
|
133
139
|
* Only applies when variant='pages'. @default 1
|
|
@@ -232,6 +238,28 @@ const styles = stylex.create({
|
|
|
232
238
|
backgroundColor: colorVars['--color-neutral'],
|
|
233
239
|
fontWeight: fontWeightVars['--font-weight-medium'],
|
|
234
240
|
},
|
|
241
|
+
inputGroup: {
|
|
242
|
+
display: 'inline-flex',
|
|
243
|
+
alignItems: 'center',
|
|
244
|
+
gap: spacingVars['--spacing-1'],
|
|
245
|
+
whiteSpace: 'nowrap',
|
|
246
|
+
},
|
|
247
|
+
inputLabel: {
|
|
248
|
+
color: colorVars['--color-text-secondary'],
|
|
249
|
+
fontSize: typeScaleVars['--text-label-size'],
|
|
250
|
+
userSelect: 'none',
|
|
251
|
+
},
|
|
252
|
+
inputLabelSm: {
|
|
253
|
+
fontSize: typeScaleVars['--text-supporting-size'],
|
|
254
|
+
},
|
|
255
|
+
inputTotal: {
|
|
256
|
+
color: colorVars['--color-text-secondary'],
|
|
257
|
+
fontSize: typeScaleVars['--text-label-size'],
|
|
258
|
+
userSelect: 'none',
|
|
259
|
+
},
|
|
260
|
+
inputTotalSm: {
|
|
261
|
+
fontSize: typeScaleVars['--text-supporting-size'],
|
|
262
|
+
},
|
|
235
263
|
pageSizeSelector: {
|
|
236
264
|
display: 'flex',
|
|
237
265
|
alignItems: 'center',
|
|
@@ -344,6 +372,9 @@ export function Pagination({
|
|
|
344
372
|
pageSizeOptions,
|
|
345
373
|
onPageSizeChange,
|
|
346
374
|
variant = 'pages',
|
|
375
|
+
pageLabel,
|
|
376
|
+
hasFirstLast = true,
|
|
377
|
+
step: stepProp = 1,
|
|
347
378
|
siblingCount = 1,
|
|
348
379
|
size = 'md',
|
|
349
380
|
isDisabled = false,
|
|
@@ -360,16 +391,13 @@ export function Pagination({
|
|
|
360
391
|
// Resolve system strings once per render. Prop overrides win.
|
|
361
392
|
const t = useTranslator();
|
|
362
393
|
const label = labelFromProps ?? t('@astryx.pagination.label');
|
|
363
|
-
const
|
|
364
|
-
const
|
|
365
|
-
|
|
366
|
-
// Directional icons: under RTL, the "previous" control points right and the
|
|
367
|
-
// "next" control points left. aria-labels stay semantic (unchanged).
|
|
368
|
-
const direction = useDirection();
|
|
369
|
-
const previousIcon = direction === 'rtl' ? 'chevronRight' : 'chevronLeft';
|
|
370
|
-
const nextIcon = direction === 'rtl' ? 'chevronLeft' : 'chevronRight';
|
|
394
|
+
const firstLabel = t('@astryx.pagination.first');
|
|
395
|
+
const lastLabel = t('@astryx.pagination.last');
|
|
396
|
+
|
|
371
397
|
const pageIndicatorsLabel = t('@astryx.pagination.pageIndicators');
|
|
372
398
|
const itemsPerPageLabel = t('@astryx.pagination.itemsPerPage');
|
|
399
|
+
const goToPageLabel = t('@astryx.pagination.goToPageInput');
|
|
400
|
+
const inputLabelText = pageLabel ?? t('@astryx.pagination.pageLabel');
|
|
373
401
|
|
|
374
402
|
// pageSize is typed as number, so 0, NaN, and negatives are valid at the
|
|
375
403
|
// type level but yield Infinity/NaN page counts, and
|
|
@@ -379,6 +407,23 @@ export function Pagination({
|
|
|
379
407
|
? Math.max(1, Math.floor(pageSizeProp))
|
|
380
408
|
: 10;
|
|
381
409
|
|
|
410
|
+
// Prev/next stride. Same guard as pageSize: non-integer or < 1 falls back to
|
|
411
|
+
// a single-page step so a bad value never freezes or reverses navigation.
|
|
412
|
+
const step = Number.isInteger(stepProp) && stepProp >= 1 ? stepProp : 1;
|
|
413
|
+
|
|
414
|
+
// The prev/next buttons advance `step` pages, so their accessible names must
|
|
415
|
+
// reflect the stride: a plain "previous/next page" for the default single
|
|
416
|
+
// step, or an explicit "back/forward N pages" so a screen reader never
|
|
417
|
+
// announces a single-page move for a multi-page jump.
|
|
418
|
+
const previousLabel =
|
|
419
|
+
step > 1
|
|
420
|
+
? t('@astryx.pagination.previousBy', {step})
|
|
421
|
+
: t('@astryx.pagination.previous');
|
|
422
|
+
const nextLabel =
|
|
423
|
+
step > 1
|
|
424
|
+
? t('@astryx.pagination.nextBy', {step})
|
|
425
|
+
: t('@astryx.pagination.next');
|
|
426
|
+
|
|
382
427
|
// Announce page changes politely (navigation-10). The controls carry no
|
|
383
428
|
// live region, so page transitions were previously silent to screen readers.
|
|
384
429
|
// Only user-driven changes go through handlePageChange, so initial mount is
|
|
@@ -404,7 +449,6 @@ export function Pagination({
|
|
|
404
449
|
orientation: 'horizontal',
|
|
405
450
|
});
|
|
406
451
|
|
|
407
|
-
// Compute pagination state
|
|
408
452
|
const computedTotalPages =
|
|
409
453
|
totalPagesProp ??
|
|
410
454
|
(totalItems != null ? Math.ceil(totalItems / pageSize) : undefined);
|
|
@@ -415,7 +459,6 @@ export function Pagination({
|
|
|
415
459
|
? optimisticPage < computedTotalPages
|
|
416
460
|
: (hasMore ?? false);
|
|
417
461
|
|
|
418
|
-
// Return null for empty state
|
|
419
462
|
if (totalItems != null && totalItems <= 0) {
|
|
420
463
|
return null;
|
|
421
464
|
}
|
|
@@ -469,15 +512,37 @@ export function Pagination({
|
|
|
469
512
|
}
|
|
470
513
|
};
|
|
471
514
|
|
|
515
|
+
// Clamp a target page into the valid range. The lower bound is always 1; the
|
|
516
|
+
// upper bound only exists when the page count is known (cursor/hasMore mode
|
|
517
|
+
// leaves it open-ended).
|
|
518
|
+
const clampPage = (target: number): number => {
|
|
519
|
+
const lower = Math.max(target, 1);
|
|
520
|
+
return computedTotalPages != null
|
|
521
|
+
? Math.min(lower, computedTotalPages)
|
|
522
|
+
: lower;
|
|
523
|
+
};
|
|
524
|
+
|
|
472
525
|
const handlePrevious = () => {
|
|
473
526
|
if (hasPrevious) {
|
|
474
|
-
handlePageChange(optimisticPage -
|
|
527
|
+
handlePageChange(clampPage(optimisticPage - step));
|
|
475
528
|
}
|
|
476
529
|
};
|
|
477
530
|
|
|
478
531
|
const handleNext = () => {
|
|
479
532
|
if (hasNext) {
|
|
480
|
-
handlePageChange(optimisticPage +
|
|
533
|
+
handlePageChange(clampPage(optimisticPage + step));
|
|
534
|
+
}
|
|
535
|
+
};
|
|
536
|
+
|
|
537
|
+
const handleFirst = () => {
|
|
538
|
+
if (hasPrevious) {
|
|
539
|
+
handlePageChange(1);
|
|
540
|
+
}
|
|
541
|
+
};
|
|
542
|
+
|
|
543
|
+
const handleLast = () => {
|
|
544
|
+
if (hasNext && computedTotalPages != null) {
|
|
545
|
+
handlePageChange(computedTotalPages);
|
|
481
546
|
}
|
|
482
547
|
};
|
|
483
548
|
|
|
@@ -488,6 +553,19 @@ export function Pagination({
|
|
|
488
553
|
handlePageChange(1);
|
|
489
554
|
};
|
|
490
555
|
|
|
556
|
+
// The value currently shown in the input box is the committed page number.
|
|
557
|
+
const inputCommittedValue = optimisticPage;
|
|
558
|
+
|
|
559
|
+
// NumberInput owns the typing/pending state and clamps to [min, max] with
|
|
560
|
+
// integer-only semantics, so it only ever hands back a valid page here.
|
|
561
|
+
// Navigation is page-based via onChange.
|
|
562
|
+
const handleInputCommit = (nextPage: number) => {
|
|
563
|
+
if (isDisabled || nextPage === optimisticPage) {
|
|
564
|
+
return;
|
|
565
|
+
}
|
|
566
|
+
handlePageChange(nextPage);
|
|
567
|
+
};
|
|
568
|
+
|
|
491
569
|
// Item range for count display
|
|
492
570
|
const rangeStart = (optimisticPage - 1) * pageSize + 1;
|
|
493
571
|
const rangeEnd =
|
|
@@ -498,6 +576,11 @@ export function Pagination({
|
|
|
498
576
|
const buttonSize = size === 'sm' ? 'sm' : 'md';
|
|
499
577
|
const isSm = size === 'sm';
|
|
500
578
|
|
|
579
|
+
// First/last buttons only exist in the input variant, and only when the page
|
|
580
|
+
// count is known (they'd have no target otherwise).
|
|
581
|
+
const showFirstLast =
|
|
582
|
+
hasFirstLast && variant === 'input' && computedTotalPages != null;
|
|
583
|
+
|
|
501
584
|
const renderIndicator = () => {
|
|
502
585
|
switch (variant) {
|
|
503
586
|
case 'pages': {
|
|
@@ -633,6 +716,61 @@ export function Pagination({
|
|
|
633
716
|
);
|
|
634
717
|
}
|
|
635
718
|
|
|
719
|
+
case 'input': {
|
|
720
|
+
// The editable box needs a known page count to clamp against; in
|
|
721
|
+
// cursor/hasMore mode (no total) there is no valid range, so the box is
|
|
722
|
+
// disabled rather than accepting entries it can't resolve — matching the
|
|
723
|
+
// convention that a typeable page box requires a known total.
|
|
724
|
+
const isInputDisabled = isDisabled || computedTotalPages == null;
|
|
725
|
+
|
|
726
|
+
const inputNode = (
|
|
727
|
+
<NumberInput
|
|
728
|
+
label={goToPageLabel}
|
|
729
|
+
isLabelHidden
|
|
730
|
+
value={inputCommittedValue}
|
|
731
|
+
onChange={handleInputCommit}
|
|
732
|
+
min={1}
|
|
733
|
+
max={computedTotalPages ?? undefined}
|
|
734
|
+
isIntegerOnly
|
|
735
|
+
size={size}
|
|
736
|
+
width={
|
|
737
|
+
isSm
|
|
738
|
+
? sizeVars['--size-element-sm']
|
|
739
|
+
: sizeVars['--size-element-md']
|
|
740
|
+
}
|
|
741
|
+
isDisabled={isInputDisabled}
|
|
742
|
+
data-testid={testId != null ? `${testId}-input` : undefined}
|
|
743
|
+
/>
|
|
744
|
+
);
|
|
745
|
+
|
|
746
|
+
// Label wording: "Page [ n ] / N". The leading noun comes from
|
|
747
|
+
// `pageLabel`; the trailing "/ N" total is omitted when unknown.
|
|
748
|
+
return (
|
|
749
|
+
<span {...stylex.props(styles.inputGroup)}>
|
|
750
|
+
<span
|
|
751
|
+
aria-hidden="true"
|
|
752
|
+
{...mergeProps(
|
|
753
|
+
themeProps('pagination-input-label', {size}),
|
|
754
|
+
stylex.props(styles.inputLabel, isSm && styles.inputLabelSm),
|
|
755
|
+
)}>
|
|
756
|
+
{inputLabelText}
|
|
757
|
+
</span>
|
|
758
|
+
{inputNode}
|
|
759
|
+
{computedTotalPages != null && (
|
|
760
|
+
<span
|
|
761
|
+
{...mergeProps(
|
|
762
|
+
themeProps('pagination-input-total', {size}),
|
|
763
|
+
stylex.props(styles.inputTotal, isSm && styles.inputTotalSm),
|
|
764
|
+
)}>
|
|
765
|
+
{t('@astryx.pagination.ofTotalPages', {
|
|
766
|
+
total: computedTotalPages,
|
|
767
|
+
})}
|
|
768
|
+
</span>
|
|
769
|
+
)}
|
|
770
|
+
</span>
|
|
771
|
+
);
|
|
772
|
+
}
|
|
773
|
+
|
|
636
774
|
case 'none':
|
|
637
775
|
default:
|
|
638
776
|
return null;
|
|
@@ -667,11 +805,33 @@ export function Pagination({
|
|
|
667
805
|
</div>
|
|
668
806
|
)}
|
|
669
807
|
<div {...stylex.props(styles.controls)}>
|
|
808
|
+
{showFirstLast && (
|
|
809
|
+
<Button
|
|
810
|
+
label={firstLabel}
|
|
811
|
+
tooltip={isDisabled || !hasPrevious ? undefined : firstLabel}
|
|
812
|
+
variant="ghost"
|
|
813
|
+
size={buttonSize}
|
|
814
|
+
icon={
|
|
815
|
+
<span {...stylex.props(rtlStyles.mirror)}>
|
|
816
|
+
<Icon icon="chevronsLeft" size={isSm ? 'sm' : 'md'} />
|
|
817
|
+
</span>
|
|
818
|
+
}
|
|
819
|
+
onClick={handleFirst}
|
|
820
|
+
isDisabled={isDisabled || !hasPrevious}
|
|
821
|
+
isIconOnly
|
|
822
|
+
/>
|
|
823
|
+
)}
|
|
824
|
+
|
|
670
825
|
<Button
|
|
671
826
|
label={previousLabel}
|
|
827
|
+
tooltip={isDisabled || !hasPrevious ? undefined : previousLabel}
|
|
672
828
|
variant="ghost"
|
|
673
829
|
size={buttonSize}
|
|
674
|
-
icon={
|
|
830
|
+
icon={
|
|
831
|
+
<span {...stylex.props(rtlStyles.mirror)}>
|
|
832
|
+
<Icon icon="chevronLeft" size={isSm ? 'sm' : 'md'} />
|
|
833
|
+
</span>
|
|
834
|
+
}
|
|
675
835
|
onClick={handlePrevious}
|
|
676
836
|
isDisabled={isDisabled || !hasPrevious}
|
|
677
837
|
isIconOnly
|
|
@@ -681,13 +841,35 @@ export function Pagination({
|
|
|
681
841
|
|
|
682
842
|
<Button
|
|
683
843
|
label={nextLabel}
|
|
844
|
+
tooltip={isDisabled || !hasNext ? undefined : nextLabel}
|
|
684
845
|
variant="ghost"
|
|
685
846
|
size={buttonSize}
|
|
686
|
-
icon={
|
|
847
|
+
icon={
|
|
848
|
+
<span {...stylex.props(rtlStyles.mirror)}>
|
|
849
|
+
<Icon icon="chevronRight" size={isSm ? 'sm' : 'md'} />
|
|
850
|
+
</span>
|
|
851
|
+
}
|
|
687
852
|
onClick={handleNext}
|
|
688
853
|
isDisabled={isDisabled || !hasNext}
|
|
689
854
|
isIconOnly
|
|
690
855
|
/>
|
|
856
|
+
|
|
857
|
+
{showFirstLast && (
|
|
858
|
+
<Button
|
|
859
|
+
label={lastLabel}
|
|
860
|
+
tooltip={isDisabled || !hasNext ? undefined : lastLabel}
|
|
861
|
+
variant="ghost"
|
|
862
|
+
size={buttonSize}
|
|
863
|
+
icon={
|
|
864
|
+
<span {...stylex.props(rtlStyles.mirror)}>
|
|
865
|
+
<Icon icon="chevronsRight" size={isSm ? 'sm' : 'md'} />
|
|
866
|
+
</span>
|
|
867
|
+
}
|
|
868
|
+
onClick={handleLast}
|
|
869
|
+
isDisabled={isDisabled || !hasNext}
|
|
870
|
+
isIconOnly
|
|
871
|
+
/>
|
|
872
|
+
)}
|
|
691
873
|
</div>
|
|
692
874
|
</nav>
|
|
693
875
|
);
|
package/src/Pagination/index.ts
CHANGED
|
@@ -9,10 +9,31 @@
|
|
|
9
9
|
* @position Barrel export; consumed by packages/core/src/index.ts
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
|
+
/**
|
|
13
|
+
* Extensible variant map for Pagination.
|
|
14
|
+
*
|
|
15
|
+
* Theme packages can add custom variants via TypeScript module augmentation:
|
|
16
|
+
* @example
|
|
17
|
+
* ```
|
|
18
|
+
* declare module '@astryxdesign/core/Pagination' {
|
|
19
|
+
* interface PaginationVariantMap {
|
|
20
|
+
* 'progress': true;
|
|
21
|
+
* }
|
|
22
|
+
* }
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export interface PaginationVariantMap {
|
|
26
|
+
pages: true;
|
|
27
|
+
count: true;
|
|
28
|
+
compact: true;
|
|
29
|
+
dots: true;
|
|
30
|
+
input: true;
|
|
31
|
+
none: true;
|
|
32
|
+
}
|
|
33
|
+
|
|
12
34
|
export {Pagination, generatePageRange} from './Pagination';
|
|
13
35
|
export type {
|
|
14
36
|
PaginationProps,
|
|
15
37
|
PaginationVariant,
|
|
16
|
-
PaginationVariantMap,
|
|
17
38
|
PaginationSize,
|
|
18
39
|
} from './Pagination';
|
|
@@ -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: 'Popover',
|
|
@@ -72,6 +72,20 @@ export const docs = {
|
|
|
72
72
|
type: 'string',
|
|
73
73
|
description: 'Accessible label for the popover dialog.',
|
|
74
74
|
},
|
|
75
|
+
{
|
|
76
|
+
name: 'role',
|
|
77
|
+
type: "'dialog' | 'none'",
|
|
78
|
+
description:
|
|
79
|
+
'ARIA role for the popover wrapper. Use dialog for dialog-style popovers; use none when content provides its own role, like menu or listbox.',
|
|
80
|
+
default: "'dialog'",
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
name: 'isModal',
|
|
84
|
+
type: 'boolean',
|
|
85
|
+
description:
|
|
86
|
+
'Whether a dialog-style popover sets aria-modal. Only applies when role is dialog.',
|
|
87
|
+
default: 'true',
|
|
88
|
+
},
|
|
75
89
|
{
|
|
76
90
|
name: 'hasCloseButton',
|
|
77
91
|
type: 'boolean',
|
|
@@ -145,7 +159,7 @@ export const docs = {
|
|
|
145
159
|
},
|
|
146
160
|
};
|
|
147
161
|
|
|
148
|
-
/** @type {import('
|
|
162
|
+
/** @type {import('@astryxdesign/cli/authoring').ComponentDoc} */
|
|
149
163
|
export const docsZh = {
|
|
150
164
|
name: 'Popover',
|
|
151
165
|
displayName: 'Popover',
|
|
@@ -213,6 +227,20 @@ export const docsZh = {
|
|
|
213
227
|
type: 'string',
|
|
214
228
|
description: '弹出框对话框的无障碍标签。',
|
|
215
229
|
},
|
|
230
|
+
{
|
|
231
|
+
name: 'role',
|
|
232
|
+
type: "'dialog' | 'none'",
|
|
233
|
+
description:
|
|
234
|
+
'弹出框包装器的 ARIA 角色。对话框式弹出框使用 dialog;当内容提供自己的角色(如 menu 或 listbox)时使用 none。',
|
|
235
|
+
default: "'dialog'",
|
|
236
|
+
},
|
|
237
|
+
{
|
|
238
|
+
name: 'isModal',
|
|
239
|
+
type: 'boolean',
|
|
240
|
+
description:
|
|
241
|
+
'对话框式弹出框是否设置 aria-modal。仅在 role 为 dialog 时适用。',
|
|
242
|
+
default: 'true',
|
|
243
|
+
},
|
|
216
244
|
{
|
|
217
245
|
name: 'hasCloseButton',
|
|
218
246
|
type: 'boolean',
|
|
@@ -275,7 +303,7 @@ export const docsZh = {
|
|
|
275
303
|
},
|
|
276
304
|
};
|
|
277
305
|
|
|
278
|
-
/** @type {import('
|
|
306
|
+
/** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
|
|
279
307
|
export const docsDense = {
|
|
280
308
|
description:
|
|
281
309
|
'Click-triggered popover displaying interactive content anchored to trigger element; implements button+dialog ARIA pattern.',
|
|
@@ -107,6 +107,47 @@ describe('Popover', () => {
|
|
|
107
107
|
expect(dialog).toHaveAttribute('aria-label', 'Greeting');
|
|
108
108
|
});
|
|
109
109
|
|
|
110
|
+
it('can render a neutral wrapper when content owns its role', () => {
|
|
111
|
+
render(
|
|
112
|
+
<Popover
|
|
113
|
+
role="none"
|
|
114
|
+
content={
|
|
115
|
+
<div role="menu" aria-label="Actions">
|
|
116
|
+
Menu content
|
|
117
|
+
</div>
|
|
118
|
+
}
|
|
119
|
+
label="Actions">
|
|
120
|
+
<button type="button">Open</button>
|
|
121
|
+
</Popover>,
|
|
122
|
+
);
|
|
123
|
+
|
|
124
|
+
const trigger = screen.getByRole('button', {name: 'Open'});
|
|
125
|
+
expect(trigger).toHaveAttribute('aria-haspopup', 'true');
|
|
126
|
+
expect(
|
|
127
|
+
screen.queryByRole('dialog', {hidden: true}),
|
|
128
|
+
).not.toBeInTheDocument();
|
|
129
|
+
expect(screen.getByRole('menu', {hidden: true})).toHaveAttribute(
|
|
130
|
+
'aria-label',
|
|
131
|
+
'Actions',
|
|
132
|
+
);
|
|
133
|
+
});
|
|
134
|
+
|
|
135
|
+
it('can render a non-modal dialog wrapper', () => {
|
|
136
|
+
render(
|
|
137
|
+
<Popover
|
|
138
|
+
role="dialog"
|
|
139
|
+
isModal={false}
|
|
140
|
+
content={<span>Hello</span>}
|
|
141
|
+
label="Greeting">
|
|
142
|
+
<button type="button">Open</button>
|
|
143
|
+
</Popover>,
|
|
144
|
+
);
|
|
145
|
+
|
|
146
|
+
const dialog = screen.getByRole('dialog', {hidden: true});
|
|
147
|
+
expect(dialog).toBeInTheDocument();
|
|
148
|
+
expect(dialog).not.toHaveAttribute('aria-modal');
|
|
149
|
+
});
|
|
150
|
+
|
|
110
151
|
it('calls onOpenChange when opened', () => {
|
|
111
152
|
const onOpenChange = vi.fn();
|
|
112
153
|
render(
|
package/src/Popover/Popover.tsx
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* - /packages/core/src/Popover/Popover.test.tsx
|
|
15
15
|
* - /packages/core/src/Popover/index.ts
|
|
16
16
|
* - /apps/storybook/stories/Popover.stories.tsx
|
|
17
|
-
* - /packages/cli/templates/blocks/components/Popover/ (showcase blocks)
|
|
17
|
+
* - /packages/cli/assets/templates/blocks/components/Popover/ (showcase blocks)
|
|
18
18
|
*/
|
|
19
19
|
|
|
20
20
|
import React, {
|
|
@@ -163,10 +163,29 @@ export interface PopoverProps extends Pick<
|
|
|
163
163
|
|
|
164
164
|
/**
|
|
165
165
|
* Accessible label for the popover dialog.
|
|
166
|
-
* Recommended for accessibility
|
|
166
|
+
* Recommended for accessibility when `role` is `'dialog'`.
|
|
167
167
|
*/
|
|
168
168
|
label?: string;
|
|
169
169
|
|
|
170
|
+
/**
|
|
171
|
+
* ARIA role stamped on the popover content wrapper.
|
|
172
|
+
*
|
|
173
|
+
* Use `'dialog'` for dialog-style popovers. Use `'none'` when the popup
|
|
174
|
+
* content owns its own role, such as a child `role="menu"` or
|
|
175
|
+
* `role="listbox"`.
|
|
176
|
+
*
|
|
177
|
+
* @default 'dialog'
|
|
178
|
+
*/
|
|
179
|
+
role?: 'dialog' | 'none';
|
|
180
|
+
|
|
181
|
+
/**
|
|
182
|
+
* Whether a dialog-style popover is modal (`aria-modal`). Only applies when
|
|
183
|
+
* `role` is `'dialog'`.
|
|
184
|
+
*
|
|
185
|
+
* @default true
|
|
186
|
+
*/
|
|
187
|
+
isModal?: boolean;
|
|
188
|
+
|
|
170
189
|
/**
|
|
171
190
|
* Whether to include a hidden close button for accessibility.
|
|
172
191
|
* The button appears when keyboard users tab past the last element.
|
|
@@ -293,6 +312,8 @@ export function Popover({
|
|
|
293
312
|
isEnabled = true,
|
|
294
313
|
width,
|
|
295
314
|
label,
|
|
315
|
+
role = 'dialog',
|
|
316
|
+
isModal,
|
|
296
317
|
hasCloseButton,
|
|
297
318
|
closeButtonLabel,
|
|
298
319
|
hasAutoFocus,
|
|
@@ -320,6 +341,8 @@ export function Popover({
|
|
|
320
341
|
|
|
321
342
|
const popover = usePopover({
|
|
322
343
|
dialogLabel: label,
|
|
344
|
+
role,
|
|
345
|
+
isModal,
|
|
323
346
|
hasLightDismiss,
|
|
324
347
|
hasEscapeDismiss,
|
|
325
348
|
hasCloseButton,
|
|
@@ -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: 'usePopover',
|
|
6
6
|
displayName: 'usePopover',
|
|
@@ -46,7 +46,7 @@ export const docs = {
|
|
|
46
46
|
category: 'interaction',
|
|
47
47
|
};
|
|
48
48
|
|
|
49
|
-
/** @type {import('
|
|
49
|
+
/** @type {import('@astryxdesign/cli/authoring').HookTranslationDoc} */
|
|
50
50
|
export const docsDense = {
|
|
51
51
|
description: 'Headless click-triggered popovers w/ focus trap, auto-focus, light dismiss, Escape, optional hidden close button. Use for custom interactive floating content needing keyboard nav.',
|
|
52
52
|
paramDescriptions: {
|
|
@@ -27,6 +27,7 @@ import {
|
|
|
27
27
|
shadowVars,
|
|
28
28
|
} from '../theme/tokens.stylex';
|
|
29
29
|
import {Button} from '../Button';
|
|
30
|
+
import {rtlStyles} from '../utils';
|
|
30
31
|
import {useTranslator} from '../i18n';
|
|
31
32
|
import {useDevWarning} from '../hooks/useDevWarning';
|
|
32
33
|
|
|
@@ -43,12 +44,13 @@ const styles = stylex.create({
|
|
|
43
44
|
contentWrapper: {
|
|
44
45
|
position: 'relative',
|
|
45
46
|
},
|
|
46
|
-
// Hidden close button wrapper - sr-only until focused, then positioned below
|
|
47
|
+
// Hidden close button wrapper - sr-only until focused, then positioned below
|
|
48
|
+
// popover. Inline-axis centering (+ the translateY(100%) that drops it below
|
|
49
|
+
// the surface) comes from rtlStyles.centerInline('100%') at the call site —
|
|
50
|
+
// it centers correctly in both LTR and RTL.
|
|
47
51
|
closeButtonWrapper: {
|
|
48
52
|
position: 'absolute',
|
|
49
53
|
bottom: 0,
|
|
50
|
-
left: '50%',
|
|
51
|
-
transform: 'translate(-50%, 100%)',
|
|
52
54
|
zIndex: 1,
|
|
53
55
|
// sr-only by default
|
|
54
56
|
width: {
|
|
@@ -417,7 +419,11 @@ export function usePopover(options: UsePopoverOptions = {}): UsePopoverReturn {
|
|
|
417
419
|
)}>
|
|
418
420
|
{children}
|
|
419
421
|
{hasCloseButton && (
|
|
420
|
-
<div
|
|
422
|
+
<div
|
|
423
|
+
{...stylex.props(
|
|
424
|
+
styles.closeButtonWrapper,
|
|
425
|
+
rtlStyles.centerInline('100%'),
|
|
426
|
+
)}>
|
|
421
427
|
<Button
|
|
422
428
|
variant="secondary"
|
|
423
429
|
label={closeButtonLabel}
|