@astryxdesign/core 0.1.2 → 0.1.3-canary.6d57c8d
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 +165 -0
- package/README.md +12 -12
- package/dist/Avatar/Avatar.d.ts.map +1 -1
- package/dist/Avatar/Avatar.js +11 -5
- package/dist/Breadcrumbs/BreadcrumbItem.d.ts +1 -1
- package/dist/Breadcrumbs/BreadcrumbItem.d.ts.map +1 -1
- package/dist/Breadcrumbs/BreadcrumbItem.js +24 -5
- package/dist/Button/Button.d.ts.map +1 -1
- package/dist/Button/Button.js +2 -4
- package/dist/ButtonGroup/ButtonGroup.d.ts.map +1 -1
- package/dist/ButtonGroup/ButtonGroup.js +0 -1
- package/dist/Calendar/Calendar.d.ts +5 -4
- package/dist/Calendar/Calendar.d.ts.map +1 -1
- package/dist/Calendar/Calendar.js +82 -43
- package/dist/Calendar/hooks/index.d.ts +0 -2
- package/dist/Calendar/hooks/index.d.ts.map +1 -1
- package/dist/Calendar/hooks/index.js +1 -2
- package/dist/Calendar/index.d.ts +3 -3
- package/dist/Calendar/index.d.ts.map +1 -1
- package/dist/Calendar/index.js +1 -1
- package/dist/Calendar/styles.d.ts +3 -9
- package/dist/Calendar/styles.d.ts.map +1 -1
- package/dist/Calendar/styles.js +3 -11
- package/dist/Carousel/Carousel.d.ts.map +1 -1
- package/dist/Carousel/Carousel.js +17 -3
- package/dist/Center/Center.d.ts +11 -1
- package/dist/Center/Center.d.ts.map +1 -1
- package/dist/Center/Center.js +9 -3
- package/dist/Chat/ChatComposerInput.d.ts.map +1 -1
- package/dist/Chat/ChatComposerInput.js +0 -1
- package/dist/Chat/ChatMessageList.d.ts +14 -1
- package/dist/Chat/ChatMessageList.d.ts.map +1 -1
- package/dist/Chat/ChatMessageList.js +2 -0
- package/dist/Chat/useTriggerMenu.d.ts +8 -1
- package/dist/Chat/useTriggerMenu.d.ts.map +1 -1
- package/dist/Chat/useTriggerMenu.js +15 -3
- package/dist/CheckboxInput/CheckboxInput.d.ts +23 -2
- package/dist/CheckboxInput/CheckboxInput.d.ts.map +1 -1
- package/dist/CheckboxInput/CheckboxInput.js +51 -9
- package/dist/CheckboxList/CheckboxList.d.ts +13 -1
- package/dist/CheckboxList/CheckboxList.d.ts.map +1 -1
- package/dist/CheckboxList/CheckboxList.js +39 -9
- package/dist/CheckboxList/CheckboxListContext.d.ts +7 -0
- package/dist/CheckboxList/CheckboxListContext.d.ts.map +1 -1
- package/dist/CheckboxList/CheckboxListItem.d.ts.map +1 -1
- package/dist/CheckboxList/CheckboxListItem.js +0 -1
- package/dist/Citation/Citation.d.ts.map +1 -1
- package/dist/Citation/Citation.js +9 -5
- package/dist/CodeBlock/CodeBlock.d.ts.map +1 -1
- package/dist/CodeBlock/CodeBlock.js +51 -37
- package/dist/CommandPalette/CommandPalette.d.ts.map +1 -1
- package/dist/CommandPalette/CommandPalette.js +5 -5
- package/dist/ContextMenu/ContextMenu.d.ts +4 -5
- package/dist/ContextMenu/ContextMenu.d.ts.map +1 -1
- package/dist/ContextMenu/ContextMenu.js +93 -11
- package/dist/DateInput/DateInput.d.ts +23 -1
- package/dist/DateInput/DateInput.d.ts.map +1 -1
- package/dist/DateInput/DateInput.js +167 -99
- package/dist/DateRangeInput/DateRangeInput.d.ts +23 -1
- package/dist/DateRangeInput/DateRangeInput.d.ts.map +1 -1
- package/dist/DateRangeInput/DateRangeInput.js +42 -9
- package/dist/DateTimeInput/DateTimeInput.d.ts +35 -2
- package/dist/DateTimeInput/DateTimeInput.d.ts.map +1 -1
- package/dist/DateTimeInput/DateTimeInput.js +78 -15
- package/dist/Dialog/Dialog.d.ts.map +1 -1
- package/dist/Dialog/Dialog.js +12 -0
- package/dist/DropdownMenu/DropdownMenu.d.ts +1 -8
- package/dist/DropdownMenu/DropdownMenu.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenu.js +42 -14
- package/dist/Field/Field.d.ts +19 -2
- package/dist/Field/Field.d.ts.map +1 -1
- package/dist/Field/Field.js +4 -0
- package/dist/Field/FieldLabel.d.ts +21 -2
- package/dist/Field/FieldLabel.d.ts.map +1 -1
- package/dist/Field/FieldLabel.js +41 -26
- package/dist/FileInput/FileInput.d.ts +22 -1
- package/dist/FileInput/FileInput.d.ts.map +1 -1
- package/dist/FileInput/FileInput.js +56 -10
- package/dist/Grid/Grid.d.ts +11 -1
- package/dist/Grid/Grid.d.ts.map +1 -1
- package/dist/Grid/Grid.js +32 -6
- package/dist/InputGroup/InputGroup.d.ts +4 -3
- package/dist/InputGroup/InputGroup.d.ts.map +1 -1
- package/dist/InputGroup/InputGroup.js +16 -6
- package/dist/InputGroup/InputGroupContext.d.ts +4 -0
- package/dist/InputGroup/InputGroupContext.d.ts.map +1 -1
- package/dist/InputGroup/InputGroupContext.js +2 -2
- package/dist/InputGroup/groupStyles.d.ts +1 -1
- package/dist/InputGroup/groupStyles.d.ts.map +1 -1
- package/dist/InputGroup/groupStyles.js +3 -3
- package/dist/InputGroup/index.d.ts +1 -0
- package/dist/InputGroup/index.d.ts.map +1 -1
- package/dist/Kbd/Kbd.d.ts.map +1 -1
- package/dist/Kbd/Kbd.js +33 -1
- package/dist/Layer/layerAnimations.stylex.d.ts +4 -0
- package/dist/Layer/layerAnimations.stylex.d.ts.map +1 -1
- package/dist/Layer/layerAnimations.stylex.js +8 -4
- package/dist/Layer/useLayer.d.ts +10 -0
- package/dist/Layer/useLayer.d.ts.map +1 -1
- package/dist/Layer/useLayer.js +64 -9
- package/dist/Layout/Layout.d.ts +4 -11
- package/dist/Layout/Layout.d.ts.map +1 -1
- package/dist/Layout/Layout.js +10 -11
- package/dist/Layout/LayoutFooter.d.ts +2 -2
- package/dist/Layout/LayoutFooter.d.ts.map +1 -1
- package/dist/Layout/LayoutHeader.d.ts +2 -2
- package/dist/Layout/LayoutHeader.d.ts.map +1 -1
- package/dist/Layout/LayoutPanel.d.ts +2 -2
- package/dist/Layout/LayoutPanel.d.ts.map +1 -1
- package/dist/Layout/padding.stylex.d.ts +51 -0
- package/dist/Layout/padding.stylex.d.ts.map +1 -1
- package/dist/Layout/padding.stylex.js +63 -0
- package/dist/Lightbox/Lightbox.d.ts.map +1 -1
- package/dist/Lightbox/Lightbox.js +4 -2
- package/dist/Link/Link.d.ts +16 -1
- package/dist/Link/Link.d.ts.map +1 -1
- package/dist/Link/Link.js +18 -7
- package/dist/Markdown/Markdown.d.ts.map +1 -1
- package/dist/Markdown/Markdown.js +7 -0
- package/dist/MoreMenu/MoreMenu.d.ts +1 -7
- package/dist/MoreMenu/MoreMenu.d.ts.map +1 -1
- package/dist/MoreMenu/MoreMenu.js +0 -2
- package/dist/MultiSelector/MultiSelector.d.ts +27 -2
- package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
- package/dist/MultiSelector/MultiSelector.js +141 -42
- package/dist/MultiSelector/hooks.d.ts +12 -1
- package/dist/MultiSelector/hooks.d.ts.map +1 -1
- package/dist/MultiSelector/hooks.js +14 -1
- package/dist/NavMenu/NavHeadingMenu.d.ts.map +1 -1
- package/dist/NavMenu/NavHeadingMenu.js +34 -3
- package/dist/NumberInput/NumberInput.d.ts +23 -2
- package/dist/NumberInput/NumberInput.d.ts.map +1 -1
- package/dist/NumberInput/NumberInput.js +62 -12
- package/dist/Pagination/Pagination.d.ts +1 -1
- package/dist/Pagination/Pagination.d.ts.map +1 -1
- package/dist/Pagination/Pagination.js +15 -1
- package/dist/Popover/Popover.d.ts +18 -2
- package/dist/Popover/Popover.d.ts.map +1 -1
- package/dist/Popover/Popover.js +5 -2
- package/dist/Popover/usePopover.d.ts +38 -3
- package/dist/Popover/usePopover.d.ts.map +1 -1
- package/dist/Popover/usePopover.js +24 -9
- package/dist/PowerSearch/PowerSearch.d.ts +11 -1
- package/dist/PowerSearch/PowerSearch.d.ts.map +1 -1
- package/dist/PowerSearch/PowerSearch.js +6 -1
- package/dist/ProgressBar/ProgressBar.d.ts.map +1 -1
- package/dist/ProgressBar/ProgressBar.js +3 -5
- package/dist/RadioList/RadioList.d.ts +20 -2
- package/dist/RadioList/RadioList.d.ts.map +1 -1
- package/dist/RadioList/RadioList.js +105 -9
- package/dist/RadioList/RadioListItem.d.ts.map +1 -1
- package/dist/RadioList/RadioListItem.js +13 -2
- package/dist/SegmentedControl/SegmentedControl.d.ts +13 -2
- package/dist/SegmentedControl/SegmentedControl.d.ts.map +1 -1
- package/dist/SegmentedControl/SegmentedControl.js +78 -44
- package/dist/SegmentedControl/SegmentedControlContext.d.ts +7 -0
- package/dist/SegmentedControl/SegmentedControlContext.d.ts.map +1 -1
- package/dist/SegmentedControl/SegmentedControlItem.d.ts.map +1 -1
- package/dist/SegmentedControl/SegmentedControlItem.js +13 -2
- package/dist/Selector/Selector.d.ts +24 -1
- package/dist/Selector/Selector.d.ts.map +1 -1
- package/dist/Selector/Selector.js +122 -43
- package/dist/Selector/hooks.d.ts +8 -1
- package/dist/Selector/hooks.d.ts.map +1 -1
- package/dist/Selector/hooks.js +14 -1
- package/dist/SideNav/SideNavHeading.d.ts.map +1 -1
- package/dist/SideNav/SideNavHeading.js +2 -0
- package/dist/SideNav/SideNavItem.d.ts.map +1 -1
- package/dist/SideNav/SideNavItem.js +1 -1
- package/dist/Skeleton/Skeleton.d.ts.map +1 -1
- package/dist/Skeleton/Skeleton.js +8 -2
- package/dist/Slider/Slider.d.ts +21 -0
- package/dist/Slider/Slider.d.ts.map +1 -1
- package/dist/Slider/Slider.js +36 -9
- package/dist/Spinner/Spinner.d.ts.map +1 -1
- package/dist/Spinner/Spinner.js +1 -1
- package/dist/Stack/Stack.d.ts +38 -23
- package/dist/Stack/Stack.d.ts.map +1 -1
- package/dist/Stack/Stack.js +25 -1
- package/dist/Stack/StackItem.d.ts +12 -23
- package/dist/Stack/StackItem.d.ts.map +1 -1
- package/dist/Stack/StackItem.js +8 -1
- package/dist/Switch/Switch.d.ts +23 -2
- package/dist/Switch/Switch.d.ts.map +1 -1
- package/dist/Switch/Switch.js +41 -11
- package/dist/TabList/Tab.d.ts.map +1 -1
- package/dist/TabList/Tab.js +6 -0
- package/dist/TabList/TabList.d.ts +16 -4
- package/dist/TabList/TabList.d.ts.map +1 -1
- package/dist/TabList/TabList.js +87 -10
- package/dist/TabList/TabListContext.d.ts +5 -0
- package/dist/TabList/TabListContext.d.ts.map +1 -1
- package/dist/TabList/TabListContext.js +5 -0
- package/dist/TabList/TabMenu.d.ts.map +1 -1
- package/dist/TabList/TabMenu.js +6 -1
- package/dist/Table/BaseTable.d.ts.map +1 -1
- package/dist/Table/BaseTable.js +11 -8
- package/dist/Table/Table.d.ts.map +1 -1
- package/dist/Table/Table.js +10 -1
- package/dist/Table/TableCell.d.ts +8 -1
- package/dist/Table/TableCell.d.ts.map +1 -1
- package/dist/Table/TableCell.js +10 -10
- package/dist/Table/TableHeaderCell.d.ts +8 -1
- package/dist/Table/TableHeaderCell.d.ts.map +1 -1
- package/dist/Table/TableHeaderCell.js +16 -16
- package/dist/Table/index.d.ts +2 -1
- package/dist/Table/index.d.ts.map +1 -1
- package/dist/Table/index.js +2 -2
- package/dist/Table/plugins/pagination/paginateData.d.ts +2 -1
- package/dist/Table/plugins/pagination/paginateData.d.ts.map +1 -1
- package/dist/Table/plugins/pagination/paginateData.js +8 -3
- package/dist/Table/plugins/pagination/useTablePagination.d.ts.map +1 -1
- package/dist/Table/plugins/pagination/useTablePagination.js +6 -1
- package/dist/Table/plugins/sortable/useTableSortable.d.ts.map +1 -1
- package/dist/Table/plugins/sortable/useTableSortable.js +59 -3
- package/dist/Table/tableContextMenu.d.ts +33 -0
- package/dist/Table/tableContextMenu.d.ts.map +1 -0
- package/dist/Table/tableContextMenu.js +133 -0
- package/dist/Table/types.d.ts +66 -0
- package/dist/Table/types.d.ts.map +1 -1
- package/dist/TextArea/TextArea.d.ts +22 -1
- package/dist/TextArea/TextArea.d.ts.map +1 -1
- package/dist/TextArea/TextArea.js +41 -9
- package/dist/TextInput/TextInput.d.ts +23 -2
- package/dist/TextInput/TextInput.d.ts.map +1 -1
- package/dist/TextInput/TextInput.js +55 -10
- package/dist/TimeInput/TimeInput.d.ts +23 -1
- package/dist/TimeInput/TimeInput.d.ts.map +1 -1
- package/dist/TimeInput/TimeInput.js +147 -76
- package/dist/Toast/Toast.d.ts.map +1 -1
- package/dist/Toast/Toast.js +14 -0
- package/dist/Toast/ToastViewport.d.ts.map +1 -1
- package/dist/Toast/ToastViewport.js +131 -3
- package/dist/Tokenizer/Tokenizer.d.ts +12 -1
- package/dist/Tokenizer/Tokenizer.d.ts.map +1 -1
- package/dist/Tokenizer/Tokenizer.js +26 -4
- package/dist/Toolbar/Toolbar.d.ts +3 -3
- package/dist/Toolbar/Toolbar.d.ts.map +1 -1
- package/dist/Toolbar/Toolbar.js +51 -7
- package/dist/Tooltip/useTooltip.d.ts.map +1 -1
- package/dist/Tooltip/useTooltip.js +56 -9
- package/dist/TopNav/TopNavHeading.d.ts +7 -1
- package/dist/TopNav/TopNavHeading.d.ts.map +1 -1
- package/dist/TopNav/TopNavHeading.js +8 -0
- package/dist/TreeList/TreeList.d.ts +1 -1
- package/dist/TreeList/TreeList.d.ts.map +1 -1
- package/dist/TreeList/TreeList.js +72 -2
- package/dist/TreeList/TreeListItem.d.ts +11 -1
- package/dist/TreeList/TreeListItem.d.ts.map +1 -1
- package/dist/TreeList/TreeListItem.js +51 -12
- package/dist/TreeList/treeListItem.markers.stylex.d.ts +16 -0
- package/dist/TreeList/treeListItem.markers.stylex.d.ts.map +1 -0
- package/dist/TreeList/treeListItem.markers.stylex.js +22 -0
- package/dist/Typeahead/BaseTypeahead.d.ts +13 -0
- package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
- package/dist/Typeahead/BaseTypeahead.js +69 -6
- package/dist/Typeahead/Typeahead.d.ts +26 -3
- package/dist/Typeahead/Typeahead.d.ts.map +1 -1
- package/dist/Typeahead/Typeahead.js +65 -29
- package/dist/VisuallyHidden/VisuallyHidden.d.ts +61 -0
- package/dist/VisuallyHidden/VisuallyHidden.d.ts.map +1 -0
- package/dist/VisuallyHidden/VisuallyHidden.js +65 -0
- package/dist/VisuallyHidden/index.d.ts +11 -0
- package/dist/VisuallyHidden/index.d.ts.map +1 -0
- package/dist/VisuallyHidden/index.js +13 -0
- package/dist/astryx.css +18 -0
- package/dist/astryx.umd.js +55 -55
- package/dist/astryx.umd.js.map +4 -4
- package/dist/hooks/focusableSelector.d.ts +22 -0
- package/dist/hooks/focusableSelector.d.ts.map +1 -0
- package/dist/hooks/focusableSelector.js +24 -0
- package/dist/hooks/index.d.ts +12 -2
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +7 -2
- package/dist/hooks/useAnnounce.d.ts +40 -0
- package/dist/hooks/useAnnounce.d.ts.map +1 -0
- package/dist/hooks/useAnnounce.js +142 -0
- package/dist/hooks/useClickableContainer.d.ts +16 -1
- package/dist/hooks/useClickableContainer.d.ts.map +1 -1
- package/dist/hooks/useClickableContainer.js +16 -4
- package/dist/hooks/useEntryAnimation.d.ts.map +1 -1
- package/dist/hooks/useEntryAnimation.js +4 -4
- package/dist/hooks/useFocusTrap.d.ts +18 -0
- package/dist/hooks/useFocusTrap.d.ts.map +1 -1
- package/dist/hooks/useFocusTrap.js +87 -3
- package/dist/hooks/useGridFocus.d.ts +88 -1
- package/dist/hooks/useGridFocus.d.ts.map +1 -1
- package/dist/hooks/useGridFocus.js +261 -62
- package/dist/hooks/useKeyboardHint.d.ts +82 -0
- package/dist/hooks/useKeyboardHint.d.ts.map +1 -0
- package/dist/hooks/useKeyboardHint.js +220 -0
- package/dist/hooks/useListFocus.d.ts +78 -7
- package/dist/hooks/useListFocus.d.ts.map +1 -1
- package/dist/hooks/useListFocus.js +305 -52
- package/dist/hooks/useLongPress.d.ts +21 -0
- package/dist/hooks/useLongPress.d.ts.map +1 -0
- package/dist/hooks/useLongPress.js +89 -0
- package/dist/hooks/useTreeFocus.d.ts +157 -0
- package/dist/hooks/useTreeFocus.d.ts.map +1 -0
- package/dist/hooks/useTreeFocus.js +337 -0
- package/dist/hooks/useTypeahead.d.ts +63 -0
- package/dist/hooks/useTypeahead.d.ts.map +1 -0
- package/dist/hooks/useTypeahead.js +117 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/utils/dateTypes.d.ts +12 -0
- package/dist/utils/dateTypes.d.ts.map +1 -1
- package/dist/utils/dateTypes.js +41 -1
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +3 -1
- package/dist/utils/inputAria.d.ts +29 -0
- package/dist/utils/inputAria.d.ts.map +1 -0
- package/dist/utils/inputAria.js +30 -0
- package/dist/utils/timeParser.d.ts.map +1 -1
- package/dist/utils/timeParser.js +5 -2
- package/docs.mjs +2 -2
- package/package.json +12 -8
- package/src/Avatar/Avatar.test.tsx +37 -0
- package/src/Avatar/Avatar.tsx +10 -5
- package/src/Breadcrumbs/BreadcrumbItem.tsx +25 -7
- package/src/Breadcrumbs/Breadcrumbs.test.tsx +31 -10
- package/src/Button/Button.tsx +3 -16
- package/src/ButtonGroup/ButtonGroup.test.tsx +9 -9
- package/src/ButtonGroup/ButtonGroup.tsx +0 -1
- package/src/Calendar/Calendar.doc.mjs +4 -4
- package/src/Calendar/Calendar.test.tsx +168 -30
- package/src/Calendar/Calendar.tsx +121 -66
- package/src/Calendar/hooks/index.ts +0 -6
- package/src/Calendar/index.ts +1 -3
- package/src/Calendar/styles.ts +4 -9
- package/src/Carousel/Carousel.doc.mjs +7 -1
- package/src/Carousel/Carousel.test.tsx +20 -0
- package/src/Carousel/Carousel.tsx +16 -1
- package/src/Center/Center.doc.mjs +12 -2
- package/src/Center/Center.tsx +28 -3
- package/src/Chat/ChatComposerInput.test.tsx +26 -7
- package/src/Chat/ChatComposerInput.tsx +0 -1
- package/src/Chat/ChatDictationButton.doc.mjs +1 -1
- package/src/Chat/ChatMessageList.doc.mjs +8 -0
- package/src/Chat/ChatMessageList.test.tsx +18 -0
- package/src/Chat/ChatMessageList.tsx +16 -0
- package/src/Chat/useTriggerMenu.tsx +22 -4
- package/src/CheckboxInput/CheckboxInput.doc.mjs +10 -0
- package/src/CheckboxInput/CheckboxInput.test.tsx +172 -27
- package/src/CheckboxInput/CheckboxInput.tsx +78 -6
- package/src/CheckboxList/CheckboxList.doc.mjs +9 -0
- package/src/CheckboxList/CheckboxList.test.tsx +192 -26
- package/src/CheckboxList/CheckboxList.tsx +56 -3
- package/src/CheckboxList/CheckboxListContext.tsx +7 -0
- package/src/CheckboxList/CheckboxListItem.tsx +0 -3
- package/src/Citation/Citation.doc.mjs +10 -0
- package/src/Citation/Citation.test.tsx +121 -0
- package/src/Citation/Citation.tsx +15 -3
- package/src/CodeBlock/CodeBlock.test.tsx +115 -0
- package/src/CodeBlock/CodeBlock.tsx +63 -33
- package/src/CommandPalette/CommandPalette.test.tsx +47 -1
- package/src/CommandPalette/CommandPalette.tsx +9 -21
- package/src/ContextMenu/ContextMenu.doc.mjs +4 -4
- package/src/ContextMenu/ContextMenu.test.tsx +155 -1
- package/src/ContextMenu/ContextMenu.tsx +113 -16
- package/src/DateInput/DateInput.doc.mjs +286 -56
- package/src/DateInput/DateInput.test.tsx +248 -2
- package/src/DateInput/DateInput.tsx +196 -100
- package/src/DateRangeInput/DateRangeInput.doc.mjs +251 -46
- package/src/DateRangeInput/DateRangeInput.test.tsx +182 -20
- package/src/DateRangeInput/DateRangeInput.tsx +63 -5
- package/src/DateTimeInput/DateTimeInput.doc.mjs +368 -67
- package/src/DateTimeInput/DateTimeInput.test.tsx +279 -11
- package/src/DateTimeInput/DateTimeInput.tsx +125 -17
- package/src/Dialog/Dialog.doc.mjs +2 -2
- package/src/Dialog/Dialog.tsx +12 -0
- package/src/DropdownMenu/DropdownMenu.doc.mjs +1 -8
- package/src/DropdownMenu/DropdownMenu.test.tsx +56 -42
- package/src/DropdownMenu/DropdownMenu.tsx +52 -18
- package/src/Field/Field.doc.mjs +59 -18
- package/src/Field/Field.test.tsx +32 -0
- package/src/Field/Field.tsx +23 -5
- package/src/Field/FieldLabel.tsx +55 -17
- package/src/FileInput/FileInput.doc.mjs +17 -0
- package/src/FileInput/FileInput.test.tsx +283 -49
- package/src/FileInput/FileInput.tsx +76 -4
- package/src/Grid/Grid.doc.mjs +17 -4
- package/src/Grid/Grid.test.tsx +43 -30
- package/src/Grid/Grid.tsx +38 -3
- package/src/Icon/Icon.doc.mjs +3 -3
- package/src/InputGroup/InputGroup.doc.mjs +111 -23
- package/src/InputGroup/InputGroup.test.tsx +257 -60
- package/src/InputGroup/InputGroup.tsx +23 -5
- package/src/InputGroup/InputGroupContext.ts +9 -4
- package/src/InputGroup/groupStyles.ts +7 -1
- package/src/InputGroup/index.ts +1 -0
- package/src/Kbd/Kbd.test.tsx +22 -4
- package/src/Kbd/Kbd.tsx +35 -3
- package/src/Layer/layerAnimations.stylex.ts +20 -4
- package/src/Layer/useLayer.doc.mjs +5 -0
- package/src/Layer/useLayer.test.tsx +111 -0
- package/src/Layer/useLayer.tsx +90 -9
- package/src/Layout/Layout.tsx +8 -16
- package/src/Layout/LayoutFooter.doc.mjs +4 -4
- package/src/Layout/LayoutFooter.tsx +3 -3
- package/src/Layout/LayoutHeader.doc.mjs +4 -4
- package/src/Layout/LayoutHeader.tsx +3 -3
- package/src/Layout/LayoutPanel.tsx +3 -3
- package/src/Layout/padding.stylex.ts +52 -0
- package/src/Lightbox/Lightbox.doc.mjs +9 -0
- package/src/Lightbox/Lightbox.test.tsx +53 -5
- package/src/Lightbox/Lightbox.tsx +9 -4
- package/src/Link/Link.doc.mjs +14 -0
- package/src/Link/Link.test.tsx +50 -0
- package/src/Link/Link.tsx +39 -4
- package/src/Markdown/Markdown.test.tsx +11 -0
- package/src/Markdown/Markdown.tsx +7 -0
- package/src/MetadataList/MetadataListItem.doc.mjs +4 -0
- package/src/MoreMenu/MoreMenu.doc.mjs +2 -17
- package/src/MoreMenu/MoreMenu.tsx +0 -9
- package/src/MultiSelector/MultiSelector.doc.mjs +30 -0
- package/src/MultiSelector/MultiSelector.test.tsx +375 -8
- package/src/MultiSelector/MultiSelector.tsx +194 -48
- package/src/MultiSelector/hooks.ts +27 -0
- package/src/NavMenu/NavHeadingMenu.test.tsx +77 -1
- package/src/NavMenu/NavHeadingMenu.tsx +50 -3
- package/src/NumberInput/NumberInput.doc.mjs +17 -0
- package/src/NumberInput/NumberInput.test.tsx +242 -40
- package/src/NumberInput/NumberInput.tsx +89 -11
- package/src/Pagination/Pagination.doc.mjs +3 -3
- package/src/Pagination/Pagination.test.tsx +117 -5
- package/src/Pagination/Pagination.tsx +21 -1
- package/src/Popover/Popover.doc.mjs +26 -0
- package/src/Popover/Popover.test.tsx +121 -0
- package/src/Popover/Popover.tsx +23 -2
- package/src/Popover/usePopover.doc.mjs +9 -3
- package/src/Popover/usePopover.tsx +70 -12
- package/src/PowerSearch/PowerSearch.doc.mjs +15 -0
- package/src/PowerSearch/PowerSearch.test.tsx +97 -1
- package/src/PowerSearch/PowerSearch.tsx +16 -3
- package/src/ProgressBar/ProgressBar.test.tsx +34 -26
- package/src/ProgressBar/ProgressBar.tsx +3 -4
- package/src/RadioList/RadioList.doc.mjs +9 -0
- package/src/RadioList/RadioList.test.tsx +252 -16
- package/src/RadioList/RadioList.tsx +166 -10
- package/src/RadioList/RadioListItem.tsx +14 -2
- package/src/SegmentedControl/SegmentedControl.doc.mjs +9 -0
- package/src/SegmentedControl/SegmentedControl.test.tsx +214 -42
- package/src/SegmentedControl/SegmentedControl.tsx +102 -54
- package/src/SegmentedControl/SegmentedControlContext.ts +7 -0
- package/src/SegmentedControl/SegmentedControlItem.tsx +14 -1
- package/src/SelectableCard/SelectableCard.doc.mjs +1 -1
- package/src/Selector/Selector.doc.mjs +26 -0
- package/src/Selector/Selector.test.tsx +387 -15
- package/src/Selector/Selector.tsx +175 -67
- package/src/Selector/hooks.ts +23 -0
- package/src/SideNav/SideNav.test.tsx +48 -0
- package/src/SideNav/SideNavHeading.tsx +8 -2
- package/src/SideNav/SideNavItem.tsx +2 -4
- package/src/Skeleton/Skeleton.test.tsx +25 -0
- package/src/Skeleton/Skeleton.tsx +11 -1
- package/src/Slider/Slider.doc.mjs +15 -0
- package/src/Slider/Slider.test.tsx +155 -2
- package/src/Slider/Slider.tsx +53 -5
- package/src/Spinner/Spinner.tsx +7 -1
- package/src/Stack/Stack.doc.mjs +77 -0
- package/src/Stack/Stack.test.tsx +55 -5
- package/src/Stack/Stack.tsx +73 -24
- package/src/Stack/StackItem.test.tsx +23 -0
- package/src/Stack/StackItem.tsx +20 -23
- package/src/Switch/Switch.doc.mjs +15 -0
- package/src/Switch/Switch.test.tsx +162 -27
- package/src/Switch/Switch.tsx +61 -21
- package/src/TabList/Tab.tsx +6 -0
- package/src/TabList/TabList.doc.mjs +6 -0
- package/src/TabList/TabList.test.tsx +251 -0
- package/src/TabList/TabList.tsx +103 -12
- package/src/TabList/TabListContext.ts +7 -3
- package/src/TabList/TabMenu.tsx +6 -3
- package/src/Table/BaseTable.tsx +21 -17
- package/src/Table/Table.doc.mjs +2 -0
- package/src/Table/Table.test.tsx +10 -0
- package/src/Table/Table.tsx +8 -0
- package/src/Table/TableCell.tsx +25 -23
- package/src/Table/TableHeaderCell.tsx +28 -29
- package/src/Table/index.ts +3 -2
- package/src/Table/plugins/pagination/paginateData.ts +10 -3
- package/src/Table/plugins/pagination/useTablePagination.test.tsx +16 -0
- package/src/Table/plugins/pagination/useTablePagination.tsx +8 -1
- package/src/Table/plugins/sortable/useTableSortable.test.tsx +91 -2
- package/src/Table/plugins/sortable/useTableSortable.tsx +53 -1
- package/src/Table/tableContextMenu.test.tsx +157 -0
- package/src/Table/tableContextMenu.tsx +142 -0
- package/src/Table/types.ts +74 -0
- package/src/Table/useTableColumnResize.doc.mjs +3 -3
- package/src/Table/useTableStickyColumns.doc.mjs +2 -2
- package/src/Text/Text.doc.mjs +18 -18
- package/src/TextArea/TextArea.doc.mjs +17 -0
- package/src/TextArea/TextArea.test.tsx +167 -35
- package/src/TextArea/TextArea.tsx +62 -15
- package/src/TextInput/TextInput.doc.mjs +17 -0
- package/src/TextInput/TextInput.test.tsx +168 -34
- package/src/TextInput/TextInput.tsx +77 -9
- package/src/Thumbnail/Thumbnail.doc.mjs +4 -4
- package/src/TimeInput/TimeInput.doc.mjs +340 -60
- package/src/TimeInput/TimeInput.test.tsx +255 -7
- package/src/TimeInput/TimeInput.tsx +176 -70
- package/src/Timestamp/Timestamp.doc.mjs +19 -19
- package/src/Toast/Toast.tsx +14 -0
- package/src/Toast/ToastViewport.test.tsx +214 -0
- package/src/Toast/ToastViewport.tsx +167 -21
- package/src/Tokenizer/Tokenizer.doc.mjs +29 -14
- package/src/Tokenizer/Tokenizer.test.tsx +105 -1
- package/src/Tokenizer/Tokenizer.tsx +37 -1
- package/src/Toolbar/Toolbar.test.tsx +109 -6
- package/src/Toolbar/Toolbar.tsx +59 -5
- package/src/Tooltip/Tooltip.test.tsx +68 -0
- package/src/Tooltip/useTooltip.tsx +55 -8
- package/src/TopNav/TopNav.test.tsx +50 -0
- package/src/TopNav/TopNavHeading.tsx +17 -1
- package/src/TreeList/TreeList.test.tsx +295 -6
- package/src/TreeList/TreeList.tsx +73 -1
- package/src/TreeList/TreeListItem.tsx +51 -5
- package/src/TreeList/treeListItem.markers.stylex.ts +20 -0
- package/src/Typeahead/BaseTypeahead.tsx +93 -9
- package/src/Typeahead/Typeahead.doc.mjs +141 -30
- package/src/Typeahead/Typeahead.test.tsx +331 -1
- package/src/Typeahead/Typeahead.tsx +105 -33
- package/src/VisuallyHidden/VisuallyHidden.doc.mjs +80 -0
- package/src/VisuallyHidden/VisuallyHidden.test.tsx +76 -0
- package/src/VisuallyHidden/VisuallyHidden.tsx +113 -0
- package/src/VisuallyHidden/index.ts +15 -0
- package/src/docs-script.test.mjs +50 -0
- package/src/hooks/focusableSelector.ts +25 -0
- package/src/hooks/index.ts +28 -2
- package/src/hooks/useAnnounce.test.tsx +101 -0
- package/src/hooks/useAnnounce.ts +168 -0
- package/src/hooks/useClickableContainer.ts +16 -4
- package/src/hooks/useEntryAnimation.ts +16 -4
- package/src/hooks/useFocusTrap.test.tsx +132 -0
- package/src/hooks/useFocusTrap.ts +98 -4
- package/src/hooks/useGridFocus.doc.mjs +40 -2
- package/src/hooks/useGridFocus.test.tsx +132 -0
- package/src/hooks/useGridFocus.ts +343 -67
- package/src/hooks/useKeyboardHint.doc.mjs +101 -0
- package/src/hooks/useKeyboardHint.test.tsx +70 -0
- package/src/hooks/useKeyboardHint.tsx +332 -0
- package/src/hooks/useListFocus.doc.mjs +50 -10
- package/src/hooks/useListFocus.test.tsx +375 -0
- package/src/hooks/useListFocus.ts +395 -57
- package/src/hooks/useLongPress.test.tsx +134 -0
- package/src/hooks/useLongPress.ts +119 -0
- package/src/hooks/useTreeFocus.doc.mjs +140 -0
- package/src/hooks/useTreeFocus.test.tsx +214 -0
- package/src/hooks/useTreeFocus.ts +559 -0
- package/src/hooks/useTypeahead.test.tsx +109 -0
- package/src/hooks/useTypeahead.ts +183 -0
- package/src/index.ts +1 -0
- package/src/theme/derivedVarRegistry.test.ts +10 -5
- package/src/utils/dateTypes.test.ts +40 -0
- package/src/utils/dateTypes.ts +40 -0
- package/src/utils/index.ts +9 -0
- package/src/utils/inputAria.test.ts +39 -0
- package/src/utils/inputAria.ts +58 -0
- package/src/utils/timeParser.test.ts +10 -0
- package/src/utils/timeParser.ts +5 -2
- package/dist/Calendar/hooks/useCalendarRovingTabindex.d.ts +0 -57
- package/dist/Calendar/hooks/useCalendarRovingTabindex.d.ts.map +0 -1
- package/dist/Calendar/hooks/useCalendarRovingTabindex.js +0 -96
- package/src/Calendar/hooks/useCalendarRovingTabindex.ts +0 -118
package/src/Link/Link.test.tsx
CHANGED
|
@@ -120,6 +120,24 @@ describe('Link', () => {
|
|
|
120
120
|
expect(screen.getByRole('link')).toBeInTheDocument();
|
|
121
121
|
});
|
|
122
122
|
|
|
123
|
+
it('defaults the inner text type to body', () => {
|
|
124
|
+
render(<Link href="/test">Body link</Link>);
|
|
125
|
+
expect(screen.getByText('Body link')).toHaveClass('astryx-text', 'body');
|
|
126
|
+
});
|
|
127
|
+
|
|
128
|
+
it('forwards type="inherit" so the link adopts the surrounding text type', () => {
|
|
129
|
+
render(
|
|
130
|
+
<Link href="/test" type="inherit">
|
|
131
|
+
Inline link
|
|
132
|
+
</Link>,
|
|
133
|
+
);
|
|
134
|
+
// The inner Text renders with the `inherit` type, so font-size/line-height
|
|
135
|
+
// inherit from the surrounding text rather than imposing the body type.
|
|
136
|
+
const text = screen.getByText('Inline link');
|
|
137
|
+
expect(text).toHaveClass('astryx-text', 'inherit');
|
|
138
|
+
expect(text).not.toHaveClass('body');
|
|
139
|
+
});
|
|
140
|
+
|
|
123
141
|
it('applies hasUnderline style when true', () => {
|
|
124
142
|
render(
|
|
125
143
|
<Link href="/test" hasUnderline>
|
|
@@ -152,6 +170,38 @@ describe('Link', () => {
|
|
|
152
170
|
expect(link.querySelector('svg')).toBeInTheDocument();
|
|
153
171
|
});
|
|
154
172
|
|
|
173
|
+
it('announces the new-tab context via screen-reader text (obs-4)', () => {
|
|
174
|
+
render(
|
|
175
|
+
<Link href="https://example.com" isExternalLink>
|
|
176
|
+
Docs
|
|
177
|
+
</Link>,
|
|
178
|
+
);
|
|
179
|
+
// The link's accessible name includes the new-tab hint (the icon is
|
|
180
|
+
// decorative).
|
|
181
|
+
expect(
|
|
182
|
+
screen.getByRole('link', {name: 'Docs (opens in new tab)'}),
|
|
183
|
+
).toBeInTheDocument();
|
|
184
|
+
});
|
|
185
|
+
|
|
186
|
+
it('supports a custom newTabLabel for localization', () => {
|
|
187
|
+
render(
|
|
188
|
+
<Link
|
|
189
|
+
href="https://example.com"
|
|
190
|
+
isExternalLink
|
|
191
|
+
newTabLabel="(new window)">
|
|
192
|
+
Docs
|
|
193
|
+
</Link>,
|
|
194
|
+
);
|
|
195
|
+
expect(
|
|
196
|
+
screen.getByRole('link', {name: 'Docs (new window)'}),
|
|
197
|
+
).toBeInTheDocument();
|
|
198
|
+
});
|
|
199
|
+
|
|
200
|
+
it('does not add new-tab text to non-external links', () => {
|
|
201
|
+
render(<Link href="/internal">Internal</Link>);
|
|
202
|
+
expect(screen.getByRole('link', {name: 'Internal'})).toBeInTheDocument();
|
|
203
|
+
});
|
|
204
|
+
|
|
155
205
|
it('renders external link with existing rel merged', () => {
|
|
156
206
|
render(
|
|
157
207
|
<Link href="https://example.com" isExternalLink rel="sponsored">
|
package/src/Link/Link.tsx
CHANGED
|
@@ -30,6 +30,7 @@ import {
|
|
|
30
30
|
import {Icon} from '../Icon';
|
|
31
31
|
import {Tooltip} from '../Tooltip';
|
|
32
32
|
import {Text} from '../Text';
|
|
33
|
+
import {VisuallyHidden} from '../VisuallyHidden';
|
|
33
34
|
import type {
|
|
34
35
|
TextType,
|
|
35
36
|
TextSize,
|
|
@@ -106,10 +107,20 @@ const styles = stylex.create({
|
|
|
106
107
|
*/
|
|
107
108
|
const linkColorStyles = stylex.create({
|
|
108
109
|
primary: {
|
|
109
|
-
color:
|
|
110
|
+
color: {
|
|
111
|
+
default: colorVars['--color-text-primary'],
|
|
112
|
+
':hover': {
|
|
113
|
+
'@media (hover: hover)': `color-mix(in srgb, ${colorVars['--color-text-primary']}, ${colorVars['--color-tint-hover']} 15%)`,
|
|
114
|
+
},
|
|
115
|
+
},
|
|
110
116
|
},
|
|
111
117
|
secondary: {
|
|
112
|
-
color:
|
|
118
|
+
color: {
|
|
119
|
+
default: colorVars['--color-text-secondary'],
|
|
120
|
+
':hover': {
|
|
121
|
+
'@media (hover: hover)': `color-mix(in srgb, ${colorVars['--color-text-secondary']}, ${colorVars['--color-tint-hover']} 15%)`,
|
|
122
|
+
},
|
|
123
|
+
},
|
|
113
124
|
},
|
|
114
125
|
disabled: {
|
|
115
126
|
color: colorVars['--color-text-disabled'],
|
|
@@ -118,7 +129,12 @@ const linkColorStyles = stylex.create({
|
|
|
118
129
|
color: colorVars['--color-text-secondary'],
|
|
119
130
|
},
|
|
120
131
|
accent: {
|
|
121
|
-
color:
|
|
132
|
+
color: {
|
|
133
|
+
default: colorVars['--color-text-accent'],
|
|
134
|
+
':hover': {
|
|
135
|
+
'@media (hover: hover)': `color-mix(in srgb, ${colorVars['--color-text-accent']}, ${colorVars['--color-tint-hover']} 15%)`,
|
|
136
|
+
},
|
|
137
|
+
},
|
|
122
138
|
},
|
|
123
139
|
inherit: {
|
|
124
140
|
color: 'inherit',
|
|
@@ -167,6 +183,12 @@ export interface LinkProps extends BaseProps<
|
|
|
167
183
|
* @default false
|
|
168
184
|
*/
|
|
169
185
|
isExternalLink?: boolean;
|
|
186
|
+
/**
|
|
187
|
+
* Screen-reader text appended to an external link to announce that it opens
|
|
188
|
+
* in a new tab (the visual icon is decorative). Override for localization.
|
|
189
|
+
* @default '(opens in new tab)'
|
|
190
|
+
*/
|
|
191
|
+
newTabLabel?: string;
|
|
170
192
|
/**
|
|
171
193
|
* Where to open the linked document.
|
|
172
194
|
* Overridden to "_blank" when isExternalLink is true.
|
|
@@ -203,6 +225,10 @@ export interface LinkProps extends BaseProps<
|
|
|
203
225
|
isStandalone?: boolean;
|
|
204
226
|
/**
|
|
205
227
|
* Semantic text type for Text. Determines base typography.
|
|
228
|
+
*
|
|
229
|
+
* Use `type="inherit"` for inline links inside an existing `Text` element so
|
|
230
|
+
* the link adopts the surrounding text's size and line-height instead of
|
|
231
|
+
* imposing its own (e.g. a link within a `large` paragraph).
|
|
206
232
|
* @default 'body'
|
|
207
233
|
*/
|
|
208
234
|
type?: TextType;
|
|
@@ -248,6 +274,11 @@ export interface LinkProps extends BaseProps<
|
|
|
248
274
|
* <Link href="/settings" color="secondary">Settings</Link>
|
|
249
275
|
* <Link href="/privacy" hasUnderline>Privacy Policy</Link>
|
|
250
276
|
* <Link label="Close dialog" href="/home"><Icon icon="x" /></Link>
|
|
277
|
+
*
|
|
278
|
+
* // Inline link inside text — inherits the surrounding type/size:
|
|
279
|
+
* <Text type="large">
|
|
280
|
+
* Read our <Link href="/terms" type="inherit">terms</Link> first.
|
|
281
|
+
* </Text>
|
|
251
282
|
* ```
|
|
252
283
|
*/
|
|
253
284
|
export function Link({
|
|
@@ -257,6 +288,7 @@ export function Link({
|
|
|
257
288
|
hasUnderline = false,
|
|
258
289
|
isDisabled = false,
|
|
259
290
|
isExternalLink = false,
|
|
291
|
+
newTabLabel = '(opens in new tab)',
|
|
260
292
|
target: targetFromProps,
|
|
261
293
|
onClick,
|
|
262
294
|
tooltip,
|
|
@@ -300,7 +332,10 @@ export function Link({
|
|
|
300
332
|
{children}
|
|
301
333
|
</Text>
|
|
302
334
|
{isExternalLink && !renderAsButton && (
|
|
303
|
-
|
|
335
|
+
<>
|
|
336
|
+
<Icon icon="externalLink" size="xsm" color="inherit" />
|
|
337
|
+
<VisuallyHidden>{newTabLabel}</VisuallyHidden>
|
|
338
|
+
</>
|
|
304
339
|
)}
|
|
305
340
|
</>
|
|
306
341
|
);
|
|
@@ -189,6 +189,17 @@ describe('Markdown', () => {
|
|
|
189
189
|
expect(document.querySelectorAll('td')).toHaveLength(2);
|
|
190
190
|
});
|
|
191
191
|
|
|
192
|
+
it('makes the table scroll wrapper keyboard-focusable', () => {
|
|
193
|
+
render(<Markdown>{'| A | B |\n| --- | --- |\n| 1 | 2 |'}</Markdown>);
|
|
194
|
+
const table = document.querySelector('table');
|
|
195
|
+
expect(table).toBeInTheDocument();
|
|
196
|
+
// The GFM table's outer overflow wrapper is keyboard-focusable so keyboard
|
|
197
|
+
// users can horizontally scroll a wide table.
|
|
198
|
+
const wrapper = table!.closest('[role="group"][tabindex="0"]');
|
|
199
|
+
expect(wrapper).toBeTruthy();
|
|
200
|
+
expect(wrapper).toHaveAttribute('aria-label', 'Table');
|
|
201
|
+
});
|
|
202
|
+
|
|
192
203
|
it('renders horizontal rules', () => {
|
|
193
204
|
render(<Markdown>{'---'}</Markdown>);
|
|
194
205
|
expect(document.querySelector('hr')).toBeInTheDocument();
|
|
@@ -1399,6 +1399,13 @@ function renderBlock(
|
|
|
1399
1399
|
return (
|
|
1400
1400
|
<div
|
|
1401
1401
|
key={index}
|
|
1402
|
+
// Keyboard-focusable so keyboard users can scroll a horizontally
|
|
1403
|
+
// overflowing GFM table. Uses role="group" (not "region") so
|
|
1404
|
+
// multiple tables don't create duplicate same-named landmarks
|
|
1405
|
+
// (axe: landmark-unique).
|
|
1406
|
+
tabIndex={0}
|
|
1407
|
+
role="group"
|
|
1408
|
+
aria-label="Table"
|
|
1402
1409
|
{...stylex.props(
|
|
1403
1410
|
styles.tableWrapper,
|
|
1404
1411
|
spacing,
|
|
@@ -8,6 +8,10 @@ export const docs = {
|
|
|
8
8
|
displayName: 'Metadata List Item',
|
|
9
9
|
isHiddenFromOverview: true,
|
|
10
10
|
description: 'A single labeled metadata value within an MetadataList.',
|
|
11
|
+
playground: {
|
|
12
|
+
defaults: {label: 'Status', children: 'Active'},
|
|
13
|
+
wrapper: {component: 'MetadataList'},
|
|
14
|
+
},
|
|
11
15
|
props: [
|
|
12
16
|
{
|
|
13
17
|
name: 'children',
|
|
@@ -46,14 +46,7 @@ export const docs = {
|
|
|
46
46
|
type: 'boolean',
|
|
47
47
|
description: 'Whether the menu trigger is disabled.',
|
|
48
48
|
default: 'false',
|
|
49
|
-
},
|
|
50
|
-
{
|
|
51
|
-
name: 'hasAutoFocus',
|
|
52
|
-
type: 'boolean',
|
|
53
|
-
description: 'Whether to auto-focus the first menu item when the menu opens. Set to false for inline showcases or documentation previews.',
|
|
54
|
-
default: 'true',
|
|
55
|
-
},
|
|
56
|
-
{
|
|
49
|
+
}, {
|
|
57
50
|
name: 'xstyle',
|
|
58
51
|
type: 'StyleXStyles',
|
|
59
52
|
description:
|
|
@@ -126,14 +119,7 @@ export const docsZh = {
|
|
|
126
119
|
type: 'boolean',
|
|
127
120
|
description: '菜单触发器是否禁用。',
|
|
128
121
|
default: 'false',
|
|
129
|
-
},
|
|
130
|
-
{
|
|
131
|
-
name: 'hasAutoFocus',
|
|
132
|
-
type: 'boolean',
|
|
133
|
-
description: '菜单打开时是否自动聚焦第一个菜单项。内联展示或文档预览设为 false。',
|
|
134
|
-
default: 'true',
|
|
135
|
-
},
|
|
136
|
-
{
|
|
122
|
+
}, {
|
|
137
123
|
name: 'xstyle',
|
|
138
124
|
type: 'StyleXStyles',
|
|
139
125
|
description:
|
|
@@ -176,7 +162,6 @@ export const docsDense = {
|
|
|
176
162
|
size: 'Trigger button size.',
|
|
177
163
|
icon: 'Override default three-dot icon. Accepts any ReactNode.',
|
|
178
164
|
isDisabled: 'Whether menu trigger disabled.',
|
|
179
|
-
hasAutoFocus: 'Auto-focus first item on open; false for showcases.',
|
|
180
165
|
xstyle:
|
|
181
166
|
'StyleX styles for layout customization (margins, positioning, sizing). Must be stylex.create() value.',
|
|
182
167
|
},
|
|
@@ -81,13 +81,6 @@ export interface MoreMenuProps extends Pick<
|
|
|
81
81
|
*/
|
|
82
82
|
onOpenChange?: (isOpen: boolean) => void;
|
|
83
83
|
|
|
84
|
-
/**
|
|
85
|
-
* Whether to auto-focus the first menu item when the menu opens.
|
|
86
|
-
* Set to `false` for inline showcases or documentation previews.
|
|
87
|
-
* @default true
|
|
88
|
-
*/
|
|
89
|
-
hasAutoFocus?: boolean;
|
|
90
|
-
|
|
91
84
|
/** Test ID for testing frameworks. */
|
|
92
85
|
'data-testid'?: string;
|
|
93
86
|
}
|
|
@@ -116,7 +109,6 @@ export function MoreMenu({
|
|
|
116
109
|
isDisabled = false,
|
|
117
110
|
isMenuOpen,
|
|
118
111
|
onOpenChange,
|
|
119
|
-
hasAutoFocus,
|
|
120
112
|
xstyle,
|
|
121
113
|
className: classNameProp,
|
|
122
114
|
style,
|
|
@@ -149,7 +141,6 @@ export function MoreMenu({
|
|
|
149
141
|
}}
|
|
150
142
|
items={items}
|
|
151
143
|
hasChevron={false}
|
|
152
|
-
hasAutoFocus={hasAutoFocus}
|
|
153
144
|
data-testid={testId}
|
|
154
145
|
/>
|
|
155
146
|
);
|
|
@@ -112,6 +112,12 @@ export const docs = {
|
|
|
112
112
|
type: 'boolean',
|
|
113
113
|
description: 'Disables the selector.',
|
|
114
114
|
},
|
|
115
|
+
{
|
|
116
|
+
name: 'disabledMessage',
|
|
117
|
+
type: 'string',
|
|
118
|
+
description:
|
|
119
|
+
'Explains why the selector is disabled. With isDisabled, shows a tooltip on hover/keyboard focus and keeps the trigger focusable via aria-disabled (activation stays blocked). Use this instead of wrapping a disabled MultiSelector in Tooltip — disabled controls swallow the hover events an external Tooltip needs.',
|
|
120
|
+
},
|
|
115
121
|
{
|
|
116
122
|
name: 'isLabelHidden',
|
|
117
123
|
type: 'boolean',
|
|
@@ -181,6 +187,11 @@ export const docs = {
|
|
|
181
187
|
description:
|
|
182
188
|
'Enable select-all when most users will want all or nearly all options selected.',
|
|
183
189
|
},
|
|
190
|
+
{
|
|
191
|
+
guidance: true,
|
|
192
|
+
description:
|
|
193
|
+
'Use inside InputGroup only when the control needs a short prefix or suffix addon as part of one decorated input surface; prefer count or labels trigger display so the group stays single-line.',
|
|
194
|
+
},
|
|
184
195
|
{
|
|
185
196
|
guidance: false,
|
|
186
197
|
description: 'Use for single-value selection; use Selector instead.',
|
|
@@ -189,6 +200,11 @@ export const docs = {
|
|
|
189
200
|
guidance: false,
|
|
190
201
|
description: 'Show more than ~20 options without enabling search.',
|
|
191
202
|
},
|
|
203
|
+
{
|
|
204
|
+
guidance: false,
|
|
205
|
+
description:
|
|
206
|
+
'Wrap a disabled MultiSelector in Tooltip to explain why it is disabled; disabled triggers swallow the hover events the wrapper needs. Use the disabledMessage prop instead.',
|
|
207
|
+
},
|
|
192
208
|
],
|
|
193
209
|
},
|
|
194
210
|
};
|
|
@@ -217,6 +233,8 @@ export const docsZh = {
|
|
|
217
233
|
hasSearch: '是否显示用于过滤选项的搜索输入。',
|
|
218
234
|
searchPlaceholder: '搜索输入的占位文本。',
|
|
219
235
|
isDisabled: '禁用选择器。',
|
|
236
|
+
disabledMessage:
|
|
237
|
+
'解释选择器被禁用的原因。与 isDisabled 一起使用时,悬停/键盘聚焦时显示工具提示,并通过 aria-disabled 保持触发器可聚焦(仍无法激活)。请使用此属性,而不是用 Tooltip 包裹被禁用的选择器。',
|
|
220
238
|
isLabelHidden: '视觉上隐藏标签同时保持其可访问性。',
|
|
221
239
|
description: '标签下方显示的辅助文本。',
|
|
222
240
|
isOptional: '将字段标记为可选。',
|
|
@@ -261,6 +279,11 @@ export const docsZh = {
|
|
|
261
279
|
guidance: false,
|
|
262
280
|
description: 'Show more than ~20 options without enabling search.',
|
|
263
281
|
},
|
|
282
|
+
{
|
|
283
|
+
guidance: false,
|
|
284
|
+
description:
|
|
285
|
+
'Wrap a disabled MultiSelector in Tooltip to explain why it is disabled; disabled triggers swallow the hover events the wrapper needs. Use the disabledMessage prop instead.',
|
|
286
|
+
},
|
|
264
287
|
],
|
|
265
288
|
},
|
|
266
289
|
};
|
|
@@ -301,6 +324,11 @@ export const docsDense = {
|
|
|
301
324
|
guidance: false,
|
|
302
325
|
description: 'Show more than ~20 options without enabling search.',
|
|
303
326
|
},
|
|
327
|
+
{
|
|
328
|
+
guidance: false,
|
|
329
|
+
description:
|
|
330
|
+
'Wrap a disabled MultiSelector in Tooltip to explain why it is disabled; disabled triggers swallow the hover events the wrapper needs. Use the disabledMessage prop instead.',
|
|
331
|
+
},
|
|
304
332
|
],
|
|
305
333
|
},
|
|
306
334
|
components: [
|
|
@@ -324,6 +352,8 @@ export const docsDense = {
|
|
|
324
352
|
hasSearch: 'show search input',
|
|
325
353
|
searchPlaceholder: 'search placeholder',
|
|
326
354
|
isDisabled: 'disables selector',
|
|
355
|
+
disabledMessage:
|
|
356
|
+
'why disabled; w/ isDisabled shows tooltip on hover/focus, trigger stays focusable via aria-disabled; use instead of Tooltip wrapper',
|
|
327
357
|
isLabelHidden: 'visually hides label',
|
|
328
358
|
description: 'helper text below label',
|
|
329
359
|
isOptional: 'marks optional',
|