@astryxdesign/core 0.1.3 → 0.1.4-canary.01e5b29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +51 -0
- package/dist/AlertDialog/AlertDialog.d.ts +1 -1
- package/dist/AlertDialog/AlertDialog.d.ts.map +1 -1
- package/dist/AlertDialog/AlertDialog.js +20 -18
- package/dist/AlertDialog/useImperativeAlertDialog.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 +55 -53
- package/dist/AspectRatio/AspectRatio.js +5 -5
- package/dist/Avatar/Avatar.d.ts.map +1 -1
- package/dist/Avatar/Avatar.js +27 -25
- 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 +32 -25
- package/dist/Blockquote/Blockquote.js +7 -7
- package/dist/Breadcrumbs/BreadcrumbItem.js +17 -17
- package/dist/Breadcrumbs/Breadcrumbs.js +7 -7
- package/dist/Button/Button.d.ts.map +1 -1
- package/dist/Button/Button.js +47 -26
- package/dist/ButtonGroup/ButtonGroup.js +7 -7
- package/dist/Calendar/Calendar.d.ts.map +1 -1
- package/dist/Calendar/Calendar.js +108 -64
- package/dist/Calendar/dayCellUtils.d.ts +67 -5
- package/dist/Calendar/dayCellUtils.d.ts.map +1 -1
- package/dist/Calendar/dayCellUtils.js +139 -18
- package/dist/Calendar/styles.d.ts +2 -2
- package/dist/Calendar/styles.d.ts.map +1 -1
- package/dist/Calendar/styles.js +2 -2
- package/dist/Card/Card.d.ts +4 -2
- package/dist/Card/Card.d.ts.map +1 -1
- package/dist/Card/Card.js +18 -10
- package/dist/Carousel/Carousel.d.ts.map +1 -1
- package/dist/Carousel/Carousel.js +20 -19
- 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.map +1 -1
- package/dist/Chat/ChatComposerInput.js +27 -15
- package/dist/Chat/ChatDictationButton.d.ts +1 -1
- package/dist/Chat/ChatDictationButton.d.ts.map +1 -1
- package/dist/Chat/ChatDictationButton.js +13 -11
- package/dist/Chat/ChatLayout.js +17 -17
- package/dist/Chat/ChatLayoutScrollButton.d.ts +1 -1
- package/dist/Chat/ChatLayoutScrollButton.d.ts.map +1 -1
- package/dist/Chat/ChatLayoutScrollButton.js +12 -10
- package/dist/Chat/ChatMessage.js +12 -12
- package/dist/Chat/ChatMessageBubble.js +7 -7
- package/dist/Chat/ChatMessageList.js +14 -14
- package/dist/Chat/ChatMessageMetadata.d.ts +1 -1
- package/dist/Chat/ChatMessageMetadata.d.ts.map +1 -1
- package/dist/Chat/ChatMessageMetadata.js +14 -12
- package/dist/Chat/ChatPastedTextToken.js +13 -13
- package/dist/Chat/ChatSendButton.js +3 -3
- package/dist/Chat/ChatSystemMessage.d.ts +1 -1
- package/dist/Chat/ChatSystemMessage.d.ts.map +1 -1
- package/dist/Chat/ChatSystemMessage.js +17 -17
- package/dist/Chat/ChatTokenizedText.d.ts +1 -1
- package/dist/Chat/ChatTokenizedText.d.ts.map +1 -1
- package/dist/Chat/ChatTokenizedText.js +24 -15
- package/dist/Chat/ChatToolCalls.d.ts.map +1 -1
- package/dist/Chat/ChatToolCalls.js +81 -74
- package/dist/Chat/index.d.ts +1 -1
- package/dist/Chat/index.d.ts.map +1 -1
- package/dist/Chat/useTriggerMenu.js +15 -15
- package/dist/CheckboxInput/CheckboxInput.d.ts +6 -1
- package/dist/CheckboxInput/CheckboxInput.d.ts.map +1 -1
- package/dist/CheckboxInput/CheckboxInput.js +32 -24
- package/dist/CheckboxList/CheckboxList.js +9 -9
- package/dist/CheckboxList/CheckboxListItem.d.ts +1 -1
- package/dist/CheckboxList/CheckboxListItem.d.ts.map +1 -1
- package/dist/CheckboxList/CheckboxListItem.js +8 -6
- package/dist/Citation/Citation.js +10 -10
- package/dist/ClickableCard/ClickableCard.d.ts.map +1 -1
- package/dist/ClickableCard/ClickableCard.js +32 -9
- package/dist/Code/Code.d.ts +15 -1
- package/dist/Code/Code.d.ts.map +1 -1
- package/dist/Code/Code.js +35 -5
- package/dist/Code/index.d.ts +1 -1
- package/dist/Code/index.d.ts.map +1 -1
- package/dist/CodeBlock/CodeBlock.d.ts +10 -1
- package/dist/CodeBlock/CodeBlock.d.ts.map +1 -1
- package/dist/CodeBlock/CodeBlock.js +88 -52
- package/dist/CodeBlock/index.d.ts +1 -1
- package/dist/CodeBlock/index.d.ts.map +1 -1
- package/dist/Collapsible/Collapsible.d.ts +9 -3
- package/dist/Collapsible/Collapsible.d.ts.map +1 -1
- package/dist/Collapsible/Collapsible.js +110 -22
- package/dist/Collapsible/CollapsibleGroup.d.ts +39 -7
- package/dist/Collapsible/CollapsibleGroup.d.ts.map +1 -1
- package/dist/Collapsible/CollapsibleGroup.js +73 -12
- package/dist/Collapsible/CollapsibleGroupContext.d.ts +31 -0
- package/dist/Collapsible/CollapsibleGroupContext.d.ts.map +1 -1
- package/dist/Collapsible/CollapsibleGroupContext.js +33 -3
- package/dist/Collapsible/index.d.ts +1 -0
- package/dist/Collapsible/index.d.ts.map +1 -1
- package/dist/Collapsible/useCollapsible.d.ts +4 -1
- package/dist/Collapsible/useCollapsible.d.ts.map +1 -1
- package/dist/Collapsible/useCollapsible.js +20 -6
- package/dist/CommandPalette/CommandPalette.d.ts.map +1 -1
- package/dist/CommandPalette/CommandPalette.js +36 -34
- package/dist/CommandPalette/CommandPaletteEmpty.d.ts +1 -1
- package/dist/CommandPalette/CommandPaletteEmpty.d.ts.map +1 -1
- package/dist/CommandPalette/CommandPaletteEmpty.js +27 -7
- 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 +9 -1
- package/dist/ContextMenu/ContextMenu.d.ts.map +1 -1
- package/dist/ContextMenu/ContextMenu.js +16 -11
- package/dist/DateInput/DateInput.js +18 -18
- package/dist/DateRangeInput/DateRangeInput.js +23 -23
- package/dist/DateTimeInput/DateTimeInput.d.ts +5 -7
- package/dist/DateTimeInput/DateTimeInput.d.ts.map +1 -1
- package/dist/DateTimeInput/DateTimeInput.js +30 -26
- package/dist/DateTimeInput/index.d.ts +1 -1
- package/dist/DateTimeInput/index.d.ts.map +1 -1
- package/dist/Dialog/Dialog.js +9 -9
- package/dist/Dialog/DialogHeader.js +16 -16
- package/dist/Dialog/useImperativeDialog.js +3 -3
- package/dist/Divider/Divider.d.ts +0 -22
- package/dist/Divider/Divider.d.ts.map +1 -1
- package/dist/Divider/Divider.js +7 -7
- package/dist/DropdownMenu/DropdownMenu.js +10 -10
- package/dist/DropdownMenu/DropdownMenuItem.d.ts +2 -17
- package/dist/DropdownMenu/DropdownMenuItem.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenuItem.js +3 -3
- package/dist/DropdownMenu/renderDropdownItems.js +10 -10
- package/dist/EmptyState/EmptyState.js +9 -9
- package/dist/Field/Field.js +17 -17
- package/dist/Field/FieldLabel.js +15 -15
- package/dist/Field/InputClearButton.js +5 -5
- package/dist/FieldStatus/FieldStatus.js +3 -3
- package/dist/FileInput/FileInput.js +29 -29
- package/dist/FormLayout/FormLayout.js +5 -5
- package/dist/Grid/Grid.d.ts +4 -3
- package/dist/Grid/Grid.d.ts.map +1 -1
- package/dist/Grid/Grid.js +29 -12
- package/dist/Grid/GridSpan.js +3 -3
- package/dist/HStack/HStack.js +3 -3
- package/dist/Heading/Heading.js +10 -10
- package/dist/HoverCard/HoverCard.js +9 -9
- package/dist/HoverCard/useHoverCard.js +3 -3
- package/dist/Icon/Icon.d.ts.map +1 -1
- package/dist/Icon/Icon.js +16 -12
- package/dist/Icon/defaultIcons.js +116 -116
- package/dist/IconButton/IconButton.js +3 -3
- package/dist/InputGroup/InputGroup.js +11 -11
- package/dist/InputGroup/InputGroupText.js +3 -3
- package/dist/Item/Item.js +18 -18
- package/dist/Kbd/Kbd.js +5 -5
- package/dist/Layer/LayerProvider.js +7 -7
- package/dist/Layer/useLayer.js +5 -5
- package/dist/Layout/Layout.js +21 -21
- package/dist/Layout/LayoutContent.js +3 -3
- package/dist/Layout/LayoutFooter.js +5 -5
- package/dist/Layout/LayoutHeader.js +5 -5
- package/dist/Layout/LayoutPanel.js +3 -3
- package/dist/Lightbox/Lightbox.d.ts.map +1 -1
- package/dist/Lightbox/Lightbox.js +55 -31
- package/dist/Lightbox/useLightbox.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/Markdown/parser.d.ts +7 -0
- package/dist/Markdown/parser.d.ts.map +1 -1
- package/dist/Markdown/parser.js +300 -6
- package/dist/MetadataList/MetadataList.js +10 -10
- package/dist/MetadataList/MetadataListItem.js +15 -15
- package/dist/MobileNav/MobileNav.js +15 -15
- package/dist/MobileNav/MobileNavToggle.js +5 -5
- package/dist/MoreMenu/MoreMenu.js +3 -3
- package/dist/MultiSelector/MultiSelector.d.ts +7 -1
- package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
- package/dist/MultiSelector/MultiSelector.js +64 -55
- package/dist/NavIcon/NavIcon.js +3 -3
- package/dist/NavMenu/NavHeadingMenu.js +5 -5
- package/dist/NavMenu/NavHeadingMenuItem.js +8 -8
- package/dist/NumberInput/NumberInput.d.ts.map +1 -1
- package/dist/NumberInput/NumberInput.js +48 -32
- package/dist/Outline/Outline.js +15 -15
- package/dist/OverflowList/OverflowList.js +8 -8
- package/dist/Overlay/Overlay.js +3 -3
- package/dist/Overlay/OverlayScrim.js +5 -5
- package/dist/Overlay/useOverlay.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 +125 -72
- package/dist/Popover/Popover.js +16 -16
- package/dist/Popover/usePopover.js +7 -7
- package/dist/PowerSearch/PowerSearch.d.ts.map +1 -1
- package/dist/PowerSearch/PowerSearch.js +110 -92
- package/dist/PowerSearch/PowerSearchEditPopover.js +84 -84
- package/dist/PowerSearch/PowerSearchFilterEditor.js +3 -3
- package/dist/PowerSearch/PowerSearchToken.js +5 -5
- package/dist/PowerSearch/PowerSearchValueEditor.js +54 -54
- package/dist/ProgressBar/ProgressBar.d.ts.map +1 -1
- package/dist/ProgressBar/ProgressBar.js +25 -18
- package/dist/RadioList/RadioList.d.ts +7 -1
- package/dist/RadioList/RadioList.d.ts.map +1 -1
- package/dist/RadioList/RadioList.js +10 -8
- package/dist/RadioList/RadioListItem.d.ts +1 -1
- package/dist/RadioList/RadioListItem.d.ts.map +1 -1
- package/dist/RadioList/RadioListItem.js +30 -22
- package/dist/Resizable/ResizeHandle.d.ts.map +1 -1
- package/dist/Resizable/ResizeHandle.js +28 -10
- package/dist/Section/Section.js +5 -5
- package/dist/SegmentedControl/SegmentedControl.d.ts +1 -1
- package/dist/SegmentedControl/SegmentedControl.d.ts.map +1 -1
- package/dist/SegmentedControl/SegmentedControl.js +32 -10
- package/dist/SegmentedControl/SegmentedControlItem.d.ts +1 -1
- package/dist/SegmentedControl/SegmentedControlItem.d.ts.map +1 -1
- package/dist/SegmentedControl/SegmentedControlItem.js +18 -12
- package/dist/SelectableCard/SelectableCard.js +5 -5
- package/dist/Selector/Selector.d.ts +6 -0
- package/dist/Selector/Selector.d.ts.map +1 -1
- package/dist/Selector/Selector.js +54 -45
- package/dist/Selector/SelectorOption.js +3 -3
- package/dist/SideNav/SideNav.d.ts.map +1 -1
- package/dist/SideNav/SideNav.js +38 -34
- package/dist/SideNav/SideNavCollapseButton.d.ts +1 -1
- package/dist/SideNav/SideNavCollapseButton.d.ts.map +1 -1
- package/dist/SideNav/SideNavCollapseButton.js +8 -6
- package/dist/SideNav/SideNavHeading.js +87 -87
- package/dist/SideNav/SideNavItem.js +42 -42
- package/dist/SideNav/SideNavSection.d.ts +1 -1
- package/dist/SideNav/SideNavSection.d.ts.map +1 -1
- package/dist/SideNav/SideNavSection.js +18 -16
- package/dist/Skeleton/Skeleton.js +3 -3
- package/dist/Slider/Slider.d.ts +6 -0
- package/dist/Slider/Slider.d.ts.map +1 -1
- package/dist/Slider/Slider.js +31 -22
- package/dist/Spinner/Spinner.d.ts.map +1 -1
- package/dist/Spinner/Spinner.js +10 -10
- package/dist/StatusDot/StatusDot.js +5 -5
- package/dist/Switch/Switch.d.ts +13 -4
- package/dist/Switch/Switch.d.ts.map +1 -1
- package/dist/Switch/Switch.js +41 -30
- package/dist/TabList/Tab.js +18 -18
- package/dist/TabList/TabList.js +5 -5
- package/dist/TabList/TabMenu.d.ts.map +1 -1
- package/dist/TabList/TabMenu.js +57 -30
- package/dist/TabList/tab.markers.stylex.d.ts +1 -1
- package/dist/Table/BaseTable.d.ts.map +1 -1
- package/dist/Table/BaseTable.js +51 -39
- package/dist/Table/Table.js +7 -7
- package/dist/Table/TableBody.d.ts +1 -1
- package/dist/Table/TableBody.d.ts.map +1 -1
- package/dist/Table/TableBody.js +9 -5
- package/dist/Table/TableCell.d.ts.map +1 -1
- package/dist/Table/TableCell.js +76 -7
- package/dist/Table/TableFooter.d.ts +1 -1
- package/dist/Table/TableFooter.d.ts.map +1 -1
- package/dist/Table/TableFooter.js +9 -5
- package/dist/Table/TableHeader.d.ts +1 -1
- package/dist/Table/TableHeader.d.ts.map +1 -1
- package/dist/Table/TableHeader.js +9 -5
- package/dist/Table/TableHeaderCell.js +3 -3
- package/dist/Table/TableRow.js +5 -5
- package/dist/Table/index.d.ts +2 -0
- package/dist/Table/index.d.ts.map +1 -1
- package/dist/Table/index.js +1 -0
- package/dist/Table/plugins/columnResize/useTableColumnResize.d.ts.map +1 -1
- package/dist/Table/plugins/columnResize/useTableColumnResize.js +14 -11
- package/dist/Table/plugins/filtering/useTableFiltering.js +71 -71
- package/dist/Table/plugins/pagination/paginateData.d.ts.map +1 -1
- package/dist/Table/plugins/pagination/paginateData.js +5 -1
- package/dist/Table/plugins/pagination/useTablePagination.js +7 -7
- package/dist/Table/plugins/rowExpansion/index.d.ts +3 -0
- package/dist/Table/plugins/rowExpansion/index.d.ts.map +1 -0
- package/dist/Table/plugins/rowExpansion/index.js +3 -0
- package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts +90 -0
- package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts.map +1 -0
- package/dist/Table/plugins/rowExpansion/useTableRowExpansion.js +398 -0
- package/dist/Table/plugins/selection/useTableSelection.js +18 -18
- package/dist/Table/plugins/selection/useTableSelectionState.d.ts.map +1 -1
- package/dist/Table/plugins/selection/useTableSelectionState.js +11 -1
- package/dist/Table/plugins/sortable/useTableSortable.js +17 -17
- package/dist/Table/plugins/sortable/useTableSortableState.d.ts.map +1 -1
- package/dist/Table/plugins/sortable/useTableSortableState.js +8 -4
- package/dist/Table/tableContextMenu.d.ts +5 -1
- package/dist/Table/tableContextMenu.d.ts.map +1 -1
- package/dist/Table/tableContextMenu.js +19 -12
- package/dist/Text/Text.d.ts +1 -1
- package/dist/Text/Text.d.ts.map +1 -1
- package/dist/Text/Text.js +14 -13
- package/dist/Text/text.stylex.d.ts +35 -0
- package/dist/Text/text.stylex.d.ts.map +1 -1
- package/dist/Text/text.stylex.js +52 -1
- package/dist/TextArea/TextArea.js +14 -14
- package/dist/TextInput/TextInput.js +15 -15
- package/dist/Thumbnail/Thumbnail.d.ts +3 -2
- package/dist/Thumbnail/Thumbnail.d.ts.map +1 -1
- package/dist/Thumbnail/Thumbnail.js +30 -29
- package/dist/TimeInput/TimeInput.d.ts.map +1 -1
- package/dist/TimeInput/TimeInput.js +26 -21
- package/dist/Timestamp/Timestamp.d.ts +1 -1
- package/dist/Timestamp/Timestamp.d.ts.map +1 -1
- package/dist/Timestamp/Timestamp.js +37 -26
- package/dist/Toast/Toast.d.ts.map +1 -1
- package/dist/Toast/Toast.js +25 -17
- package/dist/Toast/ToastViewport.d.ts.map +1 -1
- package/dist/Toast/ToastViewport.js +23 -11
- package/dist/Toast/useToast.js +4 -4
- package/dist/ToggleButton/ToggleButton.js +12 -12
- package/dist/ToggleButton/ToggleButtonGroup.js +5 -5
- package/dist/Token/Token.js +21 -21
- package/dist/Tokenizer/Tokenizer.d.ts +6 -1
- package/dist/Tokenizer/Tokenizer.d.ts.map +1 -1
- package/dist/Tokenizer/Tokenizer.js +38 -29
- package/dist/Toolbar/Toolbar.js +18 -18
- package/dist/Tooltip/Tooltip.js +11 -11
- package/dist/Tooltip/useTooltip.js +3 -3
- package/dist/TopNav/TopNav.js +32 -32
- package/dist/TopNav/TopNavHeading.js +67 -67
- package/dist/TopNav/TopNavItem.js +5 -5
- package/dist/TopNav/TopNavMegaMenu.js +30 -30
- package/dist/TopNav/TopNavMegaMenuFeaturedCard.d.ts +1 -1
- package/dist/TopNav/TopNavMegaMenuFeaturedCard.d.ts.map +1 -1
- package/dist/TopNav/TopNavMegaMenuFeaturedCard.js +25 -14
- package/dist/TopNav/TopNavMegaMenuItem.js +16 -16
- package/dist/TopNav/TopNavMenu.js +32 -32
- package/dist/TreeList/TreeList.js +8 -8
- package/dist/TreeList/TreeListBranches.js +11 -11
- package/dist/TreeList/TreeListItem.js +30 -30
- package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
- package/dist/Typeahead/BaseTypeahead.js +23 -20
- package/dist/Typeahead/Typeahead.js +12 -12
- package/dist/Typeahead/TypeaheadItem.js +10 -10
- package/dist/VStack/VStack.js +3 -3
- package/dist/astryx.css +23 -0
- package/dist/astryx.umd.js +60 -58
- package/dist/astryx.umd.js.map +4 -4
- package/dist/docs-types.d.ts +13 -1
- package/dist/docs-types.d.ts.map +1 -1
- package/dist/hooks/focusableSelector.d.ts +1 -1
- package/dist/hooks/focusableSelector.d.ts.map +1 -1
- package/dist/hooks/focusableSelector.js +1 -1
- package/dist/hooks/index.d.ts +2 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +1 -0
- package/dist/hooks/useFocusTrap.d.ts +3 -0
- package/dist/hooks/useFocusTrap.d.ts.map +1 -1
- package/dist/hooks/useFocusTrap.js +38 -1
- package/dist/hooks/useHotkeys.d.ts +51 -0
- package/dist/hooks/useHotkeys.d.ts.map +1 -0
- package/dist/hooks/useHotkeys.js +160 -0
- package/dist/hooks/useInteractiveRole.d.ts +6 -2
- package/dist/hooks/useInteractiveRole.d.ts.map +1 -1
- package/dist/hooks/useInteractiveRole.js +6 -2
- package/dist/hooks/useKeyboardHint.js +9 -9
- package/dist/hooks/useStreamingText.d.ts +3 -1
- package/dist/hooks/useStreamingText.d.ts.map +1 -1
- package/dist/hooks/useStreamingText.js +14 -5
- package/dist/theme/MediaTheme.js +3 -3
- package/dist/theme/Theme.js +7 -7
- package/dist/theme/defineTheme.d.ts +1 -1
- package/dist/theme/defineTheme.d.ts.map +1 -1
- package/dist/theme/expandColorScale.d.ts.map +1 -1
- package/dist/theme/expandColorScale.js +10 -3
- package/dist/theme/hct.d.ts +0 -15
- package/dist/theme/hct.d.ts.map +1 -1
- package/dist/theme/hct.js +9 -9
- package/dist/theme/syntax/SyntaxTheme.js +5 -5
- package/dist/theme/tokens.d.ts +10 -2
- package/dist/theme/tokens.d.ts.map +1 -1
- package/dist/theme/tokens.js +220 -4
- package/dist/utils/color.d.ts +42 -0
- package/dist/utils/color.d.ts.map +1 -0
- package/dist/utils/color.js +150 -0
- package/dist/utils/composeEventHandlers.d.ts +30 -0
- package/dist/utils/composeEventHandlers.d.ts.map +1 -0
- package/dist/utils/composeEventHandlers.js +40 -0
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +3 -1
- package/dist/utils/timeParser.d.ts.map +1 -1
- package/dist/utils/timeParser.js +8 -5
- package/package.json +3 -3
- package/src/AlertDialog/AlertDialog.tsx +2 -0
- package/src/AppShell/AppShell.tsx +2 -0
- package/src/AspectRatio/AspectRatio.doc.mjs +1 -1
- package/src/Avatar/Avatar.doc.mjs +13 -2
- package/src/Avatar/Avatar.test.tsx +32 -1
- package/src/Avatar/Avatar.tsx +12 -20
- package/src/Banner/Banner.doc.mjs +8 -0
- package/src/Banner/Banner.test.tsx +38 -0
- package/src/Banner/Banner.tsx +8 -1
- package/src/Button/Button.tsx +39 -6
- package/src/ButtonGroup/ButtonGroup.doc.mjs +1 -1
- package/src/Calendar/Calendar.doc.mjs +1 -1
- package/src/Calendar/Calendar.test.tsx +201 -17
- package/src/Calendar/Calendar.tsx +79 -26
- package/src/Calendar/dayCellUtils.test.ts +306 -1
- package/src/Calendar/dayCellUtils.ts +206 -13
- package/src/Calendar/styles.ts +12 -2
- package/src/Card/Card.doc.mjs +1 -1
- package/src/Card/Card.tsx +16 -6
- package/src/Carousel/Carousel.doc.mjs +12 -12
- package/src/Carousel/Carousel.test.tsx +13 -0
- package/src/Carousel/Carousel.tsx +1 -0
- package/src/Chat/Chat.doc.mjs +1 -1
- package/src/Chat/ChatComposerInput.test.tsx +24 -0
- package/src/Chat/ChatComposerInput.tsx +17 -1
- package/src/Chat/ChatDictationButton.test.tsx +43 -0
- package/src/Chat/ChatDictationButton.tsx +4 -4
- package/src/Chat/ChatLayoutScrollButton.test.tsx +33 -0
- package/src/Chat/ChatLayoutScrollButton.tsx +3 -1
- package/src/Chat/ChatMessageMetadata.test.tsx +32 -0
- package/src/Chat/ChatMessageMetadata.tsx +4 -6
- package/src/Chat/ChatSystemMessage.test.tsx +26 -11
- package/src/Chat/ChatSystemMessage.tsx +7 -7
- package/src/Chat/ChatTokenizedText.test.tsx +29 -16
- package/src/Chat/ChatTokenizedText.tsx +15 -8
- package/src/Chat/ChatToolCalls.test.tsx +55 -0
- package/src/Chat/ChatToolCalls.tsx +10 -12
- package/src/Chat/index.ts +1 -4
- package/src/Chat/useChatNewMessages.test.tsx +4 -4
- package/src/CheckboxInput/CheckboxInput.doc.mjs +12 -4
- package/src/CheckboxInput/CheckboxInput.test.tsx +103 -0
- package/src/CheckboxInput/CheckboxInput.tsx +13 -0
- package/src/CheckboxList/CheckboxList.doc.mjs +1 -1
- package/src/CheckboxList/CheckboxList.test.tsx +19 -0
- package/src/CheckboxList/CheckboxListItem.tsx +11 -2
- package/src/Citation/Citation.doc.mjs +5 -0
- package/src/ClickableCard/ClickableCard.tsx +45 -2
- package/src/Code/Code.test.tsx +54 -0
- package/src/Code/Code.tsx +48 -4
- package/src/Code/index.ts +1 -1
- package/src/CodeBlock/CodeBlock.doc.mjs +7 -2
- package/src/CodeBlock/CodeBlock.test.tsx +122 -3
- package/src/CodeBlock/CodeBlock.tsx +62 -4
- package/src/CodeBlock/index.ts +1 -1
- package/src/Collapsible/Collapsible.doc.mjs +8 -4
- package/src/Collapsible/Collapsible.test.tsx +405 -0
- package/src/Collapsible/Collapsible.tsx +86 -10
- package/src/Collapsible/CollapsibleGroup.doc.mjs +27 -3
- package/src/Collapsible/CollapsibleGroup.test.tsx +318 -0
- package/src/Collapsible/CollapsibleGroup.tsx +107 -9
- package/src/Collapsible/CollapsibleGroupContext.tsx +42 -2
- package/src/Collapsible/index.ts +4 -0
- package/src/Collapsible/useCollapsible.ts +20 -6
- package/src/CommandPalette/CommandPalette.tsx +5 -3
- package/src/CommandPalette/CommandPaletteEmpty.doc.mjs +5 -0
- package/src/CommandPalette/CommandPaletteEmpty.tsx +15 -1
- package/src/CommandPalette/CommandPaletteGroup.doc.mjs +10 -0
- package/src/CommandPalette/CommandPaletteInput.doc.mjs +6 -0
- package/src/CommandPalette/CommandPaletteItem.doc.mjs +6 -0
- package/src/CommandPalette/CommandPaletteList.doc.mjs +9 -0
- package/src/ContextMenu/ContextMenu.doc.mjs +15 -0
- package/src/ContextMenu/ContextMenu.test.tsx +15 -0
- package/src/ContextMenu/ContextMenu.tsx +19 -1
- package/src/ContextMenu/ContextMenuItem.doc.mjs +6 -0
- package/src/DateInput/DateInput.doc.mjs +6 -1
- package/src/DateInput/DateInput.test.tsx +11 -20
- package/src/DateRangeInput/DateRangeInput.doc.mjs +1 -1
- package/src/DateRangeInput/DateRangeInput.test.tsx +31 -44
- package/src/DateRangeInput/DateRangeInput.tsx +2 -2
- package/src/DateTimeInput/DateTimeInput.doc.mjs +4 -3
- package/src/DateTimeInput/DateTimeInput.test.tsx +118 -16
- package/src/DateTimeInput/DateTimeInput.tsx +9 -8
- package/src/DateTimeInput/index.ts +1 -0
- package/src/Dialog/DialogHeader.doc.mjs +45 -0
- package/src/Divider/Divider.tsx +1 -23
- package/src/DropdownMenu/DropdownMenu.doc.mjs +1 -1
- package/src/DropdownMenu/DropdownMenu.test.tsx +5 -3
- package/src/DropdownMenu/DropdownMenuItem.tsx +5 -17
- package/src/EmptyState/EmptyState.doc.mjs +1 -1
- package/src/Field/Field.doc.mjs +1 -1
- package/src/Field/FieldLabel.test.tsx +2 -2
- package/src/FieldStatus/FieldStatus.test.tsx +282 -0
- package/src/FileInput/FileInput.doc.mjs +1 -1
- package/src/FormLayout/__snapshots__/FormLayout.test.tsx.snap +0 -3
- package/src/Grid/Grid.doc.mjs +3 -3
- package/src/Grid/Grid.test.tsx +43 -18
- package/src/Grid/Grid.tsx +26 -9
- package/src/Icon/Icon.test.tsx +41 -29
- package/src/Icon/Icon.tsx +6 -2
- package/src/InputGroup/InputGroup.tsx +2 -2
- package/src/InteractiveRoleContext/InteractiveRoleContext.test.tsx +185 -0
- package/src/Item/Item.tsx +1 -1
- package/src/Layout/Layout.test.tsx +285 -0
- package/src/Layout/LayoutContent.doc.mjs +12 -0
- package/src/Layout/LayoutPanel.doc.mjs +40 -0
- package/src/Layout/LayoutSlots.test.tsx +364 -0
- package/src/Layout/__tests__/edgeCompensation.test.tsx +72 -0
- package/src/Lightbox/Lightbox.doc.mjs +5 -0
- package/src/Lightbox/Lightbox.test.tsx +123 -2
- package/src/Lightbox/Lightbox.tsx +29 -1
- package/src/Markdown/Markdown.test.tsx +23 -0
- package/src/Markdown/Markdown.tsx +9 -7
- package/src/Markdown/incremental.test.ts +36 -0
- package/src/Markdown/parser.perf.test.ts +34 -12
- package/src/Markdown/parser.test.ts +210 -0
- package/src/Markdown/parser.ts +301 -6
- package/src/MobileNav/MobileNav.doc.mjs +20 -0
- package/src/MultiSelector/MultiSelector.doc.mjs +14 -1
- package/src/MultiSelector/MultiSelector.test.tsx +33 -0
- package/src/MultiSelector/MultiSelector.tsx +20 -0
- package/src/NavMenu/NavMenu.doc.mjs +15 -0
- package/src/NumberInput/NumberInput.test.tsx +48 -3
- package/src/NumberInput/NumberInput.tsx +32 -15
- package/src/Outline/parseOutlineFromMarkdown.test.ts +80 -0
- package/src/OverflowList/OverflowList.test.tsx +416 -0
- package/src/Overlay/Overlay.doc.mjs +6 -0
- package/src/Overlay/Overlay.test.tsx +356 -0
- package/src/Pagination/Pagination.test.tsx +162 -0
- package/src/Pagination/Pagination.tsx +80 -26
- package/src/Popover/Popover.test.tsx +65 -0
- package/src/PowerSearch/PowerSearch.doc.mjs +4 -4
- package/src/PowerSearch/PowerSearch.test.tsx +109 -1
- package/src/PowerSearch/PowerSearch.tsx +37 -16
- package/src/ProgressBar/ProgressBar.test.tsx +30 -0
- package/src/ProgressBar/ProgressBar.tsx +12 -5
- package/src/RadioList/RadioList.doc.mjs +7 -1
- package/src/RadioList/RadioList.test.tsx +65 -0
- package/src/RadioList/RadioList.tsx +10 -1
- package/src/RadioList/RadioListItem.tsx +13 -4
- package/src/Resizable/ResizeHandle.test.tsx +218 -0
- package/src/Resizable/ResizeHandle.tsx +22 -4
- package/src/Section/Section.test.tsx +4 -10
- package/src/SegmentedControl/SegmentedControl.doc.mjs +2 -2
- package/src/SegmentedControl/SegmentedControl.test.tsx +192 -0
- package/src/SegmentedControl/SegmentedControl.tsx +27 -5
- package/src/SegmentedControl/SegmentedControlItem.tsx +9 -4
- package/src/SelectableCard/SelectableCard.doc.mjs +1 -1
- package/src/Selector/Selector.doc.mjs +12 -1
- package/src/Selector/Selector.test.tsx +30 -0
- package/src/Selector/Selector.tsx +18 -0
- package/src/SideNav/SideNav.doc.mjs +7 -1
- package/src/SideNav/SideNav.test.tsx +66 -0
- package/src/SideNav/SideNav.tsx +6 -2
- package/src/SideNav/SideNavCollapseButton.tsx +4 -3
- package/src/SideNav/SideNavSection.tsx +6 -4
- package/src/SizeContext/SizeContext.test.tsx +226 -0
- package/src/Slider/Slider.doc.mjs +14 -2
- package/src/Slider/Slider.test.tsx +30 -0
- package/src/Slider/Slider.tsx +20 -0
- package/src/Spinner/Spinner.tsx +1 -0
- package/src/Switch/Switch.doc.mjs +21 -9
- package/src/Switch/Switch.test.tsx +137 -0
- package/src/Switch/Switch.tsx +32 -7
- package/src/TabList/TabList.doc.mjs +3 -3
- package/src/TabList/TabList.test.tsx +185 -1
- package/src/TabList/TabMenu.tsx +45 -9
- package/src/Table/BaseTable.tsx +16 -3
- package/src/Table/Table.test.tsx +87 -0
- package/src/Table/TableBody.tsx +15 -2
- package/src/Table/TableCell.tsx +87 -8
- package/src/Table/TableFooter.tsx +15 -2
- package/src/Table/TableHeader.tsx +15 -2
- package/src/Table/index.ts +5 -0
- package/src/Table/plugins/columnResize/useTableColumnResize.test.tsx +13 -0
- package/src/Table/plugins/columnResize/useTableColumnResize.tsx +3 -1
- package/src/Table/plugins/pagination/paginateData.ts +5 -1
- package/src/Table/plugins/pagination/useTablePagination.test.tsx +13 -0
- package/src/Table/plugins/rowExpansion/index.ts +7 -0
- package/src/Table/plugins/rowExpansion/useTableRowExpansion.test.tsx +155 -0
- package/src/Table/plugins/rowExpansion/useTableRowExpansion.tsx +590 -0
- package/src/Table/plugins/selection/useTableSelectionState.test.tsx +23 -0
- package/src/Table/plugins/selection/useTableSelectionState.tsx +11 -6
- package/src/Table/plugins/sortable/useTableSortableState.test.tsx +35 -1
- package/src/Table/plugins/sortable/useTableSortableState.tsx +8 -4
- package/src/Table/tableContextMenu.test.tsx +27 -3
- package/src/Table/tableContextMenu.tsx +20 -2
- package/src/Table/useTablePagination.doc.mjs +4 -1
- package/src/Table/useTableRowExpansion.doc.mjs +80 -0
- package/src/Table/useTableSortable.doc.mjs +4 -1
- package/src/Text/Text.doc.mjs +2 -2
- package/src/Text/Text.test.tsx +11 -0
- package/src/Text/Text.tsx +4 -2
- package/src/Text/text.stylex.ts +41 -0
- package/src/TextArea/TextArea.doc.mjs +1 -1
- package/src/TextArea/TextArea.test.tsx +3 -3
- package/src/TextInput/TextInput.doc.mjs +1 -1
- package/src/TextInput/TextInput.test.tsx +3 -3
- package/src/Thumbnail/Thumbnail.test.tsx +36 -2
- package/src/Thumbnail/Thumbnail.tsx +4 -2
- package/src/TimeInput/TimeInput.doc.mjs +11 -6
- package/src/TimeInput/TimeInput.test.tsx +37 -0
- package/src/TimeInput/TimeInput.tsx +11 -1
- package/src/Timestamp/Timestamp.doc.mjs +1 -1
- package/src/Timestamp/Timestamp.test.tsx +52 -0
- package/src/Timestamp/Timestamp.tsx +30 -16
- package/src/Toast/Toast.tsx +11 -3
- package/src/Toast/ToastViewport.test.tsx +64 -0
- package/src/Toast/ToastViewport.tsx +12 -0
- package/src/ToggleButton/ToggleButton.doc.mjs +1 -0
- package/src/Tokenizer/Tokenizer.doc.mjs +16 -4
- package/src/Tokenizer/Tokenizer.test.tsx +33 -0
- package/src/Tokenizer/Tokenizer.tsx +19 -0
- package/src/Toolbar/Toolbar.test.tsx +1 -1
- package/src/TopNav/TopNav.doc.mjs +1 -1
- package/src/TopNav/TopNav.test.tsx +18 -0
- package/src/TopNav/TopNavMegaMenuFeaturedCard.tsx +9 -2
- package/src/TreeList/TreeList.doc.mjs +2 -2
- package/src/Typeahead/BaseTypeahead.doc.mjs +19 -0
- package/src/Typeahead/BaseTypeahead.tsx +5 -2
- package/src/Typeahead/Typeahead.doc.mjs +7 -2
- package/src/Typeahead/Typeahead.test.tsx +45 -1
- package/src/__tests__/TestIcon.tsx +26 -0
- package/src/__tests__/fastRoleQueries.ts +66 -0
- package/src/docPropReferences.test.ts +178 -0
- package/src/docs-types.ts +14 -0
- package/src/hooks/focusableSelector.ts +1 -1
- package/src/hooks/index.ts +3 -0
- package/src/hooks/useFocusTrap.doc.mjs +4 -2
- package/src/hooks/useFocusTrap.test.tsx +149 -1
- package/src/hooks/useFocusTrap.ts +50 -1
- package/src/hooks/useHotkeys.doc.mjs +52 -0
- package/src/hooks/useHotkeys.test.ts +245 -0
- package/src/hooks/useHotkeys.ts +203 -0
- package/src/hooks/useInteractiveRole.ts +12 -4
- package/src/hooks/useKeyboardHint.doc.mjs +6 -6
- package/src/hooks/useStreamingText.test.ts +54 -19
- package/src/hooks/useStreamingText.ts +16 -5
- package/src/theme/SyntaxTheme.doc.mjs +4 -4
- package/src/theme/defineTheme.ts +4 -13
- package/src/theme/derivedVarRegistry.test.ts +2 -2
- package/src/theme/expandColorScale.test.ts +29 -0
- package/src/theme/expandColorScale.ts +11 -6
- package/src/theme/hct.ts +9 -17
- package/src/theme/tokens.test.ts +182 -9
- package/src/theme/tokens.ts +239 -4
- package/src/theme/useTheme.test.tsx +20 -0
- package/src/utils/color.test.ts +133 -0
- package/src/utils/color.ts +148 -0
- package/src/utils/composeEventHandlers.test.ts +71 -0
- package/src/utils/composeEventHandlers.ts +44 -0
- package/src/utils/index.ts +4 -0
- package/src/utils/mergeProps.test.ts +166 -0
- package/src/utils/sharedResizeObserver.test.ts +2 -2
- package/src/utils/timeParser.test.ts +13 -0
- package/src/utils/timeParser.ts +8 -5
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @file CollapsibleGroup.tsx
|
|
3
|
-
* @input Uses React useState, useCallback, CollapsibleGroupContext
|
|
3
|
+
* @input Uses React useState, useCallback, CollapsibleGroupContext, StyleX, theme tokens
|
|
4
4
|
* @output Exports CollapsibleGroup component and CollapsibleGroupProps
|
|
5
|
-
* @position Core collapsible group coordination provider — renders no wrapper
|
|
5
|
+
* @position Core collapsible group coordination provider — renders no wrapper
|
|
6
|
+
* DOM unless `dividers` is enabled
|
|
6
7
|
*
|
|
7
8
|
* CollapsibleGroup groups collapsible components (Card, etc.) with
|
|
8
|
-
* coordinated open/close behavior.
|
|
9
|
-
* DOM element.
|
|
9
|
+
* coordinated open/close behavior. By default it renders only `{children}` —
|
|
10
|
+
* no wrapper DOM element. When `dividers` is 'between' or 'all' it renders a
|
|
11
|
+
* wrapper div that anchors the divider chrome (outer borders, reliable
|
|
12
|
+
* :first-child suppression) and provides dividers/density to items via
|
|
13
|
+
* CollapsibleGroupPresentationContext — each Collapsible draws its own
|
|
14
|
+
* borders since StyleX has no child selectors.
|
|
10
15
|
*
|
|
11
16
|
* In "single" mode (default), only one item can be open at a time.
|
|
12
17
|
* In "multiple" mode, any number of items can be open simultaneously.
|
|
@@ -19,6 +24,7 @@
|
|
|
19
24
|
* - /packages/cli/templates/blocks/components/Collapsible/ (showcase blocks)
|
|
20
25
|
*/
|
|
21
26
|
import React, { type ReactNode } from 'react';
|
|
27
|
+
import type { CollapsibleGroupDensity, CollapsibleGroupDividers } from './CollapsibleGroupContext';
|
|
22
28
|
import type { BaseProps } from '../BaseProps';
|
|
23
29
|
export interface CollapsibleGroupProps extends Omit<BaseProps<HTMLElement>, 'onChange'> {
|
|
24
30
|
ref?: React.Ref<HTMLElement>;
|
|
@@ -41,6 +47,22 @@ export interface CollapsibleGroupProps extends Omit<BaseProps<HTMLElement>, 'onC
|
|
|
41
47
|
* Callback when the open item(s) change.
|
|
42
48
|
*/
|
|
43
49
|
onChange?: (value: string | string[]) => void;
|
|
50
|
+
/**
|
|
51
|
+
* Divider style rendered around the group's items — the accordion row
|
|
52
|
+
* chrome. 'between' draws hairlines between adjacent items; 'all' adds the
|
|
53
|
+
* group's top and bottom edges. When enabled, the group renders a wrapper
|
|
54
|
+
* div (it otherwise renders no DOM) and items get 'balanced' density unless
|
|
55
|
+
* `density` says otherwise. Pair with bare Collapsible children; Card-wrapped
|
|
56
|
+
* items provide their own separation.
|
|
57
|
+
* @default "none"
|
|
58
|
+
*/
|
|
59
|
+
dividers?: CollapsibleGroupDividers;
|
|
60
|
+
/**
|
|
61
|
+
* Row density controlling trigger and content block padding on the group's
|
|
62
|
+
* items. Defaults to 'balanced' when dividers are shown; otherwise items
|
|
63
|
+
* keep their default unpadded look.
|
|
64
|
+
*/
|
|
65
|
+
density?: CollapsibleGroupDensity;
|
|
44
66
|
/**
|
|
45
67
|
* Children — any components that support isCollapsible + value.
|
|
46
68
|
*
|
|
@@ -69,16 +91,26 @@ export interface CollapsibleGroupProps extends Omit<BaseProps<HTMLElement>, 'onC
|
|
|
69
91
|
}
|
|
70
92
|
/**
|
|
71
93
|
* Groups collapsible components with coordinated open/close behavior.
|
|
72
|
-
* Renders no wrapper DOM.
|
|
94
|
+
* Renders no wrapper DOM unless `dividers` is enabled.
|
|
73
95
|
*
|
|
74
96
|
* In "single" mode (default), opening one item closes the others.
|
|
75
97
|
* In "multiple" mode, items toggle independently.
|
|
76
98
|
*
|
|
77
99
|
* @compositionHint Wrap Collapsible instances to coordinate their open/close state.
|
|
78
|
-
* Each Collapsible needs a `value` prop to participate.
|
|
100
|
+
* Each Collapsible needs a `value` prop to participate. For FAQ-style lists,
|
|
101
|
+
* use `dividers` with bare Collapsible children instead of wrapping each item
|
|
102
|
+
* in Card.
|
|
79
103
|
*
|
|
80
104
|
* @example
|
|
81
105
|
* ```
|
|
106
|
+
* <CollapsibleGroup type="single" dividers="between" defaultValue="faq1">
|
|
107
|
+
* <Collapsible trigger="What is Astryx?" value="faq1">
|
|
108
|
+
* Astryx is a design system for building internal tools.
|
|
109
|
+
* </Collapsible>
|
|
110
|
+
* <Collapsible trigger="How do I start?" value="faq2">
|
|
111
|
+
* Install the package and import components.
|
|
112
|
+
* </Collapsible>
|
|
113
|
+
* </CollapsibleGroup>
|
|
82
114
|
* <CollapsibleGroup type="single" defaultValue="faq1">
|
|
83
115
|
* <VStack gap={2}>
|
|
84
116
|
* <Card>
|
|
@@ -95,7 +127,7 @@ export interface CollapsibleGroupProps extends Omit<BaseProps<HTMLElement>, 'onC
|
|
|
95
127
|
* </CollapsibleGroup>
|
|
96
128
|
* ```
|
|
97
129
|
*/
|
|
98
|
-
export declare function CollapsibleGroup({ type, defaultValue, value: controlledValue, onChange, children, }: CollapsibleGroupProps): React.JSX.Element;
|
|
130
|
+
export declare function CollapsibleGroup({ type, defaultValue, value: controlledValue, onChange, dividers, density, children, ref, xstyle, className, style, ...props }: CollapsibleGroupProps): React.JSX.Element;
|
|
99
131
|
export declare namespace CollapsibleGroup {
|
|
100
132
|
var displayName: string;
|
|
101
133
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CollapsibleGroup.d.ts","sourceRoot":"","sources":["../../src/Collapsible/CollapsibleGroup.tsx"],"names":[],"mappings":"AAIA
|
|
1
|
+
{"version":3,"file":"CollapsibleGroup.d.ts","sourceRoot":"","sources":["../../src/Collapsible/CollapsibleGroup.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAAE,EAAiC,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAO5E,OAAO,KAAK,EAEV,uBAAuB,EACvB,wBAAwB,EAEzB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAe5C,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CACjD,SAAS,CAAC,WAAW,CAAC,EACtB,UAAU,CACX;IACC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC7B;;;OAGG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAE7B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAEjC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAE1B;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,IAAI,CAAC;IAE9C;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,wBAAwB,CAAC;IAEpC;;;;OAIG;IACH,OAAO,CAAC,EAAE,uBAAuB,CAAC;IAElC;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,QAAQ,EAAE,SAAS,CAAC;CACrB;AASD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,IAAe,EACf,YAAY,EACZ,KAAK,EAAE,eAAe,EACtB,QAAQ,EACR,QAAiB,EACjB,OAAO,EACP,QAAQ,EACR,GAAG,EACH,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,KAAK,EACT,EAAE,qBAAqB,qBAwFvB;yBArGe,gBAAgB"}
|
|
@@ -4,13 +4,18 @@
|
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* @file CollapsibleGroup.tsx
|
|
7
|
-
* @input Uses React useState, useCallback, CollapsibleGroupContext
|
|
7
|
+
* @input Uses React useState, useCallback, CollapsibleGroupContext, StyleX, theme tokens
|
|
8
8
|
* @output Exports CollapsibleGroup component and CollapsibleGroupProps
|
|
9
|
-
* @position Core collapsible group coordination provider — renders no wrapper
|
|
9
|
+
* @position Core collapsible group coordination provider — renders no wrapper
|
|
10
|
+
* DOM unless `dividers` is enabled
|
|
10
11
|
*
|
|
11
12
|
* CollapsibleGroup groups collapsible components (Card, etc.) with
|
|
12
|
-
* coordinated open/close behavior.
|
|
13
|
-
* DOM element.
|
|
13
|
+
* coordinated open/close behavior. By default it renders only `{children}` —
|
|
14
|
+
* no wrapper DOM element. When `dividers` is 'between' or 'all' it renders a
|
|
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.
|
|
14
19
|
*
|
|
15
20
|
* In "single" mode (default), only one item can be open at a time.
|
|
16
21
|
* In "multiple" mode, any number of items can be open simultaneously.
|
|
@@ -23,8 +28,24 @@
|
|
|
23
28
|
* - /packages/cli/templates/blocks/components/Collapsible/ (showcase blocks)
|
|
24
29
|
*/
|
|
25
30
|
import React, { useCallback, useMemo, useState } from 'react';
|
|
26
|
-
import
|
|
27
|
-
import
|
|
31
|
+
import * as stylex from '@stylexjs/stylex';
|
|
32
|
+
import "../theme/tokens.stylex.js";
|
|
33
|
+
import { borderVars, colorVars } from "../theme/tokens.stylex.js";
|
|
34
|
+
import { CollapsibleGroupContext, CollapsibleGroupPresentationContext } from "./CollapsibleGroupContext.js";
|
|
35
|
+
import { mergeProps } from "../utils/index.js";
|
|
36
|
+
import { themeProps } from "../utils/themeProps.js";
|
|
37
|
+
import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
|
|
38
|
+
const styles = {
|
|
39
|
+
wrapperAll: {
|
|
40
|
+
kEafiO: "x11xkdxz",
|
|
41
|
+
kPef9Z: "x13fuv20",
|
|
42
|
+
kLZC3w: "x1pc3f07",
|
|
43
|
+
kt9PQ7: "x92x3c3",
|
|
44
|
+
kfdmCh: "x1q0q8m5",
|
|
45
|
+
kL6WhQ: "xw8gpjh",
|
|
46
|
+
$$css: true
|
|
47
|
+
}
|
|
48
|
+
};
|
|
28
49
|
function normalizeToArray(value) {
|
|
29
50
|
if (value == null) {
|
|
30
51
|
return [];
|
|
@@ -34,16 +55,26 @@ function normalizeToArray(value) {
|
|
|
34
55
|
|
|
35
56
|
/**
|
|
36
57
|
* Groups collapsible components with coordinated open/close behavior.
|
|
37
|
-
* Renders no wrapper DOM.
|
|
58
|
+
* Renders no wrapper DOM unless `dividers` is enabled.
|
|
38
59
|
*
|
|
39
60
|
* In "single" mode (default), opening one item closes the others.
|
|
40
61
|
* In "multiple" mode, items toggle independently.
|
|
41
62
|
*
|
|
42
63
|
* @compositionHint Wrap Collapsible instances to coordinate their open/close state.
|
|
43
|
-
* Each Collapsible needs a `value` prop to participate.
|
|
64
|
+
* Each Collapsible needs a `value` prop to participate. For FAQ-style lists,
|
|
65
|
+
* use `dividers` with bare Collapsible children instead of wrapping each item
|
|
66
|
+
* in Card.
|
|
44
67
|
*
|
|
45
68
|
* @example
|
|
46
69
|
* ```
|
|
70
|
+
* <CollapsibleGroup type="single" dividers="between" defaultValue="faq1">
|
|
71
|
+
* <Collapsible trigger="What is Astryx?" value="faq1">
|
|
72
|
+
* Astryx is a design system for building internal tools.
|
|
73
|
+
* </Collapsible>
|
|
74
|
+
* <Collapsible trigger="How do I start?" value="faq2">
|
|
75
|
+
* Install the package and import components.
|
|
76
|
+
* </Collapsible>
|
|
77
|
+
* </CollapsibleGroup>
|
|
47
78
|
* <CollapsibleGroup type="single" defaultValue="faq1">
|
|
48
79
|
* <VStack gap={2}>
|
|
49
80
|
* <Card>
|
|
@@ -65,7 +96,14 @@ export function CollapsibleGroup({
|
|
|
65
96
|
defaultValue,
|
|
66
97
|
value: controlledValue,
|
|
67
98
|
onChange,
|
|
68
|
-
|
|
99
|
+
dividers = 'none',
|
|
100
|
+
density,
|
|
101
|
+
children,
|
|
102
|
+
ref,
|
|
103
|
+
xstyle,
|
|
104
|
+
className,
|
|
105
|
+
style,
|
|
106
|
+
...props
|
|
69
107
|
}) {
|
|
70
108
|
const isControlled = controlledValue !== undefined;
|
|
71
109
|
const [internalValue, setInternalValue] = useState(() => normalizeToArray(defaultValue));
|
|
@@ -96,9 +134,32 @@ export function CollapsibleGroup({
|
|
|
96
134
|
isOpen,
|
|
97
135
|
toggle
|
|
98
136
|
}), [isOpen, toggle]);
|
|
99
|
-
|
|
100
|
-
|
|
137
|
+
const hasDividers = dividers !== 'none';
|
|
138
|
+
const resolvedDensity = density ?? (hasDividers ? 'balanced' : null);
|
|
139
|
+
const presentationValue = useMemo(() => ({
|
|
140
|
+
dividers,
|
|
141
|
+
density: resolvedDensity
|
|
142
|
+
}), [dividers, resolvedDensity]);
|
|
143
|
+
|
|
144
|
+
// The wrapper anchors divider chrome: 'all' outer borders live here, and it
|
|
145
|
+
// makes the items' :first-child suppression independent of surrounding
|
|
146
|
+
// siblings. Without dividers the group stays DOM-less (documented contract),
|
|
147
|
+
// so ref/xstyle/className/style only take effect in wrapper mode.
|
|
148
|
+
const content = hasDividers ? /*#__PURE__*/_jsxDEV("div", {
|
|
149
|
+
ref: ref,
|
|
150
|
+
...mergeProps(themeProps('collapsible-group', {
|
|
151
|
+
dividers,
|
|
152
|
+
density: resolvedDensity ?? undefined
|
|
153
|
+
}), stylex.props(dividers === 'all' && styles.wrapperAll, xstyle), className, style),
|
|
154
|
+
...props,
|
|
101
155
|
children: children
|
|
102
|
-
});
|
|
156
|
+
}, void 0, false) : children;
|
|
157
|
+
return /*#__PURE__*/_jsxDEV(CollapsibleGroupContext, {
|
|
158
|
+
value: contextValue,
|
|
159
|
+
children: /*#__PURE__*/_jsxDEV(CollapsibleGroupPresentationContext, {
|
|
160
|
+
value: presentationValue,
|
|
161
|
+
children: content
|
|
162
|
+
}, void 0, false)
|
|
163
|
+
}, void 0, false);
|
|
103
164
|
}
|
|
104
165
|
CollapsibleGroup.displayName = 'CollapsibleGroup';
|
|
@@ -12,4 +12,35 @@ export interface CollapsibleGroupContextValue {
|
|
|
12
12
|
* When present, collapsible components defer their open/close state to the group.
|
|
13
13
|
*/
|
|
14
14
|
export declare const CollapsibleGroupContext: import("react").Context<CollapsibleGroupContextValue | null>;
|
|
15
|
+
/**
|
|
16
|
+
* Divider style rendered around the items of a CollapsibleGroup.
|
|
17
|
+
* - 'between': hairlines between adjacent items only.
|
|
18
|
+
* - 'all': hairlines between items plus the group's top and bottom edges.
|
|
19
|
+
* - 'none': no dividers (default).
|
|
20
|
+
*/
|
|
21
|
+
export type CollapsibleGroupDividers = 'between' | 'all' | 'none';
|
|
22
|
+
/**
|
|
23
|
+
* Row density for the items of a CollapsibleGroup, controlling trigger and
|
|
24
|
+
* content block padding. Shares the repo-wide density vocabulary
|
|
25
|
+
* (Table, List, Item).
|
|
26
|
+
*/
|
|
27
|
+
export type CollapsibleGroupDensity = 'compact' | 'balanced' | 'spacious';
|
|
28
|
+
/**
|
|
29
|
+
* Presentation value provided by CollapsibleGroup so each Collapsible can
|
|
30
|
+
* draw its own group chrome (StyleX has no child selectors, so the group
|
|
31
|
+
* cannot style items from the outside).
|
|
32
|
+
*/
|
|
33
|
+
export interface CollapsibleGroupPresentationValue {
|
|
34
|
+
/** Resolved divider style for the group's items. */
|
|
35
|
+
dividers: CollapsibleGroupDividers;
|
|
36
|
+
/** Resolved row density, or null to keep the default (unpadded) look. */
|
|
37
|
+
density: CollapsibleGroupDensity | null;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Context for collapsible group presentation (dividers, density).
|
|
41
|
+
* Kept separate from CollapsibleGroupContext so the public useCollapsible
|
|
42
|
+
* state API is unaffected. Collapsible resets this context around its
|
|
43
|
+
* children so nested collapsibles never inherit row chrome.
|
|
44
|
+
*/
|
|
45
|
+
export declare const CollapsibleGroupPresentationContext: import("react").Context<CollapsibleGroupPresentationValue | null>;
|
|
15
46
|
//# sourceMappingURL=CollapsibleGroupContext.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CollapsibleGroupContext.d.ts","sourceRoot":"","sources":["../../src/Collapsible/CollapsibleGroupContext.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CollapsibleGroupContext.d.ts","sourceRoot":"","sources":["../../src/Collapsible/CollapsibleGroupContext.tsx"],"names":[],"mappings":"AAoBA;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,gDAAgD;IAChD,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IACnC,8CAA8C;IAC9C,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAED;;;GAGG;AACH,eAAO,MAAM,uBAAuB,8DACsB,CAAC;AAG3D;;;;;GAKG;AACH,MAAM,MAAM,wBAAwB,GAAG,SAAS,GAAG,KAAK,GAAG,MAAM,CAAC;AAElE;;;;GAIG;AACH,MAAM,MAAM,uBAAuB,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAE1E;;;;GAIG;AACH,MAAM,WAAW,iCAAiC;IAChD,oDAAoD;IACpD,QAAQ,EAAE,wBAAwB,CAAC;IACnC,yEAAyE;IACzE,OAAO,EAAE,uBAAuB,GAAG,IAAI,CAAC;CACzC;AAED;;;;;GAKG;AACH,eAAO,MAAM,mCAAmC,mEACe,CAAC"}
|
|
@@ -5,8 +5,10 @@
|
|
|
5
5
|
/**
|
|
6
6
|
* @file CollapsibleGroupContext.tsx
|
|
7
7
|
* @input Uses React createContext
|
|
8
|
-
* @output Exports CollapsibleGroupContext
|
|
9
|
-
*
|
|
8
|
+
* @output Exports CollapsibleGroupContext, CollapsibleGroupContextValue,
|
|
9
|
+
* CollapsibleGroupPresentationContext, CollapsibleGroupPresentationValue,
|
|
10
|
+
* CollapsibleGroupDividers, and CollapsibleGroupDensity types
|
|
11
|
+
* @position Context definitions for collapsible group coordination and presentation
|
|
10
12
|
*
|
|
11
13
|
* SYNC: When modified, update these files to stay in sync:
|
|
12
14
|
* - /packages/core/src/Collapsible/CollapsibleGroup.tsx (provider)
|
|
@@ -24,4 +26,32 @@ import { createContext } from 'react';
|
|
|
24
26
|
* When present, collapsible components defer their open/close state to the group.
|
|
25
27
|
*/
|
|
26
28
|
export const CollapsibleGroupContext = /*#__PURE__*/createContext(null);
|
|
27
|
-
CollapsibleGroupContext.displayName = 'CollapsibleGroupContext';
|
|
29
|
+
CollapsibleGroupContext.displayName = 'CollapsibleGroupContext';
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Divider style rendered around the items of a CollapsibleGroup.
|
|
33
|
+
* - 'between': hairlines between adjacent items only.
|
|
34
|
+
* - 'all': hairlines between items plus the group's top and bottom edges.
|
|
35
|
+
* - 'none': no dividers (default).
|
|
36
|
+
*/
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Row density for the items of a CollapsibleGroup, controlling trigger and
|
|
40
|
+
* content block padding. Shares the repo-wide density vocabulary
|
|
41
|
+
* (Table, List, Item).
|
|
42
|
+
*/
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Presentation value provided by CollapsibleGroup so each Collapsible can
|
|
46
|
+
* draw its own group chrome (StyleX has no child selectors, so the group
|
|
47
|
+
* cannot style items from the outside).
|
|
48
|
+
*/
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Context for collapsible group presentation (dividers, density).
|
|
52
|
+
* Kept separate from CollapsibleGroupContext so the public useCollapsible
|
|
53
|
+
* state API is unaffected. Collapsible resets this context around its
|
|
54
|
+
* children so nested collapsibles never inherit row chrome.
|
|
55
|
+
*/
|
|
56
|
+
export const CollapsibleGroupPresentationContext = /*#__PURE__*/createContext(null);
|
|
57
|
+
CollapsibleGroupPresentationContext.displayName = 'CollapsibleGroupPresentationContext';
|
|
@@ -10,6 +10,7 @@ export { Collapsible } from './Collapsible';
|
|
|
10
10
|
export type { CollapsibleProps } from './Collapsible';
|
|
11
11
|
export { CollapsibleGroup } from './CollapsibleGroup';
|
|
12
12
|
export type { CollapsibleGroupProps } from './CollapsibleGroup';
|
|
13
|
+
export type { CollapsibleGroupDividers, CollapsibleGroupDensity, } from './CollapsibleGroupContext';
|
|
13
14
|
export { useCollapsible } from './useCollapsible';
|
|
14
15
|
export type { CollapsibleConfig, UseCollapsibleOptions, UseCollapsibleReturn, } from './useCollapsible';
|
|
15
16
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Collapsible/index.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AAEH,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAC1C,YAAY,EAAC,gBAAgB,EAAC,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAC;AACpD,YAAY,EAAC,qBAAqB,EAAC,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Collapsible/index.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AAEH,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAC1C,YAAY,EAAC,gBAAgB,EAAC,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAC;AACpD,YAAY,EAAC,qBAAqB,EAAC,MAAM,oBAAoB,CAAC;AAC9D,YAAY,EACV,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAChD,YAAY,EACV,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,kBAAkB,CAAC"}
|
|
@@ -36,8 +36,11 @@ export interface UseCollapsibleReturn {
|
|
|
36
36
|
*
|
|
37
37
|
* Supports three modes:
|
|
38
38
|
* 1. **Group-controlled**: When inside a CollapsibleGroup with a `value`, defers to group.
|
|
39
|
-
* 2. **Controlled**: When `isOpen`
|
|
39
|
+
* 2. **Controlled**: When `isOpen` is provided in config, the parent owns state;
|
|
40
|
+
* `toggle` only calls `onOpenChange` and never mutates internal state.
|
|
40
41
|
* 3. **Uncontrolled**: Self-managed internal state with optional `defaultIsOpen`.
|
|
42
|
+
* `onOpenChange`, if supplied, is invoked in addition to the internal update —
|
|
43
|
+
* it is a notification callback, not a signal that the component is controlled.
|
|
41
44
|
*
|
|
42
45
|
* @example
|
|
43
46
|
* ```
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCollapsible.d.ts","sourceRoot":"","sources":["../../src/Collapsible/useCollapsible.ts"],"names":[],"mappings":"AA0BA;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,+DAA+D;IAC/D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,wCAAwC;IACxC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CAC1C,CAAC;AAEF,MAAM,WAAW,qBAAqB;IACpC;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,GAAG,iBAAiB,CAAC;IAC5C;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,+CAA+C;IAC/C,SAAS,EAAE,OAAO,CAAC;IACnB,sDAAsD;IACtD,MAAM,EAAE,OAAO,CAAC;IAChB,oCAAoC;IACpC,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED
|
|
1
|
+
{"version":3,"file":"useCollapsible.d.ts","sourceRoot":"","sources":["../../src/Collapsible/useCollapsible.ts"],"names":[],"mappings":"AA0BA;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,+DAA+D;IAC/D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,wCAAwC;IACxC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CAC1C,CAAC;AAEF,MAAM,WAAW,qBAAqB;IACpC;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,GAAG,iBAAiB,CAAC;IAC5C;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,+CAA+C;IAC/C,SAAS,EAAE,OAAO,CAAC;IACnB,sDAAsD;IACtD,MAAM,EAAE,OAAO,CAAC;IAChB,oCAAoC;IACpC,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,qBAAqB,GAC7B,oBAAoB,CAwDtB"}
|
|
@@ -32,8 +32,11 @@ import { CollapsibleGroupContext } from "./CollapsibleGroupContext.js";
|
|
|
32
32
|
*
|
|
33
33
|
* Supports three modes:
|
|
34
34
|
* 1. **Group-controlled**: When inside a CollapsibleGroup with a `value`, defers to group.
|
|
35
|
-
* 2. **Controlled**: When `isOpen`
|
|
35
|
+
* 2. **Controlled**: When `isOpen` is provided in config, the parent owns state;
|
|
36
|
+
* `toggle` only calls `onOpenChange` and never mutates internal state.
|
|
36
37
|
* 3. **Uncontrolled**: Self-managed internal state with optional `defaultIsOpen`.
|
|
38
|
+
* `onOpenChange`, if supplied, is invoked in addition to the internal update —
|
|
39
|
+
* it is a notification callback, not a signal that the component is controlled.
|
|
37
40
|
*
|
|
38
41
|
* @example
|
|
39
42
|
* ```
|
|
@@ -78,15 +81,26 @@ export function useCollapsible(options) {
|
|
|
78
81
|
isOpen = internalIsOpen;
|
|
79
82
|
}
|
|
80
83
|
|
|
81
|
-
// Toggle handler dispatches to the appropriate controller
|
|
84
|
+
// Toggle handler dispatches to the appropriate controller.
|
|
85
|
+
//
|
|
86
|
+
// Controlled vs uncontrolled is decided by whether `isOpen` was provided —
|
|
87
|
+
// mirroring how `isOpen` is derived above. `onOpenChange` is a notification
|
|
88
|
+
// callback, not a signal of control: an uncontrolled component may still want
|
|
89
|
+
// to observe changes. So in uncontrolled mode we drive internal state AND
|
|
90
|
+
// fire the callback; only in controlled mode do we defer entirely to the
|
|
91
|
+
// parent via the callback.
|
|
82
92
|
const toggle = () => {
|
|
83
93
|
if (isControlledByGroup && value != null) {
|
|
84
94
|
group.toggle(value);
|
|
85
|
-
|
|
86
|
-
config.onOpenChange(!isOpen);
|
|
87
|
-
} else {
|
|
88
|
-
setInternalIsOpen(prev => !prev);
|
|
95
|
+
return;
|
|
89
96
|
}
|
|
97
|
+
const next = !isOpen;
|
|
98
|
+
// Uncontrolled: internal state is the source of truth, so update it.
|
|
99
|
+
if (config?.isOpen === undefined) {
|
|
100
|
+
setInternalIsOpen(next);
|
|
101
|
+
}
|
|
102
|
+
// Always notify — for both controlled and uncontrolled usage.
|
|
103
|
+
config?.onOpenChange?.(next);
|
|
90
104
|
};
|
|
91
105
|
return {
|
|
92
106
|
isEnabled,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandPalette.d.ts","sourceRoot":"","sources":["../../src/CommandPalette/CommandPalette.tsx"],"names":[],"mappings":"AAGA;;;;;;;;;GASG;AAEH,OAAO,EASL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EAAC,YAAY,EAAE,cAAc,EAAC,MAAM,cAAc,CAAC;AAU/D,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAE5C,MAAM,WAAW,mBAAmB,CAClC,CAAC,SAAS,cAAc,GAAG,cAAc,CACzC,SAAQ,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,UAAU,CAAC;IACtD,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACnC,2CAA2C;IAC3C,MAAM,EAAE,OAAO,CAAC;IAEhB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,0DAA0D;IAC1D,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAExC;;;;OAIG;IACH,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IAE9B;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,OAAO,KAAK,SAAS,CAAC;IAEzD;;;OAGG;IACH,eAAe,CAAC,EAAE,SAAS,CAAC;IAE5B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,SAAS,CAAC;IAE/B,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,8CAA8C;IAC9C,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAExC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAExB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC7B;AA6GD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAAE,EACxE,GAAG,EACH,MAAM,EACN,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,KAAK,EACL,MAAM,EACN,UAAU,EACV,eAA8B,EAC9B,kBAAqC,EACrC,KAAK,EAAE,eAAe,EACtB,aAAa,EACb,KAAyB,EACzB,KAAW,EACX,SAAe,GAChB,EAAE,mBAAmB,CAAC,CAAC,CAAC,+
|
|
1
|
+
{"version":3,"file":"CommandPalette.d.ts","sourceRoot":"","sources":["../../src/CommandPalette/CommandPalette.tsx"],"names":[],"mappings":"AAGA;;;;;;;;;GASG;AAEH,OAAO,EASL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EAAC,YAAY,EAAE,cAAc,EAAC,MAAM,cAAc,CAAC;AAU/D,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAE5C,MAAM,WAAW,mBAAmB,CAClC,CAAC,SAAS,cAAc,GAAG,cAAc,CACzC,SAAQ,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,UAAU,CAAC;IACtD,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACnC,2CAA2C;IAC3C,MAAM,EAAE,OAAO,CAAC;IAEhB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,0DAA0D;IAC1D,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAExC;;;;OAIG;IACH,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IAE9B;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,OAAO,KAAK,SAAS,CAAC;IAEzD;;;OAGG;IACH,eAAe,CAAC,EAAE,SAAS,CAAC;IAE5B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,SAAS,CAAC;IAE/B,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,8CAA8C;IAC9C,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAExC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAExB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC7B;AA6GD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAAE,EACxE,GAAG,EACH,MAAM,EACN,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,KAAK,EACL,MAAM,EACN,UAAU,EACV,eAA8B,EAC9B,kBAAqC,EACrC,KAAK,EAAE,eAAe,EACtB,aAAa,EACb,KAAyB,EACzB,KAAW,EACX,SAAe,GAChB,EAAE,mBAAmB,CAAC,CAAC,CAAC,+BAoRxB;yBApSe,cAAc"}
|
|
@@ -23,7 +23,7 @@ import { CommandPaletteGroup } from "./CommandPaletteGroup.js";
|
|
|
23
23
|
import { CommandPaletteInput } from "./CommandPaletteInput.js";
|
|
24
24
|
import { CommandPaletteFooter } from "./CommandPaletteFooter.js";
|
|
25
25
|
import { CommandPaletteEmpty } from "./CommandPaletteEmpty.js";
|
|
26
|
-
import {
|
|
26
|
+
import { jsxDEV as _jsxDEV, Fragment as _Fragment } from "react/jsx-dev-runtime";
|
|
27
27
|
function getGroup(item) {
|
|
28
28
|
const aux = item.auxiliaryData;
|
|
29
29
|
return typeof aux?.group === 'string' ? aux.group : undefined;
|
|
@@ -86,15 +86,15 @@ function ItemRenderer({
|
|
|
86
86
|
value,
|
|
87
87
|
renderItem
|
|
88
88
|
}) {
|
|
89
|
-
const renderOne = item => /*#__PURE__*/
|
|
89
|
+
const renderOne = item => /*#__PURE__*/_jsxDEV(CommandPaletteItem, {
|
|
90
90
|
value: item.id,
|
|
91
91
|
children: renderItem ? renderItem(item, item.id === value) : item.label
|
|
92
|
-
}, item.id);
|
|
92
|
+
}, item.id, false);
|
|
93
93
|
const hasGroups = items.some(item => getGroup(item) != null);
|
|
94
94
|
if (!hasGroups) {
|
|
95
|
-
return /*#__PURE__*/
|
|
95
|
+
return /*#__PURE__*/_jsxDEV(_Fragment, {
|
|
96
96
|
children: items.map(renderOne)
|
|
97
|
-
});
|
|
97
|
+
}, void 0, false);
|
|
98
98
|
}
|
|
99
99
|
const groupOrder = [];
|
|
100
100
|
const groups = new Map();
|
|
@@ -111,12 +111,12 @@ function ItemRenderer({
|
|
|
111
111
|
ungrouped.push(item);
|
|
112
112
|
}
|
|
113
113
|
}
|
|
114
|
-
return /*#__PURE__*/
|
|
115
|
-
children: [groupOrder.map(heading => /*#__PURE__*/
|
|
114
|
+
return /*#__PURE__*/_jsxDEV(_Fragment, {
|
|
115
|
+
children: [groupOrder.map(heading => /*#__PURE__*/_jsxDEV(CommandPaletteGroup, {
|
|
116
116
|
heading: heading,
|
|
117
117
|
children: (groups.get(heading) ?? []).map(renderOne)
|
|
118
|
-
}, heading)), ungrouped.map(renderOne)]
|
|
119
|
-
});
|
|
118
|
+
}, heading, false)), ungrouped.map(renderOne)]
|
|
119
|
+
}, void 0, true);
|
|
120
120
|
}
|
|
121
121
|
|
|
122
122
|
/**
|
|
@@ -292,11 +292,13 @@ export function CommandPalette({
|
|
|
292
292
|
}, [combobox, handleClose, selectableItems, selectItem]);
|
|
293
293
|
const contextValue = useMemo(() => ({
|
|
294
294
|
// Input uses optimisticSearch — reflects keystrokes immediately.
|
|
295
|
-
// setSearch calls setOptimisticSearch for instant
|
|
296
|
-
// triggers the async search directly (no effect indirection).
|
|
295
|
+
// setSearch calls setOptimisticSearch inside a transition for instant
|
|
296
|
+
// feedback then triggers the async search directly (no effect indirection).
|
|
297
297
|
search: optimisticSearch,
|
|
298
298
|
setSearch: query => {
|
|
299
|
-
|
|
299
|
+
startTransition(() => {
|
|
300
|
+
setOptimisticSearch(query);
|
|
301
|
+
});
|
|
300
302
|
runSearch(query);
|
|
301
303
|
},
|
|
302
304
|
value,
|
|
@@ -322,21 +324,21 @@ export function CommandPalette({
|
|
|
322
324
|
const showEmptySearch = search !== '' && optimisticResults.length === 0;
|
|
323
325
|
let listContent;
|
|
324
326
|
if (showEmptyBootstrap) {
|
|
325
|
-
listContent = /*#__PURE__*/
|
|
327
|
+
listContent = /*#__PURE__*/_jsxDEV(CommandPaletteEmpty, {
|
|
326
328
|
children: emptyBootstrapText
|
|
327
|
-
});
|
|
329
|
+
}, void 0, false);
|
|
328
330
|
} else if (showEmptySearch) {
|
|
329
|
-
listContent = /*#__PURE__*/
|
|
331
|
+
listContent = /*#__PURE__*/_jsxDEV(CommandPaletteEmpty, {
|
|
330
332
|
children: emptySearchText
|
|
331
|
-
});
|
|
333
|
+
}, void 0, false);
|
|
332
334
|
} else {
|
|
333
|
-
listContent = /*#__PURE__*/
|
|
335
|
+
listContent = /*#__PURE__*/_jsxDEV(ItemRenderer, {
|
|
334
336
|
items: optimisticResults,
|
|
335
337
|
value: value,
|
|
336
338
|
renderItem: renderItem
|
|
337
|
-
});
|
|
339
|
+
}, void 0, false);
|
|
338
340
|
}
|
|
339
|
-
return /*#__PURE__*/
|
|
341
|
+
return /*#__PURE__*/_jsxDEV(Dialog, {
|
|
340
342
|
ref: ref,
|
|
341
343
|
isOpen: isOpen,
|
|
342
344
|
isInline: isInline,
|
|
@@ -351,28 +353,28 @@ export function CommandPalette({
|
|
|
351
353
|
maxHeight: maxHeight,
|
|
352
354
|
purpose: "info",
|
|
353
355
|
"aria-label": label,
|
|
354
|
-
children: /*#__PURE__*/
|
|
356
|
+
children: /*#__PURE__*/_jsxDEV(CommandPaletteContext, {
|
|
355
357
|
value: contextValue,
|
|
356
|
-
children: /*#__PURE__*/
|
|
358
|
+
children: /*#__PURE__*/_jsxDEV(Layout, {
|
|
357
359
|
defaultHasDividers: true,
|
|
358
|
-
header: /*#__PURE__*/
|
|
360
|
+
header: /*#__PURE__*/_jsxDEV(LayoutHeader, {
|
|
359
361
|
hasDivider: true,
|
|
360
362
|
padding: 0,
|
|
361
|
-
children: input ?? /*#__PURE__*/
|
|
362
|
-
}),
|
|
363
|
-
content: /*#__PURE__*/
|
|
363
|
+
children: input ?? /*#__PURE__*/_jsxDEV(CommandPaletteInput, {}, void 0, false)
|
|
364
|
+
}, void 0, false),
|
|
365
|
+
content: /*#__PURE__*/_jsxDEV(LayoutContent, {
|
|
364
366
|
padding: 0,
|
|
365
|
-
children: /*#__PURE__*/
|
|
367
|
+
children: /*#__PURE__*/_jsxDEV(CommandPaletteList, {
|
|
366
368
|
children: listContent
|
|
367
|
-
})
|
|
368
|
-
}),
|
|
369
|
-
footer: /*#__PURE__*/
|
|
369
|
+
}, void 0, false)
|
|
370
|
+
}, void 0, false),
|
|
371
|
+
footer: /*#__PURE__*/_jsxDEV(LayoutFooter, {
|
|
370
372
|
hasDivider: true,
|
|
371
373
|
padding: 0,
|
|
372
|
-
children: footer ?? /*#__PURE__*/
|
|
373
|
-
})
|
|
374
|
-
})
|
|
375
|
-
})
|
|
376
|
-
});
|
|
374
|
+
children: footer ?? /*#__PURE__*/_jsxDEV(CommandPaletteFooter, {}, void 0, false)
|
|
375
|
+
}, void 0, false)
|
|
376
|
+
}, void 0, false)
|
|
377
|
+
}, void 0, false)
|
|
378
|
+
}, void 0, false);
|
|
377
379
|
}
|
|
378
380
|
CommandPalette.displayName = 'CommandPalette';
|
|
@@ -23,7 +23,7 @@ export interface CommandPaletteEmptyProps extends BaseProps<HTMLDivElement> {
|
|
|
23
23
|
* />
|
|
24
24
|
* ```
|
|
25
25
|
*/
|
|
26
|
-
export declare function CommandPaletteEmpty({ ref, children, }: CommandPaletteEmptyProps): React.JSX.Element;
|
|
26
|
+
export declare function CommandPaletteEmpty({ ref, children, xstyle, className, style, ...props }: CommandPaletteEmptyProps): React.JSX.Element;
|
|
27
27
|
export declare namespace CommandPaletteEmpty {
|
|
28
28
|
var displayName: string;
|
|
29
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandPaletteEmpty.d.ts","sourceRoot":"","sources":["../../src/CommandPalette/CommandPaletteEmpty.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,EAAC,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"CommandPaletteEmpty.d.ts","sourceRoot":"","sources":["../../src/CommandPalette/CommandPaletteEmpty.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,EAAC,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAS5C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAkB5C,MAAM,WAAW,wBAAyB,SAAQ,SAAS,CAAC,cAAc,CAAC;IACzE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC,yCAAyC;IACzC,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,GAAG,EACH,QAAQ,EACR,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,KAAK,EACT,EAAE,wBAAwB,qBAc1B;yBArBe,mBAAmB"}
|
|
@@ -16,7 +16,24 @@ import React from 'react';
|
|
|
16
16
|
import * as stylex from '@stylexjs/stylex';
|
|
17
17
|
import "../theme/tokens.stylex.js";
|
|
18
18
|
import { colorVars, spacingVars, typeScaleVars, typographyVars } from "../theme/tokens.stylex.js";
|
|
19
|
-
import {
|
|
19
|
+
import { mergeProps } from "../utils/index.js";
|
|
20
|
+
import { themeProps } from "../utils/themeProps.js";
|
|
21
|
+
import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
|
|
22
|
+
const styles = {
|
|
23
|
+
empty: {
|
|
24
|
+
k1xSpc: "x78zum5",
|
|
25
|
+
kGNEyG: "x6s0dn4",
|
|
26
|
+
kjj79g: "xl56j7k",
|
|
27
|
+
k8WAf4: "xmfvnks",
|
|
28
|
+
kg3NbH: "x1pzlopt",
|
|
29
|
+
kMv6JI: "x9ynric",
|
|
30
|
+
kGuDYH: "x141an7d",
|
|
31
|
+
kLWn49: "x1ltkj2j",
|
|
32
|
+
kMwMTN: "xv1l7n4",
|
|
33
|
+
k9WMMc: "x2b8uid",
|
|
34
|
+
$$css: true
|
|
35
|
+
}
|
|
36
|
+
};
|
|
20
37
|
/**
|
|
21
38
|
* Empty state for the command palette list area.
|
|
22
39
|
*
|
|
@@ -37,14 +54,17 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
37
54
|
*/
|
|
38
55
|
export function CommandPaletteEmpty({
|
|
39
56
|
ref,
|
|
40
|
-
children
|
|
57
|
+
children,
|
|
58
|
+
xstyle,
|
|
59
|
+
className,
|
|
60
|
+
style,
|
|
61
|
+
...props
|
|
41
62
|
}) {
|
|
42
|
-
return /*#__PURE__*/
|
|
63
|
+
return /*#__PURE__*/_jsxDEV("div", {
|
|
43
64
|
ref: ref,
|
|
44
|
-
...
|
|
45
|
-
|
|
46
|
-
},
|
|
65
|
+
...mergeProps(themeProps('command-palette-empty'), stylex.props(styles.empty, xstyle), className, style),
|
|
66
|
+
...props,
|
|
47
67
|
children: children
|
|
48
|
-
});
|
|
68
|
+
}, void 0, false);
|
|
49
69
|
}
|
|
50
70
|
CommandPaletteEmpty.displayName = 'CommandPaletteEmpty';
|