@astryxdesign/core 0.7.5 → 0.7.6-canary.0d71e8d
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/dist/AlertDialog/AlertDialog.d.ts +1 -1
- package/dist/AlertDialog/AlertDialog.d.ts.map +1 -1
- package/dist/AlertDialog/AlertDialog.js +5 -5
- package/dist/AppShell/AppShell.d.ts.map +1 -1
- package/dist/AppShell/AppShell.js +183 -5
- package/dist/AppShell/observeMainOverflow.d.ts +9 -0
- package/dist/AppShell/observeMainOverflow.d.ts.map +1 -0
- package/dist/AppShell/observeMainOverflow.js +125 -0
- package/dist/Avatar/Avatar.d.ts.map +1 -1
- package/dist/Avatar/Avatar.js +12 -3
- package/dist/Badge/Badge.d.ts.map +1 -1
- package/dist/Badge/Badge.js +7 -1
- package/dist/BottomSheet/BottomSheet.js +1 -1
- package/dist/BottomSheet/BottomSheetPanel.d.ts.map +1 -1
- package/dist/BottomSheet/BottomSheetPanel.js +2 -1
- package/dist/BottomSheet/useSheetGestures.d.ts +12 -0
- package/dist/BottomSheet/useSheetGestures.d.ts.map +1 -1
- package/dist/BottomSheet/useSheetGestures.js +30 -3
- package/dist/Button/Button.js +4 -4
- package/dist/Carousel/Carousel.d.ts +3 -1
- package/dist/Carousel/Carousel.d.ts.map +1 -1
- package/dist/Carousel/Carousel.js +12 -3
- package/dist/CheckboxInput/CheckboxInput.d.ts.map +1 -1
- package/dist/CheckboxInput/CheckboxInput.js +6 -5
- package/dist/ClickableCard/ClickableCard.d.ts.map +1 -1
- package/dist/ClickableCard/ClickableCard.js +37 -4
- package/dist/ComplexSelector/ComplexSelector.d.ts.map +1 -1
- package/dist/ComplexSelector/ComplexSelector.js +41 -4
- package/dist/DateInput/DateInput.d.ts.map +1 -1
- package/dist/DateInput/DateInput.js +12 -4
- package/dist/DateInput/MonthScroller.d.ts.map +1 -1
- package/dist/DateInput/MonthScroller.js +101 -15
- package/dist/DateInput/TouchDateField.d.ts.map +1 -1
- package/dist/DateInput/TouchDateField.js +8 -3
- package/dist/DateInput/Wheel.d.ts.map +1 -1
- package/dist/DateInput/Wheel.js +11 -7
- package/dist/DateInput/usePointerDragScroll.d.ts +10 -1
- package/dist/DateInput/usePointerDragScroll.d.ts.map +1 -1
- package/dist/DateInput/usePointerDragScroll.js +25 -9
- package/dist/DateInput/useScrollSettle.d.ts +3 -1
- package/dist/DateInput/useScrollSettle.d.ts.map +1 -1
- package/dist/DateInput/useScrollSettle.js +37 -8
- package/dist/DateRangeInput/DateRangeInput.d.ts.map +1 -1
- package/dist/DateRangeInput/DateRangeInput.js +1 -1
- package/dist/DateTimeInput/DateTimeInput.d.ts +5 -2
- package/dist/DateTimeInput/DateTimeInput.d.ts.map +1 -1
- package/dist/DateTimeInput/DateTimeInput.js +23 -12
- package/dist/DateTimeInput/NativeTimeSegment.d.ts.map +1 -1
- package/dist/DateTimeInput/NativeTimeSegment.js +5 -4
- package/dist/DateTimeInput/TouchDateTimeField.d.ts.map +1 -1
- package/dist/DateTimeInput/TouchDateTimeField.js +4 -3
- package/dist/Dialog/Dialog.d.ts.map +1 -1
- package/dist/Dialog/Dialog.js +34 -9
- package/dist/Dialog/DialogHeader.d.ts.map +1 -1
- package/dist/Dialog/DialogHeader.js +5 -4
- package/dist/Divider/Divider.d.ts.map +1 -1
- package/dist/Divider/Divider.js +2 -1
- package/dist/Drawer/Drawer.d.ts +1 -0
- package/dist/Drawer/Drawer.d.ts.map +1 -1
- package/dist/Drawer/Drawer.js +7 -2
- package/dist/DropdownMenu/DropdownMenu.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenu.js +35 -22
- package/dist/DropdownMenu/MenuBottomSheetActionList.d.ts.map +1 -1
- package/dist/DropdownMenu/MenuBottomSheetActionList.js +6 -5
- package/dist/DropdownMenu/lazyMenuBottomSheet.d.ts +20 -2
- package/dist/DropdownMenu/lazyMenuBottomSheet.d.ts.map +1 -1
- package/dist/DropdownMenu/lazyMenuBottomSheet.js +31 -3
- package/dist/DropdownMenu/renderDropdownItems.d.ts.map +1 -1
- package/dist/DropdownMenu/renderDropdownItems.js +21 -16
- package/dist/EmptyState/EmptyState.d.ts.map +1 -1
- package/dist/EmptyState/EmptyState.js +2 -1
- package/dist/Field/FieldLabel.d.ts +1 -1
- package/dist/Field/FieldLabel.d.ts.map +1 -1
- package/dist/Field/FieldLabel.js +4 -4
- package/dist/Field/InputClearButton.js +3 -3
- package/dist/Field/PanelSearchInput.js +2 -2
- package/dist/FieldStatus/FieldStatus.d.ts +3 -0
- package/dist/FieldStatus/FieldStatus.d.ts.map +1 -1
- package/dist/FieldStatus/FieldStatus.js +3 -2
- package/dist/FileInput/FileInput.d.ts +3 -0
- package/dist/FileInput/FileInput.d.ts.map +1 -1
- package/dist/FileInput/FileInput.js +34 -13
- package/dist/Heading/Heading.js +1 -1
- package/dist/Icon/Icon.js +1 -1
- package/dist/Indicator/CheckIndicator.d.ts.map +1 -1
- package/dist/Indicator/CheckIndicator.js +2 -1
- package/dist/Indicator/CheckboxIndicator.d.ts.map +1 -1
- package/dist/Indicator/CheckboxIndicator.js +3 -1
- package/dist/Indicator/RadioIndicator.d.ts.map +1 -1
- package/dist/Indicator/RadioIndicator.js +3 -1
- package/dist/Item/Item.d.ts.map +1 -1
- package/dist/Item/Item.js +21 -7
- package/dist/Item/ItemSwipeLayer.js +1 -1
- package/dist/Layer/popoverOperations.d.ts +27 -0
- package/dist/Layer/popoverOperations.d.ts.map +1 -0
- package/dist/Layer/popoverOperations.js +159 -0
- package/dist/Layer/useLayer.d.ts +1 -1
- package/dist/Layer/useLayer.d.ts.map +1 -1
- package/dist/Layer/useLayer.js +120 -65
- package/dist/Layout/Layout.js +1 -1
- package/dist/Layout/LayoutContent.js +1 -1
- package/dist/Layout/LayoutFooter.js +1 -1
- package/dist/Layout/LayoutHeader.js +1 -1
- package/dist/Lightbox/Lightbox.d.ts.map +1 -1
- package/dist/Lightbox/Lightbox.js +5 -0
- package/dist/Lightbox/LightboxViewport.a11y.browser.spec.js +5 -4
- package/dist/Link/Link.d.ts.map +1 -1
- package/dist/Link/Link.js +8 -3
- package/dist/List/List.js +1 -1
- package/dist/List/ListItem.js +3 -3
- package/dist/Markdown/plugins/headingLinks.a11y.chromium.spec.js +1 -1
- package/dist/MobileNav/MobileNav.d.ts.map +1 -1
- package/dist/MobileNav/MobileNav.js +7 -2
- package/dist/MultiSelector/CreateRow.a11y.chromium.spec.js +7 -6
- package/dist/MultiSelector/MultiSelector.d.ts +1 -1
- package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
- package/dist/MultiSelector/MultiSelector.js +26 -10
- package/dist/NavMenu/NavHeadingMenuItem.d.ts.map +1 -1
- package/dist/NavMenu/NavHeadingMenuItem.js +5 -29
- package/dist/NumberInput/NumberInput.d.ts +3 -1
- package/dist/NumberInput/NumberInput.d.ts.map +1 -1
- package/dist/NumberInput/NumberInput.js +26 -5
- package/dist/NumberInput/numberParser.d.ts +3 -0
- package/dist/NumberInput/numberParser.d.ts.map +1 -1
- package/dist/NumberInput/numberParser.js +7 -44
- package/dist/Outline/Outline.d.ts.map +1 -1
- package/dist/Outline/Outline.js +27 -0
- package/dist/Popover/Popover.d.ts.map +1 -1
- package/dist/Popover/Popover.js +32 -12
- package/dist/Popover/usePopover.d.ts.map +1 -1
- package/dist/Popover/usePopover.js +10 -3
- package/dist/PowerSearch/PowerSearch.d.ts.map +1 -1
- package/dist/PowerSearch/PowerSearch.js +37 -30
- package/dist/ProgressBar/ProgressBar.d.ts.map +1 -1
- package/dist/ProgressBar/ProgressBar.js +16 -12
- package/dist/RadioList/RadioListItem.d.ts.map +1 -1
- package/dist/RadioList/RadioListItem.js +11 -3
- package/dist/Resizable/useResizable.d.ts.map +1 -1
- package/dist/Resizable/useResizable.js +28 -2
- package/dist/SegmentedControl/SegmentedControlItem.d.ts.map +1 -1
- package/dist/SegmentedControl/SegmentedControlItem.js +4 -1
- package/dist/Selector/useSelectorPresentation.d.ts +8 -1
- package/dist/Selector/useSelectorPresentation.d.ts.map +1 -1
- package/dist/Selector/useSelectorPresentation.js +20 -4
- package/dist/SideNav/SideNavItem.d.ts +2 -2
- package/dist/SideNav/SideNavItem.d.ts.map +1 -1
- package/dist/SideNav/SideNavItem.js +18 -7
- package/dist/Skeleton/Skeleton.d.ts.map +1 -1
- package/dist/Skeleton/Skeleton.js +1 -1
- package/dist/Slider/Slider.d.ts.map +1 -1
- package/dist/Slider/Slider.js +10 -2
- package/dist/Spinner/Spinner.d.ts.map +1 -1
- package/dist/Spinner/Spinner.js +3 -3
- package/dist/Stack/Stack.js +1 -1
- package/dist/Stack/StackItem.js +1 -1
- package/dist/Stepper/Step.d.ts.map +1 -1
- package/dist/Stepper/Step.js +26 -6
- package/dist/Switch/Switch.d.ts.map +1 -1
- package/dist/Switch/Switch.js +10 -3
- package/dist/TabList/TabList.d.ts.map +1 -1
- package/dist/TabList/TabList.js +16 -1
- package/dist/Table/Table.d.ts.map +1 -1
- package/dist/Table/Table.js +36 -10
- package/dist/Table/plugins/columnResize/useTableColumnResize.d.ts.map +1 -1
- package/dist/Table/plugins/columnResize/useTableColumnResize.js +9 -1
- package/dist/Table/plugins/sortable/useTableSortable.d.ts.map +1 -1
- package/dist/Table/plugins/sortable/useTableSortable.js +46 -58
- package/dist/Text/Text.js +1 -1
- package/dist/Text/useTruncation.d.ts.map +1 -1
- package/dist/Text/useTruncation.js +23 -5
- package/dist/TextArea/TextArea.d.ts +1 -1
- package/dist/TextArea/TextArea.d.ts.map +1 -1
- package/dist/TextArea/TextArea.js +13 -2
- package/dist/TextInput/TextInput.d.ts.map +1 -1
- package/dist/TextInput/TextInput.js +3 -3
- package/dist/TimeInput/TimeInput.d.ts +6 -2
- package/dist/TimeInput/TimeInput.d.ts.map +1 -1
- package/dist/TimeInput/TimeInput.js +21 -14
- package/dist/TimeInput/TouchTimeField.d.ts.map +1 -1
- package/dist/TimeInput/TouchTimeField.js +5 -4
- package/dist/Timestamp/Timestamp.d.ts.map +1 -1
- package/dist/Timestamp/Timestamp.js +2 -2
- package/dist/Timestamp/TimestampHoverCard.js +4 -4
- package/dist/Toast/Toast.d.ts.map +1 -1
- package/dist/Toast/Toast.js +60 -20
- package/dist/Toast/ToastViewport.d.ts.map +1 -1
- package/dist/Toast/ToastViewport.js +101 -54
- package/dist/ToggleButton/ToggleButtonGroup.d.ts +7 -1
- package/dist/ToggleButton/ToggleButtonGroup.d.ts.map +1 -1
- package/dist/ToggleButton/ToggleButtonGroup.js +16 -2
- package/dist/Token/Token.d.ts +1 -1
- package/dist/Token/Token.d.ts.map +1 -1
- package/dist/Token/Token.js +52 -5
- package/dist/Token/TokenLink.d.ts.map +1 -1
- package/dist/Token/TokenLink.js +14 -2
- package/dist/Tokenizer/Tokenizer.d.ts.map +1 -1
- package/dist/Tokenizer/Tokenizer.js +44 -7
- package/dist/Tokenizer/TokenizerBottomSheet.js +3 -3
- package/dist/Tokenizer/TokenizerClearAllMessageContext.d.ts +2 -0
- package/dist/Tokenizer/TokenizerClearAllMessageContext.d.ts.map +1 -0
- package/dist/Tokenizer/TokenizerClearAllMessageContext.js +17 -0
- package/dist/Toolbar/Toolbar.d.ts.map +1 -1
- package/dist/Toolbar/Toolbar.js +2 -1
- package/dist/TopNav/TopNavMegaMenu.d.ts.map +1 -1
- package/dist/TopNav/TopNavMegaMenu.js +3 -0
- package/dist/TopNav/TopNavMenu.d.ts.map +1 -1
- package/dist/TopNav/TopNavMenu.js +1 -0
- package/dist/TreeList/TreeListItem.d.ts.map +1 -1
- package/dist/TreeList/TreeListItem.js +27 -4
- package/dist/Typeahead/BaseTypeahead.d.ts +4 -4
- package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
- package/dist/Typeahead/BaseTypeahead.js +43 -7
- package/dist/Typeahead/Typeahead.d.ts +1 -1
- package/dist/Typeahead/Typeahead.d.ts.map +1 -1
- package/dist/Typeahead/Typeahead.js +43 -9
- package/dist/astryx.css +25 -4
- package/dist/gestures/GestureArena.d.ts +32 -1
- package/dist/gestures/GestureArena.d.ts.map +1 -1
- package/dist/gestures/GestureArena.js +110 -9
- package/dist/gestures/GestureHost.d.ts +351 -0
- package/dist/gestures/GestureHost.d.ts.map +1 -0
- package/dist/gestures/GestureHost.js +1773 -0
- package/dist/gestures/GestureRecognizer.d.ts +13 -1
- package/dist/gestures/GestureRecognizer.d.ts.map +1 -1
- package/dist/gestures/GestureRecognizer.js +19 -1
- package/dist/gestures/LongPressGestureRecognizer.d.ts +1 -0
- package/dist/gestures/LongPressGestureRecognizer.d.ts.map +1 -1
- package/dist/gestures/LongPressGestureRecognizer.js +3 -0
- package/dist/gestures/PanGestureRecognizer.d.ts +1 -0
- package/dist/gestures/PanGestureRecognizer.d.ts.map +1 -1
- package/dist/gestures/PanGestureRecognizer.js +3 -0
- package/dist/gestures/PinchGestureRecognizer.d.ts +31 -0
- package/dist/gestures/PinchGestureRecognizer.d.ts.map +1 -0
- package/dist/gestures/PinchGestureRecognizer.js +128 -0
- package/dist/gestures/PressTracker.d.ts +112 -0
- package/dist/gestures/PressTracker.d.ts.map +1 -0
- package/dist/gestures/PressTracker.js +267 -0
- package/dist/gestures/ScreenEdgePanGestureRecognizer.d.ts +71 -0
- package/dist/gestures/ScreenEdgePanGestureRecognizer.d.ts.map +1 -0
- package/dist/gestures/ScreenEdgePanGestureRecognizer.js +223 -0
- package/dist/gestures/SwipeGestureRecognizer.d.ts +37 -0
- package/dist/gestures/SwipeGestureRecognizer.d.ts.map +1 -0
- package/dist/gestures/SwipeGestureRecognizer.js +148 -0
- package/dist/gestures/TapGestureRecognizer.d.ts +1 -0
- package/dist/gestures/TapGestureRecognizer.d.ts.map +1 -1
- package/dist/gestures/TapGestureRecognizer.js +3 -0
- package/dist/gestures/VelocityTracker.d.ts +6 -2
- package/dist/gestures/VelocityTracker.d.ts.map +1 -1
- package/dist/gestures/VelocityTracker.js +7 -3
- package/dist/gestures/haptics.d.ts +65 -0
- package/dist/gestures/haptics.d.ts.map +1 -0
- package/dist/gestures/haptics.js +182 -0
- package/dist/gestures/index.d.ts +37 -0
- package/dist/gestures/index.d.ts.map +1 -0
- package/dist/gestures/index.js +25 -0
- package/dist/gestures/nativeScroll.d.ts +42 -0
- package/dist/gestures/nativeScroll.d.ts.map +1 -0
- package/dist/gestures/nativeScroll.js +228 -0
- package/dist/gestures/touchAction.d.ts +60 -0
- package/dist/gestures/touchAction.d.ts.map +1 -0
- package/dist/gestures/touchAction.js +157 -0
- package/dist/gestures/touchActionRule.d.ts +34 -0
- package/dist/gestures/touchActionRule.d.ts.map +1 -0
- package/dist/gestures/touchActionRule.js +140 -0
- package/dist/gestures/types.d.ts +18 -7
- package/dist/gestures/types.d.ts.map +1 -1
- package/dist/gestures/types.js +22 -2
- package/dist/gestures/useGestureRecognizer.d.ts +56 -0
- package/dist/gestures/useGestureRecognizer.d.ts.map +1 -0
- package/dist/gestures/useGestureRecognizer.js +226 -0
- package/dist/hooks/index.d.ts +1 -1
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/modalAnnounce.d.ts.map +1 -1
- package/dist/hooks/modalAnnounce.js +107 -61
- package/dist/hooks/scrollKeyboardDelegation.d.ts.map +1 -1
- package/dist/hooks/scrollKeyboardDelegation.js +7 -3
- package/dist/hooks/useAdaptivePresentation.d.ts.map +1 -1
- package/dist/hooks/useAdaptivePresentation.js +4 -1
- package/dist/hooks/useAnnounce.d.ts +101 -42
- package/dist/hooks/useAnnounce.d.ts.map +1 -1
- package/dist/hooks/useAnnounce.js +161 -75
- package/dist/hooks/useAnnounceRenderedText.d.ts +11 -3
- package/dist/hooks/useAnnounceRenderedText.d.ts.map +1 -1
- package/dist/hooks/useAnnounceRenderedText.js +5 -3
- package/dist/hooks/useBusyAnnouncement.d.ts.map +1 -1
- package/dist/hooks/useBusyAnnouncement.js +6 -12
- package/dist/hooks/useMenuHover.d.ts.map +1 -1
- package/dist/hooks/useMenuHover.js +12 -1
- package/dist/hooks/useScrollOverflow.d.ts +2 -1
- package/dist/hooks/useScrollOverflow.d.ts.map +1 -1
- package/dist/hooks/useScrollOverflow.js +56 -10
- package/dist/i18n/generated-locales/af-ZA.generated.d.ts.map +1 -1
- package/dist/i18n/generated-locales/af-ZA.generated.js +0 -5
- package/dist/i18n/generated-locales/ar-SA.generated.d.ts.map +1 -1
- package/dist/i18n/generated-locales/ar-SA.generated.js +0 -5
- package/dist/i18n/generated-locales/ca-ES.generated.d.ts.map +1 -1
- package/dist/i18n/generated-locales/ca-ES.generated.js +0 -5
- package/dist/i18n/generated-locales/cs-CZ.generated.d.ts.map +1 -1
- package/dist/i18n/generated-locales/cs-CZ.generated.js +0 -5
- package/dist/i18n/generated-locales/da-DK.generated.d.ts.map +1 -1
- package/dist/i18n/generated-locales/da-DK.generated.js +0 -5
- package/dist/i18n/generated-locales/de-DE.generated.d.ts.map +1 -1
- package/dist/i18n/generated-locales/de-DE.generated.js +0 -5
- package/dist/i18n/generated-locales/el-GR.generated.d.ts.map +1 -1
- package/dist/i18n/generated-locales/el-GR.generated.js +0 -5
- package/dist/i18n/generated-locales/en.generated.d.ts.map +1 -1
- package/dist/i18n/generated-locales/en.generated.js +8 -5
- package/dist/i18n/generated-locales/es-ES.generated.d.ts.map +1 -1
- package/dist/i18n/generated-locales/es-ES.generated.js +0 -5
- package/dist/i18n/generated-locales/fi-FI.generated.d.ts.map +1 -1
- package/dist/i18n/generated-locales/fi-FI.generated.js +0 -5
- package/dist/i18n/generated-locales/fr-FR.generated.d.ts.map +1 -1
- package/dist/i18n/generated-locales/fr-FR.generated.js +0 -5
- package/dist/i18n/generated-locales/he-IL.generated.d.ts.map +1 -1
- package/dist/i18n/generated-locales/he-IL.generated.js +0 -5
- package/dist/i18n/generated-locales/hu-HU.generated.d.ts.map +1 -1
- package/dist/i18n/generated-locales/hu-HU.generated.js +0 -5
- package/dist/i18n/generated-locales/it-IT.generated.d.ts.map +1 -1
- package/dist/i18n/generated-locales/it-IT.generated.js +0 -5
- package/dist/i18n/generated-locales/ja-JP.generated.d.ts.map +1 -1
- package/dist/i18n/generated-locales/ja-JP.generated.js +0 -5
- package/dist/i18n/generated-locales/ko-KR.generated.d.ts.map +1 -1
- package/dist/i18n/generated-locales/ko-KR.generated.js +0 -5
- package/dist/i18n/generated-locales/nl-NL.generated.d.ts.map +1 -1
- package/dist/i18n/generated-locales/nl-NL.generated.js +0 -5
- package/dist/i18n/generated-locales/no-NO.generated.d.ts.map +1 -1
- package/dist/i18n/generated-locales/no-NO.generated.js +0 -5
- package/dist/i18n/generated-locales/pl-PL.generated.d.ts.map +1 -1
- package/dist/i18n/generated-locales/pl-PL.generated.js +0 -5
- package/dist/i18n/generated-locales/pseudo.generated.d.ts.map +1 -1
- package/dist/i18n/generated-locales/pseudo.generated.js +8 -5
- package/dist/i18n/generated-locales/pt-BR.generated.d.ts.map +1 -1
- package/dist/i18n/generated-locales/pt-BR.generated.js +0 -5
- package/dist/i18n/generated-locales/pt-PT.generated.d.ts.map +1 -1
- package/dist/i18n/generated-locales/pt-PT.generated.js +0 -5
- package/dist/i18n/generated-locales/ro-RO.generated.d.ts.map +1 -1
- package/dist/i18n/generated-locales/ro-RO.generated.js +0 -5
- package/dist/i18n/generated-locales/ru-RU.generated.d.ts.map +1 -1
- package/dist/i18n/generated-locales/ru-RU.generated.js +0 -5
- package/dist/i18n/generated-locales/sr-SP.generated.d.ts.map +1 -1
- package/dist/i18n/generated-locales/sr-SP.generated.js +0 -5
- package/dist/i18n/generated-locales/sv-SE.generated.d.ts.map +1 -1
- package/dist/i18n/generated-locales/sv-SE.generated.js +0 -5
- package/dist/i18n/generated-locales/tr-TR.generated.d.ts.map +1 -1
- package/dist/i18n/generated-locales/tr-TR.generated.js +0 -5
- package/dist/i18n/generated-locales/uk-UA.generated.d.ts.map +1 -1
- package/dist/i18n/generated-locales/uk-UA.generated.js +0 -5
- package/dist/i18n/generated-locales/vi-VN.generated.d.ts.map +1 -1
- package/dist/i18n/generated-locales/vi-VN.generated.js +0 -5
- package/dist/i18n/generated-locales/zh-CN.generated.d.ts.map +1 -1
- package/dist/i18n/generated-locales/zh-CN.generated.js +0 -5
- package/dist/i18n/generated-locales/zh-TW.generated.d.ts.map +1 -1
- package/dist/i18n/generated-locales/zh-TW.generated.js +0 -5
- package/dist/i18n/useListFormatter.d.ts +9 -0
- package/dist/i18n/useListFormatter.d.ts.map +1 -0
- package/dist/i18n/useListFormatter.js +41 -0
- package/dist/motion/animator.d.ts +83 -8
- package/dist/motion/animator.d.ts.map +1 -1
- package/dist/motion/animator.js +701 -119
- package/dist/motion/coast.d.ts +4 -1
- package/dist/motion/coast.d.ts.map +1 -1
- package/dist/motion/coast.js +4 -2
- package/dist/motion/reducedMotion.d.ts.map +1 -1
- package/dist/motion/reducedMotion.js +6 -2
- package/dist/motion/reducedMotionPlan.d.ts +7 -0
- package/dist/motion/reducedMotionPlan.d.ts.map +1 -1
- package/dist/motion/reducedMotionPlan.js +14 -1
- package/dist/motion/resolveMotion.d.ts +42 -0
- package/dist/motion/resolveMotion.d.ts.map +1 -0
- package/dist/motion/resolveMotion.js +43 -0
- package/dist/motion/roleValue.d.ts +2 -1
- package/dist/motion/roleValue.d.ts.map +1 -1
- package/dist/motion/roleValue.js +2 -1
- package/dist/motion/uikit/timing.d.ts +7 -1
- package/dist/motion/uikit/timing.d.ts.map +1 -1
- package/dist/motion/uikit/timing.js +19 -1
- package/dist/theme/defineTheme.d.ts +19 -5
- package/dist/theme/defineTheme.d.ts.map +1 -1
- package/dist/theme/defineTheme.js +64 -4
- package/dist/theme/domainTokens/domainTokenDefaults.d.ts +3 -0
- package/dist/theme/domainTokens/domainTokenDefaults.d.ts.map +1 -0
- package/dist/theme/domainTokens/domainTokenDefaults.js +19 -0
- package/dist/theme/domainTokens/index.d.ts +5 -4
- package/dist/theme/domainTokens/index.d.ts.map +1 -1
- package/dist/theme/domainTokens/index.js +5 -9
- package/dist/theme/index.d.ts +1 -0
- package/dist/theme/index.d.ts.map +1 -1
- package/dist/theme/motionKnobs.d.ts +56 -0
- package/dist/theme/motionKnobs.d.ts.map +1 -0
- package/dist/theme/motionKnobs.js +48 -0
- package/dist/theme/resolveThemeValues.d.ts +11 -4
- package/dist/theme/resolveThemeValues.d.ts.map +1 -1
- package/dist/theme/resolveThemeValues.js +40 -4
- package/dist/theme/themeAdaptations.d.ts +7 -3
- package/dist/theme/themeAdaptations.d.ts.map +1 -1
- package/dist/theme/themeAdaptations.js +36 -7
- package/dist/theme/themeMotion.d.ts +96 -0
- package/dist/theme/themeMotion.d.ts.map +1 -0
- package/dist/theme/themeMotion.js +177 -0
- package/dist/theme/tokenReferences.d.ts +31 -0
- package/dist/theme/tokenReferences.d.ts.map +1 -0
- package/dist/theme/tokenReferences.js +132 -0
- package/dist/theme/tokens.d.ts +1 -0
- package/dist/theme/tokens.d.ts.map +1 -1
- package/dist/theme/tokens.js +9 -129
- package/dist/theme/tokens.stylex.d.ts +12 -0
- package/dist/theme/tokens.stylex.d.ts.map +1 -1
- package/dist/theme/tokens.stylex.js +12 -0
- package/dist/utils/focusOutline.stylex.d.ts +6 -0
- package/dist/utils/focusOutline.stylex.d.ts.map +1 -1
- package/dist/utils/focusOutline.stylex.js +7 -0
- package/dist/utils/focusReturn.d.ts +17 -1
- package/dist/utils/focusReturn.d.ts.map +1 -1
- package/dist/utils/focusReturn.js +11 -4
- package/dist/utils/getNodeText.d.ts +8 -0
- package/dist/utils/getNodeText.d.ts.map +1 -0
- package/dist/utils/getNodeText.js +37 -0
- package/dist/utils/interactionModality.d.ts +11 -2
- package/dist/utils/interactionModality.d.ts.map +1 -1
- package/dist/utils/interactionModality.js +58 -5
- package/dist/utils/interactionOverlay.stylex.d.ts.map +1 -1
- package/dist/utils/interactionOverlay.stylex.js +17 -8
- package/dist/utils/plainDate.d.ts +2 -0
- package/dist/utils/plainDate.d.ts.map +1 -1
- package/dist/utils/plainDate.js +46 -3
- package/dist/utils/presentation.d.ts +50 -0
- package/dist/utils/presentation.d.ts.map +1 -0
- package/dist/utils/presentation.js +125 -0
- package/dist/utils/pressFeedback.d.ts.map +1 -1
- package/dist/utils/pressFeedback.js +20 -1
- package/dist/utils/primaryClick.d.ts +11 -0
- package/dist/utils/primaryClick.d.ts.map +1 -0
- package/dist/utils/primaryClick.js +25 -0
- package/dist/utils/sharedMutationObserver.d.ts +19 -11
- package/dist/utils/sharedMutationObserver.d.ts.map +1 -1
- package/dist/utils/sharedMutationObserver.js +66 -26
- package/dist/utils/timeFormat.d.ts +47 -0
- package/dist/utils/timeFormat.d.ts.map +1 -0
- package/dist/utils/timeFormat.js +240 -0
- package/dist/utils/touchPresentation.d.ts +2 -2
- package/dist/utils/touchPresentation.d.ts.map +1 -1
- package/dist/utils/touchPresentation.js +13 -8
- package/dist/utils/touchPresentation.stylex.d.ts +15 -0
- package/dist/utils/touchPresentation.stylex.d.ts.map +1 -0
- package/dist/utils/touchPresentation.stylex.js +33 -0
- package/dist/utils/touchQueries.d.ts +13 -0
- package/dist/utils/touchQueries.d.ts.map +1 -0
- package/dist/utils/touchQueries.js +15 -0
- package/dist/utils/unicodeDigits.d.ts +20 -0
- package/dist/utils/unicodeDigits.d.ts.map +1 -0
- package/dist/utils/unicodeDigits.js +70 -0
- package/dist/utils/useFocusAcrossSwap.d.ts +19 -0
- package/dist/utils/useFocusAcrossSwap.d.ts.map +1 -0
- package/dist/utils/useFocusAcrossSwap.js +41 -0
- package/locales/af-ZA.json +0 -21
- package/locales/ar-SA.json +0 -21
- package/locales/ca-ES.json +0 -21
- package/locales/cs-CZ.json +0 -21
- package/locales/da-DK.json +0 -21
- package/locales/de-DE.json +0 -21
- package/locales/el-GR.json +0 -21
- package/locales/en.json +35 -23
- package/locales/es-ES.json +0 -21
- package/locales/fi-FI.json +0 -21
- package/locales/fr-FR.json +0 -21
- package/locales/he-IL.json +0 -21
- package/locales/hu-HU.json +0 -21
- package/locales/it-IT.json +0 -21
- package/locales/ja-JP.json +0 -21
- package/locales/ko-KR.json +0 -21
- package/locales/nl-NL.json +0 -21
- package/locales/no-NO.json +0 -21
- package/locales/pl-PL.json +0 -21
- package/locales/pseudo.json +23 -14
- package/locales/pt-BR.json +0 -21
- package/locales/pt-PT.json +0 -21
- package/locales/ro-RO.json +0 -21
- package/locales/ru-RU.json +0 -21
- package/locales/sr-SP.json +0 -21
- package/locales/sv-SE.json +0 -21
- package/locales/tr-TR.json +0 -21
- package/locales/uk-UA.json +0 -21
- package/locales/vi-VN.json +0 -21
- package/locales/zh-CN.json +0 -21
- package/locales/zh-TW.json +0 -21
- package/package.json +5 -4
- package/src/AlertDialog/AlertDialog.tsx +6 -5
- package/src/AlertDialog/__tests__/AlertDialog.a11y.chromium.spec.ts +18 -6
- package/src/AppShell/AppShell.doc.mjs +1 -1
- package/src/AppShell/AppShell.spec.md +9 -12
- package/src/AppShell/AppShell.test.tsx +164 -2
- package/src/AppShell/AppShell.tsx +225 -5
- package/src/AppShell/__tests__/AppShellMainKeyboard.a11y.browser.spec.ts +534 -0
- package/src/AppShell/observeMainOverflow.test.ts +173 -0
- package/src/AppShell/observeMainOverflow.ts +143 -0
- package/src/Avatar/Avatar.spec.md +22 -22
- package/src/Avatar/Avatar.tsx +18 -1
- package/src/Avatar/__tests__/AvatarForcedColors.a11y.chromium.spec.ts +126 -0
- package/src/Badge/Badge.doc.mjs +1 -1
- package/src/Badge/Badge.tsx +19 -2
- package/src/Badge/__tests__/BadgeLargerText.a11y.chromium.spec.ts +260 -0
- package/src/BottomSheet/BottomSheet.test.tsx +46 -0
- package/src/BottomSheet/BottomSheet.tsx +1 -1
- package/src/BottomSheet/BottomSheetPanel.tsx +2 -1
- package/src/BottomSheet/useSheetGestures.test.ts +52 -0
- package/src/BottomSheet/useSheetGestures.ts +37 -6
- package/src/Breadcrumbs/__tests__/Breadcrumbs.a11y.chromium.spec.ts +18 -6
- package/src/Button/Button.tsx +4 -4
- package/src/Calendar/Calendar.spec.md +87 -48
- package/src/Calendar/__tests__/Calendar.a11y.chromium.spec.ts +21 -7
- package/src/Carousel/Carousel.doc.mjs +1 -1
- package/src/Carousel/Carousel.spec.md +9 -9
- package/src/Carousel/Carousel.test.tsx +124 -3
- package/src/Carousel/Carousel.tsx +10 -2
- package/src/Carousel/__tests__/Carousel.a11y.chromium.spec.ts +21 -7
- package/src/Carousel/__tests__/Carousel.a11y.known-failures.ts +1 -16
- package/src/Chat/ChatComposer.spec.md +75 -59
- package/src/Chat/ChatComposerTokenElement.spec.md +45 -33
- package/src/Chat/ChatDictationButton.spec.md +126 -81
- package/src/Chat/ChatLayout.spec.md +41 -36
- package/src/Chat/ChatLayoutScrollButton.spec.md +87 -103
- package/src/Chat/ChatMessage.spec.md +64 -65
- package/src/Chat/ChatSendButton.spec.md +78 -67
- package/src/CheckboxInput/CheckboxInput.tsx +6 -5
- package/src/Citation/Citation.spec.md +60 -47
- package/src/ClickableCard/ClickableCard.test.tsx +96 -0
- package/src/ClickableCard/ClickableCard.tsx +48 -4
- package/src/CodeBlock/__tests__/CodeBlockCopyClearance.a11y.chromium.spec.ts +38 -3
- package/src/Collapsible/Collapsible.spec.md +2 -0
- package/src/Collapsible/CollapsibleGroup.spec.md +57 -29
- package/src/Collapsible/__tests__/Collapsible.a11y.chromium.spec.ts +18 -7
- package/src/Collapsible/__tests__/CollapsibleGroupAccordion.a11y.chromium.spec.ts +18 -6
- package/src/ComplexSelector/ComplexSelector.test.tsx +148 -0
- package/src/ComplexSelector/ComplexSelector.tsx +41 -4
- package/src/ContextMenu/ContextMenu.spec.md +84 -56
- package/src/ContextMenu/ContextMenu.test.tsx +35 -0
- package/src/ContextMenu/ContextMenuItem.spec.md +132 -0
- package/src/DateInput/DateInput.spec.md +74 -57
- package/src/DateInput/DateInput.test.tsx +115 -3
- package/src/DateInput/DateInput.tsx +29 -14
- package/src/DateInput/DateInputTouch.test.tsx +120 -0
- package/src/DateInput/MonthScroller.tsx +106 -20
- package/src/DateInput/MonthScrollerSettle.test.tsx +165 -0
- package/src/DateInput/TouchDateField.tsx +14 -3
- package/src/DateInput/Wheel.tsx +9 -6
- package/src/DateInput/__tests__/MonthScrollerSteps.interaction.browser.spec.ts +312 -0
- package/src/DateInput/usePointerDragScroll.ts +34 -10
- package/src/DateInput/useScrollSettle.ts +38 -7
- package/src/DateRangeInput/DateRangeInput.test.tsx +46 -3
- package/src/DateRangeInput/DateRangeInput.tsx +16 -12
- package/src/DateTimeInput/DateTimeInput.doc.mjs +10 -8
- package/src/DateTimeInput/DateTimeInput.spec.md +75 -51
- package/src/DateTimeInput/DateTimeInput.test.tsx +81 -0
- package/src/DateTimeInput/DateTimeInput.tsx +46 -24
- package/src/DateTimeInput/NativeTimeSegment.tsx +4 -6
- package/src/DateTimeInput/TouchDateTimeField.tsx +3 -7
- package/src/Dialog/Dialog.test.tsx +216 -2
- package/src/Dialog/Dialog.tsx +42 -9
- package/src/Dialog/DialogHeader.tsx +5 -4
- package/src/Dialog/__tests__/DialogSecondDocument.a11y.browser.spec.ts +202 -0
- package/src/Divider/Divider.tsx +2 -1
- package/src/Drawer/Drawer.spec.md +111 -80
- package/src/Drawer/Drawer.test.tsx +35 -0
- package/src/Drawer/Drawer.tsx +13 -2
- package/src/Drawer/DrawerHeader.spec.md +181 -0
- package/src/Drawer/__tests__/DrawerNonModalPageScroll.a11y.chromium.spec.ts +267 -0
- package/src/DropdownMenu/DropdownMenu.spec.md +198 -218
- package/src/DropdownMenu/DropdownMenu.test.tsx +158 -0
- package/src/DropdownMenu/DropdownMenu.tsx +43 -21
- package/src/DropdownMenu/DropdownMenuCheckboxItem.spec.md +192 -0
- package/src/DropdownMenu/DropdownMenuDivider.spec.md +25 -31
- package/src/DropdownMenu/DropdownMenuGroup.spec.md +145 -0
- package/src/DropdownMenu/DropdownMenuItem.spec.md +48 -42
- package/src/DropdownMenu/DropdownMenuRadioGroup.spec.md +34 -37
- package/src/DropdownMenu/DropdownMenuRadioItem.spec.md +54 -53
- package/src/DropdownMenu/DropdownMenuSubMenu.spec.md +47 -41
- package/src/DropdownMenu/DropdownMenuSubMenu.test.tsx +34 -0
- package/src/DropdownMenu/MenuBottomSheetActionList.tsx +6 -5
- package/src/DropdownMenu/__tests__/Menu.a11y.chromium.spec.ts +19 -7
- package/src/DropdownMenu/__tests__/MenuButton.a11y.chromium.spec.ts +21 -9
- package/src/DropdownMenu/lazyMenuBottomSheet.test.ts +60 -0
- package/src/DropdownMenu/lazyMenuBottomSheet.ts +36 -7
- package/src/DropdownMenu/renderDropdownItems.tsx +24 -19
- package/src/EmptyState/EmptyState.spec.md +35 -29
- package/src/EmptyState/EmptyState.tsx +2 -1
- package/src/Field/FieldLabel.tsx +5 -4
- package/src/Field/InputClearButton.tsx +3 -3
- package/src/Field/PanelSearchInput.tsx +2 -2
- package/src/FieldStatus/FieldStatus.tsx +9 -2
- package/src/FieldStatus/__tests__/FieldStatusAudit.a11y.chromium.spec.ts +477 -0
- package/src/FileInput/FileInput.test.tsx +159 -0
- package/src/FileInput/FileInput.tsx +34 -6
- package/src/FileInput/__tests__/FileInputAudit.a11y.chromium.spec.ts +796 -0
- package/src/FormLayout/FormLayout.spec.md +11 -20
- package/src/Heading/Heading.tsx +1 -1
- package/src/Icon/Icon.tsx +1 -1
- package/src/Indicator/CheckIndicator.spec.md +47 -42
- package/src/Indicator/CheckIndicator.tsx +2 -1
- package/src/Indicator/CheckboxIndicator.spec.md +40 -37
- package/src/Indicator/CheckboxIndicator.tsx +3 -1
- package/src/Indicator/Indicator.spec.md +188 -0
- package/src/Indicator/RadioIndicator.tsx +3 -1
- package/src/Item/Item.test.tsx +60 -0
- package/src/Item/Item.tsx +16 -8
- package/src/Item/ItemSwipeLayer.tsx +1 -1
- package/src/Kbd/Kbd.spec.md +81 -38
- package/src/Layer/__tests__/LayerBrowserHide.a11y.chromium.spec.ts +126 -0
- package/src/Layer/popoverOperations.test.ts +205 -0
- package/src/Layer/popoverOperations.ts +172 -0
- package/src/Layer/useLayer.test.tsx +426 -4
- package/src/Layer/useLayer.tsx +145 -77
- package/src/Layout/Layout.spec.md +127 -131
- package/src/Layout/Layout.tsx +1 -1
- package/src/Layout/LayoutContent.spec.md +205 -0
- package/src/Layout/LayoutContent.tsx +1 -1
- package/src/Layout/LayoutFooter.spec.md +190 -0
- package/src/Layout/LayoutFooter.tsx +1 -1
- package/src/Layout/LayoutHeader.spec.md +193 -0
- package/src/Layout/LayoutHeader.tsx +1 -1
- package/src/Layout/LayoutPanel.spec.md +194 -0
- package/src/Layout/__tests__/Layout.a11y.chromium.spec.ts +18 -6
- package/src/Lightbox/Lightbox.test.tsx +18 -0
- package/src/Lightbox/Lightbox.tsx +5 -0
- package/src/Lightbox/LightboxViewport.a11y.browser.spec.ts +8 -4
- package/src/Link/Link.spec.md +3 -2
- package/src/Link/Link.tsx +11 -0
- package/src/Link/__tests__/Link.a11y.chromium.spec.ts +18 -8
- package/src/Link/__tests__/Link.truncation.a11y.chromium.spec.ts +58 -0
- package/src/List/List.tsx +1 -1
- package/src/List/ListItem.spec.md +205 -0
- package/src/List/ListItem.tsx +3 -3
- package/src/Markdown/plugins/headingLinks.a11y.chromium.spec.ts +1 -1
- package/src/MetadataList/MetadataList.spec.md +187 -0
- package/src/MetadataList/MetadataListItem.spec.md +165 -0
- package/src/MobileNav/MobileNav.test.tsx +15 -0
- package/src/MobileNav/MobileNav.tsx +9 -1
- package/src/MobileNav/__tests__/MobileNavHeader.a11y.chromium.spec.ts +89 -0
- package/src/MoreMenu/MoreMenu.test.tsx +11 -0
- package/src/MultiSelector/CreateRow.a11y.chromium.spec.ts +7 -8
- package/src/MultiSelector/MultiSelector.spec.md +7 -4
- package/src/MultiSelector/MultiSelector.test.tsx +270 -1
- package/src/MultiSelector/MultiSelector.tsx +25 -10
- package/src/MultiSelector/__tests__/MultiSelector.listbox.a11y.test.tsx +8 -1
- package/src/NavMenu/NavHeadingMenu.spec.md +1 -5
- package/src/NavMenu/NavHeadingMenuItem.tsx +5 -39
- package/src/NumberInput/NumberInput.doc.mjs +13 -7
- package/src/NumberInput/NumberInput.spec.md +59 -37
- package/src/NumberInput/NumberInput.test.tsx +68 -7
- package/src/NumberInput/NumberInput.tsx +44 -4
- package/src/NumberInput/__tests__/NumberInput.coarse-pointer.a11y.chromium.spec.ts +102 -0
- package/src/NumberInput/numberParser.ts +7 -45
- package/src/Outline/Outline.spec.md +165 -69
- package/src/Outline/Outline.test.tsx +67 -2
- package/src/Outline/Outline.tsx +23 -0
- package/src/Outline/modules/parseOutlineFromMarkdown.spec.md +3 -4
- package/src/OverflowList/OverflowList.spec.md +102 -55
- package/src/Pagination/Pagination.spec.md +158 -84
- package/src/Popover/Popover.test.tsx +84 -0
- package/src/Popover/Popover.tsx +34 -14
- package/src/Popover/__tests__/PopoverSecondDocument.a11y.chromium.spec.ts +70 -8
- package/src/Popover/usePopover.tsx +10 -3
- package/src/PowerSearch/PowerSearch.test.tsx +24 -0
- package/src/PowerSearch/PowerSearch.tsx +42 -31
- package/src/ProgressBar/ProgressBar.spec.md +143 -119
- package/src/ProgressBar/ProgressBar.test.tsx +108 -32
- package/src/ProgressBar/ProgressBar.tsx +58 -10
- package/src/ProgressBar/__tests__/ProgressBar.a11y.chromium.spec.ts +21 -9
- package/src/ProgressBar/__tests__/ProgressBarMotion.a11y.chromium.spec.ts +831 -0
- package/src/RadioList/RadioList.spec.md +1 -1
- package/src/RadioList/RadioList.test.tsx +84 -0
- package/src/RadioList/RadioListItem.tsx +11 -2
- package/src/Resizable/Resizable.spec.md +144 -124
- package/src/Resizable/__tests__/ResizeHandle.a11y.chromium.spec.ts +21 -14
- package/src/Resizable/useResizable.test.ts +43 -0
- package/src/Resizable/useResizable.ts +32 -9
- package/src/SegmentedControl/SegmentedControl.test.tsx +84 -0
- package/src/SegmentedControl/SegmentedControlItem.tsx +11 -5
- package/src/Selector/Selector.test.tsx +90 -1
- package/src/Selector/__tests__/Selector.combobox.a11y.test.tsx +8 -1
- package/src/Selector/__tests__/Selector.listbox.a11y.test.tsx +8 -1
- package/src/Selector/useSelectorPresentation.ts +31 -3
- package/src/SideNav/SideNav.test.tsx +151 -4
- package/src/SideNav/SideNavItem.spec.md +14 -24
- package/src/SideNav/SideNavItem.tsx +27 -10
- package/src/SideNav/__tests__/SideNavRailMotion.interaction.browser.spec.ts +176 -51
- package/src/Skeleton/Skeleton.tsx +3 -1
- package/src/Slider/Slider.test.tsx +31 -0
- package/src/Slider/Slider.tsx +8 -3
- package/src/Slider/__tests__/Slider.a11y.chromium.spec.ts +19 -7
- package/src/Spinner/Spinner.tsx +5 -3
- package/src/Stack/Stack.tsx +1 -1
- package/src/Stack/StackItem.tsx +1 -1
- package/src/Stepper/Step.spec.md +36 -42
- package/src/Stepper/Step.tsx +33 -6
- package/src/Stepper/Stepper.doc.mjs +1 -1
- package/src/Stepper/Stepper.test.tsx +69 -7
- package/src/Switch/Switch.spec.md +1 -1
- package/src/Switch/Switch.test.tsx +66 -1
- package/src/Switch/Switch.tsx +11 -3
- package/src/TabList/TabList.test.tsx +58 -4
- package/src/TabList/TabList.tsx +16 -1
- package/src/TabList/__tests__/TabPressPointer.interaction.browser.spec.ts +163 -0
- package/src/Table/Table.spec.md +1 -1
- package/src/Table/Table.test.tsx +32 -0
- package/src/Table/Table.tsx +43 -11
- package/src/Table/__tests__/Table.a11y.chromium.spec.ts +18 -6
- package/src/Table/__tests__/Table.a11y.states.ts +1 -5
- package/src/Table/plugins/columnResize/useTableColumnResize.test.tsx +22 -0
- package/src/Table/plugins/columnResize/useTableColumnResize.tsx +8 -4
- package/src/Table/plugins/sortable/useTableSortable.test.tsx +73 -144
- package/src/Table/plugins/sortable/useTableSortable.tsx +44 -73
- package/src/Table/plugins/sortable/useTableSortableState.test.tsx +9 -21
- package/src/Text/Text.tsx +1 -1
- package/src/Text/useTruncation.test.tsx +128 -1
- package/src/Text/useTruncation.ts +23 -5
- package/src/TextArea/TextArea.spec.md +10 -13
- package/src/TextArea/TextArea.test.tsx +60 -0
- package/src/TextArea/TextArea.tsx +15 -1
- package/src/TextInput/TextInput.test.tsx +21 -0
- package/src/TextInput/TextInput.tsx +3 -1
- package/src/TimeInput/NativeTimeInput.test.tsx +17 -0
- package/src/TimeInput/Presentation.test.tsx +21 -0
- package/src/TimeInput/TimeInput.doc.mjs +8 -8
- package/src/TimeInput/TimeInput.spec.md +58 -61
- package/src/TimeInput/TimeInput.test.tsx +76 -0
- package/src/TimeInput/TimeInput.tsx +36 -18
- package/src/TimeInput/TouchTimeField.tsx +4 -6
- package/src/Timestamp/Timestamp.spec.md +6 -12
- package/src/Timestamp/Timestamp.test.tsx +30 -5
- package/src/Timestamp/Timestamp.tsx +6 -2
- package/src/Timestamp/TimestampHoverCard.tsx +4 -4
- package/src/Toast/Toast.spec.md +15 -24
- package/src/Toast/Toast.tsx +104 -36
- package/src/Toast/ToastViewport.test.tsx +798 -1
- package/src/Toast/ToastViewport.tsx +121 -53
- package/src/ToggleButton/ToggleButton.test.tsx +27 -0
- package/src/ToggleButton/ToggleButtonGroup.tsx +20 -1
- package/src/Token/Token.doc.mjs +2 -2
- package/src/Token/Token.spec.md +52 -61
- package/src/Token/Token.test.tsx +104 -0
- package/src/Token/Token.tsx +75 -5
- package/src/Token/TokenLink.tsx +21 -7
- package/src/Tokenizer/Tokenizer.spec.md +18 -4
- package/src/Tokenizer/Tokenizer.test.tsx +176 -0
- package/src/Tokenizer/Tokenizer.tsx +48 -12
- package/src/Tokenizer/TokenizerBottomSheet.test.tsx +23 -4
- package/src/Tokenizer/TokenizerBottomSheet.tsx +3 -3
- package/src/Tokenizer/TokenizerClearAllMessageContext.ts +21 -0
- package/src/Toolbar/Toolbar.spec.md +5 -6
- package/src/Toolbar/Toolbar.test.tsx +30 -0
- package/src/Toolbar/Toolbar.tsx +2 -1
- package/src/Toolbar/__tests__/Toolbar.a11y.chromium.spec.ts +18 -6
- package/src/Tooltip/__tests__/Tooltip.a11y.chromium.spec.ts +18 -7
- package/src/TopNav/TopNav.test.tsx +27 -0
- package/src/TopNav/TopNavMegaMenu.test.tsx +21 -0
- package/src/TopNav/TopNavMegaMenu.tsx +4 -1
- package/src/TopNav/TopNavMenu.test.tsx +17 -0
- package/src/TopNav/TopNavMenu.tsx +1 -0
- package/src/TreeList/TreeList.test.tsx +26 -0
- package/src/TreeList/TreeListItem.tsx +26 -4
- package/src/Typeahead/BaseTypeahead.doc.mjs +3 -3
- package/src/Typeahead/BaseTypeahead.spec.md +45 -45
- package/src/Typeahead/BaseTypeahead.tsx +48 -9
- package/src/Typeahead/Typeahead.test.tsx +294 -11
- package/src/Typeahead/Typeahead.tsx +51 -9
- package/src/__tests__/internalModulesNotExperimental.test.ts +88 -0
- package/src/__tests__/pressState.ts +8 -4
- package/src/gestures/GestureArena.ts +111 -11
- package/src/gestures/GestureHost.ts +2064 -0
- package/src/gestures/GestureRecognizer.ts +21 -1
- package/src/gestures/LongPressGestureRecognizer.ts +4 -0
- package/src/gestures/PanGestureRecognizer.ts +4 -0
- package/src/gestures/PinchGestureRecognizer.ts +148 -0
- package/src/gestures/PressTracker.ts +386 -0
- package/src/gestures/README.md +420 -0
- package/src/gestures/ScreenEdgePanGestureRecognizer.ts +256 -0
- package/src/gestures/SwipeGestureRecognizer.ts +197 -0
- package/src/gestures/TapGestureRecognizer.ts +4 -0
- package/src/gestures/VelocityTracker.ts +10 -3
- package/src/gestures/__tests__/GestureHost.test.ts +2136 -0
- package/src/gestures/__tests__/PanGestureRecognizer.test.ts +4 -4
- package/src/gestures/__tests__/PinchGestureRecognizer.test.ts +74 -0
- package/src/gestures/__tests__/PressTracker.test.ts +275 -0
- package/src/gestures/__tests__/ScreenEdgePanGestureRecognizer.test.ts +498 -0
- package/src/gestures/__tests__/SwipeGestureRecognizer.test.ts +108 -0
- package/src/gestures/__tests__/arena.test.ts +40 -0
- package/src/gestures/__tests__/arenaPinchSwipeEdge.test.ts +193 -0
- package/src/gestures/__tests__/browser/build-fixture.mjs +46 -0
- package/src/gestures/__tests__/browser/fixture.ts +307 -0
- package/src/gestures/__tests__/browser/gestures.interaction.browser.spec.ts +1137 -0
- package/src/gestures/__tests__/browserNegotiation.test.ts +293 -0
- package/src/gestures/__tests__/haptics.test.ts +187 -0
- package/src/gestures/__tests__/harness.ts +52 -4
- package/src/gestures/__tests__/pressTrackerFactory.test.ts +59 -0
- package/src/gestures/__tests__/recognizerKind.test.ts +78 -0
- package/src/gestures/__tests__/touchActionRule.test.ts +54 -0
- package/src/gestures/__tests__/useGestureRecognizer.test.tsx +570 -0
- package/src/gestures/haptics.ts +203 -0
- package/src/gestures/index.ts +79 -0
- package/src/gestures/nativeScroll.ts +277 -0
- package/src/gestures/touchAction.ts +191 -0
- package/src/gestures/touchActionRule.ts +157 -0
- package/src/gestures/types.ts +30 -9
- package/src/gestures/useGestureRecognizer.ts +305 -0
- package/src/hooks/index.ts +5 -1
- package/src/hooks/modalAnnounce.ts +129 -72
- package/src/hooks/scrollKeyboardDelegation.test.ts +33 -0
- package/src/hooks/scrollKeyboardDelegation.ts +9 -3
- package/src/hooks/useAdaptivePresentation.ts +4 -1
- package/src/hooks/useAnnounce.doc.mjs +35 -3
- package/src/hooks/useAnnounce.replace.test.tsx +516 -0
- package/src/hooks/useAnnounce.ts +209 -102
- package/src/hooks/useAnnounceRenderedText.adopters.test.tsx +10 -1
- package/src/hooks/useAnnounceRenderedText.ts +17 -3
- package/src/hooks/useBusyAnnouncement.ts +7 -10
- package/src/hooks/useMenuHover.ts +15 -1
- package/src/hooks/useScrollOverflow.doc.mjs +1 -1
- package/src/hooks/useScrollOverflow.test.tsx +102 -1
- package/src/hooks/useScrollOverflow.ts +59 -10
- package/src/i18n/__tests__/useListFormatter.test.tsx +58 -0
- package/src/i18n/generated-locales/af-ZA.generated.ts +0 -7
- package/src/i18n/generated-locales/ar-SA.generated.ts +0 -6
- package/src/i18n/generated-locales/ca-ES.generated.ts +0 -7
- package/src/i18n/generated-locales/cs-CZ.generated.ts +0 -6
- package/src/i18n/generated-locales/da-DK.generated.ts +0 -6
- package/src/i18n/generated-locales/de-DE.generated.ts +0 -6
- package/src/i18n/generated-locales/el-GR.generated.ts +0 -7
- package/src/i18n/generated-locales/en.generated.ts +9 -6
- package/src/i18n/generated-locales/es-ES.generated.ts +0 -7
- package/src/i18n/generated-locales/fi-FI.generated.ts +0 -6
- package/src/i18n/generated-locales/fr-FR.generated.ts +0 -7
- package/src/i18n/generated-locales/he-IL.generated.ts +0 -6
- package/src/i18n/generated-locales/hu-HU.generated.ts +0 -6
- package/src/i18n/generated-locales/it-IT.generated.ts +0 -7
- package/src/i18n/generated-locales/ja-JP.generated.ts +0 -6
- package/src/i18n/generated-locales/ko-KR.generated.ts +0 -6
- package/src/i18n/generated-locales/nl-NL.generated.ts +0 -6
- package/src/i18n/generated-locales/no-NO.generated.ts +0 -6
- package/src/i18n/generated-locales/pl-PL.generated.ts +0 -7
- package/src/i18n/generated-locales/pseudo.generated.ts +9 -6
- package/src/i18n/generated-locales/pt-BR.generated.ts +0 -7
- package/src/i18n/generated-locales/pt-PT.generated.ts +0 -7
- package/src/i18n/generated-locales/ro-RO.generated.ts +0 -6
- package/src/i18n/generated-locales/ru-RU.generated.ts +0 -7
- package/src/i18n/generated-locales/sr-SP.generated.ts +0 -6
- package/src/i18n/generated-locales/sv-SE.generated.ts +0 -6
- package/src/i18n/generated-locales/tr-TR.generated.ts +0 -7
- package/src/i18n/generated-locales/uk-UA.generated.ts +0 -7
- package/src/i18n/generated-locales/vi-VN.generated.ts +0 -6
- package/src/i18n/generated-locales/zh-CN.generated.ts +0 -6
- package/src/i18n/generated-locales/zh-TW.generated.ts +0 -6
- package/src/i18n/useListFormatter.ts +42 -0
- package/src/motion/MEASUREMENTS.md +2 -1
- package/src/motion/README.md +113 -33
- package/src/motion/__tests__/animator.interaction.browser.spec.ts +843 -0
- package/src/motion/__tests__/motionBundle.ts +14 -0
- package/src/motion/animator.test.ts +1125 -32
- package/src/motion/animator.ts +932 -130
- package/src/motion/coast.ts +10 -3
- package/src/motion/reducedMotion.ts +12 -2
- package/src/motion/reducedMotionPlan.test.ts +26 -0
- package/src/motion/reducedMotionPlan.ts +20 -1
- package/src/motion/resolveMotion.test.ts +123 -0
- package/src/motion/resolveMotion.ts +68 -0
- package/src/motion/roleValue.ts +2 -1
- package/src/motion/roles.test.ts +21 -4
- package/src/motion/uikit/tableImports.test.ts +293 -0
- package/src/motion/uikit/timing.ts +15 -1
- package/src/motion/uikit/values.test.ts +23 -12
- package/src/theme/Theme.doc.mjs +1 -1
- package/src/theme/defineTheme.ts +117 -8
- package/src/theme/derivedVarRegistry.test.ts +4 -0
- package/src/theme/domainTokens/domainTokenDefaults.ts +19 -0
- package/src/theme/domainTokens/index.ts +6 -10
- package/src/theme/expandMotionScale.test.ts +1 -1
- package/src/theme/index.ts +5 -0
- package/src/theme/motionKnobs.ts +82 -0
- package/src/theme/resolveThemeValues.ts +68 -6
- package/src/theme/themeAdaptations.ts +52 -12
- package/src/theme/themeMotion.test.ts +620 -0
- package/src/theme/themeMotion.ts +221 -0
- package/src/theme/tokenReferences.ts +149 -0
- package/src/theme/tokens.stylex.ts +10 -0
- package/src/theme/tokens.ts +15 -158
- package/src/utils/focusOutline.stylex.ts +28 -0
- package/src/utils/focusReturn.ts +17 -6
- package/src/utils/getNodeText.test.ts +24 -0
- package/src/utils/getNodeText.ts +37 -0
- package/src/utils/interactionModality.test.ts +45 -1
- package/src/utils/interactionModality.ts +64 -5
- package/src/utils/interactionOverlay.stylex.ts +12 -3
- package/src/utils/plainDate.test.ts +90 -0
- package/src/utils/plainDate.ts +58 -3
- package/src/utils/presentation.test.ts +380 -0
- package/src/utils/presentation.ts +180 -0
- package/src/utils/pressFeedback.test.ts +138 -0
- package/src/utils/pressFeedback.ts +34 -11
- package/src/utils/pressGesture.test.ts +9 -0
- package/src/utils/pressPaintPriority.test.ts +80 -0
- package/src/utils/primaryClick.test.ts +38 -0
- package/src/utils/primaryClick.ts +28 -0
- package/src/utils/sharedMutationObserver.test.ts +54 -1
- package/src/utils/sharedMutationObserver.ts +87 -29
- package/src/utils/timeFormat.test.ts +204 -0
- package/src/utils/timeFormat.ts +314 -0
- package/src/utils/touchPresentation.stylex.ts +43 -0
- package/src/utils/touchPresentation.test.ts +140 -1
- package/src/utils/touchPresentation.ts +13 -8
- package/src/utils/touchQueries.ts +15 -0
- package/src/utils/unicodeDigits.test.ts +44 -0
- package/src/utils/unicodeDigits.ts +71 -0
- package/src/utils/useFocusAcrossSwap.ts +55 -0
|
@@ -5,50 +5,82 @@
|
|
|
5
5
|
/**
|
|
6
6
|
* @file sharedMutationObserver.ts
|
|
7
7
|
* @input MutationObserver API
|
|
8
|
-
* @output Exports
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
8
|
+
* @output Exports observeMutations (one shared observer per set of options)
|
|
9
|
+
* and observeContent, its text-and-children form
|
|
10
|
+
* @position Internal utility; consumed by useTruncation, hitArea and AppShell's
|
|
11
|
+
* main-overflow observer. The mutation counterpart of sharedResizeObserver:
|
|
12
|
+
* one observer for every element observed with the same options, so a
|
|
13
|
+
* repeated cell, row or region does not create one observer per instance.
|
|
12
14
|
*/
|
|
13
|
-
const
|
|
15
|
+
const CONTENT_OPTIONS = {
|
|
14
16
|
characterData: true,
|
|
15
17
|
childList: true,
|
|
16
18
|
subtree: true
|
|
17
19
|
};
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
20
|
+
/**
|
|
21
|
+
* One observer per distinct set of options: an observer holds one set of
|
|
22
|
+
* options per node, so registrations that need different options cannot
|
|
23
|
+
* share one.
|
|
24
|
+
*/
|
|
25
|
+
const observers = new Map();
|
|
26
|
+
function optionsKey(options) {
|
|
27
|
+
return JSON.stringify([options.attributes === true, options.attributeFilter == null ? null : [...options.attributeFilter].sort(), options.characterData === true, options.childList === true, options.subtree === true]);
|
|
28
|
+
}
|
|
29
|
+
function createSharedObserver(options) {
|
|
30
|
+
const callbacks = new Map();
|
|
31
|
+
const isSubtree = options.subtree === true;
|
|
32
|
+
const observer = new MutationObserver(records => {
|
|
33
|
+
// One call per callback per batch, however many records it received.
|
|
34
|
+
// With `subtree`, a record's target can be any descendant, so walk up to
|
|
35
|
+
// the observed roots; without it, the target is the observed node.
|
|
36
|
+
const pending = new Set();
|
|
37
|
+
for (const record of records) {
|
|
38
|
+
if (!isSubtree) {
|
|
39
|
+
callbacks.get(record.target)?.forEach(callback => pending.add(callback));
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
for (let node = record.target; node; node = node.parentNode) {
|
|
43
|
+
callbacks.get(node)?.forEach(callback => pending.add(callback));
|
|
44
|
+
}
|
|
27
45
|
}
|
|
28
|
-
|
|
29
|
-
|
|
46
|
+
pending.forEach(callback => callback());
|
|
47
|
+
});
|
|
48
|
+
return {
|
|
49
|
+
observer,
|
|
50
|
+
callbacks
|
|
51
|
+
};
|
|
30
52
|
}
|
|
31
53
|
|
|
32
54
|
/**
|
|
33
|
-
* Call `callback`
|
|
34
|
-
*
|
|
55
|
+
* Call `callback` for mutations of `element` matching `options`, through the
|
|
56
|
+
* one observer shared by every registration with the same options. Returns an
|
|
57
|
+
* unsubscribe that removes only this registration.
|
|
35
58
|
*
|
|
36
59
|
* MutationObserver has no per-target unobserve, so a released element stays
|
|
37
|
-
* registered with
|
|
38
|
-
* match no callback and are ignored.
|
|
39
|
-
* when
|
|
60
|
+
* registered with its shared observer until no element remains; its records
|
|
61
|
+
* match no callback and are ignored. An observer disconnects and is released
|
|
62
|
+
* when its last registration goes.
|
|
40
63
|
*/
|
|
41
|
-
export function
|
|
64
|
+
export function observeMutations(element, options, callback) {
|
|
42
65
|
if (typeof MutationObserver === 'undefined') {
|
|
43
66
|
return () => {};
|
|
44
67
|
}
|
|
45
|
-
|
|
68
|
+
const key = optionsKey(options);
|
|
69
|
+
let shared = observers.get(key);
|
|
70
|
+
if (shared == null) {
|
|
71
|
+
shared = createSharedObserver(options);
|
|
72
|
+
observers.set(key, shared);
|
|
73
|
+
}
|
|
74
|
+
const {
|
|
75
|
+
observer,
|
|
76
|
+
callbacks
|
|
77
|
+
} = shared;
|
|
46
78
|
const existing = callbacks.get(element);
|
|
47
79
|
if (existing) {
|
|
48
80
|
existing.add(callback);
|
|
49
81
|
} else {
|
|
50
82
|
callbacks.set(element, new Set([callback]));
|
|
51
|
-
observer.observe(element,
|
|
83
|
+
observer.observe(element, options);
|
|
52
84
|
}
|
|
53
85
|
let isSubscribed = true;
|
|
54
86
|
return () => {
|
|
@@ -61,9 +93,17 @@ export function observeContent(element, callback) {
|
|
|
61
93
|
if (targetCallbacks?.size === 0) {
|
|
62
94
|
callbacks.delete(element);
|
|
63
95
|
}
|
|
64
|
-
if (callbacks.size === 0 && observer) {
|
|
96
|
+
if (callbacks.size === 0 && observers.get(key)?.observer === observer) {
|
|
65
97
|
observer.disconnect();
|
|
66
|
-
|
|
98
|
+
observers.delete(key);
|
|
67
99
|
}
|
|
68
100
|
};
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Call `callback` when the element's text or children change (including
|
|
105
|
+
* descendants). Returns an unsubscribe that removes only this registration.
|
|
106
|
+
*/
|
|
107
|
+
export function observeContent(element, callback) {
|
|
108
|
+
return observeMutations(element, CONTENT_OPTIONS, callback);
|
|
69
109
|
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file timeFormat.ts
|
|
3
|
+
* @input An ISO time or typed text, plus the provider's BCP 47 locale
|
|
4
|
+
* @output Exports resolveHourFormat, formatLocaleTime, and parseLocaleTime
|
|
5
|
+
* @position Internal shared helper for TimeInput and DateTimeInput; not part
|
|
6
|
+
* of the public surface
|
|
7
|
+
*
|
|
8
|
+
* Time of day as the locale writes it. The hour cycle, digits, separator, and
|
|
9
|
+
* day-period words all come from Intl rather than a table, so a field reads
|
|
10
|
+
* the same way `Timestamp` does beside it.
|
|
11
|
+
*
|
|
12
|
+
* The hour cycle is the locale's own: `en-US` and `ko-KR` read twelve-hour,
|
|
13
|
+
* `en-GB`, `de-DE`, and `vi-VN` read twenty-four-hour. A `-u-hc-` extension
|
|
14
|
+
* on the provider locale (`en-US-u-hc-h23`) carries an app's per-user
|
|
15
|
+
* preference through the same path, so every Astryx time honors it.
|
|
16
|
+
*
|
|
17
|
+
* The parser reads back what the formatter writes: the locale's digits, its
|
|
18
|
+
* hour-minute separator, and its day-period words, on either side of the time.
|
|
19
|
+
* Whatever is left goes through the shared English-tolerant parser, so "2:30
|
|
20
|
+
* PM" and "14:30" keep working in every locale.
|
|
21
|
+
*
|
|
22
|
+
* SYNC: When modified, update these files to stay in sync:
|
|
23
|
+
* - /packages/core/src/utils/timeFormat.test.ts
|
|
24
|
+
* - /packages/core/src/TimeInput/TimeInput.tsx
|
|
25
|
+
* - /packages/core/src/DateTimeInput/DateTimeInput.tsx
|
|
26
|
+
*/
|
|
27
|
+
import type { Locale } from '../i18n/types.js';
|
|
28
|
+
import { type ISOTimeString } from './timeParser.js';
|
|
29
|
+
export type HourFormat = '12h' | '24h';
|
|
30
|
+
/**
|
|
31
|
+
* The hour format a field shows: the caller's explicit choice, else the
|
|
32
|
+
* locale's hour cycle (including a `-u-hc-` extension on the tag).
|
|
33
|
+
*/
|
|
34
|
+
export declare function resolveHourFormat(locale: Locale, hourFormat?: HourFormat): HourFormat;
|
|
35
|
+
/**
|
|
36
|
+
* Formats an ISO time as the locale writes it, in the given hour format.
|
|
37
|
+
* en-US: "14:30" → "2:30 PM"; de-DE 24h: "14:30"; ko-KR 12h: "오후 2:30".
|
|
38
|
+
* Returns '' for an empty or malformed time.
|
|
39
|
+
*/
|
|
40
|
+
export declare function formatLocaleTime(time: ISOTimeString | undefined, locale: Locale, hourFormat: HourFormat, includeSeconds?: boolean): string;
|
|
41
|
+
/**
|
|
42
|
+
* Parses typed text into an ISO time, accepting the locale's digits,
|
|
43
|
+
* separator, and day-period words as well as everything `parseTimeInput`
|
|
44
|
+
* accepts. Returns null when no reading fits.
|
|
45
|
+
*/
|
|
46
|
+
export declare function parseLocaleTime(input: string, locale: Locale, includeSeconds?: boolean): ISOTimeString | null;
|
|
47
|
+
//# sourceMappingURL=timeFormat.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timeFormat.d.ts","sourceRoot":"","sources":["../../src/utils/timeFormat.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AAC1C,OAAO,EAA+B,KAAK,aAAa,EAAC,MAAM,cAAc,CAAC;AAG9E,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,KAAK,CAAC;AAsLvC;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,UAAU,GACtB,UAAU,CAEZ;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,aAAa,GAAG,SAAS,EAC/B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,EACtB,cAAc,GAAE,OAAe,GAC9B,MAAM,CAeR;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,cAAc,GAAE,OAAe,GAC9B,aAAa,GAAG,IAAI,CAmDtB"}
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @file timeFormat.ts
|
|
5
|
+
* @input An ISO time or typed text, plus the provider's BCP 47 locale
|
|
6
|
+
* @output Exports resolveHourFormat, formatLocaleTime, and parseLocaleTime
|
|
7
|
+
* @position Internal shared helper for TimeInput and DateTimeInput; not part
|
|
8
|
+
* of the public surface
|
|
9
|
+
*
|
|
10
|
+
* Time of day as the locale writes it. The hour cycle, digits, separator, and
|
|
11
|
+
* day-period words all come from Intl rather than a table, so a field reads
|
|
12
|
+
* the same way `Timestamp` does beside it.
|
|
13
|
+
*
|
|
14
|
+
* The hour cycle is the locale's own: `en-US` and `ko-KR` read twelve-hour,
|
|
15
|
+
* `en-GB`, `de-DE`, and `vi-VN` read twenty-four-hour. A `-u-hc-` extension
|
|
16
|
+
* on the provider locale (`en-US-u-hc-h23`) carries an app's per-user
|
|
17
|
+
* preference through the same path, so every Astryx time honors it.
|
|
18
|
+
*
|
|
19
|
+
* The parser reads back what the formatter writes: the locale's digits, its
|
|
20
|
+
* hour-minute separator, and its day-period words, on either side of the time.
|
|
21
|
+
* Whatever is left goes through the shared English-tolerant parser, so "2:30
|
|
22
|
+
* PM" and "14:30" keep working in every locale.
|
|
23
|
+
*
|
|
24
|
+
* SYNC: When modified, update these files to stay in sync:
|
|
25
|
+
* - /packages/core/src/utils/timeFormat.test.ts
|
|
26
|
+
* - /packages/core/src/TimeInput/TimeInput.tsx
|
|
27
|
+
* - /packages/core/src/DateTimeInput/DateTimeInput.tsx
|
|
28
|
+
*/
|
|
29
|
+
|
|
30
|
+
import { parseISOTime, parseTimeInput } from "./timeParser.js";
|
|
31
|
+
import { INVISIBLE_CHARS, toAsciiDigits } from "./unicodeDigits.js";
|
|
32
|
+
const symbolsByLocale = new Map();
|
|
33
|
+
|
|
34
|
+
// The space family Intl writes between a time and its day period ("2:30 PM"
|
|
35
|
+
// uses U+202F). A typed field shows a plain space so people can edit it.
|
|
36
|
+
const SPACES = /[\u00A0\u2007\u202F]/g;
|
|
37
|
+
// What may sit on a peeled word's inner side: a digit (digits are already
|
|
38
|
+
// ASCII here), whitespace, or nothing.
|
|
39
|
+
const WORD_BOUNDARY = /^[\d\s]?$/;
|
|
40
|
+
function utcDate(hour, minute, second) {
|
|
41
|
+
return new Date(Date.UTC(2000, 0, 1, hour, minute, second));
|
|
42
|
+
}
|
|
43
|
+
function timeFormatter(locale, hourFormat, includeSeconds) {
|
|
44
|
+
const options = {
|
|
45
|
+
hour: hourFormat === '12h' ? 'numeric' : '2-digit',
|
|
46
|
+
minute: '2-digit',
|
|
47
|
+
second: includeSeconds ? '2-digit' : undefined,
|
|
48
|
+
// `hourCycle`, not `hour12`: `hour12: true` resolves to h11 in ja-JP and
|
|
49
|
+
// writes noon as "午後0:30".
|
|
50
|
+
hourCycle: hourFormat === '12h' ? 'h12' : 'h23',
|
|
51
|
+
timeZone: 'UTC'
|
|
52
|
+
};
|
|
53
|
+
try {
|
|
54
|
+
return new Intl.DateTimeFormat(locale, options);
|
|
55
|
+
} catch {
|
|
56
|
+
return new Intl.DateTimeFormat('en', options);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
function getLocaleTimeSymbols(locale) {
|
|
60
|
+
let symbols = symbolsByLocale.get(locale);
|
|
61
|
+
if (symbols !== undefined) {
|
|
62
|
+
return symbols;
|
|
63
|
+
}
|
|
64
|
+
let hourFormat;
|
|
65
|
+
let resolved;
|
|
66
|
+
try {
|
|
67
|
+
resolved = new Intl.DateTimeFormat(locale, {
|
|
68
|
+
hour: 'numeric'
|
|
69
|
+
}).resolvedOptions();
|
|
70
|
+
} catch {
|
|
71
|
+
// A malformed tag formats as English everywhere else in this module.
|
|
72
|
+
resolved = new Intl.DateTimeFormat('en', {
|
|
73
|
+
hour: 'numeric'
|
|
74
|
+
}).resolvedOptions();
|
|
75
|
+
}
|
|
76
|
+
if (resolved.hourCycle !== undefined) {
|
|
77
|
+
hourFormat = resolved.hourCycle === 'h11' || resolved.hourCycle === 'h12' ? '12h' : '24h';
|
|
78
|
+
} else {
|
|
79
|
+
// Engines that leave hourCycle unresolved still write a day period for a
|
|
80
|
+
// twelve-hour locale when no cycle is forced.
|
|
81
|
+
let ambient;
|
|
82
|
+
try {
|
|
83
|
+
ambient = new Intl.DateTimeFormat(locale, {
|
|
84
|
+
hour: 'numeric'
|
|
85
|
+
});
|
|
86
|
+
} catch {
|
|
87
|
+
ambient = new Intl.DateTimeFormat('en', {
|
|
88
|
+
hour: 'numeric'
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
hourFormat = ambient.formatToParts(utcDate(13, 0, 0)).some(part => part.type === 'dayPeriod') ? '12h' : '24h';
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// Literals of every reading this module writes: twelve- and twenty-four-hour,
|
|
95
|
+
// with and without seconds. A literal between two numbers is a separator;
|
|
96
|
+
// one outside them is an edge word.
|
|
97
|
+
const separatorSet = new Set();
|
|
98
|
+
const edgeSet = new Set();
|
|
99
|
+
for (const cycle of ['12h', '24h']) {
|
|
100
|
+
for (const withSeconds of [false, true]) {
|
|
101
|
+
const parts = timeFormatter(locale, cycle, withSeconds).formatToParts(utcDate(13, 30, 5));
|
|
102
|
+
const isNumber = part => part.type === 'hour' || part.type === 'minute' || part.type === 'second';
|
|
103
|
+
const first = parts.findIndex(isNumber);
|
|
104
|
+
const last = parts.length - 1 - [...parts].reverse().findIndex(isNumber);
|
|
105
|
+
parts.forEach((part, index) => {
|
|
106
|
+
if (part.type !== 'literal') {
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
const text = normalizeText(part.value).trim();
|
|
110
|
+
if (text === '' || text === ':') {
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
(index > first && index < last ? separatorSet : edgeSet).add(text);
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
const separators = [...separatorSet];
|
|
118
|
+
const edgeWords = [...edgeSet].sort((a, b) => b.length - a.length);
|
|
119
|
+
|
|
120
|
+
// Every hour, because some locales name several periods across the day
|
|
121
|
+
// (flexible day periods). A word that appears on both sides of noon cannot
|
|
122
|
+
// say which half it means, so it is left out.
|
|
123
|
+
const twelveHour = timeFormatter(locale, '12h', false);
|
|
124
|
+
const sides = new Map();
|
|
125
|
+
for (let hour = 0; hour < 24; hour++) {
|
|
126
|
+
const word = twelveHour.formatToParts(utcDate(hour, 0, 0)).find(part => part.type === 'dayPeriod')?.value;
|
|
127
|
+
if (word === undefined) {
|
|
128
|
+
continue;
|
|
129
|
+
}
|
|
130
|
+
const key = normalizeText(word).trim();
|
|
131
|
+
if (key === '') {
|
|
132
|
+
continue;
|
|
133
|
+
}
|
|
134
|
+
const seen = sides.get(key) ?? new Set();
|
|
135
|
+
seen.add(hour >= 12);
|
|
136
|
+
sides.set(key, seen);
|
|
137
|
+
}
|
|
138
|
+
const dayPeriods = [...sides].filter(([, seen]) => seen.size === 1).map(([word, seen]) => ({
|
|
139
|
+
word,
|
|
140
|
+
isPM: seen.has(true)
|
|
141
|
+
})).sort((a, b) => b.word.length - a.word.length);
|
|
142
|
+
const twelveHourIsAmbiguous = normalizeText(twelveHour.format(utcDate(2, 0, 0))) === normalizeText(twelveHour.format(utcDate(14, 0, 0)));
|
|
143
|
+
symbols = {
|
|
144
|
+
hourFormat,
|
|
145
|
+
separators,
|
|
146
|
+
edgeWords,
|
|
147
|
+
dayPeriods,
|
|
148
|
+
twelveHourIsAmbiguous
|
|
149
|
+
};
|
|
150
|
+
symbolsByLocale.set(locale, symbols);
|
|
151
|
+
return symbols;
|
|
152
|
+
}
|
|
153
|
+
function normalizeText(text) {
|
|
154
|
+
const folded = text.normalize('NFKC').replace(INVISIBLE_CHARS, '').replace(SPACES, ' ');
|
|
155
|
+
return (toAsciiDigits(folded) ?? folded).toLowerCase();
|
|
156
|
+
}
|
|
157
|
+
function escapeRegExp(text) {
|
|
158
|
+
return text.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* The hour format a field shows: the caller's explicit choice, else the
|
|
163
|
+
* locale's hour cycle (including a `-u-hc-` extension on the tag).
|
|
164
|
+
*/
|
|
165
|
+
export function resolveHourFormat(locale, hourFormat) {
|
|
166
|
+
return hourFormat ?? getLocaleTimeSymbols(locale).hourFormat;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* Formats an ISO time as the locale writes it, in the given hour format.
|
|
171
|
+
* en-US: "14:30" → "2:30 PM"; de-DE 24h: "14:30"; ko-KR 12h: "오후 2:30".
|
|
172
|
+
* Returns '' for an empty or malformed time.
|
|
173
|
+
*/
|
|
174
|
+
export function formatLocaleTime(time, locale, hourFormat, includeSeconds = false) {
|
|
175
|
+
if (!time) {
|
|
176
|
+
return '';
|
|
177
|
+
}
|
|
178
|
+
const parsed = parseISOTime(time);
|
|
179
|
+
if (!parsed) {
|
|
180
|
+
return '';
|
|
181
|
+
}
|
|
182
|
+
const formatLocale = hourFormat === '12h' && getLocaleTimeSymbols(locale).twelveHourIsAmbiguous ? 'en' : locale;
|
|
183
|
+
return timeFormatter(formatLocale, hourFormat, includeSeconds).format(utcDate(parsed.hour, parsed.minute, parsed.second)).replace(SPACES, ' ');
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
* Parses typed text into an ISO time, accepting the locale's digits,
|
|
188
|
+
* separator, and day-period words as well as everything `parseTimeInput`
|
|
189
|
+
* accepts. Returns null when no reading fits.
|
|
190
|
+
*/
|
|
191
|
+
export function parseLocaleTime(input, locale, includeSeconds = false) {
|
|
192
|
+
if (!input) {
|
|
193
|
+
return null;
|
|
194
|
+
}
|
|
195
|
+
const {
|
|
196
|
+
separators,
|
|
197
|
+
edgeWords,
|
|
198
|
+
dayPeriods
|
|
199
|
+
} = getLocaleTimeSymbols(locale);
|
|
200
|
+
let text = normalizeText(input).trim();
|
|
201
|
+
|
|
202
|
+
// Peel the day period and edge words off both ends, in whatever order the
|
|
203
|
+
// locale writes them ("ŋdi ga 2:30", "kl. 2.30 pm").
|
|
204
|
+
let isPM = null;
|
|
205
|
+
// A word counts only when a digit, whitespace, or nothing sits on its inner
|
|
206
|
+
// side, so gd's "m" (morning) is not read out of an English "pm" or "p.m".
|
|
207
|
+
const strip = word => {
|
|
208
|
+
if (text.startsWith(word) && WORD_BOUNDARY.test(text.charAt(word.length))) {
|
|
209
|
+
text = text.slice(word.length).trim();
|
|
210
|
+
return true;
|
|
211
|
+
}
|
|
212
|
+
if (text.endsWith(word) && WORD_BOUNDARY.test(text.charAt(text.length - word.length - 1))) {
|
|
213
|
+
text = text.slice(0, -word.length).trim();
|
|
214
|
+
return true;
|
|
215
|
+
}
|
|
216
|
+
return false;
|
|
217
|
+
};
|
|
218
|
+
for (let peeled = true; peeled;) {
|
|
219
|
+
peeled = false;
|
|
220
|
+
if (isPM === null) {
|
|
221
|
+
const period = dayPeriods.find(({
|
|
222
|
+
word
|
|
223
|
+
}) => strip(word));
|
|
224
|
+
if (period !== undefined) {
|
|
225
|
+
isPM = period.isPM;
|
|
226
|
+
peeled = true;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
if (edgeWords.some(strip)) {
|
|
230
|
+
peeled = true;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
for (const separator of separators) {
|
|
234
|
+
text = text.replace(new RegExp(`(\\d)\\s*${escapeRegExp(separator)}\\s*(?=\\d)`, 'g'), '$1:');
|
|
235
|
+
}
|
|
236
|
+
if (isPM !== null) {
|
|
237
|
+
text = `${text} ${isPM ? 'pm' : 'am'}`;
|
|
238
|
+
}
|
|
239
|
+
return parseTimeInput(text, includeSeconds);
|
|
240
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type CompactDefinition } from '../theme/themeAdaptations.js';
|
|
2
|
-
|
|
3
|
-
export
|
|
2
|
+
import { TOUCH_QUERY } from './touchQueries.js';
|
|
3
|
+
export { TOUCH_QUERY };
|
|
4
4
|
/**
|
|
5
5
|
* The viewport is compact at the default width points: layout behaviours
|
|
6
6
|
* (`spec:AST-012` FR9). A StyleX media key, which cannot read the theme,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"touchPresentation.d.ts","sourceRoot":"","sources":["../../src/utils/touchPresentation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"touchPresentation.d.ts","sourceRoot":"","sources":["../../src/utils/touchPresentation.ts"],"names":[],"mappings":"AAgEA,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAI3C,OAAO,EAAC,WAAW,EAAC,CAAC;AAErB;;;;;GAKG;AACH,eAAO,MAAM,aAAa,QAAmC,CAAC;AAE9D,wEAAwE;AACxE,eAAO,MAAM,mBAAmB,QACe,CAAC;AAEhD;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,kCAAkC,CAAC;AAElE;;;GAGG;AACH,eAAO,MAAM,oBAAoB,kFAGvB,CAAC;AAEX,MAAM,WAAW,iBAAiB;IAChC,gDAAgD;IAChD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,+BAA+B;IAC/B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,iBAAiB,CAOxD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,aAAa,GAAE,OAAO,CAAC,iBAAiB,CAAM,GAC7C,iBAAiB,CAQnB;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,OAAO,EAAE,iBAAiB,GACzB,iBAAiB,CAOnB"}
|
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* @file touchPresentation.ts
|
|
7
|
-
* @input Uses the SSR-safe useMediaQuery hook
|
|
7
|
+
* @input Uses the SSR-safe useMediaQuery hook, window.matchMedia, and
|
|
8
|
+
* TOUCH_QUERY from touchQueries.ts (which loads without React or the theme)
|
|
8
9
|
* @output The one definition of when a component presents itself the touch
|
|
9
10
|
* way: TOUCH_QUERY, COMPACT_QUERY, COMPACT_TOUCH_QUERY, the iOS style gate
|
|
10
11
|
* (IOS_SUPPORTS_QUERY and its StyleX keys); the hook useTouchPresentation;
|
|
@@ -28,8 +29,8 @@
|
|
|
28
29
|
* drilled-in sub-menu in place of a flyout) asks for both.
|
|
29
30
|
*
|
|
30
31
|
* Touch behaviour is one model on every touch device, iOS and Android alike;
|
|
31
|
-
* nothing here chooses a platform. Touch motion
|
|
32
|
-
* roles
|
|
32
|
+
* nothing here chooses a platform. Touch motion plays the measured table,
|
|
33
|
+
* through the internal motion roles where a value is one.
|
|
33
34
|
*
|
|
34
35
|
* CSS first: a style that changes with these conditions writes the same
|
|
35
36
|
* query as a StyleX media key, spelled exactly as here (`@media` followed by
|
|
@@ -46,9 +47,11 @@
|
|
|
46
47
|
* test keeps core's compact-touch keys identical to COMPACT_TOUCH_QUERY and
|
|
47
48
|
* every touch-callout key spelled and nested as above. The iOS style gate
|
|
48
49
|
* is only for a style iOS WebKit itself requires (core's 16px input floor);
|
|
49
|
-
* it never selects a behaviour.
|
|
50
|
-
*
|
|
51
|
-
*
|
|
50
|
+
* it never selects a behaviour. Core spells the keys literally: an imported
|
|
51
|
+
* `defineConsts` key compiles to a different StyleX priority than the same
|
|
52
|
+
* literal, which would reorder the cascade. `touchKeys`
|
|
53
|
+
* (touchPresentation.stylex.ts, internal to core) holds the same keys, and a
|
|
54
|
+
* test keeps every literal equal to them. The hook is for behaviour. It answers the server default
|
|
52
55
|
* (not touch, not compact) until hydrated unless the caller passes a server
|
|
53
56
|
* hint, and follows the pointer and size when they change (a tablet docking
|
|
54
57
|
* a mouse).
|
|
@@ -60,9 +63,11 @@ import { useMemo } from 'react';
|
|
|
60
63
|
import { useMediaQuery } from "../hooks/useMediaQuery.js";
|
|
61
64
|
import { DEFAULT_COMPACT_DEFINITION, compactDefinition } from "../theme/themeAdaptations.js";
|
|
62
65
|
import { useThemeDefinition } from "../theme/useTheme.js";
|
|
66
|
+
import { TOUCH_QUERY } from "./touchQueries.js";
|
|
63
67
|
|
|
64
|
-
|
|
65
|
-
|
|
68
|
+
// The primary pointer is coarse: touch behaviours. Defined in touchQueries.ts,
|
|
69
|
+
// which loads without React or the theme.
|
|
70
|
+
export { TOUCH_QUERY };
|
|
66
71
|
|
|
67
72
|
/**
|
|
68
73
|
* The viewport is compact at the default width points: layout behaviours
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare const touchKeys: {
|
|
2
|
+
/** The primary pointer is coarse (TOUCH_QUERY). */
|
|
3
|
+
touch: string;
|
|
4
|
+
/** The viewport is compact (COMPACT_QUERY, `spec:AST-012` FR9). */
|
|
5
|
+
compact: string;
|
|
6
|
+
/** Both: a presentation such as a sheet in place of a popover. */
|
|
7
|
+
compactTouch: string;
|
|
8
|
+
/**
|
|
9
|
+
* The iOS WebKit gate, inside `touch` (IOS_SUPPORTS_QUERY): only for a
|
|
10
|
+
* style iOS WebKit itself requires (the 16px input floor), never a
|
|
11
|
+
* behaviour; touch behaviour is one model on every touch device.
|
|
12
|
+
*/
|
|
13
|
+
iosSupports: string;
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=touchPresentation.stylex.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"touchPresentation.stylex.d.ts","sourceRoot":"","sources":["../../src/utils/touchPresentation.stylex.ts"],"names":[],"mappings":"AA4BA,eAAO,MAAM,SAAS;IACpB,mDAAmD;;IAEnD,mEAAmE;;IAEnE,kEAAkE;;IAGlE;;;;OAIG;;CAEH,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @file touchPresentation.stylex.ts
|
|
5
|
+
* @input Uses StyleX defineConsts
|
|
6
|
+
* @output Exports touchKeys: the touch presentation resolver's queries as
|
|
7
|
+
* StyleX at-rule keys
|
|
8
|
+
* @position The reference spellings of the touch, compact and iOS-gate
|
|
9
|
+
* conditions. Core styles write these as literal keys wherever they need
|
|
10
|
+
* them (`spec:AST-094` FR13, `spec:AST-012` FR9), and a test pins each
|
|
11
|
+
* literal to these values; utils/touchPresentation.ts holds the same
|
|
12
|
+
* queries for script (matchMedia)
|
|
13
|
+
*
|
|
14
|
+
* These are the spellings to match. A style that changes with these
|
|
15
|
+
* conditions writes the same literal key (`'@media (pointer: coarse)'`, the
|
|
16
|
+
* iOS gate as that media key outside `'@supports (-webkit-touch-callout:
|
|
17
|
+
* none)'`), and a test pins every literal in core to these values. Do not use
|
|
18
|
+
* an imported key as a computed StyleX key: it compiles to a different
|
|
19
|
+
* priority than the literal (6000 against 3200) and reorders the cascade.
|
|
20
|
+
* The iOS supports gate is only for a style iOS WebKit itself requires (the
|
|
21
|
+
* 16px input floor), never a behaviour.
|
|
22
|
+
*
|
|
23
|
+
* SYNC: When modified, update touchPresentation.ts and
|
|
24
|
+
* touchPresentation.test.ts.
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
import * as stylex from '@stylexjs/stylex';
|
|
28
|
+
export const touchKeys = {
|
|
29
|
+
touch: "@media (pointer: coarse)",
|
|
30
|
+
compact: "@media (width < 768px), (height < 500px)",
|
|
31
|
+
compactTouch: "@media (width < 768px) and (pointer: coarse), (height < 500px) and (pointer: coarse)",
|
|
32
|
+
iosSupports: "@supports (-webkit-touch-callout: none)"
|
|
33
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file touchQueries.ts
|
|
3
|
+
* @input Nothing: plain strings
|
|
4
|
+
* @output TOUCH_QUERY, the media query for a coarse primary pointer
|
|
5
|
+
* @position The dependency-free half of touchPresentation.ts, for code that
|
|
6
|
+
* must load without React or the theme: the motion foundation, which
|
|
7
|
+
* Node-side specs and browser proofs load without a StyleX compile.
|
|
8
|
+
* touchPresentation.ts re-exports it beside the hook and the parts that
|
|
9
|
+
* read the theme.
|
|
10
|
+
*/
|
|
11
|
+
/** The primary pointer is coarse: touch behaviours. */
|
|
12
|
+
export declare const TOUCH_QUERY = "(pointer: coarse)";
|
|
13
|
+
//# sourceMappingURL=touchQueries.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"touchQueries.d.ts","sourceRoot":"","sources":["../../src/utils/touchQueries.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AAEH,uDAAuD;AACvD,eAAO,MAAM,WAAW,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @file touchQueries.ts
|
|
5
|
+
* @input Nothing: plain strings
|
|
6
|
+
* @output TOUCH_QUERY, the media query for a coarse primary pointer
|
|
7
|
+
* @position The dependency-free half of touchPresentation.ts, for code that
|
|
8
|
+
* must load without React or the theme: the motion foundation, which
|
|
9
|
+
* Node-side specs and browser proofs load without a StyleX compile.
|
|
10
|
+
* touchPresentation.ts re-exports it beside the hook and the parts that
|
|
11
|
+
* read the theme.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
/** The primary pointer is coarse: touch behaviours. */
|
|
15
|
+
export const TOUCH_QUERY = '(pointer: coarse)';
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zero-width joiners, bidi marks and isolates (which Intl writes around RTL
|
|
3
|
+
* numbers and day periods), and the BOM Excel prepends.
|
|
4
|
+
*/
|
|
5
|
+
export declare const INVISIBLE_CHARS: RegExp;
|
|
6
|
+
/**
|
|
7
|
+
* Value of any Unicode decimal digit. Each digit script lays its ten digits
|
|
8
|
+
* out consecutively, so walking back to the script's zero derives the value
|
|
9
|
+
* for Arabic-Indic, Devanagari, full-width and the rest without shipping a
|
|
10
|
+
* table of them. Returns null for a non-digit, and in the one shape the walk
|
|
11
|
+
* cannot resolve: two digit blocks adjacent in code space (the mathematical
|
|
12
|
+
* alphanumerics).
|
|
13
|
+
*/
|
|
14
|
+
export declare function digitValue(char: string): number | null;
|
|
15
|
+
/**
|
|
16
|
+
* Rewrites every decimal digit as its ASCII digit, leaving other characters
|
|
17
|
+
* alone. Returns null when a digit's value cannot be resolved.
|
|
18
|
+
*/
|
|
19
|
+
export declare function toAsciiDigits(text: string): string | null;
|
|
20
|
+
//# sourceMappingURL=unicodeDigits.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unicodeDigits.d.ts","sourceRoot":"","sources":["../../src/utils/unicodeDigits.ts"],"names":[],"mappings":"AAwBA;;;GAGG;AACH,eAAO,MAAM,eAAe,QAC6B,CAAC;AAE1D;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAWtD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAczD"}
|