@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
|
@@ -236,9 +236,12 @@ const runtimeCatalog: Readonly<Record<string, string>> = {
|
|
|
236
236
|
'@astryx.sideNav.label': '⟦Šíðé ñàṽíĝàţíóñ⟧',
|
|
237
237
|
'@astryx.sideNav.resizeSidebar': '⟦Řéšížé šíðéƀàř⟧',
|
|
238
238
|
'@astryx.sideNav.heading.openMenu': '⟦Óþéñ ɱéñú⟧',
|
|
239
|
+
'@astryx.slider.minimumThumb': '⟦Ṁíñíɱúɱ ṽàłúé⟧',
|
|
240
|
+
'@astryx.slider.maximumThumb': '⟦Ṁàẋíɱúɱ ṽàłúé⟧',
|
|
239
241
|
'@astryx.tabList.label': '⟦Ţàƀš⟧',
|
|
240
242
|
'@astryx.table.label': '⟦Ţàƀłé⟧',
|
|
241
243
|
'@astryx.table.noData': '⟦Ñó ðàţà⟧',
|
|
244
|
+
'@astryx.table.columnResize.resizeColumn': '⟦Řéšížé çółúɱñ {label}⟧',
|
|
242
245
|
'@astryx.table.filter.allPlaceholder': '⟦Àłł⟧',
|
|
243
246
|
'@astryx.table.filter.reset': '⟦Řéšéţ⟧',
|
|
244
247
|
'@astryx.table.filter.apply': '⟦Àþþłý⟧',
|
|
@@ -252,12 +255,7 @@ const runtimeCatalog: Readonly<Record<string, string>> = {
|
|
|
252
255
|
'@astryx.table.sort.ascending': '⟦Šóřţ àšçéñðíñĝ⟧',
|
|
253
256
|
'@astryx.table.sort.descending': '⟦Šóřţ ðéšçéñðíñĝ⟧',
|
|
254
257
|
'@astryx.table.sort.clear': '⟦Çłéàř šóřţ⟧',
|
|
255
|
-
'@astryx.table.sort.
|
|
256
|
-
'@astryx.table.sort.direction.descending': '⟦ðéšçéñðíñĝ⟧',
|
|
257
|
-
'@astryx.table.sort.sortBy': '⟦Šóřţ ƀý {label}⟧',
|
|
258
|
-
'@astryx.table.sort.sortedBy': '⟦Šóřţ ƀý {label}, šóřţéð {direction}⟧',
|
|
259
|
-
'@astryx.table.sort.sortedByWithPriority':
|
|
260
|
-
'⟦Šóřţ ƀý {label}, šóřţéð {direction}, þříóříţý {rank, number} óƒ {total, number}⟧',
|
|
258
|
+
'@astryx.table.sort.priority': '⟦Þříóříţý {rank, number} óƒ {total, number}⟧',
|
|
261
259
|
'@astryx.toast.dismiss': '⟦Ðíšɱíšš ñóţíƒíçàţíóñ⟧',
|
|
262
260
|
'@astryx.toast.viewport': '⟦Ñóţíƒíçàţíóñš⟧',
|
|
263
261
|
'@astryx.tokenizer.clearAll': '⟦Çłéàř àłł⟧',
|
|
@@ -318,6 +316,7 @@ const runtimeCatalog: Readonly<Record<string, string>> = {
|
|
|
318
316
|
'@astryx.outline.label': '⟦Ţàƀłé óƒ çóñţéñţš⟧',
|
|
319
317
|
'@astryx.powersearch.label': '⟦Šéàřçĥ⟧',
|
|
320
318
|
'@astryx.powersearch.placeholder': '⟦Šéàřçĥ…⟧',
|
|
319
|
+
'@astryx.powersearch.allFiltersRemoved': '⟦Àłł ƒíłţéřš řéɱóṽéð⟧',
|
|
321
320
|
'@astryx.resizable.collapsed': '⟦Çółłàþšéð⟧',
|
|
322
321
|
'@astryx.resizable.handle.label': '⟦Řéšížé ĥàñðłé⟧',
|
|
323
322
|
'@astryx.selector.placeholder': '⟦Šéłéçţ…⟧',
|
|
@@ -436,6 +435,7 @@ const runtimeCatalog: Readonly<Record<string, string>> = {
|
|
|
436
435
|
'@astryx.tableTree.expandRow': '⟦Éẋþàñð řóŵ⟧',
|
|
437
436
|
'@astryx.tableTree.collapseAllRows': '⟦Çółłàþšé àłł řóŵš⟧',
|
|
438
437
|
'@astryx.tableTree.expandAllRows': '⟦Éẋþàñð àłł řóŵš⟧',
|
|
438
|
+
'@astryx.textArea.counter': '⟦{count, number}/{limit, number}⟧',
|
|
439
439
|
'@astryx.textArea.charactersRemaining':
|
|
440
440
|
'⟦{count, number} {count, plural, one {character} other {characters}} řéɱàíñíñĝ⟧',
|
|
441
441
|
'@astryx.textArea.charactersOverLimit':
|
|
@@ -458,6 +458,8 @@ const runtimeCatalog: Readonly<Record<string, string>> = {
|
|
|
458
458
|
'@astryx.multiSelector.allSelected': '⟦Àłł šéłéçţéð⟧',
|
|
459
459
|
'@astryx.multiSelector.selectionCount':
|
|
460
460
|
'⟦{count, number} óƒ {total, number} šéłéçţéð⟧',
|
|
461
|
+
'@astryx.multiSelector.selectedCount':
|
|
462
|
+
'⟦{count, plural, one {# selected} other {# selected}}⟧',
|
|
461
463
|
'@astryx.multiSelector.createOption': '⟦Çřéàţé "{query}"⟧',
|
|
462
464
|
'@astryx.multiSelector.optionCreated': '⟦{label} çřéàţéð⟧',
|
|
463
465
|
'@astryx.multiSelector.emptySearchResults': '⟦Ñó řéšúłţš ƒóúñð⟧',
|
|
@@ -606,6 +608,7 @@ const runtimeCatalog: Readonly<Record<string, string>> = {
|
|
|
606
608
|
'@astryx.comments.resolveFailed': "⟦Ţĥíš ţĥřéàð çóúłðñ'ţ ƀé řéšółṽéð.⟧",
|
|
607
609
|
'@astryx.comments.resolved': '⟦Řéšółṽéð⟧',
|
|
608
610
|
'@astryx.comments.resolvedBy': '⟦Řéšółṽéð ƀý {name}⟧',
|
|
611
|
+
'@astryx.comments.errorAnnouncement': '⟦{title} {description}⟧',
|
|
609
612
|
'@astryx.comments.retryFailed': "⟦Řéţřýíñĝ ðíðñ'ţ ŵóřķ.⟧",
|
|
610
613
|
'@astryx.comments.sendFailed': "⟦Çóúłðñ'ţ šéñð ţĥíš çóɱɱéñţ.⟧",
|
|
611
614
|
'@astryx.comments.threadLabel': '⟦Ţĥřéàð ƀý {name}⟧',
|
|
@@ -191,13 +191,6 @@ const runtimeCatalog: Readonly<Record<string, string>> = {
|
|
|
191
191
|
'@astryx.table.sort.ascending': 'Ordenar em ordem crescente',
|
|
192
192
|
'@astryx.table.sort.descending': 'Ordenar em ordem decrescente',
|
|
193
193
|
'@astryx.table.sort.clear': 'Limpar ordenação',
|
|
194
|
-
'@astryx.table.sort.direction.ascending': 'crescente',
|
|
195
|
-
'@astryx.table.sort.direction.descending': 'decrescente',
|
|
196
|
-
'@astryx.table.sort.sortBy': 'Ordenar por {label}',
|
|
197
|
-
'@astryx.table.sort.sortedBy':
|
|
198
|
-
'Ordenar por {label}, ordenado de forma {direction}',
|
|
199
|
-
'@astryx.table.sort.sortedByWithPriority':
|
|
200
|
-
'Ordenar por {label}, ordenado de forma {direction}, prioridade {rank, number} de {total, number}',
|
|
201
194
|
'@astryx.toast.dismiss': 'Dispensar notificação',
|
|
202
195
|
'@astryx.toast.viewport': 'Notificações',
|
|
203
196
|
'@astryx.tokenizer.clearAll': 'Limpar tudo',
|
|
@@ -194,13 +194,6 @@ const runtimeCatalog: Readonly<Record<string, string>> = {
|
|
|
194
194
|
'@astryx.table.sort.ascending': 'Ordenar ascendente',
|
|
195
195
|
'@astryx.table.sort.descending': 'Ordenar descendente',
|
|
196
196
|
'@astryx.table.sort.clear': 'Limpar ordenação',
|
|
197
|
-
'@astryx.table.sort.direction.ascending': 'ascendente',
|
|
198
|
-
'@astryx.table.sort.direction.descending': 'descendente',
|
|
199
|
-
'@astryx.table.sort.sortBy': 'Ordenar por {label}',
|
|
200
|
-
'@astryx.table.sort.sortedBy':
|
|
201
|
-
'Ordenar por {label}, ordenado de forma {direction}',
|
|
202
|
-
'@astryx.table.sort.sortedByWithPriority':
|
|
203
|
-
'Ordenar por {label}, ordenado de forma {direction}, prioridade {rank, number} de {total, number}',
|
|
204
197
|
'@astryx.toast.dismiss': 'Dispensar notificação',
|
|
205
198
|
'@astryx.toast.viewport': 'Notificações',
|
|
206
199
|
'@astryx.tokenizer.clearAll': 'Limpar tudo',
|
|
@@ -195,12 +195,6 @@ const runtimeCatalog: Readonly<Record<string, string>> = {
|
|
|
195
195
|
'@astryx.table.sort.ascending': 'Sortează crescător',
|
|
196
196
|
'@astryx.table.sort.descending': 'Sortează descrescător',
|
|
197
197
|
'@astryx.table.sort.clear': 'Șterge sortarea',
|
|
198
|
-
'@astryx.table.sort.direction.ascending': 'crescător',
|
|
199
|
-
'@astryx.table.sort.direction.descending': 'descrescător',
|
|
200
|
-
'@astryx.table.sort.sortBy': 'Sortează după {label}',
|
|
201
|
-
'@astryx.table.sort.sortedBy': 'Sortează după {label}, sortat {direction}',
|
|
202
|
-
'@astryx.table.sort.sortedByWithPriority':
|
|
203
|
-
'Sortează după {label}, sortat {direction}, prioritatea {rank, number} din {total, number}',
|
|
204
198
|
'@astryx.toast.dismiss': 'Închide notificarea',
|
|
205
199
|
'@astryx.toast.viewport': 'Notificări',
|
|
206
200
|
'@astryx.tokenizer.clearAll': 'Șterge tot',
|
|
@@ -194,13 +194,6 @@ const runtimeCatalog: Readonly<Record<string, string>> = {
|
|
|
194
194
|
'@astryx.table.sort.ascending': 'Сортировать по возрастанию',
|
|
195
195
|
'@astryx.table.sort.descending': 'Сортировать по убыванию',
|
|
196
196
|
'@astryx.table.sort.clear': 'Сбросить сортировку',
|
|
197
|
-
'@astryx.table.sort.direction.ascending': 'по возрастанию',
|
|
198
|
-
'@astryx.table.sort.direction.descending': 'по убыванию',
|
|
199
|
-
'@astryx.table.sort.sortBy': 'Сортировать по {label}',
|
|
200
|
-
'@astryx.table.sort.sortedBy':
|
|
201
|
-
'Сортировать по {label}, отсортировано {direction}',
|
|
202
|
-
'@astryx.table.sort.sortedByWithPriority':
|
|
203
|
-
'Сортировать по {label}, отсортировано {direction}, приоритет {rank, number} из {total, number}',
|
|
204
197
|
'@astryx.toast.dismiss': 'Закрыть уведомление',
|
|
205
198
|
'@astryx.toast.viewport': 'Уведомления',
|
|
206
199
|
'@astryx.tokenizer.clearAll': 'Очистить все',
|
|
@@ -193,12 +193,6 @@ const runtimeCatalog: Readonly<Record<string, string>> = {
|
|
|
193
193
|
'@astryx.table.sort.ascending': 'Сортирај растуће',
|
|
194
194
|
'@astryx.table.sort.descending': 'Сортирај опадајуће',
|
|
195
195
|
'@astryx.table.sort.clear': 'Обриши сортирање',
|
|
196
|
-
'@astryx.table.sort.direction.ascending': 'растуће',
|
|
197
|
-
'@astryx.table.sort.direction.descending': 'опадајуће',
|
|
198
|
-
'@astryx.table.sort.sortBy': 'Сортирај по {label}',
|
|
199
|
-
'@astryx.table.sort.sortedBy': 'Сортирај по {label}, сортирано {direction}',
|
|
200
|
-
'@astryx.table.sort.sortedByWithPriority':
|
|
201
|
-
'Сортирај по {label}, сортирано {direction}, приоритет {rank, number} од {total, number}',
|
|
202
196
|
'@astryx.toast.dismiss': 'Одбаци обавештење',
|
|
203
197
|
'@astryx.toast.viewport': 'Обавештења',
|
|
204
198
|
'@astryx.tokenizer.clearAll': 'Обриши све',
|
|
@@ -192,12 +192,6 @@ const runtimeCatalog: Readonly<Record<string, string>> = {
|
|
|
192
192
|
'@astryx.table.sort.ascending': 'Sortera stigande',
|
|
193
193
|
'@astryx.table.sort.descending': 'Sortera fallande',
|
|
194
194
|
'@astryx.table.sort.clear': 'Rensa sortering',
|
|
195
|
-
'@astryx.table.sort.direction.ascending': 'stigande',
|
|
196
|
-
'@astryx.table.sort.direction.descending': 'fallande',
|
|
197
|
-
'@astryx.table.sort.sortBy': 'Sortera efter {label}',
|
|
198
|
-
'@astryx.table.sort.sortedBy': 'Sortera efter {label}, sorterat {direction}',
|
|
199
|
-
'@astryx.table.sort.sortedByWithPriority':
|
|
200
|
-
'Sortera efter {label}, sorterat {direction}, prioritet {rank, number} av {total, number}',
|
|
201
195
|
'@astryx.toast.dismiss': 'Stäng avisering',
|
|
202
196
|
'@astryx.toast.viewport': 'Aviseringar',
|
|
203
197
|
'@astryx.tokenizer.clearAll': 'Rensa alla',
|
|
@@ -192,13 +192,6 @@ const runtimeCatalog: Readonly<Record<string, string>> = {
|
|
|
192
192
|
'@astryx.table.sort.ascending': 'Artan sırada sırala',
|
|
193
193
|
'@astryx.table.sort.descending': 'Azalan sırada sırala',
|
|
194
194
|
'@astryx.table.sort.clear': 'Sıralamayı temizle',
|
|
195
|
-
'@astryx.table.sort.direction.ascending': 'artan',
|
|
196
|
-
'@astryx.table.sort.direction.descending': 'azalan',
|
|
197
|
-
'@astryx.table.sort.sortBy': 'Şuna göre sırala: {label}',
|
|
198
|
-
'@astryx.table.sort.sortedBy':
|
|
199
|
-
'Şuna göre sırala: {label}, sıralama: {direction}',
|
|
200
|
-
'@astryx.table.sort.sortedByWithPriority':
|
|
201
|
-
'Şuna göre sırala: {label}, sıralama: {direction}, öncelik: {total, number} içinden {rank, number}',
|
|
202
195
|
'@astryx.toast.dismiss': 'Bildirimi kapat',
|
|
203
196
|
'@astryx.toast.viewport': 'Bildirimler',
|
|
204
197
|
'@astryx.tokenizer.clearAll': 'Tümünü temizle',
|
|
@@ -191,13 +191,6 @@ const runtimeCatalog: Readonly<Record<string, string>> = {
|
|
|
191
191
|
'@astryx.table.sort.ascending': 'Сортувати за зростанням',
|
|
192
192
|
'@astryx.table.sort.descending': 'Сортувати за спаданням',
|
|
193
193
|
'@astryx.table.sort.clear': 'Очистити сортування',
|
|
194
|
-
'@astryx.table.sort.direction.ascending': 'за зростанням',
|
|
195
|
-
'@astryx.table.sort.direction.descending': 'за спаданням',
|
|
196
|
-
'@astryx.table.sort.sortBy': 'Сортувати за {label}',
|
|
197
|
-
'@astryx.table.sort.sortedBy':
|
|
198
|
-
'Сортувати за {label}, відсортовано {direction}',
|
|
199
|
-
'@astryx.table.sort.sortedByWithPriority':
|
|
200
|
-
'Сортувати за {label}, відсортовано {direction}, пріоритет {rank, number} з {total, number}',
|
|
201
194
|
'@astryx.toast.dismiss': 'Закрити сповіщення',
|
|
202
195
|
'@astryx.toast.viewport': 'Сповіщення',
|
|
203
196
|
'@astryx.tokenizer.clearAll': 'Очистити все',
|
|
@@ -189,12 +189,6 @@ const runtimeCatalog: Readonly<Record<string, string>> = {
|
|
|
189
189
|
'@astryx.table.sort.ascending': 'Sắp xếp tăng dần',
|
|
190
190
|
'@astryx.table.sort.descending': 'Sắp xếp giảm dần',
|
|
191
191
|
'@astryx.table.sort.clear': 'Xóa sắp xếp',
|
|
192
|
-
'@astryx.table.sort.direction.ascending': 'tăng dần',
|
|
193
|
-
'@astryx.table.sort.direction.descending': 'giảm dần',
|
|
194
|
-
'@astryx.table.sort.sortBy': 'Sắp xếp theo {label}',
|
|
195
|
-
'@astryx.table.sort.sortedBy': 'Sắp xếp theo {label}, {direction}',
|
|
196
|
-
'@astryx.table.sort.sortedByWithPriority':
|
|
197
|
-
'Sắp xếp theo {label}, {direction}, ưu tiên {rank, number} trên {total, number}',
|
|
198
192
|
'@astryx.toast.dismiss': 'Bỏ qua thông báo',
|
|
199
193
|
'@astryx.toast.viewport': 'Thông báo',
|
|
200
194
|
'@astryx.tokenizer.clearAll': 'Xóa tất cả',
|
|
@@ -183,12 +183,6 @@ const runtimeCatalog: Readonly<Record<string, string>> = {
|
|
|
183
183
|
'@astryx.table.sort.ascending': '升序排序',
|
|
184
184
|
'@astryx.table.sort.descending': '降序排序',
|
|
185
185
|
'@astryx.table.sort.clear': '清除排序',
|
|
186
|
-
'@astryx.table.sort.direction.ascending': '升序',
|
|
187
|
-
'@astryx.table.sort.direction.descending': '降序',
|
|
188
|
-
'@astryx.table.sort.sortBy': '按 {label} 排序',
|
|
189
|
-
'@astryx.table.sort.sortedBy': '按 {label} 排序,{direction}',
|
|
190
|
-
'@astryx.table.sort.sortedByWithPriority':
|
|
191
|
-
'按 {label} 排序,{direction},优先级 {rank, number}/{total, number}',
|
|
192
186
|
'@astryx.toast.dismiss': '关闭通知',
|
|
193
187
|
'@astryx.toast.viewport': '通知',
|
|
194
188
|
'@astryx.tokenizer.clearAll': '全部清除',
|
|
@@ -183,12 +183,6 @@ const runtimeCatalog: Readonly<Record<string, string>> = {
|
|
|
183
183
|
'@astryx.table.sort.ascending': '遞增排序',
|
|
184
184
|
'@astryx.table.sort.descending': '遞減排序',
|
|
185
185
|
'@astryx.table.sort.clear': '清除排序',
|
|
186
|
-
'@astryx.table.sort.direction.ascending': '遞增',
|
|
187
|
-
'@astryx.table.sort.direction.descending': '遞減',
|
|
188
|
-
'@astryx.table.sort.sortBy': '依 {label} 排序',
|
|
189
|
-
'@astryx.table.sort.sortedBy': '依 {label} 排序,{direction}',
|
|
190
|
-
'@astryx.table.sort.sortedByWithPriority':
|
|
191
|
-
'依 {label} 排序,{direction},優先順序 {rank, number}/{total, number}',
|
|
192
186
|
'@astryx.toast.dismiss': '關閉通知',
|
|
193
187
|
'@astryx.toast.viewport': '通知',
|
|
194
188
|
'@astryx.tokenizer.clearAll': '全部清除',
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
'use client';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* @file useListFormatter.ts
|
|
7
|
+
* @input InternationalizationContext (via use())
|
|
8
|
+
* @output A memoized function that joins strings as a list in the active locale
|
|
9
|
+
* @position Internal provider-aware list-formatting hook
|
|
10
|
+
* (architecture:internationalization INV8). Components that show several
|
|
11
|
+
* catalog messages as one string join them here rather than at the call
|
|
12
|
+
* site (INV1a). Not exported from the i18n barrel. Raw Intl.ListFormat
|
|
13
|
+
* construction stays centralized in this hook.
|
|
14
|
+
*
|
|
15
|
+
* Falls back to `'en'` when called outside a provider, matching the
|
|
16
|
+
* useTranslator/useCollator fallback.
|
|
17
|
+
*
|
|
18
|
+
* SYNC: When modified, update:
|
|
19
|
+
* - /packages/core/src/i18n/__tests__/useListFormatter.test.tsx
|
|
20
|
+
* - /internal/eslint-plugin-astryx/no-raw-intl-locale.js
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
import {use, useMemo} from 'react';
|
|
24
|
+
import {InternationalizationContext} from './InternationalizationContext';
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Returns a function that joins items as a narrow conjunction list (`a, b, c`
|
|
28
|
+
* in English) for the active provider locale, memoized while the locale is
|
|
29
|
+
* unchanged. The narrow conjunction separates items in every shipped locale,
|
|
30
|
+
* including whole sentences, where a unit list runs them together in some
|
|
31
|
+
* (no separator in zh-CN, only a space in ja-JP).
|
|
32
|
+
*/
|
|
33
|
+
export function useListFormatter(): (items: ReadonlyArray<string>) => string {
|
|
34
|
+
const ctx = use(InternationalizationContext);
|
|
35
|
+
return useMemo(() => {
|
|
36
|
+
const format = new Intl.ListFormat(ctx.locale, {
|
|
37
|
+
type: 'conjunction',
|
|
38
|
+
style: 'narrow',
|
|
39
|
+
});
|
|
40
|
+
return (items: ReadonlyArray<string>) => format.format(items);
|
|
41
|
+
}, [ctx.locale]);
|
|
42
|
+
}
|
|
@@ -110,7 +110,8 @@ during the motion; `velocity(in:)` is 0.2 × the newest event's
|
|
|
110
110
|
instantaneous velocity + 0.8 × the previous one's (it reproduces every value
|
|
111
111
|
UIKit reported on six recorded streams), does not decay through a rest and
|
|
112
112
|
ignores the lift: the table keeps that one filter and no least-squares
|
|
113
|
-
estimator (`spec:AST-100` FR2
|
|
113
|
+
estimator (`spec:AST-100` FR2; M-G14 is the scroll-view release blend still to
|
|
114
|
+
confirm, and M-G16 is Astryx’s stillness reset, not a UIKit value); a sheet over a scrolled list leaves the whole
|
|
114
115
|
drag to the list (no mid-gesture handoff), so the table carries no handoff
|
|
115
116
|
slop (`spec:AST-094` FR14).
|
|
116
117
|
|
package/src/motion/README.md
CHANGED
|
@@ -11,45 +11,73 @@ so each keeps its measured value; no shipped component reads the roles yet.
|
|
|
11
11
|
|
|
12
12
|
## Files
|
|
13
13
|
|
|
14
|
-
| File
|
|
15
|
-
|
|
|
16
|
-
| `uikit/`
|
|
17
|
-
| `uikit/springs.ts`
|
|
18
|
-
| `uikit/scroll.ts`
|
|
19
|
-
| `uikit/timing.ts`
|
|
20
|
-
| `uikit/navigation.ts`
|
|
21
|
-
| `uikit/gestures.ts`
|
|
22
|
-
| `
|
|
23
|
-
| `
|
|
24
|
-
| `
|
|
25
|
-
| `
|
|
26
|
-
| `
|
|
27
|
-
| `
|
|
28
|
-
| `
|
|
29
|
-
| `
|
|
30
|
-
| `
|
|
31
|
-
| `
|
|
32
|
-
| `
|
|
14
|
+
| File | What it is |
|
|
15
|
+
| ------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
16
|
+
| `uikit/` | THE constants table: every spring, duration, deceleration rate, rubber-band constant and curve, with its source. |
|
|
17
|
+
| `uikit/springs.ts` | Interaction springs (navigation, sheets, alerts, menus, controls, keyboard, banners) and the SwiftUI / UIKit presets. |
|
|
18
|
+
| `uikit/scroll.ts` | UIScrollView: deceleration rates, rubber band, bounce-back spring, paging, `delaysContentTouches`, scroll to top. |
|
|
19
|
+
| `uikit/timing.ts` | Non-spring clocks and curves: press highlight, Core Animation's named curves, keyboard, Reduced Motion cross-fade. |
|
|
20
|
+
| `uikit/navigation.ts` | UINavigationController: push velocity, parallax, dimming, transition clock, interactive pop finish rule. |
|
|
21
|
+
| `uikit/gestures.ts` | Gesture recognizer thresholds, the velocity filter and haptic stand-ins, as `{value, unit}` entries (sources in JSDoc). |
|
|
22
|
+
| `roles.ts` | The internal motion roles: the springs, durations and curves `spec:AST-094` FR4 names, registered by the shared tables, and a role's CSS form read back. |
|
|
23
|
+
| `roleValue.ts` | A role's CSS form, written: a spring's duration and bounce, a duration in ms, a curve's `cubic-bezier()`. |
|
|
24
|
+
| `resolveMotion.ts` | A role's value: its table value, as the per-role tables stay internal (`spec:AST-094` DEC-15). |
|
|
25
|
+
| `MEASUREMENTS.md` | The UIKit reference captures each unconfirmed value still needs. |
|
|
26
|
+
| `spring.ts` | Closed-form damped spring, every Apple parameterization, settling duration, a spring chasing a moving target. |
|
|
27
|
+
| `decay.ts` | UIScrollView's momentum coast. |
|
|
28
|
+
| `coast.ts` | A release's momentum curves for `animator.decay`: the coast, the edge spring, a release past an edge. |
|
|
29
|
+
| `rubberBand.ts` | UIScrollView's resistance past an edge, and its inverse. |
|
|
30
|
+
| `projection.ts` | Release targets: the rest point nearest the projected coast. |
|
|
31
|
+
| `resolveSnapPoint.ts` | Release policy: the snap point a release lands on (flick, back-out cancel, step limit), on `selectSnapPoint`. Internal. |
|
|
32
|
+
| `selectPage.ts` | Paging: at most one page per release, on `resolveSnapPoint`. |
|
|
33
|
+
| `bezier.ts` | Cubic-bézier timing functions (Core Animation's named curves). |
|
|
34
|
+
| `animator.ts` | Compositor animator: springs, coasts and any closed-form curve compiled to Web Animations, read back analytically. |
|
|
35
|
+
| `reducedMotionPlan.ts` | The animator's Reduce Motion planner: what one call becomes, a cross-fade whose travel lands while transparent or at once. |
|
|
36
|
+
| `__tests__/animator.interaction.browser.spec.ts` | Browser proofs on the interaction harness (Chromium and WebKit): busy main thread, end state through a block, no Layout / Paint, seeked curves, a dialog's backdrop. |
|
|
33
37
|
|
|
34
38
|
Component-specific values (a sheet's detents, a switch's geometry, a context
|
|
35
39
|
menu's timeline) live in a domain file per component, `uikit/<component>.ts`,
|
|
36
40
|
under the same rules.
|
|
37
41
|
|
|
42
|
+
## Motion roles
|
|
43
|
+
|
|
44
|
+
The motion roles are the springs, durations and curves `spec:AST-094` FR4
|
|
45
|
+
names for their use (`springs.settle`, `timing.stateChangeMs`,
|
|
46
|
+
`timing.curves.move`, …): a shared table lists them when it registers
|
|
47
|
+
(`roles`), and every other value, a component's measured spring included, is
|
|
48
|
+
a plain constant. The per-role tables stay internal (`spec:AST-094` DEC-15): a
|
|
49
|
+
role plays its table value, and nothing reads its CSS variable
|
|
50
|
+
(`--motion-springs-settle`), so no page or theme style sets a role. A table's
|
|
51
|
+
roles exist once its `register<Name>Table()` has run: the animator registers
|
|
52
|
+
the Reduce Motion fade's curve, and code that plays the shared springs calls
|
|
53
|
+
`registerSpringsTable()` before its first motion. The animator resolves each
|
|
54
|
+
role it is handed when the motion starts; code that times something itself
|
|
55
|
+
calls `resolveMotion(element, timing, 'stateChangeMs')`. Gesture thresholds and
|
|
56
|
+
the timings that decide who gets a touch are not roles.
|
|
57
|
+
|
|
38
58
|
## Animator
|
|
39
59
|
|
|
40
60
|
```
|
|
41
61
|
import {createAnimator} from '../motion/animator';
|
|
42
62
|
import {coast} from '../motion/coast';
|
|
43
63
|
import {solveSpringTowardRamp, toSpring} from '../motion/spring';
|
|
44
|
-
import {
|
|
64
|
+
import {resolveMotion} from '../motion/resolveMotion';
|
|
65
|
+
import {registerSpringsTable, springs} from '../motion/uikit';
|
|
66
|
+
|
|
67
|
+
// Once, so the springs are registered as their roles:
|
|
68
|
+
registerSpringsTable();
|
|
45
69
|
|
|
46
70
|
const animator = createAnimator(sheet);
|
|
71
|
+
// The animator plays a motion role (spec:AST-094 FR4), its table value, as the
|
|
72
|
+
// per-role tables stay internal (DEC-15); math on a spring reads the role with
|
|
73
|
+
// resolveMotion.
|
|
74
|
+
const spring = springs.settle;
|
|
47
75
|
|
|
48
76
|
// A drag writes one style per frame and never renders:
|
|
49
77
|
animator.set({y: offset});
|
|
50
78
|
|
|
51
79
|
// The finger lifts: spring to the detent with the release velocity (px/s).
|
|
52
|
-
const handle = animator.animate({y: detent}, {spring
|
|
80
|
+
const handle = animator.animate({y: detent}, {spring, velocity: {y: 1200}});
|
|
53
81
|
|
|
54
82
|
// A finger lands mid-flight: where is the sheet right now, how fast?
|
|
55
83
|
const y = animator.get('y', event.timeStamp);
|
|
@@ -63,7 +91,7 @@ animator.decay(coast(animator, {x: velocityX}, {bounds: {x: {min: -maxScroll, ma
|
|
|
63
91
|
// scale falls at 0.16/s and the platter follows it on a spring. Press
|
|
64
92
|
// feedback has no fade of its own, so it is skipped under Reduce Motion.
|
|
65
93
|
if (animator.reducedMotion() === 'off') {
|
|
66
|
-
const ramp = solveSpringTowardRamp(toSpring(springs.
|
|
94
|
+
const ramp = solveSpringTowardRamp(toSpring(resolveMotion(sheet, springs.quickChange)), {
|
|
67
95
|
from: 1,
|
|
68
96
|
target: 1,
|
|
69
97
|
slope: -0.16,
|
|
@@ -80,8 +108,13 @@ await handle.finished; // true if it ran to the end, false if interrupted
|
|
|
80
108
|
- `get` / `getVelocity` evaluate the curves; the DOM is never read.
|
|
81
109
|
- Promotion: every animation the animator creates, and every `set`, gives its
|
|
82
110
|
channels a compositing layer in the same task (inline `will-change`, merged
|
|
83
|
-
with the element's own), cleared 500 ms after the last motion.
|
|
84
|
-
|
|
111
|
+
with the element's own), cleared 500 ms after the last motion.
|
|
112
|
+
`set(values, {promote: false})` writes without one, for a one-off switch
|
|
113
|
+
that must not give its element a layer. Mobile Safari
|
|
114
|
+
needs it to run a curve through a blocked main thread. A pseudo-element is
|
|
115
|
+
promoted through `--astryx-motion-will-change-<pseudo>` on its host; its
|
|
116
|
+
style opts in with
|
|
117
|
+
`willChange: 'var(--astryx-motion-will-change-before, auto)'`.
|
|
85
118
|
- `atRest(properties)` resolves once none of them is moving, after the last
|
|
86
119
|
curve ends, whoever started it.
|
|
87
120
|
- `rebase({y: -shift})` moves properties at once, as a layout shift does; a
|
|
@@ -93,11 +126,19 @@ await handle.finished; // true if it ran to the end, false if interrupted
|
|
|
93
126
|
velocity unless a velocity is handed in, so retargeting is continuous
|
|
94
127
|
(`handle.retarget(to)` keeps the call's spring).
|
|
95
128
|
- A call from rest gets no start time, so the browser starts it when it
|
|
96
|
-
commits it, as Core Animation does:
|
|
97
|
-
|
|
98
|
-
|
|
129
|
+
commits it, as Core Animation does: a block before that frame delays the
|
|
130
|
+
motion instead of skipping into it. WebKit dates the start at the frame
|
|
131
|
+
before the block, so when the task that created the animations (a
|
|
132
|
+
presented call's second frame) runs on over two frames, the start moves to
|
|
133
|
+
the call's first read after it, with every call of that task. Everything
|
|
134
|
+
the call starts shares that start
|
|
99
135
|
(`handle.started`); a retarget keeps an explicit one, and `{at}` puts
|
|
100
|
-
several animators on one clock.
|
|
136
|
+
several animators on one clock. `{start: 'commit'}` lets the browser date
|
|
137
|
+
a retarget too; `{start: 'presented'}` waits two frames, until the
|
|
138
|
+
element at rest has been presented. `handle.curve(property)` is the curve
|
|
139
|
+
a call plays, for a companion to follow. `{additive: true}` retargets the
|
|
140
|
+
way UIKit does: the old curve keeps going and the change is added on top,
|
|
141
|
+
in one animation.
|
|
101
142
|
- Reduced Motion (`prefers-reduced-motion: reduce`, design:reduced-motion):
|
|
102
143
|
every `animate` and `play` is replaced and nothing moves, scales or
|
|
103
144
|
springs. On a coarse primary pointer, or for a call started by a touch
|
|
@@ -121,14 +162,24 @@ await handle.finished; // true if it ran to the end, false if interrupted
|
|
|
121
162
|
- `animatorFor(element)` returns the one animator for an element, so code
|
|
122
163
|
that animates it from several places (a swipe on x, a removal on y)
|
|
123
164
|
composes in one `translate` track.
|
|
165
|
+
- `createAnimator(dialog, {pseudoElement: '::backdrop'})` drives a
|
|
166
|
+
pseudo-element; with no inline style to hold it, a static filling animation
|
|
167
|
+
holds its end value until the next animation replaces it, while the
|
|
168
|
+
pseudo-element exists. A dialog's `::backdrop` is made again each time the
|
|
169
|
+
dialog opens, so a presentation `set`s its starting value right after
|
|
170
|
+
`showModal()`, in the same task (a `set` before it lands on the backdrop
|
|
171
|
+
the open replaces).
|
|
124
172
|
|
|
125
173
|
### How it stays on the compositor
|
|
126
174
|
|
|
127
|
-
Each curve is baked into keyframes,
|
|
128
|
-
interpolation is within
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
the
|
|
175
|
+
Each curve is baked into keyframes on a 30 Hz grid, refined until linear
|
|
176
|
+
interpolation is within each channel's tolerance (`SAMPLE_TOLERANCE`, a
|
|
177
|
+
quarter pixel for a move), and played with `easing: linear` on one start
|
|
178
|
+
time. The element's inline style holds the
|
|
179
|
+
value the curve starts from, where the element is, never where it is going;
|
|
180
|
+
the keyframes hold the end state for a minute past the curve's end
|
|
181
|
+
(`END_HOLD_MS`), and the main thread retires a finished animation as soon as
|
|
182
|
+
it runs after that end, writing the end values inline in the same task. So the
|
|
132
183
|
frame an animation ends needs no main thread and shows no flicker, even when
|
|
133
184
|
the main thread is blocked as the curve ends (WebKit's compositor otherwise
|
|
134
185
|
falls back to the last value its main thread committed, mid-flight).
|
|
@@ -161,6 +212,35 @@ simulation of the deceleration rate and to WWDC18's projection function;
|
|
|
161
212
|
`rubberBand.ts` to UIScrollView's overscroll measured on the simulator.
|
|
162
213
|
`uikit/values.test.ts` plays the table's values through this math.
|
|
163
214
|
|
|
215
|
+
## Browser proofs
|
|
216
|
+
|
|
217
|
+
`__tests__/animator.interaction.browser.spec.ts` runs on the interaction
|
|
218
|
+
harness: the real animator, bundled from source onto a blank fixture page, in
|
|
219
|
+
Chromium and WebKit on the phone profile.
|
|
220
|
+
|
|
221
|
+
- A slow spring keeps advancing on every screencast frame while the main
|
|
222
|
+
thread is blocked for 1 s, and every frame sits on the analytic curve with
|
|
223
|
+
one consistent time offset.
|
|
224
|
+
- A spring that ends inside the block keeps showing its end state. Without the
|
|
225
|
+
animator's end-state hold, WebKit falls back to a mid-flight value.
|
|
226
|
+
- No Layout or Paint runs while it animates (Chromium trace).
|
|
227
|
+
- Seeked to fixed times, the engine plays the analytic curve within the
|
|
228
|
+
sampling tolerance, with every channel on one start time.
|
|
229
|
+
- A finished animation leaves the element within a frame or two of the curve's
|
|
230
|
+
end.
|
|
231
|
+
- A dialog's `::backdrop` follows the curve when seeked and holds its end
|
|
232
|
+
state.
|
|
233
|
+
- A scope that sets `springs.settle`'s variable changes nothing: the per-role
|
|
234
|
+
tables stay internal (DEC-15), so the engine plays the table's spring there
|
|
235
|
+
too.
|
|
236
|
+
|
|
237
|
+
```
|
|
238
|
+
pnpm test:interaction packages/core/src/motion
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
Where WebKit cannot launch on the host, the harness's container script runs
|
|
242
|
+
it. The iOS Safari check is the same proof on the iOS simulator.
|
|
243
|
+
|
|
164
244
|
## Sources
|
|
165
245
|
|
|
166
246
|
Every value in `uikit/` carries its source next to it, as a JSDoc tag on the
|