@astryxdesign/core 0.1.4 → 0.1.5-canary.76e6697
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 +141 -0
- package/dist/AlertDialog/AlertDialog.d.ts +1 -1
- package/dist/AlertDialog/AlertDialog.d.ts.map +1 -1
- package/dist/AlertDialog/AlertDialog.js +20 -18
- package/dist/AlertDialog/useImperativeAlertDialog.d.ts +0 -2
- package/dist/AlertDialog/useImperativeAlertDialog.d.ts.map +1 -1
- package/dist/AlertDialog/useImperativeAlertDialog.js +3 -5
- package/dist/AppShell/AppShell.d.ts +1 -1
- package/dist/AppShell/AppShell.d.ts.map +1 -1
- package/dist/AppShell/AppShell.js +55 -53
- package/dist/AspectRatio/AspectRatio.d.ts +48 -10
- package/dist/AspectRatio/AspectRatio.d.ts.map +1 -1
- package/dist/AspectRatio/AspectRatio.js +33 -12
- package/dist/AspectRatio/index.d.ts +1 -1
- package/dist/AspectRatio/index.d.ts.map +1 -1
- package/dist/Avatar/Avatar.d.ts.map +1 -1
- package/dist/Avatar/Avatar.js +28 -26
- package/dist/Avatar/AvatarStatusDot.js +6 -6
- package/dist/AvatarGroup/AvatarGroup.js +6 -6
- package/dist/AvatarGroup/AvatarGroupOverflow.js +7 -7
- package/dist/Badge/Badge.js +3 -3
- package/dist/Banner/Banner.d.ts.map +1 -1
- package/dist/Banner/Banner.js +32 -25
- package/dist/Blockquote/Blockquote.js +7 -7
- package/dist/Breadcrumbs/BreadcrumbItem.js +17 -17
- package/dist/Breadcrumbs/Breadcrumbs.js +7 -7
- package/dist/Button/Button.js +19 -19
- package/dist/ButtonGroup/ButtonGroup.js +7 -7
- package/dist/Calendar/Calendar.d.ts.map +1 -1
- package/dist/Calendar/Calendar.js +68 -48
- package/dist/Calendar/dayCellUtils.d.ts.map +1 -1
- package/dist/Calendar/styles.d.ts +2 -2
- package/dist/Calendar/styles.d.ts.map +1 -1
- package/dist/Calendar/styles.js +2 -2
- package/dist/Card/Card.d.ts +4 -2
- package/dist/Card/Card.d.ts.map +1 -1
- package/dist/Card/Card.js +18 -10
- package/dist/Carousel/Carousel.d.ts.map +1 -1
- package/dist/Carousel/Carousel.js +24 -21
- package/dist/Center/Center.js +3 -3
- package/dist/Chat/ChatComposer.js +23 -23
- package/dist/Chat/ChatComposerDrawer.js +14 -14
- package/dist/Chat/ChatComposerInput.d.ts +1 -1
- package/dist/Chat/ChatComposerInput.d.ts.map +1 -1
- package/dist/Chat/ChatComposerInput.js +27 -15
- package/dist/Chat/ChatDictationButton.d.ts +1 -1
- package/dist/Chat/ChatDictationButton.d.ts.map +1 -1
- package/dist/Chat/ChatDictationButton.js +13 -11
- package/dist/Chat/ChatLayout.js +17 -17
- package/dist/Chat/ChatLayoutScrollButton.d.ts +1 -1
- package/dist/Chat/ChatLayoutScrollButton.d.ts.map +1 -1
- package/dist/Chat/ChatLayoutScrollButton.js +12 -10
- package/dist/Chat/ChatMessage.js +12 -12
- package/dist/Chat/ChatMessageBubble.js +7 -7
- package/dist/Chat/ChatMessageList.js +14 -14
- package/dist/Chat/ChatMessageMetadata.d.ts +1 -1
- package/dist/Chat/ChatMessageMetadata.d.ts.map +1 -1
- package/dist/Chat/ChatMessageMetadata.js +14 -12
- package/dist/Chat/ChatPastedTextToken.js +13 -13
- package/dist/Chat/ChatSendButton.js +3 -3
- package/dist/Chat/ChatSystemMessage.d.ts +1 -1
- package/dist/Chat/ChatSystemMessage.d.ts.map +1 -1
- package/dist/Chat/ChatSystemMessage.js +17 -17
- package/dist/Chat/ChatTokenizedText.d.ts +1 -1
- package/dist/Chat/ChatTokenizedText.d.ts.map +1 -1
- package/dist/Chat/ChatTokenizedText.js +24 -15
- package/dist/Chat/ChatToolCalls.d.ts.map +1 -1
- package/dist/Chat/ChatToolCalls.js +81 -74
- package/dist/Chat/index.d.ts +1 -1
- package/dist/Chat/index.d.ts.map +1 -1
- package/dist/Chat/useTriggerMenu.d.ts.map +1 -1
- package/dist/Chat/useTriggerMenu.js +15 -15
- package/dist/CheckboxInput/CheckboxInput.d.ts +1 -1
- package/dist/CheckboxInput/CheckboxInput.d.ts.map +1 -1
- package/dist/CheckboxInput/CheckboxInput.js +25 -23
- package/dist/CheckboxList/CheckboxList.js +9 -9
- package/dist/CheckboxList/CheckboxListItem.d.ts +1 -1
- package/dist/CheckboxList/CheckboxListItem.d.ts.map +1 -1
- package/dist/CheckboxList/CheckboxListItem.js +8 -6
- package/dist/Citation/Citation.js +10 -10
- package/dist/ClickableCard/ClickableCard.d.ts.map +1 -1
- package/dist/ClickableCard/ClickableCard.js +32 -9
- package/dist/Code/Code.js +3 -3
- package/dist/CodeBlock/CodeBlock.d.ts +10 -1
- package/dist/CodeBlock/CodeBlock.d.ts.map +1 -1
- package/dist/CodeBlock/CodeBlock.js +88 -52
- package/dist/Collapsible/Collapsible.d.ts +9 -3
- package/dist/Collapsible/Collapsible.d.ts.map +1 -1
- package/dist/Collapsible/Collapsible.js +109 -22
- package/dist/Collapsible/CollapsibleGroup.d.ts +37 -7
- package/dist/Collapsible/CollapsibleGroup.d.ts.map +1 -1
- package/dist/Collapsible/CollapsibleGroup.js +64 -12
- package/dist/Collapsible/CollapsibleGroupContext.d.ts +24 -0
- package/dist/Collapsible/CollapsibleGroupContext.d.ts.map +1 -1
- package/dist/Collapsible/CollapsibleGroupContext.js +26 -3
- package/dist/Collapsible/index.d.ts +1 -0
- package/dist/Collapsible/index.d.ts.map +1 -1
- package/dist/Collapsible/useCollapsible.d.ts +4 -1
- package/dist/Collapsible/useCollapsible.d.ts.map +1 -1
- package/dist/Collapsible/useCollapsible.js +20 -6
- package/dist/CommandPalette/CommandPalette.d.ts.map +1 -1
- package/dist/CommandPalette/CommandPalette.js +36 -34
- package/dist/CommandPalette/CommandPaletteEmpty.js +3 -3
- package/dist/CommandPalette/CommandPaletteFooter.js +16 -16
- package/dist/CommandPalette/CommandPaletteGroup.js +5 -5
- package/dist/CommandPalette/CommandPaletteInput.js +13 -13
- package/dist/CommandPalette/CommandPaletteItem.js +3 -3
- package/dist/CommandPalette/CommandPaletteList.js +3 -3
- package/dist/ContextMenu/ContextMenu.d.ts +7 -2
- package/dist/ContextMenu/ContextMenu.d.ts.map +1 -1
- package/dist/ContextMenu/ContextMenu.js +76 -43
- package/dist/DateInput/DateInput.js +18 -18
- package/dist/DateRangeInput/DateRangeInput.js +21 -21
- package/dist/DateTimeInput/DateTimeInput.d.ts +5 -2
- package/dist/DateTimeInput/DateTimeInput.d.ts.map +1 -1
- package/dist/DateTimeInput/DateTimeInput.js +30 -26
- package/dist/DateTimeInput/index.d.ts +1 -1
- package/dist/DateTimeInput/index.d.ts.map +1 -1
- package/dist/Dialog/Dialog.js +9 -9
- package/dist/Dialog/DialogHeader.js +16 -16
- package/dist/Dialog/useImperativeDialog.js +3 -3
- package/dist/Divider/Divider.js +7 -7
- package/dist/DropdownMenu/DropdownMenu.js +10 -10
- package/dist/DropdownMenu/DropdownMenuItem.d.ts +2 -17
- package/dist/DropdownMenu/DropdownMenuItem.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenuItem.js +3 -3
- package/dist/DropdownMenu/renderDropdownItems.js +10 -10
- package/dist/EmptyState/EmptyState.js +9 -9
- package/dist/Field/Field.js +17 -17
- package/dist/Field/FieldLabel.js +15 -15
- package/dist/Field/InputClearButton.js +5 -5
- package/dist/FieldStatus/FieldStatus.js +3 -3
- package/dist/FileInput/FileInput.js +29 -29
- package/dist/FormLayout/FormLayout.js +5 -5
- package/dist/Grid/Grid.d.ts +4 -3
- package/dist/Grid/Grid.d.ts.map +1 -1
- package/dist/Grid/Grid.js +29 -12
- package/dist/Grid/GridSpan.js +3 -3
- package/dist/HStack/HStack.js +3 -3
- package/dist/Heading/Heading.js +10 -10
- package/dist/HoverCard/HoverCard.js +9 -9
- package/dist/HoverCard/useHoverCard.d.ts +5 -1
- package/dist/HoverCard/useHoverCard.d.ts.map +1 -1
- package/dist/HoverCard/useHoverCard.js +3 -3
- package/dist/Icon/Icon.d.ts.map +1 -1
- package/dist/Icon/Icon.js +16 -12
- package/dist/Icon/defaultIcons.js +116 -116
- package/dist/IconButton/IconButton.js +3 -3
- package/dist/InputGroup/InputGroup.js +11 -11
- package/dist/InputGroup/InputGroupText.js +3 -3
- package/dist/Item/Item.js +18 -18
- package/dist/Kbd/Kbd.js +5 -5
- package/dist/Layer/LayerProvider.js +7 -7
- package/dist/Layer/useLayer.d.ts +29 -2
- package/dist/Layer/useLayer.d.ts.map +1 -1
- package/dist/Layer/useLayer.js +44 -31
- package/dist/Layout/Layout.js +21 -21
- package/dist/Layout/LayoutContent.js +3 -3
- package/dist/Layout/LayoutFooter.js +5 -5
- package/dist/Layout/LayoutHeader.js +5 -5
- package/dist/Layout/LayoutPanel.js +3 -3
- package/dist/Lightbox/Lightbox.d.ts.map +1 -1
- package/dist/Lightbox/Lightbox.js +55 -31
- package/dist/Lightbox/useLightbox.d.ts +0 -1
- package/dist/Lightbox/useLightbox.d.ts.map +1 -1
- package/dist/Lightbox/useLightbox.js +3 -4
- package/dist/Link/Link.d.ts +0 -2
- package/dist/Link/Link.d.ts.map +1 -1
- package/dist/Link/Link.js +15 -17
- package/dist/Link/LinkProvider.js +3 -3
- package/dist/Link/useLinkify.js +3 -3
- package/dist/List/List.js +11 -11
- package/dist/List/ListItem.js +11 -11
- package/dist/Markdown/Markdown.d.ts.map +1 -1
- package/dist/Markdown/Markdown.js +102 -102
- package/dist/MetadataList/MetadataList.js +10 -10
- package/dist/MetadataList/MetadataListItem.js +15 -15
- package/dist/MobileNav/MobileNav.d.ts +1 -1
- package/dist/MobileNav/MobileNav.d.ts.map +1 -1
- package/dist/MobileNav/MobileNav.js +26 -23
- package/dist/MobileNav/MobileNavToggle.js +5 -5
- package/dist/MoreMenu/MoreMenu.js +3 -3
- package/dist/MultiSelector/MultiSelector.js +56 -56
- package/dist/NavIcon/NavIcon.js +3 -3
- package/dist/NavMenu/NavHeadingMenu.js +5 -5
- package/dist/NavMenu/NavHeadingMenuItem.js +8 -8
- package/dist/NumberInput/NumberInput.d.ts.map +1 -1
- package/dist/NumberInput/NumberInput.js +48 -32
- package/dist/Outline/Outline.js +15 -15
- package/dist/OverflowList/OverflowList.js +8 -8
- package/dist/Overlay/Overlay.js +3 -3
- package/dist/Overlay/OverlayScrim.js +5 -5
- package/dist/Overlay/useOverlay.d.ts +0 -3
- package/dist/Overlay/useOverlay.d.ts.map +1 -1
- package/dist/Overlay/useOverlay.js +3 -6
- package/dist/Pagination/Pagination.d.ts +1 -1
- package/dist/Pagination/Pagination.d.ts.map +1 -1
- package/dist/Pagination/Pagination.js +125 -72
- package/dist/Popover/Popover.js +16 -16
- package/dist/Popover/usePopover.js +7 -7
- package/dist/PowerSearch/PowerSearch.d.ts.map +1 -1
- package/dist/PowerSearch/PowerSearch.js +110 -92
- package/dist/PowerSearch/PowerSearchEditPopover.js +84 -84
- package/dist/PowerSearch/PowerSearchFilterEditor.js +3 -3
- package/dist/PowerSearch/PowerSearchToken.js +5 -5
- package/dist/PowerSearch/PowerSearchValueEditor.js +54 -54
- package/dist/ProgressBar/ProgressBar.d.ts.map +1 -1
- package/dist/ProgressBar/ProgressBar.js +25 -18
- package/dist/RadioList/RadioList.js +7 -7
- package/dist/RadioList/RadioListItem.d.ts +1 -1
- package/dist/RadioList/RadioListItem.d.ts.map +1 -1
- package/dist/RadioList/RadioListItem.js +24 -21
- package/dist/Resizable/ResizeHandle.d.ts.map +1 -1
- package/dist/Resizable/ResizeHandle.js +28 -10
- package/dist/Section/Section.js +5 -5
- package/dist/SegmentedControl/SegmentedControl.d.ts +1 -1
- package/dist/SegmentedControl/SegmentedControl.d.ts.map +1 -1
- package/dist/SegmentedControl/SegmentedControl.js +32 -10
- package/dist/SegmentedControl/SegmentedControlItem.d.ts +1 -1
- package/dist/SegmentedControl/SegmentedControlItem.d.ts.map +1 -1
- package/dist/SegmentedControl/SegmentedControlItem.js +18 -12
- package/dist/SelectableCard/SelectableCard.js +5 -5
- package/dist/Selector/Selector.js +46 -46
- package/dist/Selector/SelectorOption.js +3 -3
- package/dist/SideNav/SideNav.d.ts.map +1 -1
- package/dist/SideNav/SideNav.js +38 -34
- package/dist/SideNav/SideNavCollapseButton.d.ts +1 -1
- package/dist/SideNav/SideNavCollapseButton.d.ts.map +1 -1
- package/dist/SideNav/SideNavCollapseButton.js +8 -6
- package/dist/SideNav/SideNavHeading.js +87 -87
- package/dist/SideNav/SideNavItem.js +42 -42
- package/dist/SideNav/SideNavSection.d.ts +1 -1
- package/dist/SideNav/SideNavSection.d.ts.map +1 -1
- package/dist/SideNav/SideNavSection.js +18 -16
- package/dist/Skeleton/Skeleton.js +3 -3
- package/dist/Slider/Slider.js +23 -23
- package/dist/Spinner/Spinner.js +9 -9
- package/dist/StatusDot/StatusDot.js +5 -5
- package/dist/Switch/Switch.d.ts +8 -4
- package/dist/Switch/Switch.d.ts.map +1 -1
- package/dist/Switch/Switch.js +34 -29
- package/dist/TabList/Tab.js +18 -18
- package/dist/TabList/TabList.js +5 -5
- package/dist/TabList/TabMenu.d.ts.map +1 -1
- package/dist/TabList/TabMenu.js +57 -30
- package/dist/TabList/tab.markers.stylex.d.ts +1 -1
- package/dist/Table/BaseTable.d.ts.map +1 -1
- package/dist/Table/BaseTable.js +50 -39
- package/dist/Table/Table.js +7 -7
- package/dist/Table/TableBody.d.ts +1 -1
- package/dist/Table/TableBody.d.ts.map +1 -1
- package/dist/Table/TableBody.js +9 -5
- package/dist/Table/TableCell.js +3 -3
- package/dist/Table/TableFooter.d.ts +1 -1
- package/dist/Table/TableFooter.d.ts.map +1 -1
- package/dist/Table/TableFooter.js +9 -5
- package/dist/Table/TableHeader.d.ts +1 -1
- package/dist/Table/TableHeader.d.ts.map +1 -1
- package/dist/Table/TableHeader.js +9 -5
- package/dist/Table/TableHeaderCell.js +3 -3
- package/dist/Table/TableRow.js +5 -5
- package/dist/Table/index.d.ts +2 -0
- package/dist/Table/index.d.ts.map +1 -1
- package/dist/Table/index.js +1 -0
- package/dist/Table/plugins/columnResize/useTableColumnResize.d.ts.map +1 -1
- package/dist/Table/plugins/columnResize/useTableColumnResize.js +14 -11
- package/dist/Table/plugins/filtering/useTableFiltering.js +71 -71
- package/dist/Table/plugins/groupedRows/index.d.ts +3 -0
- package/dist/Table/plugins/groupedRows/index.d.ts.map +1 -0
- package/dist/Table/plugins/groupedRows/index.js +3 -0
- package/dist/Table/plugins/groupedRows/useTableGroupedRows.d.ts +78 -0
- package/dist/Table/plugins/groupedRows/useTableGroupedRows.d.ts.map +1 -0
- package/dist/Table/plugins/groupedRows/useTableGroupedRows.js +250 -0
- package/dist/Table/plugins/pagination/paginateData.d.ts.map +1 -1
- package/dist/Table/plugins/pagination/paginateData.js +5 -1
- package/dist/Table/plugins/pagination/useTablePagination.js +7 -7
- package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts +1 -1
- package/dist/Table/plugins/rowExpansion/useTableRowExpansion.js +23 -23
- package/dist/Table/plugins/selection/useTableSelection.js +18 -18
- package/dist/Table/plugins/selection/useTableSelectionState.d.ts.map +1 -1
- package/dist/Table/plugins/selection/useTableSelectionState.js +11 -1
- package/dist/Table/plugins/sortable/useTableSortable.js +17 -17
- package/dist/Table/plugins/sortable/useTableSortableState.d.ts.map +1 -1
- package/dist/Table/plugins/sortable/useTableSortableState.js +8 -4
- package/dist/Table/tableContextMenu.js +9 -9
- package/dist/Text/Text.js +10 -10
- package/dist/TextArea/TextArea.js +14 -14
- package/dist/TextInput/TextInput.js +15 -15
- package/dist/Thumbnail/Thumbnail.d.ts +3 -2
- package/dist/Thumbnail/Thumbnail.d.ts.map +1 -1
- package/dist/Thumbnail/Thumbnail.js +30 -29
- package/dist/TimeInput/TimeInput.d.ts.map +1 -1
- package/dist/TimeInput/TimeInput.js +26 -21
- package/dist/Timestamp/Timestamp.d.ts +1 -1
- package/dist/Timestamp/Timestamp.d.ts.map +1 -1
- package/dist/Timestamp/Timestamp.js +37 -26
- package/dist/Toast/Toast.d.ts.map +1 -1
- package/dist/Toast/Toast.js +25 -17
- package/dist/Toast/ToastViewport.d.ts.map +1 -1
- package/dist/Toast/ToastViewport.js +23 -11
- package/dist/Toast/useToast.d.ts.map +1 -1
- package/dist/Toast/useToast.js +44 -4
- package/dist/ToggleButton/ToggleButton.js +12 -12
- package/dist/ToggleButton/ToggleButtonGroup.js +5 -5
- package/dist/Token/Token.js +21 -21
- package/dist/Tokenizer/Tokenizer.d.ts.map +1 -1
- package/dist/Tokenizer/Tokenizer.js +36 -34
- package/dist/Toolbar/Toolbar.js +18 -18
- package/dist/Tooltip/Tooltip.js +11 -11
- package/dist/Tooltip/useTooltip.d.ts +5 -1
- package/dist/Tooltip/useTooltip.d.ts.map +1 -1
- package/dist/Tooltip/useTooltip.js +3 -3
- package/dist/TopNav/TopNav.js +32 -32
- package/dist/TopNav/TopNavHeading.js +67 -67
- package/dist/TopNav/TopNavItem.js +5 -5
- package/dist/TopNav/TopNavMegaMenu.js +30 -30
- package/dist/TopNav/TopNavMegaMenuFeaturedCard.d.ts +1 -1
- package/dist/TopNav/TopNavMegaMenuFeaturedCard.d.ts.map +1 -1
- package/dist/TopNav/TopNavMegaMenuFeaturedCard.js +25 -14
- package/dist/TopNav/TopNavMegaMenuItem.js +16 -16
- package/dist/TopNav/TopNavMenu.js +32 -32
- package/dist/TreeList/TreeList.js +8 -8
- package/dist/TreeList/TreeListBranches.js +11 -11
- package/dist/TreeList/TreeListItem.js +30 -30
- package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
- package/dist/Typeahead/BaseTypeahead.js +23 -20
- package/dist/Typeahead/Typeahead.js +12 -12
- package/dist/Typeahead/TypeaheadItem.js +10 -10
- package/dist/VStack/VStack.js +3 -3
- package/dist/VisuallyHidden/VisuallyHidden.d.ts +0 -3
- package/dist/VisuallyHidden/VisuallyHidden.d.ts.map +1 -1
- package/dist/VisuallyHidden/VisuallyHidden.js +0 -3
- package/dist/astryx.css +7 -0
- package/dist/astryx.umd.js +63 -63
- package/dist/astryx.umd.js.map +4 -4
- package/dist/docs-types.d.ts +8 -2
- package/dist/docs-types.d.ts.map +1 -1
- package/dist/hooks/focusableSelector.d.ts +1 -1
- package/dist/hooks/focusableSelector.d.ts.map +1 -1
- package/dist/hooks/focusableSelector.js +1 -1
- package/dist/hooks/index.d.ts +2 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +1 -0
- package/dist/hooks/useFocusTrap.d.ts +3 -0
- package/dist/hooks/useFocusTrap.d.ts.map +1 -1
- package/dist/hooks/useFocusTrap.js +38 -1
- package/dist/hooks/useHotkeys.d.ts +51 -0
- package/dist/hooks/useHotkeys.d.ts.map +1 -0
- package/dist/hooks/useHotkeys.js +160 -0
- package/dist/hooks/useInteractiveRole.d.ts +6 -2
- package/dist/hooks/useInteractiveRole.d.ts.map +1 -1
- package/dist/hooks/useInteractiveRole.js +6 -2
- package/dist/hooks/useKeyboardHint.js +9 -9
- package/dist/hooks/useStreamingText.d.ts +3 -1
- package/dist/hooks/useStreamingText.d.ts.map +1 -1
- package/dist/hooks/useStreamingText.js +14 -5
- package/dist/theme/MediaTheme.js +3 -3
- package/dist/theme/Theme.js +7 -7
- package/dist/theme/defineTheme.d.ts +1 -1
- package/dist/theme/defineTheme.d.ts.map +1 -1
- package/dist/theme/expandColorScale.d.ts.map +1 -1
- package/dist/theme/expandColorScale.js +10 -3
- package/dist/theme/hct.d.ts +0 -15
- package/dist/theme/hct.d.ts.map +1 -1
- package/dist/theme/hct.js +9 -9
- package/dist/theme/syntax/SyntaxTheme.js +5 -5
- package/dist/theme/tokens.d.ts +10 -2
- package/dist/theme/tokens.d.ts.map +1 -1
- package/dist/theme/tokens.js +220 -4
- package/dist/theme/useTheme.d.ts +3 -2
- package/dist/theme/useTheme.d.ts.map +1 -1
- package/dist/theme/useTheme.js +73 -6
- package/dist/utils/color.d.ts +42 -0
- package/dist/utils/color.d.ts.map +1 -0
- package/dist/utils/color.js +150 -0
- package/dist/utils/composeEventHandlers.d.ts +30 -0
- package/dist/utils/composeEventHandlers.d.ts.map +1 -0
- package/dist/utils/composeEventHandlers.js +40 -0
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +3 -1
- package/dist/utils/timeParser.d.ts.map +1 -1
- package/dist/utils/timeParser.js +8 -5
- package/package.json +4 -4
- package/src/AlertDialog/AlertDialog.doc.mjs +4 -0
- package/src/AlertDialog/AlertDialog.tsx +2 -0
- package/src/AlertDialog/useImperativeAlertDialog.tsx +0 -2
- package/src/AppShell/AppShell.tsx +2 -0
- package/src/AspectRatio/AspectRatio.doc.mjs +28 -1
- package/src/AspectRatio/AspectRatio.test.tsx +142 -1
- package/src/AspectRatio/AspectRatio.tsx +70 -10
- package/src/AspectRatio/index.ts +5 -1
- package/src/Avatar/Avatar.doc.mjs +11 -0
- package/src/Avatar/Avatar.test.tsx +32 -1
- package/src/Avatar/Avatar.tsx +14 -22
- package/src/Avatar/AvatarStatusDot.tsx +2 -2
- package/src/AvatarGroup/AvatarGroup.doc.mjs +1 -0
- package/src/AvatarGroup/AvatarGroup.tsx +2 -2
- package/src/AvatarGroup/AvatarGroupOverflow.tsx +2 -2
- package/src/Banner/Banner.doc.mjs +8 -0
- package/src/Banner/Banner.test.tsx +38 -0
- package/src/Banner/Banner.tsx +8 -1
- package/src/Calendar/Calendar.doc.mjs +1 -1
- package/src/Calendar/Calendar.test.tsx +122 -17
- package/src/Calendar/Calendar.tsx +26 -5
- package/src/Calendar/dayCellUtils.ts +3 -1
- package/src/Calendar/styles.ts +12 -2
- package/src/Card/Card.doc.mjs +1 -1
- package/src/Card/Card.tsx +16 -6
- package/src/Carousel/Carousel.doc.mjs +12 -12
- package/src/Carousel/Carousel.test.tsx +13 -0
- package/src/Carousel/Carousel.tsx +4 -2
- package/src/Chat/Chat.doc.mjs +1 -1
- package/src/Chat/ChatComposerInput.test.tsx +27 -1
- package/src/Chat/ChatComposerInput.tsx +20 -15
- package/src/Chat/ChatDictationButton.test.tsx +43 -0
- package/src/Chat/ChatDictationButton.tsx +4 -4
- package/src/Chat/ChatLayoutScrollButton.test.tsx +33 -0
- package/src/Chat/ChatLayoutScrollButton.tsx +3 -1
- package/src/Chat/ChatMessageMetadata.test.tsx +32 -0
- package/src/Chat/ChatMessageMetadata.tsx +4 -6
- package/src/Chat/ChatSystemMessage.test.tsx +26 -11
- package/src/Chat/ChatSystemMessage.tsx +7 -7
- package/src/Chat/ChatTokenizedText.test.tsx +29 -16
- package/src/Chat/ChatTokenizedText.tsx +15 -8
- package/src/Chat/ChatToolCalls.test.tsx +55 -0
- package/src/Chat/ChatToolCalls.tsx +10 -12
- package/src/Chat/index.ts +1 -4
- package/src/Chat/useTriggerMenu.tsx +1 -4
- package/src/CheckboxInput/CheckboxInput.doc.mjs +3 -3
- package/src/CheckboxInput/CheckboxInput.test.tsx +71 -4
- package/src/CheckboxInput/CheckboxInput.tsx +2 -0
- package/src/CheckboxList/CheckboxList.test.tsx +19 -0
- package/src/CheckboxList/CheckboxListItem.tsx +11 -2
- package/src/Citation/Citation.doc.mjs +5 -0
- package/src/ClickableCard/ClickableCard.tsx +45 -2
- package/src/CodeBlock/CodeBlock.doc.mjs +7 -2
- package/src/CodeBlock/CodeBlock.test.tsx +122 -3
- package/src/CodeBlock/CodeBlock.tsx +62 -4
- package/src/Collapsible/Collapsible.doc.mjs +8 -4
- package/src/Collapsible/Collapsible.test.tsx +403 -0
- package/src/Collapsible/Collapsible.tsx +85 -10
- package/src/Collapsible/CollapsibleGroup.doc.mjs +27 -3
- package/src/Collapsible/CollapsibleGroup.test.tsx +314 -0
- package/src/Collapsible/CollapsibleGroup.tsx +97 -9
- package/src/Collapsible/CollapsibleGroupContext.tsx +34 -2
- package/src/Collapsible/index.ts +1 -0
- package/src/Collapsible/useCollapsible.ts +20 -6
- package/src/CommandPalette/CommandPalette.doc.mjs +5 -0
- package/src/CommandPalette/CommandPalette.tsx +5 -3
- package/src/CommandPalette/CommandPaletteEmpty.doc.mjs +5 -0
- package/src/CommandPalette/CommandPaletteGroup.doc.mjs +10 -0
- package/src/CommandPalette/CommandPaletteInput.doc.mjs +6 -0
- package/src/CommandPalette/CommandPaletteItem.doc.mjs +6 -0
- package/src/CommandPalette/CommandPaletteList.doc.mjs +9 -0
- package/src/ContextMenu/ContextMenu.doc.mjs +15 -0
- package/src/ContextMenu/ContextMenu.test.tsx +87 -0
- package/src/ContextMenu/ContextMenu.tsx +87 -28
- package/src/ContextMenu/ContextMenuItem.doc.mjs +6 -0
- package/src/DateInput/DateInput.test.tsx +11 -20
- package/src/DateRangeInput/DateRangeInput.doc.mjs +9 -6
- package/src/DateRangeInput/DateRangeInput.test.tsx +31 -44
- package/src/DateTimeInput/DateTimeInput.doc.mjs +3 -2
- package/src/DateTimeInput/DateTimeInput.test.tsx +118 -16
- package/src/DateTimeInput/DateTimeInput.tsx +8 -2
- package/src/DateTimeInput/index.ts +1 -0
- package/src/Dialog/Dialog.doc.mjs +4 -0
- package/src/Dialog/DialogHeader.doc.mjs +45 -0
- package/src/DropdownMenu/DropdownMenu.doc.mjs +1 -1
- package/src/DropdownMenu/DropdownMenu.test.tsx +22 -2
- package/src/DropdownMenu/DropdownMenuItem.tsx +5 -17
- package/src/EmptyState/EmptyState.doc.mjs +1 -1
- package/src/Field/Field.test.tsx +1 -4
- package/src/Field/FieldLabel.test.tsx +2 -2
- package/src/FieldStatus/FieldStatus.test.tsx +282 -0
- package/src/FormLayout/__snapshots__/FormLayout.test.tsx.snap +0 -3
- package/src/Grid/Grid.test.tsx +43 -18
- package/src/Grid/Grid.tsx +26 -9
- package/src/HoverCard/HoverCard.doc.mjs +6 -6
- package/src/HoverCard/useHoverCard.doc.mjs +5 -5
- package/src/HoverCard/useHoverCard.tsx +9 -2
- package/src/Icon/Icon.test.tsx +41 -29
- package/src/Icon/Icon.tsx +6 -2
- package/src/InputGroup/InputGroup.doc.mjs +1 -0
- package/src/InputGroup/InputGroup.tsx +2 -2
- package/src/InteractiveRoleContext/InteractiveRoleContext.test.tsx +185 -0
- package/src/Item/Item.tsx +1 -1
- package/src/Layer/useLayer.doc.mjs +2 -2
- package/src/Layer/useLayer.test.tsx +221 -2
- package/src/Layer/useLayer.tsx +69 -30
- package/src/Layout/Layout.test.tsx +285 -0
- package/src/Layout/LayoutContent.doc.mjs +12 -0
- package/src/Layout/LayoutPanel.doc.mjs +40 -0
- package/src/Layout/LayoutSlots.test.tsx +364 -0
- package/src/Lightbox/Lightbox.doc.mjs +5 -0
- package/src/Lightbox/Lightbox.test.tsx +123 -2
- package/src/Lightbox/Lightbox.tsx +29 -1
- package/src/Lightbox/useLightbox.tsx +0 -1
- package/src/Link/Link.tsx +0 -2
- package/src/Markdown/Markdown.tsx +9 -7
- package/src/Markdown/parser.perf.test.ts +34 -12
- package/src/MobileNav/MobileNav.test.tsx +56 -0
- package/src/MobileNav/MobileNav.tsx +13 -8
- package/src/NavMenu/NavMenu.doc.mjs +15 -0
- package/src/NumberInput/NumberInput.test.tsx +48 -3
- package/src/NumberInput/NumberInput.tsx +32 -15
- package/src/Outline/Outline.doc.mjs +2 -0
- package/src/Outline/parseOutlineFromMarkdown.test.ts +80 -0
- package/src/OverflowList/OverflowList.test.tsx +416 -0
- package/src/Overlay/Overlay.doc.mjs +6 -0
- package/src/Overlay/Overlay.test.tsx +356 -0
- package/src/Overlay/useOverlay.tsx +0 -3
- package/src/Pagination/Pagination.test.tsx +162 -0
- package/src/Pagination/Pagination.tsx +80 -26
- package/src/Popover/Popover.doc.mjs +6 -6
- package/src/Popover/Popover.test.tsx +65 -0
- package/src/Popover/usePopover.doc.mjs +1 -1
- package/src/PowerSearch/PowerSearch.doc.mjs +2 -2
- package/src/PowerSearch/PowerSearch.test.tsx +109 -1
- package/src/PowerSearch/PowerSearch.tsx +37 -16
- package/src/ProgressBar/ProgressBar.doc.mjs +2 -0
- package/src/ProgressBar/ProgressBar.test.tsx +30 -0
- package/src/ProgressBar/ProgressBar.tsx +12 -5
- package/src/RadioList/RadioList.test.tsx +19 -0
- package/src/RadioList/RadioListItem.tsx +9 -4
- package/src/Resizable/ResizeHandle.test.tsx +218 -0
- package/src/Resizable/ResizeHandle.tsx +22 -4
- package/src/SegmentedControl/SegmentedControl.doc.mjs +1 -1
- package/src/SegmentedControl/SegmentedControl.test.tsx +192 -0
- package/src/SegmentedControl/SegmentedControl.tsx +27 -5
- package/src/SegmentedControl/SegmentedControlItem.tsx +9 -4
- package/src/SelectableCard/SelectableCard.doc.mjs +1 -1
- package/src/Selector/Selector.test.tsx +27 -1
- package/src/SideNav/SideNav.doc.mjs +7 -1
- package/src/SideNav/SideNav.test.tsx +66 -0
- package/src/SideNav/SideNav.tsx +6 -2
- package/src/SideNav/SideNavCollapseButton.tsx +4 -3
- package/src/SideNav/SideNavSection.tsx +6 -4
- package/src/SizeContext/SizeContext.test.tsx +226 -0
- package/src/Switch/Switch.doc.mjs +7 -7
- package/src/Switch/Switch.test.tsx +102 -3
- package/src/Switch/Switch.tsx +20 -7
- package/src/TabList/TabList.test.tsx +185 -1
- package/src/TabList/TabMenu.tsx +45 -9
- package/src/Table/BaseTable.tsx +13 -2
- package/src/Table/Table.doc.mjs +6 -1
- package/src/Table/Table.test.tsx +87 -0
- package/src/Table/TableBody.tsx +15 -2
- package/src/Table/TableFooter.tsx +15 -2
- package/src/Table/TableHeader.tsx +15 -2
- package/src/Table/index.ts +5 -0
- package/src/Table/plugins/columnResize/useTableColumnResize.test.tsx +13 -0
- package/src/Table/plugins/columnResize/useTableColumnResize.tsx +3 -1
- package/src/Table/plugins/groupedRows/index.ts +7 -0
- package/src/Table/plugins/groupedRows/useTableGroupedRows.test.tsx +231 -0
- package/src/Table/plugins/groupedRows/useTableGroupedRows.tsx +349 -0
- package/src/Table/plugins/pagination/paginateData.ts +5 -1
- package/src/Table/plugins/pagination/useTablePagination.test.tsx +13 -0
- package/src/Table/plugins/rowExpansion/useTableRowExpansion.tsx +1 -1
- package/src/Table/plugins/selection/useTableSelectionState.test.tsx +23 -0
- package/src/Table/plugins/selection/useTableSelectionState.tsx +11 -6
- package/src/Table/plugins/sortable/useTableSortableState.test.tsx +35 -1
- package/src/Table/plugins/sortable/useTableSortableState.tsx +8 -4
- package/src/Table/useTableGroupedRows.doc.mjs +71 -0
- package/src/TextArea/TextArea.test.tsx +3 -3
- package/src/TextInput/TextInput.test.tsx +3 -3
- package/src/Thumbnail/Thumbnail.test.tsx +36 -2
- package/src/Thumbnail/Thumbnail.tsx +4 -2
- package/src/TimeInput/TimeInput.test.tsx +37 -0
- package/src/TimeInput/TimeInput.tsx +11 -1
- package/src/Timestamp/Timestamp.doc.mjs +1 -1
- package/src/Timestamp/Timestamp.test.tsx +52 -0
- package/src/Timestamp/Timestamp.tsx +30 -16
- package/src/Toast/Toast.tsx +11 -3
- package/src/Toast/ToastViewport.test.tsx +64 -0
- package/src/Toast/ToastViewport.tsx +12 -0
- package/src/Toast/useToast.test.tsx +258 -0
- package/src/Toast/useToast.tsx +41 -0
- package/src/ToggleButton/ToggleButton.doc.mjs +1 -0
- package/src/Tokenizer/Tokenizer.doc.mjs +2 -2
- package/src/Tokenizer/Tokenizer.test.tsx +54 -0
- package/src/Tokenizer/Tokenizer.tsx +5 -4
- package/src/Tooltip/Tooltip.doc.mjs +6 -6
- package/src/Tooltip/useTooltip.doc.mjs +5 -5
- package/src/Tooltip/useTooltip.tsx +12 -2
- package/src/TopNav/TopNav.doc.mjs +1 -1
- package/src/TopNav/TopNav.test.tsx +23 -7
- package/src/TopNav/TopNavMegaMenuFeaturedCard.tsx +9 -2
- package/src/TreeList/TreeList.doc.mjs +2 -2
- package/src/Typeahead/BaseTypeahead.doc.mjs +19 -0
- package/src/Typeahead/BaseTypeahead.tsx +5 -2
- package/src/Typeahead/Typeahead.doc.mjs +1 -1
- package/src/Typeahead/Typeahead.test.tsx +45 -1
- package/src/VisuallyHidden/VisuallyHidden.tsx +0 -3
- package/src/__tests__/TestIcon.tsx +26 -0
- package/src/__tests__/fastRoleQueries.ts +66 -0
- package/src/docPropReferences.test.ts +178 -0
- package/src/docs-types.ts +9 -1
- package/src/hooks/focusableSelector.ts +1 -1
- package/src/hooks/index.ts +3 -0
- package/src/hooks/useFocusTrap.doc.mjs +4 -2
- package/src/hooks/useFocusTrap.test.tsx +149 -1
- package/src/hooks/useFocusTrap.ts +50 -1
- package/src/hooks/useHotkeys.doc.mjs +52 -0
- package/src/hooks/useHotkeys.test.ts +245 -0
- package/src/hooks/useHotkeys.ts +203 -0
- package/src/hooks/useInteractiveRole.ts +12 -4
- package/src/hooks/useStreamingText.test.ts +54 -19
- package/src/hooks/useStreamingText.ts +16 -5
- package/src/hooks/useTreeFocus.test.tsx +1 -3
- package/src/reset.css +29 -0
- package/src/theme/SyntaxTheme.doc.mjs +4 -4
- package/src/theme/defineTheme.ts +4 -13
- package/src/theme/derivedVarRegistry.test.ts +2 -2
- package/src/theme/expandColorScale.test.ts +29 -0
- package/src/theme/expandColorScale.ts +11 -6
- package/src/theme/hct.ts +9 -17
- package/src/theme/themingTargets.test.ts +353 -0
- package/src/theme/tokens.test.ts +182 -9
- package/src/theme/tokens.ts +239 -4
- package/src/theme/useTheme.test.tsx +126 -2
- package/src/theme/useTheme.ts +87 -6
- package/src/utils/color.test.ts +133 -0
- package/src/utils/color.ts +148 -0
- package/src/utils/composeEventHandlers.test.ts +71 -0
- package/src/utils/composeEventHandlers.ts +44 -0
- package/src/utils/index.ts +4 -0
- package/src/utils/mergeProps.test.ts +166 -0
- package/src/utils/sharedResizeObserver.test.ts +2 -2
- package/src/utils/timeParser.test.ts +13 -0
- package/src/utils/timeParser.ts +8 -5
- package/dist/Carousel/carousel.markers.stylex.d.ts +0 -7
- package/dist/Carousel/carousel.markers.stylex.d.ts.map +0 -1
- package/dist/Carousel/carousel.markers.stylex.js +0 -12
- package/src/Carousel/carousel.markers.stylex.ts +0 -10
|
@@ -30,7 +30,7 @@ import { useInputGroup } from "../InputGroup/InputGroupContext.js";
|
|
|
30
30
|
import { groupStyles } from "../InputGroup/groupStyles.js";
|
|
31
31
|
import { useTooltip } from "../Tooltip/index.js";
|
|
32
32
|
import { themeProps } from "../utils/themeProps.js";
|
|
33
|
-
import {
|
|
33
|
+
import { jsxDEV as _jsxDEV, Fragment as _Fragment } from "react/jsx-dev-runtime";
|
|
34
34
|
const sizeStyles = {
|
|
35
35
|
sm: {
|
|
36
36
|
kZKoxP: "x6k0iem",
|
|
@@ -281,7 +281,7 @@ export function TimeInput({
|
|
|
281
281
|
inputRef,
|
|
282
282
|
disabled: isDisabled
|
|
283
283
|
});
|
|
284
|
-
const inputWrapper = /*#__PURE__*/
|
|
284
|
+
const inputWrapper = /*#__PURE__*/_jsxDEV("div", {
|
|
285
285
|
ref: el => {
|
|
286
286
|
containerRef.current = el;
|
|
287
287
|
// Anchor + hover/focus listeners for the disabled-message tooltip.
|
|
@@ -295,29 +295,29 @@ export function TimeInput({
|
|
|
295
295
|
size,
|
|
296
296
|
status: status?.type ?? null
|
|
297
297
|
}), stylex.props(inputWrapperStyles.base, sizeStyles[size], isDisabled && inputWrapperStyles.disabled, status && inputStatusBorderStyles[status.type], status && inputStatusHoverShadowStyles[status.type], status && inputStatusFocusWithinStyles[status.type], inputGroup && groupStyles.inGroup, xstyle), className, style),
|
|
298
|
-
children: [/*#__PURE__*/
|
|
298
|
+
children: [/*#__PURE__*/_jsxDEV("div", {
|
|
299
299
|
...{
|
|
300
300
|
className: "x78zum5 x6s0dn4 xl56j7k x2lah0s"
|
|
301
301
|
},
|
|
302
|
-
children: /*#__PURE__*/
|
|
302
|
+
children: /*#__PURE__*/_jsxDEV(Icon, {
|
|
303
303
|
icon: "clock",
|
|
304
304
|
size: "sm",
|
|
305
305
|
color: "secondary"
|
|
306
|
-
})
|
|
307
|
-
}), inputGroup && /*#__PURE__*/
|
|
306
|
+
}, void 0, false)
|
|
307
|
+
}, void 0, false), inputGroup && /*#__PURE__*/_jsxDEV(VisuallyHidden, {
|
|
308
308
|
id: inputLabelID,
|
|
309
309
|
children: label
|
|
310
|
-
}), inputGroup && description && /*#__PURE__*/
|
|
310
|
+
}, void 0, false), inputGroup && description && /*#__PURE__*/_jsxDEV(VisuallyHidden, {
|
|
311
311
|
as: "div",
|
|
312
312
|
id: descriptionID,
|
|
313
313
|
children: description
|
|
314
|
-
}), inputGroup && status?.message && /*#__PURE__*/
|
|
314
|
+
}, void 0, false), inputGroup && status?.message && /*#__PURE__*/_jsxDEV(VisuallyHidden, {
|
|
315
315
|
as: "div",
|
|
316
316
|
id: statusMessageID,
|
|
317
317
|
role: status.type === 'error' ? 'alert' : 'status',
|
|
318
318
|
"aria-live": status.type === 'error' ? 'assertive' : 'polite',
|
|
319
319
|
children: status.message
|
|
320
|
-
}), /*#__PURE__*/
|
|
320
|
+
}, void 0, false), /*#__PURE__*/_jsxDEV("input", {
|
|
321
321
|
ref: mergeRefs(ref, inputRef),
|
|
322
322
|
id: id,
|
|
323
323
|
type: "text",
|
|
@@ -338,7 +338,7 @@ export function TimeInput({
|
|
|
338
338
|
"data-autofocus": hasAutoFocus || undefined,
|
|
339
339
|
"aria-describedby": ariaDescribedBy,
|
|
340
340
|
"aria-required": isRequired === true ? 'true' : undefined,
|
|
341
|
-
"aria-invalid": status?.type === 'error' ? 'true' : undefined,
|
|
341
|
+
"aria-invalid": status?.type === 'error' || !isInputValid ? 'true' : undefined,
|
|
342
342
|
"aria-busy": isBusy || undefined,
|
|
343
343
|
"aria-labelledby": ariaLabelledBy,
|
|
344
344
|
...{
|
|
@@ -355,32 +355,37 @@ export function TimeInput({
|
|
|
355
355
|
className: "x1lliihq x98rzlu xeuugli xc342km xng3xce x1717udv x9ynric xjm74w1 x6pjikd xw6l6zx xjbqb8w x1a2a7pz xeyghm5 x1h6gzvc xv1l7n4"
|
|
356
356
|
}
|
|
357
357
|
}[!!isDisabled << 1 | !!!isInputValid << 0]
|
|
358
|
-
}
|
|
358
|
+
}, void 0, false), /*#__PURE__*/_jsxDEV(VisuallyHidden, {
|
|
359
|
+
as: "div",
|
|
360
|
+
role: "alert",
|
|
361
|
+
"aria-live": "assertive",
|
|
362
|
+
children: !isInputValid ? 'Invalid time' : ''
|
|
363
|
+
}, void 0, false), isBusy && /*#__PURE__*/_jsxDEV(Spinner, {
|
|
359
364
|
size: "sm"
|
|
360
|
-
}), hasClear && value && !isDisabled && /*#__PURE__*/
|
|
365
|
+
}, void 0, false), hasClear && value && !isDisabled && /*#__PURE__*/_jsxDEV("button", {
|
|
361
366
|
type: "button",
|
|
362
367
|
onClick: handleClear,
|
|
363
368
|
"aria-label": `Clear ${label}`,
|
|
364
369
|
...{
|
|
365
370
|
className: "x78zum5 x6s0dn4 xl56j7k x1717udv x1ghz6dp xc342km xng3xce xjbqb8w x1ypdohk xh6dtrn x1a2a7pz x1p25gnr x1y3gkto"
|
|
366
371
|
},
|
|
367
|
-
children: /*#__PURE__*/
|
|
372
|
+
children: /*#__PURE__*/_jsxDEV(Icon, {
|
|
368
373
|
icon: "close",
|
|
369
374
|
size: "sm",
|
|
370
375
|
color: "secondary"
|
|
371
|
-
})
|
|
372
|
-
}), status && !inputGroup && /*#__PURE__*/
|
|
376
|
+
}, void 0, false)
|
|
377
|
+
}, void 0, false), status && !inputGroup && /*#__PURE__*/_jsxDEV(Icon, {
|
|
373
378
|
icon: statusIconMap[status.type],
|
|
374
379
|
size: "md",
|
|
375
380
|
color: statusIconColorMap[status.type]
|
|
376
|
-
})]
|
|
377
|
-
});
|
|
381
|
+
}, void 0, false)]
|
|
382
|
+
}, void 0, true);
|
|
378
383
|
if (inputGroup) {
|
|
379
|
-
return /*#__PURE__*/
|
|
384
|
+
return /*#__PURE__*/_jsxDEV(_Fragment, {
|
|
380
385
|
children: [inputWrapper, showsDisabledMessage && disabledMessageTooltip.renderTooltip(disabledMessage)]
|
|
381
|
-
});
|
|
386
|
+
}, void 0, true);
|
|
382
387
|
}
|
|
383
|
-
return /*#__PURE__*/
|
|
388
|
+
return /*#__PURE__*/_jsxDEV(Field, {
|
|
384
389
|
label: label,
|
|
385
390
|
isLabelHidden: isLabelHidden,
|
|
386
391
|
description: description,
|
|
@@ -397,6 +402,6 @@ export function TimeInput({
|
|
|
397
402
|
labelTooltip: labelTooltip,
|
|
398
403
|
width: width,
|
|
399
404
|
children: [inputWrapper, showsDisabledMessage && disabledMessageTooltip.renderTooltip(disabledMessage)]
|
|
400
|
-
});
|
|
405
|
+
}, void 0, true);
|
|
401
406
|
}
|
|
402
407
|
TimeInput.displayName = 'TimeInput';
|
|
@@ -77,7 +77,7 @@ export interface TimestampProps extends BaseProps<HTMLTimeElement> {
|
|
|
77
77
|
* <Timestamp value={event.timestamp} format="system_date_time" />
|
|
78
78
|
* ```
|
|
79
79
|
*/
|
|
80
|
-
export declare function Timestamp({ value, format, autoThreshold, hasTooltip, isTimezoneShown, isLive, type, size, color, weight, xstyle, className, style, ref, 'data-testid': testId, }: TimestampProps): import("react").JSX.Element;
|
|
80
|
+
export declare function Timestamp({ value, format, autoThreshold, hasTooltip, isTimezoneShown, isLive, type, size, color, weight, xstyle, className, style, ref, 'data-testid': testId, }: TimestampProps): import("react").JSX.Element | null;
|
|
81
81
|
export declare namespace Timestamp {
|
|
82
82
|
var displayName: string;
|
|
83
83
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Timestamp.d.ts","sourceRoot":"","sources":["../../src/Timestamp/Timestamp.tsx"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAC,MAAM,gBAAgB,CAAC;AAE9E,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAW5C,MAAM,MAAM,eAAe,GACvB,UAAU,GACV,MAAM,GACN,MAAM,GACN,WAAW,GACX,MAAM,GACN,aAAa,GACb,kBAAkB,GAClB,aAAa,CAAC;AAElB,MAAM,WAAW,cAAe,SAAQ,SAAS,CAAC,eAAe,CAAC;IAChE,kDAAkD;IAClD,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACjC,uFAAuF;IACvF,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB;;OAEG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;OAEG;IACH,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,sCAAsC;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AA8ND;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,MAAe,EACf,aAAsC,EACtC,UAAiB,EACjB,eAAuB,EACvB,MAAc,EACd,IAAmB,EACnB,IAAI,EACJ,KAAmB,EACnB,MAAM,EACN,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,aAAa,EAAE,MAAM,GACtB,EAAE,cAAc
|
|
1
|
+
{"version":3,"file":"Timestamp.d.ts","sourceRoot":"","sources":["../../src/Timestamp/Timestamp.tsx"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAC,MAAM,gBAAgB,CAAC;AAE9E,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAW5C,MAAM,MAAM,eAAe,GACvB,UAAU,GACV,MAAM,GACN,MAAM,GACN,WAAW,GACX,MAAM,GACN,aAAa,GACb,kBAAkB,GAClB,aAAa,CAAC;AAElB,MAAM,WAAW,cAAe,SAAQ,SAAS,CAAC,eAAe,CAAC;IAChE,kDAAkD;IAClD,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACjC,uFAAuF;IACvF,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB;;OAEG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;OAEG;IACH,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,sCAAsC;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AA8ND;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,MAAe,EACf,aAAsC,EACtC,UAAiB,EACjB,eAAuB,EACvB,MAAc,EACd,IAAmB,EACnB,IAAI,EACJ,KAAmB,EACnB,MAAM,EACN,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,aAAa,EAAE,MAAM,GACtB,EAAE,cAAc,sCAmGhB;yBAnHe,SAAS"}
|
|
@@ -20,7 +20,7 @@ import * as stylex from '@stylexjs/stylex';
|
|
|
20
20
|
import { Text } from "../Text/index.js";
|
|
21
21
|
import { mergeProps, mergeRefs } from "../utils/index.js";
|
|
22
22
|
import { themeProps } from "../utils/themeProps.js";
|
|
23
|
-
import {
|
|
23
|
+
import { jsxDEV as _jsxDEV, Fragment as _Fragment } from "react/jsx-dev-runtime";
|
|
24
24
|
const LazyXDSTooltip = /*#__PURE__*/lazy(async () => import('../Tooltip/Tooltip').then(mod => ({
|
|
25
25
|
default: mod.Tooltip
|
|
26
26
|
})));
|
|
@@ -90,47 +90,47 @@ function getRelativeTimeString(date, now) {
|
|
|
90
90
|
return 'in a few seconds';
|
|
91
91
|
}
|
|
92
92
|
if (absDiff < HOUR) {
|
|
93
|
-
const mins = Math.
|
|
93
|
+
const mins = Math.floor(absDiff / MINUTE);
|
|
94
94
|
return `in ${mins} ${mins === 1 ? 'minute' : 'minutes'}`;
|
|
95
95
|
}
|
|
96
96
|
if (absDiff < DAY) {
|
|
97
|
-
const hours = Math.
|
|
97
|
+
const hours = Math.floor(absDiff / HOUR);
|
|
98
98
|
return `in ${hours} ${hours === 1 ? 'hour' : 'hours'}`;
|
|
99
99
|
}
|
|
100
100
|
if (absDiff < MONTH) {
|
|
101
|
-
const days = Math.
|
|
101
|
+
const days = Math.floor(absDiff / DAY);
|
|
102
102
|
return `in ${days} ${days === 1 ? 'day' : 'days'}`;
|
|
103
103
|
}
|
|
104
104
|
if (absDiff < YEAR) {
|
|
105
|
-
const months = Math.
|
|
105
|
+
const months = Math.floor(absDiff / MONTH);
|
|
106
106
|
return `in ${months} ${months === 1 ? 'month' : 'months'}`;
|
|
107
107
|
}
|
|
108
|
-
const years = Math.
|
|
108
|
+
const years = Math.floor(absDiff / YEAR);
|
|
109
109
|
return `in ${years} ${years === 1 ? 'year' : 'years'}`;
|
|
110
110
|
}
|
|
111
111
|
if (diffSeconds < MINUTE) {
|
|
112
112
|
return `${diffSeconds} seconds ago`;
|
|
113
113
|
}
|
|
114
114
|
if (diffSeconds < HOUR) {
|
|
115
|
-
const mins = Math.
|
|
115
|
+
const mins = Math.floor(diffSeconds / MINUTE);
|
|
116
116
|
return `${mins} ${mins === 1 ? 'minute' : 'minutes'} ago`;
|
|
117
117
|
}
|
|
118
118
|
if (diffSeconds < DAY) {
|
|
119
|
-
const hours = Math.
|
|
119
|
+
const hours = Math.floor(diffSeconds / HOUR);
|
|
120
120
|
return `${hours} ${hours === 1 ? 'hour' : 'hours'} ago`;
|
|
121
121
|
}
|
|
122
122
|
if (diffSeconds < 2 * DAY) {
|
|
123
123
|
return 'yesterday';
|
|
124
124
|
}
|
|
125
125
|
if (diffSeconds < MONTH) {
|
|
126
|
-
const days = Math.
|
|
126
|
+
const days = Math.floor(diffSeconds / DAY);
|
|
127
127
|
return `${days} days ago`;
|
|
128
128
|
}
|
|
129
129
|
if (diffSeconds < YEAR) {
|
|
130
|
-
const months = Math.
|
|
130
|
+
const months = Math.floor(diffSeconds / MONTH);
|
|
131
131
|
return `${months} ${months === 1 ? 'month' : 'months'} ago`;
|
|
132
132
|
}
|
|
133
|
-
const years = Math.
|
|
133
|
+
const years = Math.floor(diffSeconds / YEAR);
|
|
134
134
|
return `${years} ${years === 1 ? 'year' : 'years'} ago`;
|
|
135
135
|
}
|
|
136
136
|
function pad(n) {
|
|
@@ -261,21 +261,26 @@ export function Timestamp({
|
|
|
261
261
|
const timeRef = useRef(null);
|
|
262
262
|
const [now, setNow] = useState(() => new Date());
|
|
263
263
|
const date = parseValue(value);
|
|
264
|
-
|
|
264
|
+
// An unparseable value (a malformed date string, or a NaN timestamp from
|
|
265
|
+
// missing data) yields an Invalid Date, and formatting one throws "Invalid
|
|
266
|
+
// time value" — crashing the whole tree. Compute nothing from it here and
|
|
267
|
+
// bail out below (after the hooks) instead.
|
|
268
|
+
const isValidDate = !Number.isNaN(date.getTime());
|
|
269
|
+
const isoString = isValidDate ? date.toISOString() : '';
|
|
265
270
|
|
|
266
271
|
// Determine effective format
|
|
267
272
|
const diffSeconds = Math.round((now.getTime() - date.getTime()) / 1000);
|
|
268
273
|
const effectiveFormat = format === 'auto' ? Math.abs(diffSeconds) <= autoThreshold ? 'relative' : 'date_time' : format;
|
|
269
274
|
|
|
270
275
|
// Format the display text
|
|
271
|
-
const displayText = effectiveFormat === 'relative' ? getRelativeTimeString(date, now) : isAbsoluteFormat(effectiveFormat) ? formatTimestamp(date, effectiveFormat, isTimezoneShown) : '';
|
|
276
|
+
const displayText = !isValidDate ? '' : effectiveFormat === 'relative' ? getRelativeTimeString(date, now) : isAbsoluteFormat(effectiveFormat) ? formatTimestamp(date, effectiveFormat, isTimezoneShown) : '';
|
|
272
277
|
|
|
273
278
|
// Full absolute text for tooltip and aria-label
|
|
274
|
-
const fullAbsoluteText = getFullAbsoluteString(date);
|
|
279
|
+
const fullAbsoluteText = isValidDate ? getFullAbsoluteString(date) : '';
|
|
275
280
|
|
|
276
281
|
// Live updates
|
|
277
282
|
useEffect(() => {
|
|
278
|
-
if (!isLive || effectiveFormat !== 'relative') {
|
|
283
|
+
if (!isLive || !isValidDate || effectiveFormat !== 'relative') {
|
|
279
284
|
return;
|
|
280
285
|
}
|
|
281
286
|
const interval = getLiveInterval(diffSeconds);
|
|
@@ -283,7 +288,13 @@ export function Timestamp({
|
|
|
283
288
|
setNow(new Date());
|
|
284
289
|
}, interval);
|
|
285
290
|
return () => clearInterval(timer);
|
|
286
|
-
}, [isLive, effectiveFormat, diffSeconds]);
|
|
291
|
+
}, [isLive, isValidDate, effectiveFormat, diffSeconds]);
|
|
292
|
+
|
|
293
|
+
// Placed after all hooks so the hook order stays stable across renders.
|
|
294
|
+
if (!isValidDate) {
|
|
295
|
+
console.warn(`Timestamp: could not parse value ${JSON.stringify(value)} as a date. Rendering nothing.`);
|
|
296
|
+
return null;
|
|
297
|
+
}
|
|
287
298
|
const showTooltip = hasTooltip && effectiveFormat === 'relative';
|
|
288
299
|
const timestampProps = mergeProps(themeProps('timestamp', {
|
|
289
300
|
format: effectiveFormat
|
|
@@ -291,14 +302,14 @@ export function Timestamp({
|
|
|
291
302
|
className,
|
|
292
303
|
style
|
|
293
304
|
});
|
|
294
|
-
const timeElement = /*#__PURE__*/
|
|
305
|
+
const timeElement = /*#__PURE__*/_jsxDEV(Text, {
|
|
295
306
|
type: type,
|
|
296
307
|
size: size,
|
|
297
308
|
color: color,
|
|
298
309
|
weight: weight,
|
|
299
310
|
xstyle: xstyle,
|
|
300
311
|
...timestampProps,
|
|
301
|
-
children: /*#__PURE__*/
|
|
312
|
+
children: /*#__PURE__*/_jsxDEV("time", {
|
|
302
313
|
ref: mergeRefs(ref, timeRef),
|
|
303
314
|
dateTime: isoString,
|
|
304
315
|
"aria-label": effectiveFormat === 'relative' ? fullAbsoluteText : undefined,
|
|
@@ -307,19 +318,19 @@ export function Timestamp({
|
|
|
307
318
|
className: "xt0psk2 xjb2p0i x1j61x8r x1qlqyl8 x15bjb6t x1heor9g x1pd3egz"
|
|
308
319
|
},
|
|
309
320
|
children: displayText
|
|
310
|
-
})
|
|
311
|
-
});
|
|
321
|
+
}, void 0, false)
|
|
322
|
+
}, void 0, false);
|
|
312
323
|
if (showTooltip) {
|
|
313
|
-
return /*#__PURE__*/
|
|
314
|
-
children: [timeElement, /*#__PURE__*/
|
|
324
|
+
return /*#__PURE__*/_jsxDEV(_Fragment, {
|
|
325
|
+
children: [timeElement, /*#__PURE__*/_jsxDEV(Suspense, {
|
|
315
326
|
fallback: null,
|
|
316
|
-
children: /*#__PURE__*/
|
|
327
|
+
children: /*#__PURE__*/_jsxDEV(LazyXDSTooltip, {
|
|
317
328
|
anchorRef: timeRef,
|
|
318
329
|
content: fullAbsoluteText,
|
|
319
330
|
placement: "above"
|
|
320
|
-
})
|
|
321
|
-
})]
|
|
322
|
-
});
|
|
331
|
+
}, void 0, false)
|
|
332
|
+
}, void 0, false)]
|
|
333
|
+
}, void 0, true);
|
|
323
334
|
}
|
|
324
335
|
return timeElement;
|
|
325
336
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../../src/Toast/Toast.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAiBrC,OAAO,KAAK,EAAC,SAAS,EAAE,kBAAkB,EAAC,MAAM,SAAS,CAAC;AAyD3D,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;CACjD;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,KAAK,CAAC,EACpB,IAAI,EACJ,IAAI,EACJ,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,SAAiB,EACjB,SAAS,GACV,EAAE,UAAU,+
|
|
1
|
+
{"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../../src/Toast/Toast.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAiBrC,OAAO,KAAK,EAAC,SAAS,EAAE,kBAAkB,EAAC,MAAM,SAAS,CAAC;AAyD3D,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;CACjD;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,KAAK,CAAC,EACpB,IAAI,EACJ,IAAI,EACJ,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,SAAiB,EACjB,SAAS,GACV,EAAE,UAAU,+BAyHZ;yBAjIe,KAAK"}
|
package/dist/Toast/Toast.js
CHANGED
|
@@ -12,7 +12,7 @@ import { mergeProps } from "../utils/index.js";
|
|
|
12
12
|
import { useTheme } from "../theme/index.js";
|
|
13
13
|
import { MediaTheme } from "../theme/MediaTheme.js";
|
|
14
14
|
import { themeProps } from "../utils/themeProps.js";
|
|
15
|
-
import {
|
|
15
|
+
import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
|
|
16
16
|
/**
|
|
17
17
|
* Individual toast notification.
|
|
18
18
|
*
|
|
@@ -46,8 +46,14 @@ export function Toast({
|
|
|
46
46
|
const remainingRef = useRef(autoHideDuration);
|
|
47
47
|
// Will be initialized by startTimer when actually used
|
|
48
48
|
const startTimeRef = useRef(null);
|
|
49
|
+
|
|
50
|
+
// Read onDismiss through a ref: the viewport re-creates it on every render
|
|
51
|
+
// (another toast arriving/exiting), and a startTimer that depends on it
|
|
52
|
+
// would restart — and un-pause — this toast's timer on unrelated renders.
|
|
53
|
+
const onDismissRef = useRef(onDismiss);
|
|
54
|
+
onDismissRef.current = onDismiss;
|
|
49
55
|
const startTimer = useCallback(() => {
|
|
50
|
-
if (!isAutoHide) {
|
|
56
|
+
if (!isAutoHide || isPausedRef.current) {
|
|
51
57
|
return;
|
|
52
58
|
}
|
|
53
59
|
if (timerRef.current) {
|
|
@@ -55,9 +61,9 @@ export function Toast({
|
|
|
55
61
|
}
|
|
56
62
|
startTimeRef.current = Date.now();
|
|
57
63
|
timerRef.current = setTimeout(() => {
|
|
58
|
-
|
|
64
|
+
onDismissRef.current('auto');
|
|
59
65
|
}, remainingRef.current);
|
|
60
|
-
}, [isAutoHide
|
|
66
|
+
}, [isAutoHide]);
|
|
61
67
|
const pauseTimer = useCallback(() => {
|
|
62
68
|
if (!isAutoHide || isPausedRef.current) {
|
|
63
69
|
return;
|
|
@@ -87,6 +93,8 @@ export function Toast({
|
|
|
87
93
|
clearTimeout(timerRef.current);
|
|
88
94
|
}
|
|
89
95
|
};
|
|
96
|
+
// startTimer's identity is stable per isAutoHide, so this runs on mount
|
|
97
|
+
// and on a genuine duration change — not on unrelated viewport renders.
|
|
90
98
|
}, [autoHideDuration, startTimer]);
|
|
91
99
|
|
|
92
100
|
// Pause the auto-hide timer while the window is not focused, so a toast
|
|
@@ -112,7 +120,7 @@ export function Toast({
|
|
|
112
120
|
mode
|
|
113
121
|
} = useTheme();
|
|
114
122
|
const mediaMode = isError || mode === 'light' ? 'dark' : 'light';
|
|
115
|
-
return /*#__PURE__*/
|
|
123
|
+
return /*#__PURE__*/_jsxDEV("div", {
|
|
116
124
|
role: isError ? 'alert' : 'status',
|
|
117
125
|
"aria-live": isError ? 'assertive' : 'polite',
|
|
118
126
|
"aria-atomic": "true",
|
|
@@ -136,36 +144,36 @@ export function Toast({
|
|
|
136
144
|
className: "x1na6nto x1pzlopt x1hviunn x1l2rt3b xxtfdz8 x14hfi27 x9ynric xjm74w1 xw6l6zx x6o7n8i xuedmi6 xsagj69 xlr8y92 x4itv7f x1tswlu5 x1l5t2a3 xg01cxk x1lm5u"
|
|
137
145
|
}
|
|
138
146
|
}[!!isError << 1 | !!isExiting << 0]),
|
|
139
|
-
children: /*#__PURE__*/
|
|
147
|
+
children: /*#__PURE__*/_jsxDEV(MediaTheme, {
|
|
140
148
|
mode: mediaMode,
|
|
141
|
-
children: /*#__PURE__*/
|
|
149
|
+
children: /*#__PURE__*/_jsxDEV("div", {
|
|
142
150
|
...{
|
|
143
151
|
className: "x78zum5 x1cy8zhl xjcht0a xh8yej3"
|
|
144
152
|
},
|
|
145
|
-
children: [/*#__PURE__*/
|
|
153
|
+
children: [/*#__PURE__*/_jsxDEV("div", {
|
|
146
154
|
...{
|
|
147
155
|
className: "x98rzlu xeuugli"
|
|
148
156
|
},
|
|
149
157
|
children: body
|
|
150
|
-
}), /*#__PURE__*/
|
|
158
|
+
}, void 0, false), /*#__PURE__*/_jsxDEV("div", {
|
|
151
159
|
...{
|
|
152
160
|
className: "x2lah0s x78zum5 x6s0dn4 x1txdalj xacfrgf xmequkd"
|
|
153
161
|
},
|
|
154
|
-
children: [endContent, /*#__PURE__*/
|
|
162
|
+
children: [endContent, /*#__PURE__*/_jsxDEV(Button, {
|
|
155
163
|
variant: "ghost",
|
|
156
164
|
size: "sm",
|
|
157
|
-
icon: /*#__PURE__*/
|
|
165
|
+
icon: /*#__PURE__*/_jsxDEV(Icon, {
|
|
158
166
|
icon: "close",
|
|
159
167
|
size: "sm",
|
|
160
168
|
color: "inherit"
|
|
161
|
-
}),
|
|
169
|
+
}, void 0, false),
|
|
162
170
|
label: "Dismiss notification",
|
|
163
171
|
onClick: handleDismiss,
|
|
164
172
|
isIconOnly: true
|
|
165
|
-
})]
|
|
166
|
-
})]
|
|
167
|
-
})
|
|
168
|
-
})
|
|
169
|
-
});
|
|
173
|
+
}, void 0, false)]
|
|
174
|
+
}, void 0, true)]
|
|
175
|
+
}, void 0, true)
|
|
176
|
+
}, void 0, false)
|
|
177
|
+
}, void 0, false);
|
|
170
178
|
}
|
|
171
179
|
Toast.displayName = 'Toast';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToastViewport.d.ts","sourceRoot":"","sources":["../../src/Toast/ToastViewport.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAa,aAAa,EAAqB,MAAM,SAAS,CAAC;AA2D3E,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAC,CAAC;IACtE;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAsB,EACtB,UAAc,EACd,KAAK,EACL,UAAiB,EACjB,QAAQ,GACT,EAAE,kBAAkB,+
|
|
1
|
+
{"version":3,"file":"ToastViewport.d.ts","sourceRoot":"","sources":["../../src/Toast/ToastViewport.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAa,aAAa,EAAqB,MAAM,SAAS,CAAC;AA2D3E,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAC,CAAC;IACtE;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAsB,EACtB,UAAc,EACd,KAAK,EACL,UAAiB,EACjB,QAAQ,GACT,EAAE,kBAAkB,+BAiTpB;yBAvTe,aAAa"}
|
|
@@ -10,7 +10,7 @@ import { mergeProps } from "../utils/index.js";
|
|
|
10
10
|
import { INTERACTIVE_SELECTORS } from "../hooks/useClickableContainer.js";
|
|
11
11
|
import { Toast } from "./Toast.js";
|
|
12
12
|
import { ToastContext } from "./ToastContext.js";
|
|
13
|
-
import {
|
|
13
|
+
import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
|
|
14
14
|
const styles = {
|
|
15
15
|
viewport: {
|
|
16
16
|
kVAEAm: "xixxii4",
|
|
@@ -78,6 +78,9 @@ export function ToastViewport({
|
|
|
78
78
|
|
|
79
79
|
// Show the popover on mount so it enters the top layer.
|
|
80
80
|
const viewportRef = useRef(null);
|
|
81
|
+
// Toast ids whose exit has begun — guards onHide from double-firing (see
|
|
82
|
+
// removeToast). Mirrors exitingIds state, readable synchronously.
|
|
83
|
+
const exitingIdsRef = useRef(new Set());
|
|
81
84
|
// The element that was focused before the user jumped into the viewport
|
|
82
85
|
// (via F6). Used to restore focus once all toasts are dismissed so focus
|
|
83
86
|
// never falls to <body>.
|
|
@@ -127,6 +130,14 @@ export function ToastViewport({
|
|
|
127
130
|
});
|
|
128
131
|
}, []);
|
|
129
132
|
const removeToast = useCallback((id, reason) => {
|
|
133
|
+
// An exiting toast stays in toastsRef until its exit transition ends, so
|
|
134
|
+
// a second dismissal inside that window (double-click, auto-timer plus
|
|
135
|
+
// manual dismiss()) would re-fire onHide. Track exiting ids in a ref —
|
|
136
|
+
// the exitingIds state dedupe below runs too late to protect onHide.
|
|
137
|
+
if (exitingIdsRef.current.has(id)) {
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
exitingIdsRef.current.add(id);
|
|
130
141
|
const entry = toastsRef.current.find(t => t.id === id);
|
|
131
142
|
if (entry) {
|
|
132
143
|
entry.options.onHide?.(reason);
|
|
@@ -158,6 +169,7 @@ export function ToastViewport({
|
|
|
158
169
|
});
|
|
159
170
|
}, []);
|
|
160
171
|
const handleExited = useCallback(id => {
|
|
172
|
+
exitingIdsRef.current.delete(id);
|
|
161
173
|
setExitingIds(prev => {
|
|
162
174
|
if (!prev.has(id)) {
|
|
163
175
|
return prev;
|
|
@@ -280,9 +292,9 @@ export function ToastViewport({
|
|
|
280
292
|
};
|
|
281
293
|
}, [hasToasts, getFocusable]);
|
|
282
294
|
const posStyle = position === 'topEnd' ? styles.topEnd : position === 'topStart' ? styles.topStart : position === 'bottomStart' ? styles.bottomStart : styles.bottomEnd;
|
|
283
|
-
return /*#__PURE__*/
|
|
295
|
+
return /*#__PURE__*/_jsxDEV(ToastContext, {
|
|
284
296
|
value: contextValue,
|
|
285
|
-
children: [children, /*#__PURE__*/
|
|
297
|
+
children: [children, /*#__PURE__*/_jsxDEV("div", {
|
|
286
298
|
ref: viewportRef,
|
|
287
299
|
role: "region",
|
|
288
300
|
"aria-label": "Notifications",
|
|
@@ -300,7 +312,7 @@ export function ToastViewport({
|
|
|
300
312
|
const isAutoHide = o.isAutoHide ?? (type === 'error' ? false : true);
|
|
301
313
|
const dur = o.autoHideDuration ?? 5000;
|
|
302
314
|
const isExiting = exitingIds.has(entry.id);
|
|
303
|
-
return /*#__PURE__*/
|
|
315
|
+
return /*#__PURE__*/_jsxDEV("div", {
|
|
304
316
|
"data-toast-id": entry.id,
|
|
305
317
|
...{
|
|
306
318
|
0: {
|
|
@@ -315,11 +327,11 @@ export function ToastViewport({
|
|
|
315
327
|
handleExited(entry.id);
|
|
316
328
|
}
|
|
317
329
|
} : undefined,
|
|
318
|
-
children: /*#__PURE__*/
|
|
330
|
+
children: /*#__PURE__*/_jsxDEV("div", {
|
|
319
331
|
...{
|
|
320
332
|
className: "xb3r6kr"
|
|
321
333
|
},
|
|
322
|
-
children: /*#__PURE__*/
|
|
334
|
+
children: /*#__PURE__*/_jsxDEV(Toast, {
|
|
323
335
|
type: type,
|
|
324
336
|
body: o.body,
|
|
325
337
|
endContent: o.endContent,
|
|
@@ -327,11 +339,11 @@ export function ToastViewport({
|
|
|
327
339
|
autoHideDuration: dur,
|
|
328
340
|
isExiting: isExiting,
|
|
329
341
|
onDismiss: reason => removeToast(entry.id, reason)
|
|
330
|
-
})
|
|
331
|
-
})
|
|
332
|
-
}, entry.id);
|
|
342
|
+
}, void 0, false)
|
|
343
|
+
}, void 0, false)
|
|
344
|
+
}, entry.id, false);
|
|
333
345
|
})
|
|
334
|
-
})]
|
|
335
|
-
});
|
|
346
|
+
}, void 0, false)]
|
|
347
|
+
}, void 0, true);
|
|
336
348
|
}
|
|
337
349
|
ToastViewport.displayName = 'ToastViewport';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useToast.d.ts","sourceRoot":"","sources":["../../src/Toast/useToast.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useToast.d.ts","sourceRoot":"","sources":["../../src/Toast/useToast.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAGV,WAAW,EAEZ,MAAM,SAAS,CAAC;AAsIjB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,QAAQ,IAAI,WAAW,CAetC"}
|
package/dist/Toast/useToast.js
CHANGED
|
@@ -4,13 +4,52 @@
|
|
|
4
4
|
|
|
5
5
|
import { useCallback, use, useEffect, useRef } from 'react';
|
|
6
6
|
import { createRoot } from 'react-dom/client';
|
|
7
|
+
import { dataAttr } from "../naming.js";
|
|
7
8
|
import { ToastContext } from "./ToastContext.js";
|
|
8
9
|
import { ToastViewport } from "./ToastViewport.js";
|
|
9
|
-
import {
|
|
10
|
+
import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
|
|
10
11
|
// Fallback singleton
|
|
11
12
|
let fallbackContext = null;
|
|
12
13
|
let fallbackRoot = null;
|
|
13
14
|
let fallbackWarned = false;
|
|
15
|
+
const ROOT_THEME_ATTRS = ['data-theme', dataAttr('theme')];
|
|
16
|
+
|
|
17
|
+
// The fallback container is a detached tree with no ThemeContext, so this
|
|
18
|
+
// mirrors <html>'s theme attributes onto it directly (live via
|
|
19
|
+
// MutationObserver) for the theme's @scope'd CSS to reach it. It's a
|
|
20
|
+
// lifetime-of-app singleton that's never torn down, so there's nothing to
|
|
21
|
+
// disconnect — this returns void.
|
|
22
|
+
function syncRootThemeAttrs(container) {
|
|
23
|
+
const sync = () => {
|
|
24
|
+
let mirroredMode = null;
|
|
25
|
+
for (const attr of ROOT_THEME_ATTRS) {
|
|
26
|
+
const value = document.documentElement.getAttribute(attr);
|
|
27
|
+
if (value == null) {
|
|
28
|
+
container.removeAttribute(attr);
|
|
29
|
+
} else {
|
|
30
|
+
container.setAttribute(attr, value);
|
|
31
|
+
if (attr === 'data-theme') {
|
|
32
|
+
mirroredMode = value;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
// Pages whose built theme CSS pins color-scheme unconditionally (#3658)
|
|
37
|
+
// would otherwise resolve light-dark() tokens by OS preference while the
|
|
38
|
+
// mirrored mode above follows the app theme; the inline style wins over
|
|
39
|
+
// that CSS.
|
|
40
|
+
if (mirroredMode === 'light' || mirroredMode === 'dark') {
|
|
41
|
+
container.style.colorScheme = mirroredMode;
|
|
42
|
+
} else {
|
|
43
|
+
container.style.removeProperty('color-scheme');
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
sync();
|
|
47
|
+
const observer = new MutationObserver(sync);
|
|
48
|
+
observer.observe(document.documentElement, {
|
|
49
|
+
attributes: true,
|
|
50
|
+
attributeFilter: [...ROOT_THEME_ATTRS]
|
|
51
|
+
});
|
|
52
|
+
}
|
|
14
53
|
function getFallbackContext() {
|
|
15
54
|
if (fallbackContext) {
|
|
16
55
|
return fallbackContext;
|
|
@@ -25,6 +64,7 @@ function getFallbackContext() {
|
|
|
25
64
|
const container = document.createElement('div');
|
|
26
65
|
container.setAttribute('data-astryx-toast-fallback', '');
|
|
27
66
|
document.body.appendChild(container);
|
|
67
|
+
syncRootThemeAttrs(container);
|
|
28
68
|
let resolveCtx;
|
|
29
69
|
const ctxReady = new Promise(r => {
|
|
30
70
|
resolveCtx = r;
|
|
@@ -42,9 +82,9 @@ function getFallbackContext() {
|
|
|
42
82
|
return null;
|
|
43
83
|
};
|
|
44
84
|
fallbackRoot = createRoot(container);
|
|
45
|
-
fallbackRoot.render(/*#__PURE__*/
|
|
46
|
-
children: /*#__PURE__*/
|
|
47
|
-
}));
|
|
85
|
+
fallbackRoot.render(/*#__PURE__*/_jsxDEV(ToastViewport, {
|
|
86
|
+
children: /*#__PURE__*/_jsxDEV(FallbackCapture, {}, void 0, false)
|
|
87
|
+
}, void 0, false));
|
|
48
88
|
|
|
49
89
|
// Proxy that queues calls until real context is captured
|
|
50
90
|
const pending = [];
|
|
@@ -36,7 +36,7 @@ import { themeProps } from "../utils/themeProps.js";
|
|
|
36
36
|
* A hidden span renders the same text at semibold weight to reserve
|
|
37
37
|
* the wider width, preventing layout shift when toggling.
|
|
38
38
|
*/
|
|
39
|
-
import {
|
|
39
|
+
import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
|
|
40
40
|
const pressedStyles = {
|
|
41
41
|
background: {
|
|
42
42
|
kWkggS: "xi89dp7",
|
|
@@ -141,11 +141,11 @@ export function ToggleButton({
|
|
|
141
141
|
};
|
|
142
142
|
|
|
143
143
|
// isIconOnly prop is the source of truth for icon-only rendering.
|
|
144
|
-
const labelContent = children != null ? /*#__PURE__*/
|
|
144
|
+
const labelContent = children != null ? /*#__PURE__*/_jsxDEV("span", {
|
|
145
145
|
...{
|
|
146
146
|
className: "x3nfvp2 xdt5ytf x6s0dn4 xl56j7k"
|
|
147
147
|
},
|
|
148
|
-
children: [/*#__PURE__*/
|
|
148
|
+
children: [/*#__PURE__*/_jsxDEV("span", {
|
|
149
149
|
...{
|
|
150
150
|
0: {},
|
|
151
151
|
1: {
|
|
@@ -153,18 +153,18 @@ export function ToggleButton({
|
|
|
153
153
|
}
|
|
154
154
|
}[!!isPressed << 0],
|
|
155
155
|
children: children
|
|
156
|
-
}), /*#__PURE__*/
|
|
156
|
+
}, void 0, false), /*#__PURE__*/_jsxDEV("span", {
|
|
157
157
|
...{
|
|
158
158
|
className: "x1lliihq x2mo6ok xqtp20y xb3r6kr xlshs6z x47corl"
|
|
159
159
|
},
|
|
160
160
|
"aria-hidden": "true",
|
|
161
161
|
children: children
|
|
162
|
-
})]
|
|
163
|
-
}) : !isIconOnly ? /*#__PURE__*/
|
|
162
|
+
}, void 0, false)]
|
|
163
|
+
}, void 0, true) : !isIconOnly ? /*#__PURE__*/_jsxDEV("span", {
|
|
164
164
|
...{
|
|
165
165
|
className: "x3nfvp2 xdt5ytf x6s0dn4 xl56j7k"
|
|
166
166
|
},
|
|
167
|
-
children: [/*#__PURE__*/
|
|
167
|
+
children: [/*#__PURE__*/_jsxDEV("span", {
|
|
168
168
|
...{
|
|
169
169
|
0: {},
|
|
170
170
|
1: {
|
|
@@ -172,15 +172,15 @@ export function ToggleButton({
|
|
|
172
172
|
}
|
|
173
173
|
}[!!isPressed << 0],
|
|
174
174
|
children: label
|
|
175
|
-
}), /*#__PURE__*/
|
|
175
|
+
}, void 0, false), /*#__PURE__*/_jsxDEV("span", {
|
|
176
176
|
...{
|
|
177
177
|
className: "x1lliihq x2mo6ok xqtp20y xb3r6kr xlshs6z x47corl"
|
|
178
178
|
},
|
|
179
179
|
"aria-hidden": "true",
|
|
180
180
|
children: label
|
|
181
|
-
})]
|
|
182
|
-
}) : undefined;
|
|
183
|
-
return /*#__PURE__*/
|
|
181
|
+
}, void 0, false)]
|
|
182
|
+
}, void 0, true) : undefined;
|
|
183
|
+
return /*#__PURE__*/_jsxDEV(Button, {
|
|
184
184
|
ref: ref,
|
|
185
185
|
label: label,
|
|
186
186
|
variant: "ghost",
|
|
@@ -201,6 +201,6 @@ export function ToggleButton({
|
|
|
201
201
|
clickAction: clickAction,
|
|
202
202
|
...props,
|
|
203
203
|
children: labelContent
|
|
204
|
-
});
|
|
204
|
+
}, void 0, false);
|
|
205
205
|
}
|
|
206
206
|
ToggleButton.displayName = 'ToggleButton';
|