@astryxdesign/core 0.1.4-canary.fd7ab46 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AlertDialog/AlertDialog.d.ts +1 -1
- package/dist/AlertDialog/AlertDialog.d.ts.map +1 -1
- package/dist/AlertDialog/AlertDialog.js +18 -20
- package/dist/AlertDialog/useImperativeAlertDialog.js +3 -3
- package/dist/AppShell/AppShell.d.ts +1 -1
- package/dist/AppShell/AppShell.d.ts.map +1 -1
- package/dist/AppShell/AppShell.js +53 -55
- package/dist/AspectRatio/AspectRatio.d.ts +10 -48
- package/dist/AspectRatio/AspectRatio.d.ts.map +1 -1
- package/dist/AspectRatio/AspectRatio.js +12 -33
- 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 +25 -27
- package/dist/Avatar/AvatarStatusDot.js +5 -5
- package/dist/AvatarGroup/AvatarGroup.js +5 -5
- package/dist/AvatarGroup/AvatarGroupOverflow.js +5 -5
- package/dist/Badge/Badge.js +3 -3
- package/dist/Banner/Banner.d.ts.map +1 -1
- package/dist/Banner/Banner.js +25 -32
- 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 +48 -68
- 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 +2 -4
- package/dist/Card/Card.d.ts.map +1 -1
- package/dist/Card/Card.js +10 -18
- package/dist/Carousel/Carousel.d.ts.map +1 -1
- package/dist/Carousel/Carousel.js +21 -24
- package/dist/Carousel/carousel.markers.stylex.d.ts +7 -0
- package/dist/Carousel/carousel.markers.stylex.d.ts.map +1 -0
- package/dist/Carousel/carousel.markers.stylex.js +12 -0
- 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 +15 -27
- package/dist/Chat/ChatDictationButton.d.ts +1 -1
- package/dist/Chat/ChatDictationButton.d.ts.map +1 -1
- package/dist/Chat/ChatDictationButton.js +11 -13
- 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 +10 -12
- 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 +12 -14
- 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 +15 -24
- package/dist/Chat/ChatToolCalls.d.ts.map +1 -1
- package/dist/Chat/ChatToolCalls.js +74 -81
- 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 +23 -25
- 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 +6 -8
- package/dist/Citation/Citation.js +10 -10
- package/dist/ClickableCard/ClickableCard.d.ts.map +1 -1
- package/dist/ClickableCard/ClickableCard.js +9 -32
- package/dist/Code/Code.js +3 -3
- package/dist/CodeBlock/CodeBlock.d.ts +1 -10
- package/dist/CodeBlock/CodeBlock.d.ts.map +1 -1
- package/dist/CodeBlock/CodeBlock.js +52 -88
- package/dist/Collapsible/Collapsible.d.ts +3 -9
- package/dist/Collapsible/Collapsible.d.ts.map +1 -1
- package/dist/Collapsible/Collapsible.js +22 -110
- package/dist/Collapsible/CollapsibleGroup.d.ts +7 -39
- package/dist/Collapsible/CollapsibleGroup.d.ts.map +1 -1
- package/dist/Collapsible/CollapsibleGroup.js +12 -73
- package/dist/Collapsible/CollapsibleGroupContext.d.ts +0 -31
- package/dist/Collapsible/CollapsibleGroupContext.d.ts.map +1 -1
- package/dist/Collapsible/CollapsibleGroupContext.js +3 -33
- package/dist/Collapsible/index.d.ts +0 -1
- package/dist/Collapsible/index.d.ts.map +1 -1
- package/dist/Collapsible/useCollapsible.d.ts +1 -4
- package/dist/Collapsible/useCollapsible.d.ts.map +1 -1
- package/dist/Collapsible/useCollapsible.js +6 -20
- package/dist/CommandPalette/CommandPalette.d.ts.map +1 -1
- package/dist/CommandPalette/CommandPalette.js +34 -36
- 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 +2 -7
- package/dist/ContextMenu/ContextMenu.d.ts.map +1 -1
- package/dist/ContextMenu/ContextMenu.js +43 -76
- package/dist/DateInput/DateInput.js +18 -18
- package/dist/DateRangeInput/DateRangeInput.js +21 -21
- package/dist/DateTimeInput/DateTimeInput.d.ts +2 -5
- package/dist/DateTimeInput/DateTimeInput.d.ts.map +1 -1
- package/dist/DateTimeInput/DateTimeInput.js +26 -30
- 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 +17 -2
- 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 +3 -4
- package/dist/Grid/Grid.d.ts.map +1 -1
- package/dist/Grid/Grid.js +12 -29
- 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 +1 -5
- 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 +12 -16
- 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 +2 -29
- package/dist/Layer/useLayer.d.ts.map +1 -1
- package/dist/Layer/useLayer.js +31 -44
- 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 +31 -55
- package/dist/Lightbox/useLightbox.js +3 -3
- package/dist/Link/Link.js +15 -15
- 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.js +15 -15
- 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 +32 -48
- 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.js +3 -3
- package/dist/Pagination/Pagination.d.ts +1 -1
- package/dist/Pagination/Pagination.d.ts.map +1 -1
- package/dist/Pagination/Pagination.js +72 -125
- 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 +92 -110
- 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 +18 -25
- 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 +21 -24
- package/dist/Resizable/ResizeHandle.d.ts.map +1 -1
- package/dist/Resizable/ResizeHandle.js +10 -28
- 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 +10 -32
- package/dist/SegmentedControl/SegmentedControlItem.d.ts +1 -1
- package/dist/SegmentedControl/SegmentedControlItem.d.ts.map +1 -1
- package/dist/SegmentedControl/SegmentedControlItem.js +12 -18
- 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 +34 -38
- package/dist/SideNav/SideNavCollapseButton.d.ts +1 -1
- package/dist/SideNav/SideNavCollapseButton.d.ts.map +1 -1
- package/dist/SideNav/SideNavCollapseButton.js +6 -8
- 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 +16 -18
- 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 +4 -8
- package/dist/Switch/Switch.d.ts.map +1 -1
- package/dist/Switch/Switch.js +29 -34
- 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 +30 -57
- package/dist/TabList/tab.markers.stylex.d.ts +1 -1
- package/dist/Table/BaseTable.d.ts.map +1 -1
- package/dist/Table/BaseTable.js +39 -50
- 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 +5 -9
- 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 +5 -9
- package/dist/Table/TableHeader.d.ts +1 -1
- package/dist/Table/TableHeader.d.ts.map +1 -1
- package/dist/Table/TableHeader.js +5 -9
- package/dist/Table/TableHeaderCell.js +3 -3
- package/dist/Table/TableRow.js +5 -5
- package/dist/Table/plugins/columnResize/useTableColumnResize.d.ts.map +1 -1
- package/dist/Table/plugins/columnResize/useTableColumnResize.js +11 -14
- package/dist/Table/plugins/filtering/useTableFiltering.js +71 -71
- package/dist/Table/plugins/pagination/paginateData.d.ts.map +1 -1
- package/dist/Table/plugins/pagination/paginateData.js +1 -5
- package/dist/Table/plugins/pagination/useTablePagination.js +7 -7
- package/dist/Table/plugins/rowExpansion/useTableRowExpansion.js +22 -22
- 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 +1 -11
- 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 +4 -8
- 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 +2 -3
- package/dist/Thumbnail/Thumbnail.d.ts.map +1 -1
- package/dist/Thumbnail/Thumbnail.js +29 -30
- package/dist/TimeInput/TimeInput.d.ts.map +1 -1
- package/dist/TimeInput/TimeInput.js +21 -26
- package/dist/Timestamp/Timestamp.d.ts +1 -1
- package/dist/Timestamp/Timestamp.d.ts.map +1 -1
- package/dist/Timestamp/Timestamp.js +26 -37
- package/dist/Toast/Toast.d.ts.map +1 -1
- package/dist/Toast/Toast.js +17 -25
- package/dist/Toast/ToastViewport.d.ts.map +1 -1
- package/dist/Toast/ToastViewport.js +11 -23
- package/dist/Toast/useToast.js +4 -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 +34 -36
- package/dist/Toolbar/Toolbar.js +18 -18
- package/dist/Tooltip/Tooltip.js +11 -11
- package/dist/Tooltip/useTooltip.d.ts +1 -5
- 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 +14 -25
- 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 +20 -23
- package/dist/Typeahead/Typeahead.js +12 -12
- package/dist/Typeahead/TypeaheadItem.js +10 -10
- package/dist/VStack/VStack.js +3 -3
- package/dist/astryx.css +0 -7
- package/dist/astryx.umd.js +60 -60
- package/dist/astryx.umd.js.map +4 -4
- package/dist/docs-types.d.ts +2 -8
- 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 +0 -2
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +0 -1
- package/dist/hooks/useFocusTrap.d.ts +0 -3
- package/dist/hooks/useFocusTrap.d.ts.map +1 -1
- package/dist/hooks/useFocusTrap.js +1 -38
- package/dist/hooks/useInteractiveRole.d.ts +2 -6
- package/dist/hooks/useInteractiveRole.d.ts.map +1 -1
- package/dist/hooks/useInteractiveRole.js +2 -6
- package/dist/hooks/useKeyboardHint.js +9 -9
- package/dist/hooks/useStreamingText.d.ts +1 -3
- package/dist/hooks/useStreamingText.d.ts.map +1 -1
- package/dist/hooks/useStreamingText.js +5 -14
- 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 +3 -10
- package/dist/theme/hct.d.ts +15 -0
- 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 +2 -10
- package/dist/theme/tokens.d.ts.map +1 -1
- package/dist/theme/tokens.js +4 -220
- package/dist/utils/index.d.ts +0 -3
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -3
- package/dist/utils/timeParser.d.ts.map +1 -1
- package/dist/utils/timeParser.js +5 -8
- package/package.json +3 -3
- package/src/AlertDialog/AlertDialog.doc.mjs +0 -4
- package/src/AlertDialog/AlertDialog.tsx +0 -2
- package/src/AppShell/AppShell.tsx +0 -2
- package/src/AspectRatio/AspectRatio.doc.mjs +1 -28
- package/src/AspectRatio/AspectRatio.test.tsx +1 -142
- package/src/AspectRatio/AspectRatio.tsx +10 -70
- package/src/AspectRatio/index.ts +1 -5
- package/src/Avatar/Avatar.doc.mjs +0 -11
- package/src/Avatar/Avatar.test.tsx +1 -32
- package/src/Avatar/Avatar.tsx +20 -12
- package/src/Banner/Banner.doc.mjs +0 -8
- package/src/Banner/Banner.test.tsx +0 -38
- package/src/Banner/Banner.tsx +1 -8
- package/src/Calendar/Calendar.doc.mjs +1 -1
- package/src/Calendar/Calendar.test.tsx +17 -122
- package/src/Calendar/Calendar.tsx +5 -26
- package/src/Calendar/dayCellUtils.ts +1 -3
- package/src/Calendar/styles.ts +2 -12
- package/src/Card/Card.tsx +6 -16
- package/src/Carousel/Carousel.doc.mjs +12 -12
- package/src/Carousel/Carousel.test.tsx +0 -13
- package/src/Carousel/Carousel.tsx +2 -4
- package/src/Carousel/carousel.markers.stylex.ts +10 -0
- package/src/Chat/Chat.doc.mjs +1 -1
- package/src/Chat/ChatComposerInput.test.tsx +1 -27
- package/src/Chat/ChatComposerInput.tsx +15 -20
- package/src/Chat/ChatDictationButton.tsx +4 -4
- package/src/Chat/ChatLayoutScrollButton.tsx +1 -3
- package/src/Chat/ChatMessageMetadata.tsx +6 -4
- package/src/Chat/ChatSystemMessage.test.tsx +11 -26
- package/src/Chat/ChatSystemMessage.tsx +7 -7
- package/src/Chat/ChatTokenizedText.test.tsx +16 -29
- package/src/Chat/ChatTokenizedText.tsx +8 -15
- package/src/Chat/ChatToolCalls.test.tsx +0 -55
- package/src/Chat/ChatToolCalls.tsx +12 -10
- package/src/Chat/index.ts +4 -1
- package/src/Chat/useTriggerMenu.tsx +4 -1
- package/src/CheckboxInput/CheckboxInput.doc.mjs +3 -3
- package/src/CheckboxInput/CheckboxInput.test.tsx +4 -71
- package/src/CheckboxInput/CheckboxInput.tsx +0 -2
- package/src/CheckboxList/CheckboxList.test.tsx +0 -19
- package/src/CheckboxList/CheckboxListItem.tsx +2 -11
- package/src/Citation/Citation.doc.mjs +0 -5
- package/src/ClickableCard/ClickableCard.tsx +2 -45
- package/src/CodeBlock/CodeBlock.doc.mjs +2 -7
- package/src/CodeBlock/CodeBlock.test.tsx +3 -122
- package/src/CodeBlock/CodeBlock.tsx +4 -62
- package/src/Collapsible/Collapsible.doc.mjs +4 -8
- package/src/Collapsible/Collapsible.tsx +10 -86
- package/src/Collapsible/CollapsibleGroup.doc.mjs +3 -27
- package/src/Collapsible/CollapsibleGroup.test.tsx +0 -318
- package/src/Collapsible/CollapsibleGroup.tsx +9 -107
- package/src/Collapsible/CollapsibleGroupContext.tsx +2 -42
- package/src/Collapsible/index.ts +0 -4
- package/src/Collapsible/useCollapsible.ts +6 -20
- package/src/CommandPalette/CommandPalette.doc.mjs +0 -4
- package/src/CommandPalette/CommandPalette.tsx +3 -5
- package/src/CommandPalette/CommandPaletteEmpty.doc.mjs +0 -5
- package/src/CommandPalette/CommandPaletteGroup.doc.mjs +0 -10
- package/src/CommandPalette/CommandPaletteInput.doc.mjs +0 -6
- package/src/CommandPalette/CommandPaletteItem.doc.mjs +0 -6
- package/src/CommandPalette/CommandPaletteList.doc.mjs +0 -9
- package/src/ContextMenu/ContextMenu.doc.mjs +0 -15
- package/src/ContextMenu/ContextMenu.test.tsx +0 -87
- package/src/ContextMenu/ContextMenu.tsx +28 -87
- package/src/ContextMenu/ContextMenuItem.doc.mjs +0 -6
- package/src/DateInput/DateInput.test.tsx +20 -11
- package/src/DateRangeInput/DateRangeInput.test.tsx +44 -31
- package/src/DateTimeInput/DateTimeInput.doc.mjs +2 -3
- package/src/DateTimeInput/DateTimeInput.test.tsx +16 -118
- package/src/DateTimeInput/DateTimeInput.tsx +2 -8
- package/src/DateTimeInput/index.ts +0 -1
- package/src/Dialog/Dialog.doc.mjs +0 -4
- package/src/Dialog/DialogHeader.doc.mjs +0 -45
- package/src/DropdownMenu/DropdownMenu.doc.mjs +1 -1
- package/src/DropdownMenu/DropdownMenu.test.tsx +2 -22
- package/src/DropdownMenu/DropdownMenuItem.tsx +17 -5
- package/src/Field/Field.test.tsx +4 -1
- package/src/Field/FieldLabel.test.tsx +2 -2
- package/src/FormLayout/__snapshots__/FormLayout.test.tsx.snap +3 -0
- package/src/Grid/Grid.test.tsx +18 -43
- package/src/Grid/Grid.tsx +9 -26
- package/src/HoverCard/HoverCard.doc.mjs +6 -6
- package/src/HoverCard/useHoverCard.doc.mjs +5 -5
- package/src/HoverCard/useHoverCard.tsx +2 -9
- package/src/Icon/Icon.test.tsx +29 -41
- package/src/Icon/Icon.tsx +2 -6
- package/src/InputGroup/InputGroup.tsx +2 -2
- package/src/Item/Item.tsx +1 -1
- package/src/Layer/useLayer.doc.mjs +2 -2
- package/src/Layer/useLayer.test.tsx +2 -221
- package/src/Layer/useLayer.tsx +30 -69
- package/src/Layout/LayoutContent.doc.mjs +0 -12
- package/src/Layout/LayoutPanel.doc.mjs +0 -40
- package/src/Lightbox/Lightbox.doc.mjs +0 -5
- package/src/Lightbox/Lightbox.test.tsx +2 -123
- package/src/Lightbox/Lightbox.tsx +1 -29
- package/src/Markdown/Markdown.tsx +7 -9
- package/src/Markdown/parser.perf.test.ts +12 -34
- package/src/NavMenu/NavMenu.doc.mjs +0 -15
- package/src/NumberInput/NumberInput.test.tsx +3 -48
- package/src/NumberInput/NumberInput.tsx +15 -32
- package/src/Overlay/Overlay.doc.mjs +0 -6
- package/src/Pagination/Pagination.test.tsx +0 -162
- package/src/Pagination/Pagination.tsx +26 -80
- package/src/Popover/Popover.doc.mjs +6 -6
- package/src/Popover/Popover.test.tsx +0 -65
- package/src/Popover/usePopover.doc.mjs +1 -1
- package/src/PowerSearch/PowerSearch.doc.mjs +2 -2
- package/src/PowerSearch/PowerSearch.test.tsx +1 -109
- package/src/PowerSearch/PowerSearch.tsx +16 -37
- package/src/ProgressBar/ProgressBar.test.tsx +0 -30
- package/src/ProgressBar/ProgressBar.tsx +5 -12
- package/src/RadioList/RadioList.test.tsx +0 -19
- package/src/RadioList/RadioListItem.tsx +4 -9
- package/src/Resizable/ResizeHandle.tsx +4 -22
- package/src/SegmentedControl/SegmentedControl.doc.mjs +1 -1
- package/src/SegmentedControl/SegmentedControl.test.tsx +0 -192
- package/src/SegmentedControl/SegmentedControl.tsx +5 -27
- package/src/SegmentedControl/SegmentedControlItem.tsx +4 -9
- package/src/SelectableCard/SelectableCard.doc.mjs +1 -1
- package/src/Selector/Selector.test.tsx +1 -27
- package/src/SideNav/SideNav.doc.mjs +1 -7
- package/src/SideNav/SideNav.test.tsx +0 -66
- package/src/SideNav/SideNav.tsx +2 -6
- package/src/SideNav/SideNavCollapseButton.tsx +3 -4
- package/src/SideNav/SideNavSection.tsx +4 -6
- package/src/Switch/Switch.doc.mjs +7 -7
- package/src/Switch/Switch.test.tsx +3 -102
- package/src/Switch/Switch.tsx +7 -20
- package/src/TabList/TabList.test.tsx +1 -185
- package/src/TabList/TabMenu.tsx +9 -45
- package/src/Table/BaseTable.tsx +2 -13
- package/src/Table/Table.test.tsx +0 -87
- package/src/Table/TableBody.tsx +2 -15
- package/src/Table/TableFooter.tsx +2 -15
- package/src/Table/TableHeader.tsx +2 -15
- package/src/Table/plugins/columnResize/useTableColumnResize.test.tsx +0 -13
- package/src/Table/plugins/columnResize/useTableColumnResize.tsx +1 -3
- package/src/Table/plugins/pagination/paginateData.ts +1 -5
- package/src/Table/plugins/pagination/useTablePagination.test.tsx +0 -13
- package/src/Table/plugins/selection/useTableSelectionState.test.tsx +0 -23
- package/src/Table/plugins/selection/useTableSelectionState.tsx +6 -11
- package/src/Table/plugins/sortable/useTableSortableState.test.tsx +1 -35
- package/src/Table/plugins/sortable/useTableSortableState.tsx +4 -8
- package/src/TextArea/TextArea.test.tsx +3 -3
- package/src/TextInput/TextInput.test.tsx +3 -3
- package/src/Thumbnail/Thumbnail.test.tsx +2 -36
- package/src/Thumbnail/Thumbnail.tsx +2 -4
- package/src/TimeInput/TimeInput.test.tsx +0 -37
- package/src/TimeInput/TimeInput.tsx +1 -11
- package/src/Timestamp/Timestamp.doc.mjs +1 -1
- package/src/Timestamp/Timestamp.test.tsx +0 -52
- package/src/Timestamp/Timestamp.tsx +16 -30
- package/src/Toast/Toast.tsx +3 -11
- package/src/Toast/ToastViewport.test.tsx +0 -64
- package/src/Toast/ToastViewport.tsx +0 -12
- package/src/ToggleButton/ToggleButton.doc.mjs +0 -1
- package/src/Tokenizer/Tokenizer.doc.mjs +2 -2
- package/src/Tokenizer/Tokenizer.test.tsx +0 -54
- package/src/Tokenizer/Tokenizer.tsx +4 -5
- package/src/Tooltip/Tooltip.doc.mjs +6 -6
- package/src/Tooltip/useTooltip.doc.mjs +5 -5
- package/src/Tooltip/useTooltip.tsx +2 -12
- package/src/TopNav/TopNav.doc.mjs +1 -1
- package/src/TopNav/TopNav.test.tsx +7 -23
- package/src/TopNav/TopNavMegaMenuFeaturedCard.tsx +2 -9
- package/src/TreeList/TreeList.doc.mjs +2 -2
- package/src/Typeahead/BaseTypeahead.doc.mjs +0 -19
- package/src/Typeahead/BaseTypeahead.tsx +2 -5
- package/src/Typeahead/Typeahead.doc.mjs +1 -1
- package/src/Typeahead/Typeahead.test.tsx +1 -45
- package/src/docs-types.ts +1 -9
- package/src/hooks/focusableSelector.ts +1 -1
- package/src/hooks/index.ts +0 -3
- package/src/hooks/useFocusTrap.doc.mjs +2 -4
- package/src/hooks/useFocusTrap.test.tsx +1 -149
- package/src/hooks/useFocusTrap.ts +1 -50
- package/src/hooks/useInteractiveRole.ts +4 -12
- package/src/hooks/useStreamingText.test.ts +19 -54
- package/src/hooks/useStreamingText.ts +5 -16
- package/src/hooks/useTreeFocus.test.tsx +3 -1
- package/src/reset.css +0 -29
- package/src/theme/SyntaxTheme.doc.mjs +4 -4
- package/src/theme/defineTheme.ts +13 -4
- package/src/theme/derivedVarRegistry.test.ts +2 -2
- package/src/theme/expandColorScale.test.ts +0 -29
- package/src/theme/expandColorScale.ts +6 -11
- package/src/theme/hct.ts +17 -9
- package/src/theme/tokens.test.ts +9 -182
- package/src/theme/tokens.ts +4 -239
- package/src/theme/useTheme.test.tsx +0 -20
- package/src/utils/index.ts +0 -4
- package/src/utils/sharedResizeObserver.test.ts +2 -2
- package/src/utils/timeParser.test.ts +0 -13
- package/src/utils/timeParser.ts +5 -8
- package/dist/hooks/useHotkeys.d.ts +0 -51
- package/dist/hooks/useHotkeys.d.ts.map +0 -1
- package/dist/hooks/useHotkeys.js +0 -160
- package/dist/utils/color.d.ts +0 -42
- package/dist/utils/color.d.ts.map +0 -1
- package/dist/utils/color.js +0 -150
- package/dist/utils/composeEventHandlers.d.ts +0 -30
- package/dist/utils/composeEventHandlers.d.ts.map +0 -1
- package/dist/utils/composeEventHandlers.js +0 -40
- package/src/Chat/ChatDictationButton.test.tsx +0 -43
- package/src/Chat/ChatLayoutScrollButton.test.tsx +0 -33
- package/src/Chat/ChatMessageMetadata.test.tsx +0 -32
- package/src/Collapsible/Collapsible.test.tsx +0 -405
- package/src/FieldStatus/FieldStatus.test.tsx +0 -282
- package/src/InteractiveRoleContext/InteractiveRoleContext.test.tsx +0 -185
- package/src/Layout/Layout.test.tsx +0 -285
- package/src/Layout/LayoutSlots.test.tsx +0 -364
- package/src/Outline/parseOutlineFromMarkdown.test.ts +0 -80
- package/src/OverflowList/OverflowList.test.tsx +0 -416
- package/src/Overlay/Overlay.test.tsx +0 -356
- package/src/Resizable/ResizeHandle.test.tsx +0 -218
- package/src/SizeContext/SizeContext.test.tsx +0 -226
- package/src/__tests__/TestIcon.tsx +0 -26
- package/src/__tests__/fastRoleQueries.ts +0 -66
- package/src/docPropReferences.test.ts +0 -178
- package/src/hooks/useHotkeys.doc.mjs +0 -52
- package/src/hooks/useHotkeys.test.ts +0 -245
- package/src/hooks/useHotkeys.ts +0 -203
- package/src/utils/color.test.ts +0 -133
- package/src/utils/color.ts +0 -148
- package/src/utils/composeEventHandlers.test.ts +0 -71
- package/src/utils/composeEventHandlers.ts +0 -44
- package/src/utils/mergeProps.test.ts +0 -166
|
@@ -12,11 +12,6 @@
|
|
|
12
12
|
import {describe, it, expect, vi, beforeEach} from 'vitest';
|
|
13
13
|
import {render, screen, fireEvent, waitFor} from '@testing-library/react';
|
|
14
14
|
import userEvent from '@testing-library/user-event';
|
|
15
|
-
// getButton/queryButton instead of getByRole('button', {name}): the closed
|
|
16
|
-
// popover keeps a two-month Calendar (~85 role=button nodes) mounted, which
|
|
17
|
-
// made every role+name query compute ~85 accessible names through jsdom's
|
|
18
|
-
// slow getComputedStyle (~450ms per query). See fastRoleQueries.ts.
|
|
19
|
-
import {getButton, queryButton} from '../__tests__/fastRoleQueries';
|
|
20
15
|
import {DateRangeInput} from './DateRangeInput';
|
|
21
16
|
import type {DateRange} from './DateRangeInput';
|
|
22
17
|
|
|
@@ -58,7 +53,7 @@ describe('DateRangeInput', () => {
|
|
|
58
53
|
hasClear={false}
|
|
59
54
|
/>,
|
|
60
55
|
);
|
|
61
|
-
const trigger =
|
|
56
|
+
const trigger = screen.getByRole('button', {name: /Range:/});
|
|
62
57
|
expect(trigger.textContent).toMatch(/Mar/);
|
|
63
58
|
expect(trigger.textContent).toMatch(/15/);
|
|
64
59
|
expect(trigger.textContent).toMatch(/22/);
|
|
@@ -98,13 +93,13 @@ describe('DateRangeInput', () => {
|
|
|
98
93
|
onChange={() => {}}
|
|
99
94
|
/>,
|
|
100
95
|
);
|
|
101
|
-
const trigger =
|
|
96
|
+
const trigger = screen.getByRole('button', {name: /Range/});
|
|
102
97
|
expect(trigger).toHaveAttribute('aria-required', 'true');
|
|
103
98
|
});
|
|
104
99
|
|
|
105
100
|
it('does not set aria-required when isRequired is false', () => {
|
|
106
101
|
render(<DateRangeInput label="Range" value={null} onChange={() => {}} />);
|
|
107
|
-
const trigger =
|
|
102
|
+
const trigger = screen.getByRole('button', {name: /Range/});
|
|
108
103
|
expect(trigger).not.toHaveAttribute('aria-required');
|
|
109
104
|
});
|
|
110
105
|
|
|
@@ -117,25 +112,25 @@ describe('DateRangeInput', () => {
|
|
|
117
112
|
onChange={() => {}}
|
|
118
113
|
/>,
|
|
119
114
|
);
|
|
120
|
-
const trigger =
|
|
115
|
+
const trigger = screen.getByRole('button', {name: /Range/});
|
|
121
116
|
expect(trigger).toBeDisabled();
|
|
122
117
|
});
|
|
123
118
|
|
|
124
119
|
it('is not disabled by default', () => {
|
|
125
120
|
render(<DateRangeInput label="Range" value={null} onChange={() => {}} />);
|
|
126
|
-
const trigger =
|
|
121
|
+
const trigger = screen.getByRole('button', {name: /Range/});
|
|
127
122
|
expect(trigger).not.toBeDisabled();
|
|
128
123
|
});
|
|
129
124
|
|
|
130
125
|
it('trigger has aria-haspopup="dialog"', () => {
|
|
131
126
|
render(<DateRangeInput label="Range" value={null} onChange={() => {}} />);
|
|
132
|
-
const trigger =
|
|
127
|
+
const trigger = screen.getByRole('button', {name: /Range/});
|
|
133
128
|
expect(trigger).toHaveAttribute('aria-haspopup', 'dialog');
|
|
134
129
|
});
|
|
135
130
|
|
|
136
131
|
it('trigger has aria-expanded=false by default', () => {
|
|
137
132
|
render(<DateRangeInput label="Range" value={null} onChange={() => {}} />);
|
|
138
|
-
const trigger =
|
|
133
|
+
const trigger = screen.getByRole('button', {name: /Range/});
|
|
139
134
|
expect(trigger).toHaveAttribute('aria-expanded', 'false');
|
|
140
135
|
});
|
|
141
136
|
|
|
@@ -148,7 +143,7 @@ describe('DateRangeInput', () => {
|
|
|
148
143
|
status={{type: 'error', message: 'Required'}}
|
|
149
144
|
/>,
|
|
150
145
|
);
|
|
151
|
-
const trigger =
|
|
146
|
+
const trigger = screen.getByRole('button', {name: /Range/});
|
|
152
147
|
expect(trigger).toHaveAttribute('aria-invalid', 'true');
|
|
153
148
|
});
|
|
154
149
|
|
|
@@ -161,7 +156,7 @@ describe('DateRangeInput', () => {
|
|
|
161
156
|
status={{type: 'warning', message: 'Watch out'}}
|
|
162
157
|
/>,
|
|
163
158
|
);
|
|
164
|
-
const trigger =
|
|
159
|
+
const trigger = screen.getByRole('button', {name: /Range/});
|
|
165
160
|
expect(trigger).not.toHaveAttribute('aria-invalid');
|
|
166
161
|
});
|
|
167
162
|
|
|
@@ -186,7 +181,7 @@ describe('DateRangeInput', () => {
|
|
|
186
181
|
status={{type: 'error', message: 'Please select dates'}}
|
|
187
182
|
/>,
|
|
188
183
|
);
|
|
189
|
-
const trigger =
|
|
184
|
+
const trigger = screen.getByRole('button', {name: /Range/});
|
|
190
185
|
const describedBy = trigger.getAttribute('aria-describedby')!;
|
|
191
186
|
const ids = describedBy.split(' ');
|
|
192
187
|
const found = ids.some(id => {
|
|
@@ -198,7 +193,9 @@ describe('DateRangeInput', () => {
|
|
|
198
193
|
|
|
199
194
|
it('calendar icon button is present', () => {
|
|
200
195
|
render(<DateRangeInput label="Range" value={null} onChange={() => {}} />);
|
|
201
|
-
expect(
|
|
196
|
+
expect(
|
|
197
|
+
screen.getByRole('button', {name: 'Open calendar'}),
|
|
198
|
+
).toBeInTheDocument();
|
|
202
199
|
});
|
|
203
200
|
|
|
204
201
|
it('calendar icon button is disabled when isDisabled', () => {
|
|
@@ -210,7 +207,7 @@ describe('DateRangeInput', () => {
|
|
|
210
207
|
onChange={() => {}}
|
|
211
208
|
/>,
|
|
212
209
|
);
|
|
213
|
-
expect(
|
|
210
|
+
expect(screen.getByRole('button', {name: 'Open calendar'})).toBeDisabled();
|
|
214
211
|
});
|
|
215
212
|
|
|
216
213
|
it('renders with size="lg"', () => {
|
|
@@ -239,7 +236,9 @@ describe('DateRangeInput', () => {
|
|
|
239
236
|
hasClear
|
|
240
237
|
/>,
|
|
241
238
|
);
|
|
242
|
-
expect(
|
|
239
|
+
expect(
|
|
240
|
+
screen.getByRole('button', {name: 'Clear Range'}),
|
|
241
|
+
).toBeInTheDocument();
|
|
243
242
|
});
|
|
244
243
|
|
|
245
244
|
it('does not show clear button when value is null', () => {
|
|
@@ -251,7 +250,9 @@ describe('DateRangeInput', () => {
|
|
|
251
250
|
hasClear
|
|
252
251
|
/>,
|
|
253
252
|
);
|
|
254
|
-
expect(
|
|
253
|
+
expect(
|
|
254
|
+
screen.queryByRole('button', {name: 'Clear Range'}),
|
|
255
|
+
).not.toBeInTheDocument();
|
|
255
256
|
});
|
|
256
257
|
|
|
257
258
|
it('does not show clear button when hasClear is false', () => {
|
|
@@ -267,7 +268,9 @@ describe('DateRangeInput', () => {
|
|
|
267
268
|
hasClear={false}
|
|
268
269
|
/>,
|
|
269
270
|
);
|
|
270
|
-
expect(
|
|
271
|
+
expect(
|
|
272
|
+
screen.queryByRole('button', {name: 'Clear Range'}),
|
|
273
|
+
).not.toBeInTheDocument();
|
|
271
274
|
});
|
|
272
275
|
|
|
273
276
|
it('does not show clear button when disabled', () => {
|
|
@@ -284,7 +287,9 @@ describe('DateRangeInput', () => {
|
|
|
284
287
|
isDisabled
|
|
285
288
|
/>,
|
|
286
289
|
);
|
|
287
|
-
expect(
|
|
290
|
+
expect(
|
|
291
|
+
screen.queryByRole('button', {name: 'Clear Range'}),
|
|
292
|
+
).not.toBeInTheDocument();
|
|
288
293
|
});
|
|
289
294
|
|
|
290
295
|
it('calls onChange with null when clear is clicked', () => {
|
|
@@ -301,7 +306,7 @@ describe('DateRangeInput', () => {
|
|
|
301
306
|
hasClear
|
|
302
307
|
/>,
|
|
303
308
|
);
|
|
304
|
-
fireEvent.click(
|
|
309
|
+
fireEvent.click(screen.getByRole('button', {name: 'Clear Range'}));
|
|
305
310
|
expect(onChange).toHaveBeenCalledWith(null);
|
|
306
311
|
});
|
|
307
312
|
});
|
|
@@ -341,7 +346,9 @@ describe('DateRangeInput', () => {
|
|
|
341
346
|
expect(
|
|
342
347
|
screen.getByRole('group', {name: 'Preset date ranges', hidden: true}),
|
|
343
348
|
).toBeInTheDocument();
|
|
344
|
-
expect(
|
|
349
|
+
expect(
|
|
350
|
+
screen.getByRole('button', {name: 'Last 7 days', hidden: true}),
|
|
351
|
+
).toBeInTheDocument();
|
|
345
352
|
});
|
|
346
353
|
|
|
347
354
|
it('marks the applied preset with aria-current, not aria-selected', () => {
|
|
@@ -353,10 +360,16 @@ describe('DateRangeInput', () => {
|
|
|
353
360
|
presets={presets}
|
|
354
361
|
/>,
|
|
355
362
|
);
|
|
356
|
-
const active =
|
|
363
|
+
const active = screen.getByRole('button', {
|
|
364
|
+
name: 'Last 7 days',
|
|
365
|
+
hidden: true,
|
|
366
|
+
});
|
|
357
367
|
expect(active).toHaveAttribute('aria-current', 'true');
|
|
358
368
|
expect(active).not.toHaveAttribute('aria-selected');
|
|
359
|
-
const inactive =
|
|
369
|
+
const inactive = screen.getByRole('button', {
|
|
370
|
+
name: 'This month',
|
|
371
|
+
hidden: true,
|
|
372
|
+
});
|
|
360
373
|
expect(inactive).not.toHaveAttribute('aria-current');
|
|
361
374
|
});
|
|
362
375
|
});
|
|
@@ -392,7 +405,7 @@ describe('DateRangeInput', () => {
|
|
|
392
405
|
it('shows the reason tooltip on hover when disabled with a reason', async () => {
|
|
393
406
|
renderDisabled({disabledMessage: 'You need the Editor role'});
|
|
394
407
|
|
|
395
|
-
const trigger =
|
|
408
|
+
const trigger = screen.getByRole('button', {name: /Range:/, ...h});
|
|
396
409
|
const container = trigger.parentElement as HTMLElement;
|
|
397
410
|
const tooltip = screen.getByRole('tooltip', h);
|
|
398
411
|
expect(tooltip).toHaveTextContent('You need the Editor role');
|
|
@@ -414,7 +427,7 @@ describe('DateRangeInput', () => {
|
|
|
414
427
|
|
|
415
428
|
const tooltip = screen.getByRole('tooltip', h);
|
|
416
429
|
await user.tab();
|
|
417
|
-
expect(
|
|
430
|
+
expect(screen.getByRole('button', {name: /Range:/, ...h})).toHaveFocus();
|
|
418
431
|
await waitFor(() => {
|
|
419
432
|
expect(tooltip).toHaveAttribute('popover-open');
|
|
420
433
|
});
|
|
@@ -439,14 +452,14 @@ describe('DateRangeInput', () => {
|
|
|
439
452
|
|
|
440
453
|
it('keeps the trigger focusable via aria-disabled when a reason is provided', () => {
|
|
441
454
|
renderDisabled({disabledMessage: 'You need the Editor role'});
|
|
442
|
-
const trigger =
|
|
455
|
+
const trigger = screen.getByRole('button', {name: /Range:/, ...h});
|
|
443
456
|
expect(trigger).not.toBeDisabled();
|
|
444
457
|
expect(trigger).toHaveAttribute('aria-disabled', 'true');
|
|
445
458
|
});
|
|
446
459
|
|
|
447
460
|
it('links the reason tooltip from the trigger via aria-describedby', () => {
|
|
448
461
|
renderDisabled({disabledMessage: 'You need the Editor role'});
|
|
449
|
-
const trigger =
|
|
462
|
+
const trigger = screen.getByRole('button', {name: /Range:/, ...h});
|
|
450
463
|
const tooltip = screen.getByRole('tooltip', h);
|
|
451
464
|
expect(trigger.getAttribute('aria-describedby')).toContain(tooltip.id);
|
|
452
465
|
});
|
|
@@ -455,7 +468,7 @@ describe('DateRangeInput', () => {
|
|
|
455
468
|
const user = userEvent.setup();
|
|
456
469
|
renderDisabled({disabledMessage: 'You need the Editor role'});
|
|
457
470
|
|
|
458
|
-
const trigger =
|
|
471
|
+
const trigger = screen.getByRole('button', {name: /Range:/, ...h});
|
|
459
472
|
await user.click(trigger);
|
|
460
473
|
expect(trigger).toHaveAttribute('aria-expanded', 'false');
|
|
461
474
|
|
|
@@ -465,7 +478,7 @@ describe('DateRangeInput', () => {
|
|
|
465
478
|
|
|
466
479
|
it('remains natively disabled when disabled without a reason', () => {
|
|
467
480
|
renderDisabled();
|
|
468
|
-
const trigger =
|
|
481
|
+
const trigger = screen.getByRole('button', {name: /Range:/, ...h});
|
|
469
482
|
expect(trigger).toBeDisabled();
|
|
470
483
|
expect(trigger).not.toHaveAttribute('aria-disabled');
|
|
471
484
|
});
|
|
@@ -118,7 +118,7 @@ export const docs = {
|
|
|
118
118
|
},
|
|
119
119
|
{
|
|
120
120
|
name: 'timeIncrement',
|
|
121
|
-
type: '
|
|
121
|
+
type: 'number',
|
|
122
122
|
description:
|
|
123
123
|
'Minutes to add or subtract when using arrow keys in the time input.',
|
|
124
124
|
default: '1',
|
|
@@ -413,7 +413,7 @@ export const docsZh = {
|
|
|
413
413
|
},
|
|
414
414
|
{
|
|
415
415
|
name: 'timeIncrement',
|
|
416
|
-
type: '
|
|
416
|
+
type: 'number',
|
|
417
417
|
description: '在时间输入中按箭头键时增减的分钟数。',
|
|
418
418
|
default: '1',
|
|
419
419
|
},
|
|
@@ -469,7 +469,6 @@ export const docsZh = {
|
|
|
469
469
|
description:
|
|
470
470
|
'用于布局自定义的 StyleX 样式。必须是 stylex.create() 的值。',
|
|
471
471
|
},
|
|
472
|
-
|
|
473
472
|
],
|
|
474
473
|
theming: {
|
|
475
474
|
targets: [
|
|
@@ -12,7 +12,6 @@
|
|
|
12
12
|
import {describe, it, expect, vi, beforeEach} from 'vitest';
|
|
13
13
|
import {render, screen, fireEvent, waitFor} from '@testing-library/react';
|
|
14
14
|
import userEvent from '@testing-library/user-event';
|
|
15
|
-
import {getButton, queryButton} from '../__tests__/fastRoleQueries';
|
|
16
15
|
import {DateTimeInput} from './DateTimeInput';
|
|
17
16
|
import type {ISODateTimeString} from './DateTimeInput';
|
|
18
17
|
|
|
@@ -187,14 +186,14 @@ describe('DateTimeInput', () => {
|
|
|
187
186
|
|
|
188
187
|
it('calendar button is focusable and clickable', () => {
|
|
189
188
|
render(<DateTimeInput label="Meeting" onChange={() => {}} />);
|
|
190
|
-
const button =
|
|
189
|
+
const button = screen.getByRole('button', {name: 'Open calendar'});
|
|
191
190
|
expect(button).toBeInTheDocument();
|
|
192
191
|
expect(button).not.toBeDisabled();
|
|
193
192
|
});
|
|
194
193
|
|
|
195
194
|
it('calendar button is disabled when isDisabled is true', () => {
|
|
196
195
|
render(<DateTimeInput label="Meeting" isDisabled onChange={() => {}} />);
|
|
197
|
-
const button =
|
|
196
|
+
const button = screen.getByRole('button', {name: 'Open calendar'});
|
|
198
197
|
expect(button).toBeDisabled();
|
|
199
198
|
});
|
|
200
199
|
|
|
@@ -202,7 +201,7 @@ describe('DateTimeInput', () => {
|
|
|
202
201
|
render(<DateTimeInput label="Meeting" isLoading onChange={() => {}} />);
|
|
203
202
|
expect(screen.getByRole('combobox')).toBeDisabled();
|
|
204
203
|
expect(screen.getByLabelText('Meeting time')).toBeDisabled();
|
|
205
|
-
expect(
|
|
204
|
+
expect(screen.getByRole('button', {name: 'Open calendar'})).toBeDisabled();
|
|
206
205
|
});
|
|
207
206
|
|
|
208
207
|
it('sets aria-busy when isLoading is true', () => {
|
|
@@ -215,21 +214,6 @@ describe('DateTimeInput', () => {
|
|
|
215
214
|
expect(screen.getByRole('combobox')).not.toHaveAttribute('aria-busy');
|
|
216
215
|
});
|
|
217
216
|
|
|
218
|
-
it('sets aria-busy on the time input when isLoading is true', () => {
|
|
219
|
-
render(<DateTimeInput label="Meeting" isLoading onChange={() => {}} />);
|
|
220
|
-
expect(screen.getByLabelText('Meeting time')).toHaveAttribute(
|
|
221
|
-
'aria-busy',
|
|
222
|
-
'true',
|
|
223
|
-
);
|
|
224
|
-
});
|
|
225
|
-
|
|
226
|
-
it('does not set aria-busy on the time input when not loading', () => {
|
|
227
|
-
render(<DateTimeInput label="Meeting" onChange={() => {}} />);
|
|
228
|
-
expect(screen.getByLabelText('Meeting time')).not.toHaveAttribute(
|
|
229
|
-
'aria-busy',
|
|
230
|
-
);
|
|
231
|
-
});
|
|
232
|
-
|
|
233
217
|
it('renders status icon for error status', () => {
|
|
234
218
|
render(
|
|
235
219
|
<DateTimeInput
|
|
@@ -286,61 +270,6 @@ describe('DateTimeInput', () => {
|
|
|
286
270
|
expect(found).toBe(true);
|
|
287
271
|
});
|
|
288
272
|
|
|
289
|
-
it('links the description to the time input via aria-describedby', () => {
|
|
290
|
-
render(
|
|
291
|
-
<DateTimeInput
|
|
292
|
-
label="Meeting"
|
|
293
|
-
description="Pick the meeting datetime"
|
|
294
|
-
onChange={() => {}}
|
|
295
|
-
/>,
|
|
296
|
-
);
|
|
297
|
-
// The description covers both halves of the field, so the time input must
|
|
298
|
-
// carry it too — a screen-reader user tabbing into the time half should
|
|
299
|
-
// not lose the field's description.
|
|
300
|
-
const timeInput = screen.getByLabelText('Meeting time');
|
|
301
|
-
const describedBy = timeInput.getAttribute('aria-describedby')!;
|
|
302
|
-
const ids = describedBy.split(' ');
|
|
303
|
-
const found = ids.some(id =>
|
|
304
|
-
document
|
|
305
|
-
.getElementById(id)
|
|
306
|
-
?.textContent?.includes('Pick the meeting datetime'),
|
|
307
|
-
);
|
|
308
|
-
expect(found).toBe(true);
|
|
309
|
-
});
|
|
310
|
-
|
|
311
|
-
it('links the status message to the time input via aria-describedby', () => {
|
|
312
|
-
render(
|
|
313
|
-
<DateTimeInput
|
|
314
|
-
label="Meeting"
|
|
315
|
-
onChange={() => {}}
|
|
316
|
-
status={{type: 'error', message: 'Invalid datetime'}}
|
|
317
|
-
/>,
|
|
318
|
-
);
|
|
319
|
-
const timeInput = screen.getByLabelText('Meeting time');
|
|
320
|
-
const describedBy = timeInput.getAttribute('aria-describedby')!;
|
|
321
|
-
const ids = describedBy.split(' ');
|
|
322
|
-
const found = ids.some(id =>
|
|
323
|
-
document.getElementById(id)?.textContent?.includes('Invalid datetime'),
|
|
324
|
-
);
|
|
325
|
-
expect(found).toBe(true);
|
|
326
|
-
});
|
|
327
|
-
|
|
328
|
-
it('links the disabled reason to the time input via aria-describedby', () => {
|
|
329
|
-
HTMLElement.prototype.showPopover = vi.fn();
|
|
330
|
-
HTMLElement.prototype.hidePopover = vi.fn();
|
|
331
|
-
render(
|
|
332
|
-
<DateTimeInput
|
|
333
|
-
label="When"
|
|
334
|
-
onChange={() => {}}
|
|
335
|
-
isDisabled
|
|
336
|
-
disabledMessage="You need the Editor role"
|
|
337
|
-
/>,
|
|
338
|
-
);
|
|
339
|
-
const timeInput = screen.getByLabelText('When time');
|
|
340
|
-
const tooltip = screen.getByRole('tooltip', {hidden: true});
|
|
341
|
-
expect(timeInput.getAttribute('aria-describedby')).toContain(tooltip.id);
|
|
342
|
-
});
|
|
343
|
-
|
|
344
273
|
it('handles Escape keydown on date input without error', () => {
|
|
345
274
|
render(<DateTimeInput label="Meeting" onChange={() => {}} />);
|
|
346
275
|
const input = screen.getByRole('combobox');
|
|
@@ -434,12 +363,16 @@ describe('DateTimeInput', () => {
|
|
|
434
363
|
hasClear
|
|
435
364
|
/>,
|
|
436
365
|
);
|
|
437
|
-
expect(
|
|
366
|
+
expect(
|
|
367
|
+
screen.getByRole('button', {name: 'Clear Meeting'}),
|
|
368
|
+
).toBeInTheDocument();
|
|
438
369
|
});
|
|
439
370
|
|
|
440
371
|
it('does not show clear button when value is undefined', () => {
|
|
441
372
|
render(<DateTimeInput label="Meeting" onChange={() => {}} hasClear />);
|
|
442
|
-
expect(
|
|
373
|
+
expect(
|
|
374
|
+
screen.queryByRole('button', {name: 'Clear Meeting'}),
|
|
375
|
+
).not.toBeInTheDocument();
|
|
443
376
|
});
|
|
444
377
|
|
|
445
378
|
it('does not show clear button when hasClear is false', () => {
|
|
@@ -450,7 +383,9 @@ describe('DateTimeInput', () => {
|
|
|
450
383
|
onChange={() => {}}
|
|
451
384
|
/>,
|
|
452
385
|
);
|
|
453
|
-
expect(
|
|
386
|
+
expect(
|
|
387
|
+
screen.queryByRole('button', {name: 'Clear Meeting'}),
|
|
388
|
+
).not.toBeInTheDocument();
|
|
454
389
|
});
|
|
455
390
|
|
|
456
391
|
it('does not show clear button when disabled', () => {
|
|
@@ -463,7 +398,9 @@ describe('DateTimeInput', () => {
|
|
|
463
398
|
isDisabled
|
|
464
399
|
/>,
|
|
465
400
|
);
|
|
466
|
-
expect(
|
|
401
|
+
expect(
|
|
402
|
+
screen.queryByRole('button', {name: 'Clear Meeting'}),
|
|
403
|
+
).not.toBeInTheDocument();
|
|
467
404
|
});
|
|
468
405
|
|
|
469
406
|
it('calls onChange with undefined when clear is clicked', () => {
|
|
@@ -476,7 +413,7 @@ describe('DateTimeInput', () => {
|
|
|
476
413
|
hasClear
|
|
477
414
|
/>,
|
|
478
415
|
);
|
|
479
|
-
fireEvent.click(
|
|
416
|
+
fireEvent.click(screen.getByRole('button', {name: 'Clear Meeting'}));
|
|
480
417
|
expect(onChange).toHaveBeenCalledWith(undefined);
|
|
481
418
|
});
|
|
482
419
|
});
|
|
@@ -740,43 +677,4 @@ describe('DateTimeInput', () => {
|
|
|
740
677
|
expect(timeInput).toHaveAttribute('placeholder', 'Select a time');
|
|
741
678
|
});
|
|
742
679
|
});
|
|
743
|
-
|
|
744
|
-
describe('timeIncrement', () => {
|
|
745
|
-
it('steps the time by timeIncrement minutes on ArrowUp', () => {
|
|
746
|
-
const onChange = vi.fn();
|
|
747
|
-
render(
|
|
748
|
-
<DateTimeInput
|
|
749
|
-
label="Meeting"
|
|
750
|
-
value={'2026-03-15T14:30' as ISODateTimeString}
|
|
751
|
-
timeIncrement={15}
|
|
752
|
-
onChange={onChange}
|
|
753
|
-
/>,
|
|
754
|
-
);
|
|
755
|
-
|
|
756
|
-
const timeInput = screen.getByLabelText('Meeting time');
|
|
757
|
-
fireEvent.keyDown(timeInput, {key: 'ArrowUp'});
|
|
758
|
-
|
|
759
|
-
// 14:30 + 15min increment = 14:45
|
|
760
|
-
expect(onChange).toHaveBeenCalledTimes(1);
|
|
761
|
-
expect(onChange.mock.calls[0][0]).toContain('14:45');
|
|
762
|
-
});
|
|
763
|
-
|
|
764
|
-
it('defaults to a 1-minute increment', () => {
|
|
765
|
-
const onChange = vi.fn();
|
|
766
|
-
render(
|
|
767
|
-
<DateTimeInput
|
|
768
|
-
label="Meeting"
|
|
769
|
-
value={'2026-03-15T14:30' as ISODateTimeString}
|
|
770
|
-
onChange={onChange}
|
|
771
|
-
/>,
|
|
772
|
-
);
|
|
773
|
-
|
|
774
|
-
const timeInput = screen.getByLabelText('Meeting time');
|
|
775
|
-
fireEvent.keyDown(timeInput, {key: 'ArrowUp'});
|
|
776
|
-
|
|
777
|
-
// 14:30 + default 1min = 14:31
|
|
778
|
-
expect(onChange).toHaveBeenCalledTimes(1);
|
|
779
|
-
expect(onChange.mock.calls[0][0]).toContain('14:31');
|
|
780
|
-
});
|
|
781
|
-
});
|
|
782
680
|
});
|
|
@@ -86,9 +86,6 @@ export type DateTimeInputHourFormat = '12h' | '24h';
|
|
|
86
86
|
|
|
87
87
|
export type DateTimeInputSize = 'sm' | 'md' | 'lg';
|
|
88
88
|
|
|
89
|
-
/** Supported minute increments for arrow-key stepping of the time field. */
|
|
90
|
-
export type DateTimeInputTimeIncrement = 1 | 5 | 10 | 15 | 30;
|
|
91
|
-
|
|
92
89
|
export type {
|
|
93
90
|
InputStatus as DateTimeInputStatus,
|
|
94
91
|
InputStatusType as DateTimeInputStatusType,
|
|
@@ -290,11 +287,10 @@ export interface DateTimeInputProps extends Omit<
|
|
|
290
287
|
hourFormat?: DateTimeInputHourFormat;
|
|
291
288
|
|
|
292
289
|
/**
|
|
293
|
-
*
|
|
294
|
-
* keys. Constrained to a set of sensible increments.
|
|
290
|
+
* Time increment in minutes when using arrow keys in the time input.
|
|
295
291
|
* @default 1
|
|
296
292
|
*/
|
|
297
|
-
timeIncrement?:
|
|
293
|
+
timeIncrement?: number;
|
|
298
294
|
|
|
299
295
|
/**
|
|
300
296
|
* Whether to show a clear button when a value is set.
|
|
@@ -991,12 +987,10 @@ export function DateTimeInput({
|
|
|
991
987
|
aria-disabled={showsDisabledMessage ? 'true' : undefined}
|
|
992
988
|
readOnly={showsDisabledMessage || undefined}
|
|
993
989
|
aria-label={timeLabel ?? `${label} time`}
|
|
994
|
-
aria-describedby={ariaDescribedBy}
|
|
995
990
|
aria-required={isRequired === true ? 'true' : undefined}
|
|
996
991
|
aria-invalid={
|
|
997
992
|
status?.type === 'error' || !isTimeInputValid ? 'true' : undefined
|
|
998
993
|
}
|
|
999
|
-
aria-busy={isBusy || undefined}
|
|
1000
994
|
{...stylex.props(
|
|
1001
995
|
styles.input,
|
|
1002
996
|
isEffectivelyDisabled && styles.inputDisabled,
|
|
@@ -8,10 +8,6 @@ export const docs = {
|
|
|
8
8
|
group: 'Dialog',
|
|
9
9
|
category: 'Overlay',
|
|
10
10
|
keywords: ["dialog","modal","popup","overlay","lightbox","alert","confirm","prompt","backdrop","focus trap","imperative"],
|
|
11
|
-
// Intentionally a contained isInline preview, not playground.overlay: the
|
|
12
|
-
// component stays visible on load and knobs stay live, whereas a real
|
|
13
|
-
// showModal() overlay makes the page inert — see PlaygroundConfig.overlay
|
|
14
|
-
// in docs-types.ts (#3657).
|
|
15
11
|
playground: {
|
|
16
12
|
defaults: {
|
|
17
13
|
isOpen: true,
|
|
@@ -65,51 +65,6 @@ export const docs = {
|
|
|
65
65
|
default: 'true',
|
|
66
66
|
},
|
|
67
67
|
],
|
|
68
|
-
playground: {
|
|
69
|
-
defaults: {
|
|
70
|
-
title: 'Delete file?',
|
|
71
|
-
subtitle: 'This action cannot be undone.',
|
|
72
|
-
hasDivider: true,
|
|
73
|
-
},
|
|
74
|
-
},
|
|
75
|
-
examples: [
|
|
76
|
-
{
|
|
77
|
-
label: 'Basic',
|
|
78
|
-
code: `
|
|
79
|
-
import {DialogHeader} from '@astryxdesign/core/Dialog';
|
|
80
|
-
|
|
81
|
-
<DialogHeader title="Delete file?" subtitle="This action cannot be undone." />;
|
|
82
|
-
`,
|
|
83
|
-
},
|
|
84
|
-
{
|
|
85
|
-
label: 'With close button',
|
|
86
|
-
code: `
|
|
87
|
-
import {useState} from 'react';
|
|
88
|
-
import {DialogHeader} from '@astryxdesign/core/Dialog';
|
|
89
|
-
|
|
90
|
-
function Header() {
|
|
91
|
-
const [, setIsOpen] = useState(true);
|
|
92
|
-
|
|
93
|
-
// Passing onOpenChange renders a close button that calls it with false.
|
|
94
|
-
return <DialogHeader title="Settings" onOpenChange={setIsOpen} />;
|
|
95
|
-
}
|
|
96
|
-
`,
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
label: 'With start and end content',
|
|
100
|
-
code: `
|
|
101
|
-
import {DialogHeader} from '@astryxdesign/core/Dialog';
|
|
102
|
-
import {Icon} from '@astryxdesign/core/Icon';
|
|
103
|
-
import {Badge} from '@astryxdesign/core/Badge';
|
|
104
|
-
|
|
105
|
-
<DialogHeader
|
|
106
|
-
title="Notifications"
|
|
107
|
-
startContent={<Icon icon="chevronLeft" size="sm" />}
|
|
108
|
-
endContent={<Badge label="3" />}
|
|
109
|
-
/>;
|
|
110
|
-
`,
|
|
111
|
-
},
|
|
112
|
-
],
|
|
113
68
|
};
|
|
114
69
|
|
|
115
70
|
export const docsZh = {
|
|
@@ -11,7 +11,7 @@ export const docs = {
|
|
|
11
11
|
theming: {
|
|
12
12
|
targets: [
|
|
13
13
|
{className: 'astryx-dropdown-menu'},
|
|
14
|
-
{className: 'astryx-dropdown-menu-item'
|
|
14
|
+
{className: 'astryx-dropdown-menu-item'},
|
|
15
15
|
],
|
|
16
16
|
vars: [
|
|
17
17
|
{name: '--_dropdown-menu-radius', description: 'Border radius of the menu popup', default: 'var(--radius-element)', private: true},
|
|
@@ -89,7 +89,7 @@ describe('DropdownMenu', () => {
|
|
|
89
89
|
.getByRole('menu', {hidden: true})
|
|
90
90
|
.closest('[popover]');
|
|
91
91
|
expect(popover?.getAttribute('style')).toContain(
|
|
92
|
-
'position-area:
|
|
92
|
+
'position-area: bottom span-right',
|
|
93
93
|
);
|
|
94
94
|
});
|
|
95
95
|
|
|
@@ -105,27 +105,7 @@ describe('DropdownMenu', () => {
|
|
|
105
105
|
.getByRole('menu', {hidden: true})
|
|
106
106
|
.closest('[popover]');
|
|
107
107
|
expect(popover?.getAttribute('style')).toContain(
|
|
108
|
-
'position-area:
|
|
109
|
-
);
|
|
110
|
-
});
|
|
111
|
-
|
|
112
|
-
it('emits the direction-independent logical mapping under an RTL ancestor (#3389)', async () => {
|
|
113
|
-
// The self-* position-area keywords resolve against the popover's own
|
|
114
|
-
// inherited direction in the browser, so RTL emits the same string as
|
|
115
|
-
// LTR and the mirroring is pure CSS. jsdom can't verify the geometry —
|
|
116
|
-
// the DropdownMenu RTL Storybook story is the visual proof surface.
|
|
117
|
-
const user = userEvent.setup();
|
|
118
|
-
const {container} = render(
|
|
119
|
-
<div style={{direction: 'rtl'}}>
|
|
120
|
-
<DropdownMenu button={{label: 'Actions'}} items={[{label: 'Item 1'}]} />
|
|
121
|
-
</div>,
|
|
122
|
-
);
|
|
123
|
-
|
|
124
|
-
await user.click(screen.getByRole('button', {name: /Actions/}));
|
|
125
|
-
|
|
126
|
-
const popover = container.querySelector('[popover]');
|
|
127
|
-
expect(popover?.getAttribute('style')).toContain(
|
|
128
|
-
'position-area: self-block-end span-self-inline-end',
|
|
108
|
+
'position-area: top span-right',
|
|
129
109
|
);
|
|
130
110
|
});
|
|
131
111
|
|