@astryxdesign/core 0.1.4-canary.ff77e1c → 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.d.ts +1 -1
- package/dist/MobileNav/MobileNav.d.ts.map +1 -1
- package/dist/MobileNav/MobileNav.js +23 -26
- 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.d.ts.map +1 -1
- package/dist/Toast/useToast.js +4 -44
- 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 +59 -59
- 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/theme/useTheme.d.ts +2 -3
- package/dist/theme/useTheme.d.ts.map +1 -1
- package/dist/theme/useTheme.js +6 -73
- 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/AvatarGroup/AvatarGroup.doc.mjs +0 -1
- 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.doc.mjs +1 -1
- 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 -5
- 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/EmptyState/EmptyState.doc.mjs +1 -1
- 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.doc.mjs +0 -1
- 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/MobileNav/MobileNav.test.tsx +0 -56
- package/src/MobileNav/MobileNav.tsx +8 -13
- 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/Outline/Outline.doc.mjs +0 -2
- 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.doc.mjs +0 -2
- 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.doc.mjs +0 -5
- 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/Toast/useToast.tsx +0 -41
- 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 +2 -126
- package/src/theme/useTheme.ts +6 -87
- 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/Toast/useToast.test.tsx +0 -258
- 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/theme/themingTargets.test.ts +0 -353
- 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,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
|
|
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
|
|
26
26
|
import {useCallback, type ReactNode} from 'react';
|
|
27
27
|
import * as stylex from '@stylexjs/stylex';
|
|
28
|
+
import type {StyleXStyles} from '@stylexjs/stylex';
|
|
28
29
|
import {renderIconSlot, type IconType} from '../Icon';
|
|
29
30
|
import {Item} from '../Item';
|
|
30
31
|
import {
|
|
@@ -34,7 +35,6 @@ import {
|
|
|
34
35
|
typeScaleVars,
|
|
35
36
|
} from '../theme/tokens.stylex';
|
|
36
37
|
import {mergeProps} from '../utils';
|
|
37
|
-
import type {BaseProps} from '../BaseProps';
|
|
38
38
|
import {useDropdownMenuContext} from './DropdownMenuContext';
|
|
39
39
|
import {themeProps} from '../utils/themeProps';
|
|
40
40
|
|
|
@@ -75,10 +75,7 @@ const itemSizeStyles = stylex.create({
|
|
|
75
75
|
lg: {},
|
|
76
76
|
});
|
|
77
77
|
|
|
78
|
-
export interface DropdownMenuItemProps
|
|
79
|
-
BaseProps,
|
|
80
|
-
'xstyle' | 'className' | 'style'
|
|
81
|
-
> {
|
|
78
|
+
export interface DropdownMenuItemProps {
|
|
82
79
|
/** Icon to display before the label. */
|
|
83
80
|
icon?: ReactNode | IconType;
|
|
84
81
|
/** Primary label text. */
|
|
@@ -91,6 +88,21 @@ export interface DropdownMenuItemProps extends Pick<
|
|
|
91
88
|
isDisabled?: boolean;
|
|
92
89
|
/** Additional content to render after the label/description. */
|
|
93
90
|
endContent?: ReactNode;
|
|
91
|
+
/**
|
|
92
|
+
* StyleX styles for layout customization (margins, positioning, sizing).
|
|
93
|
+
* Must be a `stylex.create()` value — not an inline style object.
|
|
94
|
+
*
|
|
95
|
+
* @example
|
|
96
|
+
* ```
|
|
97
|
+
* const styles = stylex.create({ wrapper: { marginTop: 8 } });
|
|
98
|
+
* <DropdownMenuItem xstyle={styles.wrapper} />
|
|
99
|
+
* ```
|
|
100
|
+
*/
|
|
101
|
+
xstyle?: StyleXStyles;
|
|
102
|
+
/** CSS class name(s) appended to the root element. */
|
|
103
|
+
className?: string;
|
|
104
|
+
/** Inline styles applied to the root element. */
|
|
105
|
+
style?: React.CSSProperties;
|
|
94
106
|
}
|
|
95
107
|
|
|
96
108
|
/**
|
package/src/Field/Field.test.tsx
CHANGED
|
@@ -137,7 +137,10 @@ describe('Field', () => {
|
|
|
137
137
|
|
|
138
138
|
it('renders description without ID attribute when descriptionID is not provided', () => {
|
|
139
139
|
render(
|
|
140
|
-
<Field
|
|
140
|
+
<Field
|
|
141
|
+
label="Email"
|
|
142
|
+
inputID="email-input"
|
|
143
|
+
description="Description text">
|
|
141
144
|
<input id="email-input" />
|
|
142
145
|
</Field>,
|
|
143
146
|
);
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
|
|
12
12
|
import {describe, it, expect, vi} from 'vitest';
|
|
13
13
|
import {render, screen} from '@testing-library/react';
|
|
14
|
-
import {
|
|
14
|
+
import {StarIcon} from '@heroicons/react/24/outline';
|
|
15
15
|
import {FieldLabel} from './FieldLabel';
|
|
16
16
|
|
|
17
17
|
describe('FieldLabel', () => {
|
|
@@ -49,7 +49,7 @@ describe('FieldLabel', () => {
|
|
|
49
49
|
<FieldLabel
|
|
50
50
|
label="Starred"
|
|
51
51
|
inputID="starred-input"
|
|
52
|
-
labelIcon={
|
|
52
|
+
labelIcon={StarIcon}
|
|
53
53
|
/>,
|
|
54
54
|
);
|
|
55
55
|
const svg = document.querySelector('svg');
|
|
@@ -4,6 +4,7 @@ exports[`FormLayout > matches snapshot for horizontal direction 1`] = `
|
|
|
4
4
|
<div
|
|
5
5
|
class="astryx-form-layout horizontal FormLayout__styles.base xdt5ytf x18g69wz FormLayout__styles.horizontal xrvj5dj x1mt1orb xu6a5m6"
|
|
6
6
|
data-direction="horizontal"
|
|
7
|
+
data-style-src="@astryxdesign/core:src/FormLayout/FormLayout.tsx:40; @astryxdesign/core:src/FormLayout/FormLayout.tsx:45"
|
|
7
8
|
data-testid="layout"
|
|
8
9
|
>
|
|
9
10
|
<input
|
|
@@ -19,6 +20,7 @@ exports[`FormLayout > matches snapshot for horizontal-labels direction 1`] = `
|
|
|
19
20
|
<div
|
|
20
21
|
class="astryx-form-layout horizontal-labels FormLayout__styles.base xdt5ytf FormLayout__styles.horizontalLabels xrvj5dj x1pmbctz xlaq8a2 x7a106z xedohl4 x1rpgqan x1a1jff"
|
|
21
22
|
data-direction="horizontal-labels"
|
|
23
|
+
data-style-src="@astryxdesign/core:src/FormLayout/FormLayout.tsx:40; @astryxdesign/core:src/FormLayout/FormLayout.tsx:50"
|
|
22
24
|
data-testid="layout"
|
|
23
25
|
>
|
|
24
26
|
<label>
|
|
@@ -34,6 +36,7 @@ exports[`FormLayout > matches snapshot for vertical direction 1`] = `
|
|
|
34
36
|
<div
|
|
35
37
|
class="astryx-form-layout vertical FormLayout__styles.base x78zum5 xdt5ytf x18g69wz"
|
|
36
38
|
data-direction="vertical"
|
|
39
|
+
data-style-src="@astryxdesign/core:src/FormLayout/FormLayout.tsx:40"
|
|
37
40
|
data-testid="layout"
|
|
38
41
|
>
|
|
39
42
|
<input
|
package/src/Grid/Grid.test.tsx
CHANGED
|
@@ -65,7 +65,7 @@ describe('Grid', () => {
|
|
|
65
65
|
expect(templateColumns(grid)).toBe('repeat(auto-fill, minmax(250px, 1fr))');
|
|
66
66
|
});
|
|
67
67
|
|
|
68
|
-
it('renders with columns object max (
|
|
68
|
+
it('renders with columns object max (capped via track-max)', () => {
|
|
69
69
|
render(
|
|
70
70
|
<Grid columns={{minWidth: 250, max: 3}} gap={4} data-testid="grid">
|
|
71
71
|
<div>Item 1</div>
|
|
@@ -74,37 +74,13 @@ describe('Grid', () => {
|
|
|
74
74
|
</Grid>,
|
|
75
75
|
);
|
|
76
76
|
const grid = screen.getByTestId('grid');
|
|
77
|
-
//
|
|
78
|
-
// track MAX stays 1fr so present columns fill the row (a lone column on
|
|
79
|
-
// mobile stretches to 100% instead of leaving dead space).
|
|
77
|
+
// Track max caps at (100% - 2 * gap) / 3 — no maxWidth on container
|
|
80
78
|
expect(templateColumns(grid)).toBe(
|
|
81
|
-
'repeat(auto-fill, minmax(
|
|
79
|
+
'repeat(auto-fill, minmax(250px, calc((100% - 2 * var(--spacing-4)) / 3)))',
|
|
82
80
|
);
|
|
83
81
|
expect(grid.style.maxWidth).toBe('');
|
|
84
82
|
});
|
|
85
83
|
|
|
86
|
-
it('keeps track max at 1fr with a max cap so a lone column can fill (#3391)', () => {
|
|
87
|
-
// Regression: previously the cap was applied to the track MAX
|
|
88
|
-
// (minmax(minWidth, 100%/max)), so when fewer than `max` columns fit —
|
|
89
|
-
// e.g. a single column on mobile — the lone column was pinned to ~100%/max
|
|
90
|
-
// and left dead space on the right. The cap now lives on the track MIN and
|
|
91
|
-
// the track MAX stays 1fr, so present columns always stretch to fill.
|
|
92
|
-
render(
|
|
93
|
-
<Grid columns={{minWidth: 360, max: 2}} gap={4} data-testid="grid">
|
|
94
|
-
<div>Left</div>
|
|
95
|
-
<div>Right</div>
|
|
96
|
-
</Grid>,
|
|
97
|
-
);
|
|
98
|
-
const grid = screen.getByTestId('grid');
|
|
99
|
-
const template = templateColumns(grid);
|
|
100
|
-
// Track max must be 1fr (fills), not a fraction-of-container cap.
|
|
101
|
-
expect(template).toMatch(/, 1fr\)\)$/);
|
|
102
|
-
expect(template).not.toMatch(/, calc\([^)]*\/ 2\)\)\)$/);
|
|
103
|
-
expect(template).toBe(
|
|
104
|
-
'repeat(auto-fill, minmax(min(100%, max(360px, calc((100% - 1 * var(--spacing-4)) / 2))), 1fr))',
|
|
105
|
-
);
|
|
106
|
-
});
|
|
107
|
-
|
|
108
84
|
it('renders with columns object max using columnGap', () => {
|
|
109
85
|
render(
|
|
110
86
|
<Grid columns={{minWidth: 200, max: 4}} columnGap={6} data-testid="grid">
|
|
@@ -113,9 +89,9 @@ describe('Grid', () => {
|
|
|
113
89
|
</Grid>,
|
|
114
90
|
);
|
|
115
91
|
const grid = screen.getByTestId('grid');
|
|
116
|
-
// columnGap takes precedence
|
|
92
|
+
// columnGap takes precedence for track-max calculation
|
|
117
93
|
expect(templateColumns(grid)).toBe(
|
|
118
|
-
'repeat(auto-fill, minmax(
|
|
94
|
+
'repeat(auto-fill, minmax(200px, calc((100% - 3 * var(--spacing-6)) / 4)))',
|
|
119
95
|
);
|
|
120
96
|
expect(grid.style.maxWidth).toBe('');
|
|
121
97
|
});
|
|
@@ -189,7 +165,7 @@ describe('Grid', () => {
|
|
|
189
165
|
expect(templateColumns(grid)).toBe('1fr');
|
|
190
166
|
});
|
|
191
167
|
|
|
192
|
-
it('uses auto-fill
|
|
168
|
+
it('uses auto-fill without track-max cap when no max specified', () => {
|
|
193
169
|
render(
|
|
194
170
|
<Grid columns={{minWidth: 200}} data-testid="grid">
|
|
195
171
|
<div>Item</div>
|
|
@@ -244,7 +220,7 @@ describe('Grid', () => {
|
|
|
244
220
|
|
|
245
221
|
// --- P2: columns object + columnGap interaction (hardening #719) ---
|
|
246
222
|
|
|
247
|
-
it('uses columnGap var in
|
|
223
|
+
it('uses columnGap var in track-max when both columnGap and gap are set', () => {
|
|
248
224
|
render(
|
|
249
225
|
<Grid
|
|
250
226
|
columns={{minWidth: 200, max: 3}}
|
|
@@ -255,14 +231,14 @@ describe('Grid', () => {
|
|
|
255
231
|
</Grid>,
|
|
256
232
|
);
|
|
257
233
|
const grid = screen.getByTestId('grid');
|
|
258
|
-
// columnGap takes precedence over gap in
|
|
234
|
+
// columnGap takes precedence over gap in track-max
|
|
259
235
|
expect(templateColumns(grid)).toBe(
|
|
260
|
-
'repeat(auto-fill, minmax(
|
|
236
|
+
'repeat(auto-fill, minmax(200px, calc((100% - 2 * var(--spacing-6)) / 3)))',
|
|
261
237
|
);
|
|
262
238
|
expect(grid.style.maxWidth).toBe('');
|
|
263
239
|
});
|
|
264
240
|
|
|
265
|
-
it('uses gap var in
|
|
241
|
+
it('uses gap var in track-max when columnGap is not set', () => {
|
|
266
242
|
render(
|
|
267
243
|
<Grid columns={{minWidth: 150, max: 2}} gap={3} data-testid="grid">
|
|
268
244
|
<div>Item</div>
|
|
@@ -270,12 +246,12 @@ describe('Grid', () => {
|
|
|
270
246
|
);
|
|
271
247
|
const grid = screen.getByTestId('grid');
|
|
272
248
|
expect(templateColumns(grid)).toBe(
|
|
273
|
-
'repeat(auto-fill, minmax(
|
|
249
|
+
'repeat(auto-fill, minmax(150px, calc((100% - 1 * var(--spacing-3)) / 2)))',
|
|
274
250
|
);
|
|
275
251
|
expect(grid.style.maxWidth).toBe('');
|
|
276
252
|
});
|
|
277
253
|
|
|
278
|
-
it('uses simple fraction in
|
|
254
|
+
it('uses simple fraction in track-max when no gap is set', () => {
|
|
279
255
|
render(
|
|
280
256
|
<Grid columns={{minWidth: 100, max: 3}} data-testid="grid">
|
|
281
257
|
<div>Item</div>
|
|
@@ -283,7 +259,7 @@ describe('Grid', () => {
|
|
|
283
259
|
);
|
|
284
260
|
const grid = screen.getByTestId('grid');
|
|
285
261
|
expect(templateColumns(grid)).toBe(
|
|
286
|
-
'repeat(auto-fill, minmax(
|
|
262
|
+
'repeat(auto-fill, minmax(100px, calc(100% / 3)))',
|
|
287
263
|
);
|
|
288
264
|
expect(grid.style.maxWidth).toBe('');
|
|
289
265
|
});
|
|
@@ -356,7 +332,7 @@ describe('Grid', () => {
|
|
|
356
332
|
expect(templateColumns(grid)).toBe('repeat(auto-fill, minmax(280px, 1fr))');
|
|
357
333
|
});
|
|
358
334
|
|
|
359
|
-
it('renders with columns={{minWidth, max}} capping
|
|
335
|
+
it('renders with columns={{minWidth, max}} capping via track-max', () => {
|
|
360
336
|
render(
|
|
361
337
|
<Grid columns={{minWidth: 280, max: 3}} gap={4} data-testid="grid">
|
|
362
338
|
<div>Item 1</div>
|
|
@@ -364,15 +340,14 @@ describe('Grid', () => {
|
|
|
364
340
|
</Grid>,
|
|
365
341
|
);
|
|
366
342
|
const grid = screen.getByTestId('grid');
|
|
367
|
-
//
|
|
368
|
-
// columns fill the row (grid stays full width).
|
|
343
|
+
// Track-max limits columns — grid stays full width
|
|
369
344
|
expect(templateColumns(grid)).toBe(
|
|
370
|
-
'repeat(auto-fill, minmax(
|
|
345
|
+
'repeat(auto-fill, minmax(280px, calc((100% - 2 * var(--spacing-4)) / 3)))',
|
|
371
346
|
);
|
|
372
347
|
expect(grid.style.maxWidth).toBe('');
|
|
373
348
|
});
|
|
374
349
|
|
|
375
|
-
it('renders with columns={{minWidth, max, repeat: "fit"}} using auto-fit +
|
|
350
|
+
it('renders with columns={{minWidth, max, repeat: "fit"}} using auto-fit + track-max', () => {
|
|
376
351
|
render(
|
|
377
352
|
<Grid
|
|
378
353
|
columns={{minWidth: 280, max: 3, repeat: 'fit'}}
|
|
@@ -384,7 +359,7 @@ describe('Grid', () => {
|
|
|
384
359
|
);
|
|
385
360
|
const grid = screen.getByTestId('grid');
|
|
386
361
|
expect(templateColumns(grid)).toBe(
|
|
387
|
-
'repeat(auto-fit, minmax(
|
|
362
|
+
'repeat(auto-fit, minmax(280px, calc((100% - 2 * var(--spacing-4)) / 3)))',
|
|
388
363
|
);
|
|
389
364
|
expect(grid.style.maxWidth).toBe('');
|
|
390
365
|
});
|