@astryxdesign/core 0.1.9 → 0.2.0-canary.136a00f
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 +107 -0
- package/dist/Avatar/Avatar.d.ts +42 -3
- package/dist/Avatar/Avatar.d.ts.map +1 -1
- package/dist/Avatar/Avatar.js +190 -59
- package/dist/Avatar/AvatarStatusDot.d.ts +6 -4
- package/dist/Avatar/AvatarStatusDot.d.ts.map +1 -1
- package/dist/AvatarGroup/AvatarGroup.d.ts +7 -1
- package/dist/AvatarGroup/AvatarGroup.d.ts.map +1 -1
- package/dist/AvatarGroup/AvatarGroup.js +58 -6
- package/dist/AvatarGroup/AvatarGroupOverflow.d.ts +1 -1
- package/dist/AvatarGroup/AvatarGroupOverflow.d.ts.map +1 -1
- package/dist/AvatarGroup/AvatarGroupOverflow.js +7 -2
- package/dist/Banner/Banner.js +2 -2
- package/dist/Breadcrumbs/BreadcrumbItem.d.ts.map +1 -1
- package/dist/Breadcrumbs/BreadcrumbItem.js +11 -4
- package/dist/Breadcrumbs/index.d.ts +1 -0
- package/dist/Breadcrumbs/index.d.ts.map +1 -1
- package/dist/Breadcrumbs/index.js +2 -1
- package/dist/Button/Button.d.ts +1 -1
- package/dist/Button/Button.d.ts.map +1 -1
- package/dist/Button/Button.js +6 -4
- package/dist/Calendar/Calendar.d.ts.map +1 -1
- package/dist/Calendar/Calendar.js +50 -9
- package/dist/Calendar/dayCellUtils.d.ts +4 -4
- package/dist/Calendar/dayCellUtils.js +2 -2
- package/dist/Calendar/styles.d.ts +30 -31
- package/dist/Calendar/styles.d.ts.map +1 -1
- package/dist/Calendar/styles.js +30 -31
- package/dist/Card/Card.js +1 -1
- package/dist/Carousel/Carousel.d.ts.map +1 -1
- package/dist/Carousel/Carousel.js +22 -12
- package/dist/Chat/ChatComposerInput.js +1 -1
- package/dist/Chat/ChatDictationButton.d.ts.map +1 -1
- package/dist/Chat/ChatDictationButton.js +3 -1
- package/dist/Chat/ChatLayout.js +4 -4
- package/dist/Chat/ChatMessageBubble.d.ts.map +1 -1
- package/dist/Chat/ChatMessageBubble.js +8 -8
- package/dist/Chat/ChatToolCalls.d.ts.map +1 -1
- package/dist/Chat/ChatToolCalls.js +10 -3
- package/dist/Chat/useTriggerMenu.js +2 -2
- package/dist/CheckboxInput/CheckboxInput.d.ts.map +1 -1
- package/dist/CheckboxInput/CheckboxInput.js +6 -6
- package/dist/CheckboxList/CheckboxListItem.d.ts.map +1 -1
- package/dist/CheckboxList/CheckboxListItem.js +19 -4
- package/dist/Citation/Citation.d.ts +22 -1
- package/dist/Citation/Citation.d.ts.map +1 -1
- package/dist/Citation/Citation.js +20 -6
- package/dist/CodeBlock/CodeBlock.d.ts.map +1 -1
- package/dist/CodeBlock/CodeBlock.js +16 -10
- package/dist/Collapsible/Collapsible.d.ts.map +1 -1
- package/dist/Collapsible/Collapsible.js +3 -1
- package/dist/CommandPalette/CommandPalette.d.ts +1 -1
- package/dist/CommandPalette/CommandPalette.d.ts.map +1 -1
- package/dist/CommandPalette/CommandPalette.js +42 -3
- package/dist/CommandPalette/CommandPaletteItem.js +1 -1
- package/dist/ContextMenu/ContextMenu.d.ts.map +1 -1
- package/dist/ContextMenu/ContextMenu.js +23 -5
- package/dist/ContextMenu/index.d.ts +1 -0
- package/dist/ContextMenu/index.d.ts.map +1 -1
- package/dist/ContextMenu/index.js +3 -1
- package/dist/DateInput/DateInput.d.ts +10 -2
- package/dist/DateInput/DateInput.d.ts.map +1 -1
- package/dist/DateInput/DateInput.js +33 -19
- package/dist/DateRangeInput/DateRangeInput.d.ts +10 -2
- package/dist/DateRangeInput/DateRangeInput.d.ts.map +1 -1
- package/dist/DateRangeInput/DateRangeInput.js +23 -20
- package/dist/DateTimeInput/DateTimeInput.d.ts.map +1 -1
- package/dist/DateTimeInput/DateTimeInput.js +23 -18
- package/dist/Divider/Divider.d.ts +2 -2
- package/dist/Divider/Divider.d.ts.map +1 -1
- package/dist/Divider/Divider.js +13 -0
- package/dist/DropdownMenu/DropdownMenu.d.ts +6 -0
- package/dist/DropdownMenu/DropdownMenu.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenu.js +22 -5
- package/dist/DropdownMenu/DropdownMenuCheckboxItem.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenuCheckboxItem.js +4 -1
- package/dist/DropdownMenu/DropdownMenuItem.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenuItem.js +5 -2
- package/dist/DropdownMenu/DropdownMenuRadioGroup.d.ts +8 -11
- package/dist/DropdownMenu/DropdownMenuRadioGroup.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenuRadioGroup.js +3 -1
- package/dist/DropdownMenu/DropdownMenuRadioItem.d.ts +1 -1
- package/dist/DropdownMenu/DropdownMenuRadioItem.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenuRadioItem.js +5 -2
- package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts +104 -0
- package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts.map +1 -0
- package/dist/DropdownMenu/DropdownMenuSubMenu.js +427 -0
- package/dist/DropdownMenu/index.d.ts +10 -0
- package/dist/DropdownMenu/index.d.ts.map +1 -1
- package/dist/DropdownMenu/index.js +13 -0
- package/dist/DropdownMenu/menuItemHover.d.ts +23 -0
- package/dist/DropdownMenu/menuItemHover.d.ts.map +1 -0
- package/dist/DropdownMenu/menuItemHover.js +33 -0
- package/dist/DropdownMenu/menuItemRoles.d.ts +8 -0
- package/dist/DropdownMenu/menuItemRoles.d.ts.map +1 -1
- package/dist/DropdownMenu/menuItemRoles.js +10 -1
- package/dist/DropdownMenu/renderDropdownItems.d.ts.map +1 -1
- package/dist/DropdownMenu/renderDropdownItems.js +21 -6
- package/dist/Field/Field.d.ts +3 -1
- package/dist/Field/Field.d.ts.map +1 -1
- package/dist/Field/Field.js +4 -1
- package/dist/Field/FieldLabel.d.ts +2 -1
- package/dist/Field/FieldLabel.d.ts.map +1 -1
- package/dist/Field/FieldLabel.js +9 -5
- package/dist/Field/inputStyles.stylex.d.ts +1 -0
- package/dist/Field/inputStyles.stylex.d.ts.map +1 -1
- package/dist/Field/inputStyles.stylex.js +1 -0
- package/dist/FieldStatus/FieldStatus.d.ts +10 -0
- package/dist/FieldStatus/FieldStatus.d.ts.map +1 -1
- package/dist/FieldStatus/FieldStatus.js +39 -3
- package/dist/FileInput/FileInput.d.ts +10 -2
- package/dist/FileInput/FileInput.d.ts.map +1 -1
- package/dist/FileInput/FileInput.js +93 -65
- package/dist/HoverCard/useHoverCard.d.ts.map +1 -1
- package/dist/HoverCard/useHoverCard.js +10 -4
- package/dist/Icon/Icon.d.ts +15 -1
- package/dist/Icon/Icon.d.ts.map +1 -1
- package/dist/Icon/Icon.js +19 -3
- package/dist/Item/Item.d.ts +16 -3
- package/dist/Item/Item.d.ts.map +1 -1
- package/dist/Item/Item.js +31 -6
- package/dist/Layer/layerAnimations.stylex.d.ts.map +1 -1
- package/dist/Layer/layerAnimations.stylex.js +10 -2
- package/dist/Lightbox/Lightbox.d.ts.map +1 -1
- package/dist/Lightbox/Lightbox.js +19 -13
- package/dist/List/List.d.ts.map +1 -1
- package/dist/List/List.js +6 -3
- package/dist/List/ListItem.d.ts +11 -1
- package/dist/List/ListItem.d.ts.map +1 -1
- package/dist/List/ListItem.js +2 -0
- package/dist/Markdown/Markdown.d.ts.map +1 -1
- package/dist/Markdown/Markdown.js +7 -0
- package/dist/MetadataList/MetadataList.d.ts +1 -1
- package/dist/MetadataList/MetadataList.d.ts.map +1 -1
- package/dist/MetadataList/MetadataList.js +4 -2
- package/dist/MultiSelector/MultiSelector.d.ts +9 -1
- package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
- package/dist/MultiSelector/MultiSelector.js +80 -42
- package/dist/NavMenu/NavHeadingMenuItem.js +1 -1
- package/dist/NumberInput/NumberInput.d.ts +10 -2
- package/dist/NumberInput/NumberInput.d.ts.map +1 -1
- package/dist/NumberInput/NumberInput.js +22 -17
- package/dist/Outline/Outline.js +2 -2
- package/dist/Pagination/Pagination.d.ts.map +1 -1
- package/dist/Pagination/Pagination.js +11 -3
- package/dist/PowerSearch/PowerSearch.d.ts +9 -2
- package/dist/PowerSearch/PowerSearch.d.ts.map +1 -1
- package/dist/PowerSearch/PowerSearch.js +2 -0
- package/dist/ProgressBar/ProgressBar.d.ts.map +1 -1
- package/dist/ProgressBar/ProgressBar.js +6 -1
- package/dist/RadioList/RadioList.d.ts +2 -2
- package/dist/RadioList/RadioListItem.d.ts.map +1 -1
- package/dist/RadioList/RadioListItem.js +5 -5
- package/dist/Resizable/ResizeHandle.d.ts.map +1 -1
- package/dist/Resizable/ResizeHandle.js +49 -19
- package/dist/SegmentedControl/SegmentedControlItem.d.ts +1 -1
- package/dist/SegmentedControl/SegmentedControlItem.d.ts.map +1 -1
- package/dist/SegmentedControl/SegmentedControlItem.js +5 -3
- package/dist/Selector/Selector.d.ts +8 -0
- package/dist/Selector/Selector.d.ts.map +1 -1
- package/dist/Selector/Selector.js +66 -17
- package/dist/SideNav/SideNav.d.ts.map +1 -1
- package/dist/SideNav/SideNav.js +5 -5
- package/dist/SideNav/SideNavCollapseButton.d.ts.map +1 -1
- package/dist/SideNav/SideNavCollapseButton.js +13 -10
- package/dist/SideNav/SideNavItem.d.ts +1 -1
- package/dist/SideNav/SideNavItem.d.ts.map +1 -1
- package/dist/SideNav/SideNavItem.js +12 -10
- package/dist/Skeleton/Skeleton.d.ts.map +1 -1
- package/dist/Skeleton/Skeleton.js +2 -2
- package/dist/Slider/Slider.d.ts.map +1 -1
- package/dist/Slider/Slider.js +87 -34
- package/dist/Spinner/Spinner.d.ts +3 -2
- package/dist/Spinner/Spinner.d.ts.map +1 -1
- package/dist/Spinner/Spinner.js +11 -2
- package/dist/Switch/Switch.d.ts +8 -1
- package/dist/Switch/Switch.d.ts.map +1 -1
- package/dist/Switch/Switch.js +171 -91
- package/dist/TabList/Tab.js +2 -2
- package/dist/TabList/TabList.d.ts +2 -11
- package/dist/TabList/TabList.d.ts.map +1 -1
- package/dist/TabList/TabList.js +5 -9
- package/dist/TabList/TabListContext.d.ts +0 -5
- package/dist/TabList/TabListContext.d.ts.map +1 -1
- package/dist/TabList/TabListContext.js +0 -5
- package/dist/TabList/TabMenu.js +1 -1
- package/dist/Table/BaseTable.d.ts.map +1 -1
- package/dist/Table/BaseTable.js +30 -4
- package/dist/Table/TableCell.js +3 -3
- package/dist/Table/TableHeaderCell.js +3 -3
- package/dist/Table/plugins/groupedRows/useTableGroupedRows.d.ts.map +1 -1
- package/dist/Table/plugins/groupedRows/useTableGroupedRows.js +15 -11
- package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts.map +1 -1
- package/dist/Table/plugins/rowExpansion/useTableRowExpansion.js +37 -27
- package/dist/Table/plugins/selection/useTableSelection.d.ts.map +1 -1
- package/dist/Table/plugins/selection/useTableSelection.js +3 -0
- package/dist/Table/plugins/stickyColumns/useTableStickyColumns.d.ts.map +1 -1
- package/dist/Table/plugins/stickyColumns/useTableStickyColumns.js +15 -7
- package/dist/Table/plugins/tree/useTableTreeData.d.ts.map +1 -1
- package/dist/Table/plugins/tree/useTableTreeData.js +29 -23
- package/dist/Table/types.d.ts +32 -0
- package/dist/Table/types.d.ts.map +1 -1
- package/dist/TextArea/TextArea.d.ts +10 -1
- package/dist/TextArea/TextArea.d.ts.map +1 -1
- package/dist/TextArea/TextArea.js +18 -19
- package/dist/TextInput/TextInput.d.ts +10 -2
- package/dist/TextInput/TextInput.d.ts.map +1 -1
- package/dist/TextInput/TextInput.js +20 -17
- package/dist/Thumbnail/Thumbnail.js +2 -2
- package/dist/TimeInput/TimeInput.d.ts +10 -2
- package/dist/TimeInput/TimeInput.d.ts.map +1 -1
- package/dist/TimeInput/TimeInput.js +17 -17
- package/dist/Timestamp/Timestamp.d.ts +31 -3
- package/dist/Timestamp/Timestamp.d.ts.map +1 -1
- package/dist/Timestamp/Timestamp.js +47 -76
- package/dist/Timestamp/formatInstant.d.ts +41 -0
- package/dist/Timestamp/formatInstant.d.ts.map +1 -0
- package/dist/Timestamp/formatInstant.js +177 -0
- package/dist/Timestamp/index.d.ts +1 -0
- package/dist/Timestamp/index.d.ts.map +1 -1
- package/dist/Timestamp/tooltipEntries.d.ts +56 -0
- package/dist/Timestamp/tooltipEntries.d.ts.map +1 -0
- package/dist/Timestamp/tooltipEntries.js +163 -0
- package/dist/Toast/ToastViewport.d.ts.map +1 -1
- package/dist/Toast/ToastViewport.js +61 -9
- package/dist/ToggleButton/ToggleButton.d.ts.map +1 -1
- package/dist/ToggleButton/ToggleButton.js +3 -1
- package/dist/Token/Token.d.ts +34 -4
- package/dist/Token/Token.d.ts.map +1 -1
- package/dist/Token/Token.js +85 -45
- package/dist/Token/TokenLink.d.ts +62 -0
- package/dist/Token/TokenLink.d.ts.map +1 -0
- package/dist/Token/TokenLink.js +76 -0
- package/dist/Token/index.d.ts +1 -1
- package/dist/Token/index.d.ts.map +1 -1
- package/dist/Tokenizer/Tokenizer.d.ts +9 -2
- package/dist/Tokenizer/Tokenizer.d.ts.map +1 -1
- package/dist/Tokenizer/Tokenizer.js +4 -2
- package/dist/Tooltip/useTooltip.d.ts.map +1 -1
- package/dist/Tooltip/useTooltip.js +17 -1
- package/dist/TopNav/TopNavItem.d.ts +3 -1
- package/dist/TopNav/TopNavItem.d.ts.map +1 -1
- package/dist/TopNav/TopNavItem.js +30 -3
- package/dist/TreeList/TreeList.d.ts.map +1 -1
- package/dist/TreeList/TreeList.js +1 -0
- package/dist/TreeList/TreeListBranches.d.ts.map +1 -1
- package/dist/TreeList/TreeListBranches.js +8 -6
- package/dist/TreeList/TreeListItem.d.ts.map +1 -1
- package/dist/TreeList/TreeListItem.js +32 -14
- package/dist/Typeahead/BaseTypeahead.d.ts +9 -0
- package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
- package/dist/Typeahead/BaseTypeahead.js +22 -11
- package/dist/Typeahead/Typeahead.d.ts +9 -2
- package/dist/Typeahead/Typeahead.d.ts.map +1 -1
- package/dist/Typeahead/Typeahead.js +11 -2
- package/dist/Typeahead/TypeaheadItem.d.ts +1 -1
- package/dist/Typeahead/TypeaheadItem.d.ts.map +1 -1
- package/dist/Typeahead/TypeaheadItem.js +20 -10
- package/dist/astryx.css +70 -30
- package/dist/astryx.umd.js +51 -51
- package/dist/astryx.umd.js.map +4 -4
- 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/isRtlElement.d.ts +18 -0
- package/dist/hooks/isRtlElement.d.ts.map +1 -0
- package/dist/hooks/isRtlElement.js +27 -0
- package/dist/hooks/useAnnounce.d.ts +3 -0
- package/dist/hooks/useAnnounce.d.ts.map +1 -1
- package/dist/hooks/useAnnounce.js +39 -1
- package/dist/hooks/useFocusTrap.d.ts.map +1 -1
- package/dist/hooks/useFocusTrap.js +52 -11
- package/dist/hooks/useGridFocus.d.ts +6 -1
- package/dist/hooks/useGridFocus.d.ts.map +1 -1
- package/dist/hooks/useGridFocus.js +12 -9
- package/dist/hooks/useHotkeys.d.ts +9 -0
- package/dist/hooks/useHotkeys.d.ts.map +1 -1
- package/dist/hooks/useHotkeys.js +9 -0
- package/dist/hooks/useInputStatusIcon.d.ts +38 -0
- package/dist/hooks/useInputStatusIcon.d.ts.map +1 -0
- package/dist/hooks/useInputStatusIcon.js +158 -0
- package/dist/hooks/useKeyboardHint.d.ts +1 -1
- package/dist/hooks/useKeyboardHint.d.ts.map +1 -1
- package/dist/hooks/useKeyboardHint.js +4 -2
- package/dist/hooks/useListFocus.d.ts +39 -1
- package/dist/hooks/useListFocus.d.ts.map +1 -1
- package/dist/hooks/useListFocus.js +54 -9
- package/dist/i18n/InternationalizationContext.d.ts +1 -0
- package/dist/i18n/InternationalizationContext.d.ts.map +1 -1
- package/dist/i18n/InternationalizationContext.js +3 -0
- package/dist/i18n/InternationalizationProvider.d.ts +8 -1
- package/dist/i18n/InternationalizationProvider.d.ts.map +1 -1
- package/dist/i18n/InternationalizationProvider.js +5 -1
- package/dist/i18n/getLocaleDirection.d.ts +18 -0
- package/dist/i18n/getLocaleDirection.d.ts.map +1 -0
- package/dist/i18n/getLocaleDirection.js +29 -0
- package/dist/i18n/index.d.ts +6 -0
- package/dist/i18n/index.d.ts.map +1 -1
- package/dist/i18n/index.js +7 -1
- package/dist/i18n/useDirection.d.ts +2 -0
- package/dist/i18n/useDirection.d.ts.map +1 -0
- package/dist/i18n/useDirection.js +27 -0
- package/dist/theme/derivedVarRegistry.d.ts.map +1 -1
- package/dist/theme/derivedVarRegistry.js +13 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +2 -1
- package/dist/utils/plainDate.d.ts +17 -0
- package/dist/utils/plainDate.d.ts.map +1 -1
- package/dist/utils/plainDate.js +23 -4
- package/dist/utils/rtlStyles.d.ts +24 -0
- package/dist/utils/rtlStyles.d.ts.map +1 -0
- package/dist/utils/rtlStyles.js +27 -0
- package/locales/en.json +112 -0
- package/locales/pseudo.json +84 -0
- package/package.json +6 -1
- package/src/Avatar/Avatar.doc.mjs +50 -3
- package/src/Avatar/Avatar.test.tsx +218 -0
- package/src/Avatar/Avatar.tsx +285 -79
- package/src/Avatar/AvatarStatusDot.doc.mjs +4 -4
- package/src/Avatar/AvatarStatusDot.tsx +6 -4
- package/src/AvatarGroup/AvatarGroup.doc.mjs +2 -0
- package/src/AvatarGroup/AvatarGroup.test.tsx +162 -2
- package/src/AvatarGroup/AvatarGroup.tsx +58 -3
- package/src/AvatarGroup/AvatarGroupOverflow.tsx +5 -2
- package/src/Banner/Banner.tsx +6 -6
- package/src/Breadcrumbs/BreadcrumbItem.tsx +10 -10
- package/src/Breadcrumbs/Breadcrumbs.test.tsx +52 -1
- package/src/Breadcrumbs/index.ts +4 -0
- package/src/Button/Button.doc.mjs +0 -4
- package/src/Button/Button.test.tsx +16 -0
- package/src/Button/Button.tsx +6 -4
- package/src/Calendar/Calendar.test.tsx +170 -20
- package/src/Calendar/Calendar.tsx +73 -16
- package/src/Calendar/dayCellUtils.test.ts +18 -18
- package/src/Calendar/dayCellUtils.ts +2 -2
- package/src/Calendar/styles.ts +33 -39
- package/src/Card/Card.tsx +1 -1
- package/src/Carousel/Carousel.tsx +25 -6
- package/src/Chat/ChatComposer.doc.mjs +2 -2
- package/src/Chat/ChatComposerInput.doc.mjs +1 -1
- package/src/Chat/ChatComposerInput.tsx +2 -2
- package/src/Chat/ChatDictationButton.tsx +7 -1
- package/src/Chat/ChatLayout.tsx +4 -4
- package/src/Chat/ChatMessageBubble.tsx +15 -10
- package/src/Chat/ChatSystemMessage.test.tsx +5 -0
- package/src/Chat/ChatToolCalls.tsx +9 -2
- package/src/Chat/useTriggerMenu.tsx +1 -1
- package/src/CheckboxInput/CheckboxInput.doc.mjs +6 -0
- package/src/CheckboxInput/CheckboxInput.test.tsx +23 -0
- package/src/CheckboxInput/CheckboxInput.tsx +21 -6
- package/src/CheckboxList/CheckboxList.doc.mjs +6 -0
- package/src/CheckboxList/CheckboxList.test.tsx +94 -3
- package/src/CheckboxList/CheckboxListItem.tsx +17 -10
- package/src/Citation/Citation.doc.mjs +4 -3
- package/src/Citation/Citation.test.tsx +97 -0
- package/src/Citation/Citation.tsx +43 -11
- package/src/CodeBlock/CodeBlock.test.tsx +17 -0
- package/src/CodeBlock/CodeBlock.tsx +38 -11
- package/src/Collapsible/Collapsible.doc.mjs +1 -0
- package/src/Collapsible/Collapsible.test.tsx +7 -0
- package/src/Collapsible/Collapsible.tsx +16 -6
- package/src/CommandPalette/CommandPalette.test.tsx +95 -1
- package/src/CommandPalette/CommandPalette.tsx +41 -2
- package/src/CommandPalette/CommandPaletteItem.tsx +1 -1
- package/src/ContextMenu/ContextMenu.test.tsx +59 -2
- package/src/ContextMenu/ContextMenu.tsx +22 -11
- package/src/ContextMenu/index.ts +5 -0
- package/src/DateInput/DateInput.doc.mjs +25 -0
- package/src/DateInput/DateInput.test.tsx +230 -0
- package/src/DateInput/DateInput.tsx +51 -29
- package/src/DateRangeInput/DateRangeInput.doc.mjs +16 -0
- package/src/DateRangeInput/DateRangeInput.test.tsx +140 -0
- package/src/DateRangeInput/DateRangeInput.tsx +42 -30
- package/src/DateTimeInput/DateTimeInput.doc.mjs +22 -1
- package/src/DateTimeInput/DateTimeInput.test.tsx +112 -0
- package/src/DateTimeInput/DateTimeInput.tsx +44 -39
- package/src/Divider/Divider.test.tsx +32 -8
- package/src/Divider/Divider.tsx +14 -1
- package/src/DropdownMenu/DropdownMenu.test.tsx +60 -0
- package/src/DropdownMenu/DropdownMenu.tsx +31 -12
- package/src/DropdownMenu/DropdownMenuCheckboxItem.tsx +8 -2
- package/src/DropdownMenu/DropdownMenuItem.tsx +9 -3
- package/src/DropdownMenu/DropdownMenuRadioGroup.doc.mjs +4 -12
- package/src/DropdownMenu/DropdownMenuRadioGroup.tsx +9 -10
- package/src/DropdownMenu/DropdownMenuRadioItem.tsx +9 -3
- package/src/DropdownMenu/DropdownMenuSelectable.test.tsx +20 -2
- package/src/DropdownMenu/DropdownMenuSubMenu.doc.mjs +88 -0
- package/src/DropdownMenu/DropdownMenuSubMenu.test.tsx +635 -0
- package/src/DropdownMenu/DropdownMenuSubMenu.tsx +553 -0
- package/src/DropdownMenu/index.ts +16 -0
- package/src/DropdownMenu/menuItemHover.ts +39 -0
- package/src/DropdownMenu/menuItemRoles.ts +9 -0
- package/src/DropdownMenu/renderDropdownItems.tsx +29 -15
- package/src/Field/Field.tsx +14 -9
- package/src/Field/FieldLabel.test.tsx +25 -0
- package/src/Field/FieldLabel.tsx +12 -3
- package/src/Field/inputStyles.stylex.ts +2 -0
- package/src/FieldStatus/FieldStatus.test.tsx +72 -0
- package/src/FieldStatus/FieldStatus.tsx +48 -2
- package/src/FileInput/FileInput.doc.mjs +23 -2
- package/src/FileInput/FileInput.test.tsx +104 -13
- package/src/FileInput/FileInput.tsx +106 -79
- package/src/HoverCard/useHoverCard.tsx +15 -3
- package/src/Icon/Icon.doc.mjs +13 -0
- package/src/Icon/Icon.test.tsx +89 -0
- package/src/Icon/Icon.tsx +51 -3
- package/src/Item/Item.doc.mjs +5 -0
- package/src/Item/Item.test.tsx +88 -0
- package/src/Item/Item.tsx +57 -11
- package/src/Layer/layerAnimations.stylex.ts +23 -0
- package/src/Lightbox/Lightbox.tsx +15 -7
- package/src/List/List.test.tsx +17 -29
- package/src/List/List.tsx +6 -1
- package/src/List/ListItem.doc.mjs +12 -0
- package/src/List/ListItem.tsx +13 -0
- package/src/Markdown/Markdown.test.tsx +21 -0
- package/src/Markdown/Markdown.tsx +4 -0
- package/src/MetadataList/MetadataList.test.tsx +24 -0
- package/src/MetadataList/MetadataList.tsx +6 -2
- package/src/MultiSelector/MultiSelector.doc.mjs +20 -0
- package/src/MultiSelector/MultiSelector.test.tsx +402 -0
- package/src/MultiSelector/MultiSelector.tsx +120 -59
- package/src/NavMenu/NavHeadingMenuItem.tsx +1 -1
- package/src/NumberInput/NumberInput.doc.mjs +21 -0
- package/src/NumberInput/NumberInput.test.tsx +71 -0
- package/src/NumberInput/NumberInput.tsx +35 -26
- package/src/Outline/Outline.test.tsx +12 -12
- package/src/Outline/Outline.tsx +2 -2
- package/src/Pagination/Pagination.tsx +11 -3
- package/src/PowerSearch/PowerSearch.doc.mjs +15 -0
- package/src/PowerSearch/PowerSearch.test.tsx +23 -0
- package/src/PowerSearch/PowerSearch.tsx +10 -1
- package/src/ProgressBar/ProgressBar.test.tsx +34 -0
- package/src/ProgressBar/ProgressBar.tsx +16 -1
- package/src/RadioList/RadioList.doc.mjs +6 -0
- package/src/RadioList/RadioList.test.tsx +26 -4
- package/src/RadioList/RadioList.tsx +2 -2
- package/src/RadioList/RadioListItem.tsx +12 -5
- package/src/Resizable/ResizeHandle.test.tsx +94 -0
- package/src/Resizable/ResizeHandle.tsx +70 -20
- package/src/SegmentedControl/SegmentedControl.test.tsx +28 -0
- package/src/SegmentedControl/SegmentedControlItem.tsx +22 -2
- package/src/Selector/Selector.doc.mjs +15 -0
- package/src/Selector/Selector.test.tsx +370 -0
- package/src/Selector/Selector.tsx +88 -20
- package/src/SideNav/SideNav.tsx +1 -8
- package/src/SideNav/SideNavCollapseButton.tsx +9 -7
- package/src/SideNav/SideNavItem.tsx +5 -3
- package/src/Skeleton/Skeleton.test.tsx +16 -0
- package/src/Skeleton/Skeleton.tsx +13 -1
- package/src/Slider/Slider.doc.mjs +6 -0
- package/src/Slider/Slider.test.tsx +240 -12
- package/src/Slider/Slider.tsx +96 -23
- package/src/Spinner/Spinner.test.tsx +10 -8
- package/src/Spinner/Spinner.tsx +15 -5
- package/src/Switch/Switch.doc.mjs +142 -42
- package/src/Switch/Switch.test.tsx +111 -0
- package/src/Switch/Switch.tsx +149 -32
- package/src/TabList/Tab.tsx +2 -2
- package/src/TabList/TabList.doc.mjs +0 -6
- package/src/TabList/TabList.test.tsx +3 -15
- package/src/TabList/TabList.tsx +6 -17
- package/src/TabList/TabListContext.ts +0 -6
- package/src/TabList/TabMenu.tsx +2 -2
- package/src/Table/BaseTable.tsx +34 -2
- package/src/Table/Table.doc.mjs +11 -0
- package/src/Table/Table.test.tsx +85 -0
- package/src/Table/TableCell.tsx +3 -3
- package/src/Table/TableHeaderCell.tsx +3 -3
- package/src/Table/plugins/groupedRows/useTableGroupedRows.tsx +9 -6
- package/src/Table/plugins/rowExpansion/useTableRowExpansion.test.tsx +19 -0
- package/src/Table/plugins/rowExpansion/useTableRowExpansion.tsx +27 -18
- package/src/Table/plugins/selection/useTableSelection.test.tsx +61 -3
- package/src/Table/plugins/selection/useTableSelection.tsx +3 -0
- package/src/Table/plugins/stickyColumns/useTableStickyColumns.tsx +38 -9
- package/src/Table/plugins/tree/useTableTreeData.tsx +17 -13
- package/src/Table/types.ts +33 -0
- package/src/Table/useTableRowStatus.doc.mjs +1 -1
- package/src/TextArea/TextArea.doc.mjs +21 -0
- package/src/TextArea/TextArea.test.tsx +23 -0
- package/src/TextArea/TextArea.tsx +27 -26
- package/src/TextInput/TextInput.doc.mjs +21 -0
- package/src/TextInput/TextInput.test.tsx +150 -0
- package/src/TextInput/TextInput.tsx +28 -25
- package/src/Thumbnail/Thumbnail.doc.mjs +1 -1
- package/src/Thumbnail/Thumbnail.tsx +1 -1
- package/src/TimeInput/TimeInput.doc.mjs +21 -0
- package/src/TimeInput/TimeInput.test.tsx +23 -0
- package/src/TimeInput/TimeInput.tsx +24 -25
- package/src/Timestamp/Timestamp.doc.mjs +32 -6
- package/src/Timestamp/Timestamp.test.tsx +371 -0
- package/src/Timestamp/Timestamp.tsx +96 -93
- package/src/Timestamp/formatInstant.ts +218 -0
- package/src/Timestamp/index.ts +4 -0
- package/src/Timestamp/tooltipEntries.test.ts +552 -0
- package/src/Timestamp/tooltipEntries.ts +210 -0
- package/src/Toast/ToastViewport.test.tsx +218 -8
- package/src/Toast/ToastViewport.tsx +71 -12
- package/src/ToggleButton/ToggleButton.test.tsx +24 -0
- package/src/ToggleButton/ToggleButton.tsx +19 -1
- package/src/Token/Token.test.tsx +166 -15
- package/src/Token/Token.tsx +104 -47
- package/src/Token/TokenLink.tsx +107 -0
- package/src/Token/index.ts +1 -1
- package/src/Tokenizer/Tokenizer.doc.mjs +23 -1
- package/src/Tokenizer/Tokenizer.test.tsx +23 -0
- package/src/Tokenizer/Tokenizer.tsx +14 -2
- package/src/Tooltip/Tooltip.test.tsx +46 -0
- package/src/Tooltip/useTooltip.tsx +20 -0
- package/src/TopNav/TopNav.test.tsx +93 -2
- package/src/TopNav/TopNavItem.doc.mjs +3 -3
- package/src/TopNav/TopNavItem.tsx +35 -6
- package/src/TopNav/TopNavMegaMenuFeaturedCard.doc.mjs +1 -1
- package/src/TreeList/TreeList.doc.mjs +6 -0
- package/src/TreeList/TreeList.test.tsx +50 -10
- package/src/TreeList/TreeList.tsx +5 -0
- package/src/TreeList/TreeListBranches.tsx +8 -6
- package/src/TreeList/TreeListItem.tsx +33 -11
- package/src/Typeahead/BaseTypeahead.tsx +42 -15
- package/src/Typeahead/Typeahead.doc.mjs +13 -0
- package/src/Typeahead/Typeahead.test.tsx +112 -0
- package/src/Typeahead/Typeahead.tsx +17 -1
- package/src/Typeahead/TypeaheadItem.tsx +2 -1
- package/src/__tests__/forcedColors.ts +60 -0
- package/src/__tests__/inputWidthContract.test.tsx +62 -0
- package/src/doc-mjs.d.ts +19 -0
- package/src/hooks/index.ts +6 -0
- package/src/hooks/isRtlElement.ts +27 -0
- package/src/hooks/useAnnounce.test.tsx +75 -2
- package/src/hooks/useAnnounce.ts +47 -1
- package/src/hooks/useFocusTrap.test.tsx +104 -0
- package/src/hooks/useFocusTrap.ts +61 -12
- package/src/hooks/useGridFocus.doc.mjs +3 -3
- package/src/hooks/useGridFocus.test.tsx +41 -0
- package/src/hooks/useGridFocus.ts +21 -10
- package/src/hooks/useHotkeys.ts +9 -0
- package/src/hooks/useInputStatusIcon.test.tsx +162 -0
- package/src/hooks/useInputStatusIcon.tsx +224 -0
- package/src/hooks/useKeyboardHint.test.tsx +22 -0
- package/src/hooks/useKeyboardHint.tsx +6 -2
- package/src/hooks/useListFocus.doc.mjs +25 -3
- package/src/hooks/useListFocus.test.tsx +153 -1
- package/src/hooks/useListFocus.ts +102 -9
- package/src/i18n/InternationalizationContext.ts +4 -0
- package/src/i18n/InternationalizationProvider.tsx +12 -2
- package/src/i18n/__tests__/getLocaleDirection.test.ts +40 -0
- package/src/i18n/__tests__/useDirection.test.tsx +66 -0
- package/src/i18n/getLocaleDirection.ts +29 -0
- package/src/i18n/index.ts +6 -0
- package/src/i18n/useDirection.ts +29 -0
- package/src/reset.css +0 -26
- package/src/reset.test.ts +60 -0
- package/src/theme/derivedVarRegistry.test.ts +1 -0
- package/src/theme/derivedVarRegistry.ts +6 -0
- package/src/theme/generateThemeRules.test.ts +42 -0
- package/src/utils/index.ts +2 -0
- package/src/utils/plainDate.test.ts +24 -6
- package/src/utils/plainDate.ts +18 -4
- package/src/utils/rtlStyles.ts +27 -0
package/dist/Slider/Slider.js
CHANGED
|
@@ -24,6 +24,7 @@ import { Tooltip } from "../Tooltip/Tooltip.js";
|
|
|
24
24
|
import { useTooltip } from "../Tooltip/index.js";
|
|
25
25
|
import { VisuallyHidden } from "../VisuallyHidden/index.js";
|
|
26
26
|
import { mergeProps, mergeRefs } from "../utils/index.js";
|
|
27
|
+
import { isRtlElement } from "../hooks/isRtlElement.js";
|
|
27
28
|
import { themeProps } from "../utils/themeProps.js";
|
|
28
29
|
|
|
29
30
|
// =============================================================================
|
|
@@ -48,12 +49,37 @@ const THUMB_SIZE = 20;
|
|
|
48
49
|
function clamp(val, min, max) {
|
|
49
50
|
return Math.min(Math.max(val, min), max);
|
|
50
51
|
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Number of decimal places a value carries, including values in exponent
|
|
55
|
+
* notation (e.g. 1e-7 → 7). Used to round away binary floating-point error
|
|
56
|
+
* after step arithmetic.
|
|
57
|
+
*/
|
|
58
|
+
function getDecimalPrecision(num) {
|
|
59
|
+
if (Math.abs(num) < 1) {
|
|
60
|
+
const parts = num.toExponential().split('e-');
|
|
61
|
+
if (parts.length === 2) {
|
|
62
|
+
const mantissaDecimals = parts[0].split('.')[1]?.length ?? 0;
|
|
63
|
+
return mantissaDecimals + parseInt(parts[1], 10);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
const decimalPart = String(num).split('.')[1];
|
|
67
|
+
return decimalPart ? decimalPart.length : 0;
|
|
68
|
+
}
|
|
51
69
|
function snapToStep(val, min, step) {
|
|
52
70
|
if (step <= 0) {
|
|
53
71
|
return val;
|
|
54
72
|
}
|
|
55
73
|
const steps = Math.round((val - min) / step);
|
|
56
|
-
|
|
74
|
+
const snapped = min + steps * step;
|
|
75
|
+
// `min + steps * step` accumulates binary floating-point error with
|
|
76
|
+
// fractional steps (0 + 3 * 0.1 → 0.30000000000000004), which leaks into
|
|
77
|
+
// onChange/onChangeEnd payloads, aria-valuenow, and the value tooltip.
|
|
78
|
+
// Snapped values can never carry more decimals than min/step combined, so
|
|
79
|
+
// rounding to that precision removes only the error.
|
|
80
|
+
const precision = Math.min(Math.max(getDecimalPrecision(min), getDecimalPrecision(step)), 20 // toFixed() throws past 20 digits
|
|
81
|
+
);
|
|
82
|
+
return Number(snapped.toFixed(precision));
|
|
57
83
|
}
|
|
58
84
|
function getPercent(val, min, max) {
|
|
59
85
|
if (max === min) {
|
|
@@ -110,6 +136,7 @@ export function Slider({
|
|
|
110
136
|
const minStepsBetweenThumbs = isRange && 'minStepsBetweenThumbs' in props ? props.minStepsBetweenThumbs ?? 0 : 0;
|
|
111
137
|
const isHorizontal = orientation === 'horizontal';
|
|
112
138
|
const id = useId();
|
|
139
|
+
const labelID = useId();
|
|
113
140
|
const descriptionID = useId();
|
|
114
141
|
const statusMessageID = useId();
|
|
115
142
|
const requiredID = useId();
|
|
@@ -169,7 +196,10 @@ export function Slider({
|
|
|
169
196
|
const rect = track.getBoundingClientRect();
|
|
170
197
|
let percent;
|
|
171
198
|
if (isHorizontal) {
|
|
172
|
-
|
|
199
|
+
// In RTL the inline-start (value = min) is the right edge, so measure
|
|
200
|
+
// the pointer fraction from the right instead of the left. Detected
|
|
201
|
+
// from the track's computed direction (lazy, only on pointer move).
|
|
202
|
+
percent = isRtlElement(track) ? (rect.right - clientX) / rect.width : (clientX - rect.left) / rect.width;
|
|
173
203
|
} else {
|
|
174
204
|
// Vertical: bottom = min, top = max
|
|
175
205
|
percent = 1 - (clientY - rect.top) / rect.height;
|
|
@@ -334,12 +364,25 @@ export function Slider({
|
|
|
334
364
|
const val = values[thumbIndex];
|
|
335
365
|
const percent = getPercent(val, min, max);
|
|
336
366
|
const positionStyle = isHorizontal ? {
|
|
337
|
-
|
|
367
|
+
insetInlineStart: `${percent}%`
|
|
338
368
|
} : {
|
|
339
369
|
bottom: `${percent}%`,
|
|
340
370
|
left: '50%'
|
|
341
371
|
};
|
|
342
|
-
|
|
372
|
+
|
|
373
|
+
// In range mode each thumb keeps a short individual name that composes
|
|
374
|
+
// with the group label (announced via the group's aria-labelledby), per
|
|
375
|
+
// the APG multi-thumb slider pattern. In single mode the thumb takes its
|
|
376
|
+
// name from the visible label element via aria-labelledby.
|
|
377
|
+
const thumbLabel = isRange ? thumbIndex === 0 ? 'Minimum value' : 'Maximum value' : undefined;
|
|
378
|
+
|
|
379
|
+
// ARIA bounds must agree with the movement clamping in updateValue: in
|
|
380
|
+
// range mode a thumb can't cross its sibling (minus the
|
|
381
|
+
// minStepsBetweenThumbs gap), and the result is always clamped to
|
|
382
|
+
// [min, max].
|
|
383
|
+
const minGap = minStepsBetweenThumbs * step;
|
|
384
|
+
const ariaValueMin = isRange && thumbIndex === 1 ? clamp(values[0] + minGap, min, max) : min;
|
|
385
|
+
const ariaValueMax = isRange && thumbIndex === 0 ? clamp(values[1] - minGap, min, max) : max;
|
|
343
386
|
|
|
344
387
|
// Suppress the per-thumb value bubble while the disabled-message tooltip is
|
|
345
388
|
// showing, so a disabled slider surfaces the *reason* on hover/focus rather
|
|
@@ -354,14 +397,15 @@ export function Slider({
|
|
|
354
397
|
// guards in the pointer/keyboard handlers.
|
|
355
398
|
,
|
|
356
399
|
tabIndex: isDisabled && !showsDisabledMessage ? -1 : 0,
|
|
357
|
-
"aria-valuemin":
|
|
358
|
-
"aria-valuemax":
|
|
400
|
+
"aria-valuemin": ariaValueMin,
|
|
401
|
+
"aria-valuemax": ariaValueMax,
|
|
359
402
|
"aria-valuenow": val,
|
|
360
403
|
"aria-valuetext": formatValue ? formatValue(val) : undefined,
|
|
361
404
|
"aria-orientation": orientation,
|
|
362
405
|
"aria-disabled": isDisabled || undefined,
|
|
363
406
|
"aria-invalid": status?.type === 'error' ? true : undefined,
|
|
364
407
|
"aria-label": thumbLabel,
|
|
408
|
+
"aria-labelledby": !isRange ? labelID : undefined,
|
|
365
409
|
"aria-describedby": ariaDescribedBy,
|
|
366
410
|
onKeyDown: e => handleKeyDown(thumbIndex, e),
|
|
367
411
|
...mergeProps(themeProps('slider-thumb', {
|
|
@@ -369,52 +413,52 @@ export function Slider({
|
|
|
369
413
|
disabled: isDisabled ? 'disabled' : null
|
|
370
414
|
}), {
|
|
371
415
|
0: {
|
|
372
|
-
className: "x10l6tqk xw4jnvo x1qx5ct2 xjspbzw x1ewilqj x106061f xuedmi6 x12w9bfk xlr8y92 x1a2a7pz x1jm3nie x1vjfegm
|
|
416
|
+
className: "x10l6tqk xw4jnvo x1qx5ct2 xjspbzw x1ewilqj x106061f xuedmi6 x12w9bfk xlr8y92 x1a2a7pz x1jm3nie x1vjfegm xbudbmw x1m9mm8y"
|
|
373
417
|
},
|
|
374
418
|
8: {
|
|
375
|
-
className: "x10l6tqk xw4jnvo x1qx5ct2 xjspbzw x1ewilqj
|
|
419
|
+
className: "x10l6tqk xw4jnvo x1qx5ct2 xjspbzw x1ewilqj x106061f xuedmi6 x12w9bfk xlr8y92 x1a2a7pz x1jm3nie x1vjfegm xwa60dl x11lhmoz xoffwj3"
|
|
376
420
|
},
|
|
377
421
|
4: {
|
|
378
|
-
className: "x10l6tqk xw4jnvo x1qx5ct2 xjspbzw x106061f xuedmi6 x12w9bfk xlr8y92 x1a2a7pz x1jm3nie x1vjfegm
|
|
422
|
+
className: "x10l6tqk xw4jnvo x1qx5ct2 xjspbzw x106061f xuedmi6 x12w9bfk xlr8y92 x1a2a7pz x1jm3nie x1vjfegm xbudbmw x1m9mm8y x1ewilqj xyxu9wt"
|
|
379
423
|
},
|
|
380
424
|
12: {
|
|
381
|
-
className: "x10l6tqk xw4jnvo x1qx5ct2 xjspbzw
|
|
425
|
+
className: "x10l6tqk xw4jnvo x1qx5ct2 xjspbzw x106061f xuedmi6 x12w9bfk xlr8y92 x1a2a7pz x1jm3nie x1vjfegm xwa60dl x11lhmoz xoffwj3 x1ewilqj xyxu9wt"
|
|
382
426
|
},
|
|
383
427
|
2: {
|
|
384
|
-
className: "x10l6tqk xw4jnvo x1qx5ct2 xjspbzw x1ewilqj x106061f xuedmi6 x12w9bfk xlr8y92 x1jm3nie x1vjfegm
|
|
428
|
+
className: "x10l6tqk xw4jnvo x1qx5ct2 xjspbzw x1ewilqj x106061f xuedmi6 x12w9bfk xlr8y92 x1jm3nie x1vjfegm xbudbmw x1m9mm8y x1a2a7pz x17nn4n9 x1wfwxd8 x7s97pk"
|
|
385
429
|
},
|
|
386
430
|
10: {
|
|
387
|
-
className: "x10l6tqk xw4jnvo x1qx5ct2 xjspbzw x1ewilqj
|
|
431
|
+
className: "x10l6tqk xw4jnvo x1qx5ct2 xjspbzw x1ewilqj x106061f xuedmi6 x12w9bfk xlr8y92 x1jm3nie x1vjfegm xwa60dl x11lhmoz xoffwj3 x1a2a7pz x17nn4n9 x1wfwxd8 x7s97pk"
|
|
388
432
|
},
|
|
389
433
|
6: {
|
|
390
|
-
className: "x10l6tqk xw4jnvo x1qx5ct2 xjspbzw x106061f xuedmi6 x12w9bfk xlr8y92 x1jm3nie x1vjfegm
|
|
434
|
+
className: "x10l6tqk xw4jnvo x1qx5ct2 xjspbzw x106061f xuedmi6 x12w9bfk xlr8y92 x1jm3nie x1vjfegm xbudbmw x1m9mm8y x1ewilqj xyxu9wt x1a2a7pz x17nn4n9 x1wfwxd8 x7s97pk"
|
|
391
435
|
},
|
|
392
436
|
14: {
|
|
393
|
-
className: "x10l6tqk xw4jnvo x1qx5ct2 xjspbzw
|
|
437
|
+
className: "x10l6tqk xw4jnvo x1qx5ct2 xjspbzw x106061f xuedmi6 x12w9bfk xlr8y92 x1jm3nie x1vjfegm xwa60dl x11lhmoz xoffwj3 x1ewilqj xyxu9wt x1a2a7pz x17nn4n9 x1wfwxd8 x7s97pk"
|
|
394
438
|
},
|
|
395
439
|
1: {
|
|
396
|
-
className: "x10l6tqk xw4jnvo x1qx5ct2 xjspbzw x106061f xuedmi6 x12w9bfk xlr8y92 x1a2a7pz x1vjfegm
|
|
440
|
+
className: "x10l6tqk xw4jnvo x1qx5ct2 xjspbzw x106061f xuedmi6 x12w9bfk xlr8y92 x1a2a7pz x1vjfegm xbudbmw x1m9mm8y xwmxj5m x1h6gzvc"
|
|
397
441
|
},
|
|
398
442
|
9: {
|
|
399
|
-
className: "x10l6tqk xw4jnvo x1qx5ct2 xjspbzw
|
|
443
|
+
className: "x10l6tqk xw4jnvo x1qx5ct2 xjspbzw x106061f xuedmi6 x12w9bfk xlr8y92 x1a2a7pz x1vjfegm xwa60dl x11lhmoz xoffwj3 xwmxj5m x1h6gzvc"
|
|
400
444
|
},
|
|
401
445
|
5: {
|
|
402
|
-
className: "x10l6tqk xw4jnvo x1qx5ct2 xjspbzw x106061f xuedmi6 x12w9bfk xlr8y92 x1a2a7pz x1vjfegm
|
|
446
|
+
className: "x10l6tqk xw4jnvo x1qx5ct2 xjspbzw x106061f xuedmi6 x12w9bfk xlr8y92 x1a2a7pz x1vjfegm xbudbmw x1m9mm8y xwmxj5m x1h6gzvc"
|
|
403
447
|
},
|
|
404
448
|
13: {
|
|
405
|
-
className: "x10l6tqk xw4jnvo x1qx5ct2 xjspbzw
|
|
449
|
+
className: "x10l6tqk xw4jnvo x1qx5ct2 xjspbzw x106061f xuedmi6 x12w9bfk xlr8y92 x1a2a7pz x1vjfegm xwa60dl x11lhmoz xoffwj3 xwmxj5m x1h6gzvc"
|
|
406
450
|
},
|
|
407
451
|
3: {
|
|
408
|
-
className: "x10l6tqk xw4jnvo x1qx5ct2 xjspbzw x106061f xuedmi6 x12w9bfk xlr8y92 x1vjfegm
|
|
452
|
+
className: "x10l6tqk xw4jnvo x1qx5ct2 xjspbzw x106061f xuedmi6 x12w9bfk xlr8y92 x1vjfegm xbudbmw x1m9mm8y x1a2a7pz x17nn4n9 x1wfwxd8 x7s97pk xwmxj5m x1h6gzvc"
|
|
409
453
|
},
|
|
410
454
|
11: {
|
|
411
|
-
className: "x10l6tqk xw4jnvo x1qx5ct2 xjspbzw
|
|
455
|
+
className: "x10l6tqk xw4jnvo x1qx5ct2 xjspbzw x106061f xuedmi6 x12w9bfk xlr8y92 x1vjfegm xwa60dl x11lhmoz xoffwj3 x1a2a7pz x17nn4n9 x1wfwxd8 x7s97pk xwmxj5m x1h6gzvc"
|
|
412
456
|
},
|
|
413
457
|
7: {
|
|
414
|
-
className: "x10l6tqk xw4jnvo x1qx5ct2 xjspbzw x106061f xuedmi6 x12w9bfk xlr8y92 x1vjfegm
|
|
458
|
+
className: "x10l6tqk xw4jnvo x1qx5ct2 xjspbzw x106061f xuedmi6 x12w9bfk xlr8y92 x1vjfegm xbudbmw x1m9mm8y x1a2a7pz x17nn4n9 x1wfwxd8 x7s97pk xwmxj5m x1h6gzvc"
|
|
415
459
|
},
|
|
416
460
|
15: {
|
|
417
|
-
className: "x10l6tqk xw4jnvo x1qx5ct2 xjspbzw
|
|
461
|
+
className: "x10l6tqk xw4jnvo x1qx5ct2 xjspbzw x106061f xuedmi6 x12w9bfk xlr8y92 x1vjfegm xwa60dl x11lhmoz xoffwj3 x1a2a7pz x17nn4n9 x1wfwxd8 x7s97pk xwmxj5m x1h6gzvc"
|
|
418
462
|
}
|
|
419
463
|
}[!!isHorizontal << 3 | !!!isDisabled << 2 | !!!isDisabled << 1 | !!isDisabled << 0], undefined, positionStyle)
|
|
420
464
|
}, thumbIndex);
|
|
@@ -439,7 +483,7 @@ export function Slider({
|
|
|
439
483
|
const p1 = getPercent(v1, min, max);
|
|
440
484
|
if (isHorizontal) {
|
|
441
485
|
return {
|
|
442
|
-
|
|
486
|
+
insetInlineStart: `${p0}%`,
|
|
443
487
|
width: `${p1 - p0}%`
|
|
444
488
|
};
|
|
445
489
|
}
|
|
@@ -451,7 +495,7 @@ export function Slider({
|
|
|
451
495
|
const p = getPercent(values[0], min, max);
|
|
452
496
|
if (isHorizontal) {
|
|
453
497
|
return {
|
|
454
|
-
|
|
498
|
+
insetInlineStart: '0%',
|
|
455
499
|
width: `${p}%`
|
|
456
500
|
};
|
|
457
501
|
}
|
|
@@ -474,6 +518,15 @@ export function Slider({
|
|
|
474
518
|
isLabelHidden: isLabelHidden,
|
|
475
519
|
description: description,
|
|
476
520
|
inputID: id,
|
|
521
|
+
labelID: labelID
|
|
522
|
+
// The thumb is a div[role="slider"], which a <label htmlFor> can't
|
|
523
|
+
// name (only form-associated elements are labelable). Render the label
|
|
524
|
+
// as a group label and associate it via aria-labelledby instead: the
|
|
525
|
+
// single thumb references it directly, and in range mode the
|
|
526
|
+
// role="group" container references it while each thumb keeps its own
|
|
527
|
+
// "Minimum value"/"Maximum value" name.
|
|
528
|
+
,
|
|
529
|
+
isGroupLabel: true,
|
|
477
530
|
descriptionID: description ? descriptionID : undefined,
|
|
478
531
|
isOptional: isOptional,
|
|
479
532
|
isRequired: isRequired,
|
|
@@ -508,7 +561,7 @@ export function Slider({
|
|
|
508
561
|
ref: mergeRefs(ref, trackRef, disabledMessageTooltip.ref),
|
|
509
562
|
...(isRange ? {
|
|
510
563
|
role: 'group',
|
|
511
|
-
'aria-
|
|
564
|
+
'aria-labelledby': labelID
|
|
512
565
|
} : undefined),
|
|
513
566
|
onPointerDown: handlePointerDown,
|
|
514
567
|
onPointerMove: handlePointerMove,
|
|
@@ -534,17 +587,17 @@ export function Slider({
|
|
|
534
587
|
orientation
|
|
535
588
|
}), {
|
|
536
589
|
0: {
|
|
537
|
-
className: "x10l6tqk xdsb6cv xjspbzw x13vifvy x1ey2m1c x51ohtg
|
|
590
|
+
className: "x10l6tqk xdsb6cv xjspbzw x13vifvy x1ey2m1c x51ohtg xbudbmw xuuh30"
|
|
538
591
|
},
|
|
539
592
|
1: {
|
|
540
|
-
className: "x10l6tqk xdsb6cv xjspbzw
|
|
593
|
+
className: "x10l6tqk xdsb6cv xjspbzw x1o0tod xtijo5x xqu0tyb xwa60dl x1cb1t30"
|
|
541
594
|
}
|
|
542
595
|
}[!!isHorizontal << 0])
|
|
543
596
|
}), /*#__PURE__*/_jsx("div", {
|
|
544
597
|
"aria-hidden": "true",
|
|
545
598
|
...mergeProps({
|
|
546
599
|
0: {
|
|
547
|
-
className: "x10l6tqk x1ewilqj xjspbzw x51ohtg
|
|
600
|
+
className: "x10l6tqk x1ewilqj xjspbzw x51ohtg xbudbmw xuuh30"
|
|
548
601
|
},
|
|
549
602
|
1: {
|
|
550
603
|
className: "x10l6tqk x1ewilqj xjspbzw xqu0tyb xwa60dl x1cb1t30"
|
|
@@ -556,16 +609,16 @@ export function Slider({
|
|
|
556
609
|
"aria-hidden": "true",
|
|
557
610
|
...{
|
|
558
611
|
0: {
|
|
559
|
-
className: "x10l6tqk x13vifvy x1ey2m1c
|
|
612
|
+
className: "x10l6tqk x13vifvy x1ey2m1c xbudbmw"
|
|
560
613
|
},
|
|
561
614
|
1: {
|
|
562
|
-
className: "x10l6tqk
|
|
615
|
+
className: "x10l6tqk x1o0tod xtijo5x xwa60dl"
|
|
563
616
|
}
|
|
564
617
|
}[!!isHorizontal << 0],
|
|
565
618
|
children: marks.map(mark => {
|
|
566
619
|
const percent = getPercent(mark.value, min, max);
|
|
567
620
|
const markPos = isHorizontal ? {
|
|
568
|
-
|
|
621
|
+
insetInlineStart: `${percent}%`
|
|
569
622
|
} : {
|
|
570
623
|
bottom: `${percent}%`
|
|
571
624
|
};
|
|
@@ -578,7 +631,7 @@ export function Slider({
|
|
|
578
631
|
className: "x10l6tqk x7njt3n xjspbzw x36qwtl x1xc55vz x1m9mm8y"
|
|
579
632
|
},
|
|
580
633
|
1: {
|
|
581
|
-
className: "x10l6tqk x7njt3n xjspbzw xfo62xy xdk7pt x11lhmoz"
|
|
634
|
+
className: "x10l6tqk x7njt3n xjspbzw xfo62xy xdk7pt x11lhmoz xoffwj3"
|
|
582
635
|
}
|
|
583
636
|
}[!!isHorizontal << 0], {
|
|
584
637
|
style: markPos
|
|
@@ -588,10 +641,10 @@ export function Slider({
|
|
|
588
641
|
"data-mark-value": mark.value,
|
|
589
642
|
...mergeProps({
|
|
590
643
|
0: {
|
|
591
|
-
className: "x10l6tqk x9ynric x141an7d xv1l7n4 xuxw1ft x131p8rn
|
|
644
|
+
className: "x10l6tqk x9ynric x141an7d xv1l7n4 xuxw1ft x131p8rn x9p6ekw"
|
|
592
645
|
},
|
|
593
646
|
1: {
|
|
594
|
-
className: "x10l6tqk x9ynric x141an7d xv1l7n4 xuxw1ft xuuh30 xuivejd"
|
|
647
|
+
className: "x10l6tqk x9ynric x141an7d xv1l7n4 xuxw1ft xuuh30 x1nyx83j xuivejd"
|
|
595
648
|
}
|
|
596
649
|
}[!!isHorizontal << 0], {
|
|
597
650
|
style: markPos
|
|
@@ -60,8 +60,9 @@ export interface SpinnerProps extends BaseProps<HTMLSpanElement> {
|
|
|
60
60
|
* Visible content displayed below the spinner.
|
|
61
61
|
* Accepts a string or ReactNode for rich content.
|
|
62
62
|
*
|
|
63
|
-
* When `label` is a string,
|
|
64
|
-
* (
|
|
63
|
+
* When `label` is a string, the visible text also provides the accessible
|
|
64
|
+
* name of the status element (via aria-labelledby, avoiding a duplicate
|
|
65
|
+
* announcement) unless `aria-label` is explicitly set.
|
|
65
66
|
*
|
|
66
67
|
* @example
|
|
67
68
|
* ```
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Spinner.d.ts","sourceRoot":"","sources":["../../src/Spinner/Spinner.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"Spinner.d.ts","sourceRoot":"","sources":["../../src/Spinner/Spinner.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAA2B,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAI/D,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAc5C,QAAA,MAAM,KAAK;;;;;;;;;;;;;;;;;CAKV,CAAC;AAiDF,MAAM,MAAM,WAAW,GAAG,MAAM,OAAO,KAAK,CAAC;AAE7C,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;AAExE,MAAM,WAAW,YAAa,SAAQ,SAAS,CAAC,eAAe,CAAC;IAC9D,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACjC;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB;;;;;;;;;OASG;IACH,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,OAAO,CAAC,EACtB,IAAW,EACX,KAAiB,EACjB,KAAK,EACL,MAAM,EACN,SAAS,EACT,KAAK,EACL,YAAY,EAAE,SAAS,EACvB,aAAa,EAAE,MAAM,EACrB,GAAG,EACH,GAAG,SAAS,EACb,EAAE,YAAY,+BAqJd;yBAhKe,OAAO"}
|
package/dist/Spinner/Spinner.js
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* - /apps/storybook/stories/Spinner.stories.tsx
|
|
16
16
|
* - /packages/cli/templates/blocks/components/Spinner/ (showcase blocks)
|
|
17
17
|
*/
|
|
18
|
-
import { useEffect, useRef } from 'react';
|
|
18
|
+
import { useEffect, useId, useRef } from 'react';
|
|
19
19
|
import * as stylex from '@stylexjs/stylex';
|
|
20
20
|
import "../theme/tokens.stylex.js";
|
|
21
21
|
import { durationVars, spacingVars } from "../theme/tokens.stylex.js";
|
|
@@ -183,13 +183,21 @@ export function Spinner({
|
|
|
183
183
|
} = SIZES[size];
|
|
184
184
|
const frameSize = diameter + border * 2;
|
|
185
185
|
const hasLabel = label != null;
|
|
186
|
+
const labelId = useId();
|
|
187
|
+
|
|
188
|
+
// When a visible string label renders (and no explicit aria-label is set),
|
|
189
|
+
// name the status element from the visible Text via aria-labelledby instead
|
|
190
|
+
// of duplicating the same string as aria-label — the duplicate would be
|
|
191
|
+
// announced twice by screen readers (WCAG 4.1.2).
|
|
192
|
+
const namedByVisibleLabel = hasLabel && typeof label === 'string' && ariaLabel == null;
|
|
186
193
|
|
|
187
194
|
// Resolve accessible name: explicit aria-label > string label > "Loading"
|
|
188
195
|
const resolvedAriaLabel = ariaLabel ?? (typeof label === 'string' ? label : undefined) ?? 'Loading';
|
|
189
196
|
const spinner = /*#__PURE__*/_jsx("span", {
|
|
190
197
|
ref: hasLabel ? undefined : ref,
|
|
191
198
|
role: "status",
|
|
192
|
-
"aria-label": resolvedAriaLabel,
|
|
199
|
+
"aria-label": namedByVisibleLabel ? undefined : resolvedAriaLabel,
|
|
200
|
+
"aria-labelledby": namedByVisibleLabel ? labelId : undefined,
|
|
193
201
|
"data-testid": hasLabel ? undefined : testId,
|
|
194
202
|
...(hasLabel ? {} : restProps),
|
|
195
203
|
...mergeProps(hasLabel ? '' : themeProps('spinner', {
|
|
@@ -219,6 +227,7 @@ export function Spinner({
|
|
|
219
227
|
shade
|
|
220
228
|
}), stylex.props(styles.wrapper, xstyle), className, style),
|
|
221
229
|
children: [spinner, typeof label === 'string' ? /*#__PURE__*/_jsx(Text, {
|
|
230
|
+
id: labelId,
|
|
222
231
|
type: "body",
|
|
223
232
|
weight: "bold",
|
|
224
233
|
children: label
|
package/dist/Switch/Switch.d.ts
CHANGED
|
@@ -137,6 +137,13 @@ export interface SwitchProps extends Omit<BaseProps, 'onChange'> {
|
|
|
137
137
|
* When set with a message, displays a colored message box below the switch.
|
|
138
138
|
*/
|
|
139
139
|
status?: InputStatus;
|
|
140
|
+
/**
|
|
141
|
+
* Size variant controlling track and thumb dimensions.
|
|
142
|
+
* - 'sm': 34x20px (matches sm checkbox/radio vertical rhythm)
|
|
143
|
+
* - 'md': 40x24px (default, matches md checkbox/radio vertical rhythm)
|
|
144
|
+
* @default 'md'
|
|
145
|
+
*/
|
|
146
|
+
size?: 'sm' | 'md';
|
|
140
147
|
}
|
|
141
148
|
/**
|
|
142
149
|
* A toggle switch component for boolean values.
|
|
@@ -156,7 +163,7 @@ export interface SwitchProps extends Omit<BaseProps, 'onChange'> {
|
|
|
156
163
|
* />
|
|
157
164
|
* ```
|
|
158
165
|
*/
|
|
159
|
-
export declare function Switch({ label, isLabelHidden, description, onChange, changeAction, isLoading, value, isDisabled, htmlName, disabledMessage, isOptional, isRequired, onFocus, onBlur, labelIcon, labelTooltip, labelPosition, labelSpacing, status, width, xstyle, className, style, ref, ...rest }: SwitchProps): import("react").JSX.Element;
|
|
166
|
+
export declare function Switch({ label, isLabelHidden, description, onChange, changeAction, isLoading, value, isDisabled, htmlName, disabledMessage, isOptional, isRequired, onFocus, onBlur, labelIcon, labelTooltip, labelPosition, labelSpacing, status, size, width, xstyle, className, style, ref, ...rest }: SwitchProps): import("react").JSX.Element;
|
|
160
167
|
export declare namespace Switch {
|
|
161
168
|
var displayName: string;
|
|
162
169
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Switch.d.ts","sourceRoot":"","sources":["../../src/Switch/Switch.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAIL,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAaf,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAKhD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"Switch.d.ts","sourceRoot":"","sources":["../../src/Switch/Switch.tsx"],"names":[],"mappings":"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"}
|