@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
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @file rtlStyles.ts
|
|
5
|
+
* @input None
|
|
6
|
+
* @output Shared StyleX style that horizontally mirrors an element under RTL
|
|
7
|
+
* @position Core utility; applied to directional-icon wrappers in Calendar,
|
|
8
|
+
* Lightbox, and the Table expand/disclosure plugins
|
|
9
|
+
*
|
|
10
|
+
* `mirror` flips its element on the horizontal axis only when an ancestor
|
|
11
|
+
* carries `dir="rtl"`. Using `scaleX(-1)` (not `scale(-1, -1)`) keeps the
|
|
12
|
+
* vertical axis intact, and applying it OUTSIDE any state-driven rotation lets
|
|
13
|
+
* it compose correctly — e.g. a Table disclosure chevron still rotates to point
|
|
14
|
+
* down when expanded under RTL. The `:is([dir="rtl"] *)` selector matches the
|
|
15
|
+
* MobileNav drawer convention; a bare `direction: rtl` alone won't trigger it.
|
|
16
|
+
*
|
|
17
|
+
* SYNC: When modified, update:
|
|
18
|
+
* - /packages/core/src/utils/index.ts
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
import * as stylex from '@stylexjs/stylex';
|
|
22
|
+
export const rtlStyles = {
|
|
23
|
+
mirror: {
|
|
24
|
+
k3aq6I: "xgtlewx",
|
|
25
|
+
$$css: true
|
|
26
|
+
}
|
|
27
|
+
};
|
package/locales/en.json
CHANGED
|
@@ -235,10 +235,22 @@
|
|
|
235
235
|
"defaultMessage": "Mobile navigation",
|
|
236
236
|
"description": "Screen-reader-only accessible name for the mobile-only navigation region on small viewports. \"Mobile\" = phone/tablet (small screen), not \"movable\"."
|
|
237
237
|
},
|
|
238
|
+
"@astryx.avatar.nameWithStatus": {
|
|
239
|
+
"defaultMessage": "{name}, {status}",
|
|
240
|
+
"description": "Screen-reader accessible name for an Avatar showing a status indicator; composes the person's name with the status label, e.g. \"Jane Doe, Online\". {name} = the avatar's name/alt text, {status} = the status dot's label. Adjust separator and order per locale."
|
|
241
|
+
},
|
|
238
242
|
"@astryx.avatarGroup.label": {
|
|
239
243
|
"defaultMessage": "Avatars",
|
|
240
244
|
"description": "Screen-reader-only fallback name for a horizontal cluster of user avatar images. Plural noun; consumers usually override with \"Team members\", \"Attendees\", etc."
|
|
241
245
|
},
|
|
246
|
+
"@astryx.avatarGroup.keyboardHint": {
|
|
247
|
+
"defaultMessage": "Use arrow keys to move between avatars",
|
|
248
|
+
"description": "Screen-reader-only instruction attached (via aria-describedby) to a group of interactive avatars that share a single Tab stop. Tells keyboard users the Left/Right arrow keys move focus between the avatars. Only announced when the group has interactive (link/button) avatars."
|
|
249
|
+
},
|
|
250
|
+
"@astryx.avatarGroup.overflow": {
|
|
251
|
+
"defaultMessage": "{count, number} more",
|
|
252
|
+
"description": "Accessible name for the \"+N\" overflow indicator at the end of an AvatarGroup — announces how many additional avatars are not shown. Example: `5 more`. The visible \"+N\" text is unaffected; this is the aria-label only."
|
|
253
|
+
},
|
|
242
254
|
"@astryx.banner.dismiss": {
|
|
243
255
|
"defaultMessage": "Dismiss",
|
|
244
256
|
"description": "\"Dismiss\" = close/hide this notification (not \"reject a person\"). Aria label AND tooltip on the small X button on a Banner."
|
|
@@ -251,6 +263,34 @@
|
|
|
251
263
|
"defaultMessage": "Next month",
|
|
252
264
|
"description": "Screen-reader-only label on the right-arrow button in a Calendar's month header (navigates one month forward). Pairs with `calendar.previousMonth`."
|
|
253
265
|
},
|
|
266
|
+
"@astryx.calendar.daySelected": {
|
|
267
|
+
"defaultMessage": "{date}, selected",
|
|
268
|
+
"description": "Accessible name for the Calendar day button that is the current single-mode selection. `{date}` is the localized full date, e.g. \"Thursday, January 15, 2026\". The trailing state word tells screen-reader users the focused day is selected."
|
|
269
|
+
},
|
|
270
|
+
"@astryx.calendar.dayRangeStart": {
|
|
271
|
+
"defaultMessage": "{date}, range start",
|
|
272
|
+
"description": "Accessible name for the Calendar day button that begins the selected date range (or the first pick of an in-progress range). `{date}` is the localized full date."
|
|
273
|
+
},
|
|
274
|
+
"@astryx.calendar.dayRangeEnd": {
|
|
275
|
+
"defaultMessage": "{date}, range end",
|
|
276
|
+
"description": "Accessible name for the Calendar day button that ends the selected date range. `{date}` is the localized full date. Pairs with `calendar.dayRangeStart`."
|
|
277
|
+
},
|
|
278
|
+
"@astryx.calendar.dayRangeStartAndEnd": {
|
|
279
|
+
"defaultMessage": "{date}, range start and range end",
|
|
280
|
+
"description": "Accessible name for a Calendar day button that both begins and ends a completed one-day range. `{date}` is the localized full date."
|
|
281
|
+
},
|
|
282
|
+
"@astryx.calendar.dayInRange": {
|
|
283
|
+
"defaultMessage": "{date}, in range",
|
|
284
|
+
"description": "Accessible name for a Calendar day button strictly inside the selected date range (not an endpoint). `{date}` is the localized full date."
|
|
285
|
+
},
|
|
286
|
+
"@astryx.calendar.rangeStartAnnounce": {
|
|
287
|
+
"defaultMessage": "Start date {date}. Select an end date.",
|
|
288
|
+
"description": "Screen-reader announcement after the first pick of a Calendar range selection. `{date}` is the localized full date. Prompts the user that a second pick completes the range."
|
|
289
|
+
},
|
|
290
|
+
"@astryx.calendar.rangeCompleteAnnounce": {
|
|
291
|
+
"defaultMessage": "Selected range: {start} to {end}.",
|
|
292
|
+
"description": "Screen-reader announcement after the second pick completes a Calendar range selection. `{start}` and `{end}` are localized full dates in chronological order."
|
|
293
|
+
},
|
|
254
294
|
"@astryx.carousel.label": {
|
|
255
295
|
"defaultMessage": "Carousel",
|
|
256
296
|
"description": "Screen-reader-only fallback name for a horizontally-scrolling row of items. If \"carousel\" is unfamiliar in your locale, prefer the standard term (e.g. \"slider\")."
|
|
@@ -307,6 +347,18 @@
|
|
|
307
347
|
"defaultMessage": "Type to search",
|
|
308
348
|
"description": "Onboarding empty-state text shown inside a CommandPalette on first open, before the user has typed anything. Imperative sentence fragment."
|
|
309
349
|
},
|
|
350
|
+
"@astryx.commandPalette.resultCount": {
|
|
351
|
+
"defaultMessage": "{count, number} {count, plural, one {result} other {results}}",
|
|
352
|
+
"description": "Screen-reader-only announcement of how many commands match the CommandPalette query as the user types. Example: `12 results`, `1 result`; keep compact."
|
|
353
|
+
},
|
|
354
|
+
"@astryx.commandPalette.noResultsFor": {
|
|
355
|
+
"defaultMessage": "No results for {query}",
|
|
356
|
+
"description": "Screen-reader-only announcement when a CommandPalette query matches nothing. `{query}` is the user's verbatim search text; keep it last if your language allows so truncation-by-AT still conveys the outcome."
|
|
357
|
+
},
|
|
358
|
+
"@astryx.commandPalette.loading": {
|
|
359
|
+
"defaultMessage": "Loading",
|
|
360
|
+
"description": "Screen-reader-only announcement that a CommandPalette search has started and results are being fetched. Present-progressive form; matches the visible spinner."
|
|
361
|
+
},
|
|
310
362
|
"@astryx.dateRangeInput.presetDateRanges": {
|
|
311
363
|
"defaultMessage": "Preset date ranges",
|
|
312
364
|
"description": "Screen-reader-only accessible name for the sidebar of quick-pick preset ranges inside a DateRangeInput popover (e.g. \"Last 7 days\", \"This month\")."
|
|
@@ -359,6 +411,10 @@
|
|
|
359
411
|
"defaultMessage": "Search options",
|
|
360
412
|
"description": "Screen-reader-only accessible name for that same search input inside a MultiSelector."
|
|
361
413
|
},
|
|
414
|
+
"@astryx.multiSelector.selectAllPartiallySelected": {
|
|
415
|
+
"defaultMessage": "{label}, partially selected",
|
|
416
|
+
"description": "Accessible name for the MultiSelector select-all option while only some options are selected. `{label}` is the visible select-all label (e.g. \"Select all\"). ARIA forbids aria-selected=\"mixed\" on options, so the indeterminate state is conveyed through the name instead. \"Partially\" = some but not all."
|
|
417
|
+
},
|
|
362
418
|
"@astryx.popover.close": {
|
|
363
419
|
"defaultMessage": "Close popover",
|
|
364
420
|
"description": "\"Close\" = shut/dismiss, not \"nearby\". Screen-reader-only label on the close button inside a Popover."
|
|
@@ -635,6 +691,10 @@
|
|
|
635
691
|
"defaultMessage": "Expand",
|
|
636
692
|
"description": "\"Expand\" = reveal more, not grow physically. Aria label AND tooltip on the same toggle when currently collapsed. Pairs with `banner.collapse`."
|
|
637
693
|
},
|
|
694
|
+
"@astryx.button.loading": {
|
|
695
|
+
"defaultMessage": "Loading",
|
|
696
|
+
"description": "Screen-reader-only live-region announcement while a Button is in its loading state (spinner shown, action in flight). Progressive sense (\"work in progress\"), not a noun. Kept separate from `typeahead.loading` — translations may diverge."
|
|
697
|
+
},
|
|
638
698
|
"@astryx.chatComposerDrawer.expand": {
|
|
639
699
|
"defaultMessage": "Expand {label}",
|
|
640
700
|
"description": "Screen-reader-only label on the ChatComposerDrawer toggle when the drawer is collapsed. `{label}` is the drawer's visible name — example: `Expand Attachments`. Pairs with `collapse`."
|
|
@@ -643,6 +703,14 @@
|
|
|
643
703
|
"defaultMessage": "Collapse {label}",
|
|
644
704
|
"description": "Screen-reader-only label on the ChatComposerDrawer toggle when the drawer is expanded. Example: `Collapse Attachments`. Pairs with `expand`."
|
|
645
705
|
},
|
|
706
|
+
"@astryx.chatDictationButton.startDictation": {
|
|
707
|
+
"defaultMessage": "Start dictation",
|
|
708
|
+
"description": "Accessible label for the microphone button when idle (not listening)."
|
|
709
|
+
},
|
|
710
|
+
"@astryx.chatDictationButton.stopDictation": {
|
|
711
|
+
"defaultMessage": "Stop dictation",
|
|
712
|
+
"description": "Accessible label for the microphone button when actively listening."
|
|
713
|
+
},
|
|
646
714
|
"@astryx.chatLayout.newMessages": {
|
|
647
715
|
"defaultMessage": "New messages",
|
|
648
716
|
"description": "Text on a floating pill at the bottom of a chat viewport when unseen messages arrive below the fold; clicking scrolls to bottom. Keep short — narrow pill."
|
|
@@ -663,6 +731,14 @@
|
|
|
663
731
|
"defaultMessage": "Send",
|
|
664
732
|
"description": "Primary button label on the chat submit button (paperplane icon). Imperative verb; pairs with `Stop`. Very short."
|
|
665
733
|
},
|
|
734
|
+
"@astryx.chatToolCalls.error": {
|
|
735
|
+
"defaultMessage": "Error: {message}",
|
|
736
|
+
"description": "Screen-reader text for a tool call that failed. {message} is the error detail."
|
|
737
|
+
},
|
|
738
|
+
"@astryx.chatToolCalls.groupLabel": {
|
|
739
|
+
"defaultMessage": "{count} tool calls",
|
|
740
|
+
"description": "Summary label shown in the group header when multiple tool calls are expanded. {count} is the number of calls."
|
|
741
|
+
},
|
|
666
742
|
"@astryx.chatTriggerMenu.suggestions": {
|
|
667
743
|
"defaultMessage": "Suggestions",
|
|
668
744
|
"description": "Screen-reader-only fallback label for the popover listbox opened by a trigger character (`@`, `/`) in the chat composer when the trigger provides no specific label."
|
|
@@ -683,18 +759,42 @@
|
|
|
683
759
|
"defaultMessage": "Code",
|
|
684
760
|
"description": "Screen-reader-only fallback name for a code-snippet scroll container when the code's language is unknown. \"Code\" = source code, not secret code or code of conduct."
|
|
685
761
|
},
|
|
762
|
+
"@astryx.field.optional": {
|
|
763
|
+
"defaultMessage": "Optional",
|
|
764
|
+
"description": "Visible indicator shown next to a form field's label when the field is optional (isOptional). Mutually exclusive with the required indicator. Very short — appears inline after the label text."
|
|
765
|
+
},
|
|
766
|
+
"@astryx.field.required": {
|
|
767
|
+
"defaultMessage": "Required",
|
|
768
|
+
"description": "Visible indicator shown next to a form field's label when the field must be filled in (isRequired). Mutually exclusive with the optional indicator. Very short — appears inline after the label text."
|
|
769
|
+
},
|
|
686
770
|
"@astryx.fileInput.clearLabel": {
|
|
687
771
|
"defaultMessage": "Clear {label}",
|
|
688
772
|
"description": "Screen-reader-only label on the X that removes the selected file from a FileInput. Example: `Clear Attachment`, `Clear Résumé`."
|
|
689
773
|
},
|
|
774
|
+
"@astryx.fileInput.required": {
|
|
775
|
+
"defaultMessage": "Required",
|
|
776
|
+
"description": "Screen-reader-only description on the FileInput trigger indicating the field must be filled in. Mirrors the visible `Required` indicator next to the field label; conveyed via description because aria-required is not supported on role=\"button\"."
|
|
777
|
+
},
|
|
690
778
|
"@astryx.fileInput.triggerWithFiles": {
|
|
691
779
|
"defaultMessage": "{label}, {fileNames}",
|
|
692
780
|
"description": "Accessible name for a FileInput trigger that has files attached, composing the field label with the selected filenames. Example: `Attachments, report.pdf, notes.txt`."
|
|
693
781
|
},
|
|
782
|
+
"@astryx.keyboardHint.toNavigate": {
|
|
783
|
+
"defaultMessage": "to navigate",
|
|
784
|
+
"description": "Trailing text in the keyboard-hint badge, shown after arrow-key icons — reads as `← → to navigate`. Lowercase sentence fragment completing the visual phrase; the badge is aria-hidden, so this is for sighted users only."
|
|
785
|
+
},
|
|
694
786
|
"@astryx.lightbox.mediaViewer": {
|
|
695
787
|
"defaultMessage": "Media viewer",
|
|
696
788
|
"description": "Screen-reader-only fallback name for the Lightbox dialog when the current media item has no alt text. Should rarely render — consumers should provide alt."
|
|
697
789
|
},
|
|
790
|
+
"@astryx.metadataList.showMore": {
|
|
791
|
+
"defaultMessage": "Show more",
|
|
792
|
+
"description": "Button label under a MetadataList that reveals items hidden beyond the configured maximum. Toggles with `metadataList.showLess` — keep the pair parallel in your language."
|
|
793
|
+
},
|
|
794
|
+
"@astryx.metadataList.showLess": {
|
|
795
|
+
"defaultMessage": "Show less",
|
|
796
|
+
"description": "Button label under a MetadataList that re-hides the extra items revealed by `metadataList.showMore`. Keep the pair parallel."
|
|
797
|
+
},
|
|
698
798
|
"@astryx.mobileNav.navigation": {
|
|
699
799
|
"defaultMessage": "Navigation",
|
|
700
800
|
"description": "Screen-reader-only fallback name for the MobileNav overlay dialog when no explicit label was passed."
|
|
@@ -703,6 +803,18 @@
|
|
|
703
803
|
"defaultMessage": "Clear all {label}",
|
|
704
804
|
"description": "Screen-reader-only label on the X that clears every selected value from a MultiSelector. Example: `Clear all Countries`. `{label}` is typically already plural in English."
|
|
705
805
|
},
|
|
806
|
+
"@astryx.input.statusButton.error": {
|
|
807
|
+
"defaultMessage": "Error details",
|
|
808
|
+
"description": "Accessible name for the focusable status icon button inside an input when statusVariant is 'tooltip' and the status type is error. Activating or focusing the button reveals the error message in a tooltip. Keep it short — it labels an icon-only button."
|
|
809
|
+
},
|
|
810
|
+
"@astryx.input.statusButton.warning": {
|
|
811
|
+
"defaultMessage": "Warning details",
|
|
812
|
+
"description": "Accessible name for the focusable status icon button inside an input when statusVariant is 'tooltip' and the status type is warning. Activating or focusing the button reveals the warning message in a tooltip."
|
|
813
|
+
},
|
|
814
|
+
"@astryx.input.statusButton.success": {
|
|
815
|
+
"defaultMessage": "Success details",
|
|
816
|
+
"description": "Accessible name for the focusable status icon button inside an input when statusVariant is 'tooltip' and the status type is success. Activating or focusing the button reveals the success message in a tooltip."
|
|
817
|
+
},
|
|
706
818
|
"@astryx.numberInput.clearLabel": {
|
|
707
819
|
"defaultMessage": "Clear {label}",
|
|
708
820
|
"description": "Screen-reader-only label on the X that clears the value from a NumberInput. Example: `Clear Age`, `Clear Quantity`."
|
package/locales/pseudo.json
CHANGED
|
@@ -176,9 +176,18 @@
|
|
|
176
176
|
"@astryx.appShell.mobileNavigation": {
|
|
177
177
|
"defaultMessage": "⟦Ṁóƀíłé ñàṽíĝàţíóñ⟧"
|
|
178
178
|
},
|
|
179
|
+
"@astryx.avatar.nameWithStatus": {
|
|
180
|
+
"defaultMessage": "⟦{name}, {status}⟧"
|
|
181
|
+
},
|
|
179
182
|
"@astryx.avatarGroup.label": {
|
|
180
183
|
"defaultMessage": "⟦Àṽàţàřš⟧"
|
|
181
184
|
},
|
|
185
|
+
"@astryx.avatarGroup.keyboardHint": {
|
|
186
|
+
"defaultMessage": "⟦Úšé àřřóŵ ķéýš ţó ɱóṽé ƀéţŵééñ àṽàţàřš⟧"
|
|
187
|
+
},
|
|
188
|
+
"@astryx.avatarGroup.overflow": {
|
|
189
|
+
"defaultMessage": "⟦{count, number} ɱóřé⟧"
|
|
190
|
+
},
|
|
182
191
|
"@astryx.banner.dismiss": {
|
|
183
192
|
"defaultMessage": "⟦Ðíšɱíšš⟧"
|
|
184
193
|
},
|
|
@@ -188,6 +197,27 @@
|
|
|
188
197
|
"@astryx.calendar.nextMonth": {
|
|
189
198
|
"defaultMessage": "⟦Ñéẋţ ɱóñţĥ⟧"
|
|
190
199
|
},
|
|
200
|
+
"@astryx.calendar.daySelected": {
|
|
201
|
+
"defaultMessage": "⟦{date}, šéłéçţéð⟧"
|
|
202
|
+
},
|
|
203
|
+
"@astryx.calendar.dayRangeStart": {
|
|
204
|
+
"defaultMessage": "⟦{date}, řàñĝé šţàřţ⟧"
|
|
205
|
+
},
|
|
206
|
+
"@astryx.calendar.dayRangeEnd": {
|
|
207
|
+
"defaultMessage": "⟦{date}, řàñĝé éñð⟧"
|
|
208
|
+
},
|
|
209
|
+
"@astryx.calendar.dayRangeStartAndEnd": {
|
|
210
|
+
"defaultMessage": "⟦{date}, řàñĝé šţàřţ àñð řàñĝé éñð⟧"
|
|
211
|
+
},
|
|
212
|
+
"@astryx.calendar.dayInRange": {
|
|
213
|
+
"defaultMessage": "⟦{date}, íñ řàñĝé⟧"
|
|
214
|
+
},
|
|
215
|
+
"@astryx.calendar.rangeStartAnnounce": {
|
|
216
|
+
"defaultMessage": "⟦Šţàřţ ðàţé {date}. Šéłéçţ àñ éñð ðàţé.⟧"
|
|
217
|
+
},
|
|
218
|
+
"@astryx.calendar.rangeCompleteAnnounce": {
|
|
219
|
+
"defaultMessage": "⟦Šéłéçţéð řàñĝé: {start} ţó {end}.⟧"
|
|
220
|
+
},
|
|
191
221
|
"@astryx.carousel.label": {
|
|
192
222
|
"defaultMessage": "⟦Çàřóúšéł⟧"
|
|
193
223
|
},
|
|
@@ -230,6 +260,15 @@
|
|
|
230
260
|
"@astryx.commandPalette.emptyBootstrap": {
|
|
231
261
|
"defaultMessage": "⟦Ţýþé ţó šéàřçĥ⟧"
|
|
232
262
|
},
|
|
263
|
+
"@astryx.commandPalette.resultCount": {
|
|
264
|
+
"defaultMessage": "⟦{count, number} {count, plural, one {result} other {results}}⟧"
|
|
265
|
+
},
|
|
266
|
+
"@astryx.commandPalette.noResultsFor": {
|
|
267
|
+
"defaultMessage": "⟦Ñó řéšúłţš ƒóř {query}⟧"
|
|
268
|
+
},
|
|
269
|
+
"@astryx.commandPalette.loading": {
|
|
270
|
+
"defaultMessage": "⟦Łóàðíñĝ⟧"
|
|
271
|
+
},
|
|
233
272
|
"@astryx.dateRangeInput.presetDateRanges": {
|
|
234
273
|
"defaultMessage": "⟦Þřéšéţ ðàţé řàñĝéš⟧"
|
|
235
274
|
},
|
|
@@ -269,6 +308,9 @@
|
|
|
269
308
|
"@astryx.multiSelector.searchOptions": {
|
|
270
309
|
"defaultMessage": "⟦Šéàřçĥ óþţíóñš⟧"
|
|
271
310
|
},
|
|
311
|
+
"@astryx.multiSelector.selectAllPartiallySelected": {
|
|
312
|
+
"defaultMessage": "⟦{label}, þàřţíàłłý šéłéçţéð⟧"
|
|
313
|
+
},
|
|
272
314
|
"@astryx.popover.close": {
|
|
273
315
|
"defaultMessage": "⟦Çłóšé þóþóṽéř⟧"
|
|
274
316
|
},
|
|
@@ -476,12 +518,21 @@
|
|
|
476
518
|
"@astryx.banner.expand": {
|
|
477
519
|
"defaultMessage": "⟦Éẋþàñð⟧"
|
|
478
520
|
},
|
|
521
|
+
"@astryx.button.loading": {
|
|
522
|
+
"defaultMessage": "⟦Łóàðíñĝ⟧"
|
|
523
|
+
},
|
|
479
524
|
"@astryx.chatComposerDrawer.expand": {
|
|
480
525
|
"defaultMessage": "⟦Éẋþàñð {label}⟧"
|
|
481
526
|
},
|
|
482
527
|
"@astryx.chatComposerDrawer.collapse": {
|
|
483
528
|
"defaultMessage": "⟦Çółłàþšé {label}⟧"
|
|
484
529
|
},
|
|
530
|
+
"@astryx.chatDictationButton.startDictation": {
|
|
531
|
+
"defaultMessage": "⟦Šţàřţ ðíçţàţíóñ⟧"
|
|
532
|
+
},
|
|
533
|
+
"@astryx.chatDictationButton.stopDictation": {
|
|
534
|
+
"defaultMessage": "⟦Šţóþ ðíçţàţíóñ⟧"
|
|
535
|
+
},
|
|
485
536
|
"@astryx.chatLayout.newMessages": {
|
|
486
537
|
"defaultMessage": "⟦Ñéŵ ɱéššàĝéš⟧"
|
|
487
538
|
},
|
|
@@ -497,6 +548,12 @@
|
|
|
497
548
|
"@astryx.chatSendButton.send": {
|
|
498
549
|
"defaultMessage": "⟦Šéñð⟧"
|
|
499
550
|
},
|
|
551
|
+
"@astryx.chatToolCalls.error": {
|
|
552
|
+
"defaultMessage": "⟦Éřřóř: {message}⟧"
|
|
553
|
+
},
|
|
554
|
+
"@astryx.chatToolCalls.groupLabel": {
|
|
555
|
+
"defaultMessage": "⟦{count} ţóół çàłłš⟧"
|
|
556
|
+
},
|
|
500
557
|
"@astryx.chatTriggerMenu.suggestions": {
|
|
501
558
|
"defaultMessage": "⟦Šúĝĝéšţíóñš⟧"
|
|
502
559
|
},
|
|
@@ -512,21 +569,48 @@
|
|
|
512
569
|
"@astryx.codeBlock.code": {
|
|
513
570
|
"defaultMessage": "⟦Çóðé⟧"
|
|
514
571
|
},
|
|
572
|
+
"@astryx.field.optional": {
|
|
573
|
+
"defaultMessage": "⟦Óþţíóñàł⟧"
|
|
574
|
+
},
|
|
575
|
+
"@astryx.field.required": {
|
|
576
|
+
"defaultMessage": "⟦Řéɋúířéð⟧"
|
|
577
|
+
},
|
|
515
578
|
"@astryx.fileInput.clearLabel": {
|
|
516
579
|
"defaultMessage": "⟦Çłéàř {label}⟧"
|
|
517
580
|
},
|
|
581
|
+
"@astryx.fileInput.required": {
|
|
582
|
+
"defaultMessage": "⟦Řéɋúířéð⟧"
|
|
583
|
+
},
|
|
518
584
|
"@astryx.fileInput.triggerWithFiles": {
|
|
519
585
|
"defaultMessage": "⟦{label}, {fileNames}⟧"
|
|
520
586
|
},
|
|
587
|
+
"@astryx.keyboardHint.toNavigate": {
|
|
588
|
+
"defaultMessage": "⟦ţó ñàṽíĝàţé⟧"
|
|
589
|
+
},
|
|
521
590
|
"@astryx.lightbox.mediaViewer": {
|
|
522
591
|
"defaultMessage": "⟦Ṁéðíà ṽíéŵéř⟧"
|
|
523
592
|
},
|
|
593
|
+
"@astryx.metadataList.showMore": {
|
|
594
|
+
"defaultMessage": "⟦Šĥóŵ ɱóřé⟧"
|
|
595
|
+
},
|
|
596
|
+
"@astryx.metadataList.showLess": {
|
|
597
|
+
"defaultMessage": "⟦Šĥóŵ łéšš⟧"
|
|
598
|
+
},
|
|
524
599
|
"@astryx.mobileNav.navigation": {
|
|
525
600
|
"defaultMessage": "⟦Ñàṽíĝàţíóñ⟧"
|
|
526
601
|
},
|
|
527
602
|
"@astryx.multiSelector.clearAll": {
|
|
528
603
|
"defaultMessage": "⟦Çłéàř àłł {label}⟧"
|
|
529
604
|
},
|
|
605
|
+
"@astryx.input.statusButton.error": {
|
|
606
|
+
"defaultMessage": "⟦Éřřóř ðéţàíłš⟧"
|
|
607
|
+
},
|
|
608
|
+
"@astryx.input.statusButton.warning": {
|
|
609
|
+
"defaultMessage": "⟦Ŵàřñíñĝ ðéţàíłš⟧"
|
|
610
|
+
},
|
|
611
|
+
"@astryx.input.statusButton.success": {
|
|
612
|
+
"defaultMessage": "⟦Šúççéšš ðéţàíłš⟧"
|
|
613
|
+
},
|
|
530
614
|
"@astryx.numberInput.clearLabel": {
|
|
531
615
|
"defaultMessage": "⟦Çłéàř {label}⟧"
|
|
532
616
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@astryxdesign/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0-canary.136a00f",
|
|
4
4
|
"displayName": "Astryx Core",
|
|
5
5
|
"description": "The component library. Accessible, themeable React components with built-in spacing, dark mode, and StyleX styling.",
|
|
6
6
|
"author": "Meta Open Source",
|
|
@@ -54,6 +54,11 @@
|
|
|
54
54
|
"types": "./src/tailwind-theme.css.d.ts",
|
|
55
55
|
"default": "./src/tailwind-theme.css"
|
|
56
56
|
},
|
|
57
|
+
"./BaseProps": {
|
|
58
|
+
"source": "./src/BaseProps.ts",
|
|
59
|
+
"types": "./dist/BaseProps.d.ts",
|
|
60
|
+
"default": "./dist/BaseProps.js"
|
|
61
|
+
},
|
|
57
62
|
"./naming": {
|
|
58
63
|
"source": "./src/naming.ts",
|
|
59
64
|
"types": "./dist/naming.d.ts",
|
|
@@ -32,6 +32,18 @@ export const docs = {
|
|
|
32
32
|
{className: 'astryx-avatar-status-dot', visualProps: ['variant']},
|
|
33
33
|
{className: 'astryx-avatar-status-dot-glyph', visualProps: ['shape']},
|
|
34
34
|
],
|
|
35
|
+
vars: [
|
|
36
|
+
{name: '--_avatar-fallback-font-size', description: 'Initials font size; default is proportional to the avatar size (size × 0.4). Override per size tier (e.g. size:sm) for a custom type scale.', default: 'calc(avatar-size × 0.4)', private: true},
|
|
37
|
+
{name: '--_avatar-fallback-font-weight', description: 'Initials font weight', default: 'var(--font-weight-medium)', private: true},
|
|
38
|
+
{name: '--_avatar-fallback-color', description: 'Fallback text and default-icon color', default: 'var(--color-text-secondary)', private: true},
|
|
39
|
+
{name: '--_avatar-fallback-background', description: 'Fallback wash background fill', default: 'var(--color-neutral)', private: true},
|
|
40
|
+
],
|
|
41
|
+
derived: [
|
|
42
|
+
{property: 'fontSize', vars: ['--_avatar-fallback-font-size']},
|
|
43
|
+
{property: 'fontWeight', vars: ['--_avatar-fallback-font-weight']},
|
|
44
|
+
{property: 'color', vars: ['--_avatar-fallback-color']},
|
|
45
|
+
{property: 'backgroundColor', vars: ['--_avatar-fallback-background']},
|
|
46
|
+
],
|
|
35
47
|
},
|
|
36
48
|
description: 'Displays a user avatar with image, initials fallback, and optional status indicator.',
|
|
37
49
|
props: [
|
|
@@ -64,7 +76,7 @@ export const docs = {
|
|
|
64
76
|
{
|
|
65
77
|
name: 'status',
|
|
66
78
|
type: 'ReactNode',
|
|
67
|
-
description: 'Corner content for status indicators.',
|
|
79
|
+
description: 'Corner content for status indicators. A string `label` on the element (as on AvatarStatusDot) is composed into the avatar\'s accessible name (e.g. "Jane Doe, Online") so screen readers announce the status.',
|
|
68
80
|
slotElements: [
|
|
69
81
|
{
|
|
70
82
|
__element: 'AvatarStatusDot',
|
|
@@ -79,9 +91,37 @@ export const docs = {
|
|
|
79
91
|
name: 'tooltip',
|
|
80
92
|
type: 'string | boolean',
|
|
81
93
|
description:
|
|
82
|
-
"Tooltip shown on hover and keyboard focus. Omitted or true shows the avatar's name; a string shows that text instead; false shows no tooltip. Not auto-disabled when wrapped in your own Tooltip/HoverCard
|
|
94
|
+
"Tooltip shown on hover and keyboard focus. Omitted or true shows the avatar's name; a string shows that text instead; false shows no tooltip. Not auto-disabled when wrapped in your own Tooltip/HoverCard. Set tooltip={false} if you supply your own overlay. No tooltip is shown when tooltip is true/omitted and there is no name.",
|
|
83
95
|
default: 'true',
|
|
84
96
|
},
|
|
97
|
+
{
|
|
98
|
+
name: 'href',
|
|
99
|
+
type: 'string',
|
|
100
|
+
description:
|
|
101
|
+
'When set, the avatar renders as an interactive link (`<a>` or a custom link component) pointing here. This follows the same element-swap rule as Button. Requires a meaningful accessible name via `alt` or `name`. Inside an AvatarGroup, interactive avatars share a single Tab stop and are reached with arrow keys.',
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
name: 'as',
|
|
105
|
+
type: 'ElementType',
|
|
106
|
+
description:
|
|
107
|
+
'Custom link component used when `href` is set (e.g. Next.js `Link`). Overrides the provider-level LinkProvider default. Only applies with `href`.',
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
name: 'target',
|
|
111
|
+
type: 'string',
|
|
112
|
+
description: 'Link target attribute. Only applies with `href`.',
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
name: 'rel',
|
|
116
|
+
type: 'string',
|
|
117
|
+
description: 'Link rel attribute. Only applies with `href`.',
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
name: 'onClick',
|
|
121
|
+
type: '(e: MouseEvent) => void',
|
|
122
|
+
description:
|
|
123
|
+
'Click handler. When set without `href`, the avatar renders as a focusable `<button type="button">`. Requires a meaningful accessible name via `alt` or `name`.',
|
|
124
|
+
},
|
|
85
125
|
],
|
|
86
126
|
components: [
|
|
87
127
|
{name: 'AvatarStatusDot'},
|
|
@@ -112,6 +152,7 @@ export const docsDense = {
|
|
|
112
152
|
{guidance: true, description: 'Always pass a name for initials fallback and screen reader alt text.'},
|
|
113
153
|
{guidance: true, description: 'Match size to context: xsm/sm inline, md/lg in lists, xl for profiles.'},
|
|
114
154
|
{guidance: true, description: 'Add a status dot in chat or team views where availability matters.'},
|
|
155
|
+
{guidance: true, description: 'When wrapping Avatar in your own Tooltip or HoverCard, set tooltip={false} so the built-in name tooltip does not overlap yours.'},
|
|
115
156
|
{guidance: false, description: 'Use for logos or product images. Use an image or icon instead.'},
|
|
116
157
|
{guidance: false, description: 'Force a square or custom shape. Avatars are always circular.'},
|
|
117
158
|
],
|
|
@@ -122,9 +163,15 @@ export const docsDense = {
|
|
|
122
163
|
name: 'user name for initials and alt text',
|
|
123
164
|
alt: 'alt text; falls back to name',
|
|
124
165
|
size: "avatar size. Named ('xsm' 20px, 'sm' 24px, 'md' 36px, 'lg' 48px, 'xl' 128px) or numeric px.",
|
|
125
|
-
status:
|
|
166
|
+
status:
|
|
167
|
+
'corner content for status indicators; its `label` is composed into the avatar accessible name ("Jane Doe, Online")',
|
|
126
168
|
tooltip:
|
|
127
169
|
"hover/focus tooltip. true/omitted → name; string → that text; false → none. Owns its tooltip; set false when wrapping in your own Tooltip/HoverCard. Default true.",
|
|
170
|
+
href: 'renders avatar as a link (<a>/custom). Needs alt/name. Button-style element swap.',
|
|
171
|
+
as: 'custom link component for href (e.g. Next Link). Only with href.',
|
|
172
|
+
target: 'link target. Only with href.',
|
|
173
|
+
rel: 'link rel. Only with href.',
|
|
174
|
+
onClick: 'click handler → renders <button> when no href. Needs alt/name.',
|
|
128
175
|
},
|
|
129
176
|
components: [
|
|
130
177
|
{name: 'AvatarStatusDot', description: 'size-aware status indicator rendered in the Avatar corner'},
|