@astryxdesign/core 0.7.7 → 0.7.8-canary.0d54fd3
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 +4 -1
- package/dist/AlertDialog/AlertDialog.d.ts.map +1 -1
- package/dist/AlertDialog/AlertDialog.js +46 -6
- package/dist/AppShell/AppShell.d.ts.map +1 -1
- package/dist/AppShell/AppShell.js +11 -3
- package/dist/BottomSheet/BottomSheet.d.ts.map +1 -1
- package/dist/BottomSheet/BottomSheet.js +1 -0
- package/dist/BottomSheet/BottomSheetPanel.d.ts.map +1 -1
- package/dist/BottomSheet/BottomSheetPanel.js +25 -4
- package/dist/BottomSheet/BottomSheetSwitcher.d.ts.map +1 -1
- package/dist/BottomSheet/BottomSheetSwitcher.js +5 -0
- package/dist/BottomSheet/useMobileKeyboard.d.ts.map +1 -1
- package/dist/BottomSheet/useMobileKeyboard.js +6 -0
- package/dist/BottomSheet/useSheetGestures.d.ts.map +1 -1
- package/dist/BottomSheet/useSheetGestures.js +12 -1
- package/dist/Button/Button.d.ts.map +1 -1
- package/dist/Button/Button.js +17 -1
- package/dist/Calendar/Calendar.d.ts.map +1 -1
- package/dist/Calendar/Calendar.js +18 -22
- package/dist/Calendar/getWeekdayHeaderNames.d.ts +16 -0
- package/dist/Calendar/getWeekdayHeaderNames.d.ts.map +1 -0
- package/dist/Calendar/getWeekdayHeaderNames.js +70 -0
- package/dist/Calendar/hooks/useCalendarDays.d.ts.map +1 -1
- package/dist/Calendar/hooks/useCalendarDays.js +2 -10
- package/dist/Calendar/{standaloneShortWeekdayNames.generated.d.ts → weekdayHeaderNames.generated.d.ts} +14 -14
- package/dist/Calendar/weekdayHeaderNames.generated.d.ts.map +1 -0
- package/dist/Calendar/{standaloneShortWeekdayNames.generated.js → weekdayHeaderNames.generated.js} +12 -12
- package/dist/Carousel/Carousel.d.ts.map +1 -1
- package/dist/Carousel/Carousel.js +2 -0
- package/dist/Chat/ChatComposerInput.d.ts.map +1 -1
- package/dist/Chat/ChatComposerInput.js +6 -1
- package/dist/Chat/ChatMessageList.d.ts.map +1 -1
- package/dist/Chat/ChatMessageList.js +2 -1
- package/dist/Chat/useChatDictation.d.ts.map +1 -1
- package/dist/Chat/useChatDictation.js +2 -0
- package/dist/Chat/useChatNewMessages.js +1 -1
- package/dist/Chat/useChatStreamScroll.d.ts.map +1 -1
- package/dist/Chat/useChatStreamScroll.js +2 -0
- package/dist/Chat/useSpeechRecognition.d.ts.map +1 -1
- package/dist/Chat/useSpeechRecognition.js +3 -0
- package/dist/Chat/useTriggerMenu.js +1 -1
- package/dist/CheckboxInput/CheckboxInput.d.ts.map +1 -1
- package/dist/CheckboxInput/CheckboxInput.js +17 -12
- package/dist/CheckboxList/CheckboxList.d.ts +8 -1
- package/dist/CheckboxList/CheckboxList.d.ts.map +1 -1
- package/dist/CheckboxList/CheckboxList.js +2 -0
- package/dist/CodeBlock/CodeBlock.d.ts +10 -1
- package/dist/CodeBlock/CodeBlock.d.ts.map +1 -1
- package/dist/CodeBlock/CodeBlock.js +28 -11
- package/dist/CommandPalette/CommandPalette.d.ts.map +1 -1
- package/dist/CommandPalette/CommandPalette.js +2 -0
- package/dist/CommandPalette/CommandPaletteItem.d.ts.map +1 -1
- package/dist/CommandPalette/CommandPaletteItem.js +2 -0
- package/dist/ComplexSelector/ComplexSelector.d.ts +4 -1
- package/dist/ComplexSelector/ComplexSelector.d.ts.map +1 -1
- package/dist/ComplexSelector/ComplexSelector.js +14 -4
- package/dist/ContextMenu/ContextMenu.js +2 -2
- package/dist/DateInput/MonthScroller.d.ts.map +1 -1
- package/dist/DateInput/MonthScroller.js +5 -2
- package/dist/DateInput/PickerWheel.d.ts +19 -0
- package/dist/DateInput/PickerWheel.d.ts.map +1 -0
- package/dist/DateInput/PickerWheel.js +625 -0
- package/dist/DateInput/TouchDateField.d.ts.map +1 -1
- package/dist/DateInput/TouchDateField.js +9 -30
- package/dist/DateInput/Wheel.d.ts +18 -37
- package/dist/DateInput/Wheel.d.ts.map +1 -1
- package/dist/DateInput/Wheel.js +84 -113
- package/dist/DateInput/useOwnScrollGesture.d.ts +10 -0
- package/dist/DateInput/useOwnScrollGesture.d.ts.map +1 -1
- package/dist/DateInput/useOwnScrollGesture.js +16 -3
- package/dist/DateInput/usePointerDragScroll.d.ts.map +1 -1
- package/dist/DateInput/usePointerDragScroll.js +2 -0
- package/dist/DateInput/useScrollSettle.d.ts.map +1 -1
- package/dist/DateInput/useScrollSettle.js +3 -0
- package/dist/DateInput/useWheelListbox.d.ts +59 -0
- package/dist/DateInput/useWheelListbox.d.ts.map +1 -0
- package/dist/DateInput/useWheelListbox.js +88 -0
- package/dist/DateInput/wheelOptions.d.ts +74 -0
- package/dist/DateInput/wheelOptions.d.ts.map +1 -0
- package/dist/DateInput/wheelOptions.js +98 -0
- package/dist/DateInput/wheelPhysics.d.ts +127 -0
- package/dist/DateInput/wheelPhysics.d.ts.map +1 -0
- package/dist/DateInput/wheelPhysics.js +341 -0
- package/dist/DateInput/wheelStrip.d.ts +92 -0
- package/dist/DateInput/wheelStrip.d.ts.map +1 -0
- package/dist/DateInput/wheelStrip.js +258 -0
- package/dist/DateTimeInput/TouchDateTimeField.d.ts.map +1 -1
- package/dist/DateTimeInput/TouchDateTimeField.js +10 -10
- package/dist/Dialog/Dialog.d.ts.map +1 -1
- package/dist/Dialog/Dialog.js +9 -32
- package/dist/Drawer/useDrawerDialogPresence.d.ts.map +1 -1
- package/dist/Drawer/useDrawerDialogPresence.js +3 -0
- package/dist/DropdownMenu/useMenuOverflow.d.ts.map +1 -1
- package/dist/DropdownMenu/useMenuOverflow.js +5 -0
- package/dist/Field/Field.js +2 -2
- package/dist/FieldStatus/useFieldStatusAnnouncement.d.ts.map +1 -1
- package/dist/FieldStatus/useFieldStatusAnnouncement.js +1 -0
- package/dist/FormLayout/FormLayout.d.ts +5 -1
- package/dist/FormLayout/FormLayout.d.ts.map +1 -1
- package/dist/HoverCard/HoverCard.d.ts +6 -4
- package/dist/HoverCard/HoverCard.d.ts.map +1 -1
- package/dist/HoverCard/HoverCard.js +48 -3
- package/dist/HoverCard/useHoverCard.d.ts +5 -4
- package/dist/HoverCard/useHoverCard.d.ts.map +1 -1
- package/dist/HoverCard/useHoverCard.js +20 -33
- package/dist/Icon/Icon.d.ts +5 -1
- package/dist/Icon/Icon.d.ts.map +1 -1
- package/dist/Icon/Icon.js +5 -2
- package/dist/InfoTip/InfoTip.d.ts +5 -5
- package/dist/InfoTip/InfoTip.d.ts.map +1 -1
- package/dist/InfoTip/InfoTip.js +58 -19
- package/dist/Item/useSwipeAction.d.ts.map +1 -1
- package/dist/Item/useSwipeAction.js +3 -0
- package/dist/Layer/modalOutlet.d.ts.map +1 -1
- package/dist/Layer/modalOutlet.js +2 -0
- package/dist/Layer/outsidePress.d.ts.map +1 -1
- package/dist/Layer/outsidePress.js +1 -0
- package/dist/Layer/useLayer.d.ts.map +1 -1
- package/dist/Layer/useLayer.js +4 -1
- package/dist/Layer/useLayerDismissal.d.ts.map +1 -1
- package/dist/Layer/useLayerDismissal.js +3 -0
- package/dist/Layer/useTouchTrigger.d.ts +13 -7
- package/dist/Layer/useTouchTrigger.d.ts.map +1 -1
- package/dist/Layer/useTouchTrigger.js +20 -6
- package/dist/Layout/index.d.ts +1 -1
- package/dist/Layout/index.d.ts.map +1 -1
- package/dist/Layout/index.js +1 -1
- package/dist/Layout/layoutReset.js +1 -1
- package/dist/Layout/overlayPaddingReset.stylex.d.ts +68 -0
- package/dist/Layout/overlayPaddingReset.stylex.d.ts.map +1 -0
- package/dist/Layout/overlayPaddingReset.stylex.js +72 -0
- package/dist/Layout/padding.stylex.d.ts +5 -129
- package/dist/Layout/padding.stylex.d.ts.map +1 -1
- package/dist/Layout/padding.stylex.js +9 -143
- package/dist/Layout/paddingStyles.stylex.d.ts +83 -0
- package/dist/Layout/paddingStyles.stylex.d.ts.map +1 -0
- package/dist/Layout/paddingStyles.stylex.js +99 -0
- package/dist/Lightbox/Lightbox.d.ts.map +1 -1
- package/dist/Lightbox/Lightbox.js +20 -1
- package/dist/MobileNav/MobileNav.d.ts +3 -2
- package/dist/MobileNav/MobileNav.d.ts.map +1 -1
- package/dist/MobileNav/MobileNav.js +10 -26
- package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
- package/dist/MultiSelector/MultiSelector.js +2 -1
- package/dist/NumberInput/NumberInput.d.ts.map +1 -1
- package/dist/NumberInput/NumberInput.js +2 -1
- package/dist/Outline/useOutlineFromDOM.d.ts.map +1 -1
- package/dist/Outline/useOutlineFromDOM.js +3 -0
- package/dist/Outline/useScrollSpy.d.ts.map +1 -1
- package/dist/Outline/useScrollSpy.js +3 -0
- package/dist/OverflowList/OverflowList.d.ts.map +1 -1
- package/dist/OverflowList/OverflowList.js +3 -0
- package/dist/Popover/Popover.d.ts.map +1 -1
- package/dist/Popover/Popover.js +6 -0
- package/dist/Popover/usePopover.js +2 -2
- package/dist/PowerSearch/PowerSearch.d.ts +39 -4
- package/dist/PowerSearch/PowerSearch.d.ts.map +1 -1
- package/dist/PowerSearch/PowerSearch.js +441 -134
- package/dist/PowerSearch/PowerSearchBottomSheet.d.ts +102 -0
- package/dist/PowerSearch/PowerSearchBottomSheet.d.ts.map +1 -0
- package/dist/PowerSearch/PowerSearchBottomSheet.js +1919 -0
- package/dist/PowerSearch/PowerSearchEditPopover.d.ts +35 -2
- package/dist/PowerSearch/PowerSearchEditPopover.d.ts.map +1 -1
- package/dist/PowerSearch/PowerSearchEditPopover.js +43 -10
- package/dist/PowerSearch/PowerSearchFilterEditor.d.ts +1 -1
- package/dist/PowerSearch/PowerSearchFilterEditor.d.ts.map +1 -1
- package/dist/PowerSearch/PowerSearchFilterEditor.js +4 -2
- package/dist/PowerSearch/PowerSearchToken.d.ts +1 -1
- package/dist/PowerSearch/PowerSearchToken.d.ts.map +1 -1
- package/dist/PowerSearch/PowerSearchToken.js +3 -2
- package/dist/PowerSearch/PowerSearchValueEditor.d.ts +38 -3
- package/dist/PowerSearch/PowerSearchValueEditor.d.ts.map +1 -1
- package/dist/PowerSearch/PowerSearchValueEditor.js +273 -86
- package/dist/PowerSearch/formatFilterValue.d.ts +14 -7
- package/dist/PowerSearch/formatFilterValue.d.ts.map +1 -1
- package/dist/PowerSearch/formatFilterValue.js +31 -23
- package/dist/PowerSearch/formatTokenValue.d.ts +28 -0
- package/dist/PowerSearch/formatTokenValue.d.ts.map +1 -0
- package/dist/PowerSearch/formatTokenValue.js +161 -0
- package/dist/PowerSearch/index.d.ts +1 -1
- package/dist/PowerSearch/index.d.ts.map +1 -1
- package/dist/PowerSearch/powerSearchDateZone.d.ts +25 -0
- package/dist/PowerSearch/powerSearchDateZone.d.ts.map +1 -0
- package/dist/PowerSearch/powerSearchDateZone.js +57 -0
- package/dist/PowerSearch/powerSearchSheetUtils.d.ts +65 -0
- package/dist/PowerSearch/powerSearchSheetUtils.d.ts.map +1 -0
- package/dist/PowerSearch/powerSearchSheetUtils.js +168 -0
- package/dist/PowerSearch/types.d.ts +8 -1
- package/dist/PowerSearch/types.d.ts.map +1 -1
- package/dist/ProgressBar/ProgressBarTouch.d.ts.map +1 -1
- package/dist/ProgressBar/ProgressBarTouch.js +2 -0
- package/dist/RadioList/RadioList.d.ts.map +1 -1
- package/dist/RadioList/RadioList.js +3 -2
- package/dist/RadioList/RadioListItem.d.ts +1 -1
- package/dist/RadioList/RadioListItem.d.ts.map +1 -1
- package/dist/RadioList/RadioListItem.js +5 -3
- package/dist/Resizable/ResizeHandle.d.ts +2 -1
- package/dist/Resizable/ResizeHandle.d.ts.map +1 -1
- package/dist/Resizable/ResizeHandle.js +101 -77
- package/dist/Resizable/createResizable.d.ts +145 -0
- package/dist/Resizable/createResizable.d.ts.map +1 -0
- package/dist/Resizable/createResizable.js +575 -0
- package/dist/Resizable/useResizable.d.ts +3 -3
- package/dist/Resizable/useResizable.d.ts.map +1 -1
- package/dist/Resizable/useResizable.js +252 -459
- package/dist/SegmentedControl/useSegmentedSelectionMotion.d.ts.map +1 -1
- package/dist/SegmentedControl/useSegmentedSelectionMotion.js +3 -3
- package/dist/SelectableCard/SelectableCard.d.ts +2 -0
- package/dist/SelectableCard/SelectableCard.d.ts.map +1 -1
- package/dist/SelectableCard/SelectableCard.js +36 -11
- package/dist/SelectableCard/selectableCardInput.d.ts +12 -0
- package/dist/SelectableCard/selectableCardInput.d.ts.map +1 -0
- package/dist/SelectableCard/selectableCardInput.js +20 -0
- package/dist/Selector/Selector.d.ts.map +1 -1
- package/dist/Selector/Selector.js +7 -9
- package/dist/SideNav/SideNav.d.ts.map +1 -1
- package/dist/SideNav/SideNav.js +36 -5
- package/dist/Slider/Slider.d.ts.map +1 -1
- package/dist/Slider/Slider.js +16 -11
- package/dist/Slider/sliderTouchController.js +2 -2
- package/dist/Spinner/Spinner.d.ts +1 -1
- package/dist/Spinner/Spinner.d.ts.map +1 -1
- package/dist/Spinner/Spinner.js +60 -58
- package/dist/Stepper/Stepper.d.ts.map +1 -1
- package/dist/Stepper/Stepper.js +10 -15
- package/dist/Switch/Switch.d.ts.map +1 -1
- package/dist/Switch/Switch.js +4 -10
- package/dist/Switch/useSwitchTouch.js +4 -4
- package/dist/Table/BaseTable.d.ts.map +1 -1
- package/dist/Table/BaseTable.js +29 -8
- package/dist/Table/plugins/columnResize/useTableColumnResize.d.ts.map +1 -1
- package/dist/Table/plugins/columnResize/useTableColumnResize.js +3 -1
- package/dist/Table/plugins/filtering/useTableFiltering.d.ts.map +1 -1
- package/dist/Table/plugins/filtering/useTableFiltering.js +2 -1
- package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts.map +1 -1
- package/dist/Table/plugins/rowExpansion/useTableRowExpansion.js +4 -0
- package/dist/Table/plugins/stickyColumns/useTableStickyColumns.d.ts.map +1 -1
- package/dist/Table/plugins/stickyColumns/useTableStickyColumns.js +2 -0
- package/dist/TextArea/TextArea.d.ts.map +1 -1
- package/dist/TextArea/TextArea.js +2 -1
- package/dist/TextInput/TextInput.d.ts +2 -2
- package/dist/TextInput/TextInput.d.ts.map +1 -1
- package/dist/TextInput/TextInput.js +12 -8
- package/dist/TimeInput/TimeInput.d.ts.map +1 -1
- package/dist/TimeInput/TimeInput.js +2 -0
- package/dist/TimeInput/TouchTimeField.d.ts.map +1 -1
- package/dist/TimeInput/TouchTimeField.js +2 -0
- package/dist/Timer/Timer.d.ts.map +1 -1
- package/dist/Timer/Timer.js +2 -0
- package/dist/Timestamp/Timestamp.js +1 -1
- package/dist/Timestamp/formatInstant.d.ts.map +1 -1
- package/dist/Timestamp/formatInstant.js +1 -23
- package/dist/Toast/Toast.d.ts +11 -1
- package/dist/Toast/Toast.d.ts.map +1 -1
- package/dist/Toast/Toast.js +25 -15
- package/dist/Toast/ToastViewport.d.ts.map +1 -1
- package/dist/Toast/ToastViewport.js +97 -34
- package/dist/Toast/types.d.ts +9 -3
- package/dist/Toast/types.d.ts.map +1 -1
- package/dist/Toast/useToast.d.ts.map +1 -1
- package/dist/Toast/useToast.js +1 -0
- package/dist/Tokenizer/Tokenizer.d.ts +44 -46
- package/dist/Tokenizer/Tokenizer.d.ts.map +1 -1
- package/dist/Tokenizer/Tokenizer.js +20 -21
- package/dist/Tokenizer/TokenizerBottomSheet.d.ts +1 -1
- package/dist/Tokenizer/TokenizerBottomSheet.js +4 -6
- package/dist/Tokenizer/index.d.ts +1 -1
- package/dist/Tokenizer/index.d.ts.map +1 -1
- package/dist/Tooltip/Tooltip.d.ts +2 -23
- package/dist/Tooltip/Tooltip.d.ts.map +1 -1
- package/dist/Tooltip/Tooltip.js +5 -29
- package/dist/Tooltip/useTooltip.d.ts +23 -30
- package/dist/Tooltip/useTooltip.d.ts.map +1 -1
- package/dist/Tooltip/useTooltip.js +194 -108
- package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
- package/dist/Typeahead/BaseTypeahead.js +27 -18
- package/dist/Typeahead/TypeaheadItem.d.ts +2 -1
- package/dist/Typeahead/TypeaheadItem.d.ts.map +1 -1
- package/dist/animator/createAnimator.d.ts +98 -0
- package/dist/animator/createAnimator.d.ts.map +1 -0
- package/dist/animator/createAnimator.js +259 -0
- package/dist/astryx.css +41 -7
- package/dist/gestures/GestureHost.d.ts +16 -1
- package/dist/gestures/GestureHost.d.ts.map +1 -1
- package/dist/gestures/GestureHost.js +1 -1
- package/dist/gestures/PressTracker.d.ts.map +1 -1
- package/dist/gestures/PressTracker.js +4 -3
- package/dist/hooks/ModalAnnounceProvider.d.ts.map +1 -1
- package/dist/hooks/ModalAnnounceProvider.js +1 -0
- package/dist/hooks/actionGroupTracker.d.ts +4 -1
- package/dist/hooks/actionGroupTracker.d.ts.map +1 -1
- package/dist/hooks/actionGroupTracker.js +13 -3
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +1 -0
- package/dist/hooks/longPressDetector.d.ts +66 -0
- package/dist/hooks/longPressDetector.d.ts.map +1 -0
- package/dist/hooks/longPressDetector.js +200 -0
- package/dist/hooks/pressGroupContext.d.ts +6 -0
- package/dist/hooks/pressGroupContext.d.ts.map +1 -0
- package/dist/hooks/pressGroupContext.js +20 -0
- package/dist/hooks/rootScrollStyles.d.ts +48 -0
- package/dist/hooks/rootScrollStyles.d.ts.map +1 -0
- package/dist/hooks/rootScrollStyles.js +207 -0
- package/dist/hooks/scrollLockTouchGuard.d.ts +13 -0
- package/dist/hooks/scrollLockTouchGuard.d.ts.map +1 -0
- package/dist/hooks/scrollLockTouchGuard.js +117 -0
- package/dist/hooks/scrollbarGutter.d.ts +4 -4
- package/dist/hooks/scrollbarGutter.d.ts.map +1 -1
- package/dist/hooks/scrollbarGutter.js +36 -23
- package/dist/hooks/useActionGroupTracking.d.ts +53 -0
- package/dist/hooks/useActionGroupTracking.d.ts.map +1 -0
- package/dist/hooks/useActionGroupTracking.js +174 -0
- package/dist/hooks/useAnimator.d.ts +41 -0
- package/dist/hooks/useAnimator.d.ts.map +1 -0
- package/dist/hooks/useAnimator.js +70 -0
- package/dist/hooks/useAnnounceRenderedText.d.ts.map +1 -1
- package/dist/hooks/useAnnounceRenderedText.js +1 -0
- package/dist/hooks/useAttachment.d.ts +1 -1
- package/dist/hooks/useAttachment.js +1 -1
- package/dist/hooks/useAutoMediaMode.d.ts.map +1 -1
- package/dist/hooks/useAutoMediaMode.js +1 -0
- package/dist/hooks/useBusyAnnouncement.d.ts.map +1 -1
- package/dist/hooks/useBusyAnnouncement.js +2 -0
- package/dist/hooks/useDevWarning.d.ts.map +1 -1
- package/dist/hooks/useDevWarning.js +2 -0
- package/dist/hooks/useFocusTrap.d.ts.map +1 -1
- package/dist/hooks/useFocusTrap.js +2 -0
- package/dist/hooks/useGridFocus.d.ts +8 -5
- package/dist/hooks/useGridFocus.d.ts.map +1 -1
- package/dist/hooks/useGridFocus.js +4 -3
- package/dist/hooks/useHotkeys.d.ts.map +1 -1
- package/dist/hooks/useHotkeys.js +3 -0
- package/dist/hooks/useImageMode.d.ts.map +1 -1
- package/dist/hooks/useImageMode.js +3 -0
- package/dist/hooks/useInputStatusIcon.d.ts +1 -1
- package/dist/hooks/useInputStatusIcon.d.ts.map +1 -1
- package/dist/hooks/useInputStatusIcon.js +2 -2
- package/dist/hooks/useIsomorphicLayoutEffect.d.ts +2 -2
- package/dist/hooks/useIsomorphicLayoutEffect.d.ts.map +1 -1
- package/dist/hooks/useKeyboardHint.js +1 -1
- package/dist/hooks/useLongPress.d.ts +8 -9
- package/dist/hooks/useLongPress.d.ts.map +1 -1
- package/dist/hooks/useLongPress.js +23 -106
- package/dist/hooks/useMenuHover.d.ts.map +1 -1
- package/dist/hooks/useMenuHover.js +2 -0
- package/dist/hooks/useMenuPress.d.ts.map +1 -1
- package/dist/hooks/useMenuPress.js +3 -0
- package/dist/hooks/useOverflow.d.ts.map +1 -1
- package/dist/hooks/useOverflow.js +2 -1
- package/dist/hooks/usePressFeedback.d.ts.map +1 -1
- package/dist/hooks/usePressFeedback.js +1 -0
- package/dist/hooks/useResolvedRequired.d.ts +3 -0
- package/dist/hooks/useResolvedRequired.d.ts.map +1 -1
- package/dist/hooks/useResolvedRequired.js +3 -0
- package/dist/hooks/useScrollLock.d.ts +8 -9
- package/dist/hooks/useScrollLock.d.ts.map +1 -1
- package/dist/hooks/useScrollLock.js +50 -48
- package/dist/hooks/useScrollableArea.d.ts.map +1 -1
- package/dist/hooks/useScrollableArea.js +5 -0
- package/dist/hooks/useStreamingText.d.ts.map +1 -1
- package/dist/hooks/useStreamingText.js +3 -0
- package/dist/i18n/generated-english/PowerSearch/PowerSearchBottomSheet.generated.d.ts +8 -0
- package/dist/i18n/generated-english/PowerSearch/PowerSearchBottomSheet.generated.d.ts.map +1 -0
- package/dist/i18n/generated-english/PowerSearch/PowerSearchBottomSheet.generated.js +42 -0
- package/dist/i18n/generated-english/PowerSearch/PowerSearchValueEditor.generated.d.ts.map +1 -1
- package/dist/i18n/generated-english/PowerSearch/PowerSearchValueEditor.generated.js +6 -0
- package/dist/i18n/generated-english/PowerSearch/formatTokenValue.generated.d.ts +8 -0
- package/dist/i18n/generated-english/PowerSearch/formatTokenValue.generated.d.ts.map +1 -0
- package/dist/i18n/generated-english/PowerSearch/formatTokenValue.generated.js +14 -0
- package/dist/i18n/generated-locales/en.generated.d.ts.map +1 -1
- package/dist/i18n/generated-locales/en.generated.js +30 -0
- package/dist/i18n/generated-locales/pseudo.generated.d.ts.map +1 -1
- package/dist/i18n/generated-locales/pseudo.generated.js +30 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/internal/indicatorPress.stylex.d.ts +20 -0
- package/dist/internal/indicatorPress.stylex.d.ts.map +1 -0
- package/dist/internal/indicatorPress.stylex.js +26 -0
- package/dist/internal/selectable-card.d.ts +21 -0
- package/dist/internal/selectable-card.d.ts.map +1 -0
- package/dist/internal/selectable-card.js +20 -0
- package/dist/internal/sheetDraft.d.ts +2 -2
- package/dist/internal/sheetDraft.js +2 -2
- package/dist/motion/animatedLayout.d.ts +8 -0
- package/dist/motion/animatedLayout.d.ts.map +1 -1
- package/dist/motion/animatedLayout.js +246 -53
- package/dist/motion/animator.d.ts +14 -14
- package/dist/motion/animator.d.ts.map +1 -1
- package/dist/motion/animator.js +45 -26
- package/dist/motion/frameBlock.d.ts +14 -0
- package/dist/motion/frameBlock.d.ts.map +1 -0
- package/dist/motion/frameBlock.js +16 -0
- package/dist/motion/progress.d.ts +88 -0
- package/dist/motion/progress.d.ts.map +1 -0
- package/dist/motion/progress.js +128 -0
- package/dist/motion/reducedMotion.d.ts.map +1 -1
- package/dist/motion/reducedMotion.js +3 -1
- package/dist/motion/uikit/alert.d.ts +41 -0
- package/dist/motion/uikit/alert.d.ts.map +1 -0
- package/dist/motion/uikit/alert.js +43 -0
- package/dist/motion/uikit/index.d.ts +4 -3
- package/dist/motion/uikit/index.d.ts.map +1 -1
- package/dist/motion/uikit/index.js +4 -3
- package/dist/motion/uikit/picker.d.ts +96 -0
- package/dist/motion/uikit/picker.d.ts.map +1 -0
- package/dist/motion/uikit/picker.js +117 -0
- package/dist/privateAttributes/pressGroupItem.stylex.d.ts +22 -0
- package/dist/privateAttributes/pressGroupItem.stylex.d.ts.map +1 -0
- package/dist/privateAttributes/pressGroupItem.stylex.js +36 -0
- package/dist/privateAttributes/reducedMotion.stylex.d.ts +23 -0
- package/dist/privateAttributes/reducedMotion.stylex.d.ts.map +1 -0
- package/dist/privateAttributes/reducedMotion.stylex.js +40 -0
- package/dist/theme/Theme.d.ts.map +1 -1
- package/dist/theme/Theme.js +29 -4
- package/dist/theme/generateThemeRules.d.ts.map +1 -1
- package/dist/theme/generateThemeRules.js +14 -13
- package/dist/theme/motionKnobs.d.ts +4 -3
- package/dist/theme/motionKnobs.d.ts.map +1 -1
- package/dist/theme/motionKnobs.js +3 -2
- package/dist/theme/themeMotion.d.ts +6 -0
- package/dist/theme/themeMotion.d.ts.map +1 -1
- package/dist/theme/themeMotion.js +15 -2
- package/dist/theme/tokens.stylex.d.ts +3 -0
- package/dist/theme/tokens.stylex.d.ts.map +1 -1
- package/dist/theme/tokens.stylex.js +4 -1
- package/dist/utils/dateParser.d.ts.map +1 -1
- package/dist/utils/dateParser.js +12 -0
- package/dist/utils/disabledInteraction.d.ts +10 -2
- package/dist/utils/disabledInteraction.d.ts.map +1 -1
- package/dist/utils/disabledInteraction.js +16 -2
- package/dist/utils/focusReturn.d.ts +22 -25
- package/dist/utils/focusReturn.d.ts.map +1 -1
- package/dist/utils/focusReturn.js +36 -29
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/interactionModality.d.ts.map +1 -1
- package/dist/utils/interactionModality.js +4 -0
- package/dist/utils/interactionOverlay.stylex.d.ts +3 -2
- package/dist/utils/interactionOverlay.stylex.d.ts.map +1 -1
- package/dist/utils/interactionOverlay.stylex.js +3 -2
- package/dist/utils/isFocusDetached.d.ts +27 -0
- package/dist/utils/isFocusDetached.d.ts.map +1 -0
- package/dist/utils/isFocusDetached.js +32 -0
- package/dist/utils/plainDate.d.ts +31 -0
- package/dist/utils/plainDate.d.ts.map +1 -1
- package/dist/utils/plainDate.js +68 -4
- package/dist/utils/pressFeedback.d.ts.map +1 -1
- package/dist/utils/pressFeedback.js +20 -6
- package/dist/utils/triggerFocus.d.ts +36 -0
- package/dist/utils/triggerFocus.d.ts.map +1 -0
- package/dist/utils/triggerFocus.js +65 -0
- package/locales/en.json +120 -0
- package/locales/pseudo.json +90 -0
- package/package.json +14 -9
- package/src/AlertDialog/AlertDialog.doc.mjs +2 -2
- package/src/AlertDialog/AlertDialog.tsx +46 -5
- package/src/AppShell/AppShell.tsx +13 -4
- package/src/BottomSheet/BottomSheet.tsx +1 -0
- package/src/BottomSheet/BottomSheetPanel.tsx +39 -3
- package/src/BottomSheet/BottomSheetSwitcher.tsx +5 -0
- package/src/BottomSheet/useMobileKeyboard.ts +4 -0
- package/src/BottomSheet/useSheetGestures.ts +10 -1
- package/src/Button/Button.tsx +26 -4
- package/src/Calendar/Calendar.tsx +40 -32
- package/src/Calendar/getWeekdayHeaderNames.ts +88 -0
- package/src/Calendar/hooks/useCalendarDays.ts +5 -10
- package/src/Calendar/{standaloneShortWeekdayNames.generated.ts → weekdayHeaderNames.generated.ts} +14 -14
- package/src/Carousel/Carousel.tsx +1 -0
- package/src/Chat/ChatComposerInput.tsx +4 -7
- package/src/Chat/ChatMessageList.tsx +2 -1
- package/src/Chat/useChatDictation.ts +1 -0
- package/src/Chat/useChatNewMessages.ts +1 -1
- package/src/Chat/useChatStreamScroll.ts +2 -0
- package/src/Chat/useSpeechRecognition.ts +2 -0
- package/src/Chat/useTriggerMenu.tsx +1 -1
- package/src/CheckboxInput/CheckboxInput.doc.mjs +18 -0
- package/src/CheckboxInput/CheckboxInput.tsx +38 -15
- package/src/CheckboxList/CheckboxList.doc.mjs +7 -0
- package/src/CheckboxList/CheckboxList.tsx +9 -0
- package/src/CodeBlock/CodeBlock.doc.mjs +9 -1
- package/src/CodeBlock/CodeBlock.tsx +41 -4
- package/src/CommandPalette/CommandPalette.tsx +1 -0
- package/src/CommandPalette/CommandPaletteItem.tsx +1 -0
- package/src/ComplexSelector/ComplexSelector.tsx +20 -5
- package/src/ContextMenu/ContextMenu.tsx +2 -2
- package/src/DateInput/MonthScroller.tsx +8 -2
- package/src/DateInput/PickerWheel.tsx +765 -0
- package/src/DateInput/TouchDateField.tsx +6 -32
- package/src/DateInput/Wheel.tsx +94 -150
- package/src/DateInput/useOwnScrollGesture.ts +25 -3
- package/src/DateInput/usePointerDragScroll.ts +1 -0
- package/src/DateInput/useScrollSettle.ts +2 -0
- package/src/DateInput/useWheelListbox.ts +112 -0
- package/src/DateInput/wheelOptions.ts +155 -0
- package/src/DateInput/wheelPhysics.ts +406 -0
- package/src/DateInput/wheelStrip.ts +341 -0
- package/src/DateTimeInput/TouchDateTimeField.tsx +8 -13
- package/src/Dialog/Dialog.tsx +12 -32
- package/src/Drawer/useDrawerDialogPresence.ts +2 -0
- package/src/DropdownMenu/useMenuOverflow.ts +3 -0
- package/src/Field/Field.tsx +2 -2
- package/src/FieldStatus/useFieldStatusAnnouncement.ts +1 -0
- package/src/FormLayout/FormLayout.doc.mjs +181 -46
- package/src/FormLayout/FormLayout.tsx +5 -1
- package/src/HoverCard/HoverCard.doc.mjs +10 -8
- package/src/HoverCard/HoverCard.tsx +58 -6
- package/src/HoverCard/useHoverCard.doc.mjs +178 -36
- package/src/HoverCard/useHoverCard.tsx +49 -54
- package/src/Icon/Icon.doc.mjs +51 -10
- package/src/Icon/Icon.tsx +15 -7
- package/src/IconButton/IconButton.doc.mjs +141 -21
- package/src/InfoTip/InfoTip.tsx +72 -16
- package/src/Item/useSwipeAction.ts +2 -0
- package/src/Layer/modalOutlet.ts +2 -0
- package/src/Layer/outsidePress.ts +1 -0
- package/src/Layer/useLayer.tsx +3 -1
- package/src/Layer/useLayerDismissal.ts +2 -0
- package/src/Layer/useTouchTrigger.ts +19 -6
- package/src/Layout/index.ts +1 -1
- package/src/Layout/layoutReset.ts +1 -1
- package/src/Layout/overlayPaddingReset.stylex.ts +73 -0
- package/src/Layout/padding.stylex.ts +9 -133
- package/src/Layout/paddingStyles.stylex.ts +87 -0
- package/src/Lightbox/Lightbox.tsx +20 -1
- package/src/Lightbox/useLightbox.doc.mjs +167 -0
- package/src/MobileNav/MobileNav.tsx +10 -31
- package/src/MultiSelector/MultiSelector.tsx +2 -7
- package/src/NumberInput/NumberInput.tsx +2 -7
- package/src/Outline/useOutlineFromDOM.ts +2 -0
- package/src/Outline/useScrollSpy.ts +2 -0
- package/src/OverflowList/OverflowList.tsx +2 -0
- package/src/Popover/Popover.tsx +4 -0
- package/src/Popover/usePopover.tsx +2 -2
- package/src/PowerSearch/PowerSearch.doc.mjs +60 -8
- package/src/PowerSearch/PowerSearch.tsx +620 -157
- package/src/PowerSearch/PowerSearchBottomSheet.tsx +2525 -0
- package/src/PowerSearch/PowerSearchEditPopover.tsx +65 -9
- package/src/PowerSearch/PowerSearchFilterEditor.tsx +2 -0
- package/src/PowerSearch/PowerSearchToken.tsx +2 -0
- package/src/PowerSearch/PowerSearchValueEditor.tsx +340 -59
- package/src/PowerSearch/formatFilterValue.ts +49 -27
- package/src/PowerSearch/formatTokenValue.ts +220 -0
- package/src/PowerSearch/index.ts +5 -1
- package/src/PowerSearch/powerSearchDateZone.ts +95 -0
- package/src/PowerSearch/powerSearchSheetUtils.ts +224 -0
- package/src/PowerSearch/types.ts +8 -1
- package/src/ProgressBar/ProgressBarTouch.ts +2 -0
- package/src/RadioList/RadioList.tsx +3 -2
- package/src/RadioList/RadioListItem.tsx +5 -3
- package/src/Resizable/Resizable.doc.mjs +5 -4
- package/src/Resizable/ResizeHandle.tsx +169 -109
- package/src/Resizable/createResizable.ts +831 -0
- package/src/Resizable/useResizable.ts +292 -623
- package/src/SegmentedControl/useSegmentedSelectionMotion.ts +6 -3
- package/src/SelectableCard/SelectableCard.tsx +39 -10
- package/src/SelectableCard/selectableCardInput.ts +30 -0
- package/src/Selector/Selector.tsx +7 -19
- package/src/SideNav/SideNav.tsx +41 -5
- package/src/Slider/Slider.tsx +20 -11
- package/src/Slider/sliderTouchController.ts +2 -2
- package/src/Spinner/Spinner.tsx +77 -63
- package/src/Stepper/Stepper.tsx +10 -27
- package/src/Switch/Switch.tsx +2 -6
- package/src/Switch/useSwitchTouch.ts +4 -4
- package/src/Table/BaseTable.tsx +46 -12
- package/src/Table/plugins/columnResize/useTableColumnResize.tsx +2 -1
- package/src/Table/plugins/filtering/useTableFiltering.tsx +1 -0
- package/src/Table/plugins/rowExpansion/useTableRowExpansion.tsx +4 -0
- package/src/Table/plugins/stickyColumns/useTableStickyColumns.tsx +2 -0
- package/src/TextArea/TextArea.tsx +2 -7
- package/src/TextInput/TextInput.tsx +13 -17
- package/src/TimeInput/TimeInput.tsx +2 -0
- package/src/TimeInput/TouchTimeField.tsx +2 -0
- package/src/Timer/Timer.tsx +1 -0
- package/src/Timestamp/Timestamp.tsx +1 -1
- package/src/Timestamp/formatInstant.ts +1 -33
- package/src/Toast/Toast.doc.mjs +4 -3
- package/src/Toast/Toast.tsx +52 -32
- package/src/Toast/ToastViewport.tsx +123 -35
- package/src/Toast/types.ts +9 -3
- package/src/Toast/useToast.tsx +1 -0
- package/src/Tokenizer/Tokenizer.doc.mjs +10 -10
- package/src/Tokenizer/Tokenizer.tsx +61 -62
- package/src/Tokenizer/TokenizerBottomSheet.tsx +9 -11
- package/src/Tokenizer/index.ts +1 -0
- package/src/Tooltip/Tooltip.tsx +6 -42
- package/src/Tooltip/useTooltip.doc.mjs +24 -0
- package/src/Tooltip/useTooltip.tsx +237 -134
- package/src/Typeahead/BaseTypeahead.tsx +27 -17
- package/src/Typeahead/TypeaheadItem.doc.mjs +6 -3
- package/src/Typeahead/TypeaheadItem.tsx +2 -1
- package/src/animator/createAnimator.doc.mjs +153 -0
- package/src/animator/createAnimator.ts +324 -0
- package/src/gestures/GestureHost.ts +1 -1
- package/src/gestures/PressTracker.ts +4 -3
- package/src/gestures/README.md +10 -4
- package/src/hooks/ModalAnnounceProvider.tsx +1 -0
- package/src/hooks/actionGroupTracker.ts +20 -5
- package/src/hooks/index.ts +2 -0
- package/src/hooks/longPressDetector.ts +273 -0
- package/src/hooks/pressGroupContext.ts +21 -0
- package/src/hooks/rootScrollStyles.ts +247 -0
- package/src/hooks/scrollLockTouchGuard.ts +149 -0
- package/src/hooks/scrollbarGutter.ts +41 -26
- package/src/hooks/useActionGroupTracking.ts +224 -0
- package/src/hooks/useAnimator.doc.mjs +109 -0
- package/src/hooks/useAnimator.ts +67 -0
- package/src/hooks/useAnnounceRenderedText.ts +1 -0
- package/src/hooks/useAttachment.ts +1 -1
- package/src/hooks/useAutoMediaMode.ts +1 -0
- package/src/hooks/useBusyAnnouncement.ts +2 -0
- package/src/hooks/useDevWarning.ts +2 -0
- package/src/hooks/useFocusTrap.ts +2 -0
- package/src/hooks/useGridFocus.doc.mjs +6 -6
- package/src/hooks/useGridFocus.ts +10 -7
- package/src/hooks/useHotkeys.ts +2 -0
- package/src/hooks/useImageMode.ts +2 -0
- package/src/hooks/useInputStatusIcon.tsx +3 -2
- package/src/hooks/useKeyboardHint.tsx +1 -1
- package/src/hooks/useLongPress.doc.mjs +2 -2
- package/src/hooks/useLongPress.ts +32 -122
- package/src/hooks/useMenuHover.ts +1 -0
- package/src/hooks/useMenuPress.ts +2 -0
- package/src/hooks/useOverflow.ts +2 -1
- package/src/hooks/usePressFeedback.ts +1 -0
- package/src/hooks/useResolvedRequired.ts +3 -0
- package/src/hooks/useScrollLock.doc.mjs +51 -12
- package/src/hooks/useScrollLock.ts +53 -60
- package/src/hooks/useScrollableArea.ts +4 -0
- package/src/hooks/useStreamingText.ts +2 -0
- package/src/i18n/generated-english/PowerSearch/PowerSearchBottomSheet.generated.ts +43 -0
- package/src/i18n/generated-english/PowerSearch/PowerSearchValueEditor.generated.ts +6 -0
- package/src/i18n/generated-english/PowerSearch/formatTokenValue.generated.ts +15 -0
- package/src/i18n/generated-locales/en.generated.ts +41 -0
- package/src/i18n/generated-locales/pseudo.generated.ts +42 -0
- package/src/index.ts +13 -0
- package/src/internal/indicatorPress.stylex.ts +24 -0
- package/src/internal/selectable-card.ts +21 -0
- package/src/internal/sheetDraft.ts +2 -2
- package/src/motion/MEASUREMENTS.md +18 -0
- package/src/motion/README.md +10 -5
- package/src/motion/animatedLayout.ts +323 -60
- package/src/motion/animator.ts +66 -37
- package/src/motion/frameBlock.ts +16 -0
- package/src/motion/progress.ts +155 -0
- package/src/motion/reducedMotion.ts +3 -1
- package/src/motion/uikit/alert.ts +43 -0
- package/src/motion/uikit/index.ts +4 -3
- package/src/motion/uikit/picker.ts +116 -0
- package/src/privateAttributes/pressGroupItem.stylex.ts +44 -0
- package/src/privateAttributes/reducedMotion.stylex.ts +45 -0
- package/src/theme/Theme.tsx +37 -3
- package/src/theme/generateThemeRules.ts +14 -12
- package/src/theme/motionKnobs.ts +4 -3
- package/src/theme/themeMotion.ts +17 -2
- package/src/theme/tokens.stylex.ts +2 -0
- package/src/utils/dateParser.ts +16 -0
- package/src/utils/disabledInteraction.ts +23 -2
- package/src/utils/focusReturn.ts +38 -31
- package/src/utils/index.ts +1 -1
- package/src/utils/interactionModality.ts +4 -0
- package/src/utils/interactionOverlay.stylex.ts +3 -2
- package/src/utils/isFocusDetached.ts +34 -0
- package/src/utils/plainDate.ts +80 -4
- package/src/utils/pressFeedback.ts +24 -6
- package/src/utils/triggerFocus.ts +80 -0
- package/dist/Calendar/getStandaloneShortWeekdayNames.d.ts +0 -14
- package/dist/Calendar/getStandaloneShortWeekdayNames.d.ts.map +0 -1
- package/dist/Calendar/getStandaloneShortWeekdayNames.js +0 -26
- package/dist/Calendar/standaloneShortWeekdayNames.generated.d.ts.map +0 -1
- package/dist/Layer/usePressPin.d.ts +0 -93
- package/dist/Layer/usePressPin.d.ts.map +0 -1
- package/dist/Layer/usePressPin.js +0 -363
- package/dist/internal/touch-sheet.d.ts +0 -21
- package/dist/internal/touch-sheet.d.ts.map +0 -1
- package/dist/internal/touch-sheet.js +0 -19
- package/src/Calendar/getStandaloneShortWeekdayNames.ts +0 -38
- package/src/Layer/usePressPin.ts +0 -510
- package/src/internal/touch-sheet.ts +0 -21
package/dist/motion/animator.js
CHANGED
|
@@ -4,11 +4,12 @@
|
|
|
4
4
|
* @file animator.ts
|
|
5
5
|
* @input An element, target values, and a spring, momentum curves (coast.ts)
|
|
6
6
|
* or any closed-form curve
|
|
7
|
-
* @output Exports `
|
|
8
|
-
* rotate, scale and opacity,
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
7
|
+
* @output Exports `createMotionAnimator`, a compositor animator for
|
|
8
|
+
* translate, rotate, scale and opacity, and its option, handle and
|
|
9
|
+
* transition types. It reads presentation values and velocities from the
|
|
10
|
+
* analytic curves. It retargets with the velocity kept, freezes in place on
|
|
11
|
+
* `stop`, and gives completion promises, a shared clock, and UIKit's
|
|
12
|
+
* Reduced Motion substitution.
|
|
12
13
|
* @position Motion foundation (DOM). Internal to core: components use it for
|
|
13
14
|
* every touch-presentation animation; not exported from the package entry
|
|
14
15
|
*
|
|
@@ -180,11 +181,13 @@
|
|
|
180
181
|
*/
|
|
181
182
|
|
|
182
183
|
import { cubicBezier } from "./bezier.js";
|
|
184
|
+
import { LATE_START_MS } from "./frameBlock.js";
|
|
183
185
|
import { solveSpring, toSpring } from "./spring.js";
|
|
184
186
|
import { registerPresentedOffset } from "./presentation.js";
|
|
185
187
|
import { resolveMotion } from "./resolveMotion.js";
|
|
186
188
|
import { reducedMotionCrossFade, registerReducedMotionCrossFade } from "./uikit/timing.js";
|
|
187
189
|
import { planReducedMotion } from "./reducedMotionPlan.js";
|
|
190
|
+
import { themeReducesMotion } from "../privateAttributes/reducedMotion.stylex.js";
|
|
188
191
|
|
|
189
192
|
/**
|
|
190
193
|
* A value the animator can drive.
|
|
@@ -212,7 +215,7 @@ import { planReducedMotion } from "./reducedMotionPlan.js";
|
|
|
212
215
|
*/
|
|
213
216
|
|
|
214
217
|
/**
|
|
215
|
-
* Options of `
|
|
218
|
+
* Options of `createMotionAnimator`.
|
|
216
219
|
*/
|
|
217
220
|
/** How `set` puts values in place. */
|
|
218
221
|
|
|
@@ -292,15 +295,20 @@ const SAMPLE_TOLERANCE = {
|
|
|
292
295
|
/** Keyframes start on this grid (ms) and are split where the curve needs it. */
|
|
293
296
|
const SAMPLE_GRID_MS = 1000 / 30;
|
|
294
297
|
|
|
295
|
-
/**
|
|
296
|
-
|
|
298
|
+
/**
|
|
299
|
+
* A curve within this many sample tolerances of its target can show as at
|
|
300
|
+
* rest. A call on it then starts as one from rest does, at the browser's start.
|
|
301
|
+
*/
|
|
302
|
+
const REST_DISTANCE_TOLERANCES = 2;
|
|
297
303
|
|
|
298
304
|
/**
|
|
299
|
-
*
|
|
300
|
-
*
|
|
305
|
+
* A curve shows as at rest only while it moves at most one `SAMPLE_TOLERANCE`
|
|
306
|
+
* a frame at this rate.
|
|
301
307
|
*/
|
|
302
|
-
|
|
303
|
-
|
|
308
|
+
const REST_FRAMES_PER_SECOND = 60;
|
|
309
|
+
|
|
310
|
+
/** A curve that has not settled by then (an undamped spring) snaps. */
|
|
311
|
+
const MAX_DURATION_MS = 30_000;
|
|
304
312
|
|
|
305
313
|
/**
|
|
306
314
|
* The task calls from rest are made in, shared by every call made in it
|
|
@@ -420,7 +428,7 @@ export function animatorFor(element, options = {}) {
|
|
|
420
428
|
const key = options.pseudoElement ?? '';
|
|
421
429
|
let animator = byPseudo.get(key);
|
|
422
430
|
if (animator == null) {
|
|
423
|
-
animator =
|
|
431
|
+
animator = createMotionAnimator(element, options);
|
|
424
432
|
byPseudo.set(key, animator);
|
|
425
433
|
}
|
|
426
434
|
return animator;
|
|
@@ -524,7 +532,7 @@ const REDUCED_TRANSITION = {
|
|
|
524
532
|
*
|
|
525
533
|
* @example
|
|
526
534
|
* ```
|
|
527
|
-
* const animator =
|
|
535
|
+
* const animator = createMotionAnimator(sheet);
|
|
528
536
|
* // finger lifts at 1200 px/s heading for the detent at 0 (a component
|
|
529
537
|
* // passes the spring of its motion role):
|
|
530
538
|
* animator.animate({y: 0}, {spring: {response: 0.45, dampingRatio: 0.9}, velocity: {y: 1200}});
|
|
@@ -533,7 +541,7 @@ const REDUCED_TRANSITION = {
|
|
|
533
541
|
* animator.stop(['y']);
|
|
534
542
|
* ```
|
|
535
543
|
*/
|
|
536
|
-
export function
|
|
544
|
+
export function createMotionAnimator(element, options = {}) {
|
|
537
545
|
const now = options.now ?? defaultNow;
|
|
538
546
|
const frameSource = options.requestFrame ?? (typeof requestAnimationFrame === 'function' ? callback => {
|
|
539
547
|
requestAnimationFrame(() => callback());
|
|
@@ -552,8 +560,9 @@ export function createAnimator(element, options = {}) {
|
|
|
552
560
|
};
|
|
553
561
|
const pseudoElement = options.pseudoElement;
|
|
554
562
|
// Reduced Motion reads the person's settings and nothing else: no option
|
|
555
|
-
// overrides them (design:reduced-motion DR4).
|
|
556
|
-
|
|
563
|
+
// overrides them (design:reduced-motion DR4). A theme that reduces motion
|
|
564
|
+
// for everyone counts as the setting.
|
|
565
|
+
const prefersReducedMotion = () => defaultPrefersReducedMotion() || themeReducesMotion(target);
|
|
557
566
|
const isCoarsePointer = defaultIsCoarsePointer;
|
|
558
567
|
const resting = {
|
|
559
568
|
...IDENTITY,
|
|
@@ -737,6 +746,14 @@ export function createAnimator(element, options = {}) {
|
|
|
737
746
|
}
|
|
738
747
|
return curveAt(property, time);
|
|
739
748
|
};
|
|
749
|
+
|
|
750
|
+
/**
|
|
751
|
+
* Whether a curve's tail already shows as at rest at `time`. Under a
|
|
752
|
+
* starved main thread the browser commits a call late. A call that starts
|
|
753
|
+
* at its own time then skips that far into its curve. One that starts at
|
|
754
|
+
* the commit holds an element that hardly moves.
|
|
755
|
+
*/
|
|
756
|
+
const showsAtRest = (property, segment, time) => Math.abs(valueAt(property, time) - segment.target) <= REST_DISTANCE_TOLERANCES * SAMPLE_TOLERANCE[property] && Math.abs(velocityAt(property, time)) <= SAMPLE_TOLERANCE[property] * REST_FRAMES_PER_SECOND;
|
|
740
757
|
const velocityAt = (property, time) => {
|
|
741
758
|
const held = segments.get(property);
|
|
742
759
|
if (held != null && isHeld(held)) {
|
|
@@ -1506,10 +1523,10 @@ export function createAnimator(element, options = {}) {
|
|
|
1506
1523
|
// -- starting from rest ---------------------------------------------------
|
|
1507
1524
|
|
|
1508
1525
|
/**
|
|
1509
|
-
* A call starts from rest when nothing on the channels it drives
|
|
1510
|
-
*
|
|
1511
|
-
*
|
|
1512
|
-
* start.
|
|
1526
|
+
* A call starts from rest when nothing on the channels it drives moves on
|
|
1527
|
+
* screen and nothing pins its clock (`at`). A curve still waiting for its
|
|
1528
|
+
* first frame counts as rest, as does one whose tail already shows as at
|
|
1529
|
+
* rest. Returns its start group, or null for an explicit start.
|
|
1513
1530
|
*/
|
|
1514
1531
|
const beginGroup = (time, properties, at, start) => {
|
|
1515
1532
|
if (target == null || typeof target.animate !== 'function') {
|
|
@@ -1538,16 +1555,18 @@ export function createAnimator(element, options = {}) {
|
|
|
1538
1555
|
}
|
|
1539
1556
|
return null;
|
|
1540
1557
|
}
|
|
1541
|
-
// A call that continues motion starts now unless it asks for the
|
|
1542
|
-
// browser's start (`commit`). `presented` asks only for a call from rest
|
|
1543
|
-
//
|
|
1544
|
-
// the value and velocity on screen
|
|
1558
|
+
// A call that continues motion starts now, unless it asks for the
|
|
1559
|
+
// browser's start (`commit`). `presented` asks only for a call from rest.
|
|
1560
|
+
// A curve that still moves is not at rest, so a call on it starts now,
|
|
1561
|
+
// from the value and velocity on screen. A tail that shows as at rest
|
|
1562
|
+
// counts as rest, so a call on it waits, under `presented` for its two
|
|
1563
|
+
// frames.
|
|
1545
1564
|
for (const channel of start === 'commit' ? [] : channels) {
|
|
1546
1565
|
for (const property of CHANNELS[channel]) {
|
|
1547
1566
|
const segment = segments.get(property);
|
|
1548
1567
|
// A call's first frame puts its channels on screen, even before the
|
|
1549
1568
|
// browser reports the start. So such a channel is not at rest either.
|
|
1550
|
-
if (segment != null && time < endOf(property, segment) && (segment.group == null || segment.group.resolved || shownSince(property, segment) != null)) {
|
|
1569
|
+
if (segment != null && time < endOf(property, segment) && (segment.group == null || segment.group.resolved || shownSince(property, segment) != null) && !showsAtRest(property, segment, time)) {
|
|
1551
1570
|
return null;
|
|
1552
1571
|
}
|
|
1553
1572
|
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file frameBlock.ts
|
|
3
|
+
* @input none
|
|
4
|
+
* @output LATE_START_MS
|
|
5
|
+
* @position The motion modules' shared measure of a main-thread block.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* How long a task must run on past a frame, or past its first call from rest,
|
|
9
|
+
* to count as a block. It is two frames at 60 Hz. Browser start times are
|
|
10
|
+
* frame times, while a task's end is on a live clock. So only a block longer
|
|
11
|
+
* than a frame plus the task's own length stands out from that quantization.
|
|
12
|
+
*/
|
|
13
|
+
export declare const LATE_START_MS = 34;
|
|
14
|
+
//# sourceMappingURL=frameBlock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frameBlock.d.ts","sourceRoot":"","sources":["../../src/motion/frameBlock.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,aAAa,KAAK,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @file frameBlock.ts
|
|
5
|
+
* @input none
|
|
6
|
+
* @output LATE_START_MS
|
|
7
|
+
* @position The motion modules' shared measure of a main-thread block.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* How long a task must run on past a frame, or past its first call from rest,
|
|
12
|
+
* to count as a block. It is two frames at 60 Hz. Browser start times are
|
|
13
|
+
* frame times, while a task's end is on a live clock. So only a block longer
|
|
14
|
+
* than a frame plus the task's own length stands out from that quantization.
|
|
15
|
+
*/
|
|
16
|
+
export const LATE_START_MS = 34;
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file progress.ts
|
|
3
|
+
* @input A spring, a normalized progress, an animator's presented velocities
|
|
4
|
+
* @output Exports `progressCurve` (a spring's progress from 0 to 1 as a
|
|
5
|
+
* MotionCurve), `mapProgress` (one curve as a function of another),
|
|
6
|
+
* `mapRange` (the clamped linear map most companions use) and
|
|
7
|
+
* `presentedProgressVelocity` (the progress velocity that continues what
|
|
8
|
+
* an animator shows)
|
|
9
|
+
* @position Shared by the motion building blocks that move several channels
|
|
10
|
+
* along one path and by companion motion (a
|
|
11
|
+
* scrim's dim following a sheet): one velocity unit, one curve mapping and
|
|
12
|
+
* one way to continue an interrupted motion
|
|
13
|
+
*
|
|
14
|
+
* A path is described by a normalized progress: 0 where it starts, 1 where
|
|
15
|
+
* it rests, beyond either end on a spring's overshoot. Its velocity is in
|
|
16
|
+
* progress per second; each channel's own velocity stays in the channel's
|
|
17
|
+
* units per second.
|
|
18
|
+
*
|
|
19
|
+
* An interrupted motion continues from what is on screen: the
|
|
20
|
+
* block reads the presented values and velocities from the animator at one
|
|
21
|
+
* `now` (`get`, `getVelocity`), restarts a path from those values, and starts
|
|
22
|
+
* its progress with the presented velocity projected on the path's tangent
|
|
23
|
+
* at its start, v·t / (t·t), where t = d(values)/dp. Channels are weighted
|
|
24
|
+
* into one unit first (px per unit of scale, say), so a scale and a
|
|
25
|
+
* translation count alike.
|
|
26
|
+
*
|
|
27
|
+
* A companion follows a driving curve through `mapProgress`, most often
|
|
28
|
+
* with `mapRange`: `mapProgress(sheetY, mapRange([closedY, openY], [0, dim]))`
|
|
29
|
+
* dims a scrim as a sheet rises. Played on another animator, it stays in
|
|
30
|
+
* lockstep only when it starts with its driver: pass the driver's start,
|
|
31
|
+
* `scrim.play({opacity}, {at: start})` with `start = await handle.started`
|
|
32
|
+
* (or one shared `at` for both calls); two calls from rest otherwise each
|
|
33
|
+
* start at their own commit.
|
|
34
|
+
*
|
|
35
|
+
* SYNC: When modified, update /packages/core/src/motion/progress.test.ts and
|
|
36
|
+
* /packages/core/src/motion/README.md.
|
|
37
|
+
*/
|
|
38
|
+
import type { Animator, MotionCurve, MotionProperty } from './animator.js';
|
|
39
|
+
import { type SpringDescription } from './spring.js';
|
|
40
|
+
/**
|
|
41
|
+
* The progress of `spring` from 0 to 1, starting with `velocity` (progress
|
|
42
|
+
* per second): exactly 1 once it settles within `epsilon`.
|
|
43
|
+
*/
|
|
44
|
+
export declare function progressCurve(spring: SpringDescription, { velocity, epsilon, }?: {
|
|
45
|
+
velocity?: number;
|
|
46
|
+
epsilon?: number;
|
|
47
|
+
}): MotionCurve;
|
|
48
|
+
/**
|
|
49
|
+
* The curve of `f(driver(t))`, its velocity by the chain rule: a channel
|
|
50
|
+
* following a path as its progress moves, or a companion following any
|
|
51
|
+
* driving curve (a sheet's `y` mapped onto its scrim's opacity). The driver
|
|
52
|
+
* is any MotionCurve, not only a progress from 0 to 1. A companion played on
|
|
53
|
+
* another animator starts with its driver (`{at: start}`; see the file
|
|
54
|
+
* header).
|
|
55
|
+
*/
|
|
56
|
+
export declare function mapProgress(driver: MotionCurve, f: (value: number) => number): MotionCurve;
|
|
57
|
+
/**
|
|
58
|
+
* The linear map from `input` to `output`, held at `output`'s ends outside
|
|
59
|
+
* `input` unless `clamp` is false: what most companions are (a scrim's dim
|
|
60
|
+
* along a sheet's travel, a parallax, a dismissal's fade). Either range may
|
|
61
|
+
* run backward (`[openY, closedY]`).
|
|
62
|
+
*/
|
|
63
|
+
export declare function mapRange(input: readonly [number, number], output: readonly [number, number], { clamp }?: {
|
|
64
|
+
clamp?: boolean;
|
|
65
|
+
}): (x: number) => number;
|
|
66
|
+
/**
|
|
67
|
+
* One channel of a path: an animator property and its value at each
|
|
68
|
+
* progress.
|
|
69
|
+
*/
|
|
70
|
+
export interface ProgressChannel {
|
|
71
|
+
readonly property: MotionProperty;
|
|
72
|
+
/** The property's value at progress `p`. */
|
|
73
|
+
at(p: number): number;
|
|
74
|
+
/**
|
|
75
|
+
* What one unit of the property weighs in the projection, in a unit the
|
|
76
|
+
* channels share (px per unit of scale for a box `weight` px wide). 1 by
|
|
77
|
+
* default.
|
|
78
|
+
*/
|
|
79
|
+
readonly weight?: number;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* The progress velocity, per second, that continues what `animator`
|
|
83
|
+
* presents at `now` along a path that starts there: the presented velocity
|
|
84
|
+
* projected on the path's tangent at progress 0, v·t / (t·t). 0 when the
|
|
85
|
+
* path does not move any of its channels.
|
|
86
|
+
*/
|
|
87
|
+
export declare function presentedProgressVelocity(animator: Pick<Animator, 'getVelocity'>, channels: ReadonlyArray<ProgressChannel>, now?: number): number;
|
|
88
|
+
//# sourceMappingURL=progress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../src/motion/progress.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,KAAK,EAAC,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAC,MAAM,YAAY,CAAC;AACtE,OAAO,EAIL,KAAK,iBAAiB,EACvB,MAAM,UAAU,CAAC;AAKlB;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,iBAAiB,EACzB,EACE,QAAY,EACZ,OAA0B,GAC3B,GAAE;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAM,GAC5C,WAAW,CAQb;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,WAAW,EACnB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAC3B,WAAW,CAWb;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CACtB,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,EACjC,EAAC,KAAY,EAAC,GAAE;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAM,GACrC,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAWvB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,4CAA4C;IAC5C,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,EACvC,QAAQ,EAAE,aAAa,CAAC,eAAe,CAAC,EACxC,GAAG,CAAC,EAAE,MAAM,GACX,MAAM,CAUR"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @file progress.ts
|
|
5
|
+
* @input A spring, a normalized progress, an animator's presented velocities
|
|
6
|
+
* @output Exports `progressCurve` (a spring's progress from 0 to 1 as a
|
|
7
|
+
* MotionCurve), `mapProgress` (one curve as a function of another),
|
|
8
|
+
* `mapRange` (the clamped linear map most companions use) and
|
|
9
|
+
* `presentedProgressVelocity` (the progress velocity that continues what
|
|
10
|
+
* an animator shows)
|
|
11
|
+
* @position Shared by the motion building blocks that move several channels
|
|
12
|
+
* along one path and by companion motion (a
|
|
13
|
+
* scrim's dim following a sheet): one velocity unit, one curve mapping and
|
|
14
|
+
* one way to continue an interrupted motion
|
|
15
|
+
*
|
|
16
|
+
* A path is described by a normalized progress: 0 where it starts, 1 where
|
|
17
|
+
* it rests, beyond either end on a spring's overshoot. Its velocity is in
|
|
18
|
+
* progress per second; each channel's own velocity stays in the channel's
|
|
19
|
+
* units per second.
|
|
20
|
+
*
|
|
21
|
+
* An interrupted motion continues from what is on screen: the
|
|
22
|
+
* block reads the presented values and velocities from the animator at one
|
|
23
|
+
* `now` (`get`, `getVelocity`), restarts a path from those values, and starts
|
|
24
|
+
* its progress with the presented velocity projected on the path's tangent
|
|
25
|
+
* at its start, v·t / (t·t), where t = d(values)/dp. Channels are weighted
|
|
26
|
+
* into one unit first (px per unit of scale, say), so a scale and a
|
|
27
|
+
* translation count alike.
|
|
28
|
+
*
|
|
29
|
+
* A companion follows a driving curve through `mapProgress`, most often
|
|
30
|
+
* with `mapRange`: `mapProgress(sheetY, mapRange([closedY, openY], [0, dim]))`
|
|
31
|
+
* dims a scrim as a sheet rises. Played on another animator, it stays in
|
|
32
|
+
* lockstep only when it starts with its driver: pass the driver's start,
|
|
33
|
+
* `scrim.play({opacity}, {at: start})` with `start = await handle.started`
|
|
34
|
+
* (or one shared `at` for both calls); two calls from rest otherwise each
|
|
35
|
+
* start at their own commit.
|
|
36
|
+
*
|
|
37
|
+
* SYNC: When modified, update /packages/core/src/motion/progress.test.ts and
|
|
38
|
+
* /packages/core/src/motion/README.md.
|
|
39
|
+
*/
|
|
40
|
+
|
|
41
|
+
import { SETTLING_EPSILON, solveSpring, toSpring } from "./spring.js";
|
|
42
|
+
|
|
43
|
+
/** The step of the finite differences taken on a progress. */
|
|
44
|
+
const STEP = 1e-4;
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* The progress of `spring` from 0 to 1, starting with `velocity` (progress
|
|
48
|
+
* per second): exactly 1 once it settles within `epsilon`.
|
|
49
|
+
*/
|
|
50
|
+
export function progressCurve(spring, {
|
|
51
|
+
velocity = 0,
|
|
52
|
+
epsilon = SETTLING_EPSILON
|
|
53
|
+
} = {}) {
|
|
54
|
+
const curve = solveSpring(toSpring(spring), {
|
|
55
|
+
from: 0,
|
|
56
|
+
to: 1,
|
|
57
|
+
velocity
|
|
58
|
+
});
|
|
59
|
+
const duration = curve.settleTime(epsilon);
|
|
60
|
+
return {
|
|
61
|
+
duration,
|
|
62
|
+
at: t => t >= duration ? 1 : curve.value(t),
|
|
63
|
+
velocity: t => t >= duration ? 0 : curve.velocity(t)
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* The curve of `f(driver(t))`, its velocity by the chain rule: a channel
|
|
69
|
+
* following a path as its progress moves, or a companion following any
|
|
70
|
+
* driving curve (a sheet's `y` mapped onto its scrim's opacity). The driver
|
|
71
|
+
* is any MotionCurve, not only a progress from 0 to 1. A companion played on
|
|
72
|
+
* another animator starts with its driver (`{at: start}`; see the file
|
|
73
|
+
* header).
|
|
74
|
+
*/
|
|
75
|
+
export function mapProgress(driver, f) {
|
|
76
|
+
return {
|
|
77
|
+
duration: driver.duration,
|
|
78
|
+
at: t => f(driver.at(t)),
|
|
79
|
+
velocity: t => {
|
|
80
|
+
const value = driver.at(t);
|
|
81
|
+
return (f(value + STEP) - f(value - STEP)) / (2 * STEP) * driver.velocity(t);
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* The linear map from `input` to `output`, held at `output`'s ends outside
|
|
88
|
+
* `input` unless `clamp` is false: what most companions are (a scrim's dim
|
|
89
|
+
* along a sheet's travel, a parallax, a dismissal's fade). Either range may
|
|
90
|
+
* run backward (`[openY, closedY]`).
|
|
91
|
+
*/
|
|
92
|
+
export function mapRange(input, output, {
|
|
93
|
+
clamp = true
|
|
94
|
+
} = {}) {
|
|
95
|
+
const [a, b] = input;
|
|
96
|
+
const [c, d] = output;
|
|
97
|
+
return x => {
|
|
98
|
+
let t = a === b ? x < a ? 0 : 1 : (x - a) / (b - a);
|
|
99
|
+
if (clamp) {
|
|
100
|
+
t = Math.min(1, Math.max(0, t));
|
|
101
|
+
}
|
|
102
|
+
// Exact at both ends.
|
|
103
|
+
return t === 0 ? c : t === 1 ? d : c + (d - c) * t;
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* One channel of a path: an animator property and its value at each
|
|
109
|
+
* progress.
|
|
110
|
+
*/
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* The progress velocity, per second, that continues what `animator`
|
|
114
|
+
* presents at `now` along a path that starts there: the presented velocity
|
|
115
|
+
* projected on the path's tangent at progress 0, v·t / (t·t). 0 when the
|
|
116
|
+
* path does not move any of its channels.
|
|
117
|
+
*/
|
|
118
|
+
export function presentedProgressVelocity(animator, channels, now) {
|
|
119
|
+
let along = 0;
|
|
120
|
+
let squared = 0;
|
|
121
|
+
for (const channel of channels) {
|
|
122
|
+
const weight = channel.weight ?? 1;
|
|
123
|
+
const tangent = (channel.at(STEP) - channel.at(0)) / STEP * weight;
|
|
124
|
+
along += animator.getVelocity(channel.property, now) * weight * tangent;
|
|
125
|
+
squared += tangent * tangent;
|
|
126
|
+
}
|
|
127
|
+
return squared > 1e-12 ? along / squared : 0;
|
|
128
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reducedMotion.d.ts","sourceRoot":"","sources":["../../src/motion/reducedMotion.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"reducedMotion.d.ts","sourceRoot":"","sources":["../../src/motion/reducedMotion.ts"],"names":[],"mappings":"AAsDA,6EAA6E;AAC7E,eAAO,MAAM,yBAAyB,2DACoB,CAAC;AAE3D,gFAAgF;AAChF,eAAO,MAAM,4BAA4B,iEACuB,CAAC;AAEjE;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,EACxB,OAAO,GAAE;IACP,gEAAgE;IAChE,YAAY,CAAC,EAAE,OAAO,CAAC;CACnB,GACL,iBAAiB,GAAG,IAAI,CAoB1B;AAED,oCAAoC;AACpC,MAAM,WAAW,gBAAgB;IAC/B,mEAAmE;IACnE,MAAM,IAAI,IAAI,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,iBAAiB,EACvB,IAAI,EAAE,MAAM,IAAI,EAChB,IAAI,SAAI,GACP,gBAAgB,CAyClB"}
|
|
@@ -46,6 +46,7 @@
|
|
|
46
46
|
|
|
47
47
|
import { defaultIsCoarsePointer, defaultPrefersReducedMotion } from "./animator.js";
|
|
48
48
|
import { resolveMotion } from "./resolveMotion.js";
|
|
49
|
+
import { themeReducesMotion } from "../privateAttributes/reducedMotion.stylex.js";
|
|
49
50
|
import { reducedMotionCrossFade, registerReducedMotionCrossFade } from "./uikit/timing.js";
|
|
50
51
|
|
|
51
52
|
/** Reduce Motion on a coarse primary pointer: an opacity-only cross-fade. */
|
|
@@ -68,7 +69,8 @@ export const REDUCED_MOTION_INSTANT_QUERY = '(prefers-reduced-motion: reduce) an
|
|
|
68
69
|
* the length is fixed.
|
|
69
70
|
*/
|
|
70
71
|
export function reducedMotionFade(element, options = {}) {
|
|
71
|
-
|
|
72
|
+
// A theme that reduces motion for everyone counts as the setting.
|
|
73
|
+
if (!defaultPrefersReducedMotion() && !themeReducesMotion(element)) {
|
|
72
74
|
return null;
|
|
73
75
|
}
|
|
74
76
|
const fades = options.touchRelease === true || defaultIsCoarsePointer();
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file alert.ts
|
|
3
|
+
* @input Nothing; data only
|
|
4
|
+
* @output Exports `alertController`: how UIAlertController (`.alert`) tracks
|
|
5
|
+
* a finger across its actions
|
|
6
|
+
* @position The alert domain of the UIKit constants table (motion/uikit);
|
|
7
|
+
* its springs are `springs.alertPresent` and `springs.alertDismiss`
|
|
8
|
+
*
|
|
9
|
+
* Every value was read from UIKit on the iOS 26.2 simulator. A host app
|
|
10
|
+
* presented `UIAlertController(.alert)` with two and with three actions.
|
|
11
|
+
* Real HID touches drove it, and the action views' highlight was sampled
|
|
12
|
+
* every frame. Lengths are in pt (CSS px), durations in ms.
|
|
13
|
+
*
|
|
14
|
+
* Every leaf carries one or more `@source`; GUESS values also carry the
|
|
15
|
+
* `@measure` task that will confirm or replace them. uikit.test.ts enforces
|
|
16
|
+
* both.
|
|
17
|
+
*
|
|
18
|
+
* SYNC: When modified, update /packages/core/src/motion/MEASUREMENTS.md
|
|
19
|
+
*/
|
|
20
|
+
export declare const alertController: {
|
|
21
|
+
readonly actions: {
|
|
22
|
+
/**
|
|
23
|
+
* How long after touch-down the touched action highlights: none, it is
|
|
24
|
+
* highlighted in the touch-down frame (a tap and a 300 ms hold alike).
|
|
25
|
+
* @source measured: UIKit lab (injected host app), iOS 26.2 simulator,
|
|
26
|
+
* iPhone 17 Pro, per-frame highlight of the action views under real HID
|
|
27
|
+
* touches, Oct 23 2026
|
|
28
|
+
*/
|
|
29
|
+
readonly highlightOnsetMs: 0;
|
|
30
|
+
/**
|
|
31
|
+
* How far outside an action the finger may go and keep it highlighted:
|
|
32
|
+
* none. The highlight cleared 1 pt below the action, and a lift there ran
|
|
33
|
+
* nothing. UIButton keeps 70 pt; an alert action does not.
|
|
34
|
+
* @source measured: UIKit lab (injected host app), iOS 26.2 simulator,
|
|
35
|
+
* iPhone 17 Pro, per-frame highlight of the action views under real HID
|
|
36
|
+
* touches, Oct 23 2026
|
|
37
|
+
*/
|
|
38
|
+
readonly highlightExpansion: 0;
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=alert.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alert.d.ts","sourceRoot":"","sources":["../../../src/motion/uikit/alert.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,eAAO,MAAM,eAAe;;QAExB;;;;;;WAMG;;QAEH;;;;;;;WAOG;;;CAGG,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @file alert.ts
|
|
5
|
+
* @input Nothing; data only
|
|
6
|
+
* @output Exports `alertController`: how UIAlertController (`.alert`) tracks
|
|
7
|
+
* a finger across its actions
|
|
8
|
+
* @position The alert domain of the UIKit constants table (motion/uikit);
|
|
9
|
+
* its springs are `springs.alertPresent` and `springs.alertDismiss`
|
|
10
|
+
*
|
|
11
|
+
* Every value was read from UIKit on the iOS 26.2 simulator. A host app
|
|
12
|
+
* presented `UIAlertController(.alert)` with two and with three actions.
|
|
13
|
+
* Real HID touches drove it, and the action views' highlight was sampled
|
|
14
|
+
* every frame. Lengths are in pt (CSS px), durations in ms.
|
|
15
|
+
*
|
|
16
|
+
* Every leaf carries one or more `@source`; GUESS values also carry the
|
|
17
|
+
* `@measure` task that will confirm or replace them. uikit.test.ts enforces
|
|
18
|
+
* both.
|
|
19
|
+
*
|
|
20
|
+
* SYNC: When modified, update /packages/core/src/motion/MEASUREMENTS.md
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
export const alertController = {
|
|
24
|
+
actions: {
|
|
25
|
+
/**
|
|
26
|
+
* How long after touch-down the touched action highlights: none, it is
|
|
27
|
+
* highlighted in the touch-down frame (a tap and a 300 ms hold alike).
|
|
28
|
+
* @source measured: UIKit lab (injected host app), iOS 26.2 simulator,
|
|
29
|
+
* iPhone 17 Pro, per-frame highlight of the action views under real HID
|
|
30
|
+
* touches, Oct 23 2026
|
|
31
|
+
*/
|
|
32
|
+
highlightOnsetMs: 0,
|
|
33
|
+
/**
|
|
34
|
+
* How far outside an action the finger may go and keep it highlighted:
|
|
35
|
+
* none. The highlight cleared 1 pt below the action, and a lift there ran
|
|
36
|
+
* nothing. UIButton keeps 70 pt; an alert action does not.
|
|
37
|
+
* @source measured: UIKit lab (injected host app), iOS 26.2 simulator,
|
|
38
|
+
* iPhone 17 Pro, per-frame highlight of the action views under real HID
|
|
39
|
+
* touches, Oct 23 2026
|
|
40
|
+
*/
|
|
41
|
+
highlightExpansion: 0
|
|
42
|
+
}
|
|
43
|
+
};
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
* @file index.ts
|
|
3
3
|
* @input The domain files of the UIKit constants table
|
|
4
4
|
* @output Re-exports `springs` and one constant per spring (`SHEET_PRESENT_SPRING`,
|
|
5
|
-
* …), `scroll`, `timing`, `navigation`, `
|
|
6
|
-
* the `slider` and switch (`switchControl`) domains, and
|
|
7
|
-
* thresholds (one `UIKIT_*` group per recognizer, their union
|
|
5
|
+
* …), `scroll`, `timing`, `navigation`, `picker`, `progressBar`,
|
|
6
|
+
* `segmentedControl`, the `slider` and switch (`switchControl`) domains, and
|
|
7
|
+
* the gesture thresholds (one `UIKIT_*` group per recognizer, their union
|
|
8
8
|
* `UIKIT_GESTURES`, and the haptic tables)
|
|
9
9
|
* @position Entry of the UIKit constants table (motion/uikit). Internal to
|
|
10
10
|
* core: not exported from the package entry point
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
*/
|
|
20
20
|
export { HAPTIC_FEEDBACK_KINDS, HAPTIC_VIBRATION_PATTERNS, UIKIT_CLICK, UIKIT_CONTROL, UIKIT_GESTURES, UIKIT_LONG_PRESS, UIKIT_PAN, UIKIT_PINCH, UIKIT_PRESS, UIKIT_ROTATION, UIKIT_SCREEN_EDGE_PAN, UIKIT_SWIPE, UIKIT_TAP, UIKIT_VELOCITY, type GestureConstant, type GestureConstantUnit, type HapticFeedbackKind, } from './gestures.js';
|
|
21
21
|
export { navigation, registerNavigationTable } from './navigation.js';
|
|
22
|
+
export { picker } from './picker.js';
|
|
22
23
|
export { progressBar, registerProgressBarTable } from './progressBar.js';
|
|
23
24
|
export { registerScrollTable, scroll } from './scroll.js';
|
|
24
25
|
export { segmentedControl } from './segmented.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/motion/uikit/index.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,WAAW,EACX,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,SAAS,EACT,WAAW,EACX,WAAW,EACX,cAAc,EACd,qBAAqB,EACrB,WAAW,EACX,SAAS,EACT,cAAc,EACd,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,GACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAC,UAAU,EAAE,uBAAuB,EAAC,MAAM,cAAc,CAAC;AACjE,OAAO,EAAC,WAAW,EAAE,wBAAwB,EAAC,MAAM,eAAe,CAAC;AACpE,OAAO,EAAC,mBAAmB,EAAE,MAAM,EAAC,MAAM,UAAU,CAAC;AACrD,OAAO,EAAC,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAChC,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,EAC3B,oBAAoB,EACpB,oBAAoB,EACpB,aAAa,EACb,2BAA2B,EAC3B,wBAAwB,EACxB,yBAAyB,EACzB,oBAAoB,EACpB,eAAe,EACf,sBAAsB,EACtB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,0BAA0B,EAC1B,8BAA8B,EAC9B,wCAAwC,EACxC,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,aAAa,EACb,mBAAmB,EACnB,oBAAoB,EACpB,0BAA0B,EAC1B,oBAAoB,EACpB,yBAAyB,EACzB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,OAAO,GACR,MAAM,WAAW,CAAC;AACnB,OAAO,EAAC,aAAa,EAAC,MAAM,UAAU,CAAC;AACvC,OAAO,EAAC,mBAAmB,EAAE,MAAM,EAAC,MAAM,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/motion/uikit/index.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,WAAW,EACX,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,SAAS,EACT,WAAW,EACX,WAAW,EACX,cAAc,EACd,qBAAqB,EACrB,WAAW,EACX,SAAS,EACT,cAAc,EACd,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,GACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAC,UAAU,EAAE,uBAAuB,EAAC,MAAM,cAAc,CAAC;AACjE,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAChC,OAAO,EAAC,WAAW,EAAE,wBAAwB,EAAC,MAAM,eAAe,CAAC;AACpE,OAAO,EAAC,mBAAmB,EAAE,MAAM,EAAC,MAAM,UAAU,CAAC;AACrD,OAAO,EAAC,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAChC,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,EAC3B,oBAAoB,EACpB,oBAAoB,EACpB,aAAa,EACb,2BAA2B,EAC3B,wBAAwB,EACxB,yBAAyB,EACzB,oBAAoB,EACpB,eAAe,EACf,sBAAsB,EACtB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,0BAA0B,EAC1B,8BAA8B,EAC9B,wCAAwC,EACxC,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,aAAa,EACb,mBAAmB,EACnB,oBAAoB,EACpB,0BAA0B,EAC1B,oBAAoB,EACpB,yBAAyB,EACzB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,OAAO,GACR,MAAM,WAAW,CAAC;AACnB,OAAO,EAAC,aAAa,EAAC,MAAM,UAAU,CAAC;AACvC,OAAO,EAAC,mBAAmB,EAAE,MAAM,EAAC,MAAM,UAAU,CAAC"}
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
* @file index.ts
|
|
5
5
|
* @input The domain files of the UIKit constants table
|
|
6
6
|
* @output Re-exports `springs` and one constant per spring (`SHEET_PRESENT_SPRING`,
|
|
7
|
-
* …), `scroll`, `timing`, `navigation`, `
|
|
8
|
-
* the `slider` and switch (`switchControl`) domains, and
|
|
9
|
-
* thresholds (one `UIKIT_*` group per recognizer, their union
|
|
7
|
+
* …), `scroll`, `timing`, `navigation`, `picker`, `progressBar`,
|
|
8
|
+
* `segmentedControl`, the `slider` and switch (`switchControl`) domains, and
|
|
9
|
+
* the gesture thresholds (one `UIKIT_*` group per recognizer, their union
|
|
10
10
|
* `UIKIT_GESTURES`, and the haptic tables)
|
|
11
11
|
* @position Entry of the UIKit constants table (motion/uikit). Internal to
|
|
12
12
|
* core: not exported from the package entry point
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
|
|
23
23
|
export { HAPTIC_FEEDBACK_KINDS, HAPTIC_VIBRATION_PATTERNS, UIKIT_CLICK, UIKIT_CONTROL, UIKIT_GESTURES, UIKIT_LONG_PRESS, UIKIT_PAN, UIKIT_PINCH, UIKIT_PRESS, UIKIT_ROTATION, UIKIT_SCREEN_EDGE_PAN, UIKIT_SWIPE, UIKIT_TAP, UIKIT_VELOCITY } from "./gestures.js";
|
|
24
24
|
export { navigation, registerNavigationTable } from "./navigation.js";
|
|
25
|
+
export { picker } from "./picker.js";
|
|
25
26
|
export { progressBar, registerProgressBarTable } from "./progressBar.js";
|
|
26
27
|
export { registerScrollTable, scroll } from "./scroll.js";
|
|
27
28
|
export { segmentedControl } from "./segmented.js";
|