@astryxdesign/core 0.4.4 → 0.4.5-canary.013e728
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 +40 -0
- package/dist/AvatarGroup/AvatarGroupOverflow.js +1 -1
- package/dist/BottomSheet/BottomSheet.d.ts +11 -2
- package/dist/BottomSheet/BottomSheet.d.ts.map +1 -1
- package/dist/BottomSheet/BottomSheet.js +4 -0
- package/dist/BottomSheet/BottomSheetPanel.d.ts +5 -2
- package/dist/BottomSheet/BottomSheetPanel.d.ts.map +1 -1
- package/dist/BottomSheet/BottomSheetPanel.js +65 -15
- package/dist/BottomSheet/index.d.ts +1 -1
- package/dist/BottomSheet/index.d.ts.map +1 -1
- package/dist/BottomSheet/snapOffsets.d.ts +57 -20
- package/dist/BottomSheet/snapOffsets.d.ts.map +1 -1
- package/dist/BottomSheet/snapOffsets.js +106 -30
- package/dist/BottomSheet/useSheetGestures.d.ts +13 -8
- package/dist/BottomSheet/useSheetGestures.d.ts.map +1 -1
- package/dist/BottomSheet/useSheetGestures.js +160 -64
- package/dist/Breadcrumbs/BreadcrumbItem.js +6 -6
- package/dist/Button/Button.js +5 -5
- package/dist/Calendar/Calendar.d.ts +17 -0
- package/dist/Calendar/Calendar.d.ts.map +1 -1
- package/dist/Calendar/Calendar.js +55 -15
- package/dist/Calendar/getStandaloneShortWeekdayNames.d.ts +14 -0
- package/dist/Calendar/getStandaloneShortWeekdayNames.d.ts.map +1 -0
- package/dist/Calendar/getStandaloneShortWeekdayNames.js +26 -0
- package/dist/Calendar/hooks/useCalendarConstraints.d.ts +22 -1
- package/dist/Calendar/hooks/useCalendarConstraints.d.ts.map +1 -1
- package/dist/Calendar/hooks/useCalendarConstraints.js +26 -4
- package/dist/Calendar/hooks/useCalendarDays.d.ts.map +1 -1
- package/dist/Calendar/hooks/useCalendarDays.js +14 -10
- package/dist/Calendar/hooks/useCalendarNavigation.d.ts.map +1 -1
- package/dist/Calendar/hooks/useCalendarNavigation.js +8 -4
- package/dist/Calendar/standaloneShortWeekdayNames.generated.d.ts +47 -0
- package/dist/Calendar/standaloneShortWeekdayNames.generated.d.ts.map +1 -0
- package/dist/Calendar/standaloneShortWeekdayNames.generated.js +40 -0
- package/dist/Calendar/styles.js +3 -3
- package/dist/Center/Center.d.ts +23 -1
- package/dist/Center/Center.d.ts.map +1 -1
- package/dist/Center/Center.js +12 -6
- package/dist/Chat/ChatComposer.d.ts.map +1 -1
- package/dist/Chat/ChatComposer.js +2 -2
- package/dist/Chat/ChatToolCalls.js +1 -1
- package/dist/Chat/useChatDictation.d.ts +1 -1
- package/dist/Chat/useChatDictation.d.ts.map +1 -1
- package/dist/Chat/useSpeechRecognition.d.ts +1 -1
- package/dist/Chat/useSpeechRecognition.d.ts.map +1 -1
- package/dist/Chat/useSpeechRecognition.js +4 -3
- package/dist/CheckboxInput/CheckboxInput.d.ts.map +1 -1
- package/dist/CheckboxInput/CheckboxInput.js +9 -0
- package/dist/Citation/Citation.js +3 -3
- package/dist/ClickableCard/ClickableCard.js +2 -2
- package/dist/CommandPalette/CommandPaletteItem.js +1 -1
- package/dist/ComplexSelector/ComplexSelector.d.ts.map +1 -1
- package/dist/ComplexSelector/ComplexSelector.js +8 -3
- package/dist/DateInput/DateInput.d.ts.map +1 -1
- package/dist/DateInput/DateInput.js +17 -9
- package/dist/DateRangeInput/DateRangeInput.d.ts +23 -1
- package/dist/DateRangeInput/DateRangeInput.d.ts.map +1 -1
- package/dist/DateRangeInput/DateRangeInput.js +47 -9
- package/dist/DateTimeInput/DateTimeInput.d.ts.map +1 -1
- package/dist/DateTimeInput/DateTimeInput.js +18 -10
- package/dist/Dialog/Dialog.d.ts.map +1 -1
- package/dist/Dialog/Dialog.js +3 -3
- package/dist/Field/FieldLabel.d.ts +2 -1
- package/dist/Field/FieldLabel.d.ts.map +1 -1
- package/dist/Field/FieldLabel.js +21 -3
- package/dist/Field/InputClearButton.d.ts +2 -1
- package/dist/Field/InputClearButton.d.ts.map +1 -1
- package/dist/Field/InputClearButton.js +12 -1
- package/dist/Field/inputStyles.stylex.d.ts.map +1 -1
- package/dist/Field/inputStyles.stylex.js +4 -4
- package/dist/FileInput/FileInput.d.ts.map +1 -1
- package/dist/FileInput/FileInput.js +2 -2
- package/dist/FormLayout/FormLayout.d.ts +24 -2
- package/dist/FormLayout/FormLayout.d.ts.map +1 -1
- package/dist/FormLayout/FormLayout.js +7 -2
- package/dist/FormLayout/FormLayoutContext.d.ts +15 -2
- package/dist/FormLayout/FormLayoutContext.d.ts.map +1 -1
- package/dist/FormLayout/FormLayoutContext.js +19 -4
- package/dist/FormLayout/index.d.ts +1 -1
- package/dist/FormLayout/index.d.ts.map +1 -1
- package/dist/HoverCard/HoverCard.d.ts +13 -3
- package/dist/HoverCard/HoverCard.d.ts.map +1 -1
- package/dist/HoverCard/HoverCard.js +2 -0
- package/dist/HoverCard/index.d.ts +1 -1
- package/dist/HoverCard/index.d.ts.map +1 -1
- package/dist/HoverCard/useHoverCard.d.ts +17 -2
- package/dist/HoverCard/useHoverCard.d.ts.map +1 -1
- package/dist/HoverCard/useHoverCard.js +78 -9
- package/dist/Item/Item.d.ts +9 -1
- package/dist/Item/Item.d.ts.map +1 -1
- package/dist/Item/Item.js +46 -8
- package/dist/Layer/index.d.ts +4 -2
- package/dist/Layer/index.d.ts.map +1 -1
- package/dist/Layer/index.js +2 -0
- package/dist/Layer/useLayer.d.ts.map +1 -1
- package/dist/Layer/useLayer.js +3 -2
- package/dist/Layer/useTouchTrigger.d.ts +113 -0
- package/dist/Layer/useTouchTrigger.d.ts.map +1 -0
- package/dist/Layer/useTouchTrigger.js +241 -0
- package/dist/Layout/container.stylex.d.ts +4 -2
- package/dist/Layout/container.stylex.d.ts.map +1 -1
- package/dist/Layout/container.stylex.js +19 -11
- package/dist/Layout/index.d.ts +1 -0
- package/dist/Layout/index.d.ts.map +1 -1
- package/dist/Layout/index.js +4 -0
- package/dist/Layout/padding.stylex.d.ts +315 -12
- package/dist/Layout/padding.stylex.d.ts.map +1 -1
- package/dist/Layout/padding.stylex.js +389 -12
- package/dist/Lightbox/Lightbox.d.ts.map +1 -1
- package/dist/Lightbox/Lightbox.js +2 -1
- package/dist/Link/Link.js +4 -4
- package/dist/Markdown/Markdown.d.ts +8 -0
- package/dist/Markdown/Markdown.d.ts.map +1 -1
- package/dist/Markdown/Markdown.js +31 -3
- package/dist/Markdown/parser.d.ts +14 -2
- package/dist/Markdown/parser.d.ts.map +1 -1
- package/dist/Markdown/parser.js +50 -2
- package/dist/MobileNav/MobileNav.d.ts +1 -0
- package/dist/MobileNav/MobileNav.d.ts.map +1 -1
- package/dist/MobileNav/MobileNav.js +24 -6
- package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
- package/dist/MultiSelector/MultiSelector.js +8 -3
- package/dist/NavItem/navItemStyles.stylex.d.ts +2 -2
- package/dist/NavItem/navItemStyles.stylex.js +2 -2
- package/dist/NavMenu/NavHeadingMenuItem.js +1 -1
- package/dist/NumberInput/NumberInput.d.ts.map +1 -1
- package/dist/NumberInput/NumberInput.js +38 -5
- package/dist/Outline/Outline.js +2 -2
- package/dist/Outline/parseOutlineFromMarkdown.d.ts +2 -0
- package/dist/Outline/parseOutlineFromMarkdown.d.ts.map +1 -1
- package/dist/Outline/parseOutlineFromMarkdown.js +5 -31
- package/dist/PowerSearch/PowerSearch.d.ts.map +1 -1
- package/dist/PowerSearch/PowerSearch.js +11 -12
- package/dist/PowerSearch/PowerSearchToken.d.ts.map +1 -1
- package/dist/PowerSearch/PowerSearchToken.js +3 -1
- package/dist/PowerSearch/formatFilterValue.d.ts +11 -2
- package/dist/PowerSearch/formatFilterValue.d.ts.map +1 -1
- package/dist/PowerSearch/formatFilterValue.js +23 -8
- package/dist/RadioList/RadioList.d.ts.map +1 -1
- package/dist/RadioList/RadioList.js +12 -1
- package/dist/RadioList/RadioListItem.d.ts +2 -2
- package/dist/RadioList/RadioListItem.d.ts.map +1 -1
- package/dist/RadioList/RadioListItem.js +68 -38
- package/dist/Resizable/ResizeHandle.d.ts.map +1 -1
- package/dist/Resizable/ResizeHandle.js +3 -3
- package/dist/Section/Section.d.ts +36 -1
- package/dist/Section/Section.d.ts.map +1 -1
- package/dist/Section/Section.js +12 -2
- package/dist/SegmentedControl/SegmentedControlItem.d.ts.map +1 -1
- package/dist/SegmentedControl/SegmentedControlItem.js +6 -1
- package/dist/SelectableCard/SelectableCard.js +1 -1
- package/dist/Selector/Selector.d.ts +26 -1
- package/dist/Selector/Selector.d.ts.map +1 -1
- package/dist/Selector/Selector.js +95 -17
- package/dist/Selector/SelectorOption.d.ts +14 -1
- package/dist/Selector/SelectorOption.d.ts.map +1 -1
- package/dist/Selector/SelectorOption.js +6 -0
- package/dist/Selector/SelectorRowLayoutContext.d.ts +8 -0
- package/dist/Selector/SelectorRowLayoutContext.d.ts.map +1 -0
- package/dist/Selector/SelectorRowLayoutContext.js +27 -0
- package/dist/Selector/types.d.ts +1 -0
- package/dist/Selector/types.d.ts.map +1 -1
- package/dist/SideNav/SideNavHeading.js +1 -1
- package/dist/SideNav/SideNavItem.js +1 -1
- package/dist/Slider/Slider.d.ts.map +1 -1
- package/dist/Slider/Slider.js +3 -3
- package/dist/Stack/Stack.d.ts +23 -1
- package/dist/Stack/Stack.d.ts.map +1 -1
- package/dist/Stack/Stack.js +12 -6
- package/dist/StatusDot/StatusDot.d.ts +43 -3
- package/dist/StatusDot/StatusDot.d.ts.map +1 -1
- package/dist/StatusDot/StatusDot.js +42 -5
- package/dist/Switch/Switch.d.ts.map +1 -1
- package/dist/Switch/Switch.js +9 -0
- package/dist/TabList/TabMenu.js +1 -1
- package/dist/Table/TableRow.js +4 -4
- package/dist/Table/plugins/columnResize/useTableColumnResize.d.ts.map +1 -1
- package/dist/Table/plugins/columnResize/useTableColumnResize.js +1 -1
- package/dist/Table/plugins/groupedRows/useTableGroupedRows.d.ts.map +1 -1
- package/dist/Table/plugins/groupedRows/useTableGroupedRows.js +1 -1
- package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts.map +1 -1
- package/dist/Table/plugins/rowExpansion/useTableRowExpansion.js +7 -2
- package/dist/Table/plugins/sortable/useTableSortableState.d.ts +5 -3
- package/dist/Table/plugins/sortable/useTableSortableState.d.ts.map +1 -1
- package/dist/Table/plugins/sortable/useTableSortableState.js +12 -9
- package/dist/Table/plugins/tree/useTableTreeData.js +2 -2
- package/dist/TextArea/TextArea.d.ts.map +1 -1
- package/dist/TextArea/TextArea.js +6 -1
- package/dist/TextInput/TextInput.d.ts.map +1 -1
- package/dist/TextInput/TextInput.js +6 -1
- package/dist/Thumbnail/Thumbnail.js +1 -1
- package/dist/TimeInput/TimeInput.d.ts.map +1 -1
- package/dist/TimeInput/TimeInput.js +6 -1
- package/dist/Timestamp/Timestamp.d.ts.map +1 -1
- package/dist/Timestamp/Timestamp.js +6 -4
- package/dist/Timestamp/formatInstant.d.ts +3 -2
- package/dist/Timestamp/formatInstant.d.ts.map +1 -1
- package/dist/Timestamp/formatInstant.js +8 -8
- package/dist/Timestamp/tooltipEntries.d.ts +2 -1
- package/dist/Timestamp/tooltipEntries.d.ts.map +1 -1
- package/dist/Timestamp/tooltipEntries.js +5 -3
- package/dist/Token/Token.js +1 -1
- package/dist/Tooltip/Tooltip.d.ts +16 -3
- package/dist/Tooltip/Tooltip.d.ts.map +1 -1
- package/dist/Tooltip/Tooltip.js +2 -0
- package/dist/Tooltip/index.d.ts +1 -1
- package/dist/Tooltip/index.d.ts.map +1 -1
- package/dist/Tooltip/useTooltip.d.ts +21 -2
- package/dist/Tooltip/useTooltip.d.ts.map +1 -1
- package/dist/Tooltip/useTooltip.js +71 -13
- package/dist/TopNav/TopNavHeading.js +2 -2
- package/dist/TopNav/TopNavItem.js +2 -2
- package/dist/TopNav/TopNavMegaMenu.js +1 -1
- package/dist/TopNav/TopNavMegaMenuItem.js +1 -1
- package/dist/TopNav/TopNavMenu.js +2 -2
- package/dist/TreeList/TreeListItem.js +1 -1
- package/dist/astryx.css +85 -60
- package/dist/hooks/containerReveal.stylex.d.ts.map +1 -1
- package/dist/hooks/containerReveal.stylex.js +18 -18
- package/dist/hooks/scrollbarGutter.d.ts +28 -0
- package/dist/hooks/scrollbarGutter.d.ts.map +1 -0
- package/dist/hooks/scrollbarGutter.js +103 -0
- package/dist/hooks/useResolvedRequired.d.ts +19 -0
- package/dist/hooks/useResolvedRequired.d.ts.map +1 -0
- package/dist/hooks/useResolvedRequired.js +40 -0
- package/dist/hooks/useScrollLock.d.ts +4 -0
- package/dist/hooks/useScrollLock.d.ts.map +1 -1
- package/dist/hooks/useScrollLock.js +13 -1
- package/dist/i18n/InternationalizationContext.d.ts.map +1 -1
- package/dist/i18n/InternationalizationContext.js +2 -0
- package/dist/i18n/index.d.ts +6 -0
- package/dist/i18n/index.d.ts.map +1 -1
- package/dist/i18n/index.js +6 -0
- package/dist/i18n/useCollator.d.ts +12 -0
- package/dist/i18n/useCollator.d.ts.map +1 -0
- package/dist/i18n/useCollator.js +40 -0
- package/dist/i18n/useLocale.d.ts +3 -0
- package/dist/i18n/useLocale.d.ts.map +1 -0
- package/dist/i18n/useLocale.js +31 -0
- package/dist/theme/defineTheme.d.ts +5 -0
- package/dist/theme/defineTheme.d.ts.map +1 -1
- package/dist/theme/defineTheme.js +5 -0
- package/dist/theme/derivedVarRegistry.d.ts.map +1 -1
- package/dist/theme/derivedVarRegistry.js +7 -0
- package/dist/theme/generateThemeRules.d.ts.map +1 -1
- package/dist/theme/generateThemeRules.js +66 -5
- package/dist/utils/dateParser.d.ts +4 -3
- package/dist/utils/dateParser.d.ts.map +1 -1
- package/dist/utils/dateParser.js +8 -8
- package/dist/utils/plainDate.d.ts +9 -2
- package/dist/utils/plainDate.d.ts.map +1 -1
- package/dist/utils/plainDate.js +16 -4
- package/locales/af-ZA.json +958 -0
- package/locales/ar-SA.json +998 -0
- package/locales/ca-ES.json +974 -0
- package/locales/cs-CZ.json +990 -0
- package/locales/da-DK.json +966 -0
- package/locales/de-DE.json +966 -0
- package/locales/el-GR.json +990 -0
- package/locales/en.json +8 -0
- package/locales/es-ES.json +978 -0
- package/locales/fi-FI.json +990 -0
- package/locales/fr-FR.json +928 -0
- package/locales/he-IL.json +990 -0
- package/locales/hu-HU.json +990 -0
- package/locales/it-IT.json +978 -0
- package/locales/ja-JP.json +998 -0
- package/locales/ko-KR.json +990 -0
- package/locales/nl-NL.json +954 -0
- package/locales/no-NO.json +978 -0
- package/locales/pl-PL.json +982 -0
- package/locales/pseudo.json +6 -0
- package/locales/pt-BR.json +982 -0
- package/locales/pt-PT.json +982 -0
- package/locales/ro-RO.json +982 -0
- package/locales/ru-RU.json +990 -0
- package/locales/sr-SP.json +990 -0
- package/locales/sv-SE.json +986 -0
- package/locales/tr-TR.json +990 -0
- package/locales/uk-UA.json +990 -0
- package/locales/vi-VN.json +986 -0
- package/locales/zh-CN.json +998 -0
- package/locales/zh-TW.json +998 -0
- package/package.json +3 -3
- package/src/AvatarGroup/AvatarGroupOverflow.tsx +1 -1
- package/src/Banner/Banner.doc.mjs +2 -0
- package/src/BottomSheet/BottomSheet.doc.mjs +36 -3
- package/src/BottomSheet/BottomSheet.test.tsx +177 -2
- package/src/BottomSheet/BottomSheet.tsx +16 -2
- package/src/BottomSheet/BottomSheetPanel.test.tsx +41 -0
- package/src/BottomSheet/BottomSheetPanel.tsx +95 -15
- package/src/BottomSheet/index.ts +5 -1
- package/src/BottomSheet/snapOffsets.test.ts +114 -47
- package/src/BottomSheet/snapOffsets.ts +119 -33
- package/src/BottomSheet/useSheetGestures.test.ts +113 -15
- package/src/BottomSheet/useSheetGestures.ts +196 -100
- package/src/Breadcrumbs/BreadcrumbItem.tsx +1 -1
- package/src/Button/Button.tsx +7 -7
- package/src/Calendar/Calendar.doc.mjs +16 -0
- package/src/Calendar/Calendar.test.tsx +137 -0
- package/src/Calendar/Calendar.tsx +80 -11
- package/src/Calendar/getStandaloneShortWeekdayNames.test.ts +54 -0
- package/src/Calendar/getStandaloneShortWeekdayNames.ts +38 -0
- package/src/Calendar/hooks/useCalendarConstraints.ts +54 -3
- package/src/Calendar/hooks/useCalendarDays.ts +13 -10
- package/src/Calendar/hooks/useCalendarNavigation.ts +6 -4
- package/src/Calendar/standaloneShortWeekdayNames.generated.ts +50 -0
- package/src/Calendar/styles.ts +3 -3
- package/src/Center/Center.doc.mjs +48 -0
- package/src/Center/Center.test.tsx +158 -0
- package/src/Center/Center.tsx +50 -9
- package/src/Chat/ChatComposer.tsx +7 -4
- package/src/Chat/ChatToolCalls.tsx +1 -1
- package/src/Chat/{useChatDictation.test.ts → useChatDictation.test.tsx} +29 -14
- package/src/Chat/useChatDictation.ts +1 -1
- package/src/Chat/useSpeechRecognition.ts +5 -3
- package/src/CheckboxInput/CheckboxInput.tsx +6 -0
- package/src/Citation/Citation.tsx +3 -3
- package/src/ClickableCard/ClickableCard.tsx +2 -2
- package/src/CommandPalette/CommandPaletteItem.tsx +1 -1
- package/src/ComplexSelector/ComplexSelector.doc.mjs +10 -0
- package/src/ComplexSelector/ComplexSelector.tsx +8 -5
- package/src/DateInput/DateInput.test.tsx +17 -1
- package/src/DateInput/DateInput.tsx +13 -9
- package/src/DateRangeInput/DateRangeInput.doc.mjs +16 -0
- package/src/DateRangeInput/DateRangeInput.test.tsx +81 -1
- package/src/DateRangeInput/DateRangeInput.tsx +88 -8
- package/src/DateTimeInput/DateTimeInput.tsx +23 -8
- package/src/Dialog/Dialog.test.tsx +24 -0
- package/src/Dialog/Dialog.tsx +3 -0
- package/src/Field/Field.doc.mjs +3 -0
- package/src/Field/FieldLabel.tsx +20 -4
- package/src/Field/InputClearButton.test.tsx +134 -2
- package/src/Field/InputClearButton.tsx +42 -1
- package/src/Field/inputStyles.stylex.ts +16 -12
- package/src/FileInput/FileInput.tsx +5 -4
- package/src/FormLayout/FormLayout.doc.mjs +13 -0
- package/src/FormLayout/FormLayout.test.tsx +181 -4
- package/src/FormLayout/FormLayout.tsx +33 -2
- package/src/FormLayout/FormLayoutContext.ts +22 -7
- package/src/FormLayout/index.ts +1 -1
- package/src/HoverCard/HoverCard.doc.mjs +18 -0
- package/src/HoverCard/HoverCard.test.tsx +189 -0
- package/src/HoverCard/HoverCard.tsx +22 -2
- package/src/HoverCard/index.ts +1 -0
- package/src/HoverCard/useHoverCard.doc.mjs +2 -0
- package/src/HoverCard/useHoverCard.tsx +103 -7
- package/src/Item/Item.doc.mjs +1 -0
- package/src/Item/Item.test.tsx +50 -0
- package/src/Item/Item.tsx +41 -2
- package/src/Layer/index.ts +10 -0
- package/src/Layer/useLayer.tsx +13 -2
- package/src/Layer/useTouchTrigger.test.ts +70 -0
- package/src/Layer/useTouchTrigger.ts +366 -0
- package/src/Layout/Layout.doc.mjs +18 -0
- package/src/Layout/container.stylex.ts +11 -3
- package/src/Layout/index.ts +4 -0
- package/src/Layout/overlayPaddingReset.test.tsx +222 -0
- package/src/Layout/padding.stylex.ts +192 -12
- package/src/Lightbox/Lightbox.tsx +2 -1
- package/src/Link/Link.tsx +4 -4
- package/src/Markdown/Markdown.doc.mjs +3 -0
- package/src/Markdown/Markdown.test.tsx +78 -0
- package/src/Markdown/Markdown.tsx +41 -1
- package/src/Markdown/parser.ts +60 -2
- package/src/MobileNav/MobileNav.tsx +61 -5
- package/src/MobileNav/MobileNavEntryAnimation.test.tsx +212 -0
- package/src/MobileNav/MobileNavScrollbarGutter.test.tsx +109 -0
- package/src/MultiSelector/MultiSelector.test.tsx +1 -1
- package/src/MultiSelector/MultiSelector.tsx +8 -5
- package/src/NavItem/navItemStyles.stylex.ts +2 -2
- package/src/NavMenu/NavHeadingMenuItem.tsx +1 -1
- package/src/NumberInput/NumberInput.doc.mjs +24 -0
- package/src/NumberInput/NumberInput.test.tsx +138 -0
- package/src/NumberInput/NumberInput.tsx +44 -6
- package/src/Outline/Outline.doc.mjs +2 -0
- package/src/Outline/Outline.tsx +1 -1
- package/src/Outline/parseOutlineFromMarkdown.ts +10 -40
- package/src/PowerSearch/PowerSearch.tsx +17 -8
- package/src/PowerSearch/PowerSearchToken.tsx +3 -0
- package/src/PowerSearch/formatFilterValue.test.ts +22 -2
- package/src/PowerSearch/formatFilterValue.ts +31 -6
- package/src/RadioList/RadioList.doc.mjs +1 -1
- package/src/RadioList/RadioList.test.tsx +170 -2
- package/src/RadioList/RadioList.tsx +9 -1
- package/src/RadioList/RadioListItem.tsx +83 -51
- package/src/Resizable/ResizeHandle.test.tsx +22 -0
- package/src/Resizable/ResizeHandle.tsx +9 -3
- package/src/Section/Section.doc.mjs +55 -0
- package/src/Section/Section.test.tsx +201 -4
- package/src/Section/Section.tsx +69 -0
- package/src/SegmentedControl/SegmentedControl.test.tsx +31 -0
- package/src/SegmentedControl/SegmentedControlItem.tsx +11 -2
- package/src/SelectableCard/SelectableCard.tsx +1 -1
- package/src/Selector/Selector.doc.mjs +16 -2
- package/src/Selector/Selector.test.tsx +525 -1
- package/src/Selector/Selector.tsx +166 -21
- package/src/Selector/SelectorOption.doc.mjs +7 -0
- package/src/Selector/SelectorOption.tsx +21 -0
- package/src/Selector/SelectorRowLayoutContext.ts +32 -0
- package/src/Selector/types.ts +4 -4
- package/src/SideNav/SideNavHeading.tsx +2 -2
- package/src/SideNav/SideNavItem.tsx +1 -1
- package/src/Slider/Slider.tsx +11 -1
- package/src/Stack/Stack.doc.mjs +72 -0
- package/src/Stack/Stack.test.tsx +156 -0
- package/src/Stack/Stack.tsx +50 -8
- package/src/StatusDot/StatusDot.doc.mjs +13 -0
- package/src/StatusDot/StatusDot.test.tsx +115 -8
- package/src/StatusDot/StatusDot.tsx +74 -9
- package/src/Switch/Switch.tsx +6 -0
- package/src/TabList/TabMenu.tsx +1 -1
- package/src/Table/TableRow.tsx +4 -4
- package/src/Table/plugins/columnResize/useTableColumnResize.tsx +2 -1
- package/src/Table/plugins/groupedRows/useTableGroupedRows.tsx +2 -1
- package/src/Table/plugins/rowExpansion/useTableRowExpansion.tsx +22 -4
- package/src/Table/plugins/sortable/useTableSortableState.test.tsx +34 -0
- package/src/Table/plugins/sortable/useTableSortableState.tsx +26 -23
- package/src/Table/plugins/tree/useTableTreeData.tsx +2 -2
- package/src/TextArea/TextArea.doc.mjs +1 -1
- package/src/TextArea/TextArea.tsx +3 -1
- package/src/TextInput/TextInput.tsx +3 -1
- package/src/Thumbnail/Thumbnail.tsx +1 -1
- package/src/TimeInput/TimeInput.tsx +3 -1
- package/src/Timestamp/Timestamp.test.tsx +27 -7
- package/src/Timestamp/Timestamp.tsx +8 -4
- package/src/Timestamp/formatInstant.ts +9 -7
- package/src/Timestamp/tooltipEntries.test.ts +11 -6
- package/src/Timestamp/tooltipEntries.ts +6 -2
- package/src/Token/Token.tsx +1 -1
- package/src/Tooltip/Tooltip.doc.mjs +18 -0
- package/src/Tooltip/Tooltip.test.tsx +254 -1
- package/src/Tooltip/Tooltip.tsx +22 -2
- package/src/Tooltip/index.ts +1 -0
- package/src/Tooltip/useTooltip.doc.mjs +2 -0
- package/src/Tooltip/useTooltip.tsx +99 -21
- package/src/TopNav/TopNavHeading.tsx +1 -1
- package/src/TopNav/TopNavItem.tsx +2 -2
- package/src/TopNav/TopNavMegaMenu.tsx +1 -1
- package/src/TopNav/TopNavMegaMenuItem.tsx +1 -1
- package/src/TopNav/TopNavMenu.tsx +2 -2
- package/src/TreeList/TreeListItem.tsx +1 -1
- package/src/hooks/containerReveal.stylex.ts +54 -18
- package/src/hooks/scrollbarGutter.test.ts +167 -0
- package/src/hooks/scrollbarGutter.ts +121 -0
- package/src/hooks/useResolvedRequired.ts +42 -0
- package/src/hooks/useScrollLock.doc.mjs +4 -4
- package/src/hooks/useScrollLock.test.ts +73 -0
- package/src/hooks/useScrollLock.ts +14 -0
- package/src/i18n/InternationalizationContext.ts +2 -0
- package/src/i18n/__tests__/e2e-powersearch.test.tsx +37 -1
- package/src/i18n/__tests__/useCollator.test.tsx +115 -0
- package/src/i18n/__tests__/useLocale.test.tsx +52 -0
- package/src/i18n/index.ts +6 -0
- package/src/i18n/useCollator.doc.mjs +84 -0
- package/src/i18n/useCollator.ts +44 -0
- package/src/i18n/useLocale.doc.mjs +70 -0
- package/src/i18n/useLocale.ts +34 -0
- package/src/i18n/useTranslator.doc.mjs +1 -1
- package/src/theme/defineTheme.test.ts +9 -3
- package/src/theme/defineTheme.ts +5 -0
- package/src/theme/derivedVarRegistry.test.ts +19 -5
- package/src/theme/derivedVarRegistry.ts +4 -0
- package/src/theme/generateThemeRules.test.ts +118 -0
- package/src/theme/generateThemeRules.ts +83 -5
- package/src/utils/dateParser.test.ts +20 -0
- package/src/utils/dateParser.ts +14 -7
- package/src/utils/plainDate.test.ts +56 -0
- package/src/utils/plainDate.ts +17 -4
package/dist/Markdown/parser.js
CHANGED
|
@@ -3,8 +3,10 @@
|
|
|
3
3
|
/**
|
|
4
4
|
* @file parser.ts
|
|
5
5
|
* @input Markdown string
|
|
6
|
-
* @output Array of MarkdownNode AST nodes
|
|
7
|
-
*
|
|
6
|
+
* @output Array of MarkdownNode AST nodes; heading slug helpers
|
|
7
|
+
* (inlineText, slugify, uniqueSlug) shared by Markdown rendering and
|
|
8
|
+
* Outline's parseOutlineFromMarkdown
|
|
9
|
+
* @position Core parser; consumed by Markdown.tsx and Outline
|
|
8
10
|
*/
|
|
9
11
|
|
|
10
12
|
// ---------------------------------------------------------------------------
|
|
@@ -1625,4 +1627,50 @@ export function parseMarkdownIncremental(input, state, arg) {
|
|
|
1625
1627
|
state.settledUpTo = boundary;
|
|
1626
1628
|
state.prevInput = input;
|
|
1627
1629
|
return mergeSettledBlocks(settledBlocks, unsettledBlocks);
|
|
1630
|
+
}
|
|
1631
|
+
|
|
1632
|
+
// ---------------------------------------------------------------------------
|
|
1633
|
+
// Heading slugs
|
|
1634
|
+
// ---------------------------------------------------------------------------
|
|
1635
|
+
// Single source of truth for the heading id contract: Markdown renders these
|
|
1636
|
+
// slugs as `id` attributes on h1–h6, and Outline's parseOutlineFromMarkdown
|
|
1637
|
+
// derives its item ids from the same functions, so outline hash links always
|
|
1638
|
+
// resolve to a rendered heading by construction.
|
|
1639
|
+
|
|
1640
|
+
/** Flatten inline nodes into their plain text content. */
|
|
1641
|
+
export function inlineText(nodes) {
|
|
1642
|
+
return nodes.map(node => {
|
|
1643
|
+
switch (node.type) {
|
|
1644
|
+
case 'text':
|
|
1645
|
+
case 'code':
|
|
1646
|
+
return node.content;
|
|
1647
|
+
case 'bold':
|
|
1648
|
+
case 'italic':
|
|
1649
|
+
case 'strikethrough':
|
|
1650
|
+
case 'link':
|
|
1651
|
+
return inlineText(node.children);
|
|
1652
|
+
case 'image':
|
|
1653
|
+
return node.alt;
|
|
1654
|
+
case 'citation':
|
|
1655
|
+
case 'break':
|
|
1656
|
+
return '';
|
|
1657
|
+
}
|
|
1658
|
+
}).join('');
|
|
1659
|
+
}
|
|
1660
|
+
|
|
1661
|
+
/** Turn heading text into a URL-safe slug (lowercase, hyphen-separated). */
|
|
1662
|
+
export function slugify(value) {
|
|
1663
|
+
return value.trim().toLowerCase().replace(/['"]/g, '').replace(/[^a-z0-9]+/g, '-').replace(/^-+|-+$/g, '');
|
|
1664
|
+
}
|
|
1665
|
+
|
|
1666
|
+
/**
|
|
1667
|
+
* Disambiguate repeated slugs with a numeric suffix (`setup`, `setup-1`, …).
|
|
1668
|
+
* Empty slugs fall back to `section`. The caller owns the counts map so one
|
|
1669
|
+
* document shares a single numbering sequence.
|
|
1670
|
+
*/
|
|
1671
|
+
export function uniqueSlug(baseSlug, counts) {
|
|
1672
|
+
const fallbackSlug = baseSlug || 'section';
|
|
1673
|
+
const count = counts.get(fallbackSlug) ?? 0;
|
|
1674
|
+
counts.set(fallbackSlug, count + 1);
|
|
1675
|
+
return count === 0 ? fallbackSlug : `${fallbackSlug}-${count}`;
|
|
1628
1676
|
}
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
*
|
|
20
20
|
* SYNC: When modified, update these files to stay in sync:
|
|
21
21
|
* - /packages/core/src/MobileNav/index.ts (exports if types change)
|
|
22
|
+
* - /packages/core/src/hooks/scrollbarGutter.ts (shared scroll-lock gutter)
|
|
22
23
|
* - /packages/cli/assets/templates/blocks/components/MobileNav/ (showcase blocks)
|
|
23
24
|
*/
|
|
24
25
|
import { type ReactNode } from 'react';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MobileNav.d.ts","sourceRoot":"","sources":["../../src/MobileNav/MobileNav.tsx"],"names":[],"mappings":"AAIA
|
|
1
|
+
{"version":3,"file":"MobileNav.d.ts","sourceRoot":"","sources":["../../src/MobileNav/MobileNav.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAmBf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AA6L5C;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAkBpE;AAmCD,MAAM,WAAW,cAAe,SAAQ,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC;IAC9D,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACnC;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAEzC;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IAEpB;;;;OAIG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;IAEhC;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,SAAS,CAAC,EACxB,MAAM,EAAE,UAAU,EAClB,YAAY,EAAE,gBAAgB,EAC9B,QAAQ,EACR,MAAM,EACN,KAAW,EACX,IAAa,EACb,KAAK,EACL,aAAa,EAAE,MAAM,EACrB,MAAM,EACN,SAAS,EACT,KAAK,EACL,OAAO,EAAE,WAAW,EACpB,GAAG,EACH,GAAG,IAAI,EACR,EAAE,cAAc,+BAiNhB;yBAhOe,SAAS"}
|
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
*
|
|
24
24
|
* SYNC: When modified, update these files to stay in sync:
|
|
25
25
|
* - /packages/core/src/MobileNav/index.ts (exports if types change)
|
|
26
|
+
* - /packages/core/src/hooks/scrollbarGutter.ts (shared scroll-lock gutter)
|
|
26
27
|
* - /packages/cli/assets/templates/blocks/components/MobileNav/ (showcase blocks)
|
|
27
28
|
*/
|
|
28
29
|
import { useCallback, useEffect, useId, useMemo, useRef, useState } from 'react';
|
|
@@ -33,7 +34,9 @@ import { Button } from "../Button/index.js";
|
|
|
33
34
|
import { Icon } from "../Icon/index.js";
|
|
34
35
|
import { Heading } from "../Heading/Heading.js";
|
|
35
36
|
import { useAppShellMobile } from "../AppShell/AppShellMobileContext.js";
|
|
37
|
+
import { holdScrollbarGutter } from "../hooks/scrollbarGutter.js";
|
|
36
38
|
import { mergeProps, mergeRefs, composeEventHandlers } from "../utils/index.js";
|
|
39
|
+
import { overlayPaddingReset } from "../Layout/padding.stylex.js";
|
|
37
40
|
import { themeProps } from "../utils/themeProps.js";
|
|
38
41
|
import { useTranslator } from "../i18n/index.js";
|
|
39
42
|
|
|
@@ -52,7 +55,7 @@ const styles = {
|
|
|
52
55
|
kzqmXN: "xn9wirt",
|
|
53
56
|
kZKoxP: "xtdtrs8",
|
|
54
57
|
kWkggS: "xjbqb8w",
|
|
55
|
-
kVQacm: "
|
|
58
|
+
kVQacm: "x7giv3",
|
|
56
59
|
kZeWKH: "xish69e",
|
|
57
60
|
kFalU9: "x5ve5x3",
|
|
58
61
|
kI3sdo: "x1a2a7pz",
|
|
@@ -77,7 +80,7 @@ const styles = {
|
|
|
77
80
|
$$css: true
|
|
78
81
|
},
|
|
79
82
|
backdropOpen: {
|
|
80
|
-
k5sjJv: "xb3n6bw",
|
|
83
|
+
k5sjJv: "xb3n6bw xxiuuzi",
|
|
81
84
|
$$css: true
|
|
82
85
|
},
|
|
83
86
|
drawer: {
|
|
@@ -105,7 +108,7 @@ const styles = {
|
|
|
105
108
|
$$css: true
|
|
106
109
|
},
|
|
107
110
|
drawerStartOpen: {
|
|
108
|
-
k3aq6I: "xbryuvx",
|
|
111
|
+
k3aq6I: "xbryuvx x6mt36l x14gflnl",
|
|
109
112
|
$$css: true
|
|
110
113
|
},
|
|
111
114
|
drawerEnd: {
|
|
@@ -117,7 +120,7 @@ const styles = {
|
|
|
117
120
|
$$css: true
|
|
118
121
|
},
|
|
119
122
|
drawerEndOpen: {
|
|
120
|
-
k3aq6I: "xbryuvx",
|
|
123
|
+
k3aq6I: "xbryuvx x1yqmsfc x1lymnkk",
|
|
121
124
|
$$css: true
|
|
122
125
|
},
|
|
123
126
|
headerText: {
|
|
@@ -258,6 +261,15 @@ export function MobileNav({
|
|
|
258
261
|
}), [onOpenChangeProp, appShellMobile]);
|
|
259
262
|
const dialogRef = useRef(null);
|
|
260
263
|
const closeTimeoutRef = useRef(null);
|
|
264
|
+
const gutterRef = useRef(null);
|
|
265
|
+
|
|
266
|
+
// Gives back the gutter held open in place of the hidden scrollbar.
|
|
267
|
+
const releaseGutter = useCallback(() => {
|
|
268
|
+
if (gutterRef.current) {
|
|
269
|
+
gutterRef.current.release();
|
|
270
|
+
gutterRef.current = null;
|
|
271
|
+
}
|
|
272
|
+
}, []);
|
|
261
273
|
// Resolved side — computed from trigger position when side='auto'
|
|
262
274
|
const [resolvedSide, setResolvedSide] = useState(side === 'auto' ? 'end' : side);
|
|
263
275
|
|
|
@@ -294,6 +306,9 @@ export function MobileNav({
|
|
|
294
306
|
return;
|
|
295
307
|
}
|
|
296
308
|
if (isOpen) {
|
|
309
|
+
// Taken first: every mutation below is one that can hide the scrollbar,
|
|
310
|
+
// and the gutter has to be measured while it is still there.
|
|
311
|
+
gutterRef.current ??= holdScrollbarGutter(document.documentElement);
|
|
297
312
|
if (!dialog.open) {
|
|
298
313
|
dialog.showModal();
|
|
299
314
|
}
|
|
@@ -301,8 +316,10 @@ export function MobileNav({
|
|
|
301
316
|
// overflow: clip avoids creating a scroll container (unlike hidden),
|
|
302
317
|
// so there's no scroll bounce and no need to save/restore scroll position.
|
|
303
318
|
document.documentElement.style.overflow = 'clip';
|
|
319
|
+
gutterRef.current.settle();
|
|
304
320
|
} else if (dialog.open) {
|
|
305
321
|
document.documentElement.style.overflow = '';
|
|
322
|
+
releaseGutter();
|
|
306
323
|
closeTimeoutRef.current = setTimeout(() => {
|
|
307
324
|
dialog.close();
|
|
308
325
|
}, resolveCloseDelay(dialog));
|
|
@@ -313,8 +330,9 @@ export function MobileNav({
|
|
|
313
330
|
closeTimeoutRef.current = null;
|
|
314
331
|
}
|
|
315
332
|
document.documentElement.style.overflow = '';
|
|
333
|
+
releaseGutter();
|
|
316
334
|
};
|
|
317
|
-
}, [isOpen]);
|
|
335
|
+
}, [isOpen, releaseGutter]);
|
|
318
336
|
|
|
319
337
|
// Close the native dialog on unmount if it's still open. Inside AppShell the
|
|
320
338
|
// drawer is mounted in an <Activity> that switches to mode="hidden" when the
|
|
@@ -355,7 +373,7 @@ export function MobileNav({
|
|
|
355
373
|
id: dialogId,
|
|
356
374
|
...mergeProps(themeProps('mobile-nav', {
|
|
357
375
|
side: resolvedSide
|
|
358
|
-
}), stylex.props(styles.dialog, isOpen && styles.open, styles.backdrop, isOpen && styles.backdropOpen, xstyle), className, style),
|
|
376
|
+
}), stylex.props(styles.dialog, overlayPaddingReset.reset, isOpen && styles.open, styles.backdrop, isOpen && styles.backdropOpen, xstyle), className, style),
|
|
359
377
|
...rest,
|
|
360
378
|
"data-testid": testId,
|
|
361
379
|
"aria-label": label ?? (typeof header === 'string' ? header : t('@astryx.mobileNav.navigation')),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiSelector.d.ts","sourceRoot":"","sources":["../../src/MultiSelector/MultiSelector.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,EASZ,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAIf,OAAO,EAAuB,KAAK,QAAQ,EAAC,MAAM,SAAS,CAAC;AAE5D,OAAO,EAML,KAAK,kBAAkB,EACxB,MAAM,UAAU,CAAC;AAKlB,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,cAAc,CAAC;AAcpD,OAAO,KAAK,EACV,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"MultiSelector.d.ts","sourceRoot":"","sources":["../../src/MultiSelector/MultiSelector.tsx"],"names":[],"mappings":"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"}
|
|
@@ -32,6 +32,7 @@ import { isOptionData, isDivider, isSection, normalizeOption, getSelectableOptio
|
|
|
32
32
|
import { useMultiCombobox } from "./hooks.js";
|
|
33
33
|
import { getInputARIA, isImeKeyEvent, mergeProps } from "../utils/index.js";
|
|
34
34
|
import { useAnnounce } from "../hooks/useAnnounce.js";
|
|
35
|
+
import { useResolvedRequired } from "../hooks/useResolvedRequired.js";
|
|
35
36
|
import { useSize } from "../SizeContext/SizeContext.js";
|
|
36
37
|
import { themeProps } from "../utils/themeProps.js";
|
|
37
38
|
import { focusOutlineStyles } from "../utils/focusOutline.stylex.js";
|
|
@@ -84,8 +85,8 @@ const styles = {
|
|
|
84
85
|
kzqmXN: "x14atkfc",
|
|
85
86
|
kMzoRj: "xc342km",
|
|
86
87
|
kWkggS: "xjbqb8w",
|
|
87
|
-
kKwaWg: "
|
|
88
|
-
kGVxlE: "x1gnnqk1
|
|
88
|
+
kKwaWg: "xmvprkv xq8i9tn",
|
|
89
|
+
kGVxlE: "x1gnnqk1 x1s17dad x15ysqaf",
|
|
89
90
|
k63SB2: "x1e4wzip",
|
|
90
91
|
k1ekBW: "xrafxwg",
|
|
91
92
|
k3aq6I: "x3oybdh xk4oym4",
|
|
@@ -287,6 +288,10 @@ export function MultiSelector({
|
|
|
287
288
|
style
|
|
288
289
|
}) {
|
|
289
290
|
const t = useTranslator();
|
|
291
|
+
const isEffectivelyRequired = useResolvedRequired({
|
|
292
|
+
isRequired,
|
|
293
|
+
isOptional
|
|
294
|
+
});
|
|
290
295
|
const placeholder = placeholderFromProps ?? t('@astryx.multiSelector.selectPlaceholder');
|
|
291
296
|
const selectAllLabel = selectAllLabelFromProps ?? t('@astryx.multiSelector.selectAll');
|
|
292
297
|
const searchPlaceholder = searchPlaceholderFromProps ?? t('@astryx.multiSelector.searchPlaceholder');
|
|
@@ -905,7 +910,7 @@ export function MultiSelector({
|
|
|
905
910
|
"aria-activedescendant": !hasSearch && popover.isOpen && highlightedIndex >= 0 ? getItemId(highlightedIndex) : undefined,
|
|
906
911
|
"aria-describedby": ariaDescribedBy,
|
|
907
912
|
"aria-labelledby": ariaLabelledBy,
|
|
908
|
-
"aria-required":
|
|
913
|
+
"aria-required": isEffectivelyRequired ? 'true' : undefined,
|
|
909
914
|
"aria-invalid": status?.type === 'error' ? 'true' : undefined,
|
|
910
915
|
"aria-busy": isBusy || undefined
|
|
911
916
|
// With a disabledMessage the trigger keeps focusability via
|
|
@@ -58,7 +58,7 @@ export declare const navItemStyles: Readonly<{
|
|
|
58
58
|
readonly lineHeight: stylex.StyleXClassNameFor<"lineHeight", "1.4286">;
|
|
59
59
|
readonly textAlign: stylex.StyleXClassNameFor<"textAlign", "start">;
|
|
60
60
|
readonly boxSizing: stylex.StyleXClassNameFor<"boxSizing", "border-box">;
|
|
61
|
-
readonly ':hover': stylex.StyleXClassNameFor<":hover", {
|
|
61
|
+
readonly ':hover:where(:not(:disabled,[aria-disabled="true"]))': stylex.StyleXClassNameFor<":hover:where(:not(:disabled,[aria-disabled=\"true\"]))", {
|
|
62
62
|
readonly '@media (hover: hover)': {
|
|
63
63
|
readonly backgroundColor: stylex.StyleXVar<"light-dark(#0536590C, #FFFFFF0C)">;
|
|
64
64
|
};
|
|
@@ -71,7 +71,7 @@ export declare const navItemStyles: Readonly<{
|
|
|
71
71
|
readonly backgroundColor: stylex.StyleXClassNameFor<"backgroundColor", "light-dark(rgba(5, 54, 89, 0.1), rgba(223, 226, 229, 0.2))" | "Highlight">;
|
|
72
72
|
readonly color: stylex.StyleXClassNameFor<"color", "HighlightText" | null>;
|
|
73
73
|
readonly fontWeight: stylex.StyleXClassNameFor<"fontWeight", "500">;
|
|
74
|
-
readonly ':hover': stylex.StyleXClassNameFor<":hover", {
|
|
74
|
+
readonly ':hover:where(:not(:disabled,[aria-disabled="true"]))': stylex.StyleXClassNameFor<":hover:where(:not(:disabled,[aria-disabled=\"true\"]))", {
|
|
75
75
|
readonly '@media (hover: hover)': {
|
|
76
76
|
readonly backgroundColor: {
|
|
77
77
|
readonly default: stylex.StyleXVar<"light-dark(rgba(5, 54, 89, 0.1), rgba(223, 226, 229, 0.2))">;
|
|
@@ -63,7 +63,7 @@ export const navItemStyles = {
|
|
|
63
63
|
kLWn49: "x1kq96og",
|
|
64
64
|
k9WMMc: "x1yc453h",
|
|
65
65
|
kB7OPa: "x9f619",
|
|
66
|
-
|
|
66
|
+
kRL5z6: "xoevpu5",
|
|
67
67
|
kSReZ0: "xyxi2l3",
|
|
68
68
|
$$css: true
|
|
69
69
|
},
|
|
@@ -71,7 +71,7 @@ export const navItemStyles = {
|
|
|
71
71
|
kWkggS: "x17x4s8c x1jzqe4",
|
|
72
72
|
kMwMTN: "x1k5gbb1",
|
|
73
73
|
k63SB2: "x1e4wzip",
|
|
74
|
-
|
|
74
|
+
kRL5z6: "xcu6dpe x1d42zcn",
|
|
75
75
|
kSReZ0: "xjtnuge x1vo6n7o",
|
|
76
76
|
$$css: true
|
|
77
77
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NumberInput.d.ts","sourceRoot":"","sources":["../../src/NumberInput/NumberInput.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAML,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"NumberInput.d.ts","sourceRoot":"","sources":["../../src/NumberInput/NumberInput.tsx"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
import { useId, useState, useMemo, useCallback, useRef } from 'react';
|
|
19
19
|
import * as stylex from '@stylexjs/stylex';
|
|
20
20
|
import "../theme/tokens.stylex.js";
|
|
21
|
-
import { colorVars, sizeVars, spacingVars,
|
|
21
|
+
import { colorVars, sizeVars, spacingVars, typographyVars, typeScaleVars, borderVars } from "../theme/tokens.stylex.js";
|
|
22
22
|
import { Field, InputClearButton, inputWrapperStyles, inputStatusBorderStyles, inputStatusHoverShadowStyles, inputStatusFocusWithinStyles } from "../Field/index.js";
|
|
23
23
|
import { Icon, renderIconSlot } from "../Icon/index.js";
|
|
24
24
|
import { VisuallyHidden } from "../VisuallyHidden/index.js";
|
|
@@ -27,10 +27,39 @@ import { getInputARIA } from "../utils/index.js";
|
|
|
27
27
|
import { useSize } from "../SizeContext/SizeContext.js";
|
|
28
28
|
import { useInputContainer } from "../hooks/useInputContainer.js";
|
|
29
29
|
import { useInputStatusIcon } from "../hooks/useInputStatusIcon.js";
|
|
30
|
+
import { useResolvedRequired } from "../hooks/useResolvedRequired.js";
|
|
30
31
|
import { useInputGroup } from "../InputGroup/InputGroupContext.js";
|
|
32
|
+
|
|
33
|
+
// Public padding tokens for the `number-input` theme target. A theme writes an
|
|
34
|
+
// ordinary `padding` (in ANY spelling — the shorthand, `paddingBlock`, or a
|
|
35
|
+
// single `paddingBlockStart`) and the pipeline's `container` expansion parses
|
|
36
|
+
// it and emits these normalized per-side tokens; the wrapper and the stepper
|
|
37
|
+
// column both read them, so the column tracks whatever the theme sets instead
|
|
38
|
+
// of assuming the default. Routing through the shared expansion rather than a
|
|
39
|
+
// hand-rolled property→var mapping is what makes every spelling work: a
|
|
40
|
+
// mapping only fires for the exact property name it names.
|
|
41
|
+
//
|
|
42
|
+
// Read order per level: `var(--astryx-…, <next level>)`, terminating at the
|
|
43
|
+
// shared field defaults (NOT the container default --spacing-4, which is a
|
|
44
|
+
// layout metric and would resize every themed field). Built as chained const
|
|
45
|
+
// strings — no function calls — so StyleX can statically analyze them; same
|
|
46
|
+
// shape as the card/section/dialog chains in Layout/container.stylex.ts.
|
|
47
|
+
const FIELD_PAD_BLOCK = spacingVars['--spacing-1'];
|
|
48
|
+
const FIELD_PAD_INLINE = spacingVars['--spacing-2'];
|
|
49
|
+
const padBlockAll = `var(--astryx-number-input-padding, ${FIELD_PAD_BLOCK})`;
|
|
50
|
+
const padInlineAll = `var(--astryx-number-input-padding, ${FIELD_PAD_INLINE})`;
|
|
51
|
+
const padInline = `var(--astryx-number-input-padding-inline, ${padInlineAll})`;
|
|
52
|
+
const padInlineStart = `var(--astryx-number-input-padding-inline-start, ${padInline})`;
|
|
53
|
+
const padInlineEnd = `var(--astryx-number-input-padding-inline-end, ${padInline})`;
|
|
54
|
+
const padBlockStart = `var(--astryx-number-input-padding-block-start, ${padBlockAll})`;
|
|
55
|
+
const padBlockEnd = `var(--astryx-number-input-padding-block-end, ${padBlockAll})`;
|
|
31
56
|
const styles = {
|
|
32
57
|
wrapper: {
|
|
33
58
|
kY2c9j: "x1vjfegm",
|
|
59
|
+
kLKAdn: "x4kswst",
|
|
60
|
+
kGO01o: "x3jnfsm",
|
|
61
|
+
kZCmMZ: "x1jni19p",
|
|
62
|
+
kwRFfy: "x17sfb9",
|
|
34
63
|
$$css: true
|
|
35
64
|
},
|
|
36
65
|
wrapperWithNumberSteppers: {
|
|
@@ -202,6 +231,10 @@ export function NumberInput({
|
|
|
202
231
|
...rest
|
|
203
232
|
}) {
|
|
204
233
|
const t = useTranslator();
|
|
234
|
+
const isEffectivelyRequired = useResolvedRequired({
|
|
235
|
+
isRequired,
|
|
236
|
+
isOptional
|
|
237
|
+
});
|
|
205
238
|
const size = useSize(sizeProp, 'md');
|
|
206
239
|
const id = useId();
|
|
207
240
|
const inputLabelID = useId();
|
|
@@ -509,7 +542,7 @@ export function NumberInput({
|
|
|
509
542
|
"aria-valuenow": value ?? undefined,
|
|
510
543
|
"aria-valuetext": value == null || !formatValue ? undefined : formattedValue,
|
|
511
544
|
"aria-describedby": ariaDescribedBy,
|
|
512
|
-
"aria-required":
|
|
545
|
+
"aria-required": isEffectivelyRequired ? 'true' : undefined,
|
|
513
546
|
"aria-invalid": status?.type === 'error' || !isInputValid ? 'true' : undefined,
|
|
514
547
|
"aria-labelledby": ariaLabelledBy,
|
|
515
548
|
...{
|
|
@@ -548,7 +581,7 @@ export function NumberInput({
|
|
|
548
581
|
onClick: handleClear
|
|
549
582
|
}), statusIcon, hasNumberSteppers && /*#__PURE__*/_jsxs("div", {
|
|
550
583
|
...{
|
|
551
|
-
className: "xkh2ocl x78zum5 xdt5ytf x2lah0s x12xnipv
|
|
584
|
+
className: "xkh2ocl x78zum5 xdt5ytf x2lah0s x12xnipv x5j3pgv x13i4uq0 xgbv0en x1t7ytsu x14ydlgx xb3r6kr x1g2gkjz xoao14b"
|
|
552
585
|
},
|
|
553
586
|
children: [/*#__PURE__*/_jsx("button", {
|
|
554
587
|
type: "button",
|
|
@@ -564,7 +597,7 @@ export function NumberInput({
|
|
|
564
597
|
},
|
|
565
598
|
...{
|
|
566
599
|
0: {
|
|
567
|
-
className: "x9f619 x78zum5 x6s0dn4 xl56j7k x98rzlu x2lwn1j x1717udv x1ghz6dp xc342km xng3xce xv9yike x10xzikg
|
|
600
|
+
className: "x9f619 x78zum5 x6s0dn4 xl56j7k x98rzlu x2lwn1j x1717udv x1ghz6dp xc342km xng3xce xv9yike x10xzikg xmvprkv xq8i9tn x1ypdohk x1a2a7pz"
|
|
568
601
|
},
|
|
569
602
|
1: {
|
|
570
603
|
className: "x9f619 x78zum5 x6s0dn4 xl56j7k x98rzlu x2lwn1j x1717udv x1ghz6dp xc342km xng3xce x10xzikg x1a2a7pz xqa6c3m x1h6gzvc x18o3ruo"
|
|
@@ -590,7 +623,7 @@ export function NumberInput({
|
|
|
590
623
|
},
|
|
591
624
|
...{
|
|
592
625
|
0: {
|
|
593
|
-
className: "x9f619 x78zum5 x6s0dn4 xl56j7k x98rzlu x2lwn1j x1717udv x1ghz6dp xc342km xng3xce xv9yike x10xzikg
|
|
626
|
+
className: "x9f619 x78zum5 x6s0dn4 xl56j7k x98rzlu x2lwn1j x1717udv x1ghz6dp xc342km xng3xce xv9yike x10xzikg xmvprkv xq8i9tn x1ypdohk x1a2a7pz x11xkdxz x13fuv20 x1mly77v"
|
|
594
627
|
},
|
|
595
628
|
1: {
|
|
596
629
|
className: "x9f619 x78zum5 x6s0dn4 xl56j7k x98rzlu x2lwn1j x1717udv x1ghz6dp xc342km xng3xce x10xzikg x1a2a7pz x11xkdxz x13fuv20 x1mly77v xqa6c3m x1h6gzvc x18o3ruo"
|
package/dist/Outline/Outline.js
CHANGED
|
@@ -4,6 +4,8 @@ import type { OutlineItem } from './types';
|
|
|
4
4
|
*
|
|
5
5
|
* Uses Markdown's parser so fenced code blocks, tables, lists, and inline
|
|
6
6
|
* formatting are interpreted consistently with rendered Markdown output.
|
|
7
|
+
* Ids come from the parser's shared slug helpers, so they always match the
|
|
8
|
+
* `id` attributes Markdown renders on its headings.
|
|
7
9
|
*/
|
|
8
10
|
export declare function parseOutlineFromMarkdown(markdown: string): OutlineItem[];
|
|
9
11
|
//# sourceMappingURL=parseOutlineFromMarkdown.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseOutlineFromMarkdown.d.ts","sourceRoot":"","sources":["../../src/Outline/parseOutlineFromMarkdown.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"parseOutlineFromMarkdown.d.ts","sourceRoot":"","sources":["../../src/Outline/parseOutlineFromMarkdown.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,SAAS,CAAC;AAEzC;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,EAAE,CAYxE"}
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* @file parseOutlineFromMarkdown.ts
|
|
5
|
-
* @input Uses Markdown parser internals
|
|
5
|
+
* @input Uses Markdown parser internals (parseMarkdown + heading slug
|
|
6
|
+
* helpers) and OutlineItem type
|
|
6
7
|
* @output Exports parseOutlineFromMarkdown for extracting heading outlines from Markdown
|
|
7
8
|
* @position Pure utility; consumed by useOutlineFromMarkdown and public exports
|
|
8
9
|
*
|
|
@@ -11,41 +12,14 @@
|
|
|
11
12
|
* - /packages/core/src/Outline/index.ts
|
|
12
13
|
*/
|
|
13
14
|
|
|
14
|
-
import { parseMarkdown } from "../Markdown/parser.js";
|
|
15
|
-
function inlineText(nodes) {
|
|
16
|
-
return nodes.map(node => {
|
|
17
|
-
switch (node.type) {
|
|
18
|
-
case 'text':
|
|
19
|
-
case 'code':
|
|
20
|
-
return node.content;
|
|
21
|
-
case 'bold':
|
|
22
|
-
case 'italic':
|
|
23
|
-
case 'strikethrough':
|
|
24
|
-
case 'link':
|
|
25
|
-
return inlineText(node.children);
|
|
26
|
-
case 'image':
|
|
27
|
-
return node.alt;
|
|
28
|
-
case 'citation':
|
|
29
|
-
case 'break':
|
|
30
|
-
return '';
|
|
31
|
-
}
|
|
32
|
-
}).join('');
|
|
33
|
-
}
|
|
34
|
-
function slugify(value) {
|
|
35
|
-
return value.trim().toLowerCase().replace(/['"]/g, '').replace(/[^a-z0-9]+/g, '-').replace(/^-+|-+$/g, '');
|
|
36
|
-
}
|
|
37
|
-
function uniqueSlug(baseSlug, counts) {
|
|
38
|
-
const fallbackSlug = baseSlug || 'section';
|
|
39
|
-
const count = counts.get(fallbackSlug) ?? 0;
|
|
40
|
-
counts.set(fallbackSlug, count + 1);
|
|
41
|
-
return count === 0 ? fallbackSlug : `${fallbackSlug}-${count}`;
|
|
42
|
-
}
|
|
43
|
-
|
|
15
|
+
import { parseMarkdown, inlineText, slugify, uniqueSlug } from "../Markdown/parser.js";
|
|
44
16
|
/**
|
|
45
17
|
* Extract heading items from a Markdown string.
|
|
46
18
|
*
|
|
47
19
|
* Uses Markdown's parser so fenced code blocks, tables, lists, and inline
|
|
48
20
|
* formatting are interpreted consistently with rendered Markdown output.
|
|
21
|
+
* Ids come from the parser's shared slug helpers, so they always match the
|
|
22
|
+
* `id` attributes Markdown renders on its headings.
|
|
49
23
|
*/
|
|
50
24
|
export function parseOutlineFromMarkdown(markdown) {
|
|
51
25
|
const counts = new Map();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PowerSearch.d.ts","sourceRoot":"","sources":["../../src/PowerSearch/PowerSearch.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,EAOZ,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,EAGL,KAAK,yBAAyB,EAC/B,MAAM,cAAc,CAAC;AAMtB,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,SAAS,CAAC;AAEtC,OAAO,KAAK,EAAC,WAAW,EAAE,kBAAkB,EAAC,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"PowerSearch.d.ts","sourceRoot":"","sources":["../../src/PowerSearch/PowerSearch.tsx"],"names":[],"mappings":"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"}
|
|
@@ -29,12 +29,13 @@ import { mergeRefs } from "../utils/index.js";
|
|
|
29
29
|
import { useSize } from "../SizeContext/SizeContext.js";
|
|
30
30
|
import { useInternalConfig } from "./useInternalConfig.js";
|
|
31
31
|
import { usePowerSearchSource } from "./usePowerSearchSource.js";
|
|
32
|
-
import { formatFilterValue } from "./formatFilterValue.js";
|
|
32
|
+
import { formatFilterValue, formatDateAbsoluteCompact } from "./formatFilterValue.js";
|
|
33
33
|
import { PowerSearchEditPopover } from "./PowerSearchEditPopover.js";
|
|
34
34
|
import { resolveOperatorLabel } from "./resolveOperatorLabel.js";
|
|
35
35
|
import { themeProps } from "../utils/themeProps.js";
|
|
36
36
|
import { truncateCharacters } from "../utils/characters.js";
|
|
37
37
|
import { useTranslator } from "../i18n/index.js";
|
|
38
|
+
import { useLocale } from "../i18n/useLocale.js";
|
|
38
39
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
39
40
|
// =============================================================================
|
|
40
41
|
// Icon mapping for typeahead entries
|
|
@@ -79,7 +80,8 @@ function getEnumLabel(values, value) {
|
|
|
79
80
|
function PowerSearchTokenValue({
|
|
80
81
|
operatorValue,
|
|
81
82
|
filterValue,
|
|
82
|
-
maxLength
|
|
83
|
+
maxLength,
|
|
84
|
+
locale
|
|
83
85
|
}) {
|
|
84
86
|
switch (filterValue.type) {
|
|
85
87
|
case 'empty':
|
|
@@ -230,12 +232,7 @@ function PowerSearchTokenValue({
|
|
|
230
232
|
});
|
|
231
233
|
case 'date_absolute':
|
|
232
234
|
{
|
|
233
|
-
const
|
|
234
|
-
const formatted = new Intl.DateTimeFormat(undefined, {
|
|
235
|
-
year: 'numeric',
|
|
236
|
-
month: 'short',
|
|
237
|
-
day: 'numeric'
|
|
238
|
-
}).format(date);
|
|
235
|
+
const formatted = formatDateAbsoluteCompact(filterValue.unixSeconds, locale);
|
|
239
236
|
return /*#__PURE__*/_jsx("span", {
|
|
240
237
|
...{
|
|
241
238
|
className: "x1lvx875"
|
|
@@ -401,6 +398,7 @@ export function PowerSearch({
|
|
|
401
398
|
const config = useInternalConfig(configProp);
|
|
402
399
|
const searchSource = usePowerSearchSource(config);
|
|
403
400
|
const t = useTranslator();
|
|
401
|
+
const locale = useLocale();
|
|
404
402
|
const label = labelFromProps ?? t('@astryx.powersearch.label');
|
|
405
403
|
const placeholder = placeholderFromProps ?? t('@astryx.powersearch.placeholder');
|
|
406
404
|
const popoverSaveButtonLabel = popoverSaveButtonLabelFromProps ?? t('@astryx.powersearch.editor.apply');
|
|
@@ -458,7 +456,7 @@ export function PowerSearch({
|
|
|
458
456
|
const operator = config.getOperator(filter.field, filter.operator);
|
|
459
457
|
const resolvedOp = operator ? resolveOperatorLabel(operator, t) : '';
|
|
460
458
|
const operatorLabel = resolvedOp ? `: ${resolvedOp}` : '';
|
|
461
|
-
const valueStr = operator ? formatFilterValue(config, operator.value, filter.value, maxTokenLength, t, timezoneID) : '';
|
|
459
|
+
const valueStr = operator ? formatFilterValue(config, operator.value, filter.value, maxTokenLength, t, locale, timezoneID) : '';
|
|
462
460
|
const displayLabel = valueStr ? `${field?.label ?? filter.field}${operatorLabel} ${valueStr}` : `${field?.label ?? filter.field}${operatorLabel}`;
|
|
463
461
|
return {
|
|
464
462
|
id: `filter-${index}-${filter.field}-${filter.operator}`,
|
|
@@ -471,7 +469,7 @@ export function PowerSearch({
|
|
|
471
469
|
}
|
|
472
470
|
};
|
|
473
471
|
});
|
|
474
|
-
}, [filters, config, maxTokenLength, timezoneID, t]);
|
|
472
|
+
}, [filters, config, maxTokenLength, timezoneID, t, locale]);
|
|
475
473
|
|
|
476
474
|
// Handle tokenizer onChange (field selected from typeahead)
|
|
477
475
|
const handleTokenizerChange = useCallback((_items, change) => {
|
|
@@ -612,7 +610,8 @@ export function PowerSearch({
|
|
|
612
610
|
const valueContent = operator && filter ? /*#__PURE__*/_jsx(PowerSearchTokenValue, {
|
|
613
611
|
operatorValue: operator.value,
|
|
614
612
|
filterValue: filter.value,
|
|
615
|
-
maxLength: adjustedMaxLength
|
|
613
|
+
maxLength: adjustedMaxLength,
|
|
614
|
+
locale: locale
|
|
616
615
|
}) : undefined;
|
|
617
616
|
|
|
618
617
|
// Show entity photo as token icon for single-entity filters
|
|
@@ -637,7 +636,7 @@ export function PowerSearch({
|
|
|
637
636
|
onRemove: handleRemove,
|
|
638
637
|
isDisabled: isDisabled
|
|
639
638
|
});
|
|
640
|
-
}, [filters, config, configProp, maxTokenLength, size, isReadOnly, isDisabled, handleTokenClick, componentOverrides, t]);
|
|
639
|
+
}, [filters, config, configProp, maxTokenLength, locale, size, isReadOnly, isDisabled, handleTokenClick, componentOverrides, t]);
|
|
641
640
|
|
|
642
641
|
// Custom typeahead item renderer — adds field icon and description
|
|
643
642
|
const renderItem = useCallback(item => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PowerSearchToken.d.ts","sourceRoot":"","sources":["../../src/PowerSearch/PowerSearchToken.tsx"],"names":[],"mappings":"AAIA;;;;;GAKG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"PowerSearchToken.d.ts","sourceRoot":"","sources":["../../src/PowerSearch/PowerSearchToken.tsx"],"names":[],"mappings":"AAIA;;;;;GAKG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAS1B,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,SAAS,CAAC;AAQnD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,MAAM,EAAE,UAAU,EAClB,MAAM,EACN,KAAK,EACL,QAAQ,EACR,SAAS,EACT,OAAO,EACP,QAAQ,EACR,UAAU,GACX,EAAE,qBAAqB,qBA8CvB;yBAvDe,gBAAgB"}
|
|
@@ -12,6 +12,7 @@ import React from 'react';
|
|
|
12
12
|
import * as stylex from '@stylexjs/stylex';
|
|
13
13
|
import { Token } from "../Token/index.js";
|
|
14
14
|
import { useTranslator } from "../i18n/index.js";
|
|
15
|
+
import { useLocale } from "../i18n/useLocale.js";
|
|
15
16
|
import "../theme/tokens.stylex.js";
|
|
16
17
|
import { fontWeightVars } from "../theme/tokens.stylex.js";
|
|
17
18
|
import { formatFilterValue } from "./formatFilterValue.js";
|
|
@@ -37,12 +38,13 @@ export function PowerSearchToken({
|
|
|
37
38
|
}) {
|
|
38
39
|
const config = useInternalConfig(configProp);
|
|
39
40
|
const t = useTranslator();
|
|
41
|
+
const locale = useLocale();
|
|
40
42
|
const fieldLabel = field.label;
|
|
41
43
|
const resolvedOperatorLabel = resolveOperatorLabel(operator, t);
|
|
42
44
|
const operatorLabel = resolvedOperatorLabel ? `: ${resolvedOperatorLabel}` : '';
|
|
43
45
|
const tokenLabel = `${fieldLabel}${operatorLabel}`;
|
|
44
46
|
const adjustedMaxLength = Math.max(maxLength - fieldLabel.length - resolvedOperatorLabel.length, 10);
|
|
45
|
-
const valueStr = formatFilterValue(config, operator.value, filter.value, adjustedMaxLength, t);
|
|
47
|
+
const valueStr = formatFilterValue(config, operator.value, filter.value, adjustedMaxLength, t, locale);
|
|
46
48
|
const valueContent = valueStr ? /*#__PURE__*/_jsx("span", {
|
|
47
49
|
...{
|
|
48
50
|
className: "x1lvx875"
|
|
@@ -9,6 +9,15 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import type { OperatorValue, FilterValue } from './types';
|
|
11
11
|
import type { InternalConfig } from './useInternalConfig';
|
|
12
|
-
import type { TranslatorFn } from '../i18n';
|
|
13
|
-
export declare function
|
|
12
|
+
import type { Locale, TranslatorFn } from '../i18n';
|
|
13
|
+
export declare function formatDateAbsolute(unixSeconds: number, locale: Locale, timezoneID?: string): string;
|
|
14
|
+
/**
|
|
15
|
+
* Compact date-only rendering (no time-of-day) for the token pill's inline
|
|
16
|
+
* value display, which has less room than the editor's full summary. Kept
|
|
17
|
+
* separate from {@link formatDateAbsolute} rather than reusing it with
|
|
18
|
+
* different options threaded through a param, since the two callers want
|
|
19
|
+
* genuinely different shapes, not a parameterization of the same one.
|
|
20
|
+
*/
|
|
21
|
+
export declare function formatDateAbsoluteCompact(unixSeconds: number, locale: Locale): string;
|
|
22
|
+
export declare function formatFilterValue(_config: InternalConfig, operatorValue: OperatorValue, filterValue: FilterValue, maxLength: number, t: TranslatorFn, locale: Locale, timezoneID?: string): string;
|
|
14
23
|
//# sourceMappingURL=formatFilterValue.d.ts.map
|