@astryxdesign/core 0.2.0 → 0.3.0-canary.5f9896c
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 +56 -22
- package/dist/ProgressBar/ProgressBar.d.ts.map +1 -1
- package/dist/ProgressBar/ProgressBar.js +169 -22
- package/dist/ProgressBar/ProgressBarMarkTooltip.d.ts +27 -0
- package/dist/ProgressBar/ProgressBarMarkTooltip.d.ts.map +1 -0
- package/dist/ProgressBar/ProgressBarMarkTooltip.js +35 -0
- package/dist/ProgressBar/index.d.ts +21 -1
- package/dist/ProgressBar/index.d.ts.map +1 -1
- package/dist/ProgressBar/index.js +14 -0
- package/dist/RadioList/RadioList.d.ts +1 -1
- package/dist/RadioList/RadioList.js +1 -1
- package/dist/RadioList/RadioListItem.d.ts +1 -1
- package/dist/RadioList/RadioListItem.d.ts.map +1 -1
- package/dist/RadioList/RadioListItem.js +2 -2
- package/dist/Resizable/ResizeHandle.d.ts.map +1 -1
- package/dist/Resizable/ResizeHandle.js +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/Stack/stack.stylex.d.ts +3 -3
- package/dist/StatusDot/StatusDot.d.ts +1 -20
- package/dist/StatusDot/StatusDot.d.ts.map +1 -1
- package/dist/StatusDot/StatusDot.js +2 -17
- package/dist/StatusDot/index.d.ts +21 -1
- package/dist/StatusDot/index.d.ts.map +1 -1
- package/dist/StatusDot/index.js +14 -0
- package/dist/Switch/Switch.d.ts +2 -6
- package/dist/Switch/Switch.d.ts.map +1 -1
- package/dist/Switch/Switch.js +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 +115 -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 +32 -3
- package/dist/theme/expandColorScale.d.ts.map +1 -1
- package/dist/theme/expandColorScale.js +102 -13
- 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 +9 -13
- package/src/AlertDialog/AlertDialog.doc.mjs +3 -3
- package/src/AlertDialog/AlertDialog.tsx +1 -1
- package/src/AlertDialog/useImperativeAlertDialog.doc.mjs +1 -1
- package/src/AppShell/AppShell.doc.mjs +3 -3
- package/src/AppShell/AppShell.test.tsx +55 -0
- package/src/AppShell/AppShell.tsx +27 -22
- package/src/AppShell/index.ts +20 -1
- package/src/AppShell/useAppShellMobile.doc.mjs +2 -2
- package/src/AspectRatio/AspectRatio.doc.mjs +3 -3
- package/src/AspectRatio/AspectRatio.tsx +1 -1
- package/src/Avatar/Avatar.doc.mjs +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 +24 -3
- package/src/ProgressBar/ProgressBar.test.tsx +523 -2
- package/src/ProgressBar/ProgressBar.tsx +250 -25
- package/src/ProgressBar/ProgressBarMarkTooltip.tsx +43 -0
- package/src/ProgressBar/index.ts +22 -1
- package/src/RadioList/RadioList.doc.mjs +3 -3
- package/src/RadioList/RadioList.test.tsx +26 -4
- package/src/RadioList/RadioList.tsx +1 -1
- package/src/RadioList/RadioListItem.doc.mjs +1 -1
- package/src/RadioList/RadioListItem.tsx +9 -2
- package/src/Resizable/Resizable.doc.mjs +2 -2
- package/src/Resizable/ResizeHandle.test.tsx +52 -3
- package/src/Resizable/ResizeHandle.tsx +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 +15 -6
- package/src/StatusDot/StatusDot.tsx +2 -22
- package/src/StatusDot/index.ts +22 -5
- package/src/Switch/Switch.doc.mjs +5 -5
- package/src/Switch/Switch.test.tsx +71 -25
- package/src/Switch/Switch.tsx +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 +401 -1
- package/src/theme/expandColorScale.ts +143 -19
- 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
|
@@ -11,12 +11,13 @@
|
|
|
11
11
|
* SYNC: When modified, update these files to stay in sync:
|
|
12
12
|
* - /packages/core/src/ProgressBar/ProgressBar.doc.mjs (props table, features, implementation notes)
|
|
13
13
|
* - /packages/core/src/ProgressBar/ProgressBar.test.tsx (tests for new/changed behavior)
|
|
14
|
+
* - /packages/core/src/ProgressBar/ProgressBarMarkTooltip.tsx (the lazy Tooltip wrapper for labeled marks)
|
|
14
15
|
* - /packages/core/src/ProgressBar/index.ts (exports if types change)
|
|
15
16
|
* - /apps/storybook/stories/ProgressBar.stories.tsx (storybook stories)
|
|
16
|
-
* - /packages/cli/templates/blocks/components/ProgressBar/ (showcase blocks)
|
|
17
|
+
* - /packages/cli/assets/templates/blocks/components/ProgressBar/ (showcase blocks)
|
|
17
18
|
*/
|
|
18
19
|
|
|
19
|
-
import {useId} from 'react';
|
|
20
|
+
import {lazy, Suspense, useId} from 'react';
|
|
20
21
|
import * as stylex from '@stylexjs/stylex';
|
|
21
22
|
|
|
22
23
|
import {
|
|
@@ -32,27 +33,15 @@ import {mergeProps} from '../utils';
|
|
|
32
33
|
import type {BaseProps} from '../BaseProps';
|
|
33
34
|
import {themeProps} from '../utils/themeProps';
|
|
34
35
|
import {VisuallyHidden} from '../VisuallyHidden';
|
|
36
|
+
import type {ProgressBarVariantMap} from './index';
|
|
35
37
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
* interface ProgressBarVariantMap {
|
|
44
|
-
* 'brand': true;
|
|
45
|
-
* }
|
|
46
|
-
* }
|
|
47
|
-
* ```
|
|
48
|
-
*/
|
|
49
|
-
export interface ProgressBarVariantMap {
|
|
50
|
-
accent: true;
|
|
51
|
-
success: true;
|
|
52
|
-
warning: true;
|
|
53
|
-
neutral: true;
|
|
54
|
-
error: true;
|
|
55
|
-
}
|
|
38
|
+
// Every mark is wrapped in a Tooltip (marks always carry a label), so load it
|
|
39
|
+
// lazily: a ProgressBar with no marks never bundles the Tooltip chunk. While it
|
|
40
|
+
// loads, the Suspense fallback shows the bare mark, so nothing disappears; the
|
|
41
|
+
// tooltip simply attaches once the chunk is ready.
|
|
42
|
+
const LazyProgressBarMarkTooltip = lazy(
|
|
43
|
+
async () => import('./ProgressBarMarkTooltip'),
|
|
44
|
+
);
|
|
56
45
|
|
|
57
46
|
/**
|
|
58
47
|
* Progress bar variant type — maps to semantic color tokens.
|
|
@@ -60,6 +49,29 @@ export interface ProgressBarVariantMap {
|
|
|
60
49
|
*/
|
|
61
50
|
export type ProgressBarVariant = keyof ProgressBarVariantMap;
|
|
62
51
|
|
|
52
|
+
/**
|
|
53
|
+
* A fixed target mark drawn on the progress track.
|
|
54
|
+
*
|
|
55
|
+
* Positioned by `value` in the same `0..max` scale as the bar's `value` prop —
|
|
56
|
+
* mirroring the object shape of Slider's `marks` so the two APIs stay
|
|
57
|
+
* consistent.
|
|
58
|
+
*/
|
|
59
|
+
export interface ProgressBarMark {
|
|
60
|
+
/**
|
|
61
|
+
* Position of the mark in the same `0..max` scale as `value`. Values
|
|
62
|
+
* outside the range are clamped to the track edges.
|
|
63
|
+
*/
|
|
64
|
+
value: number;
|
|
65
|
+
/**
|
|
66
|
+
* Names the mark. A mark stands for something meaningful on the track — a
|
|
67
|
+
* goal, a threshold, a quarter target — so a label is required: it is the
|
|
68
|
+
* mark's accessible name and the text revealed in a `Tooltip` on hover and
|
|
69
|
+
* keyboard focus. Can be the value itself (e.g. `'70%'`) or something richer
|
|
70
|
+
* (e.g. `'Q1 target: 50%'`).
|
|
71
|
+
*/
|
|
72
|
+
label: string;
|
|
73
|
+
}
|
|
74
|
+
|
|
63
75
|
export interface ProgressBarProps extends BaseProps<HTMLDivElement> {
|
|
64
76
|
/** Ref forwarded to the root element */
|
|
65
77
|
ref?: React.Ref<HTMLDivElement>;
|
|
@@ -107,6 +119,18 @@ export interface ProgressBarProps extends BaseProps<HTMLDivElement> {
|
|
|
107
119
|
* @default false
|
|
108
120
|
*/
|
|
109
121
|
isIndeterminate?: boolean;
|
|
122
|
+
/**
|
|
123
|
+
* Target marks drawn on the track at fixed points in the same `0..max`
|
|
124
|
+
* scale as `value` — e.g. a goal line. Marks stay visible whether progress
|
|
125
|
+
* is below or past them, and take their color from what they sit on: a mark
|
|
126
|
+
* inside the filled area uses the fill variant's on-color (on-accent,
|
|
127
|
+
* on-warning, on-error, …), while a mark still out on the bare track uses
|
|
128
|
+
* `--color-text-primary` (`--color-text-secondary` on a disabled bar, which
|
|
129
|
+
* dims everything it draws). Each mark's required `label` names it for
|
|
130
|
+
* assistive tech and is revealed via a `Tooltip` on hover/focus. Ignored when
|
|
131
|
+
* `isIndeterminate` is true.
|
|
132
|
+
*/
|
|
133
|
+
marks?: ReadonlyArray<ProgressBarMark>;
|
|
110
134
|
/**
|
|
111
135
|
* When true, the progress bar is visually disabled — the fill bar and
|
|
112
136
|
* text use disabled colors. Use for canceled or inactive operations.
|
|
@@ -190,11 +214,27 @@ const styles = stylex.create({
|
|
|
190
214
|
whiteSpace: 'nowrap',
|
|
191
215
|
borderWidth: 0,
|
|
192
216
|
},
|
|
217
|
+
// The `role="progressbar"` element. In determinate mode it does NOT clip its
|
|
218
|
+
// content (`overflow` stays visible) so a themed mark taller than the bar can
|
|
219
|
+
// overhang it; the determinate fill rounds its own corners via `border-radius`
|
|
220
|
+
// (see `fill`) and is always inside the track box, so dropping the clip does
|
|
221
|
+
// not change its appearance at any progress. Indeterminate mode re-adds the
|
|
222
|
+
// clip via `trackClipped` (see below) — its sliding fill travels outside the
|
|
223
|
+
// track and must be clipped, and marks are ignored while indeterminate, so
|
|
224
|
+
// there is nothing to overhang.
|
|
193
225
|
track: {
|
|
226
|
+
position: 'relative',
|
|
194
227
|
width: '100%',
|
|
195
228
|
height: '8px',
|
|
196
229
|
backgroundColor: colorVars['--color-background-muted'],
|
|
197
230
|
borderRadius: radiusVars['--radius-full'],
|
|
231
|
+
},
|
|
232
|
+
// Indeterminate-only clip. The indeterminate fill slides from translateX
|
|
233
|
+
// -100% to 250%, so it deliberately overshoots the track on both sides and
|
|
234
|
+
// relies on the track clipping it to the visible window. Applied only when
|
|
235
|
+
// `isIndeterminate` (marks are suppressed then, so nothing needs to overhang)
|
|
236
|
+
// so it never re-clips a themed tall mark in determinate mode.
|
|
237
|
+
trackClipped: {
|
|
198
238
|
overflow: 'hidden',
|
|
199
239
|
},
|
|
200
240
|
fill: {
|
|
@@ -219,6 +259,37 @@ const styles = stylex.create({
|
|
|
219
259
|
animationTimingFunction: 'ease-in-out',
|
|
220
260
|
animationIterationCount: 'infinite',
|
|
221
261
|
},
|
|
262
|
+
// A mark is a vertical tick centered on the track, a child of the
|
|
263
|
+
// `role="progressbar"` element (unchanged DOM). The track no longer clips, so
|
|
264
|
+
// its height — 8px by default, directly overridable via the `progressbar-mark`
|
|
265
|
+
// theme target — may exceed the bar and overhang; the centering translate
|
|
266
|
+
// keeps any overhang symmetric. Positioned horizontally via `insetInlineStart`;
|
|
267
|
+
// the translate mirrors under RTL.
|
|
268
|
+
//
|
|
269
|
+
// The tick's color is not set here: it depends on what the mark sits on, so
|
|
270
|
+
// it comes from `markOnFillStyles[variant]` (mark inside the filled area) or
|
|
271
|
+
// `markOnTrackStyles.track` (mark out on the bare track). Both remain
|
|
272
|
+
// directly overridable via the `progressbar-mark` theme target — a theme can
|
|
273
|
+
// set `backgroundColor`, `width`, and `height` (e.g. a taller "flag" tick
|
|
274
|
+
// that overhangs the bar) with `defineTheme`; no dedicated CSS vars needed.
|
|
275
|
+
mark: {
|
|
276
|
+
position: 'absolute',
|
|
277
|
+
top: '50%',
|
|
278
|
+
width: 2,
|
|
279
|
+
height: 8,
|
|
280
|
+
outline: {
|
|
281
|
+
default: 'none',
|
|
282
|
+
':focus-visible': `2px solid ${colorVars['--color-accent']}`,
|
|
283
|
+
},
|
|
284
|
+
outlineOffset: {
|
|
285
|
+
default: '0',
|
|
286
|
+
':focus-visible': '2px',
|
|
287
|
+
},
|
|
288
|
+
transform: {
|
|
289
|
+
default: 'translate(-50%, -50%)',
|
|
290
|
+
':is([dir="rtl"] *)': 'translate(50%, -50%)',
|
|
291
|
+
},
|
|
292
|
+
},
|
|
222
293
|
});
|
|
223
294
|
|
|
224
295
|
const variantStyles = stylex.create({
|
|
@@ -242,6 +313,64 @@ const variantStyles = stylex.create({
|
|
|
242
313
|
},
|
|
243
314
|
});
|
|
244
315
|
|
|
316
|
+
// A mark sitting inside the filled area is drawn *on* the bar, so it takes the
|
|
317
|
+
// on-color that pairs with the fill's own variant color — the same pairing
|
|
318
|
+
// Badge uses for solid semantic backgrounds.
|
|
319
|
+
//
|
|
320
|
+
// `neutral` and `disabled` both fill with the muted `--color-text-disabled`
|
|
321
|
+
// gray, which carries no semantic weight and has no dedicated on-token, so
|
|
322
|
+
// they fall back to a plain foreground. They pick different ones: a `neutral`
|
|
323
|
+
// bar is live, so its mark keeps the full-contrast `--color-text-primary` a
|
|
324
|
+
// mark uses out on the track; a `disabled` bar is deliberately low-emphasis —
|
|
325
|
+
// its own label and value text drop to muted colors — so its mark steps down
|
|
326
|
+
// to `--color-text-secondary` rather than becoming the loudest thing on a
|
|
327
|
+
// grayed-out component.
|
|
328
|
+
const markOnFillStyles = stylex.create({
|
|
329
|
+
accent: {
|
|
330
|
+
backgroundColor: colorVars['--color-on-accent'],
|
|
331
|
+
},
|
|
332
|
+
success: {
|
|
333
|
+
backgroundColor: colorVars['--color-on-success'],
|
|
334
|
+
},
|
|
335
|
+
warning: {
|
|
336
|
+
backgroundColor: colorVars['--color-on-warning'],
|
|
337
|
+
},
|
|
338
|
+
error: {
|
|
339
|
+
backgroundColor: colorVars['--color-on-error'],
|
|
340
|
+
},
|
|
341
|
+
neutral: {
|
|
342
|
+
backgroundColor: colorVars['--color-text-primary'],
|
|
343
|
+
},
|
|
344
|
+
disabled: {
|
|
345
|
+
backgroundColor: colorVars['--color-text-secondary'],
|
|
346
|
+
},
|
|
347
|
+
});
|
|
348
|
+
|
|
349
|
+
// A mark out on the bare track is a foreground tick over the muted track
|
|
350
|
+
// background, so it takes `--color-text-primary`.
|
|
351
|
+
//
|
|
352
|
+
// The obvious candidate was `--color-border-emphasized` — the emphasized
|
|
353
|
+
// divider color `Divider`'s `strong` variant and `Slider`'s marks use — but
|
|
354
|
+
// divider tokens sit a step or two from the track on the same neutral ramp, so
|
|
355
|
+
// a mark drawn in one is at or near invisible: measured against each shipped
|
|
356
|
+
// theme's track it lands between 1.00:1 (theme-neutral, both modes, where the
|
|
357
|
+
// track is aliased to that very token) and 2.9:1, under the 3:1 WCAG 1.4.11
|
|
358
|
+
// non-text floor in 7 of 8 themes. `--color-text-secondary` still misses in
|
|
359
|
+
// two. `--color-text-primary` is the one foreground guaranteed to read against
|
|
360
|
+
// every surface a theme defines: 5.8:1 to 15.7:1 on the track across all
|
|
361
|
+
// themes and both modes.
|
|
362
|
+
const markOnTrackStyles = stylex.create({
|
|
363
|
+
track: {
|
|
364
|
+
backgroundColor: colorVars['--color-text-primary'],
|
|
365
|
+
},
|
|
366
|
+
// A disabled bar dims everything it draws, so its track marks step down to
|
|
367
|
+
// the secondary foreground for the same reason the disabled on-fill mark
|
|
368
|
+
// does — matching the muted label and value text.
|
|
369
|
+
trackDisabled: {
|
|
370
|
+
backgroundColor: colorVars['--color-text-secondary'],
|
|
371
|
+
},
|
|
372
|
+
});
|
|
373
|
+
|
|
245
374
|
function defaultFormatValueLabel(value: number, max: number): string {
|
|
246
375
|
const pct = max > 0 ? Math.round((value / max) * 100) : 0;
|
|
247
376
|
return `${pct}%`;
|
|
@@ -256,7 +385,8 @@ function defaultFormatValueLabel(value: number, max: number): string {
|
|
|
256
385
|
*
|
|
257
386
|
* ProgressBar is intentionally minimal — compose additional labels, status
|
|
258
387
|
* icons, and descriptions alongside the bar using layout components rather
|
|
259
|
-
* than adding props to ProgressBar itself.
|
|
388
|
+
* than adding props to ProgressBar itself. The exception is on-track content
|
|
389
|
+
* like `marks`, which are positioned by value over the track.
|
|
260
390
|
*
|
|
261
391
|
* Styles use Astryx theme tokens via StyleX.
|
|
262
392
|
* Wrap your app in <Theme> to apply a theme.
|
|
@@ -268,6 +398,24 @@ function defaultFormatValueLabel(value: number, max: number): string {
|
|
|
268
398
|
* <ProgressBar value={3.2} max={5} label="Disk usage" hasValueLabel
|
|
269
399
|
* formatValueLabel={(v, m) => `${v} GB / ${m} GB`} />
|
|
270
400
|
* <ProgressBar value={30} label="Canceled" isDisabled hasValueLabel />
|
|
401
|
+
* <ProgressBar value={45} label="Fundraiser" marks={[{value: 80, label: 'Goal'}]} />
|
|
402
|
+
* ```
|
|
403
|
+
*
|
|
404
|
+
* A mark's height, width, and color are directly themeable via the
|
|
405
|
+
* `progressbar-mark` target. The target reflects `data-placement`
|
|
406
|
+
* (`"fill"` when the mark sits inside the filled area, `"track"` when it is
|
|
407
|
+
* still out on the bare track) and `data-variant` (the fill's variant), so a
|
|
408
|
+
* theme can style the two cases separately — e.g. a taller "goal flag" tick
|
|
409
|
+
* that overhangs the bar (centered, so the overhang is symmetric):
|
|
410
|
+
*
|
|
411
|
+
* @example
|
|
412
|
+
* ```
|
|
413
|
+
* defineTheme({
|
|
414
|
+
* name: 'campaign',
|
|
415
|
+
* components: {
|
|
416
|
+
* 'progressbar-mark': {base: {height: '16px', backgroundColor: 'red'}},
|
|
417
|
+
* },
|
|
418
|
+
* });
|
|
271
419
|
* ```
|
|
272
420
|
*/
|
|
273
421
|
export function ProgressBar({
|
|
@@ -280,6 +428,7 @@ export function ProgressBar({
|
|
|
280
428
|
variant = 'accent',
|
|
281
429
|
isIndeterminate = false,
|
|
282
430
|
isDisabled = false,
|
|
431
|
+
marks,
|
|
283
432
|
xstyle,
|
|
284
433
|
className,
|
|
285
434
|
style,
|
|
@@ -302,6 +451,32 @@ export function ProgressBar({
|
|
|
302
451
|
|
|
303
452
|
const fillVariant = isDisabled ? 'disabled' : variant;
|
|
304
453
|
|
|
454
|
+
// Marks make no sense without a determinate value, so they are only drawn
|
|
455
|
+
// in determinate mode. Non-finite mark values are dropped; the rest are
|
|
456
|
+
// clamped to the track edges, matching the bar's own `clampedValue`.
|
|
457
|
+
//
|
|
458
|
+
// Each mark also records whether it lands on the filled part of the bar
|
|
459
|
+
// (`isOnFill`), which decides its color: a mark inside the fill reads against
|
|
460
|
+
// the variant color, one out on the bare track reads against the track. A
|
|
461
|
+
// mark exactly at the fill's leading edge counts as on the fill — it is the
|
|
462
|
+
// "reached the target" moment — except at zero progress, where there is no
|
|
463
|
+
// fill for it to sit on.
|
|
464
|
+
const resolvedMarks =
|
|
465
|
+
!isIndeterminate && marks
|
|
466
|
+
? marks
|
|
467
|
+
.filter(mark => Number.isFinite(mark.value))
|
|
468
|
+
.map(mark => {
|
|
469
|
+
const clamped = Math.min(Math.max(0, mark.value), safeMax);
|
|
470
|
+
const pct = safeMax > 0 ? (clamped / safeMax) * 100 : 0;
|
|
471
|
+
return {
|
|
472
|
+
value: mark.value,
|
|
473
|
+
label: mark.label,
|
|
474
|
+
pct,
|
|
475
|
+
isOnFill: percentage > 0 && pct <= percentage,
|
|
476
|
+
};
|
|
477
|
+
})
|
|
478
|
+
: [];
|
|
479
|
+
|
|
305
480
|
return (
|
|
306
481
|
<div
|
|
307
482
|
ref={ref}
|
|
@@ -339,7 +514,10 @@ export function ProgressBar({
|
|
|
339
514
|
<VisuallyHidden id={labelId}>{label}</VisuallyHidden>
|
|
340
515
|
)}
|
|
341
516
|
|
|
342
|
-
{/* Progress track
|
|
517
|
+
{/* Progress track — the `role="progressbar"` element, holding the fill
|
|
518
|
+
and marks as its children (unchanged DOM shape). It no longer clips
|
|
519
|
+
(`overflow` is visible), so a themed taller mark can overhang it;
|
|
520
|
+
the fill preserves its rounded shape via its own `border-radius`. */}
|
|
343
521
|
<div
|
|
344
522
|
role="progressbar"
|
|
345
523
|
aria-valuenow={isIndeterminate ? undefined : clampedValue}
|
|
@@ -349,7 +527,7 @@ export function ProgressBar({
|
|
|
349
527
|
aria-valuetext={isIndeterminate ? undefined : valueText}
|
|
350
528
|
{...mergeProps(
|
|
351
529
|
themeProps('progressbar-track'),
|
|
352
|
-
stylex.props(styles.track),
|
|
530
|
+
stylex.props(styles.track, isIndeterminate && styles.trackClipped),
|
|
353
531
|
)}>
|
|
354
532
|
{isIndeterminate ? (
|
|
355
533
|
<div
|
|
@@ -370,6 +548,53 @@ export function ProgressBar({
|
|
|
370
548
|
style={{width: `${percentage}%`}}
|
|
371
549
|
/>
|
|
372
550
|
)}
|
|
551
|
+
{/* Target marks — children of the progressbar element (unchanged),
|
|
552
|
+
layered above the fill so they show whether progress is below or
|
|
553
|
+
past them. A mark's color follows what it sits on: inside the fill
|
|
554
|
+
it uses the fill variant's on-color, out on the bare track it uses
|
|
555
|
+
the emphasized divider color. Each mark is labeled, so it is a
|
|
556
|
+
focusable Tooltip trigger: the label is visible on hover/focus and
|
|
557
|
+
names the mark for assistive tech via the Tooltip's
|
|
558
|
+
aria-describedby, without adding a labeled child to the
|
|
559
|
+
progressbar's own a11y subtree. */}
|
|
560
|
+
{resolvedMarks.map(mark => {
|
|
561
|
+
// The tick element. It is both the Tooltip's anchor and the Suspense
|
|
562
|
+
// fallback shown while the lazy Tooltip chunk loads, so the tick is
|
|
563
|
+
// always visible and the label attaches once ready. The list `key`
|
|
564
|
+
// lives on the mapped <Suspense>, not here.
|
|
565
|
+
//
|
|
566
|
+
// `placement` is reflected as `data-placement` (and a class) so a
|
|
567
|
+
// theme can style the two cases separately on the
|
|
568
|
+
// `progressbar-mark` target; `variant` mirrors the fill's variant
|
|
569
|
+
// for the same reason.
|
|
570
|
+
const markEl = (
|
|
571
|
+
<span
|
|
572
|
+
tabIndex={0}
|
|
573
|
+
{...mergeProps(
|
|
574
|
+
themeProps('progressbar-mark', {
|
|
575
|
+
variant: fillVariant,
|
|
576
|
+
placement: mark.isOnFill ? 'fill' : 'track',
|
|
577
|
+
}),
|
|
578
|
+
stylex.props(
|
|
579
|
+
styles.mark,
|
|
580
|
+
mark.isOnFill
|
|
581
|
+
? markOnFillStyles[fillVariant]
|
|
582
|
+
: isDisabled
|
|
583
|
+
? markOnTrackStyles.trackDisabled
|
|
584
|
+
: markOnTrackStyles.track,
|
|
585
|
+
),
|
|
586
|
+
)}
|
|
587
|
+
style={{insetInlineStart: `${mark.pct}%`}}
|
|
588
|
+
/>
|
|
589
|
+
);
|
|
590
|
+
return (
|
|
591
|
+
<Suspense key={`${mark.value}:${mark.label}`} fallback={markEl}>
|
|
592
|
+
<LazyProgressBarMarkTooltip content={mark.label}>
|
|
593
|
+
{markEl}
|
|
594
|
+
</LazyProgressBarMarkTooltip>
|
|
595
|
+
</Suspense>
|
|
596
|
+
);
|
|
597
|
+
})}
|
|
373
598
|
</div>
|
|
374
599
|
</div>
|
|
375
600
|
);
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
'use client';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* @file ProgressBarMarkTooltip.tsx
|
|
7
|
+
* @input Uses React, Tooltip, the mark element to wrap, and its label
|
|
8
|
+
* @output Default-exports the lazily-loaded Tooltip wrapper for a labeled mark
|
|
9
|
+
* @position Split out of ProgressBar so the Tooltip only loads when a mark is
|
|
10
|
+
* actually rendered — a ProgressBar with no marks never bundles the Tooltip
|
|
11
|
+
* chunk.
|
|
12
|
+
*
|
|
13
|
+
* SYNC: When modified, update these files to stay in sync:
|
|
14
|
+
* - /packages/core/src/ProgressBar/ProgressBar.tsx (the lazy() + Suspense wrapper)
|
|
15
|
+
* - /packages/core/src/ProgressBar/ProgressBar.test.tsx
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
import type {ReactElement} from 'react';
|
|
19
|
+
import {Tooltip} from '../Tooltip/Tooltip';
|
|
20
|
+
|
|
21
|
+
export interface ProgressBarMarkTooltipProps {
|
|
22
|
+
/** The mark's accessible name / visible tooltip text. */
|
|
23
|
+
content: string;
|
|
24
|
+
/** The bare mark element the tooltip anchors to (also the Suspense fallback). */
|
|
25
|
+
children: ReactElement;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Wraps a labeled mark in a `Tooltip` that reveals its label on hover and
|
|
30
|
+
* keyboard focus. Placement and focus behavior match the inline usage this
|
|
31
|
+
* split replaced (`placement="above"`, `focusTrigger="always"`), so the
|
|
32
|
+
* rendered result is identical — only the load timing changes.
|
|
33
|
+
*/
|
|
34
|
+
export default function ProgressBarMarkTooltip({
|
|
35
|
+
content,
|
|
36
|
+
children,
|
|
37
|
+
}: ProgressBarMarkTooltipProps): ReactElement {
|
|
38
|
+
return (
|
|
39
|
+
<Tooltip content={content} placement="above" focusTrigger="always">
|
|
40
|
+
{children}
|
|
41
|
+
</Tooltip>
|
|
42
|
+
);
|
|
43
|
+
}
|
package/src/ProgressBar/index.ts
CHANGED
|
@@ -6,9 +6,30 @@
|
|
|
6
6
|
* @file ProgressBar component barrel export
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
+
/**
|
|
10
|
+
* Extensible variant map for ProgressBar.
|
|
11
|
+
*
|
|
12
|
+
* Theme packages can add custom variants via TypeScript module augmentation:
|
|
13
|
+
* @example
|
|
14
|
+
* ```
|
|
15
|
+
* declare module '@astryxdesign/core/ProgressBar' {
|
|
16
|
+
* interface ProgressBarVariantMap {
|
|
17
|
+
* 'brand': true;
|
|
18
|
+
* }
|
|
19
|
+
* }
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export interface ProgressBarVariantMap {
|
|
23
|
+
accent: true;
|
|
24
|
+
success: true;
|
|
25
|
+
warning: true;
|
|
26
|
+
neutral: true;
|
|
27
|
+
error: true;
|
|
28
|
+
}
|
|
29
|
+
|
|
9
30
|
export {ProgressBar} from './ProgressBar';
|
|
10
31
|
export type {
|
|
11
32
|
ProgressBarProps,
|
|
33
|
+
ProgressBarMark,
|
|
12
34
|
ProgressBarVariant,
|
|
13
|
-
ProgressBarVariantMap,
|
|
14
35
|
} from './ProgressBar';
|
|
@@ -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: 'RadioList',
|
|
@@ -149,7 +149,7 @@ export const docs = {
|
|
|
149
149
|
},
|
|
150
150
|
};
|
|
151
151
|
|
|
152
|
-
/** @type {import('
|
|
152
|
+
/** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
|
|
153
153
|
export const docsZh = {
|
|
154
154
|
usage: {
|
|
155
155
|
description:
|
|
@@ -171,7 +171,7 @@ export const docsZh = {
|
|
|
171
171
|
},
|
|
172
172
|
};
|
|
173
173
|
|
|
174
|
-
/** @type {import('
|
|
174
|
+
/** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
|
|
175
175
|
export const docsDense = {
|
|
176
176
|
description:
|
|
177
177
|
'Radio group component for single-value selection from list of options.',
|
|
@@ -14,6 +14,7 @@ import {render, screen, fireEvent, waitFor} from '@testing-library/react';
|
|
|
14
14
|
import userEvent from '@testing-library/user-event';
|
|
15
15
|
import {RadioList} from './RadioList';
|
|
16
16
|
import {RadioListItem} from './RadioListItem';
|
|
17
|
+
import {getForcedColorsRules} from '../__tests__/forcedColors';
|
|
17
18
|
|
|
18
19
|
// Mock showPopover/hidePopover (not implemented in jsdom) so the tooltip layer
|
|
19
20
|
// reflects its open state via a `popover-open` attribute the tests can assert.
|
|
@@ -580,7 +581,11 @@ describe('RadioList', () => {
|
|
|
580
581
|
it('submits the selected value under htmlName', () => {
|
|
581
582
|
const {container} = render(
|
|
582
583
|
<form>
|
|
583
|
-
<RadioList
|
|
584
|
+
<RadioList
|
|
585
|
+
label="Preference"
|
|
586
|
+
htmlName="pref"
|
|
587
|
+
value="b"
|
|
588
|
+
onChange={() => {}}>
|
|
584
589
|
<RadioListItem label="Option A" value="a" />
|
|
585
590
|
<RadioListItem label="Option B" value="b" />
|
|
586
591
|
</RadioList>
|
|
@@ -599,13 +604,14 @@ describe('RadioList', () => {
|
|
|
599
604
|
value="a"
|
|
600
605
|
onChange={() => {}}
|
|
601
606
|
isDisabled
|
|
602
|
-
disabledMessage="Locked"
|
|
603
|
-
>
|
|
607
|
+
disabledMessage="Locked">
|
|
604
608
|
<RadioListItem label="Option A" value="a" />
|
|
605
609
|
</RadioList>
|
|
606
610
|
</form>,
|
|
607
611
|
);
|
|
608
|
-
expect([
|
|
612
|
+
expect([
|
|
613
|
+
...new FormData(container.querySelector('form')!).keys(),
|
|
614
|
+
]).toEqual([]);
|
|
609
615
|
});
|
|
610
616
|
|
|
611
617
|
it('keeps working as an isolated group when htmlName is omitted', () => {
|
|
@@ -642,3 +648,19 @@ describe('RadioList', () => {
|
|
|
642
648
|
});
|
|
643
649
|
});
|
|
644
650
|
});
|
|
651
|
+
|
|
652
|
+
// jsdom cannot emulate forced-colors rendering, so this asserts that the
|
|
653
|
+
// compiled output includes the forced-colors rule; visual behavior needs
|
|
654
|
+
// manual verification under Windows High Contrast.
|
|
655
|
+
describe('forced colors (WCAG 1.4.11)', () => {
|
|
656
|
+
it('compiles a forced-colors fill so the selected dot survives Windows High Contrast', () => {
|
|
657
|
+
render(
|
|
658
|
+
<RadioList label="Preference" value="a" onChange={() => {}}>
|
|
659
|
+
<RadioListItem label="Option A" value="a" />
|
|
660
|
+
</RadioList>,
|
|
661
|
+
);
|
|
662
|
+
// The painted inner dot would be stripped to Canvas (invisible), making
|
|
663
|
+
// checked and unchecked radios identical; CanvasText keeps it perceivable.
|
|
664
|
+
expect(getForcedColorsRules()).toContain('background-color: canvastext;');
|
|
665
|
+
});
|
|
666
|
+
});
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* - /packages/core/src/RadioList/RadioList.test.tsx
|
|
14
14
|
* - /packages/core/src/RadioList/index.ts
|
|
15
15
|
* - /apps/storybook/stories/RadioList.stories.tsx
|
|
16
|
-
* - /packages/cli/templates/blocks/components/RadioList/ (showcase blocks)
|
|
16
|
+
* - /packages/cli/assets/templates/blocks/components/RadioList/ (showcase blocks)
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
19
|
import React, {
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* - /packages/core/src/RadioList/RadioList.test.tsx
|
|
16
16
|
* - /packages/core/src/RadioList/index.ts
|
|
17
17
|
* - /apps/storybook/stories/RadioList.stories.tsx
|
|
18
|
-
* - /packages/cli/templates/blocks/components/RadioList/ (showcase blocks)
|
|
18
|
+
* - /packages/cli/assets/templates/blocks/components/RadioList/ (showcase blocks)
|
|
19
19
|
*/
|
|
20
20
|
|
|
21
21
|
import React, {use, useId, type ReactNode} from 'react';
|
|
@@ -119,7 +119,14 @@ const styles = stylex.create({
|
|
|
119
119
|
},
|
|
120
120
|
innerDot: {
|
|
121
121
|
borderRadius: '50%',
|
|
122
|
-
backgroundColor:
|
|
122
|
+
backgroundColor: {
|
|
123
|
+
default: colorVars['--color-on-accent'],
|
|
124
|
+
// Forced colors (Windows High Contrast) strips painted backgrounds,
|
|
125
|
+
// which would make the selected dot invisible — checked and unchecked
|
|
126
|
+
// radios would look identical. CanvasText keeps the dot perceivable on
|
|
127
|
+
// the Canvas circle fill (WCAG 1.4.11).
|
|
128
|
+
'@media (forced-colors: active)': 'CanvasText',
|
|
129
|
+
},
|
|
123
130
|
},
|
|
124
131
|
labelDisabled: {
|
|
125
132
|
color: colorVars['--color-text-disabled'],
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
|
-
/** @type {import('
|
|
3
|
+
/** @type {import('@astryxdesign/cli/authoring').ComponentDoc} */
|
|
4
4
|
export const docs = {
|
|
5
5
|
name: 'Resizable',
|
|
6
6
|
displayName: 'Resizable',
|
|
@@ -188,7 +188,7 @@ export const docs = {
|
|
|
188
188
|
],
|
|
189
189
|
};
|
|
190
190
|
|
|
191
|
-
/** @type {import('
|
|
191
|
+
/** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
|
|
192
192
|
export const docsDense = {
|
|
193
193
|
description: 'Hook-based resizable panel system. useResizable() manages size state; ResizeHandle provides interactive pill-grip separator.',
|
|
194
194
|
usage: {
|
|
@@ -150,7 +150,55 @@ describe('ResizeHandle', () => {
|
|
|
150
150
|
const separator = getSeparator();
|
|
151
151
|
act(() => separator.focus());
|
|
152
152
|
fireEvent.keyDown(separator, {key: 'Enter'});
|
|
153
|
-
|
|
153
|
+
// The panel's real size is 0, but aria-valuenow must never drop below
|
|
154
|
+
// aria-valuemin (WCAG 4.1.2) — it clamps to the minimum and the state
|
|
155
|
+
// is announced via aria-valuetext instead.
|
|
156
|
+
expect(separator).toHaveAttribute('aria-valuenow', '100');
|
|
157
|
+
expect(separator).toHaveAttribute('aria-valuetext', 'Collapsed');
|
|
158
|
+
});
|
|
159
|
+
|
|
160
|
+
it('keeps aria-valuenow >= aria-valuemin and announces "Collapsed" while collapsed', () => {
|
|
161
|
+
render(
|
|
162
|
+
<Harness
|
|
163
|
+
config={{
|
|
164
|
+
defaultSize: 200,
|
|
165
|
+
minSizePx: 100,
|
|
166
|
+
maxSizePx: 400,
|
|
167
|
+
collapsible: true,
|
|
168
|
+
}}
|
|
169
|
+
/>,
|
|
170
|
+
);
|
|
171
|
+
const separator = getSeparator();
|
|
172
|
+
act(() => separator.focus());
|
|
173
|
+
fireEvent.keyDown(separator, {key: 'Enter'});
|
|
174
|
+
|
|
175
|
+
const valueNow = Number(separator.getAttribute('aria-valuenow'));
|
|
176
|
+
const valueMin = Number(separator.getAttribute('aria-valuemin'));
|
|
177
|
+
expect(valueNow).toBeGreaterThanOrEqual(valueMin);
|
|
178
|
+
expect(separator).toHaveAttribute('aria-valuetext', 'Collapsed');
|
|
179
|
+
});
|
|
180
|
+
|
|
181
|
+
it('removes aria-valuetext when the panel is expanded', () => {
|
|
182
|
+
render(
|
|
183
|
+
<Harness
|
|
184
|
+
config={{
|
|
185
|
+
defaultSize: 200,
|
|
186
|
+
minSizePx: 100,
|
|
187
|
+
maxSizePx: 400,
|
|
188
|
+
collapsible: true,
|
|
189
|
+
}}
|
|
190
|
+
/>,
|
|
191
|
+
);
|
|
192
|
+
const separator = getSeparator();
|
|
193
|
+
expect(separator).not.toHaveAttribute('aria-valuetext');
|
|
194
|
+
|
|
195
|
+
act(() => separator.focus());
|
|
196
|
+
fireEvent.keyDown(separator, {key: 'Enter'}); // collapse
|
|
197
|
+
expect(separator).toHaveAttribute('aria-valuetext', 'Collapsed');
|
|
198
|
+
|
|
199
|
+
fireEvent.keyDown(separator, {key: 'Enter'}); // expand again
|
|
200
|
+
expect(separator).not.toHaveAttribute('aria-valuetext');
|
|
201
|
+
expect(separator).toHaveAttribute('aria-valuenow', '100');
|
|
154
202
|
});
|
|
155
203
|
|
|
156
204
|
// --- Disabled guard ---
|
|
@@ -290,8 +338,9 @@ describe('ResizeHandle', () => {
|
|
|
290
338
|
it('centers the grab zone on the divider when the pill is centered (no bias)', () => {
|
|
291
339
|
render(<Harness handleProps={{pillPlacement: 'center'}} />);
|
|
292
340
|
const hitArea = getSeparator().firstElementChild as HTMLElement;
|
|
293
|
-
//
|
|
294
|
-
|
|
341
|
+
// Centered via the shared rtlStyles.centerInline helper (direction-symmetric
|
|
342
|
+
// left+translateX), not a biased offset.
|
|
343
|
+
expect(hitArea.className).toContain('centerInline');
|
|
295
344
|
expect(hitArea.className).not.toContain('hitAreaOffsetX');
|
|
296
345
|
});
|
|
297
346
|
|