@astryxdesign/core 0.2.0-canary.ea693ac → 0.2.0-canary.ebed74f
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -3
- package/dist/AlertDialog/AlertDialog.d.ts +1 -1
- package/dist/AlertDialog/AlertDialog.js +1 -1
- package/dist/AppShell/AppShell.d.ts +2 -20
- package/dist/AppShell/AppShell.d.ts.map +1 -1
- package/dist/AppShell/AppShell.js +1 -14
- package/dist/AppShell/index.d.ts +20 -1
- package/dist/AppShell/index.d.ts.map +1 -1
- package/dist/AppShell/index.js +14 -0
- package/dist/AspectRatio/AspectRatio.d.ts +1 -1
- package/dist/AspectRatio/AspectRatio.js +1 -1
- package/dist/Avatar/Avatar.d.ts +1 -1
- package/dist/Avatar/Avatar.d.ts.map +1 -1
- package/dist/Avatar/Avatar.js +4 -4
- package/dist/Avatar/AvatarStatusDot.d.ts +2 -26
- package/dist/Avatar/AvatarStatusDot.d.ts.map +1 -1
- package/dist/Avatar/AvatarStatusDot.js +1 -22
- package/dist/Avatar/index.d.ts +26 -1
- package/dist/Avatar/index.d.ts.map +1 -1
- package/dist/Avatar/index.js +21 -0
- package/dist/AvatarGroup/AvatarGroup.d.ts +1 -1
- package/dist/AvatarGroup/AvatarGroup.d.ts.map +1 -1
- package/dist/AvatarGroup/AvatarGroup.js +4 -8
- package/dist/AvatarGroup/AvatarGroupOverflow.d.ts +1 -1
- package/dist/AvatarGroup/AvatarGroupOverflow.js +1 -1
- package/dist/Badge/Badge.d.ts +2 -30
- package/dist/Badge/Badge.d.ts.map +1 -1
- package/dist/Badge/Badge.js +2 -17
- package/dist/Badge/index.d.ts +31 -2
- package/dist/Badge/index.d.ts.map +1 -1
- package/dist/Badge/index.js +15 -1
- package/dist/Banner/Banner.d.ts +2 -37
- package/dist/Banner/Banner.d.ts.map +1 -1
- package/dist/Banner/Banner.js +6 -34
- package/dist/Banner/index.d.ts +37 -1
- package/dist/Banner/index.d.ts.map +1 -1
- package/dist/Banner/index.js +27 -0
- package/dist/Blockquote/Blockquote.d.ts +1 -1
- package/dist/Blockquote/Blockquote.js +1 -1
- package/dist/Breadcrumbs/BreadcrumbItem.d.ts +1 -1
- package/dist/Breadcrumbs/BreadcrumbItem.js +4 -3
- package/dist/Breadcrumbs/Breadcrumbs.d.ts +2 -18
- package/dist/Breadcrumbs/Breadcrumbs.d.ts.map +1 -1
- package/dist/Breadcrumbs/Breadcrumbs.js +1 -15
- package/dist/Breadcrumbs/index.d.ts +18 -1
- package/dist/Breadcrumbs/index.d.ts.map +1 -1
- package/dist/Breadcrumbs/index.js +14 -0
- package/dist/Button/Button.d.ts +2 -20
- package/dist/Button/Button.d.ts.map +1 -1
- package/dist/Button/Button.js +2 -17
- package/dist/Button/index.d.ts +21 -3
- package/dist/Button/index.d.ts.map +1 -1
- package/dist/Button/index.js +15 -1
- package/dist/ButtonGroup/ButtonGroup.d.ts +1 -1
- package/dist/ButtonGroup/ButtonGroup.js +1 -1
- package/dist/Calendar/Calendar.js +1 -1
- package/dist/Calendar/styles.d.ts +2 -2
- package/dist/Calendar/styles.js +2 -2
- package/dist/Card/Card.d.ts +1 -1
- package/dist/Card/Card.js +1 -1
- package/dist/Carousel/Carousel.d.ts +54 -3
- package/dist/Carousel/Carousel.d.ts.map +1 -1
- package/dist/Carousel/Carousel.js +82 -15
- package/dist/Carousel/index.d.ts +1 -1
- package/dist/Carousel/index.d.ts.map +1 -1
- package/dist/Center/Center.d.ts +21 -4
- package/dist/Center/Center.d.ts.map +1 -1
- package/dist/Center/Center.js +11 -3
- package/dist/Chat/ChatComposer.d.ts +1 -1
- package/dist/Chat/ChatComposer.js +9 -9
- package/dist/Chat/ChatComposerDrawer.d.ts +1 -1
- package/dist/Chat/ChatComposerDrawer.js +3 -3
- package/dist/Chat/ChatComposerInput.d.ts +1 -1
- package/dist/Chat/ChatComposerInput.js +1 -1
- package/dist/Chat/ChatDictationButton.d.ts +1 -1
- package/dist/Chat/ChatDictationButton.js +1 -1
- package/dist/Chat/ChatLayout.d.ts +8 -1
- package/dist/Chat/ChatLayout.d.ts.map +1 -1
- package/dist/Chat/ChatLayout.js +15 -4
- package/dist/Chat/ChatLayoutScrollButton.d.ts +1 -1
- package/dist/Chat/ChatLayoutScrollButton.js +1 -1
- package/dist/Chat/ChatMessage.d.ts +1 -1
- package/dist/Chat/ChatMessage.js +1 -1
- package/dist/Chat/ChatMessageBubble.d.ts +1 -1
- package/dist/Chat/ChatMessageBubble.js +1 -1
- package/dist/Chat/ChatMessageList.d.ts +1 -1
- package/dist/Chat/ChatMessageList.js +1 -1
- package/dist/Chat/ChatSendButton.d.ts.map +1 -1
- package/dist/Chat/ChatSendButton.js +4 -2
- package/dist/Chat/ChatSystemMessage.d.ts +1 -1
- package/dist/Chat/ChatSystemMessage.js +1 -1
- package/dist/Chat/ChatTokenizedText.d.ts +1 -1
- package/dist/Chat/ChatTokenizedText.js +1 -1
- package/dist/CheckboxInput/CheckboxInput.d.ts +1 -1
- package/dist/CheckboxInput/CheckboxInput.js +1 -1
- package/dist/CheckboxList/CheckboxList.d.ts +1 -1
- package/dist/CheckboxList/CheckboxList.js +1 -1
- package/dist/CheckboxList/CheckboxListItem.d.ts +1 -1
- package/dist/CheckboxList/CheckboxListItem.js +1 -1
- package/dist/Citation/Citation.d.ts +1 -1
- package/dist/Citation/Citation.js +1 -1
- package/dist/ClickableCard/ClickableCard.d.ts +3 -3
- package/dist/ClickableCard/ClickableCard.js +3 -3
- package/dist/Code/Code.d.ts +2 -2
- package/dist/Code/Code.js +2 -2
- package/dist/Collapsible/Collapsible.d.ts +1 -1
- package/dist/Collapsible/Collapsible.js +3 -3
- package/dist/Collapsible/CollapsibleGroup.d.ts +1 -1
- package/dist/Collapsible/CollapsibleGroup.js +1 -1
- package/dist/Collapsible/CollapsibleGroupContext.js +1 -1
- package/dist/CommandPalette/CommandPalette.d.ts +1 -1
- package/dist/CommandPalette/CommandPalette.js +1 -1
- package/dist/CommandPalette/CommandPaletteEmpty.js +1 -1
- package/dist/CommandPalette/CommandPaletteFooter.js +1 -1
- package/dist/CommandPalette/CommandPaletteGroup.js +1 -1
- package/dist/CommandPalette/CommandPaletteInput.d.ts +2 -2
- package/dist/CommandPalette/CommandPaletteInput.d.ts.map +1 -1
- package/dist/CommandPalette/CommandPaletteInput.js +4 -2
- package/dist/CommandPalette/CommandPaletteItem.d.ts +1 -1
- package/dist/CommandPalette/CommandPaletteItem.js +1 -1
- package/dist/CommandPalette/CommandPaletteList.js +1 -1
- package/dist/ContextMenu/ContextMenu.d.ts +2 -2
- package/dist/ContextMenu/ContextMenu.d.ts.map +1 -1
- package/dist/ContextMenu/ContextMenu.js +14 -5
- package/dist/DateInput/DateInput.js +1 -1
- package/dist/DateRangeInput/DateRangeInput.js +1 -1
- package/dist/DateTimeInput/DateTimeInput.js +1 -1
- package/dist/Dialog/Dialog.d.ts +46 -23
- package/dist/Dialog/Dialog.d.ts.map +1 -1
- package/dist/Dialog/Dialog.js +59 -31
- package/dist/Dialog/DialogHeader.d.ts +1 -1
- package/dist/Dialog/DialogHeader.js +1 -1
- package/dist/Dialog/index.d.ts +18 -1
- package/dist/Dialog/index.d.ts.map +1 -1
- package/dist/Dialog/index.js +14 -0
- package/dist/Divider/Divider.d.ts +2 -18
- package/dist/Divider/Divider.d.ts.map +1 -1
- package/dist/Divider/Divider.js +1 -15
- package/dist/Divider/index.d.ts +18 -1
- package/dist/Divider/index.d.ts.map +1 -1
- package/dist/Divider/index.js +14 -0
- package/dist/DropdownMenu/DropdownMenu.d.ts +9 -3
- package/dist/DropdownMenu/DropdownMenu.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenu.js +23 -19
- package/dist/DropdownMenu/DropdownMenuCheckboxItem.d.ts +18 -12
- package/dist/DropdownMenu/DropdownMenuCheckboxItem.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenuCheckboxItem.js +38 -63
- package/dist/DropdownMenu/DropdownMenuItem.d.ts +1 -1
- package/dist/DropdownMenu/DropdownMenuItem.js +1 -1
- package/dist/DropdownMenu/DropdownMenuRadioItem.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenuRadioItem.js +5 -1
- package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts +1 -1
- package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenuSubMenu.js +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 +2 -2
- package/dist/Field/FieldLabel.d.ts.map +1 -1
- package/dist/Field/FieldLabel.js +41 -2
- package/dist/FieldStatus/FieldStatus.d.ts +1 -18
- package/dist/FieldStatus/FieldStatus.d.ts.map +1 -1
- package/dist/FieldStatus/FieldStatus.js +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 +1 -1
- package/dist/Grid/Grid.js +1 -1
- package/dist/Grid/GridSpan.d.ts +1 -1
- package/dist/Grid/GridSpan.js +1 -1
- package/dist/HStack/HStack.d.ts +1 -1
- package/dist/HStack/HStack.js +1 -1
- package/dist/Heading/Heading.d.ts +2 -2
- package/dist/Heading/Heading.d.ts.map +1 -1
- package/dist/Heading/Heading.js +5 -4
- package/dist/HoverCard/HoverCard.d.ts +1 -1
- package/dist/HoverCard/HoverCard.js +1 -1
- package/dist/Icon/Icon.d.ts +1 -1
- package/dist/Icon/Icon.d.ts.map +1 -1
- package/dist/Icon/Icon.js +4 -2
- package/dist/Icon/globalIconRegistry.d.ts +47 -5
- package/dist/Icon/globalIconRegistry.d.ts.map +1 -1
- package/dist/Icon/globalIconRegistry.js +74 -7
- package/dist/Icon/index.d.ts +4 -3
- package/dist/Icon/index.d.ts.map +1 -1
- package/dist/Icon/index.js +2 -1
- package/dist/Icon/useIcon.d.ts +14 -0
- package/dist/Icon/useIcon.d.ts.map +1 -0
- package/dist/Icon/useIcon.js +21 -0
- package/dist/IconButton/IconButton.d.ts +1 -1
- package/dist/IconButton/IconButton.js +1 -1
- package/dist/InputGroup/InputGroup.d.ts +1 -1
- package/dist/InputGroup/InputGroup.js +1 -1
- package/dist/InputGroup/InputGroupText.d.ts +1 -1
- package/dist/InputGroup/InputGroupText.js +1 -1
- package/dist/Item/Item.d.ts +1 -1
- package/dist/Item/Item.js +1 -1
- package/dist/Kbd/Kbd.d.ts +1 -1
- package/dist/Kbd/Kbd.js +1 -1
- package/dist/Layout/Layout.d.ts +1 -1
- package/dist/Layout/Layout.js +1 -1
- package/dist/Layout/LayoutContent.d.ts +1 -1
- package/dist/Layout/LayoutContent.js +1 -1
- package/dist/Layout/LayoutFooter.d.ts +1 -1
- package/dist/Layout/LayoutFooter.js +1 -1
- package/dist/Layout/LayoutHeader.d.ts +1 -1
- package/dist/Layout/LayoutHeader.js +1 -1
- package/dist/Layout/LayoutPanel.d.ts +1 -1
- package/dist/Layout/LayoutPanel.js +1 -1
- package/dist/Lightbox/Lightbox.d.ts +1 -1
- package/dist/Lightbox/Lightbox.d.ts.map +1 -1
- package/dist/Lightbox/Lightbox.js +16 -3
- package/dist/Link/Link.d.ts +1 -1
- package/dist/Link/Link.js +1 -1
- package/dist/Link/LinkProvider.d.ts +2 -2
- package/dist/Link/LinkProvider.js +2 -2
- package/dist/List/List.d.ts +1 -1
- package/dist/List/List.js +1 -1
- package/dist/List/ListItem.d.ts +1 -1
- package/dist/List/ListItem.js +1 -1
- package/dist/Markdown/Markdown.d.ts.map +1 -1
- package/dist/Markdown/Markdown.js +35 -13
- package/dist/MetadataList/MetadataList.d.ts +1 -1
- package/dist/MetadataList/MetadataList.js +1 -1
- package/dist/MetadataList/MetadataListItem.d.ts +1 -1
- package/dist/MetadataList/MetadataListItem.js +1 -1
- package/dist/MobileNav/MobileNav.d.ts +1 -1
- package/dist/MobileNav/MobileNav.js +1 -1
- package/dist/MoreMenu/MoreMenu.d.ts +1 -1
- package/dist/MoreMenu/MoreMenu.js +3 -3
- package/dist/MultiSelector/MultiSelector.d.ts +13 -4
- package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
- package/dist/MultiSelector/MultiSelector.js +105 -22
- package/dist/NavIcon/NavIcon.d.ts +1 -1
- package/dist/NavIcon/NavIcon.js +1 -1
- package/dist/NumberInput/NumberInput.d.ts +1 -1
- package/dist/NumberInput/NumberInput.js +1 -1
- package/dist/Outline/Outline.js +1 -1
- package/dist/OverflowList/OverflowList.d.ts +1 -1
- package/dist/OverflowList/OverflowList.js +1 -1
- package/dist/Pagination/Pagination.d.ts +1 -20
- package/dist/Pagination/Pagination.d.ts.map +1 -1
- package/dist/Pagination/Pagination.js +1 -15
- package/dist/Pagination/index.d.ts +21 -1
- package/dist/Pagination/index.d.ts.map +1 -1
- package/dist/Pagination/index.js +14 -0
- package/dist/Popover/Popover.d.ts +20 -3
- package/dist/Popover/Popover.d.ts.map +1 -1
- package/dist/Popover/Popover.js +5 -1
- package/dist/Popover/usePopover.d.ts.map +1 -1
- package/dist/Popover/usePopover.js +14 -3
- package/dist/PowerSearch/PowerSearch.d.ts +1 -1
- package/dist/PowerSearch/PowerSearch.js +1 -1
- package/dist/ProgressBar/ProgressBar.d.ts +1 -20
- package/dist/ProgressBar/ProgressBar.d.ts.map +1 -1
- package/dist/ProgressBar/ProgressBar.js +1 -15
- package/dist/ProgressBar/index.d.ts +21 -1
- package/dist/ProgressBar/index.d.ts.map +1 -1
- package/dist/ProgressBar/index.js +14 -0
- package/dist/RadioList/RadioList.d.ts +1 -1
- package/dist/RadioList/RadioList.js +1 -1
- package/dist/RadioList/RadioListItem.d.ts +1 -1
- package/dist/RadioList/RadioListItem.js +1 -1
- package/dist/Resizable/ResizeHandle.d.ts.map +1 -1
- package/dist/Resizable/ResizeHandle.js +3 -10
- package/dist/Section/Section.d.ts +2 -19
- package/dist/Section/Section.d.ts.map +1 -1
- package/dist/Section/Section.js +1 -15
- package/dist/Section/index.d.ts +19 -1
- package/dist/Section/index.d.ts.map +1 -1
- package/dist/Section/index.js +14 -0
- package/dist/SegmentedControl/SegmentedControl.d.ts +1 -1
- package/dist/SegmentedControl/SegmentedControl.js +1 -1
- package/dist/SegmentedControl/SegmentedControlItem.d.ts +1 -1
- package/dist/SegmentedControl/SegmentedControlItem.js +1 -1
- package/dist/SelectableCard/SelectableCard.d.ts +4 -3
- package/dist/SelectableCard/SelectableCard.d.ts.map +1 -1
- package/dist/SelectableCard/SelectableCard.js +15 -3
- package/dist/Selector/Selector.d.ts +12 -3
- package/dist/Selector/Selector.d.ts.map +1 -1
- package/dist/Selector/Selector.js +104 -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.js +1 -1
- package/dist/Slider/Slider.d.ts.map +1 -1
- package/dist/Slider/Slider.js +78 -68
- package/dist/Spinner/Spinner.d.ts +1 -1
- package/dist/Spinner/Spinner.js +1 -1
- package/dist/Stack/Stack.d.ts +1 -1
- package/dist/Stack/Stack.js +1 -1
- package/dist/Stack/StackItem.d.ts +1 -1
- package/dist/Stack/StackItem.js +1 -1
- package/dist/StatusDot/StatusDot.d.ts +1 -20
- package/dist/StatusDot/StatusDot.d.ts.map +1 -1
- package/dist/StatusDot/StatusDot.js +2 -17
- package/dist/StatusDot/index.d.ts +21 -1
- package/dist/StatusDot/index.d.ts.map +1 -1
- package/dist/StatusDot/index.js +14 -0
- package/dist/Switch/Switch.d.ts +1 -1
- package/dist/Switch/Switch.js +1 -1
- package/dist/TabList/Tab.d.ts +1 -1
- package/dist/TabList/Tab.js +1 -1
- package/dist/TabList/TabList.d.ts +1 -1
- package/dist/TabList/TabList.js +1 -1
- package/dist/TabList/TabMenu.d.ts +1 -1
- package/dist/TabList/TabMenu.js +1 -1
- package/dist/Table/BaseTable.d.ts +1 -1
- package/dist/Table/BaseTable.js +1 -1
- package/dist/Table/Table.d.ts +1 -1
- package/dist/Table/Table.js +1 -1
- package/dist/Table/TableCell.d.ts +1 -1
- package/dist/Table/TableCell.js +1 -1
- package/dist/Table/TableHeaderCell.d.ts +1 -1
- package/dist/Table/TableHeaderCell.js +1 -1
- package/dist/Table/TableRow.d.ts +1 -1
- package/dist/Table/TableRow.js +1 -1
- package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts +18 -3
- package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts.map +1 -1
- package/dist/Table/plugins/rowExpansion/useTableRowExpansion.js +21 -3
- package/dist/Table/plugins/tree/useTableTreeData.d.ts +11 -0
- package/dist/Table/plugins/tree/useTableTreeData.d.ts.map +1 -1
- package/dist/Table/plugins/tree/useTableTreeData.js +36 -2
- package/dist/Text/Text.d.ts +11 -2
- package/dist/Text/Text.d.ts.map +1 -1
- package/dist/Text/Text.js +26 -3
- package/dist/Text/index.d.ts +31 -1
- package/dist/Text/index.d.ts.map +1 -1
- package/dist/Text/index.js +23 -0
- package/dist/TextArea/TextArea.d.ts +1 -1
- package/dist/TextArea/TextArea.d.ts.map +1 -1
- package/dist/TextArea/TextArea.js +107 -39
- package/dist/TextInput/TextInput.d.ts +1 -1
- package/dist/TextInput/TextInput.js +1 -1
- package/dist/Thumbnail/Thumbnail.d.ts.map +1 -1
- package/dist/Thumbnail/Thumbnail.js +52 -46
- package/dist/TimeInput/TimeInput.js +1 -1
- package/dist/Timestamp/Timestamp.d.ts +4 -1
- package/dist/Timestamp/Timestamp.d.ts.map +1 -1
- package/dist/Timestamp/Timestamp.js +78 -7
- package/dist/Timestamp/formatInstant.d.ts +3 -3
- package/dist/Timestamp/formatInstant.d.ts.map +1 -1
- package/dist/Timestamp/formatInstant.js +2 -2
- package/dist/Timestamp/tooltipEntries.d.ts +3 -2
- package/dist/Timestamp/tooltipEntries.d.ts.map +1 -1
- package/dist/Timestamp/tooltipEntries.js +3 -2
- package/dist/ToggleButton/ToggleButton.d.ts +1 -1
- package/dist/ToggleButton/ToggleButton.js +1 -1
- package/dist/ToggleButton/ToggleButtonGroup.d.ts +1 -1
- package/dist/ToggleButton/ToggleButtonGroup.d.ts.map +1 -1
- package/dist/ToggleButton/ToggleButtonGroup.js +1 -1
- package/dist/Token/Token.d.ts +2 -27
- package/dist/Token/Token.d.ts.map +1 -1
- package/dist/Token/Token.js +1 -15
- package/dist/Token/index.d.ts +27 -1
- package/dist/Token/index.d.ts.map +1 -1
- package/dist/Token/index.js +14 -0
- package/dist/Tokenizer/Tokenizer.d.ts +1 -1
- package/dist/Tokenizer/Tokenizer.js +1 -1
- package/dist/Toolbar/Toolbar.d.ts +1 -1
- package/dist/Toolbar/Toolbar.js +1 -1
- package/dist/Tooltip/Tooltip.d.ts +1 -1
- package/dist/Tooltip/Tooltip.js +1 -1
- package/dist/TopNav/TopNav.d.ts +1 -1
- package/dist/TopNav/TopNav.js +1 -1
- package/dist/TopNav/TopNavHeading.d.ts +1 -1
- package/dist/TopNav/TopNavHeading.d.ts.map +1 -1
- package/dist/TopNav/TopNavHeading.js +7 -6
- package/dist/TopNav/TopNavItem.d.ts +1 -1
- package/dist/TopNav/TopNavItem.js +1 -1
- package/dist/TopNav/TopNavMegaMenu.d.ts +1 -1
- package/dist/TopNav/TopNavMegaMenu.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 +1 -1
- package/dist/Typeahead/BaseTypeahead.js +1 -1
- package/dist/Typeahead/Typeahead.d.ts +1 -1
- package/dist/Typeahead/Typeahead.js +1 -1
- package/dist/Typeahead/TypeaheadItem.d.ts +1 -1
- package/dist/Typeahead/TypeaheadItem.js +1 -1
- package/dist/VStack/VStack.d.ts +1 -1
- package/dist/VStack/VStack.js +1 -1
- package/dist/VisuallyHidden/VisuallyHidden.d.ts +1 -1
- package/dist/VisuallyHidden/VisuallyHidden.js +1 -1
- package/dist/astryx.css +83 -22
- package/dist/astryx.umd.js +50 -50
- 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 +1 -1
- package/dist/hooks/useKeyboardHint.js +1 -1
- package/dist/hooks/useListFocus.d.ts +8 -7
- package/dist/hooks/useListFocus.d.ts.map +1 -1
- package/dist/hooks/useTreeFocus.d.ts.map +1 -1
- package/dist/hooks/useTreeFocus.js +13 -2
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/theme/Theme.d.ts.map +1 -1
- package/dist/theme/Theme.js +2 -7
- package/dist/theme/defineTheme.d.ts +6 -0
- package/dist/theme/defineTheme.d.ts.map +1 -1
- package/dist/theme/defineTheme.js +4 -1
- package/dist/theme/expandColorScale.d.ts +19 -2
- package/dist/theme/expandColorScale.d.ts.map +1 -1
- package/dist/theme/expandColorScale.js +38 -10
- package/dist/theme/index.d.ts +6 -4
- package/dist/theme/index.d.ts.map +1 -1
- package/dist/theme/index.js +2 -1
- package/dist/theme/themeRegistry.d.ts +32 -0
- package/dist/theme/themeRegistry.d.ts.map +1 -0
- package/dist/theme/themeRegistry.js +49 -0
- package/dist/theme/types.d.ts +10 -2
- package/dist/theme/types.d.ts.map +1 -1
- package/dist/theme/useTheme.d.ts +9 -0
- package/dist/theme/useTheme.d.ts.map +1 -1
- package/dist/theme/useTheme.js +82 -27
- package/dist/utils/rtlStyles.d.ts +21 -0
- package/dist/utils/rtlStyles.d.ts.map +1 -1
- package/dist/utils/rtlStyles.js +26 -1
- package/groups.doc.mjs +2 -2
- package/locales/en.json +8 -0
- package/locales/pseudo.json +6 -0
- package/package.json +4 -13
- package/src/AlertDialog/AlertDialog.doc.mjs +3 -3
- package/src/AlertDialog/AlertDialog.tsx +1 -1
- package/src/AlertDialog/useImperativeAlertDialog.doc.mjs +1 -1
- package/src/AppShell/AppShell.doc.mjs +3 -3
- package/src/AppShell/AppShell.tsx +2 -20
- package/src/AppShell/index.ts +20 -1
- package/src/AppShell/useAppShellMobile.doc.mjs +2 -2
- package/src/AspectRatio/AspectRatio.doc.mjs +3 -3
- package/src/AspectRatio/AspectRatio.tsx +1 -1
- package/src/Avatar/Avatar.doc.mjs +3 -3
- package/src/Avatar/Avatar.tsx +8 -3
- package/src/Avatar/AvatarStatusDot.doc.mjs +1 -1
- package/src/Avatar/AvatarStatusDot.tsx +2 -27
- package/src/Avatar/index.ts +26 -1
- package/src/AvatarGroup/AvatarGroup.doc.mjs +3 -3
- package/src/AvatarGroup/AvatarGroup.tsx +3 -7
- package/src/AvatarGroup/AvatarGroupOverflow.doc.mjs +1 -1
- package/src/AvatarGroup/AvatarGroupOverflow.tsx +1 -1
- package/src/Badge/Badge.doc.mjs +3 -3
- package/src/Badge/Badge.tsx +2 -31
- package/src/Badge/index.ts +32 -6
- package/src/Banner/Banner.doc.mjs +3 -3
- package/src/Banner/Banner.tsx +8 -45
- package/src/Banner/index.ts +39 -7
- package/src/Blockquote/Blockquote.doc.mjs +3 -3
- package/src/Blockquote/Blockquote.tsx +1 -1
- package/src/Breadcrumbs/BreadcrumbItem.doc.mjs +1 -1
- package/src/Breadcrumbs/BreadcrumbItem.tsx +5 -3
- package/src/Breadcrumbs/Breadcrumbs.doc.mjs +3 -3
- package/src/Breadcrumbs/Breadcrumbs.tsx +2 -19
- package/src/Breadcrumbs/index.ts +19 -5
- package/src/Button/Button.doc.mjs +3 -3
- package/src/Button/Button.tsx +2 -21
- package/src/Button/index.ts +22 -7
- package/src/ButtonGroup/ButtonGroup.doc.mjs +3 -3
- package/src/ButtonGroup/ButtonGroup.tsx +1 -1
- package/src/Calendar/Calendar.doc.mjs +3 -3
- package/src/Calendar/Calendar.test.tsx +15 -3
- package/src/Calendar/Calendar.tsx +1 -1
- package/src/Calendar/styles.ts +2 -2
- package/src/Card/Card.doc.mjs +3 -3
- package/src/Card/Card.tsx +1 -1
- package/src/Carousel/Carousel.doc.mjs +10 -3
- package/src/Carousel/Carousel.test.tsx +232 -1
- package/src/Carousel/Carousel.tsx +144 -21
- package/src/Carousel/index.ts +1 -1
- package/src/Center/Center.doc.mjs +41 -3
- package/src/Center/Center.test.tsx +75 -0
- package/src/Center/Center.tsx +38 -3
- package/src/Chat/Chat.doc.mjs +3 -3
- package/src/Chat/ChatComposer.doc.mjs +1 -1
- package/src/Chat/ChatComposer.tsx +5 -5
- package/src/Chat/ChatComposerDrawer.doc.mjs +1 -1
- package/src/Chat/ChatComposerDrawer.tsx +3 -3
- package/src/Chat/ChatComposerInput.doc.mjs +1 -1
- package/src/Chat/ChatComposerInput.tsx +1 -1
- package/src/Chat/ChatComposerTokenElement.doc.mjs +1 -1
- package/src/Chat/ChatDictationButton.doc.mjs +3 -3
- package/src/Chat/ChatDictationButton.tsx +1 -1
- package/src/Chat/ChatLayout.doc.mjs +1 -1
- package/src/Chat/ChatLayout.test.tsx +57 -0
- package/src/Chat/ChatLayout.tsx +23 -2
- package/src/Chat/ChatLayoutScrollButton.doc.mjs +1 -1
- package/src/Chat/ChatLayoutScrollButton.tsx +1 -1
- package/src/Chat/ChatMessage.doc.mjs +1 -1
- package/src/Chat/ChatMessage.tsx +1 -1
- package/src/Chat/ChatMessageBubble.doc.mjs +1 -1
- package/src/Chat/ChatMessageBubble.tsx +1 -1
- package/src/Chat/ChatMessageList.doc.mjs +1 -1
- package/src/Chat/ChatMessageList.tsx +1 -1
- package/src/Chat/ChatMessageMetadata.doc.mjs +1 -1
- package/src/Chat/ChatSendButton.doc.mjs +1 -1
- package/src/Chat/ChatSendButton.tsx +5 -3
- package/src/Chat/ChatSystemMessage.doc.mjs +1 -1
- package/src/Chat/ChatSystemMessage.tsx +1 -1
- package/src/Chat/ChatTokenizedText.doc.mjs +1 -1
- package/src/Chat/ChatTokenizedText.tsx +1 -1
- package/src/Chat/ChatToolCalls.doc.mjs +3 -3
- package/src/CheckboxInput/CheckboxInput.doc.mjs +3 -3
- package/src/CheckboxInput/CheckboxInput.test.tsx +33 -0
- package/src/CheckboxInput/CheckboxInput.tsx +1 -1
- package/src/CheckboxList/CheckboxList.doc.mjs +3 -3
- package/src/CheckboxList/CheckboxList.tsx +1 -1
- package/src/CheckboxList/CheckboxListItem.doc.mjs +1 -1
- package/src/CheckboxList/CheckboxListItem.tsx +1 -1
- package/src/Citation/Citation.doc.mjs +2 -2
- package/src/Citation/Citation.tsx +1 -1
- package/src/ClickableCard/ClickableCard.doc.mjs +2 -2
- package/src/ClickableCard/ClickableCard.tsx +3 -3
- package/src/Code/Code.tsx +2 -2
- package/src/CodeBlock/Code.doc.mjs +1 -1
- package/src/CodeBlock/CodeBlock.doc.mjs +3 -3
- package/src/Collapsible/Collapsible.doc.mjs +3 -3
- package/src/Collapsible/Collapsible.tsx +3 -3
- package/src/Collapsible/CollapsibleGroup.doc.mjs +1 -1
- package/src/Collapsible/CollapsibleGroup.tsx +1 -1
- package/src/Collapsible/CollapsibleGroupContext.tsx +1 -1
- package/src/Collapsible/useCollapsible.doc.mjs +2 -2
- package/src/CommandPalette/CommandPalette.doc.mjs +4 -4
- package/src/CommandPalette/CommandPalette.tsx +1 -1
- package/src/CommandPalette/CommandPaletteEmpty.doc.mjs +1 -1
- package/src/CommandPalette/CommandPaletteEmpty.tsx +1 -1
- package/src/CommandPalette/CommandPaletteFooter.doc.mjs +1 -1
- package/src/CommandPalette/CommandPaletteFooter.tsx +1 -1
- package/src/CommandPalette/CommandPaletteGroup.doc.mjs +1 -1
- package/src/CommandPalette/CommandPaletteGroup.tsx +1 -1
- package/src/CommandPalette/CommandPaletteInput.doc.mjs +1 -1
- package/src/CommandPalette/CommandPaletteInput.tsx +5 -1
- package/src/CommandPalette/CommandPaletteItem.doc.mjs +1 -1
- package/src/CommandPalette/CommandPaletteItem.tsx +1 -1
- package/src/CommandPalette/CommandPaletteList.doc.mjs +1 -1
- package/src/CommandPalette/CommandPaletteList.tsx +1 -1
- package/src/ContextMenu/ContextMenu.doc.mjs +3 -3
- package/src/ContextMenu/ContextMenu.tsx +17 -5
- package/src/ContextMenu/ContextMenuItem.doc.mjs +1 -1
- package/src/DateInput/DateInput.doc.mjs +3 -3
- package/src/DateInput/DateInput.tsx +1 -1
- package/src/DateRangeInput/DateRangeInput.doc.mjs +2 -2
- package/src/DateRangeInput/DateRangeInput.tsx +1 -1
- package/src/DateTimeInput/DateTimeInput.doc.mjs +3 -3
- package/src/DateTimeInput/DateTimeInput.tsx +1 -1
- package/src/Dialog/Dialog.doc.mjs +9 -5
- package/src/Dialog/Dialog.test.tsx +84 -1
- package/src/Dialog/Dialog.tsx +87 -45
- package/src/Dialog/DialogHeader.doc.mjs +1 -1
- package/src/Dialog/DialogHeader.tsx +1 -1
- package/src/Dialog/index.ts +18 -1
- package/src/Dialog/useImperativeDialog.doc.mjs +1 -1
- package/src/Divider/Divider.doc.mjs +3 -3
- package/src/Divider/Divider.tsx +2 -19
- package/src/Divider/index.ts +19 -5
- package/src/DropdownMenu/DropdownMenu.doc.mjs +20 -5
- package/src/DropdownMenu/DropdownMenu.test.tsx +122 -0
- package/src/DropdownMenu/DropdownMenu.tsx +31 -20
- package/src/DropdownMenu/DropdownMenuCheckboxItem.doc.mjs +1 -1
- package/src/DropdownMenu/DropdownMenuCheckboxItem.tsx +41 -64
- package/src/DropdownMenu/DropdownMenuItem.doc.mjs +1 -1
- package/src/DropdownMenu/DropdownMenuItem.tsx +1 -1
- package/src/DropdownMenu/DropdownMenuRadioGroup.doc.mjs +1 -1
- package/src/DropdownMenu/DropdownMenuRadioItem.doc.mjs +1 -1
- package/src/DropdownMenu/DropdownMenuRadioItem.tsx +10 -1
- package/src/DropdownMenu/DropdownMenuSelectable.test.tsx +64 -0
- package/src/DropdownMenu/DropdownMenuSubMenu.doc.mjs +1 -1
- package/src/DropdownMenu/DropdownMenuSubMenu.test.tsx +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 +78 -0
- package/src/Field/FieldLabel.tsx +50 -3
- 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 -3
- package/src/Grid/Grid.tsx +1 -1
- package/src/Grid/GridSpan.doc.mjs +1 -1
- package/src/Grid/GridSpan.tsx +1 -1
- package/src/HStack/HStack.tsx +1 -1
- package/src/Heading/Heading.tsx +4 -3
- package/src/HoverCard/HoverCard.doc.mjs +3 -3
- package/src/HoverCard/HoverCard.tsx +1 -1
- package/src/HoverCard/useHoverCard.doc.mjs +2 -2
- package/src/Icon/Icon.doc.mjs +4 -3
- package/src/Icon/Icon.test.tsx +23 -0
- package/src/Icon/Icon.tsx +4 -2
- package/src/Icon/globalIconRegistry.test.tsx +87 -1
- package/src/Icon/globalIconRegistry.tsx +109 -9
- package/src/Icon/index.ts +9 -7
- package/src/Icon/useIcon.ts +23 -0
- package/src/IconButton/IconButton.doc.mjs +2 -2
- package/src/IconButton/IconButton.tsx +1 -1
- package/src/InputGroup/InputGroup.doc.mjs +2 -2
- package/src/InputGroup/InputGroup.tsx +1 -1
- package/src/InputGroup/InputGroupText.doc.mjs +1 -1
- package/src/InputGroup/InputGroupText.tsx +1 -1
- package/src/Item/Item.doc.mjs +3 -3
- package/src/Item/Item.tsx +1 -1
- package/src/Kbd/Kbd.doc.mjs +3 -3
- package/src/Kbd/Kbd.tsx +1 -1
- package/src/Layer/Layer.doc.mjs +2 -2
- package/src/Layer/useLayer.doc.mjs +2 -2
- package/src/Layout/Layout.doc.mjs +3 -3
- package/src/Layout/Layout.tsx +1 -1
- package/src/Layout/LayoutContent.doc.mjs +1 -1
- package/src/Layout/LayoutContent.tsx +1 -1
- package/src/Layout/LayoutFooter.doc.mjs +1 -1
- package/src/Layout/LayoutFooter.tsx +1 -1
- package/src/Layout/LayoutHeader.doc.mjs +1 -1
- package/src/Layout/LayoutHeader.tsx +1 -1
- package/src/Layout/LayoutPanel.doc.mjs +1 -1
- package/src/Layout/LayoutPanel.tsx +1 -1
- package/src/Lightbox/Lightbox.doc.mjs +3 -3
- package/src/Lightbox/Lightbox.test.tsx +33 -0
- package/src/Lightbox/Lightbox.tsx +16 -4
- package/src/Link/Link.doc.mjs +3 -3
- package/src/Link/Link.tsx +1 -1
- package/src/Link/LinkProvider.doc.mjs +2 -2
- package/src/Link/LinkProvider.tsx +2 -2
- package/src/List/List.doc.mjs +3 -3
- package/src/List/List.tsx +1 -1
- package/src/List/ListItem.doc.mjs +2 -2
- package/src/List/ListItem.tsx +1 -1
- package/src/Markdown/Markdown.doc.mjs +81 -1
- package/src/Markdown/Markdown.test.tsx +92 -0
- package/src/Markdown/Markdown.tsx +96 -68
- package/src/Markdown/parser.perf.test.ts +47 -35
- package/src/MetadataList/MetadataList.doc.mjs +3 -3
- package/src/MetadataList/MetadataList.tsx +1 -1
- package/src/MetadataList/MetadataListItem.doc.mjs +1 -1
- package/src/MetadataList/MetadataListItem.tsx +1 -1
- package/src/MobileNav/MobileNav.doc.mjs +3 -3
- package/src/MobileNav/MobileNav.tsx +1 -1
- package/src/MoreMenu/MoreMenu.doc.mjs +3 -3
- package/src/MoreMenu/MoreMenu.tsx +3 -3
- package/src/MultiSelector/MultiSelector.doc.mjs +35 -10
- package/src/MultiSelector/MultiSelector.test.tsx +220 -0
- package/src/MultiSelector/MultiSelector.tsx +201 -56
- package/src/NavIcon/NavIcon.doc.mjs +3 -3
- package/src/NavIcon/NavIcon.tsx +1 -1
- package/src/NavMenu/NavMenu.doc.mjs +2 -2
- package/src/NumberInput/NumberInput.doc.mjs +3 -3
- package/src/NumberInput/NumberInput.tsx +1 -1
- package/src/Outline/Outline.doc.mjs +3 -3
- package/src/Outline/Outline.tsx +1 -1
- package/src/OverflowList/OverflowList.doc.mjs +3 -3
- package/src/OverflowList/OverflowList.tsx +1 -1
- package/src/Overlay/Overlay.doc.mjs +2 -2
- package/src/Pagination/Pagination.doc.mjs +3 -3
- package/src/Pagination/Pagination.tsx +2 -22
- package/src/Pagination/index.ts +21 -1
- package/src/Popover/Popover.doc.mjs +31 -3
- package/src/Popover/Popover.test.tsx +41 -0
- package/src/Popover/Popover.tsx +25 -2
- package/src/Popover/usePopover.doc.mjs +2 -2
- package/src/Popover/usePopover.tsx +10 -4
- package/src/PowerSearch/PowerSearch.doc.mjs +3 -3
- package/src/PowerSearch/PowerSearch.tsx +1 -1
- package/src/ProgressBar/ProgressBar.doc.mjs +3 -3
- package/src/ProgressBar/ProgressBar.tsx +2 -22
- package/src/ProgressBar/index.ts +22 -5
- package/src/RadioList/RadioList.doc.mjs +3 -3
- package/src/RadioList/RadioList.tsx +1 -1
- package/src/RadioList/RadioListItem.doc.mjs +1 -1
- package/src/RadioList/RadioListItem.tsx +1 -1
- package/src/Resizable/Resizable.doc.mjs +2 -2
- package/src/Resizable/ResizeHandle.test.tsx +3 -2
- package/src/Resizable/ResizeHandle.tsx +8 -12
- package/src/Resizable/useResizable.doc.mjs +2 -2
- package/src/Section/Section.doc.mjs +3 -3
- package/src/Section/Section.tsx +2 -20
- package/src/Section/index.ts +20 -5
- package/src/SegmentedControl/SegmentedControl.doc.mjs +3 -3
- package/src/SegmentedControl/SegmentedControl.tsx +1 -1
- package/src/SegmentedControl/SegmentedControlItem.doc.mjs +1 -1
- package/src/SegmentedControl/SegmentedControlItem.tsx +1 -1
- package/src/SelectableCard/SelectableCard.doc.mjs +4 -2
- package/src/SelectableCard/SelectableCard.test.tsx +55 -0
- package/src/SelectableCard/SelectableCard.tsx +19 -3
- package/src/Selector/Selector.doc.mjs +28 -8
- package/src/Selector/Selector.test.tsx +193 -0
- package/src/Selector/Selector.tsx +194 -51
- package/src/Selector/SelectorOption.doc.mjs +1 -1
- package/src/SideNav/SideNav.doc.mjs +3 -3
- package/src/SideNav/SideNav.tsx +1 -1
- package/src/SideNav/SideNavCollapseButton.doc.mjs +1 -1
- package/src/SideNav/SideNavCollapseButton.tsx +4 -3
- package/src/SideNav/SideNavHeading.doc.mjs +1 -1
- package/src/SideNav/SideNavHeading.tsx +8 -9
- package/src/SideNav/SideNavItem.doc.mjs +1 -1
- package/src/SideNav/SideNavItem.tsx +5 -6
- package/src/SideNav/SideNavSection.doc.mjs +1 -1
- package/src/SideNav/SideNavSection.tsx +1 -1
- package/src/Skeleton/Skeleton.doc.mjs +3 -3
- package/src/Skeleton/Skeleton.tsx +1 -1
- package/src/Slider/Slider.doc.mjs +3 -3
- package/src/Slider/Slider.tsx +9 -13
- package/src/Spinner/Spinner.doc.mjs +3 -3
- package/src/Spinner/Spinner.tsx +1 -1
- package/src/Stack/Stack.doc.mjs +3 -3
- package/src/Stack/Stack.tsx +1 -1
- package/src/Stack/StackItem.tsx +1 -1
- package/src/StatusDot/StatusDot.doc.mjs +3 -3
- package/src/StatusDot/StatusDot.tsx +2 -22
- package/src/StatusDot/index.ts +22 -5
- package/src/Switch/Switch.doc.mjs +3 -3
- package/src/Switch/Switch.test.tsx +34 -0
- package/src/Switch/Switch.tsx +1 -1
- package/src/TabList/Tab.doc.mjs +1 -1
- package/src/TabList/Tab.tsx +1 -1
- package/src/TabList/TabList.doc.mjs +3 -3
- package/src/TabList/TabList.tsx +1 -1
- package/src/TabList/TabMenu.doc.mjs +1 -1
- package/src/TabList/TabMenu.tsx +1 -1
- package/src/Table/BaseTable.tsx +1 -1
- package/src/Table/Table.doc.mjs +3 -3
- package/src/Table/Table.tsx +1 -1
- package/src/Table/TableCell.doc.mjs +1 -1
- package/src/Table/TableCell.tsx +1 -1
- package/src/Table/TableHeaderCell.doc.mjs +1 -1
- package/src/Table/TableHeaderCell.tsx +1 -1
- package/src/Table/TableRow.doc.mjs +1 -1
- package/src/Table/TableRow.tsx +1 -1
- package/src/Table/plugins/rowExpansion/useTableRowExpansion.tsx +21 -3
- package/src/Table/plugins/tree/useTableTreeData.test.tsx +161 -2
- package/src/Table/plugins/tree/useTableTreeData.tsx +54 -1
- package/src/Table/useTableColumnResize.doc.mjs +1 -1
- package/src/Table/useTableColumnSettings.doc.mjs +1 -1
- package/src/Table/useTableFilterState.doc.mjs +1 -1
- package/src/Table/useTableFiltering.doc.mjs +1 -1
- package/src/Table/useTableGroupedRows.doc.mjs +2 -2
- package/src/Table/useTablePagination.doc.mjs +1 -1
- package/src/Table/useTableRowExpansion.doc.mjs +57 -4
- package/src/Table/useTableRowIndex.doc.mjs +2 -2
- package/src/Table/useTableRowStatus.doc.mjs +2 -2
- package/src/Table/useTableSelection.doc.mjs +1 -1
- package/src/Table/useTableSelectionState.doc.mjs +1 -1
- package/src/Table/useTableSortable.doc.mjs +1 -1
- package/src/Table/useTableStickyColumns.doc.mjs +1 -1
- package/src/Table/useTableTreeData.doc.mjs +10 -1
- package/src/Table/useTableTreeState.doc.mjs +1 -1
- package/src/Text/Heading.doc.mjs +4 -4
- package/src/Text/Text.doc.mjs +4 -4
- package/src/Text/Text.test.tsx +42 -0
- package/src/Text/Text.tsx +26 -2
- package/src/Text/index.ts +32 -6
- package/src/TextArea/TextArea.doc.mjs +5 -5
- package/src/TextArea/TextArea.test.tsx +112 -7
- package/src/TextArea/TextArea.tsx +143 -50
- package/src/TextInput/TextInput.doc.mjs +3 -3
- package/src/TextInput/TextInput.tsx +1 -1
- package/src/Thumbnail/Thumbnail.doc.mjs +2 -2
- package/src/Thumbnail/Thumbnail.test.tsx +24 -1
- package/src/Thumbnail/Thumbnail.tsx +28 -35
- package/src/TimeInput/TimeInput.doc.mjs +3 -3
- package/src/TimeInput/TimeInput.tsx +1 -1
- package/src/Timestamp/Timestamp.doc.mjs +5 -5
- package/src/Timestamp/Timestamp.test.tsx +131 -0
- package/src/Timestamp/Timestamp.tsx +92 -9
- package/src/Timestamp/formatInstant.ts +3 -4
- package/src/Timestamp/tooltipEntries.ts +3 -2
- package/src/Toast/Toast.doc.mjs +3 -3
- package/src/Toast/useToast.doc.mjs +2 -2
- package/src/ToggleButton/ToggleButton.doc.mjs +3 -3
- package/src/ToggleButton/ToggleButton.tsx +1 -1
- package/src/ToggleButton/ToggleButtonGroup.doc.mjs +1 -1
- package/src/ToggleButton/ToggleButtonGroup.tsx +3 -6
- package/src/Token/Token.doc.mjs +3 -3
- package/src/Token/Token.tsx +2 -28
- package/src/Token/index.ts +28 -1
- package/src/Tokenizer/Tokenizer.doc.mjs +3 -3
- package/src/Tokenizer/Tokenizer.tsx +1 -1
- package/src/Toolbar/Toolbar.doc.mjs +3 -3
- package/src/Toolbar/Toolbar.tsx +1 -1
- package/src/Tooltip/Tooltip.doc.mjs +3 -3
- package/src/Tooltip/Tooltip.tsx +1 -1
- package/src/Tooltip/useTooltip.doc.mjs +2 -2
- package/src/TopNav/TopNav.doc.mjs +3 -3
- package/src/TopNav/TopNav.tsx +1 -1
- package/src/TopNav/TopNavHeading.doc.mjs +1 -1
- package/src/TopNav/TopNavHeading.tsx +7 -8
- package/src/TopNav/TopNavItem.doc.mjs +1 -1
- package/src/TopNav/TopNavItem.tsx +1 -1
- package/src/TopNav/TopNavMegaMenu.doc.mjs +1 -1
- package/src/TopNav/TopNavMegaMenu.tsx +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.tsx +1 -1
- package/src/TreeList/TreeListBranches.tsx +1 -1
- package/src/TreeList/TreeListItem.tsx +4 -3
- package/src/TreeList/TreeListTypes.ts +1 -18
- package/src/TreeList/index.ts +19 -1
- package/src/Typeahead/BaseTypeahead.doc.mjs +1 -1
- package/src/Typeahead/BaseTypeahead.tsx +1 -1
- package/src/Typeahead/Typeahead.doc.mjs +3 -3
- package/src/Typeahead/Typeahead.tsx +1 -1
- package/src/Typeahead/TypeaheadItem.doc.mjs +1 -1
- package/src/Typeahead/TypeaheadItem.tsx +1 -1
- package/src/VStack/VStack.tsx +1 -1
- package/src/VisuallyHidden/VisuallyHidden.doc.mjs +3 -3
- package/src/VisuallyHidden/VisuallyHidden.tsx +1 -1
- package/src/__tests__/babelPluginAddExtensions.test.ts +190 -0
- package/src/__tests__/inputWidthContract.test.tsx +8 -1
- package/src/doc-mjs.d.ts +5 -2
- package/src/docPropLiterals.test.ts +1 -1
- package/src/docPropReferences.test.ts +1 -1
- package/src/hooks/containerReveal.pool.stylex.ts +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.tsx +1 -1
- package/src/hooks/useListFocus.doc.mjs +2 -2
- package/src/hooks/useListFocus.ts +8 -7
- package/src/hooks/useMediaQuery.doc.mjs +2 -2
- package/src/hooks/useOverflow.doc.mjs +2 -2
- package/src/hooks/useScrollLock.doc.mjs +2 -2
- package/src/hooks/useScrollOverflow.doc.mjs +2 -2
- package/src/hooks/useStreamingText.doc.mjs +2 -2
- package/src/hooks/useTreeFocus.doc.mjs +2 -2
- package/src/hooks/useTreeFocus.test.tsx +53 -1
- package/src/hooks/useTreeFocus.ts +13 -2
- package/src/i18n/InternationalizationProvider.doc.mjs +2 -2
- package/src/i18n/useTranslator.doc.mjs +2 -2
- package/src/index.ts +14 -10
- package/src/theme/MediaTheme.doc.mjs +2 -2
- package/src/theme/SyntaxTheme.doc.mjs +2 -2
- package/src/theme/Theme.doc.mjs +2 -2
- package/src/theme/Theme.tsx +3 -7
- package/src/theme/defineTheme.ts +11 -1
- package/src/theme/expandColorScale.test.ts +144 -0
- package/src/theme/expandColorScale.ts +53 -15
- package/src/theme/index.ts +11 -9
- package/src/theme/themeRegistry.test.ts +59 -0
- package/src/theme/themeRegistry.ts +53 -0
- package/src/theme/types.ts +14 -13
- package/src/theme/useTheme.doc.mjs +2 -2
- package/src/theme/useTheme.test.tsx +48 -3
- package/src/theme/useTheme.ts +100 -29
- package/src/utils/rtlStyles.ts +22 -0
- package/dist/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/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
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
3
|
import {describe, it, expect, vi} from 'vitest';
|
|
4
|
-
import {render, screen} from '@testing-library/react';
|
|
4
|
+
import {render, screen, fireEvent} from '@testing-library/react';
|
|
5
5
|
import userEvent from '@testing-library/user-event';
|
|
6
6
|
import {Thumbnail} from './Thumbnail';
|
|
7
7
|
|
|
@@ -219,4 +219,27 @@ describe('Thumbnail', () => {
|
|
|
219
219
|
expect(onRemove).toHaveBeenCalledOnce();
|
|
220
220
|
});
|
|
221
221
|
});
|
|
222
|
+
|
|
223
|
+
it('shows the placeholder when the image fails to load', () => {
|
|
224
|
+
render(<Thumbnail src="/broken.jpg" alt="Broken" data-testid="thumb" />);
|
|
225
|
+
|
|
226
|
+
fireEvent.error(screen.getByRole('img'));
|
|
227
|
+
|
|
228
|
+
expect(screen.queryByRole('img')).toBeNull();
|
|
229
|
+
const root = screen.getByTestId('thumb');
|
|
230
|
+
expect(root.querySelector('svg')).toBeInTheDocument();
|
|
231
|
+
});
|
|
232
|
+
|
|
233
|
+
it('retries a changed src after a load error', () => {
|
|
234
|
+
const {rerender} = render(
|
|
235
|
+
<Thumbnail src="/broken.jpg" alt="Photo" data-testid="thumb" />,
|
|
236
|
+
);
|
|
237
|
+
fireEvent.error(screen.getByRole('img'));
|
|
238
|
+
expect(screen.queryByRole('img')).toBeNull();
|
|
239
|
+
|
|
240
|
+
rerender(<Thumbnail src="/fixed.jpg" alt="Photo" data-testid="thumb" />);
|
|
241
|
+
|
|
242
|
+
const img = screen.getByRole('img');
|
|
243
|
+
expect(img).toHaveAttribute('src', '/fixed.jpg');
|
|
244
|
+
});
|
|
222
245
|
});
|
|
@@ -22,9 +22,10 @@
|
|
|
22
22
|
* - /packages/core/src/Thumbnail/Thumbnail.test.tsx
|
|
23
23
|
* - /packages/core/src/Thumbnail/index.ts
|
|
24
24
|
* - /apps/storybook/stories/Thumbnail.stories.tsx
|
|
25
|
-
* - /packages/cli/templates/blocks/components/Thumbnail/ (showcase blocks)
|
|
25
|
+
* - /packages/cli/assets/templates/blocks/components/Thumbnail/ (showcase blocks)
|
|
26
26
|
*/
|
|
27
27
|
|
|
28
|
+
import {useState} from 'react';
|
|
28
29
|
import * as stylex from '@stylexjs/stylex';
|
|
29
30
|
import {
|
|
30
31
|
colorVars,
|
|
@@ -39,11 +40,11 @@ import {Skeleton} from '../Skeleton';
|
|
|
39
40
|
import {Spinner} from '../Spinner';
|
|
40
41
|
import {Tooltip} from '../Tooltip/Tooltip';
|
|
41
42
|
import {useDevWarning} from '../hooks/useDevWarning';
|
|
43
|
+
import {useContainerReveal} from '../hooks/useContainerReveal';
|
|
42
44
|
import type {BaseProps} from '../BaseProps';
|
|
43
45
|
import {mergeProps} from '../utils';
|
|
44
46
|
import {themeProps} from '../utils/themeProps';
|
|
45
47
|
import {useTranslator} from '../i18n';
|
|
46
|
-
import {thumbnailScope} from './thumbnail.markers.stylex';
|
|
47
48
|
|
|
48
49
|
export interface ThumbnailProps extends BaseProps<HTMLDivElement> {
|
|
49
50
|
/** Ref forwarded to the root element */
|
|
@@ -236,28 +237,6 @@ const styles = stylex.create({
|
|
|
236
237
|
zIndex: 1,
|
|
237
238
|
lineHeight: 0,
|
|
238
239
|
},
|
|
239
|
-
// showRemoveOn="hover": the remove button is hidden at rest and revealed
|
|
240
|
-
// when the thumbnail is hovered or when focus enters it (keyboard). Only
|
|
241
|
-
// opacity is animated — the button stays mounted and focusable so tabbing
|
|
242
|
-
// to it triggers the :focus-within reveal. Any touch-capable device (incl.
|
|
243
|
-
// hybrid laptops that also report hover) keeps the button visible so the
|
|
244
|
-
// remove path is never gated behind an unavailable hover.
|
|
245
|
-
removeOnHover: {
|
|
246
|
-
opacity: {
|
|
247
|
-
default: 0,
|
|
248
|
-
[stylex.when.ancestor(':hover', thumbnailScope)]: {
|
|
249
|
-
'@media (hover: hover)': 1,
|
|
250
|
-
},
|
|
251
|
-
[stylex.when.ancestor(':focus-within', thumbnailScope)]: 1,
|
|
252
|
-
'@media (any-pointer: coarse)': 1,
|
|
253
|
-
},
|
|
254
|
-
transitionProperty: 'opacity',
|
|
255
|
-
transitionDuration: {
|
|
256
|
-
default: durationVars['--duration-fast'],
|
|
257
|
-
'@media (prefers-reduced-motion: reduce)': '0s',
|
|
258
|
-
},
|
|
259
|
-
transitionTimingFunction: easeVars['--ease-standard'],
|
|
260
|
-
},
|
|
261
240
|
});
|
|
262
241
|
|
|
263
242
|
// =============================================================================
|
|
@@ -318,14 +297,22 @@ export function Thumbnail({
|
|
|
318
297
|
}: ThumbnailProps) {
|
|
319
298
|
const t = useTranslator();
|
|
320
299
|
|
|
300
|
+
// Track the exact src that failed (rather than a boolean) so a changed src
|
|
301
|
+
// gets a fresh load attempt instead of the stale error.
|
|
302
|
+
const [erroredSrc, setErroredSrc] = useState<string | undefined>(undefined);
|
|
303
|
+
|
|
321
304
|
const hasSrc = src != null;
|
|
305
|
+
const hasError = hasSrc && erroredSrc === src;
|
|
322
306
|
const showSkeleton = isLoading && !hasSrc;
|
|
323
|
-
const showImage = hasSrc && !showSkeleton;
|
|
307
|
+
const showImage = hasSrc && !showSkeleton && !hasError;
|
|
324
308
|
const showUploadOverlay = isLoading && hasSrc;
|
|
325
|
-
const showPlaceholder = !isLoading && !hasSrc;
|
|
309
|
+
const showPlaceholder = (!isLoading && !hasSrc) || hasError;
|
|
326
310
|
const isInteractive = onClick != null && !isDisabled && !isLoading;
|
|
327
311
|
const hasRemove = onRemove != null && !isDisabled;
|
|
328
312
|
const isHoverReveal = hasRemove && showRemoveOn === 'hover';
|
|
313
|
+
const {getContainerProps, getContentRevealProps} = useContainerReveal({
|
|
314
|
+
isEnabled: isHoverReveal,
|
|
315
|
+
});
|
|
329
316
|
const accessibleName =
|
|
330
317
|
label && alt
|
|
331
318
|
? `${label} — ${alt}`
|
|
@@ -363,6 +350,7 @@ export function Thumbnail({
|
|
|
363
350
|
alt={alt ?? ''}
|
|
364
351
|
role={isImageDecorative ? 'presentation' : undefined}
|
|
365
352
|
aria-hidden={isImageDecorative || undefined}
|
|
353
|
+
onError={() => setErroredSrc(src)}
|
|
366
354
|
{...stylex.props(styles.image)}
|
|
367
355
|
/>
|
|
368
356
|
)}
|
|
@@ -377,9 +365,12 @@ export function Thumbnail({
|
|
|
377
365
|
|
|
378
366
|
const removeButtonEl = hasRemove ? (
|
|
379
367
|
<div
|
|
380
|
-
{...
|
|
381
|
-
styles.removeSlot,
|
|
382
|
-
|
|
368
|
+
{...mergeProps(
|
|
369
|
+
stylex.props(styles.removeSlot),
|
|
370
|
+
// The remove button is absolutely positioned in the corner, so it is
|
|
371
|
+
// already out of flow — an opacity-only reveal (layout preserved)
|
|
372
|
+
// matches its overlay placement instead of the clip recipe.
|
|
373
|
+
isHoverReveal ? getContentRevealProps({isLayoutPreserved: true}) : {},
|
|
383
374
|
)}>
|
|
384
375
|
<Button
|
|
385
376
|
icon={<Icon icon="close" size="xsm" />}
|
|
@@ -410,12 +401,14 @@ export function Thumbnail({
|
|
|
410
401
|
)}
|
|
411
402
|
{...props}>
|
|
412
403
|
<div
|
|
413
|
-
{...
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
404
|
+
{...mergeProps(
|
|
405
|
+
stylex.props(
|
|
406
|
+
styles.imageContainer,
|
|
407
|
+
isInteractive && styles.interactive,
|
|
408
|
+
isInteractive && styles.overlay,
|
|
409
|
+
isInteractive && styles.hoverOnPointer,
|
|
410
|
+
),
|
|
411
|
+
isHoverReveal ? getContainerProps() : {},
|
|
419
412
|
)}>
|
|
420
413
|
{isInteractive ? (
|
|
421
414
|
<button
|
|
@@ -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: 'TimeInput',
|
|
@@ -262,7 +262,7 @@ export const docs = {
|
|
|
262
262
|
},
|
|
263
263
|
};
|
|
264
264
|
|
|
265
|
-
/** @type {import('
|
|
265
|
+
/** @type {import('@astryxdesign/cli/authoring').ComponentDoc} */
|
|
266
266
|
export const docsZh = {
|
|
267
267
|
name: 'TimeInput',
|
|
268
268
|
|
|
@@ -489,7 +489,7 @@ export const docsZh = {
|
|
|
489
489
|
},
|
|
490
490
|
};
|
|
491
491
|
|
|
492
|
-
/** @type {import('
|
|
492
|
+
/** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
|
|
493
493
|
export const docsDense = {
|
|
494
494
|
description:
|
|
495
495
|
'Time input that converts free-text entry to standard format with arrow-key adjustment.',
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* - /packages/core/src/TimeInput/TimeInput.test.tsx (tests for new/changed behavior)
|
|
14
14
|
* - /packages/core/src/TimeInput/index.ts (exports if types change)
|
|
15
15
|
* - /apps/storybook/stories/TimeInput.stories.tsx (storybook stories)
|
|
16
|
-
* - /packages/cli/templates/blocks/components/TimeInput/ (showcase blocks)
|
|
16
|
+
* - /packages/cli/assets/templates/blocks/components/TimeInput/ (showcase blocks)
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
19
|
import {
|
|
@@ -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: 'Timestamp',
|
|
@@ -26,9 +26,9 @@ export const docs = {
|
|
|
26
26
|
},
|
|
27
27
|
{
|
|
28
28
|
name: 'format',
|
|
29
|
-
type: "'relative' | 'auto' | 'date' | 'date_long' | 'date_weekday' | 'date_time' | 'time' | 'system_date' | 'system_date_time' | 'system_time'",
|
|
29
|
+
type: "'relative' | 'relative_short' | 'auto' | 'date' | 'date_long' | 'date_weekday' | 'date_time' | 'time' | 'system_date' | 'system_date_time' | 'system_time'",
|
|
30
30
|
description:
|
|
31
|
-
"Display format. 'relative' shows '2 hours ago', 'date' shows 'Mar 21, 2025', 'date_long' shows 'March 21, 2025', 'date_weekday' shows 'Wed, Mar 21, 2025', 'date_time' shows 'Mar 21, 2025, 2:51 PM', 'time' shows '2:51 PM', 'system_*' variants use ISO-style formatting, 'auto' switches from relative to date_time based on recency.",
|
|
31
|
+
"Display format. 'relative' shows '2 hours ago', 'relative_short' shows the same tiers abbreviated ('2h ago', '1d ago', '3mo ago') for compact surfaces, 'date' shows 'Mar 21, 2025', 'date_long' shows 'March 21, 2025', 'date_weekday' shows 'Wed, Mar 21, 2025', 'date_time' shows 'Mar 21, 2025, 2:51 PM', 'time' shows '2:51 PM', 'system_*' variants use ISO-style formatting, 'auto' switches from relative to date_time based on recency.",
|
|
32
32
|
default: "'auto'",
|
|
33
33
|
},
|
|
34
34
|
{
|
|
@@ -117,7 +117,7 @@ export const docs = {
|
|
|
117
117
|
},
|
|
118
118
|
};
|
|
119
119
|
|
|
120
|
-
/** @type {import('
|
|
120
|
+
/** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
|
|
121
121
|
export const docsZh = {
|
|
122
122
|
propDescriptions: {
|
|
123
123
|
value: '\u8981\u663e\u793a\u7684\u65e5\u671f/\u65f6\u95f4\u3002\u63a5\u53d7 Unix \u65f6\u95f4\u6233\uff08\u79d2\uff09\u6216 ISO 8601 \u5b57\u7b26\u4e32\u3002',
|
|
@@ -158,7 +158,7 @@ export const docsZh = {
|
|
|
158
158
|
},
|
|
159
159
|
};
|
|
160
160
|
|
|
161
|
-
/** @type {import('
|
|
161
|
+
/** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
|
|
162
162
|
export const docsDense = {
|
|
163
163
|
description: 'formatted timestamp with relative/absolute/auto modes, live updates, timezone display, multi-zone tooltip',
|
|
164
164
|
usage: {
|
|
@@ -88,6 +88,137 @@ describe('Timestamp', () => {
|
|
|
88
88
|
expect(screen.getByText('yesterday')).toBeInTheDocument();
|
|
89
89
|
});
|
|
90
90
|
|
|
91
|
+
// --- relative_short format ---
|
|
92
|
+
|
|
93
|
+
describe('relative_short format', () => {
|
|
94
|
+
it('renders "now" for very recent times', () => {
|
|
95
|
+
render(
|
|
96
|
+
<Timestamp value={Date.now() / 1000 - 5} format="relative_short" />,
|
|
97
|
+
);
|
|
98
|
+
expect(screen.getByText('now')).toBeInTheDocument();
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
it('abbreviates each past tier (s/m/h/d/mo/y)', () => {
|
|
102
|
+
const {rerender} = render(
|
|
103
|
+
<Timestamp value={Date.now() / 1000 - 30} format="relative_short" />,
|
|
104
|
+
);
|
|
105
|
+
expect(screen.getByText('30s ago')).toBeInTheDocument();
|
|
106
|
+
|
|
107
|
+
rerender(
|
|
108
|
+
<Timestamp
|
|
109
|
+
value={Date.now() / 1000 - 5 * 60}
|
|
110
|
+
format="relative_short"
|
|
111
|
+
/>,
|
|
112
|
+
);
|
|
113
|
+
expect(screen.getByText('5m ago')).toBeInTheDocument();
|
|
114
|
+
|
|
115
|
+
rerender(
|
|
116
|
+
<Timestamp
|
|
117
|
+
value={Date.now() / 1000 - 2 * 3600}
|
|
118
|
+
format="relative_short"
|
|
119
|
+
/>,
|
|
120
|
+
);
|
|
121
|
+
expect(screen.getByText('2h ago')).toBeInTheDocument();
|
|
122
|
+
|
|
123
|
+
rerender(
|
|
124
|
+
<Timestamp
|
|
125
|
+
value={Date.now() / 1000 - 3 * 86400}
|
|
126
|
+
format="relative_short"
|
|
127
|
+
/>,
|
|
128
|
+
);
|
|
129
|
+
expect(screen.getByText('3d ago')).toBeInTheDocument();
|
|
130
|
+
|
|
131
|
+
rerender(
|
|
132
|
+
<Timestamp
|
|
133
|
+
value={Date.now() / 1000 - 90 * 86400}
|
|
134
|
+
format="relative_short"
|
|
135
|
+
/>,
|
|
136
|
+
);
|
|
137
|
+
expect(screen.getByText('3mo ago')).toBeInTheDocument();
|
|
138
|
+
|
|
139
|
+
rerender(
|
|
140
|
+
<Timestamp
|
|
141
|
+
value={Date.now() / 1000 - 730 * 86400}
|
|
142
|
+
format="relative_short"
|
|
143
|
+
/>,
|
|
144
|
+
);
|
|
145
|
+
expect(screen.getByText('2y ago')).toBeInTheDocument();
|
|
146
|
+
});
|
|
147
|
+
|
|
148
|
+
it('uses "mo" for months so it never collides with "m" (minutes)', () => {
|
|
149
|
+
// 45 days → months tier. A bare "m" here would be indistinguishable from
|
|
150
|
+
// the minutes unit, so months must render as "mo".
|
|
151
|
+
render(
|
|
152
|
+
<Timestamp
|
|
153
|
+
value={Date.now() / 1000 - 45 * 86400}
|
|
154
|
+
format="relative_short"
|
|
155
|
+
/>,
|
|
156
|
+
);
|
|
157
|
+
expect(screen.getByText('1mo ago')).toBeInTheDocument();
|
|
158
|
+
});
|
|
159
|
+
|
|
160
|
+
it('renders a single day as "1d ago" (no "yesterday" idiom in short form)', () => {
|
|
161
|
+
render(
|
|
162
|
+
<Timestamp
|
|
163
|
+
value={Date.now() / 1000 - 100000}
|
|
164
|
+
format="relative_short"
|
|
165
|
+
/>,
|
|
166
|
+
);
|
|
167
|
+
expect(screen.getByText('1d ago')).toBeInTheDocument();
|
|
168
|
+
});
|
|
169
|
+
|
|
170
|
+
it('renders future times with the "in" prefix and abbreviated units', () => {
|
|
171
|
+
const {rerender} = render(
|
|
172
|
+
<Timestamp
|
|
173
|
+
value={Date.now() / 1000 + 5 * 60}
|
|
174
|
+
format="relative_short"
|
|
175
|
+
/>,
|
|
176
|
+
);
|
|
177
|
+
expect(screen.getByText('in 5m')).toBeInTheDocument();
|
|
178
|
+
|
|
179
|
+
rerender(
|
|
180
|
+
<Timestamp
|
|
181
|
+
value={Date.now() / 1000 + 2 * 3600}
|
|
182
|
+
format="relative_short"
|
|
183
|
+
/>,
|
|
184
|
+
);
|
|
185
|
+
expect(screen.getByText('in 2h')).toBeInTheDocument();
|
|
186
|
+
});
|
|
187
|
+
|
|
188
|
+
it('does not round a tier up past its own boundary', () => {
|
|
189
|
+
const {rerender} = render(
|
|
190
|
+
<Timestamp value={Date.now() / 1000 - 3599} format="relative_short" />,
|
|
191
|
+
);
|
|
192
|
+
expect(screen.getByText('59m ago')).toBeInTheDocument();
|
|
193
|
+
|
|
194
|
+
rerender(
|
|
195
|
+
<Timestamp value={Date.now() / 1000 - 86399} format="relative_short" />,
|
|
196
|
+
);
|
|
197
|
+
expect(screen.getByText('23h ago')).toBeInTheDocument();
|
|
198
|
+
});
|
|
199
|
+
|
|
200
|
+
it('treats a hair in the future as "now" (clock skew)', () => {
|
|
201
|
+
render(
|
|
202
|
+
<Timestamp value={Date.now() / 1000 + 2} format="relative_short" />,
|
|
203
|
+
);
|
|
204
|
+
expect(screen.getByText('now')).toBeInTheDocument();
|
|
205
|
+
});
|
|
206
|
+
|
|
207
|
+
it('keeps the full absolute date as the accessible name', () => {
|
|
208
|
+
render(
|
|
209
|
+
<Timestamp
|
|
210
|
+
value={Date.now() / 1000 - 2 * 3600}
|
|
211
|
+
format="relative_short"
|
|
212
|
+
/>,
|
|
213
|
+
);
|
|
214
|
+
const el = screen.getByText('2h ago');
|
|
215
|
+
// Same a11y contract as the long relative form: the visible short label
|
|
216
|
+
// is backed by the full absolute date for screen readers.
|
|
217
|
+
expect(el).toHaveAttribute('aria-label');
|
|
218
|
+
expect(el.getAttribute('aria-label')).not.toBe('2h ago');
|
|
219
|
+
});
|
|
220
|
+
});
|
|
221
|
+
|
|
91
222
|
// --- Standard display formats ---
|
|
92
223
|
|
|
93
224
|
it('renders date format', () => {
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* - /packages/core/src/Timestamp/Timestamp.test.tsx
|
|
14
14
|
* - /packages/core/src/Timestamp/index.ts
|
|
15
15
|
* - /apps/storybook/stories/Timestamp.stories.tsx
|
|
16
|
-
* - /packages/cli/templates/blocks/components/Timestamp/ (showcase blocks)
|
|
16
|
+
* - /packages/cli/assets/templates/blocks/components/Timestamp/ (showcase blocks)
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
19
|
import {useEffect, useRef, useState, lazy, Suspense, Fragment} from 'react';
|
|
@@ -39,6 +39,7 @@ const LazyXDSTooltip = lazy(async () =>
|
|
|
39
39
|
|
|
40
40
|
export type TimestampFormat =
|
|
41
41
|
| 'relative'
|
|
42
|
+
| 'relative_short'
|
|
42
43
|
| 'auto'
|
|
43
44
|
| 'date'
|
|
44
45
|
| 'date_long'
|
|
@@ -57,6 +58,9 @@ export interface TimestampProps extends BaseProps<HTMLTimeElement> {
|
|
|
57
58
|
/**
|
|
58
59
|
* Display format.
|
|
59
60
|
* - `'relative'`: "2 hours ago", "yesterday", "now"
|
|
61
|
+
* - `'relative_short'`: "2h ago", "1d ago", "now" — the same tiers as
|
|
62
|
+
* `'relative'` with abbreviated units (s/m/h/d/mo/y), for compact,
|
|
63
|
+
* space-constrained surfaces
|
|
60
64
|
* - `'auto'`: Relative for recent times, `date_time` for older
|
|
61
65
|
* - `'date'`: "Mar 21, 2025"
|
|
62
66
|
* - `'date_long'`: "March 21, 2025"
|
|
@@ -298,6 +302,69 @@ function getRelativeTimeString(date: Date, now: Date): string {
|
|
|
298
302
|
return `${years} ${years === 1 ? 'year' : 'years'} ago`;
|
|
299
303
|
}
|
|
300
304
|
|
|
305
|
+
/**
|
|
306
|
+
* The compact sibling of `getRelativeTimeString`: the same tier boundaries and
|
|
307
|
+
* present/future-skew handling, rendered with abbreviated units for
|
|
308
|
+
* space-constrained surfaces (chat metadata, dense tables, chips).
|
|
309
|
+
*
|
|
310
|
+
* Units follow the common compact convention (and the Microsoft Style Guide):
|
|
311
|
+
* `s` seconds, `m` minutes, `h` hours, `d` days, `mo` months, `y` years.
|
|
312
|
+
* Months use `mo` — not `m` — because `m` already means minutes; a bare `m`
|
|
313
|
+
* for months would be ambiguous. The value is always numeric (no "yesterday"
|
|
314
|
+
* idiom, which belongs to the long form) so the short form stays predictable
|
|
315
|
+
* and easy to scan. The `ago` / `in` affixes are kept so direction stays
|
|
316
|
+
* unambiguous at a glance.
|
|
317
|
+
*/
|
|
318
|
+
function getRelativeTimeShortString(date: Date, now: Date): string {
|
|
319
|
+
const diffSeconds = Math.round((now.getTime() - date.getTime()) / 1000);
|
|
320
|
+
|
|
321
|
+
// Present clamp — identical to the long form (see getRelativeTimeString).
|
|
322
|
+
if (Math.abs(diffSeconds) < 10) {
|
|
323
|
+
return 'now';
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
if (diffSeconds < 0) {
|
|
327
|
+
// Future dates.
|
|
328
|
+
const absDiff = Math.abs(diffSeconds);
|
|
329
|
+
if (absDiff <= FUTURE_SKEW_TOLERANCE) {
|
|
330
|
+
return 'now';
|
|
331
|
+
}
|
|
332
|
+
if (absDiff < MINUTE) {
|
|
333
|
+
return `in ${absDiff}s`;
|
|
334
|
+
}
|
|
335
|
+
if (absDiff < HOUR) {
|
|
336
|
+
return `in ${Math.floor(absDiff / MINUTE)}m`;
|
|
337
|
+
}
|
|
338
|
+
if (absDiff < DAY) {
|
|
339
|
+
return `in ${Math.floor(absDiff / HOUR)}h`;
|
|
340
|
+
}
|
|
341
|
+
if (absDiff < MONTH) {
|
|
342
|
+
return `in ${Math.floor(absDiff / DAY)}d`;
|
|
343
|
+
}
|
|
344
|
+
if (absDiff < YEAR) {
|
|
345
|
+
return `in ${Math.floor(absDiff / MONTH)}mo`;
|
|
346
|
+
}
|
|
347
|
+
return `in ${Math.floor(absDiff / YEAR)}y`;
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
if (diffSeconds < MINUTE) {
|
|
351
|
+
return `${diffSeconds}s ago`;
|
|
352
|
+
}
|
|
353
|
+
if (diffSeconds < HOUR) {
|
|
354
|
+
return `${Math.floor(diffSeconds / MINUTE)}m ago`;
|
|
355
|
+
}
|
|
356
|
+
if (diffSeconds < DAY) {
|
|
357
|
+
return `${Math.floor(diffSeconds / HOUR)}h ago`;
|
|
358
|
+
}
|
|
359
|
+
if (diffSeconds < MONTH) {
|
|
360
|
+
return `${Math.floor(diffSeconds / DAY)}d ago`;
|
|
361
|
+
}
|
|
362
|
+
if (diffSeconds < YEAR) {
|
|
363
|
+
return `${Math.floor(diffSeconds / MONTH)}mo ago`;
|
|
364
|
+
}
|
|
365
|
+
return `${Math.floor(diffSeconds / YEAR)}y ago`;
|
|
366
|
+
}
|
|
367
|
+
|
|
301
368
|
/** Returns the interval (in ms) at which a relative timestamp should update. */
|
|
302
369
|
function getLiveInterval(diffSeconds: number): number {
|
|
303
370
|
const absDiff = Math.abs(diffSeconds);
|
|
@@ -316,8 +383,22 @@ function getLiveInterval(diffSeconds: number): number {
|
|
|
316
383
|
/** Whether a format is non-relative (i.e. shows a fixed date/time). */
|
|
317
384
|
function isAbsoluteFormat(
|
|
318
385
|
format: TimestampFormat,
|
|
319
|
-
): format is Exclude<TimestampFormat, 'relative' | 'auto'> {
|
|
320
|
-
return
|
|
386
|
+
): format is Exclude<TimestampFormat, 'relative' | 'relative_short' | 'auto'> {
|
|
387
|
+
return (
|
|
388
|
+
format !== 'relative' && format !== 'relative_short' && format !== 'auto'
|
|
389
|
+
);
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
/**
|
|
393
|
+
* Whether a format renders a relative phrase ("2 hours ago" / "2h ago") rather
|
|
394
|
+
* than a fixed instant. Both the long and short relative forms share the same
|
|
395
|
+
* treatment: they get the accessible full-date name, the hover tooltip, and
|
|
396
|
+
* live updates.
|
|
397
|
+
*/
|
|
398
|
+
function isRelativeFormat(
|
|
399
|
+
format: TimestampFormat,
|
|
400
|
+
): format is 'relative' | 'relative_short' {
|
|
401
|
+
return format === 'relative' || format === 'relative_short';
|
|
321
402
|
}
|
|
322
403
|
|
|
323
404
|
// =============================================================================
|
|
@@ -384,16 +465,18 @@ export function Timestamp({
|
|
|
384
465
|
? ''
|
|
385
466
|
: effectiveFormat === 'relative'
|
|
386
467
|
? getRelativeTimeString(date, now)
|
|
387
|
-
:
|
|
388
|
-
?
|
|
389
|
-
:
|
|
468
|
+
: effectiveFormat === 'relative_short'
|
|
469
|
+
? getRelativeTimeShortString(date, now)
|
|
470
|
+
: isAbsoluteFormat(effectiveFormat)
|
|
471
|
+
? formatInstant(date, effectiveFormat, {isTimezoneShown})
|
|
472
|
+
: '';
|
|
390
473
|
|
|
391
474
|
// Full absolute text for tooltip and aria-label
|
|
392
475
|
const fullAbsoluteText = isValidDate ? formatInstant(date, 'full') : '';
|
|
393
476
|
|
|
394
477
|
// Live updates
|
|
395
478
|
useEffect(() => {
|
|
396
|
-
if (!isLive || !isValidDate || effectiveFormat
|
|
479
|
+
if (!isLive || !isValidDate || !isRelativeFormat(effectiveFormat)) {
|
|
397
480
|
return;
|
|
398
481
|
}
|
|
399
482
|
|
|
@@ -428,7 +511,7 @@ export function Timestamp({
|
|
|
428
511
|
// silently suppress another prop's output, so entry presence opens it too.
|
|
429
512
|
// With no entries this reduces to the original condition exactly.
|
|
430
513
|
const showTooltip =
|
|
431
|
-
hasTooltip && (effectiveFormat
|
|
514
|
+
hasTooltip && (isRelativeFormat(effectiveFormat) || entries !== undefined);
|
|
432
515
|
|
|
433
516
|
const timestampProps = mergeProps(
|
|
434
517
|
themeProps('timestamp', {format: effectiveFormat}),
|
|
@@ -447,7 +530,7 @@ export function Timestamp({
|
|
|
447
530
|
ref={mergeRefs(ref, timeRef)}
|
|
448
531
|
dateTime={isoString}
|
|
449
532
|
aria-label={
|
|
450
|
-
effectiveFormat
|
|
533
|
+
isRelativeFormat(effectiveFormat) ? fullAbsoluteText : undefined
|
|
451
534
|
}
|
|
452
535
|
// The absolute-time tooltip is anchored here with the default 'auto'
|
|
453
536
|
// focus trigger, which only activates on focusable anchors. A bare
|
|
@@ -41,12 +41,11 @@ import type {TimestampFormat} from './Timestamp';
|
|
|
41
41
|
* style ("February 19, 2026 at 5:00:00 PM UTC") that backs a relative
|
|
42
42
|
* timestamp's accessible name and the tooltip's default line.
|
|
43
43
|
*
|
|
44
|
-
* `'relative'` and `'auto'` are excluded: a relative
|
|
45
|
-
* so a zone could not change what it says.
|
|
44
|
+
* `'relative'`, `'relative_short'`, and `'auto'` are excluded: a relative
|
|
45
|
+
* phrase names no instant, so a zone could not change what it says.
|
|
46
46
|
*/
|
|
47
47
|
export type InstantFormat =
|
|
48
|
-
|
|
49
|
-
| 'full';
|
|
48
|
+
Exclude<TimestampFormat, 'relative' | 'relative_short' | 'auto'> | 'full';
|
|
50
49
|
|
|
51
50
|
export interface FormatInstantOptions {
|
|
52
51
|
/**
|
|
@@ -34,8 +34,9 @@ import type {InstantFormat} from './formatInstant';
|
|
|
34
34
|
*
|
|
35
35
|
* Every `TimestampFormat` that names a fixed instant, plus `'full'` — the long
|
|
36
36
|
* absolute style the tooltip has always shown ("February 19, 2026 at 5:00:00 PM
|
|
37
|
-
* UTC"). `'relative'` and `'auto'` are excluded: a
|
|
38
|
-
* zone, which would make `timezoneID` silently
|
|
37
|
+
* UTC"). `'relative'`, `'relative_short'`, and `'auto'` are excluded: a
|
|
38
|
+
* relative phrase ignores any zone, which would make `timezoneID` silently
|
|
39
|
+
* inert on that line.
|
|
39
40
|
*
|
|
40
41
|
* `'full'` lives only in this vocabulary, never in `TimestampFormat` — nothing
|
|
41
42
|
* asked for it as a visible display format, and keeping it out means new
|
package/src/Toast/Toast.doc.mjs
CHANGED
|
@@ -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: 'Toast',
|
|
@@ -92,7 +92,7 @@ export const docs = {
|
|
|
92
92
|
// See .context/decisions/dense-compression-protocol.md
|
|
93
93
|
// -------------------------------------------------------
|
|
94
94
|
|
|
95
|
-
/** @type {import('
|
|
95
|
+
/** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
|
|
96
96
|
export const docsZh = {
|
|
97
97
|
propDescriptions: {
|
|
98
98
|
body: '主要消息内容。',
|
|
@@ -124,7 +124,7 @@ export const docsZh = {
|
|
|
124
124
|
},
|
|
125
125
|
};
|
|
126
126
|
|
|
127
|
-
/** @type {import('
|
|
127
|
+
/** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
|
|
128
128
|
export const docsDense = {
|
|
129
129
|
description:
|
|
130
130
|
'toast notification w/ auto-dismiss, stacking, dedup, smooth animations; MediaTheme inverted surface',
|
|
@@ -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: 'useToast',
|
|
6
6
|
displayName: 'useToast',
|
|
@@ -31,7 +31,7 @@ export const docs = {
|
|
|
31
31
|
category: 'interaction',
|
|
32
32
|
};
|
|
33
33
|
|
|
34
|
-
/** @type {import('
|
|
34
|
+
/** @type {import('@astryxdesign/cli/authoring').HookTranslationDoc} */
|
|
35
35
|
export const docsDense = {
|
|
36
36
|
description: 'Show toast notifications from anywhere in component tree. Returns function accepting toast options + showing notification. Works automatically w/ LayerProvider / self-mounts fallback viewport.',
|
|
37
37
|
returnDescriptions: {
|
|
@@ -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: 'ToggleButton',
|
|
@@ -139,7 +139,7 @@ export const docs = {
|
|
|
139
139
|
},
|
|
140
140
|
};
|
|
141
141
|
|
|
142
|
-
/** @type {import('
|
|
142
|
+
/** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
|
|
143
143
|
export const docsZh = {
|
|
144
144
|
usage: {
|
|
145
145
|
description:
|
|
@@ -161,7 +161,7 @@ export const docsZh = {
|
|
|
161
161
|
},
|
|
162
162
|
};
|
|
163
163
|
|
|
164
|
-
/** @type {import('
|
|
164
|
+
/** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
|
|
165
165
|
export const docsDense = {
|
|
166
166
|
description: 'toggle btn w/ pressed/unpressed states, icon swap, group integration for single/multi-select',
|
|
167
167
|
usage: {
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
* SYNC: When modified, update these files to stay in sync:
|
|
18
18
|
* - /packages/core/src/ToggleButton/index.ts (exports if types change)
|
|
19
19
|
* - /apps/storybook/stories/ToggleButton.stories.tsx
|
|
20
|
-
* - /packages/cli/templates/blocks/components/ToggleButton/ (showcase blocks)
|
|
20
|
+
* - /packages/cli/assets/templates/blocks/components/ToggleButton/ (showcase blocks)
|
|
21
21
|
*/
|
|
22
22
|
|
|
23
23
|
import React, {useOptimistic, type ReactNode} from 'react';
|