@astryxdesign/core 0.1.8 → 0.1.9-canary.02ef052
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 +100 -0
- package/dist/AppShell/AppShell.d.ts.map +1 -1
- package/dist/AppShell/AppShell.js +6 -2
- package/dist/AppShell/AppShellMobileContext.d.ts +8 -0
- package/dist/AppShell/AppShellMobileContext.d.ts.map +1 -1
- package/dist/Avatar/Avatar.d.ts +58 -3
- package/dist/Avatar/Avatar.d.ts.map +1 -1
- package/dist/Avatar/Avatar.js +240 -53
- package/dist/Avatar/AvatarStatusDot.d.ts +35 -5
- package/dist/Avatar/AvatarStatusDot.d.ts.map +1 -1
- package/dist/Avatar/AvatarStatusDot.js +144 -19
- 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.map +1 -1
- package/dist/AvatarGroup/AvatarGroupOverflow.js +1 -0
- package/dist/Banner/Banner.d.ts +9 -1
- package/dist/Banner/Banner.d.ts.map +1 -1
- package/dist/Banner/Banner.js +33 -4
- package/dist/Breadcrumbs/BreadcrumbItem.d.ts +31 -2
- package/dist/Breadcrumbs/BreadcrumbItem.d.ts.map +1 -1
- package/dist/Breadcrumbs/BreadcrumbItem.js +215 -6
- package/dist/Breadcrumbs/index.d.ts +6 -0
- package/dist/Breadcrumbs/index.d.ts.map +1 -1
- package/dist/Breadcrumbs/index.js +10 -1
- package/dist/Button/Button.d.ts +8 -2
- package/dist/Button/Button.d.ts.map +1 -1
- package/dist/Button/Button.js +33 -4
- package/dist/ButtonGroup/ButtonGroup.d.ts +9 -1
- package/dist/ButtonGroup/ButtonGroup.d.ts.map +1 -1
- package/dist/ButtonGroup/ButtonGroup.js +30 -1
- package/dist/Calendar/Calendar.d.ts.map +1 -1
- package/dist/Calendar/Calendar.js +80 -11
- package/dist/Calendar/dayCellUtils.d.ts +4 -4
- package/dist/Calendar/dayCellUtils.js +3 -3
- 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.d.ts +8 -2
- package/dist/Card/Card.d.ts.map +1 -1
- package/dist/Card/Card.js +28 -2
- package/dist/Carousel/Carousel.d.ts +4 -1
- package/dist/Carousel/Carousel.d.ts.map +1 -1
- package/dist/Carousel/Carousel.js +46 -16
- package/dist/Chat/ChatComposer.d.ts +8 -0
- package/dist/Chat/ChatComposer.d.ts.map +1 -1
- package/dist/Chat/ChatComposer.js +46 -7
- package/dist/Chat/ChatComposerDrawer.d.ts +2 -0
- package/dist/Chat/ChatComposerDrawer.d.ts.map +1 -1
- package/dist/Chat/ChatComposerDrawer.js +11 -1
- package/dist/Chat/ChatComposerInput.d.ts +20 -3
- package/dist/Chat/ChatComposerInput.d.ts.map +1 -1
- package/dist/Chat/ChatComposerInput.js +36 -4
- package/dist/Chat/ChatContext.d.ts +33 -0
- package/dist/Chat/ChatContext.d.ts.map +1 -1
- package/dist/Chat/ChatContext.js +16 -2
- package/dist/Chat/ChatDictationButton.d.ts.map +1 -1
- package/dist/Chat/ChatDictationButton.js +4 -2
- package/dist/Chat/ChatLayout.d.ts.map +1 -1
- package/dist/Chat/ChatLayout.js +4 -4
- package/dist/Chat/ChatLayoutScrollButton.d.ts.map +1 -1
- package/dist/Chat/ChatLayoutScrollButton.js +4 -4
- package/dist/Chat/ChatMessageMetadata.d.ts.map +1 -1
- package/dist/Chat/ChatSendButton.d.ts.map +1 -1
- package/dist/Chat/ChatSendButton.js +7 -1
- package/dist/Chat/ChatToolCalls.d.ts +5 -1
- package/dist/Chat/ChatToolCalls.d.ts.map +1 -1
- package/dist/Chat/ChatToolCalls.js +27 -11
- package/dist/Chat/index.d.ts +2 -1
- package/dist/Chat/index.d.ts.map +1 -1
- package/dist/Chat/index.js +1 -1
- package/dist/Chat/useChatStreamScroll.d.ts +2 -1
- package/dist/Chat/useChatStreamScroll.d.ts.map +1 -1
- package/dist/Chat/useChatStreamScroll.js +22 -8
- package/dist/Chat/useSpeechRecognition.d.ts +0 -1
- package/dist/Chat/useSpeechRecognition.d.ts.map +1 -1
- package/dist/Chat/useSpeechRecognition.js +1 -1
- package/dist/Chat/useTriggerMenu.d.ts.map +1 -1
- package/dist/Chat/useTriggerMenu.js +2 -2
- package/dist/CheckboxInput/CheckboxInput.js +5 -5
- package/dist/CheckboxList/CheckboxListItem.d.ts +20 -1
- package/dist/CheckboxList/CheckboxListItem.d.ts.map +1 -1
- package/dist/CheckboxList/CheckboxListItem.js +11 -1
- 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/ClickableCard/ClickableCard.d.ts +9 -2
- package/dist/ClickableCard/ClickableCard.d.ts.map +1 -1
- package/dist/ClickableCard/ClickableCard.js +5 -2
- package/dist/CodeBlock/CodeBlock.d.ts.map +1 -1
- package/dist/CodeBlock/CodeBlock.js +22 -9
- package/dist/Collapsible/Collapsible.d.ts.map +1 -1
- package/dist/Collapsible/Collapsible.js +3 -1
- package/dist/CommandPalette/CommandPalette.d.ts +2 -2
- package/dist/CommandPalette/CommandPalette.d.ts.map +1 -1
- package/dist/CommandPalette/CommandPalette.js +45 -4
- package/dist/CommandPalette/CommandPaletteGroup.d.ts.map +1 -1
- package/dist/CommandPalette/CommandPaletteGroup.js +9 -2
- package/dist/CommandPalette/CommandPaletteInput.d.ts +7 -1
- package/dist/CommandPalette/CommandPaletteInput.d.ts.map +1 -1
- package/dist/CommandPalette/CommandPaletteInput.js +6 -1
- package/dist/CommandPalette/CommandPaletteItem.js +1 -1
- package/dist/ContextMenu/ContextMenu.d.ts.map +1 -1
- package/dist/ContextMenu/ContextMenu.js +14 -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 +56 -2
- package/dist/DateInput/DateInput.d.ts.map +1 -1
- package/dist/DateInput/DateInput.js +59 -21
- package/dist/DateInput/index.d.ts +1 -1
- package/dist/DateInput/index.d.ts.map +1 -1
- 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 +33 -19
- package/dist/Dialog/Dialog.d.ts +3 -0
- package/dist/Dialog/Dialog.d.ts.map +1 -1
- package/dist/Dialog/Dialog.js +57 -6
- package/dist/Dialog/DialogContext.d.ts +7 -0
- package/dist/Dialog/DialogContext.d.ts.map +1 -1
- package/dist/Dialog/DialogContext.js +2 -2
- package/dist/Dialog/DialogHeader.d.ts +5 -2
- package/dist/Dialog/DialogHeader.d.ts.map +1 -1
- package/dist/Dialog/DialogHeader.js +6 -1
- package/dist/Divider/Divider.js +1 -1
- 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 +1 -2
- package/dist/DropdownMenu/DropdownMenuCheckboxItem.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenuCheckboxItem.js +5 -3
- package/dist/DropdownMenu/DropdownMenuItem.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenuItem.js +5 -2
- package/dist/DropdownMenu/DropdownMenuRadioGroup.d.ts +1 -2
- package/dist/DropdownMenu/DropdownMenuRadioGroup.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenuRadioGroup.js +1 -2
- package/dist/DropdownMenu/DropdownMenuRadioItem.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenuRadioItem.js +4 -1
- 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 +6 -4
- package/dist/Field/FieldLabel.d.ts +1 -1
- package/dist/Field/FieldLabel.d.ts.map +1 -1
- package/dist/Field/FieldLabel.js +43 -16
- 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 +18 -0
- package/dist/FieldStatus/FieldStatus.d.ts.map +1 -1
- package/dist/FieldStatus/FieldStatus.js +60 -6
- package/dist/FileInput/FileInput.d.ts +10 -2
- package/dist/FileInput/FileInput.d.ts.map +1 -1
- package/dist/FileInput/FileInput.js +54 -35
- package/dist/HoverCard/HoverCard.d.ts +9 -1
- package/dist/HoverCard/HoverCard.d.ts.map +1 -1
- package/dist/HoverCard/HoverCard.js +2 -0
- package/dist/HoverCard/useHoverCard.d.ts +8 -0
- package/dist/HoverCard/useHoverCard.d.ts.map +1 -1
- package/dist/HoverCard/useHoverCard.js +17 -6
- package/dist/Icon/Icon.d.ts +22 -3
- package/dist/Icon/Icon.d.ts.map +1 -1
- package/dist/Icon/Icon.js +19 -3
- package/dist/Item/Item.d.ts +6 -1
- package/dist/Item/Item.d.ts.map +1 -1
- package/dist/Item/Item.js +22 -1
- package/dist/Layer/useLayer.d.ts +6 -0
- package/dist/Layer/useLayer.d.ts.map +1 -1
- package/dist/Layer/useLayer.js +2 -0
- package/dist/Lightbox/Lightbox.d.ts.map +1 -1
- package/dist/Lightbox/Lightbox.js +19 -13
- package/dist/Markdown/Markdown.d.ts.map +1 -1
- package/dist/Markdown/Markdown.js +7 -0
- package/dist/MobileNav/MobileNav.d.ts.map +1 -1
- package/dist/MobileNav/MobileNav.js +6 -1
- package/dist/MobileNav/MobileNavToggle.d.ts.map +1 -1
- package/dist/MobileNav/MobileNavToggle.js +4 -0
- package/dist/MultiSelector/MultiSelector.d.ts +9 -1
- package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
- package/dist/MultiSelector/MultiSelector.js +104 -50
- package/dist/MultiSelector/hooks.d.ts.map +1 -1
- package/dist/MultiSelector/hooks.js +16 -0
- 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.d.ts +0 -1
- package/dist/Outline/Outline.d.ts.map +1 -1
- package/dist/Outline/Outline.js +0 -1
- package/dist/OverflowList/OverflowList.d.ts +20 -3
- package/dist/OverflowList/OverflowList.d.ts.map +1 -1
- package/dist/OverflowList/OverflowList.js +29 -4
- package/dist/Pagination/Pagination.d.ts.map +1 -1
- package/dist/Pagination/Pagination.js +11 -3
- package/dist/Popover/Popover.d.ts.map +1 -1
- package/dist/Popover/Popover.js +3 -2
- package/dist/Popover/usePopover.d.ts.map +1 -1
- package/dist/Popover/usePopover.js +3 -9
- 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/PowerSearch/PowerSearchEditPopover.js +1 -1
- package/dist/PowerSearch/usePowerSearchSource.d.ts.map +1 -1
- package/dist/RadioList/RadioList.d.ts +2 -2
- package/dist/RadioList/RadioListItem.js +4 -4
- package/dist/SegmentedControl/SegmentedControlItem.d.ts +1 -1
- package/dist/SegmentedControl/SegmentedControlItem.d.ts.map +1 -1
- package/dist/SegmentedControl/SegmentedControlItem.js +2 -1
- package/dist/SelectableCard/SelectableCard.d.ts +9 -2
- package/dist/SelectableCard/SelectableCard.d.ts.map +1 -1
- package/dist/SelectableCard/SelectableCard.js +16 -13
- package/dist/Selector/Selector.d.ts +8 -0
- package/dist/Selector/Selector.d.ts.map +1 -1
- package/dist/Selector/Selector.js +65 -19
- package/dist/Selector/hooks.d.ts.map +1 -1
- package/dist/Selector/hooks.js +16 -0
- 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/SideNavHeading.d.ts.map +1 -1
- package/dist/SideNav/SideNavHeading.js +21 -8
- 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/Slider/Slider.d.ts.map +1 -1
- package/dist/Slider/Slider.js +106 -36
- package/dist/Stack/stack.stylex.d.ts +9 -9
- package/dist/Switch/Switch.d.ts +8 -1
- package/dist/Switch/Switch.d.ts.map +1 -1
- package/dist/Switch/Switch.js +160 -91
- package/dist/TabList/Tab.js +2 -2
- package/dist/TabList/TabMenu.js +1 -1
- package/dist/Table/BaseTable.d.ts.map +1 -1
- package/dist/Table/BaseTable.js +33 -6
- package/dist/Table/TableCell.js +3 -3
- package/dist/Table/TableHeaderCell.js +3 -3
- package/dist/Table/index.d.ts +2 -0
- package/dist/Table/index.d.ts.map +1 -1
- package/dist/Table/index.js +1 -0
- package/dist/Table/plugins/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 +36 -26
- package/dist/Table/plugins/rowStatus/index.d.ts +3 -0
- package/dist/Table/plugins/rowStatus/index.d.ts.map +1 -0
- package/dist/Table/plugins/rowStatus/index.js +3 -0
- package/dist/Table/plugins/rowStatus/useTableRowStatus.d.ts +60 -0
- package/dist/Table/plugins/rowStatus/useTableRowStatus.d.ts.map +1 -0
- package/dist/Table/plugins/rowStatus/useTableRowStatus.js +145 -0
- package/dist/Table/plugins/selection/useTableSelection.d.ts +13 -0
- package/dist/Table/plugins/selection/useTableSelection.d.ts.map +1 -1
- package/dist/Table/plugins/selection/useTableSelection.js +7 -1
- package/dist/Table/plugins/stickyColumns/useTableStickyColumns.js +1 -1
- package/dist/Table/plugins/tree/useTableTreeData.d.ts +16 -0
- package/dist/Table/plugins/tree/useTableTreeData.d.ts.map +1 -1
- package/dist/Table/plugins/tree/useTableTreeData.js +105 -12
- package/dist/Table/plugins/tree/useTableTreeState.d.ts +6 -0
- package/dist/Table/plugins/tree/useTableTreeState.d.ts.map +1 -1
- package/dist/Table/plugins/tree/useTableTreeState.js +22 -1
- package/dist/Table/types.d.ts +32 -0
- package/dist/Table/types.d.ts.map +1 -1
- package/dist/Table/useBaseTablePlugins.d.ts.map +1 -1
- package/dist/Table/useBaseTablePlugins.js +5 -3
- 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.d.ts +26 -5
- package/dist/Thumbnail/Thumbnail.d.ts.map +1 -1
- package/dist/Thumbnail/Thumbnail.js +97 -54
- package/dist/Thumbnail/thumbnail.markers.stylex.d.ts +9 -0
- package/dist/Thumbnail/thumbnail.markers.stylex.d.ts.map +1 -0
- package/dist/Thumbnail/thumbnail.markers.stylex.js +14 -0
- package/dist/TimeInput/TimeInput.d.ts +10 -2
- package/dist/TimeInput/TimeInput.d.ts.map +1 -1
- package/dist/TimeInput/TimeInput.js +32 -21
- package/dist/Timestamp/Timestamp.d.ts +3 -1
- package/dist/Timestamp/Timestamp.d.ts.map +1 -1
- package/dist/Timestamp/Timestamp.js +8 -6
- package/dist/Toast/useToast.d.ts.map +1 -1
- package/dist/Toast/useToast.js +2 -5
- package/dist/ToggleButton/ToggleButtonGroup.d.ts +0 -1
- package/dist/ToggleButton/ToggleButtonGroup.d.ts.map +1 -1
- package/dist/ToggleButton/ToggleButtonGroup.js +1 -1
- package/dist/Token/Token.d.ts +30 -3
- package/dist/Token/Token.d.ts.map +1 -1
- package/dist/Token/Token.js +17 -2
- package/dist/Token/index.d.ts +1 -1
- package/dist/Token/index.d.ts.map +1 -1
- package/dist/Tokenizer/Tokenizer.d.ts +10 -3
- package/dist/Tokenizer/Tokenizer.d.ts.map +1 -1
- package/dist/Tokenizer/Tokenizer.js +20 -6
- package/dist/Tooltip/useTooltip.d.ts.map +1 -1
- package/dist/Tooltip/useTooltip.js +17 -1
- package/dist/TopNav/TopNavHeading.d.ts.map +1 -1
- package/dist/TopNav/TopNavHeading.js +18 -8
- package/dist/TopNav/TopNavMegaMenu.js +10 -4
- package/dist/TopNav/TopNavMegaMenuFeaturedCard.d.ts +9 -1
- package/dist/TopNav/TopNavMegaMenuFeaturedCard.d.ts.map +1 -1
- package/dist/TopNav/TopNavMegaMenuFeaturedCard.js +8 -1
- package/dist/TopNav/TopNavMenu.d.ts +2 -1
- package/dist/TopNav/TopNavMenu.d.ts.map +1 -1
- package/dist/TopNav/TopNavMenu.js +68 -6
- package/dist/TreeList/TreeList.d.ts +12 -3
- package/dist/TreeList/TreeList.d.ts.map +1 -1
- package/dist/TreeList/TreeList.js +3 -0
- package/dist/TreeList/TreeListBranches.d.ts +5 -0
- package/dist/TreeList/TreeListBranches.d.ts.map +1 -1
- package/dist/TreeList/TreeListBranches.js +18 -10
- package/dist/TreeList/TreeListItem.d.ts +8 -2
- package/dist/TreeList/TreeListItem.d.ts.map +1 -1
- package/dist/TreeList/TreeListItem.js +59 -21
- package/dist/TreeList/TreeListTypes.d.ts +25 -1
- package/dist/TreeList/TreeListTypes.d.ts.map +1 -1
- package/dist/TreeList/index.d.ts +2 -2
- package/dist/TreeList/index.d.ts.map +1 -1
- package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
- package/dist/Typeahead/BaseTypeahead.js +20 -11
- package/dist/Typeahead/Typeahead.d.ts +9 -2
- package/dist/Typeahead/Typeahead.d.ts.map +1 -1
- package/dist/Typeahead/Typeahead.js +3 -1
- 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 +61 -39
- package/dist/astryx.umd.js +53 -53
- package/dist/astryx.umd.js.map +4 -4
- package/dist/authoring/doc.d.ts.map +1 -1
- package/dist/docs-types.d.ts +8 -0
- package/dist/docs-types.d.ts.map +1 -1
- package/dist/hooks/computeOverflow.d.ts +47 -0
- package/dist/hooks/computeOverflow.d.ts.map +1 -0
- package/dist/hooks/computeOverflow.js +213 -0
- package/dist/hooks/index.d.ts +3 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +3 -1
- 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/useDevWarning.d.ts +18 -0
- package/dist/hooks/useDevWarning.d.ts.map +1 -0
- package/dist/hooks/useDevWarning.js +49 -0
- 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/useInputStatusIcon.d.ts +38 -0
- package/dist/hooks/useInputStatusIcon.d.ts.map +1 -0
- package/dist/hooks/useInputStatusIcon.js +158 -0
- 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/hooks/useOverflow.d.ts +19 -0
- package/dist/hooks/useOverflow.d.ts.map +1 -1
- package/dist/hooks/useOverflow.js +36 -25
- 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/resolve.d.ts.map +1 -1
- package/dist/i18n/resolve.js +7 -18
- 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/Theme.d.ts.map +1 -1
- package/dist/theme/Theme.js +2 -7
- package/dist/theme/derivedVarRegistry.d.ts.map +1 -1
- package/dist/theme/derivedVarRegistry.js +13 -0
- package/dist/theme/generateThemeRules.d.ts.map +1 -1
- package/dist/theme/generateThemeRules.js +51 -0
- package/dist/theme/hct.d.ts +0 -1
- package/dist/theme/hct.d.ts.map +1 -1
- package/dist/theme/hct.js +1 -1
- package/dist/theme/syntax/defineSyntaxTheme.d.ts.map +1 -1
- package/dist/theme/syntax/defineSyntaxTheme.js +2 -1
- package/dist/utils/devWarning.d.ts +42 -0
- package/dist/utils/devWarning.d.ts.map +1 -0
- package/dist/utils/devWarning.js +88 -0
- package/dist/utils/index.d.ts +4 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +4 -2
- package/dist/utils/plainDate.d.ts +30 -0
- package/dist/utils/plainDate.d.ts.map +1 -1
- package/dist/utils/plainDate.js +65 -3
- 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/dist/utils/types.d.ts +13 -0
- package/dist/utils/types.d.ts.map +1 -1
- package/locales/en.json +104 -0
- package/locales/fr-FR.json +14 -0
- package/locales/pseudo.json +78 -0
- package/package.json +6 -1
- package/src/AppShell/AppShell.tsx +6 -0
- package/src/AppShell/AppShellMobileContext.tsx +8 -0
- package/src/AppShell/useAppShellMobile.doc.mjs +8 -0
- package/src/Avatar/Avatar.doc.mjs +64 -5
- package/src/Avatar/Avatar.test.tsx +374 -1
- package/src/Avatar/Avatar.tsx +367 -69
- package/src/Avatar/AvatarStatusDot.doc.mjs +23 -12
- package/src/Avatar/AvatarStatusDot.test.tsx +284 -0
- package/src/Avatar/AvatarStatusDot.tsx +180 -21
- package/src/AvatarGroup/AvatarGroup.doc.mjs +2 -0
- package/src/AvatarGroup/AvatarGroup.test.tsx +141 -1
- package/src/AvatarGroup/AvatarGroup.tsx +58 -3
- package/src/AvatarGroup/AvatarGroupOverflow.tsx +1 -0
- package/src/Banner/Banner.doc.mjs +9 -0
- package/src/Banner/Banner.test.tsx +30 -0
- package/src/Banner/Banner.tsx +53 -9
- package/src/Breadcrumbs/BreadcrumbItem.doc.mjs +26 -0
- package/src/Breadcrumbs/BreadcrumbItem.tsx +333 -14
- package/src/Breadcrumbs/Breadcrumbs.doc.mjs +2 -0
- package/src/Breadcrumbs/Breadcrumbs.test.tsx +335 -2
- package/src/Breadcrumbs/index.ts +31 -0
- package/src/Button/Button.doc.mjs +9 -4
- package/src/Button/Button.test.tsx +49 -0
- package/src/Button/Button.tsx +27 -3
- package/src/ButtonGroup/ButtonGroup.doc.mjs +3 -0
- package/src/ButtonGroup/ButtonGroup.test.tsx +37 -0
- package/src/ButtonGroup/ButtonGroup.tsx +32 -0
- package/src/Calendar/Calendar.doc.mjs +12 -1
- package/src/Calendar/Calendar.test.tsx +362 -19
- package/src/Calendar/Calendar.tsx +111 -32
- package/src/Calendar/dayCellUtils.test.ts +23 -18
- package/src/Calendar/dayCellUtils.ts +3 -3
- package/src/Calendar/styles.ts +33 -39
- package/src/Card/Card.doc.mjs +9 -0
- package/src/Card/Card.test.tsx +21 -3
- package/src/Card/Card.tsx +35 -2
- package/src/Carousel/Carousel.doc.mjs +1 -0
- package/src/Carousel/Carousel.test.tsx +53 -0
- package/src/Carousel/Carousel.tsx +59 -10
- package/src/Chat/ChatComposer.doc.mjs +12 -3
- package/src/Chat/ChatComposer.test.tsx +115 -0
- package/src/Chat/ChatComposer.tsx +73 -9
- package/src/Chat/ChatComposerDrawer.test.tsx +61 -0
- package/src/Chat/ChatComposerDrawer.tsx +11 -1
- package/src/Chat/ChatComposerInput.doc.mjs +7 -0
- package/src/Chat/ChatComposerInput.test.tsx +103 -0
- package/src/Chat/ChatComposerInput.tsx +51 -5
- package/src/Chat/ChatContext.tsx +37 -10
- package/src/Chat/ChatDictationButton.tsx +11 -2
- package/src/Chat/ChatLayout.tsx +7 -5
- package/src/Chat/ChatLayoutScrollButton.tsx +7 -2
- package/src/Chat/ChatMessageMetadata.tsx +1 -2
- package/src/Chat/ChatSendButton.tsx +11 -1
- package/src/Chat/ChatToolCalls.test.tsx +64 -0
- package/src/Chat/ChatToolCalls.tsx +33 -5
- package/src/Chat/index.ts +5 -1
- package/src/Chat/useChatStreamScroll.test.tsx +49 -0
- package/src/Chat/useChatStreamScroll.ts +27 -10
- package/src/Chat/useSpeechRecognition.ts +1 -1
- package/src/Chat/useTriggerMenu.tsx +4 -2
- package/src/CheckboxInput/CheckboxInput.doc.mjs +6 -0
- package/src/CheckboxInput/CheckboxInput.test.tsx +32 -1
- package/src/CheckboxInput/CheckboxInput.tsx +5 -5
- package/src/CheckboxList/CheckboxList.doc.mjs +6 -0
- package/src/CheckboxList/CheckboxList.test.tsx +81 -3
- package/src/CheckboxList/CheckboxListItem.doc.mjs +33 -5
- package/src/CheckboxList/CheckboxListItem.tsx +41 -5
- 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/ClickableCard/ClickableCard.doc.mjs +2 -0
- package/src/ClickableCard/ClickableCard.test.tsx +34 -0
- package/src/ClickableCard/ClickableCard.tsx +13 -3
- package/src/CodeBlock/CodeBlock.test.tsx +56 -0
- package/src/CodeBlock/CodeBlock.tsx +45 -10
- 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.doc.mjs +1 -0
- package/src/CommandPalette/CommandPalette.test.tsx +95 -1
- package/src/CommandPalette/CommandPalette.tsx +44 -3
- package/src/CommandPalette/CommandPaletteGroup.test.tsx +71 -0
- package/src/CommandPalette/CommandPaletteGroup.tsx +12 -1
- package/src/CommandPalette/CommandPaletteInput.doc.mjs +26 -9
- package/src/CommandPalette/CommandPaletteInput.test.tsx +34 -0
- package/src/CommandPalette/CommandPaletteInput.tsx +11 -0
- package/src/CommandPalette/CommandPaletteItem.tsx +1 -1
- package/src/ContextMenu/ContextMenu.test.tsx +235 -0
- package/src/ContextMenu/ContextMenu.tsx +13 -11
- package/src/ContextMenu/index.ts +5 -0
- package/src/DateInput/DateInput.doc.mjs +41 -0
- package/src/DateInput/DateInput.test.tsx +338 -0
- package/src/DateInput/DateInput.tsx +119 -32
- package/src/DateInput/index.ts +1 -0
- 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 +147 -0
- package/src/DateTimeInput/DateTimeInput.tsx +58 -41
- package/src/Dialog/Dialog.doc.mjs +2 -2
- package/src/Dialog/Dialog.test.tsx +77 -4
- package/src/Dialog/Dialog.tsx +89 -5
- package/src/Dialog/DialogContext.ts +9 -2
- package/src/Dialog/DialogHeader.doc.mjs +2 -2
- package/src/Dialog/DialogHeader.tsx +9 -2
- package/src/Divider/Divider.tsx +2 -2
- package/src/DropdownMenu/DropdownMenu.test.tsx +229 -0
- package/src/DropdownMenu/DropdownMenu.tsx +31 -12
- package/src/DropdownMenu/DropdownMenuCheckboxItem.tsx +9 -4
- package/src/DropdownMenu/DropdownMenuItem.tsx +9 -3
- package/src/DropdownMenu/DropdownMenuRadioGroup.tsx +1 -2
- package/src/DropdownMenu/DropdownMenuRadioItem.tsx +8 -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.test.tsx +57 -12
- package/src/Field/Field.tsx +20 -14
- package/src/Field/FieldLabel.tsx +9 -1
- package/src/Field/inputStyles.stylex.ts +2 -0
- package/src/FieldStatus/FieldStatus.doc.mjs +17 -5
- package/src/FieldStatus/FieldStatus.test.tsx +150 -40
- package/src/FieldStatus/FieldStatus.tsx +69 -5
- package/src/FileInput/FileInput.doc.mjs +23 -2
- package/src/FileInput/FileInput.test.tsx +135 -12
- package/src/FileInput/FileInput.tsx +65 -51
- package/src/HoverCard/HoverCard.doc.mjs +13 -0
- package/src/HoverCard/HoverCard.test.tsx +21 -2
- package/src/HoverCard/HoverCard.tsx +11 -0
- package/src/HoverCard/useHoverCard.doc.mjs +2 -0
- package/src/HoverCard/useHoverCard.tsx +39 -5
- package/src/Icon/Icon.doc.mjs +16 -2
- package/src/Icon/Icon.test.tsx +89 -0
- package/src/Icon/Icon.tsx +58 -5
- package/src/IconButton/IconButton.doc.mjs +8 -0
- package/src/IconButton/IconButton.test.tsx +15 -18
- package/src/Item/Item.test.tsx +40 -18
- package/src/Item/Item.tsx +38 -2
- package/src/Layer/useLayer.tsx +8 -0
- package/src/Lightbox/Lightbox.tsx +15 -7
- package/src/List/List.test.tsx +9 -8
- package/src/Markdown/Markdown.test.tsx +21 -0
- package/src/Markdown/Markdown.tsx +4 -0
- package/src/MobileNav/MobileNav.tsx +12 -1
- package/src/MobileNav/MobileNavToggle.test.tsx +116 -0
- package/src/MobileNav/MobileNavToggle.tsx +9 -1
- package/src/MultiSelector/MultiSelector.doc.mjs +24 -2
- package/src/MultiSelector/MultiSelector.test.tsx +498 -3
- package/src/MultiSelector/MultiSelector.tsx +149 -65
- package/src/MultiSelector/hooks.ts +17 -0
- package/src/NavMenu/NavHeadingMenuItem.tsx +1 -1
- package/src/NumberInput/NumberInput.doc.mjs +21 -0
- package/src/NumberInput/NumberInput.test.tsx +82 -7
- package/src/NumberInput/NumberInput.tsx +36 -28
- package/src/Outline/Outline.tsx +0 -1
- package/src/OverflowList/OverflowList.doc.mjs +39 -6
- package/src/OverflowList/OverflowList.test.tsx +111 -0
- package/src/OverflowList/OverflowList.tsx +48 -8
- package/src/Pagination/Pagination.tsx +11 -3
- package/src/Popover/Popover.tsx +7 -4
- package/src/Popover/usePopover.tsx +9 -13
- package/src/PowerSearch/PowerSearch.doc.mjs +29 -0
- package/src/PowerSearch/PowerSearch.test.tsx +43 -0
- package/src/PowerSearch/PowerSearch.tsx +10 -1
- package/src/PowerSearch/PowerSearchEditPopover.test.tsx +67 -0
- package/src/PowerSearch/PowerSearchEditPopover.tsx +1 -1
- package/src/PowerSearch/usePowerSearchSource.ts +1 -2
- package/src/RadioList/RadioList.doc.mjs +6 -0
- package/src/RadioList/RadioList.tsx +2 -2
- package/src/RadioList/RadioListItem.tsx +4 -4
- package/src/SegmentedControl/SegmentedControlItem.tsx +2 -0
- package/src/SelectableCard/SelectableCard.doc.mjs +2 -0
- package/src/SelectableCard/SelectableCard.test.tsx +46 -4
- package/src/SelectableCard/SelectableCard.tsx +29 -16
- package/src/Selector/Selector.doc.mjs +15 -0
- package/src/Selector/Selector.test.tsx +417 -0
- package/src/Selector/Selector.tsx +86 -21
- package/src/Selector/hooks.ts +17 -0
- package/src/SideNav/SideNav.test.tsx +119 -3
- package/src/SideNav/SideNav.tsx +1 -8
- package/src/SideNav/SideNavCollapseButton.tsx +15 -8
- package/src/SideNav/SideNavHeading.tsx +24 -8
- package/src/SideNav/SideNavItem.tsx +10 -4
- package/src/Slider/Slider.doc.mjs +6 -0
- package/src/Slider/Slider.test.tsx +314 -13
- package/src/Slider/Slider.tsx +117 -28
- package/src/Switch/Switch.doc.mjs +142 -42
- package/src/Switch/Switch.test.tsx +54 -1
- package/src/Switch/Switch.tsx +90 -33
- package/src/TabList/Tab.tsx +2 -2
- package/src/TabList/TabMenu.tsx +2 -2
- package/src/Table/BaseTable.tsx +37 -7
- 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/index.ts +5 -0
- package/src/Table/plugins/groupedRows/useTableGroupedRows.tsx +15 -8
- package/src/Table/plugins/rowExpansion/useTableRowExpansion.tsx +24 -17
- package/src/Table/plugins/rowStatus/index.ts +7 -0
- package/src/Table/plugins/rowStatus/useTableRowStatus.test.tsx +138 -0
- package/src/Table/plugins/rowStatus/useTableRowStatus.tsx +189 -0
- package/src/Table/plugins/selection/useTableSelection.test.tsx +77 -3
- package/src/Table/plugins/selection/useTableSelection.tsx +22 -1
- package/src/Table/plugins/stickyColumns/useTableStickyColumns.tsx +1 -1
- package/src/Table/plugins/tree/useTableTreeData.test.tsx +135 -3
- package/src/Table/plugins/tree/useTableTreeData.tsx +139 -8
- package/src/Table/plugins/tree/useTableTreeState.test.tsx +104 -0
- package/src/Table/plugins/tree/useTableTreeState.tsx +46 -2
- package/src/Table/types.ts +33 -0
- package/src/Table/useBaseTablePlugins.ts +10 -6
- package/src/Table/useTableRowStatus.doc.mjs +30 -0
- package/src/Table/useTableSelection.doc.mjs +65 -14
- package/src/Table/useTableTreeData.doc.mjs +29 -0
- package/src/Table/useTableTreeState.doc.mjs +2 -2
- package/src/TextArea/TextArea.doc.mjs +21 -0
- package/src/TextArea/TextArea.test.tsx +32 -1
- 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 +19 -10
- package/src/Thumbnail/Thumbnail.test.tsx +98 -7
- package/src/Thumbnail/Thumbnail.tsx +142 -42
- package/src/Thumbnail/thumbnail.markers.stylex.ts +12 -0
- package/src/TimeInput/TimeInput.doc.mjs +21 -0
- package/src/TimeInput/TimeInput.test.tsx +99 -1
- package/src/TimeInput/TimeInput.tsx +43 -31
- package/src/Timestamp/Timestamp.doc.mjs +4 -4
- package/src/Timestamp/Timestamp.test.tsx +32 -0
- package/src/Timestamp/Timestamp.tsx +28 -8
- package/src/Toast/useToast.tsx +7 -8
- package/src/ToggleButton/ToggleButtonGroup.tsx +1 -1
- package/src/Token/Token.test.tsx +21 -15
- package/src/Token/Token.tsx +31 -14
- package/src/Token/index.ts +1 -1
- package/src/Tokenizer/Tokenizer.doc.mjs +38 -2
- package/src/Tokenizer/Tokenizer.test.tsx +206 -2
- package/src/Tokenizer/Tokenizer.tsx +30 -6
- package/src/Tooltip/Tooltip.test.tsx +46 -0
- package/src/Tooltip/useTooltip.tsx +20 -0
- package/src/TopNav/TopNav.test.tsx +125 -1
- package/src/TopNav/TopNavHeading.tsx +24 -8
- package/src/TopNav/TopNavMegaMenu.test.tsx +149 -1
- package/src/TopNav/TopNavMegaMenu.tsx +10 -4
- package/src/TopNav/TopNavMegaMenuFeaturedCard.doc.mjs +3 -3
- package/src/TopNav/TopNavMegaMenuFeaturedCard.tsx +19 -2
- package/src/TopNav/TopNavMenu.test.tsx +118 -4
- package/src/TopNav/TopNavMenu.tsx +83 -5
- package/src/TreeList/TreeList.doc.mjs +28 -0
- package/src/TreeList/TreeList.test.tsx +272 -0
- package/src/TreeList/TreeList.tsx +23 -2
- package/src/TreeList/TreeListBranches.tsx +24 -8
- package/src/TreeList/TreeListItem.tsx +84 -22
- package/src/TreeList/TreeListTypes.ts +27 -1
- package/src/TreeList/index.ts +2 -2
- package/src/Typeahead/BaseTypeahead.tsx +30 -15
- package/src/Typeahead/Typeahead.doc.mjs +13 -0
- package/src/Typeahead/Typeahead.test.tsx +50 -0
- package/src/Typeahead/Typeahead.tsx +11 -1
- package/src/Typeahead/TypeaheadItem.tsx +2 -1
- package/src/__tests__/inputWidthContract.test.tsx +62 -0
- package/src/authoring/doc.ts +1 -3
- package/src/doc-mjs.d.ts +19 -0
- package/src/docs-types.ts +5 -0
- package/src/hooks/computeOverflow.test.ts +422 -0
- package/src/hooks/computeOverflow.ts +290 -0
- package/src/hooks/index.ts +8 -0
- package/src/hooks/isRtlElement.ts +27 -0
- package/src/hooks/useDevWarning.test.tsx +45 -0
- package/src/hooks/useDevWarning.ts +54 -0
- 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/useInputStatusIcon.test.tsx +162 -0
- package/src/hooks/useInputStatusIcon.tsx +224 -0
- 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/hooks/useOverflow.test.ts +96 -4
- package/src/hooks/useOverflow.ts +74 -33
- package/src/i18n/InternationalizationContext.ts +4 -0
- package/src/i18n/InternationalizationProvider.doc.mjs +99 -2
- 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/resolve.ts +9 -21
- package/src/i18n/useDirection.ts +29 -0
- package/src/reset.css +0 -26
- package/src/reset.test.ts +60 -0
- package/src/theme/Theme.tsx +11 -14
- package/src/theme/derivedVarRegistry.test.ts +1 -0
- package/src/theme/derivedVarRegistry.ts +6 -0
- package/src/theme/generateThemeRules.test.ts +107 -0
- package/src/theme/generateThemeRules.ts +56 -0
- package/src/theme/hct.ts +1 -1
- package/src/theme/syntax/defineSyntaxTheme.ts +5 -6
- package/src/utils/devWarning.test.ts +56 -0
- package/src/utils/devWarning.ts +102 -0
- package/src/utils/index.ts +8 -0
- package/src/utils/plainDate.test.ts +46 -6
- package/src/utils/plainDate.ts +69 -3
- package/src/utils/rtlStyles.ts +27 -0
- package/src/utils/types.ts +14 -0
package/dist/utils/plainDate.js
CHANGED
|
@@ -58,9 +58,18 @@ export function plainDateDayOfWeek(pd) {
|
|
|
58
58
|
return plainDateToDate(pd).getDay();
|
|
59
59
|
}
|
|
60
60
|
export function plainDateAddMonths(pd, n) {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
61
|
+
// Pure month arithmetic with day clamping (Temporal.PlainDate.add
|
|
62
|
+
// semantics): Jan 31 + 1 month is Feb 28/29, not Mar 2/3. Date#setMonth
|
|
63
|
+
// would overflow the excess days into the following month instead.
|
|
64
|
+
const totalMonths = pd.year * 12 + (pd.month - 1) + n;
|
|
65
|
+
const year = Math.floor(totalMonths / 12);
|
|
66
|
+
const month = (totalMonths % 12 + 12) % 12 + 1;
|
|
67
|
+
const day = Math.min(pd.day, getDaysInMonth(year, month));
|
|
68
|
+
return {
|
|
69
|
+
year,
|
|
70
|
+
month,
|
|
71
|
+
day
|
|
72
|
+
};
|
|
64
73
|
}
|
|
65
74
|
export function plainDateAddDays(pd, n) {
|
|
66
75
|
const d = plainDateToDate(pd);
|
|
@@ -161,6 +170,15 @@ export const DATE_FORMAT_WITH_WEEKDAY = {
|
|
|
161
170
|
day: 'numeric'
|
|
162
171
|
};
|
|
163
172
|
|
|
173
|
+
// e.g. "Wed, May 21, 2026" (locale-dependent) — short weekday + short month.
|
|
174
|
+
// Backs the shared `date_weekday` format used by both Timestamp and DateInput.
|
|
175
|
+
export const DATE_FORMAT_SHORT_WITH_WEEKDAY = {
|
|
176
|
+
weekday: 'short',
|
|
177
|
+
month: 'short',
|
|
178
|
+
day: 'numeric',
|
|
179
|
+
year: 'numeric'
|
|
180
|
+
};
|
|
181
|
+
|
|
164
182
|
// e.g. "May 21, 2026" (locale-dependent)
|
|
165
183
|
export const DATE_FORMAT_LONG = {
|
|
166
184
|
year: 'numeric',
|
|
@@ -188,4 +206,48 @@ export const DATE_FORMAT_SHORT_WITH_YEAR = {
|
|
|
188
206
|
};
|
|
189
207
|
export function plainDateFormat(pd, options) {
|
|
190
208
|
return new Intl.DateTimeFormat(undefined, options).format(plainDateToDate(pd));
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
// =============================================================================
|
|
212
|
+
// Shared date-only format vocabulary
|
|
213
|
+
// =============================================================================
|
|
214
|
+
|
|
215
|
+
/**
|
|
216
|
+
* The date-only members of Timestamp's `format` vocabulary that a
|
|
217
|
+
* calendar-date field (no time-of-day) can render. Both Timestamp and
|
|
218
|
+
* DateInput share these string literals and the mapping below so that the same
|
|
219
|
+
* literal renders the same date shape in either component.
|
|
220
|
+
*
|
|
221
|
+
* - `date`: locale short-month date, e.g. "Mar 21, 2026"
|
|
222
|
+
* - `date_long`: locale long-month date, e.g. "March 21, 2026"
|
|
223
|
+
* - `date_weekday`: short weekday + short-month date, e.g. "Wed, Mar 21, 2026"
|
|
224
|
+
* - `system_date`: ISO 8601 calendar date, e.g. "2026-03-21"
|
|
225
|
+
*/
|
|
226
|
+
|
|
227
|
+
/**
|
|
228
|
+
* Intl option bags for the locale-aware shared date members. `system_date` is
|
|
229
|
+
* intentionally absent — it is emitted as a fixed ISO `YYYY-MM-DD` string, not
|
|
230
|
+
* via `Intl` — and is handled directly by {@link formatSharedDate}.
|
|
231
|
+
*
|
|
232
|
+
* This is the single source of truth consumed by both Timestamp's
|
|
233
|
+
* `formatTimestamp` switch and DateInput's display path, so the two never
|
|
234
|
+
* drift for the members they share.
|
|
235
|
+
*/
|
|
236
|
+
export const SHARED_DATE_FORMAT_OPTIONS = {
|
|
237
|
+
date: DATE_FORMAT_SHORT_WITH_YEAR,
|
|
238
|
+
date_long: DATE_FORMAT_LONG,
|
|
239
|
+
date_weekday: DATE_FORMAT_SHORT_WITH_WEEKDAY
|
|
240
|
+
};
|
|
241
|
+
|
|
242
|
+
/**
|
|
243
|
+
* Renders a {@link PlainDate} using one of the {@link SharedDateFormat}
|
|
244
|
+
* members. The shared entry point DateInput uses for the named-format path;
|
|
245
|
+
* Timestamp maps the same members onto {@link SHARED_DATE_FORMAT_OPTIONS} in
|
|
246
|
+
* its own `formatTimestamp` switch (its input is a `Date`, not a `PlainDate`).
|
|
247
|
+
*/
|
|
248
|
+
export function formatSharedDate(pd, format) {
|
|
249
|
+
if (format === 'system_date') {
|
|
250
|
+
return plainDateToISO(pd);
|
|
251
|
+
}
|
|
252
|
+
return plainDateFormat(pd, SHARED_DATE_FORMAT_OPTIONS[format]);
|
|
191
253
|
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file rtlStyles.ts
|
|
3
|
+
* @input None
|
|
4
|
+
* @output Shared StyleX style that horizontally mirrors an element under RTL
|
|
5
|
+
* @position Core utility; applied to directional-icon wrappers in Calendar,
|
|
6
|
+
* Lightbox, and the Table expand/disclosure plugins
|
|
7
|
+
*
|
|
8
|
+
* `mirror` flips its element on the horizontal axis only when an ancestor
|
|
9
|
+
* carries `dir="rtl"`. Using `scaleX(-1)` (not `scale(-1, -1)`) keeps the
|
|
10
|
+
* vertical axis intact, and applying it OUTSIDE any state-driven rotation lets
|
|
11
|
+
* it compose correctly — e.g. a Table disclosure chevron still rotates to point
|
|
12
|
+
* down when expanded under RTL. The `:is([dir="rtl"] *)` selector matches the
|
|
13
|
+
* MobileNav drawer convention; a bare `direction: rtl` alone won't trigger it.
|
|
14
|
+
*
|
|
15
|
+
* SYNC: When modified, update:
|
|
16
|
+
* - /packages/core/src/utils/index.ts
|
|
17
|
+
*/
|
|
18
|
+
import * as stylex from '@stylexjs/stylex';
|
|
19
|
+
export declare const rtlStyles: Readonly<{
|
|
20
|
+
readonly mirror: Readonly<{
|
|
21
|
+
readonly transform: stylex.StyleXClassNameFor<"transform", "scaleX(-1)" | null>;
|
|
22
|
+
}>;
|
|
23
|
+
}>;
|
|
24
|
+
//# sourceMappingURL=rtlStyles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rtlStyles.d.ts","sourceRoot":"","sources":["../../src/utils/rtlStyles.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAE3C,eAAO,MAAM,SAAS;;;;EAIpB,CAAC"}
|
|
@@ -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/dist/utils/types.d.ts
CHANGED
|
@@ -8,6 +8,19 @@
|
|
|
8
8
|
* Size value type - accepts numbers (treated as pixels) or strings (e.g., '100%', '50vh').
|
|
9
9
|
*/
|
|
10
10
|
export type SizeValue = number | string;
|
|
11
|
+
/**
|
|
12
|
+
* Resting elevation level for configurable surfaces.
|
|
13
|
+
*
|
|
14
|
+
* Maps to the shadow token scale:
|
|
15
|
+
* - `none` = flat (`box-shadow: none`)
|
|
16
|
+
* - `low` = `--shadow-low`
|
|
17
|
+
* - `med` = `--shadow-med`
|
|
18
|
+
* - `high` = `--shadow-high`
|
|
19
|
+
*
|
|
20
|
+
* Components narrow this union to the steps they actually need — e.g. Card
|
|
21
|
+
* exposes all four, while ChatComposer exposes only `'none' | 'low'`.
|
|
22
|
+
*/
|
|
23
|
+
export type Elevation = 'none' | 'low' | 'med' | 'high';
|
|
11
24
|
/**
|
|
12
25
|
* Numeric spacing step from the Astryx spacing scale.
|
|
13
26
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/utils/types.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAExC;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/utils/types.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAExC;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;AAExD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC"}
|
package/locales/en.json
CHANGED
|
@@ -235,10 +235,18 @@
|
|
|
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
|
+
},
|
|
242
250
|
"@astryx.banner.dismiss": {
|
|
243
251
|
"defaultMessage": "Dismiss",
|
|
244
252
|
"description": "\"Dismiss\" = close/hide this notification (not \"reject a person\"). Aria label AND tooltip on the small X button on a Banner."
|
|
@@ -251,6 +259,34 @@
|
|
|
251
259
|
"defaultMessage": "Next month",
|
|
252
260
|
"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
261
|
},
|
|
262
|
+
"@astryx.calendar.daySelected": {
|
|
263
|
+
"defaultMessage": "{date}, selected",
|
|
264
|
+
"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."
|
|
265
|
+
},
|
|
266
|
+
"@astryx.calendar.dayRangeStart": {
|
|
267
|
+
"defaultMessage": "{date}, range start",
|
|
268
|
+
"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."
|
|
269
|
+
},
|
|
270
|
+
"@astryx.calendar.dayRangeEnd": {
|
|
271
|
+
"defaultMessage": "{date}, range end",
|
|
272
|
+
"description": "Accessible name for the Calendar day button that ends the selected date range. `{date}` is the localized full date. Pairs with `calendar.dayRangeStart`."
|
|
273
|
+
},
|
|
274
|
+
"@astryx.calendar.dayRangeStartAndEnd": {
|
|
275
|
+
"defaultMessage": "{date}, range start and range end",
|
|
276
|
+
"description": "Accessible name for a Calendar day button that both begins and ends a completed one-day range. `{date}` is the localized full date."
|
|
277
|
+
},
|
|
278
|
+
"@astryx.calendar.dayInRange": {
|
|
279
|
+
"defaultMessage": "{date}, in range",
|
|
280
|
+
"description": "Accessible name for a Calendar day button strictly inside the selected date range (not an endpoint). `{date}` is the localized full date."
|
|
281
|
+
},
|
|
282
|
+
"@astryx.calendar.rangeStartAnnounce": {
|
|
283
|
+
"defaultMessage": "Start date {date}. Select an end date.",
|
|
284
|
+
"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."
|
|
285
|
+
},
|
|
286
|
+
"@astryx.calendar.rangeCompleteAnnounce": {
|
|
287
|
+
"defaultMessage": "Selected range: {start} to {end}.",
|
|
288
|
+
"description": "Screen-reader announcement after the second pick completes a Calendar range selection. `{start}` and `{end}` are localized full dates in chronological order."
|
|
289
|
+
},
|
|
254
290
|
"@astryx.carousel.label": {
|
|
255
291
|
"defaultMessage": "Carousel",
|
|
256
292
|
"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\")."
|
|
@@ -263,6 +299,10 @@
|
|
|
263
299
|
"defaultMessage": "Scroll right",
|
|
264
300
|
"description": "Screen-reader-only label on the right arrow button in a Carousel. Pairs with `carousel.scrollLeft`; same RTL note."
|
|
265
301
|
},
|
|
302
|
+
"@astryx.carousel.slideLabel": {
|
|
303
|
+
"defaultMessage": "Slide {current, number} of {total, number}",
|
|
304
|
+
"description": "Screen-reader accessible name for one slide in a Carousel, giving its position. `current` is the 1-based slide number; `total` is the slide count."
|
|
305
|
+
},
|
|
266
306
|
"@astryx.chat.status.sending": {
|
|
267
307
|
"defaultMessage": "Sending",
|
|
268
308
|
"description": "Chat send-status caption under an outgoing message while it is being transmitted. Part of the set sending → sent → delivered → read (or failed) — keep tense/aspect consistent."
|
|
@@ -303,6 +343,18 @@
|
|
|
303
343
|
"defaultMessage": "Type to search",
|
|
304
344
|
"description": "Onboarding empty-state text shown inside a CommandPalette on first open, before the user has typed anything. Imperative sentence fragment."
|
|
305
345
|
},
|
|
346
|
+
"@astryx.commandPalette.resultCount": {
|
|
347
|
+
"defaultMessage": "{count, number} {count, plural, one {result} other {results}}",
|
|
348
|
+
"description": "Screen-reader-only announcement of how many commands match the CommandPalette query as the user types. Example: `12 results`, `1 result`; keep compact."
|
|
349
|
+
},
|
|
350
|
+
"@astryx.commandPalette.noResultsFor": {
|
|
351
|
+
"defaultMessage": "No results for {query}",
|
|
352
|
+
"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."
|
|
353
|
+
},
|
|
354
|
+
"@astryx.commandPalette.loading": {
|
|
355
|
+
"defaultMessage": "Loading",
|
|
356
|
+
"description": "Screen-reader-only announcement that a CommandPalette search has started and results are being fetched. Present-progressive form; matches the visible spinner."
|
|
357
|
+
},
|
|
306
358
|
"@astryx.dateRangeInput.presetDateRanges": {
|
|
307
359
|
"defaultMessage": "Preset date ranges",
|
|
308
360
|
"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\")."
|
|
@@ -411,6 +463,10 @@
|
|
|
411
463
|
"defaultMessage": "Select row",
|
|
412
464
|
"description": "Aria label for the \"select row\" checkbox on a Table row."
|
|
413
465
|
},
|
|
466
|
+
"@astryx.table.selection.selectRowNamed": {
|
|
467
|
+
"defaultMessage": "Select {label}",
|
|
468
|
+
"description": "Aria label for a Table row's selection checkbox when a per-row label is available (via getRowLabel). `label` is the row's human-readable identity, e.g. \"Alice\"."
|
|
469
|
+
},
|
|
414
470
|
"@astryx.table.sort.ascending": {
|
|
415
471
|
"defaultMessage": "Sort ascending",
|
|
416
472
|
"description": "Screen-reader-only label on a column header button that will sort the column ascending. Part of a set with `sort.descending` and `sort.clear` — keep parallel."
|
|
@@ -635,6 +691,14 @@
|
|
|
635
691
|
"defaultMessage": "Collapse {label}",
|
|
636
692
|
"description": "Screen-reader-only label on the ChatComposerDrawer toggle when the drawer is expanded. Example: `Collapse Attachments`. Pairs with `expand`."
|
|
637
693
|
},
|
|
694
|
+
"@astryx.chatDictationButton.startDictation": {
|
|
695
|
+
"defaultMessage": "Start dictation",
|
|
696
|
+
"description": "Accessible label for the microphone button when idle (not listening)."
|
|
697
|
+
},
|
|
698
|
+
"@astryx.chatDictationButton.stopDictation": {
|
|
699
|
+
"defaultMessage": "Stop dictation",
|
|
700
|
+
"description": "Accessible label for the microphone button when actively listening."
|
|
701
|
+
},
|
|
638
702
|
"@astryx.chatLayout.newMessages": {
|
|
639
703
|
"defaultMessage": "New messages",
|
|
640
704
|
"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."
|
|
@@ -655,6 +719,14 @@
|
|
|
655
719
|
"defaultMessage": "Send",
|
|
656
720
|
"description": "Primary button label on the chat submit button (paperplane icon). Imperative verb; pairs with `Stop`. Very short."
|
|
657
721
|
},
|
|
722
|
+
"@astryx.chatToolCalls.error": {
|
|
723
|
+
"defaultMessage": "Error: {message}",
|
|
724
|
+
"description": "Screen-reader text for a tool call that failed. {message} is the error detail."
|
|
725
|
+
},
|
|
726
|
+
"@astryx.chatToolCalls.groupLabel": {
|
|
727
|
+
"defaultMessage": "{count} tool calls",
|
|
728
|
+
"description": "Summary label shown in the group header when multiple tool calls are expanded. {count} is the number of calls."
|
|
729
|
+
},
|
|
658
730
|
"@astryx.chatTriggerMenu.suggestions": {
|
|
659
731
|
"defaultMessage": "Suggestions",
|
|
660
732
|
"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."
|
|
@@ -679,6 +751,14 @@
|
|
|
679
751
|
"defaultMessage": "Clear {label}",
|
|
680
752
|
"description": "Screen-reader-only label on the X that removes the selected file from a FileInput. Example: `Clear Attachment`, `Clear Résumé`."
|
|
681
753
|
},
|
|
754
|
+
"@astryx.fileInput.required": {
|
|
755
|
+
"defaultMessage": "Required",
|
|
756
|
+
"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\"."
|
|
757
|
+
},
|
|
758
|
+
"@astryx.fileInput.triggerWithFiles": {
|
|
759
|
+
"defaultMessage": "{label}, {fileNames}",
|
|
760
|
+
"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`."
|
|
761
|
+
},
|
|
682
762
|
"@astryx.lightbox.mediaViewer": {
|
|
683
763
|
"defaultMessage": "Media viewer",
|
|
684
764
|
"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."
|
|
@@ -691,6 +771,18 @@
|
|
|
691
771
|
"defaultMessage": "Clear all {label}",
|
|
692
772
|
"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."
|
|
693
773
|
},
|
|
774
|
+
"@astryx.input.statusButton.error": {
|
|
775
|
+
"defaultMessage": "Error details",
|
|
776
|
+
"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."
|
|
777
|
+
},
|
|
778
|
+
"@astryx.input.statusButton.warning": {
|
|
779
|
+
"defaultMessage": "Warning details",
|
|
780
|
+
"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."
|
|
781
|
+
},
|
|
782
|
+
"@astryx.input.statusButton.success": {
|
|
783
|
+
"defaultMessage": "Success details",
|
|
784
|
+
"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."
|
|
785
|
+
},
|
|
694
786
|
"@astryx.numberInput.clearLabel": {
|
|
695
787
|
"defaultMessage": "Clear {label}",
|
|
696
788
|
"description": "Screen-reader-only label on the X that clears the value from a NumberInput. Example: `Clear Age`, `Clear Quantity`."
|
|
@@ -751,6 +843,14 @@
|
|
|
751
843
|
"defaultMessage": "Expand row",
|
|
752
844
|
"description": "Aria label for the Table tree-data expander chevron when the row is currently collapsed."
|
|
753
845
|
},
|
|
846
|
+
"@astryx.tableTree.collapseAllRows": {
|
|
847
|
+
"defaultMessage": "Collapse all rows",
|
|
848
|
+
"description": "Aria label for the Table tree-data header toggle when all rows are expanded and clicking it collapses them."
|
|
849
|
+
},
|
|
850
|
+
"@astryx.tableTree.expandAllRows": {
|
|
851
|
+
"defaultMessage": "Expand all rows",
|
|
852
|
+
"description": "Aria label for the Table tree-data header toggle when rows are collapsed and clicking it expands them."
|
|
853
|
+
},
|
|
754
854
|
"@astryx.textInput.clearLabel": {
|
|
755
855
|
"defaultMessage": "Clear {label}",
|
|
756
856
|
"description": "Screen-reader-only label on the X that clears the value from a TextInput. Example: `Clear Email`, `Clear Name`."
|
|
@@ -763,6 +863,10 @@
|
|
|
763
863
|
"defaultMessage": "Open {accessibleName}",
|
|
764
864
|
"description": "\"Open\" = launch/reveal (not \"unfold\" or the adjective). Screen-reader-only name on a clickable Thumbnail — example: `Open Sunset photo`."
|
|
765
865
|
},
|
|
866
|
+
"@astryx.thumbnail.fallbackName": {
|
|
867
|
+
"defaultMessage": "Thumbnail",
|
|
868
|
+
"description": "Generic screen-reader name for a Thumbnail (image preview) that has no `alt` or `label`. Last-resort fallback so the control is never nameless; prefer a real name via `alt` or `label`."
|
|
869
|
+
},
|
|
766
870
|
"@astryx.timeInput.clearLabel": {
|
|
767
871
|
"defaultMessage": "Clear {label}",
|
|
768
872
|
"description": "Screen-reader-only label on the X that clears the value from a TimeInput. Example: `Clear Start time`."
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"@astryx.pagination.previous": {
|
|
3
|
+
"defaultMessage": "Aller à la page précédente",
|
|
4
|
+
"description": "Aria label for the previous-page button."
|
|
5
|
+
},
|
|
6
|
+
"@astryx.pagination.next": {
|
|
7
|
+
"defaultMessage": "Aller à la page suivante",
|
|
8
|
+
"description": "Aria label for the next-page button."
|
|
9
|
+
},
|
|
10
|
+
"@astryx.selector.placeholder": {
|
|
11
|
+
"defaultMessage": "Sélectionner…",
|
|
12
|
+
"description": "Placeholder text on an empty Selector trigger button (a dropdown). Imperative verb; trailing `…` is one character. Very short — appears on the button face."
|
|
13
|
+
}
|
|
14
|
+
}
|
package/locales/pseudo.json
CHANGED
|
@@ -176,9 +176,15 @@
|
|
|
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
|
+
},
|
|
182
188
|
"@astryx.banner.dismiss": {
|
|
183
189
|
"defaultMessage": "⟦Ðíšɱíšš⟧"
|
|
184
190
|
},
|
|
@@ -188,6 +194,27 @@
|
|
|
188
194
|
"@astryx.calendar.nextMonth": {
|
|
189
195
|
"defaultMessage": "⟦Ñéẋţ ɱóñţĥ⟧"
|
|
190
196
|
},
|
|
197
|
+
"@astryx.calendar.daySelected": {
|
|
198
|
+
"defaultMessage": "⟦{date}, šéłéçţéð⟧"
|
|
199
|
+
},
|
|
200
|
+
"@astryx.calendar.dayRangeStart": {
|
|
201
|
+
"defaultMessage": "⟦{date}, řàñĝé šţàřţ⟧"
|
|
202
|
+
},
|
|
203
|
+
"@astryx.calendar.dayRangeEnd": {
|
|
204
|
+
"defaultMessage": "⟦{date}, řàñĝé éñð⟧"
|
|
205
|
+
},
|
|
206
|
+
"@astryx.calendar.dayRangeStartAndEnd": {
|
|
207
|
+
"defaultMessage": "⟦{date}, řàñĝé šţàřţ àñð řàñĝé éñð⟧"
|
|
208
|
+
},
|
|
209
|
+
"@astryx.calendar.dayInRange": {
|
|
210
|
+
"defaultMessage": "⟦{date}, íñ řàñĝé⟧"
|
|
211
|
+
},
|
|
212
|
+
"@astryx.calendar.rangeStartAnnounce": {
|
|
213
|
+
"defaultMessage": "⟦Šţàřţ ðàţé {date}. Šéłéçţ àñ éñð ðàţé.⟧"
|
|
214
|
+
},
|
|
215
|
+
"@astryx.calendar.rangeCompleteAnnounce": {
|
|
216
|
+
"defaultMessage": "⟦Šéłéçţéð řàñĝé: {start} ţó {end}.⟧"
|
|
217
|
+
},
|
|
191
218
|
"@astryx.carousel.label": {
|
|
192
219
|
"defaultMessage": "⟦Çàřóúšéł⟧"
|
|
193
220
|
},
|
|
@@ -197,6 +224,9 @@
|
|
|
197
224
|
"@astryx.carousel.scrollRight": {
|
|
198
225
|
"defaultMessage": "⟦Šçřółł říĝĥţ⟧"
|
|
199
226
|
},
|
|
227
|
+
"@astryx.carousel.slideLabel": {
|
|
228
|
+
"defaultMessage": "⟦Šłíðé {current, number} óƒ {total, number}⟧"
|
|
229
|
+
},
|
|
200
230
|
"@astryx.chat.status.sending": {
|
|
201
231
|
"defaultMessage": "⟦Šéñðíñĝ⟧"
|
|
202
232
|
},
|
|
@@ -227,6 +257,15 @@
|
|
|
227
257
|
"@astryx.commandPalette.emptyBootstrap": {
|
|
228
258
|
"defaultMessage": "⟦Ţýþé ţó šéàřçĥ⟧"
|
|
229
259
|
},
|
|
260
|
+
"@astryx.commandPalette.resultCount": {
|
|
261
|
+
"defaultMessage": "⟦{count, number} {count, plural, one {result} other {results}}⟧"
|
|
262
|
+
},
|
|
263
|
+
"@astryx.commandPalette.noResultsFor": {
|
|
264
|
+
"defaultMessage": "⟦Ñó řéšúłţš ƒóř {query}⟧"
|
|
265
|
+
},
|
|
266
|
+
"@astryx.commandPalette.loading": {
|
|
267
|
+
"defaultMessage": "⟦Łóàðíñĝ⟧"
|
|
268
|
+
},
|
|
230
269
|
"@astryx.dateRangeInput.presetDateRanges": {
|
|
231
270
|
"defaultMessage": "⟦Þřéšéţ ðàţé řàñĝéš⟧"
|
|
232
271
|
},
|
|
@@ -308,6 +347,9 @@
|
|
|
308
347
|
"@astryx.table.selection.selectRow": {
|
|
309
348
|
"defaultMessage": "⟦Šéłéçţ řóŵ⟧"
|
|
310
349
|
},
|
|
350
|
+
"@astryx.table.selection.selectRowNamed": {
|
|
351
|
+
"defaultMessage": "⟦Šéłéçţ {label}⟧"
|
|
352
|
+
},
|
|
311
353
|
"@astryx.table.sort.ascending": {
|
|
312
354
|
"defaultMessage": "⟦Šóřţ àšçéñðíñĝ⟧"
|
|
313
355
|
},
|
|
@@ -476,6 +518,12 @@
|
|
|
476
518
|
"@astryx.chatComposerDrawer.collapse": {
|
|
477
519
|
"defaultMessage": "⟦Çółłàþšé {label}⟧"
|
|
478
520
|
},
|
|
521
|
+
"@astryx.chatDictationButton.startDictation": {
|
|
522
|
+
"defaultMessage": "⟦Šţàřţ ðíçţàţíóñ⟧"
|
|
523
|
+
},
|
|
524
|
+
"@astryx.chatDictationButton.stopDictation": {
|
|
525
|
+
"defaultMessage": "⟦Šţóþ ðíçţàţíóñ⟧"
|
|
526
|
+
},
|
|
479
527
|
"@astryx.chatLayout.newMessages": {
|
|
480
528
|
"defaultMessage": "⟦Ñéŵ ɱéššàĝéš⟧"
|
|
481
529
|
},
|
|
@@ -491,6 +539,12 @@
|
|
|
491
539
|
"@astryx.chatSendButton.send": {
|
|
492
540
|
"defaultMessage": "⟦Šéñð⟧"
|
|
493
541
|
},
|
|
542
|
+
"@astryx.chatToolCalls.error": {
|
|
543
|
+
"defaultMessage": "⟦Éřřóř: {message}⟧"
|
|
544
|
+
},
|
|
545
|
+
"@astryx.chatToolCalls.groupLabel": {
|
|
546
|
+
"defaultMessage": "⟦{count} ţóół çàłłš⟧"
|
|
547
|
+
},
|
|
494
548
|
"@astryx.chatTriggerMenu.suggestions": {
|
|
495
549
|
"defaultMessage": "⟦Šúĝĝéšţíóñš⟧"
|
|
496
550
|
},
|
|
@@ -509,6 +563,12 @@
|
|
|
509
563
|
"@astryx.fileInput.clearLabel": {
|
|
510
564
|
"defaultMessage": "⟦Çłéàř {label}⟧"
|
|
511
565
|
},
|
|
566
|
+
"@astryx.fileInput.required": {
|
|
567
|
+
"defaultMessage": "⟦Řéɋúířéð⟧"
|
|
568
|
+
},
|
|
569
|
+
"@astryx.fileInput.triggerWithFiles": {
|
|
570
|
+
"defaultMessage": "⟦{label}, {fileNames}⟧"
|
|
571
|
+
},
|
|
512
572
|
"@astryx.lightbox.mediaViewer": {
|
|
513
573
|
"defaultMessage": "⟦Ṁéðíà ṽíéŵéř⟧"
|
|
514
574
|
},
|
|
@@ -518,6 +578,15 @@
|
|
|
518
578
|
"@astryx.multiSelector.clearAll": {
|
|
519
579
|
"defaultMessage": "⟦Çłéàř àłł {label}⟧"
|
|
520
580
|
},
|
|
581
|
+
"@astryx.input.statusButton.error": {
|
|
582
|
+
"defaultMessage": "⟦Éřřóř ðéţàíłš⟧"
|
|
583
|
+
},
|
|
584
|
+
"@astryx.input.statusButton.warning": {
|
|
585
|
+
"defaultMessage": "⟦Ŵàřñíñĝ ðéţàíłš⟧"
|
|
586
|
+
},
|
|
587
|
+
"@astryx.input.statusButton.success": {
|
|
588
|
+
"defaultMessage": "⟦Šúççéšš ðéţàíłš⟧"
|
|
589
|
+
},
|
|
521
590
|
"@astryx.numberInput.clearLabel": {
|
|
522
591
|
"defaultMessage": "⟦Çłéàř {label}⟧"
|
|
523
592
|
},
|
|
@@ -563,6 +632,12 @@
|
|
|
563
632
|
"@astryx.tableTree.expandRow": {
|
|
564
633
|
"defaultMessage": "⟦Éẋþàñð řóŵ⟧"
|
|
565
634
|
},
|
|
635
|
+
"@astryx.tableTree.collapseAllRows": {
|
|
636
|
+
"defaultMessage": "⟦Çółłàþšé àłł řóŵš⟧"
|
|
637
|
+
},
|
|
638
|
+
"@astryx.tableTree.expandAllRows": {
|
|
639
|
+
"defaultMessage": "⟦Éẋþàñð àłł řóŵš⟧"
|
|
640
|
+
},
|
|
566
641
|
"@astryx.textInput.clearLabel": {
|
|
567
642
|
"defaultMessage": "⟦Çłéàř {label}⟧"
|
|
568
643
|
},
|
|
@@ -572,6 +647,9 @@
|
|
|
572
647
|
"@astryx.thumbnail.open": {
|
|
573
648
|
"defaultMessage": "⟦Óþéñ {accessibleName}⟧"
|
|
574
649
|
},
|
|
650
|
+
"@astryx.thumbnail.fallbackName": {
|
|
651
|
+
"defaultMessage": "⟦Ţĥúɱƀñàíł⟧"
|
|
652
|
+
},
|
|
575
653
|
"@astryx.timeInput.clearLabel": {
|
|
576
654
|
"defaultMessage": "⟦Çłéàř {label}⟧"
|
|
577
655
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@astryxdesign/core",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.9-canary.02ef052",
|
|
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",
|
|
@@ -24,6 +24,7 @@ import {
|
|
|
24
24
|
isValidElement,
|
|
25
25
|
useCallback,
|
|
26
26
|
useEffect,
|
|
27
|
+
useId,
|
|
27
28
|
useMemo,
|
|
28
29
|
useRef,
|
|
29
30
|
useState,
|
|
@@ -600,10 +601,14 @@ export function AppShell({
|
|
|
600
601
|
// =========================================================================
|
|
601
602
|
// Mobile context — shared with MobileNavToggle and future TopNav mobile
|
|
602
603
|
// =========================================================================
|
|
604
|
+
// Stable id shared by the drawer (applied as its `id`) and the toggle
|
|
605
|
+
// (referenced via `aria-controls`) so screen readers know what it controls.
|
|
606
|
+
const mobileNavId = useId();
|
|
603
607
|
const mobileContextValue = useMemo<AppShellMobileContextValue>(
|
|
604
608
|
() => ({
|
|
605
609
|
isMobile: isBelowBreakpoint,
|
|
606
610
|
isMobileNavOpen,
|
|
611
|
+
mobileNavId,
|
|
607
612
|
toggleMobileNav: () =>
|
|
608
613
|
mobileNavEnabled && setMobileNavOpen(!isMobileNavOpen),
|
|
609
614
|
openMobileNav: () => mobileNavEnabled && setMobileNavOpen(true),
|
|
@@ -614,6 +619,7 @@ export function AppShell({
|
|
|
614
619
|
[
|
|
615
620
|
isBelowBreakpoint,
|
|
616
621
|
isMobileNavOpen,
|
|
622
|
+
mobileNavId,
|
|
617
623
|
setMobileNavOpen,
|
|
618
624
|
mobileNavEnabled,
|
|
619
625
|
mobileNavHasToggle,
|
|
@@ -20,6 +20,14 @@ export interface AppShellMobileContextValue {
|
|
|
20
20
|
isMobile: boolean;
|
|
21
21
|
/** Whether the mobile nav drawer is currently open */
|
|
22
22
|
isMobileNavOpen: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* DOM id of the mobile nav drawer. `AppShell` sets this so the toggle can
|
|
25
|
+
* point its `aria-controls` at the drawer and the drawer can apply it as its
|
|
26
|
+
* `id`. Optional: callers that construct this context by hand may omit it, in
|
|
27
|
+
* which case `MobileNav` falls back to a locally generated id and the toggle
|
|
28
|
+
* simply drops `aria-controls`.
|
|
29
|
+
*/
|
|
30
|
+
mobileNavId?: string;
|
|
23
31
|
/** Toggle the mobile nav drawer open/closed */
|
|
24
32
|
toggleMobileNav: () => void;
|
|
25
33
|
/** Open the mobile nav drawer */
|
|
@@ -31,6 +31,12 @@ export const docs = {
|
|
|
31
31
|
description:
|
|
32
32
|
'Whether the AppShell-managed mobile navigation drawer is open.',
|
|
33
33
|
},
|
|
34
|
+
{
|
|
35
|
+
name: 'mobileNavId',
|
|
36
|
+
type: 'string | undefined',
|
|
37
|
+
description:
|
|
38
|
+
'DOM id of the mobile navigation drawer, set by AppShell. Point aria-controls of a custom toggle at this so screen-reader users know which element the toggle expands. Undefined outside an AppShell that manages the drawer.',
|
|
39
|
+
},
|
|
34
40
|
{
|
|
35
41
|
name: 'toggleMobileNav',
|
|
36
42
|
type: '() => void',
|
|
@@ -111,6 +117,8 @@ export const docsDense = {
|
|
|
111
117
|
isMobile:
|
|
112
118
|
'viewport below AppShell mobile nav breakpoint? Use to sync AppShell-adjacent mobile UI',
|
|
113
119
|
isMobileNavOpen: 'AppShell-managed mobile nav drawer open?',
|
|
120
|
+
mobileNavId:
|
|
121
|
+
'DOM id of the drawer; point custom toggle aria-controls at it',
|
|
114
122
|
toggleMobileNav: 'toggle drawer; no-op when mobile nav disabled',
|
|
115
123
|
openMobileNav: 'open drawer; no-op when mobile nav disabled',
|
|
116
124
|
closeMobileNav: 'close drawer',
|