@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
|
@@ -4,18 +4,13 @@
|
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* @file CollapsibleGroup.tsx
|
|
7
|
-
* @input Uses React useState, useCallback, CollapsibleGroupContext
|
|
7
|
+
* @input Uses React useState, useCallback, CollapsibleGroupContext
|
|
8
8
|
* @output Exports CollapsibleGroup component and CollapsibleGroupProps
|
|
9
|
-
* @position Core collapsible group coordination provider — renders no wrapper
|
|
10
|
-
* DOM unless `dividers` is enabled
|
|
9
|
+
* @position Core collapsible group coordination provider — renders no wrapper DOM
|
|
11
10
|
*
|
|
12
11
|
* CollapsibleGroup groups collapsible components (Card, etc.) with
|
|
13
|
-
* coordinated open/close behavior.
|
|
14
|
-
*
|
|
15
|
-
* wrapper div that anchors the divider chrome (outer borders, reliable
|
|
16
|
-
* :first-child suppression) and provides dividers/density to items via
|
|
17
|
-
* CollapsibleGroupPresentationContext — each Collapsible draws its own
|
|
18
|
-
* borders since StyleX has no child selectors.
|
|
12
|
+
* coordinated open/close behavior. It renders only `{children}` — no wrapper
|
|
13
|
+
* DOM element.
|
|
19
14
|
*
|
|
20
15
|
* In "single" mode (default), only one item can be open at a time.
|
|
21
16
|
* In "multiple" mode, any number of items can be open simultaneously.
|
|
@@ -29,35 +24,10 @@
|
|
|
29
24
|
*/
|
|
30
25
|
|
|
31
26
|
import React, {useCallback, useMemo, useState, type ReactNode} from 'react';
|
|
32
|
-
import
|
|
33
|
-
import {
|
|
34
|
-
import {
|
|
35
|
-
CollapsibleGroupContext,
|
|
36
|
-
CollapsibleGroupPresentationContext,
|
|
37
|
-
} from './CollapsibleGroupContext';
|
|
38
|
-
import type {
|
|
39
|
-
CollapsibleGroupContextValue,
|
|
40
|
-
CollapsibleGroupDensity,
|
|
41
|
-
CollapsibleGroupDividers,
|
|
42
|
-
CollapsibleGroupPresentationValue,
|
|
43
|
-
} from './CollapsibleGroupContext';
|
|
44
|
-
import {mergeProps} from '../utils';
|
|
45
|
-
import {themeProps} from '../utils/themeProps';
|
|
27
|
+
import {CollapsibleGroupContext} from './CollapsibleGroupContext';
|
|
28
|
+
import type {CollapsibleGroupContextValue} from './CollapsibleGroupContext';
|
|
46
29
|
import type {BaseProps} from '../BaseProps';
|
|
47
30
|
|
|
48
|
-
const styles = stylex.create({
|
|
49
|
-
// 'all' draws the group's outer top/bottom edges; between-item lines are
|
|
50
|
-
// drawn by each Collapsible (borderBlockStart, suppressed on :first-child)
|
|
51
|
-
wrapperAll: {
|
|
52
|
-
borderBlockStartWidth: borderVars['--border-width'],
|
|
53
|
-
borderBlockStartStyle: 'solid',
|
|
54
|
-
borderBlockStartColor: colorVars['--color-border'],
|
|
55
|
-
borderBlockEndWidth: borderVars['--border-width'],
|
|
56
|
-
borderBlockEndStyle: 'solid',
|
|
57
|
-
borderBlockEndColor: colorVars['--color-border'],
|
|
58
|
-
},
|
|
59
|
-
});
|
|
60
|
-
|
|
61
31
|
export interface CollapsibleGroupProps extends Omit<
|
|
62
32
|
BaseProps<HTMLElement>,
|
|
63
33
|
'onChange'
|
|
@@ -86,24 +56,6 @@ export interface CollapsibleGroupProps extends Omit<
|
|
|
86
56
|
*/
|
|
87
57
|
onChange?: (value: string | string[]) => void;
|
|
88
58
|
|
|
89
|
-
/**
|
|
90
|
-
* Divider style rendered around the group's items — the accordion row
|
|
91
|
-
* chrome. 'between' draws hairlines between adjacent items; 'all' adds the
|
|
92
|
-
* group's top and bottom edges. When enabled, the group renders a wrapper
|
|
93
|
-
* div (it otherwise renders no DOM) and items get 'balanced' density unless
|
|
94
|
-
* `density` says otherwise. Pair with bare Collapsible children; Card-wrapped
|
|
95
|
-
* items provide their own separation.
|
|
96
|
-
* @default "none"
|
|
97
|
-
*/
|
|
98
|
-
dividers?: CollapsibleGroupDividers;
|
|
99
|
-
|
|
100
|
-
/**
|
|
101
|
-
* Row density controlling trigger and content block padding on the group's
|
|
102
|
-
* items. Defaults to 'balanced' when dividers are shown; otherwise items
|
|
103
|
-
* keep their default unpadded look.
|
|
104
|
-
*/
|
|
105
|
-
density?: CollapsibleGroupDensity;
|
|
106
|
-
|
|
107
59
|
/**
|
|
108
60
|
* Children — any components that support isCollapsible + value.
|
|
109
61
|
*
|
|
@@ -140,26 +92,16 @@ function normalizeToArray(value: string | string[] | undefined): string[] {
|
|
|
140
92
|
|
|
141
93
|
/**
|
|
142
94
|
* Groups collapsible components with coordinated open/close behavior.
|
|
143
|
-
* Renders no wrapper DOM
|
|
95
|
+
* Renders no wrapper DOM.
|
|
144
96
|
*
|
|
145
97
|
* In "single" mode (default), opening one item closes the others.
|
|
146
98
|
* In "multiple" mode, items toggle independently.
|
|
147
99
|
*
|
|
148
100
|
* @compositionHint Wrap Collapsible instances to coordinate their open/close state.
|
|
149
|
-
* Each Collapsible needs a `value` prop to participate.
|
|
150
|
-
* use `dividers` with bare Collapsible children instead of wrapping each item
|
|
151
|
-
* in Card.
|
|
101
|
+
* Each Collapsible needs a `value` prop to participate.
|
|
152
102
|
*
|
|
153
103
|
* @example
|
|
154
104
|
* ```
|
|
155
|
-
* <CollapsibleGroup type="single" dividers="between" defaultValue="faq1">
|
|
156
|
-
* <Collapsible trigger="What is Astryx?" value="faq1">
|
|
157
|
-
* Astryx is a design system for building internal tools.
|
|
158
|
-
* </Collapsible>
|
|
159
|
-
* <Collapsible trigger="How do I start?" value="faq2">
|
|
160
|
-
* Install the package and import components.
|
|
161
|
-
* </Collapsible>
|
|
162
|
-
* </CollapsibleGroup>
|
|
163
105
|
* <CollapsibleGroup type="single" defaultValue="faq1">
|
|
164
106
|
* <VStack gap={2}>
|
|
165
107
|
* <Card>
|
|
@@ -181,14 +123,7 @@ export function CollapsibleGroup({
|
|
|
181
123
|
defaultValue,
|
|
182
124
|
value: controlledValue,
|
|
183
125
|
onChange,
|
|
184
|
-
dividers = 'none',
|
|
185
|
-
density,
|
|
186
126
|
children,
|
|
187
|
-
ref,
|
|
188
|
-
xstyle,
|
|
189
|
-
className,
|
|
190
|
-
style,
|
|
191
|
-
...props
|
|
192
127
|
}: CollapsibleGroupProps) {
|
|
193
128
|
const isControlled = controlledValue !== undefined;
|
|
194
129
|
const [internalValue, setInternalValue] = useState<string[]>(() =>
|
|
@@ -239,42 +174,9 @@ export function CollapsibleGroup({
|
|
|
239
174
|
[isOpen, toggle],
|
|
240
175
|
);
|
|
241
176
|
|
|
242
|
-
const hasDividers = dividers !== 'none';
|
|
243
|
-
const resolvedDensity = density ?? (hasDividers ? 'balanced' : null);
|
|
244
|
-
|
|
245
|
-
const presentationValue = useMemo<CollapsibleGroupPresentationValue>(
|
|
246
|
-
() => ({dividers, density: resolvedDensity}),
|
|
247
|
-
[dividers, resolvedDensity],
|
|
248
|
-
);
|
|
249
|
-
|
|
250
|
-
// The wrapper anchors divider chrome: 'all' outer borders live here, and it
|
|
251
|
-
// makes the items' :first-child suppression independent of surrounding
|
|
252
|
-
// siblings. Without dividers the group stays DOM-less (documented contract),
|
|
253
|
-
// so ref/xstyle/className/style only take effect in wrapper mode.
|
|
254
|
-
const content = hasDividers ? (
|
|
255
|
-
<div
|
|
256
|
-
ref={ref as React.Ref<HTMLDivElement>}
|
|
257
|
-
{...mergeProps(
|
|
258
|
-
themeProps('collapsible-group', {
|
|
259
|
-
dividers,
|
|
260
|
-
density: resolvedDensity ?? undefined,
|
|
261
|
-
}),
|
|
262
|
-
stylex.props(dividers === 'all' && styles.wrapperAll, xstyle),
|
|
263
|
-
className,
|
|
264
|
-
style,
|
|
265
|
-
)}
|
|
266
|
-
{...props}>
|
|
267
|
-
{children}
|
|
268
|
-
</div>
|
|
269
|
-
) : (
|
|
270
|
-
children
|
|
271
|
-
);
|
|
272
|
-
|
|
273
177
|
return (
|
|
274
178
|
<CollapsibleGroupContext value={contextValue}>
|
|
275
|
-
|
|
276
|
-
{content}
|
|
277
|
-
</CollapsibleGroupPresentationContext>
|
|
179
|
+
{children}
|
|
278
180
|
</CollapsibleGroupContext>
|
|
279
181
|
);
|
|
280
182
|
}
|
|
@@ -5,10 +5,8 @@
|
|
|
5
5
|
/**
|
|
6
6
|
* @file CollapsibleGroupContext.tsx
|
|
7
7
|
* @input Uses React createContext
|
|
8
|
-
* @output Exports CollapsibleGroupContext
|
|
9
|
-
*
|
|
10
|
-
* CollapsibleGroupDividers, and CollapsibleGroupDensity types
|
|
11
|
-
* @position Context definitions for collapsible group coordination and presentation
|
|
8
|
+
* @output Exports CollapsibleGroupContext and CollapsibleGroupContextValue type
|
|
9
|
+
* @position Context definition for collapsible group coordination
|
|
12
10
|
*
|
|
13
11
|
* SYNC: When modified, update these files to stay in sync:
|
|
14
12
|
* - /packages/core/src/Collapsible/CollapsibleGroup.tsx (provider)
|
|
@@ -35,41 +33,3 @@ export interface CollapsibleGroupContextValue {
|
|
|
35
33
|
export const CollapsibleGroupContext =
|
|
36
34
|
createContext<CollapsibleGroupContextValue | null>(null);
|
|
37
35
|
CollapsibleGroupContext.displayName = 'CollapsibleGroupContext';
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* Divider style rendered around the items of a CollapsibleGroup.
|
|
41
|
-
* - 'between': hairlines between adjacent items only.
|
|
42
|
-
* - 'all': hairlines between items plus the group's top and bottom edges.
|
|
43
|
-
* - 'none': no dividers (default).
|
|
44
|
-
*/
|
|
45
|
-
export type CollapsibleGroupDividers = 'between' | 'all' | 'none';
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* Row density for the items of a CollapsibleGroup, controlling trigger and
|
|
49
|
-
* content block padding. Shares the repo-wide density vocabulary
|
|
50
|
-
* (Table, List, Item).
|
|
51
|
-
*/
|
|
52
|
-
export type CollapsibleGroupDensity = 'compact' | 'balanced' | 'spacious';
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* Presentation value provided by CollapsibleGroup so each Collapsible can
|
|
56
|
-
* draw its own group chrome (StyleX has no child selectors, so the group
|
|
57
|
-
* cannot style items from the outside).
|
|
58
|
-
*/
|
|
59
|
-
export interface CollapsibleGroupPresentationValue {
|
|
60
|
-
/** Resolved divider style for the group's items. */
|
|
61
|
-
dividers: CollapsibleGroupDividers;
|
|
62
|
-
/** Resolved row density, or null to keep the default (unpadded) look. */
|
|
63
|
-
density: CollapsibleGroupDensity | null;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* Context for collapsible group presentation (dividers, density).
|
|
68
|
-
* Kept separate from CollapsibleGroupContext so the public useCollapsible
|
|
69
|
-
* state API is unaffected. Collapsible resets this context around its
|
|
70
|
-
* children so nested collapsibles never inherit row chrome.
|
|
71
|
-
*/
|
|
72
|
-
export const CollapsibleGroupPresentationContext =
|
|
73
|
-
createContext<CollapsibleGroupPresentationValue | null>(null);
|
|
74
|
-
CollapsibleGroupPresentationContext.displayName =
|
|
75
|
-
'CollapsibleGroupPresentationContext';
|
package/src/Collapsible/index.ts
CHANGED
|
@@ -16,10 +16,6 @@ export type {CollapsibleProps} from './Collapsible';
|
|
|
16
16
|
|
|
17
17
|
export {CollapsibleGroup} from './CollapsibleGroup';
|
|
18
18
|
export type {CollapsibleGroupProps} from './CollapsibleGroup';
|
|
19
|
-
export type {
|
|
20
|
-
CollapsibleGroupDividers,
|
|
21
|
-
CollapsibleGroupDensity,
|
|
22
|
-
} from './CollapsibleGroupContext';
|
|
23
19
|
|
|
24
20
|
export {useCollapsible} from './useCollapsible';
|
|
25
21
|
export type {
|
|
@@ -65,11 +65,8 @@ export interface UseCollapsibleReturn {
|
|
|
65
65
|
*
|
|
66
66
|
* Supports three modes:
|
|
67
67
|
* 1. **Group-controlled**: When inside a CollapsibleGroup with a `value`, defers to group.
|
|
68
|
-
* 2. **Controlled**: When `isOpen`
|
|
69
|
-
* `toggle` only calls `onOpenChange` and never mutates internal state.
|
|
68
|
+
* 2. **Controlled**: When `isOpen` and `onOpenChange` are provided in config.
|
|
70
69
|
* 3. **Uncontrolled**: Self-managed internal state with optional `defaultIsOpen`.
|
|
71
|
-
* `onOpenChange`, if supplied, is invoked in addition to the internal update —
|
|
72
|
-
* it is a notification callback, not a signal that the component is controlled.
|
|
73
70
|
*
|
|
74
71
|
* @example
|
|
75
72
|
* ```
|
|
@@ -114,26 +111,15 @@ export function useCollapsible(
|
|
|
114
111
|
isOpen = internalIsOpen;
|
|
115
112
|
}
|
|
116
113
|
|
|
117
|
-
// Toggle handler dispatches to the appropriate controller
|
|
118
|
-
//
|
|
119
|
-
// Controlled vs uncontrolled is decided by whether `isOpen` was provided —
|
|
120
|
-
// mirroring how `isOpen` is derived above. `onOpenChange` is a notification
|
|
121
|
-
// callback, not a signal of control: an uncontrolled component may still want
|
|
122
|
-
// to observe changes. So in uncontrolled mode we drive internal state AND
|
|
123
|
-
// fire the callback; only in controlled mode do we defer entirely to the
|
|
124
|
-
// parent via the callback.
|
|
114
|
+
// Toggle handler dispatches to the appropriate controller
|
|
125
115
|
const toggle = () => {
|
|
126
116
|
if (isControlledByGroup && value != null) {
|
|
127
117
|
group.toggle(value);
|
|
128
|
-
|
|
118
|
+
} else if (config?.onOpenChange) {
|
|
119
|
+
config.onOpenChange(!isOpen);
|
|
120
|
+
} else {
|
|
121
|
+
setInternalIsOpen(prev => !prev);
|
|
129
122
|
}
|
|
130
|
-
const next = !isOpen;
|
|
131
|
-
// Uncontrolled: internal state is the source of truth, so update it.
|
|
132
|
-
if (config?.isOpen === undefined) {
|
|
133
|
-
setInternalIsOpen(next);
|
|
134
|
-
}
|
|
135
|
-
// Always notify — for both controlled and uncontrolled usage.
|
|
136
|
-
config?.onOpenChange?.(next);
|
|
137
123
|
};
|
|
138
124
|
|
|
139
125
|
return {isEnabled, isOpen, toggle};
|
|
@@ -20,10 +20,6 @@ export const docs = {
|
|
|
20
20
|
'navigation',
|
|
21
21
|
],
|
|
22
22
|
description: 'Root component. Manages open state, search, keyboard navigation, and composition slots.',
|
|
23
|
-
// Intentionally a contained isInline preview, not playground.overlay: the
|
|
24
|
-
// component stays visible on load and knobs stay live, whereas a real
|
|
25
|
-
// showModal() overlay makes the page inert — see PlaygroundConfig.overlay
|
|
26
|
-
// in docs-types.ts (#3657).
|
|
27
23
|
playground: {
|
|
28
24
|
defaults: {
|
|
29
25
|
isOpen: true,
|
|
@@ -142,7 +138,6 @@ export const docs = {
|
|
|
142
138
|
],
|
|
143
139
|
theming: {
|
|
144
140
|
targets: [
|
|
145
|
-
{className: 'astryx-command-palette-empty'},
|
|
146
141
|
{className: 'astryx-command-palette-footer'},
|
|
147
142
|
{className: 'astryx-command-palette-group'},
|
|
148
143
|
{className: 'astryx-command-palette-input'},
|
|
@@ -438,13 +438,11 @@ export function CommandPalette<T extends SearchableItem = SearchableItem>({
|
|
|
438
438
|
const contextValue = useMemo(
|
|
439
439
|
() => ({
|
|
440
440
|
// Input uses optimisticSearch — reflects keystrokes immediately.
|
|
441
|
-
// setSearch calls setOptimisticSearch
|
|
442
|
-
//
|
|
441
|
+
// setSearch calls setOptimisticSearch for instant feedback then
|
|
442
|
+
// triggers the async search directly (no effect indirection).
|
|
443
443
|
search: optimisticSearch,
|
|
444
444
|
setSearch: (query: string) => {
|
|
445
|
-
|
|
446
|
-
setOptimisticSearch(query);
|
|
447
|
-
});
|
|
445
|
+
setOptimisticSearch(query);
|
|
448
446
|
runSearch(query);
|
|
449
447
|
},
|
|
450
448
|
value,
|
|
@@ -27,16 +27,6 @@ export const docs = {
|
|
|
27
27
|
description: 'StyleX styles for layout customization. Must be a stylex.create() value.',
|
|
28
28
|
},
|
|
29
29
|
],
|
|
30
|
-
playground: {
|
|
31
|
-
defaults: {
|
|
32
|
-
heading: 'Navigation',
|
|
33
|
-
children: [
|
|
34
|
-
{__element: 'CommandPaletteItem', props: {value: 'home', onSelect: undefined}, children: 'Go Home'},
|
|
35
|
-
{__element: 'CommandPaletteItem', props: {value: 'settings', onSelect: undefined}, children: 'Open Settings'},
|
|
36
|
-
{__element: 'CommandPaletteItem', props: {value: 'profile', onSelect: undefined}, children: 'View Profile'},
|
|
37
|
-
],
|
|
38
|
-
},
|
|
39
|
-
},
|
|
40
30
|
};
|
|
41
31
|
|
|
42
32
|
export const docsZh = {
|
|
@@ -57,12 +57,6 @@ export const docs = {
|
|
|
57
57
|
description: 'StyleX styles for layout customization. Must be a stylex.create() value.',
|
|
58
58
|
},
|
|
59
59
|
],
|
|
60
|
-
playground: {
|
|
61
|
-
defaults: {
|
|
62
|
-
placeholder: 'Search commands, files, or actions...',
|
|
63
|
-
hasAutoFocus: false,
|
|
64
|
-
},
|
|
65
|
-
},
|
|
66
60
|
};
|
|
67
61
|
|
|
68
62
|
export const docsZh = {
|
|
@@ -50,12 +50,6 @@ export const docs = {
|
|
|
50
50
|
description: 'StyleX styles for layout customization. Must be a stylex.create() value.',
|
|
51
51
|
},
|
|
52
52
|
],
|
|
53
|
-
playground: {
|
|
54
|
-
defaults: {
|
|
55
|
-
value: 'go-home',
|
|
56
|
-
children: 'Go to Dashboard',
|
|
57
|
-
},
|
|
58
|
-
},
|
|
59
53
|
};
|
|
60
54
|
|
|
61
55
|
export const docsZh = {
|
|
@@ -27,15 +27,6 @@ export const docs = {
|
|
|
27
27
|
description: 'StyleX styles for layout customization. Must be a stylex.create() value.',
|
|
28
28
|
},
|
|
29
29
|
],
|
|
30
|
-
playground: {
|
|
31
|
-
defaults: {
|
|
32
|
-
children: [
|
|
33
|
-
{__element: 'CommandPaletteItem', props: {value: 'home', onSelect: undefined}, children: 'Go Home'},
|
|
34
|
-
{__element: 'CommandPaletteItem', props: {value: 'settings', onSelect: undefined}, children: 'Open Settings'},
|
|
35
|
-
{__element: 'CommandPaletteItem', props: {value: 'profile', onSelect: undefined}, children: 'View Profile'},
|
|
36
|
-
],
|
|
37
|
-
},
|
|
38
|
-
},
|
|
39
30
|
};
|
|
40
31
|
|
|
41
32
|
export const docsZh = {
|
|
@@ -78,21 +78,6 @@ export const docs = {
|
|
|
78
78
|
{ guidance: false, description: 'Place more than 10–12 items in a single menu without grouping them into sections.' },
|
|
79
79
|
],
|
|
80
80
|
},
|
|
81
|
-
playground: {
|
|
82
|
-
defaults: {
|
|
83
|
-
children: {
|
|
84
|
-
__element: 'Card',
|
|
85
|
-
props: {padding: 6},
|
|
86
|
-
children: {__element: 'Text', props: {color: 'secondary'}, children: 'Right-click this area'},
|
|
87
|
-
},
|
|
88
|
-
items: [
|
|
89
|
-
{label: 'Edit'},
|
|
90
|
-
{label: 'Duplicate'},
|
|
91
|
-
{type: 'divider'},
|
|
92
|
-
{label: 'Delete'},
|
|
93
|
-
],
|
|
94
|
-
},
|
|
95
|
-
},
|
|
96
81
|
};
|
|
97
82
|
|
|
98
83
|
/** @type {import('../docs-types').TranslationDoc} */
|
|
@@ -172,21 +172,6 @@ describe('ContextMenu', () => {
|
|
|
172
172
|
expect(preventDefault).toHaveBeenCalled();
|
|
173
173
|
});
|
|
174
174
|
|
|
175
|
-
it('prevents default context menu on the opened menu container', () => {
|
|
176
|
-
render(
|
|
177
|
-
<ContextMenu items={[{label: 'Item 1'}]}>
|
|
178
|
-
<div>Right-click me</div>
|
|
179
|
-
</ContextMenu>,
|
|
180
|
-
);
|
|
181
|
-
|
|
182
|
-
fireEvent.contextMenu(screen.getByText('Right-click me'));
|
|
183
|
-
const menu = screen.getByRole('menu', {hidden: true});
|
|
184
|
-
const event = new MouseEvent('contextmenu', {bubbles: true});
|
|
185
|
-
const preventDefault = vi.spyOn(event, 'preventDefault');
|
|
186
|
-
menu.dispatchEvent(event);
|
|
187
|
-
expect(preventDefault).toHaveBeenCalled();
|
|
188
|
-
});
|
|
189
|
-
|
|
190
175
|
it('does not open when isDisabled is true', () => {
|
|
191
176
|
render(
|
|
192
177
|
<ContextMenu items={[{label: 'Item 1'}]} isDisabled>
|
|
@@ -464,76 +449,4 @@ describe('ContextMenu compound mode', () => {
|
|
|
464
449
|
).toBeInTheDocument();
|
|
465
450
|
expect(screen.getByRole('separator', {hidden: true})).toBeInTheDocument();
|
|
466
451
|
});
|
|
467
|
-
|
|
468
|
-
describe('cursor anchor positioning (#3465)', () => {
|
|
469
|
-
// The menu is anchored to a zero-size element placed at the cursor point
|
|
470
|
-
// *inside the trigger*, so it is positioned relative to the trigger's
|
|
471
|
-
// context (scroll-follow + auto-flip) rather than the viewport.
|
|
472
|
-
function getCursorAnchor(trigger: HTMLElement): HTMLElement {
|
|
473
|
-
const anchor = trigger.querySelector<HTMLElement>('[aria-hidden="true"]');
|
|
474
|
-
if (!anchor) {
|
|
475
|
-
throw new Error('cursor anchor not found');
|
|
476
|
-
}
|
|
477
|
-
return anchor;
|
|
478
|
-
}
|
|
479
|
-
|
|
480
|
-
it('renders a zero-size cursor anchor inside the trigger', () => {
|
|
481
|
-
render(
|
|
482
|
-
<ContextMenu items={[{label: 'Item 1'}]} data-testid="ctx">
|
|
483
|
-
<div>Right-click me</div>
|
|
484
|
-
</ContextMenu>,
|
|
485
|
-
);
|
|
486
|
-
const anchor = getCursorAnchor(screen.getByTestId('ctx'));
|
|
487
|
-
expect(anchor.tagName).toBe('SPAN');
|
|
488
|
-
// Carries an anchor-name so the menu can be anchored to it via CSS
|
|
489
|
-
// anchor positioning (context mode), not fixed viewport coordinates.
|
|
490
|
-
expect(anchor.style.anchorName).toMatch(/^--astryx-layer-/);
|
|
491
|
-
});
|
|
492
|
-
|
|
493
|
-
it('places the cursor anchor at the pointer position relative to the trigger', () => {
|
|
494
|
-
render(
|
|
495
|
-
<ContextMenu items={[{label: 'Item 1'}]} data-testid="ctx">
|
|
496
|
-
<div>Right-click me</div>
|
|
497
|
-
</ContextMenu>,
|
|
498
|
-
);
|
|
499
|
-
const trigger = screen.getByTestId('ctx');
|
|
500
|
-
trigger.getBoundingClientRect = () =>
|
|
501
|
-
({
|
|
502
|
-
left: 100,
|
|
503
|
-
top: 50,
|
|
504
|
-
right: 300,
|
|
505
|
-
bottom: 150,
|
|
506
|
-
width: 200,
|
|
507
|
-
height: 100,
|
|
508
|
-
}) as DOMRect;
|
|
509
|
-
// Pointer at viewport (170, 90) -> local trigger offset (70, 40).
|
|
510
|
-
fireEvent.contextMenu(trigger, {clientX: 170, clientY: 90, detail: 1});
|
|
511
|
-
const anchor = getCursorAnchor(trigger);
|
|
512
|
-
expect(anchor.style.left).toBe('70px');
|
|
513
|
-
expect(anchor.style.top).toBe('40px');
|
|
514
|
-
});
|
|
515
|
-
|
|
516
|
-
it('anchors a keyboard-invoked menu to the trigger bottom-left', () => {
|
|
517
|
-
render(
|
|
518
|
-
<ContextMenu items={[{label: 'Item 1'}]} data-testid="ctx">
|
|
519
|
-
<div>Right-click me</div>
|
|
520
|
-
</ContextMenu>,
|
|
521
|
-
);
|
|
522
|
-
const trigger = screen.getByTestId('ctx');
|
|
523
|
-
trigger.getBoundingClientRect = () =>
|
|
524
|
-
({
|
|
525
|
-
left: 40,
|
|
526
|
-
top: 10,
|
|
527
|
-
right: 100,
|
|
528
|
-
bottom: 30,
|
|
529
|
-
width: 60,
|
|
530
|
-
height: 20,
|
|
531
|
-
}) as DOMRect;
|
|
532
|
-
// Keyboard-initiated contextmenu: coords (0,0), detail 0 -> local (0, height).
|
|
533
|
-
fireEvent.contextMenu(trigger, {clientX: 0, clientY: 0, detail: 0});
|
|
534
|
-
const anchor = getCursorAnchor(trigger);
|
|
535
|
-
expect(anchor.style.left).toBe('0px');
|
|
536
|
-
expect(anchor.style.top).toBe('20px');
|
|
537
|
-
});
|
|
538
|
-
});
|
|
539
452
|
});
|