@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
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @file PressTracker.ts
|
|
5
|
+
* @input Touches the arena delivers to a pressable view (TouchConsumer)
|
|
6
|
+
* @output Exports createPressTracker and its PressTracker interface
|
|
7
|
+
* (UIControl's touch tracking, built by a factory per
|
|
8
|
+
* architecture:react-component-runtime INV13), its options, the
|
|
9
|
+
* control event type, and PRESS_PROFILES (a control's and a table cell's
|
|
10
|
+
* tracking and release clock)
|
|
11
|
+
* @position View-level consumer of packages/core/src/gestures: what a
|
|
12
|
+
* UIControl does with the touches no gesture recognizer took
|
|
13
|
+
*
|
|
14
|
+
* UIControl semantics, event for event:
|
|
15
|
+
*
|
|
16
|
+
* - `touchDown` when the finger lands; the highlight comes on in the same
|
|
17
|
+
* frame, unless the control sits in a scroller, where it waits
|
|
18
|
+
* `contentTouchDelay` (UIScrollView.delaysContentTouches) so a flick
|
|
19
|
+
* paints nothing.
|
|
20
|
+
* - `touchDragInside` / `touchDragOutside` on every move, `touchDragExit` /
|
|
21
|
+
* `touchDragEnter` when the finger crosses the control's bounds EXPANDED
|
|
22
|
+
* by `trackingExpansion` (a fingertip dragged a little off a button is
|
|
23
|
+
* still on it). The highlight follows inside / outside.
|
|
24
|
+
* - `touchUpInside` / `touchUpOutside` at the lift. A tap quicker than the
|
|
25
|
+
* scroller delay shows the highlight at the lift for `quickTapFlash`.
|
|
26
|
+
* - `touchCancel` when a recognizer took the touch (`cancelsTouchesInView`)
|
|
27
|
+
* or the browser took it to scroll: the highlight goes at once, with no
|
|
28
|
+
* release, one frame before the content moves.
|
|
29
|
+
*
|
|
30
|
+
* Two profiles (PRESS_PROFILES) cover what UIKit does:
|
|
31
|
+
*
|
|
32
|
+
* - `control` (a button, a switch): as above.
|
|
33
|
+
* - `cell` (a table or collection row): the highlight waits the
|
|
34
|
+
* content-touch delay inside a scroll view and comes on at once outside one
|
|
35
|
+
* (`spec:AST-094` FR11), travel past the pan hysteresis cancels the press
|
|
36
|
+
* for good (the scroll view took the touch), and a quicker tap highlights
|
|
37
|
+
* at the lift straight into the release, with no flash.
|
|
38
|
+
*
|
|
39
|
+
* And UIControl's iOS 6 rule: a single-finger single tap recognizer on an
|
|
40
|
+
* ANCESTOR does not beat the control's own action for a touch on it (the
|
|
41
|
+
* default veto; `vetoesAncestorRecognizer` replaces it, as a slider vetoes a
|
|
42
|
+
* pan along its track).
|
|
43
|
+
*
|
|
44
|
+
* The bounds are read once, when the finger lands; nothing reads layout
|
|
45
|
+
* during the press. Activation stays the browser's click, which the arena
|
|
46
|
+
* swallows for a touch a recognizer took.
|
|
47
|
+
*/
|
|
48
|
+
|
|
49
|
+
import { UIKIT_GESTURES } from "../motion/uikit/gestures.js";
|
|
50
|
+
import { timing } from "../motion/uikit/timing.js";
|
|
51
|
+
import { travel } from "./geometry.js";
|
|
52
|
+
const PRESS = UIKIT_GESTURES.press;
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* How a kind of pressable tracks a finger and how long its release takes.
|
|
56
|
+
*/
|
|
57
|
+
|
|
58
|
+
export const PRESS_PROFILES = {
|
|
59
|
+
/** UIControl: same-frame highlight outside scrollers, 70 pt tracking. */
|
|
60
|
+
control: {
|
|
61
|
+
highlightDelay: 'inScrollers',
|
|
62
|
+
quickTapFlash: PRESS.quickTapFlash.value,
|
|
63
|
+
// The shared press styles release every surface on the deselect clock
|
|
64
|
+
// until a control runs its own release (UIButton's 250 ms), so a
|
|
65
|
+
// painter's `fading` never outlasts the fade it shows.
|
|
66
|
+
releaseMs: timing.press.highlightOutMs
|
|
67
|
+
},
|
|
68
|
+
/**
|
|
69
|
+
* A table or collection cell: inside a scroll view it highlights after the
|
|
70
|
+
* content-touch delay, outside one at once (AST-094 FR11: the delay applies
|
|
71
|
+
* only inside scroll views); cancelled by the scroll.
|
|
72
|
+
*/
|
|
73
|
+
cell: {
|
|
74
|
+
highlightDelay: 'inScrollers',
|
|
75
|
+
cancelTravel: UIKIT_GESTURES.pan.hysteresis.value,
|
|
76
|
+
quickTapFlash: 0,
|
|
77
|
+
releaseMs: timing.press.highlightOutMs
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* UIButton's rule, the tracker's default ancestor veto: an ancestor's
|
|
82
|
+
* single-finger single tap. A tap is told apart by its `kind`
|
|
83
|
+
* (`architecture:react-component-runtime` INV13).
|
|
84
|
+
*/
|
|
85
|
+
export function vetoesSingleTap(recognizer) {
|
|
86
|
+
if (recognizer.kind !== 'tap') {
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
const tap = recognizer;
|
|
90
|
+
return tap.numberOfTapsRequired === 1 && tap.numberOfTouchesRequired === 1;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* A control's touch tracking, the gesture host's consumer for one element
|
|
95
|
+
* (UIControl's `beginTracking` / `continueTracking` / `endTracking`): it
|
|
96
|
+
* reports control events and the highlight. Built by
|
|
97
|
+
* {@link createPressTracker}.
|
|
98
|
+
*/
|
|
99
|
+
|
|
100
|
+
/** Track a control's touches (see {@link PressTracker}). */
|
|
101
|
+
export function createPressTracker(options) {
|
|
102
|
+
let touchId = null;
|
|
103
|
+
let bounds = null;
|
|
104
|
+
let highlightTimer = null;
|
|
105
|
+
let flashTimer = null;
|
|
106
|
+
/** A pending highlight whose finger travelled: it will never paint. */
|
|
107
|
+
let isPendingDead = false;
|
|
108
|
+
const state = {
|
|
109
|
+
isHighlighted: false,
|
|
110
|
+
isTracking: false,
|
|
111
|
+
isTouchInside: false
|
|
112
|
+
};
|
|
113
|
+
const contains = touch => {
|
|
114
|
+
if (bounds == null) {
|
|
115
|
+
return true;
|
|
116
|
+
}
|
|
117
|
+
const margin = tracker.trackingExpansion;
|
|
118
|
+
return touch.x >= bounds.left - margin && touch.x <= bounds.right + margin && touch.y >= bounds.top - margin && touch.y <= bounds.bottom + margin;
|
|
119
|
+
};
|
|
120
|
+
const emit = (event, touch) => {
|
|
121
|
+
options.onControlEvent?.(event, touch);
|
|
122
|
+
};
|
|
123
|
+
const setHighlighted = value => {
|
|
124
|
+
if (state.isHighlighted === value) {
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
state.isHighlighted = value;
|
|
128
|
+
options.onHighlightChange?.(value);
|
|
129
|
+
};
|
|
130
|
+
const clearHighlightTimer = () => {
|
|
131
|
+
if (highlightTimer != null) {
|
|
132
|
+
clearTimeout(highlightTimer);
|
|
133
|
+
highlightTimer = null;
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
const clearFlash = () => {
|
|
137
|
+
if (flashTimer != null) {
|
|
138
|
+
clearTimeout(flashTimer);
|
|
139
|
+
flashTimer = null;
|
|
140
|
+
}
|
|
141
|
+
};
|
|
142
|
+
const finish = () => {
|
|
143
|
+
touchId = null;
|
|
144
|
+
state.isTracking = false;
|
|
145
|
+
state.isTouchInside = false;
|
|
146
|
+
bounds = null;
|
|
147
|
+
};
|
|
148
|
+
const touchCancelled = touch => {
|
|
149
|
+
if (touch.id !== touchId) {
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
clearHighlightTimer();
|
|
153
|
+
emit('touchCancel', touch);
|
|
154
|
+
setHighlighted(false);
|
|
155
|
+
finish();
|
|
156
|
+
};
|
|
157
|
+
const tracker = {
|
|
158
|
+
get isHighlighted() {
|
|
159
|
+
return state.isHighlighted;
|
|
160
|
+
},
|
|
161
|
+
get isTracking() {
|
|
162
|
+
return state.isTracking;
|
|
163
|
+
},
|
|
164
|
+
get isTouchInside() {
|
|
165
|
+
return state.isTouchInside;
|
|
166
|
+
},
|
|
167
|
+
trackingExpansion: options.trackingExpansion ?? UIKIT_GESTURES.control.trackingExpansion.value,
|
|
168
|
+
isEnabled() {
|
|
169
|
+
return options.isEnabled?.() !== false;
|
|
170
|
+
},
|
|
171
|
+
touchBegan(touch) {
|
|
172
|
+
if (touchId != null || options.isEnabled?.() === false ||
|
|
173
|
+
// The scroll brake is a finger's (`spec:AST-094` FR11, DEC-21).
|
|
174
|
+
touch.pointerType === 'touch' && options.isBraking?.(touch) === true) {
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
clearFlash();
|
|
178
|
+
touchId = touch.id;
|
|
179
|
+
bounds = options.getBounds();
|
|
180
|
+
state.isTracking = true;
|
|
181
|
+
state.isTouchInside = true;
|
|
182
|
+
isPendingDead = false;
|
|
183
|
+
emit('touchDown', touch);
|
|
184
|
+
const delay = options.highlightDelay ?? 'inScrollers';
|
|
185
|
+
const delays = touch.pointerType === 'touch' && (delay === 'always' || delay === 'inScrollers' && touch.scroll?.isInsideScroller === true);
|
|
186
|
+
if (delays) {
|
|
187
|
+
highlightTimer = setTimeout(() => {
|
|
188
|
+
highlightTimer = null;
|
|
189
|
+
if (state.isTouchInside) {
|
|
190
|
+
setHighlighted(true);
|
|
191
|
+
}
|
|
192
|
+
}, PRESS.contentTouchDelay.value);
|
|
193
|
+
} else {
|
|
194
|
+
setHighlighted(true);
|
|
195
|
+
}
|
|
196
|
+
},
|
|
197
|
+
touchMoved(touch) {
|
|
198
|
+
if (touch.id !== touchId) {
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
201
|
+
const cancelTravel = options.cancelTravel;
|
|
202
|
+
if (cancelTravel != null && travel(touch) > cancelTravel) {
|
|
203
|
+
// A cell's scroll view took the touch: the press is over.
|
|
204
|
+
touchCancelled(touch);
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
if (highlightTimer != null && travel(touch) > PRESS.slop.value) {
|
|
208
|
+
// A finger travelling before the delay ran out is scrolling: the
|
|
209
|
+
// press it began never paints, as a flick on a list paints nothing.
|
|
210
|
+
clearTimeout(highlightTimer);
|
|
211
|
+
highlightTimer = null;
|
|
212
|
+
isPendingDead = true;
|
|
213
|
+
}
|
|
214
|
+
const inside = contains(touch);
|
|
215
|
+
if (inside !== state.isTouchInside) {
|
|
216
|
+
state.isTouchInside = inside;
|
|
217
|
+
emit(inside ? 'touchDragEnter' : 'touchDragExit', touch);
|
|
218
|
+
if (highlightTimer == null && !isPendingDead) {
|
|
219
|
+
setHighlighted(inside);
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
emit(inside ? 'touchDragInside' : 'touchDragOutside', touch);
|
|
223
|
+
},
|
|
224
|
+
touchEnded(touch) {
|
|
225
|
+
if (touch.id !== touchId) {
|
|
226
|
+
return;
|
|
227
|
+
}
|
|
228
|
+
const inside = contains(touch);
|
|
229
|
+
const wasPending = highlightTimer != null;
|
|
230
|
+
clearHighlightTimer();
|
|
231
|
+
emit(inside ? 'touchUpInside' : 'touchUpOutside', touch);
|
|
232
|
+
const flash = options.quickTapFlash ?? PRESS.quickTapFlash.value;
|
|
233
|
+
if (wasPending && inside) {
|
|
234
|
+
// Quicker than the delay: the highlight shows at the lift, for the
|
|
235
|
+
// flash, or (a cell) straight into the release.
|
|
236
|
+
setHighlighted(true);
|
|
237
|
+
if (flash > 0) {
|
|
238
|
+
flashTimer = setTimeout(() => {
|
|
239
|
+
flashTimer = null;
|
|
240
|
+
setHighlighted(false);
|
|
241
|
+
}, flash);
|
|
242
|
+
} else {
|
|
243
|
+
setHighlighted(false);
|
|
244
|
+
}
|
|
245
|
+
} else {
|
|
246
|
+
setHighlighted(false);
|
|
247
|
+
}
|
|
248
|
+
finish();
|
|
249
|
+
},
|
|
250
|
+
touchCancelled,
|
|
251
|
+
allowsAncestorRecognizer(recognizer) {
|
|
252
|
+
const candidate = recognizer;
|
|
253
|
+
if (candidate.view != null && candidate.view === options.view) {
|
|
254
|
+
return true;
|
|
255
|
+
}
|
|
256
|
+
const vetoes = options.vetoesAncestorRecognizer ?? vetoesSingleTap;
|
|
257
|
+
return !vetoes(candidate);
|
|
258
|
+
},
|
|
259
|
+
dispose() {
|
|
260
|
+
clearHighlightTimer();
|
|
261
|
+
clearFlash();
|
|
262
|
+
setHighlighted(false);
|
|
263
|
+
finish();
|
|
264
|
+
}
|
|
265
|
+
};
|
|
266
|
+
return tracker;
|
|
267
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { type NativeTouchBehavior } from './GestureRecognizer.js';
|
|
2
|
+
import { PanGestureRecognizer, type PanGestureRecognizerOptions } from './PanGestureRecognizer.js';
|
|
3
|
+
import type { GestureEventContext, GestureTouch } from './types.js';
|
|
4
|
+
/**
|
|
5
|
+
* An edge by writing direction: under RTL the leading edge is the right one.
|
|
6
|
+
* Top and bottom edges land with their first user.
|
|
7
|
+
*/
|
|
8
|
+
export type ScreenEdge = 'leading' | 'trailing';
|
|
9
|
+
/** A physical horizontal edge of the viewport. */
|
|
10
|
+
type PhysicalEdge = 'left' | 'right';
|
|
11
|
+
/**
|
|
12
|
+
* A screen-edge pan is a finger's: it takes no `allowedPointerTypes`
|
|
13
|
+
* (`spec:AST-094` FR43).
|
|
14
|
+
*/
|
|
15
|
+
export interface ScreenEdgePanGestureRecognizerOptions extends Omit<PanGestureRecognizerOptions, 'direction' | 'allowedPointerTypes'> {
|
|
16
|
+
/** The edges a touch may start from. @default ['leading'] */
|
|
17
|
+
edges?: ReadonlyArray<ScreenEdge>;
|
|
18
|
+
/** Width of the band at each edge, px. */
|
|
19
|
+
edgeRegion?: number;
|
|
20
|
+
}
|
|
21
|
+
export declare class ScreenEdgePanGestureRecognizer extends PanGestureRecognizer {
|
|
22
|
+
get kind(): PanGestureRecognizer['kind'];
|
|
23
|
+
edges: ReadonlyArray<ScreenEdge>;
|
|
24
|
+
edgeRegion: number;
|
|
25
|
+
/** The physical edge the current gesture started from. */
|
|
26
|
+
activeEdge: PhysicalEdge | null;
|
|
27
|
+
/**
|
|
28
|
+
* @internal Set by the host while attached: called when the edge-zone
|
|
29
|
+
* answer changes, so the element's `touch-action` follows it
|
|
30
|
+
* (spec:AST-094 FR19, DEC-22).
|
|
31
|
+
*/
|
|
32
|
+
onTouchBehaviorChange: (() => void) | null;
|
|
33
|
+
/** The hysteresis where the pan takes its axis (UIKit's 15 px). */
|
|
34
|
+
private readonly edgeHysteresis;
|
|
35
|
+
/** What the pan measured of its view (see EdgeLayout), until a layout change. */
|
|
36
|
+
private layout;
|
|
37
|
+
constructor(options?: ScreenEdgePanGestureRecognizerOptions);
|
|
38
|
+
/**
|
|
39
|
+
* The pan takes the horizontal axis only in its edge zone, a view within
|
|
40
|
+
* the band of an edge it watches; elsewhere it leaves the browser every
|
|
41
|
+
* touch behavior, so the author's scrolling is untouched (spec:AST-094
|
|
42
|
+
* FR18), never claiming across a whole wider element.
|
|
43
|
+
*/
|
|
44
|
+
get nativeTouchBehavior(): NativeTouchBehavior;
|
|
45
|
+
/**
|
|
46
|
+
* @internal Whether the edge zone depends on the viewport's width: the pan
|
|
47
|
+
* watches the right side, whose band moves with the viewport, so the host
|
|
48
|
+
* reports a viewport resize to it as well as its own box's (FR19, FR24).
|
|
49
|
+
*/
|
|
50
|
+
get watchesViewport(): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* @internal The view's box may have changed (a resize): its edges' sides
|
|
53
|
+
* and the edge zone are measured again, and a changed answer calls
|
|
54
|
+
* onTouchBehaviorChange.
|
|
55
|
+
*/
|
|
56
|
+
layoutChanged(): void;
|
|
57
|
+
protected touchesBegan(touches: ReadonlyArray<GestureTouch>, event: GestureEventContext): void;
|
|
58
|
+
/**
|
|
59
|
+
* The physical sides the pan's edges resolve to under the view's writing
|
|
60
|
+
* direction, and the sides whose band the view lies within, measured
|
|
61
|
+
* together once until a layout change: the view starts at that side and
|
|
62
|
+
* reaches no farther than `edgeRegion` from it, within layout's rounding
|
|
63
|
+
* (a strip authored at the 40.2 px region lays out at 40.203 px, on
|
|
64
|
+
* 1/64 px). A view that cannot be measured lies within none.
|
|
65
|
+
*/
|
|
66
|
+
private measured;
|
|
67
|
+
protected reset(): void;
|
|
68
|
+
private edgeAt;
|
|
69
|
+
}
|
|
70
|
+
export {};
|
|
71
|
+
//# sourceMappingURL=ScreenEdgePanGestureRecognizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScreenEdgePanGestureRecognizer.d.ts","sourceRoot":"","sources":["../../src/gestures/ScreenEdgePanGestureRecognizer.ts"],"names":[],"mappings":"AAsCA,OAAO,EAAmB,KAAK,mBAAmB,EAAC,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EACL,oBAAoB,EACpB,KAAK,2BAA2B,EACjC,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAC,mBAAmB,EAAE,YAAY,EAAC,MAAM,SAAS,CAAC;AAS/D;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,UAAU,CAAC;AAEhD,kDAAkD;AAClD,KAAK,YAAY,GAAG,MAAM,GAAG,OAAO,CAAC;AAarC;;;GAGG;AACH,MAAM,WAAW,qCAAsC,SAAQ,IAAI,CACjE,2BAA2B,EAC3B,WAAW,GAAG,qBAAqB,CACpC;IACC,6DAA6D;IAC7D,KAAK,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAClC,0CAA0C;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,8BAA+B,SAAQ,oBAAoB;IACtE,IAAa,IAAI,IAAI,oBAAoB,CAAC,MAAM,CAAC,CAEhD;IAED,KAAK,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,0DAA0D;IAC1D,UAAU,EAAE,YAAY,GAAG,IAAI,CAAQ;IACvC;;;;OAIG;IACH,qBAAqB,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAQ;IAClD,mEAAmE;IACnE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,iFAAiF;IACjF,OAAO,CAAC,MAAM,CAA2B;gBAE7B,OAAO,GAAE,qCAA0C;IAe/D;;;;;OAKG;IACH,IAAa,mBAAmB,IAAI,mBAAmB,CAWtD;IAED;;;;OAIG;IACH,IAAI,eAAe,IAAI,OAAO,CAE7B;IAED;;;;OAIG;IACH,aAAa,IAAI,IAAI;cAcF,YAAY,CAC7B,OAAO,EAAE,aAAa,CAAC,YAAY,CAAC,EACpC,KAAK,EAAE,mBAAmB,GACzB,IAAI;IAiCP;;;;;;;OAOG;IACH,OAAO,CAAC,QAAQ;cAyBG,KAAK,IAAI,IAAI;IAKhC,OAAO,CAAC,MAAM;CAaf"}
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @file ScreenEdgePanGestureRecognizer.ts
|
|
5
|
+
* @input Touches from a GestureArena; the viewport size and writing
|
|
6
|
+
* direction from its environment
|
|
7
|
+
* @output Exports ScreenEdgePanGestureRecognizer
|
|
8
|
+
* (UIScreenEdgePanGestureRecognizer), its options and edge type
|
|
9
|
+
* @position Continuous recognizer of packages/core/src/gestures, a pan that
|
|
10
|
+
* only starts from a band at the edge of the viewport
|
|
11
|
+
*
|
|
12
|
+
* A touch that lands outside every requested band fails at once, so a
|
|
13
|
+
* recognizer that requires this one to fail is not held up by a touch in the
|
|
14
|
+
* middle of the screen. Inside a band, the pan begins on movement away from
|
|
15
|
+
* that edge. `leading` and `trailing` resolve against the view's writing
|
|
16
|
+
* direction: under RTL the leading edge is the right one, as the
|
|
17
|
+
* interactive pop gesture's is.
|
|
18
|
+
*
|
|
19
|
+
* Attach it to the edge zone: an element that lies within the band at its
|
|
20
|
+
* edge. There the pan takes the horizontal axis from the browser, which has
|
|
21
|
+
* nothing to scroll in so thin a band, so a touch in the band decides at
|
|
22
|
+
* UIKit's 15 px screen-edge hysteresis. On any other view, whose
|
|
23
|
+
* `touch-action` cannot claim per touch, it leaves the browser every touch
|
|
24
|
+
* behavior, so the author's scrolling there is untouched, and a touch in the
|
|
25
|
+
* band decides at FR19's 10 px like every other claim (spec:AST-094 FR18,
|
|
26
|
+
* DEC-22). The edges' physical sides and the edge zone are measured once,
|
|
27
|
+
* together, and serve both the element's `touch-action` and the touch-down
|
|
28
|
+
* decision; the host reports a layout change (layoutChanged), and a changed
|
|
29
|
+
* answer is announced (onTouchBehaviorChange) so `touch-action` follows it
|
|
30
|
+
* (FR19). The writing direction is read again at each touch-down: a view
|
|
31
|
+
* switched to RTL in place, with no resize, is measured again there and the
|
|
32
|
+
* change announced, so a `leading` back swipe follows the new leading edge
|
|
33
|
+
* (`design:bidirectionality` DR13). That touch landed under the touch-action
|
|
34
|
+
* from before, so it decides at FR19's 10 px unless that one claimed the
|
|
35
|
+
* axis.
|
|
36
|
+
*/
|
|
37
|
+
|
|
38
|
+
import { UIKIT_PAN, UIKIT_SCREEN_EDGE_PAN } from "../motion/uikit/gestures.js";
|
|
39
|
+
import { ALL_NATIVE_TOUCH } from "./GestureRecognizer.js";
|
|
40
|
+
import { PanGestureRecognizer } from "./PanGestureRecognizer.js";
|
|
41
|
+
/**
|
|
42
|
+
* How far past `edgeRegion` a view still counts as the edge zone, px: layout
|
|
43
|
+
* snaps sizes to 1/64 px, so a strip authored at the region measures a hair
|
|
44
|
+
* wider; half a pixel takes that and nothing a pixel wider.
|
|
45
|
+
*/
|
|
46
|
+
const EDGE_ZONE_TOLERANCE = 0.5;
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* An edge by writing direction: under RTL the leading edge is the right one.
|
|
50
|
+
* Top and bottom edges land with their first user.
|
|
51
|
+
*/
|
|
52
|
+
|
|
53
|
+
/** A physical horizontal edge of the viewport. */
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* What the pan measures of its view, once until a layout change: the
|
|
57
|
+
* writing direction it read, the physical sides its edges resolve to under
|
|
58
|
+
* that direction, and the sides whose band the view lies within.
|
|
59
|
+
*/
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* A screen-edge pan is a finger's: it takes no `allowedPointerTypes`
|
|
63
|
+
* (`spec:AST-094` FR43).
|
|
64
|
+
*/
|
|
65
|
+
|
|
66
|
+
export class ScreenEdgePanGestureRecognizer extends PanGestureRecognizer {
|
|
67
|
+
get kind() {
|
|
68
|
+
return 'screenEdgePan';
|
|
69
|
+
}
|
|
70
|
+
/** The physical edge the current gesture started from. */
|
|
71
|
+
activeEdge = null;
|
|
72
|
+
/**
|
|
73
|
+
* @internal Set by the host while attached: called when the edge-zone
|
|
74
|
+
* answer changes, so the element's `touch-action` follows it
|
|
75
|
+
* (spec:AST-094 FR19, DEC-22).
|
|
76
|
+
*/
|
|
77
|
+
onTouchBehaviorChange = null;
|
|
78
|
+
/** The hysteresis where the pan takes its axis (UIKit's 15 px). */
|
|
79
|
+
|
|
80
|
+
/** What the pan measured of its view (see EdgeLayout), until a layout change. */
|
|
81
|
+
layout = null;
|
|
82
|
+
constructor(options = {}) {
|
|
83
|
+
super({
|
|
84
|
+
maximumNumberOfTouches: 1,
|
|
85
|
+
hysteresis: UIKIT_SCREEN_EDGE_PAN.hysteresis.value,
|
|
86
|
+
...options,
|
|
87
|
+
// A finger's only: under a mouse, a trackpad or a pen the screen-edge
|
|
88
|
+
// pan stays off (`spec:AST-094` FR43), whatever a caller passes.
|
|
89
|
+
allowedPointerTypes: ['touch']
|
|
90
|
+
});
|
|
91
|
+
this.edges = options.edges ?? ['leading'];
|
|
92
|
+
this.edgeRegion = options.edgeRegion ?? UIKIT_SCREEN_EDGE_PAN.edgeRegion.value;
|
|
93
|
+
this.edgeHysteresis = this.hysteresis;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* The pan takes the horizontal axis only in its edge zone, a view within
|
|
98
|
+
* the band of an edge it watches; elsewhere it leaves the browser every
|
|
99
|
+
* touch behavior, so the author's scrolling is untouched (spec:AST-094
|
|
100
|
+
* FR18), never claiming across a whole wider element.
|
|
101
|
+
*/
|
|
102
|
+
get nativeTouchBehavior() {
|
|
103
|
+
const {
|
|
104
|
+
watched,
|
|
105
|
+
zone
|
|
106
|
+
} = this.measured();
|
|
107
|
+
if (!watched.some(edge => zone.has(edge))) {
|
|
108
|
+
return ALL_NATIVE_TOUCH;
|
|
109
|
+
}
|
|
110
|
+
return {
|
|
111
|
+
panX: false,
|
|
112
|
+
panY: true,
|
|
113
|
+
pinchZoom: true,
|
|
114
|
+
doubleTapZoom: false
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* @internal Whether the edge zone depends on the viewport's width: the pan
|
|
120
|
+
* watches the right side, whose band moves with the viewport, so the host
|
|
121
|
+
* reports a viewport resize to it as well as its own box's (FR19, FR24).
|
|
122
|
+
*/
|
|
123
|
+
get watchesViewport() {
|
|
124
|
+
return this.measured().watched.includes('right');
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* @internal The view's box may have changed (a resize): its edges' sides
|
|
129
|
+
* and the edge zone are measured again, and a changed answer calls
|
|
130
|
+
* onTouchBehaviorChange.
|
|
131
|
+
*/
|
|
132
|
+
layoutChanged() {
|
|
133
|
+
const before = this.layout;
|
|
134
|
+
this.layout = null;
|
|
135
|
+
const after = this.measured();
|
|
136
|
+
if (before == null || before.watched.join() !== after.watched.join() || before.zone.size !== after.zone.size || [...after.zone].some(edge => !before.zone.has(edge))) {
|
|
137
|
+
this.onTouchBehaviorChange?.();
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
touchesBegan(touches, event) {
|
|
141
|
+
if (this.numberOfTouches === touches.length) {
|
|
142
|
+
// The touch-action the browser applies to this touch was derived from
|
|
143
|
+
// the layout in force as it landed: whether that claimed the axis.
|
|
144
|
+
const inForce = this.measured();
|
|
145
|
+
const claimedAxis = inForce.watched.some(side => inForce.zone.has(side));
|
|
146
|
+
// A direction switched in place (no resize) moves the leading edge:
|
|
147
|
+
// measure again, and announce it so touch-action follows for the next
|
|
148
|
+
// touch (DR13).
|
|
149
|
+
if (inForce.isRtl !== this.environment.isRtl(this.view)) {
|
|
150
|
+
this.layoutChanged();
|
|
151
|
+
}
|
|
152
|
+
const edge = this.edgeAt(touches[0]);
|
|
153
|
+
if (edge == null) {
|
|
154
|
+
this.setState('failed');
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
this.activeEdge = edge;
|
|
158
|
+
// On an element within the band, which takes the axis across the edge,
|
|
159
|
+
// a touch decides at UIKit's 15 px; on any other, which leaves the
|
|
160
|
+
// browser that axis, at FR19's 10 px, before the browser commits to a
|
|
161
|
+
// scroll (spec:AST-094 FR18, DEC-22). The answer is the one this
|
|
162
|
+
// touch's touch-action was derived from: a touch that measured again
|
|
163
|
+
// decides at 10 px unless the layout in force claimed the axis.
|
|
164
|
+
const offZone = !claimedAxis || !this.measured().zone.has(edge);
|
|
165
|
+
this.hysteresis = offZone ? Math.min(this.edgeHysteresis, UIKIT_PAN.hysteresis.value) : this.edgeHysteresis;
|
|
166
|
+
this.direction = edge === 'left' ? 'right' : 'left';
|
|
167
|
+
}
|
|
168
|
+
super.touchesBegan(touches, event);
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* The physical sides the pan's edges resolve to under the view's writing
|
|
173
|
+
* direction, and the sides whose band the view lies within, measured
|
|
174
|
+
* together once until a layout change: the view starts at that side and
|
|
175
|
+
* reaches no farther than `edgeRegion` from it, within layout's rounding
|
|
176
|
+
* (a strip authored at the 40.2 px region lays out at 40.203 px, on
|
|
177
|
+
* 1/64 px). A view that cannot be measured lies within none.
|
|
178
|
+
*/
|
|
179
|
+
measured() {
|
|
180
|
+
if (this.layout != null) {
|
|
181
|
+
return this.layout;
|
|
182
|
+
}
|
|
183
|
+
const isRtl = this.environment.isRtl(this.view);
|
|
184
|
+
const watched = this.edges.map(edge => edge === 'leading' !== isRtl ? 'left' : 'right');
|
|
185
|
+
const zone = new Set();
|
|
186
|
+
const rect = this.environment.viewRect?.(this.view);
|
|
187
|
+
if (rect != null && rect.width > 0) {
|
|
188
|
+
const {
|
|
189
|
+
width
|
|
190
|
+
} = this.environment.viewportSize();
|
|
191
|
+
const right = rect.left + rect.width;
|
|
192
|
+
const band = this.edgeRegion + EDGE_ZONE_TOLERANCE;
|
|
193
|
+
if (rect.left >= -EDGE_ZONE_TOLERANCE && right <= band) {
|
|
194
|
+
zone.add('left');
|
|
195
|
+
}
|
|
196
|
+
if (rect.left >= width - band && right <= width + EDGE_ZONE_TOLERANCE) {
|
|
197
|
+
zone.add('right');
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
this.layout = {
|
|
201
|
+
isRtl,
|
|
202
|
+
watched,
|
|
203
|
+
zone
|
|
204
|
+
};
|
|
205
|
+
return this.layout;
|
|
206
|
+
}
|
|
207
|
+
reset() {
|
|
208
|
+
super.reset();
|
|
209
|
+
this.activeEdge = null;
|
|
210
|
+
}
|
|
211
|
+
edgeAt(touch) {
|
|
212
|
+
const {
|
|
213
|
+
width
|
|
214
|
+
} = this.environment.viewportSize();
|
|
215
|
+
for (const physical of this.measured().watched) {
|
|
216
|
+
const inBand = physical === 'left' ? touch.startX <= this.edgeRegion : touch.startX >= width - this.edgeRegion;
|
|
217
|
+
if (inBand) {
|
|
218
|
+
return physical;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
return null;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { GestureRecognizer, type GestureRecognizerOptions, type NativeTouchBehavior } from './GestureRecognizer.js';
|
|
2
|
+
import type { GestureEventContext, GestureTouch } from './types.js';
|
|
3
|
+
export type SwipeDirection = 'left' | 'right' | 'up' | 'down';
|
|
4
|
+
export interface SwipeGestureRecognizerOptions extends GestureRecognizerOptions<SwipeGestureRecognizer> {
|
|
5
|
+
/** @default ['right'] */
|
|
6
|
+
direction?: SwipeDirection | ReadonlyArray<SwipeDirection>;
|
|
7
|
+
/** @default 1 */
|
|
8
|
+
numberOfTouchesRequired?: number;
|
|
9
|
+
minimumDistance?: number;
|
|
10
|
+
maximumDuration?: number;
|
|
11
|
+
maximumSecondaryMovement?: number;
|
|
12
|
+
}
|
|
13
|
+
export declare class SwipeGestureRecognizer extends GestureRecognizer {
|
|
14
|
+
get kind(): GestureRecognizer['kind'];
|
|
15
|
+
directions: ReadonlyArray<SwipeDirection>;
|
|
16
|
+
numberOfTouchesRequired: number;
|
|
17
|
+
minimumDistance: number;
|
|
18
|
+
maximumDuration: number;
|
|
19
|
+
maximumSecondaryMovement: number;
|
|
20
|
+
/** The direction of the recognized swipe. */
|
|
21
|
+
recognizedDirection: SwipeDirection | null;
|
|
22
|
+
private origin;
|
|
23
|
+
/** Directions this touch's path has ruled out. */
|
|
24
|
+
private readonly ruledOut;
|
|
25
|
+
/** The centroid at the previous move. */
|
|
26
|
+
private last;
|
|
27
|
+
constructor(options?: SwipeGestureRecognizerOptions);
|
|
28
|
+
get isDiscrete(): boolean;
|
|
29
|
+
get nativeTouchBehavior(): NativeTouchBehavior;
|
|
30
|
+
protected touchesBegan(touches: ReadonlyArray<GestureTouch>, event: GestureEventContext): void;
|
|
31
|
+
protected touchesMoved(): void;
|
|
32
|
+
/** Travel along and across `direction` from the origin to `point`. */
|
|
33
|
+
private project;
|
|
34
|
+
protected touchesEnded(): void;
|
|
35
|
+
protected reset(): void;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=SwipeGestureRecognizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SwipeGestureRecognizer.d.ts","sourceRoot":"","sources":["../../src/gestures/SwipeGestureRecognizer.ts"],"names":[],"mappings":"AAqBA,OAAO,EACL,iBAAiB,EACjB,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAC,mBAAmB,EAAE,YAAY,EAAQ,MAAM,SAAS,CAAC;AAEtE,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,MAAM,CAAC;AAE9D,MAAM,WAAW,6BAA8B,SAAQ,wBAAwB,CAAC,sBAAsB,CAAC;IACrG,yBAAyB;IACzB,SAAS,CAAC,EAAE,cAAc,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC;IAC3D,iBAAiB;IACjB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wBAAwB,CAAC,EAAE,MAAM,CAAC;CACnC;AAID,qBAAa,sBAAuB,SAAQ,iBAAiB;IAC3D,IAAa,IAAI,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAE7C;IAED,UAAU,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IAC1C,uBAAuB,EAAE,MAAM,CAAC;IAChC,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,wBAAwB,EAAE,MAAM,CAAC;IACjC,6CAA6C;IAC7C,mBAAmB,EAAE,cAAc,GAAG,IAAI,CAAQ;IAElD,OAAO,CAAC,MAAM,CAAuB;IACrC,kDAAkD;IAClD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;IACtD,yCAAyC;IACzC,OAAO,CAAC,IAAI,CAAsB;gBAEtB,OAAO,GAAE,6BAAkC;IAavD,IAAa,UAAU,IAAI,OAAO,CAEjC;IAED,IAAa,mBAAmB,IAAI,mBAAmB,CAatD;cAEkB,YAAY,CAC7B,OAAO,EAAE,aAAa,CAAC,YAAY,CAAC,EACpC,KAAK,EAAE,mBAAmB,GACzB,IAAI;cAmBY,YAAY,IAAI,IAAI;IAyCvC,sEAAsE;IACtE,OAAO,CAAC,OAAO;cAYI,YAAY,IAAI,IAAI;cAOpB,KAAK,IAAI,IAAI;CAMjC"}
|