@astryxdesign/core 0.7.7 → 0.7.8-canary.0588a13
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 +1 -1
- package/dist/BottomSheet/BottomSheetPanel.d.ts.map +1 -1
- package/dist/BottomSheet/BottomSheetPanel.js +55 -18
- package/dist/BottomSheet/BottomSheetSwitcher.d.ts.map +1 -1
- package/dist/BottomSheet/BottomSheetSwitcher.js +5 -0
- package/dist/BottomSheet/bottomSheetStack.js +1 -1
- package/dist/BottomSheet/useSheetGestures.d.ts +3 -1
- package/dist/BottomSheet/useSheetGestures.d.ts.map +1 -1
- package/dist/BottomSheet/useSheetGestures.js +16 -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 +20 -2
- package/dist/CheckboxList/CheckboxList.d.ts.map +1 -1
- package/dist/CheckboxList/CheckboxList.js +12 -4
- package/dist/CheckboxList/CheckboxListContext.d.ts +7 -0
- package/dist/CheckboxList/CheckboxListContext.d.ts.map +1 -1
- package/dist/CheckboxList/CheckboxListContext.js +2 -1
- package/dist/CheckboxList/CheckboxListItem.d.ts.map +1 -1
- package/dist/CheckboxList/CheckboxListItem.js +14 -2
- package/dist/CheckboxList/requiredGroup.d.ts +22 -0
- package/dist/CheckboxList/requiredGroup.d.ts.map +1 -0
- package/dist/CheckboxList/requiredGroup.js +52 -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 +646 -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 +133 -120
- package/dist/DateInput/datePickerTouch.d.ts +13 -0
- package/dist/DateInput/datePickerTouch.d.ts.map +1 -0
- package/dist/DateInput/datePickerTouch.js +14 -0
- 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 +94 -0
- package/dist/DateInput/wheelOptions.d.ts.map +1 -0
- package/dist/DateInput/wheelOptions.js +110 -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 +70 -127
- 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 +26 -34
- package/dist/Icon/Icon.d.ts +5 -1
- package/dist/Icon/Icon.d.ts.map +1 -1
- package/dist/Icon/Icon.js +20 -3
- 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/Overlay/Overlay.d.ts.map +1 -1
- package/dist/Overlay/Overlay.js +7 -2
- 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 +41 -4
- package/dist/PowerSearch/PowerSearch.d.ts.map +1 -1
- package/dist/PowerSearch/PowerSearch.js +441 -134
- package/dist/PowerSearch/PowerSearchBottomSheet.d.ts +125 -0
- package/dist/PowerSearch/PowerSearchBottomSheet.d.ts.map +1 -0
- package/dist/PowerSearch/PowerSearchBottomSheet.js +2041 -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 +116 -92
- package/dist/Resizable/createResizable.d.ts +199 -0
- package/dist/Resizable/createResizable.d.ts.map +1 -0
- package/dist/Resizable/createResizable.js +733 -0
- package/dist/Resizable/separatorAttributes.d.ts +45 -0
- package/dist/Resizable/separatorAttributes.d.ts.map +1 -0
- package/dist/Resizable/separatorAttributes.js +35 -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 +12 -0
- package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts.map +1 -1
- package/dist/Table/plugins/rowExpansion/useTableRowExpansion.js +17 -3
- package/dist/Table/plugins/stickyColumns/useTableStickyColumns.d.ts.map +1 -1
- package/dist/Table/plugins/stickyColumns/useTableStickyColumns.js +2 -0
- package/dist/Table/plugins/tree/useTableTreeData.d.ts +11 -0
- package/dist/Table/plugins/tree/useTableTreeData.d.ts.map +1 -1
- package/dist/Table/plugins/tree/useTableTreeData.js +27 -14
- 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/TimeWheels.d.ts +32 -0
- package/dist/TimeInput/TimeWheels.d.ts.map +1 -0
- package/dist/TimeInput/TimeWheels.js +144 -0
- package/dist/TimeInput/TouchTimeField.d.ts.map +1 -1
- package/dist/TimeInput/TouchTimeField.js +63 -116
- package/dist/TimeInput/timeWheelRules.d.ts +124 -0
- package/dist/TimeInput/timeWheelRules.d.ts.map +1 -0
- package/dist/TimeInput/timeWheelRules.js +277 -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 +12 -18
- 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 +200 -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 +53 -8
- package/dist/gestures/GestureHost.d.ts +16 -1
- package/dist/gestures/GestureHost.d.ts.map +1 -1
- package/dist/gestures/GestureHost.js +4 -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 +18 -7
- 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 +45 -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-english/Resizable/createResizable.generated.d.ts +8 -0
- package/dist/i18n/generated-english/Resizable/createResizable.generated.d.ts.map +1 -0
- package/dist/i18n/generated-english/Resizable/createResizable.generated.js +13 -0
- package/dist/i18n/generated-english/Table/plugins/rowExpansion/useTableRowExpansion.generated.d.ts.map +1 -1
- package/dist/i18n/generated-english/Table/plugins/rowExpansion/useTableRowExpansion.generated.js +3 -1
- package/dist/i18n/generated-english/Table/plugins/tree/useTableTreeData.generated.d.ts.map +1 -1
- package/dist/i18n/generated-english/Table/plugins/tree/useTableTreeData.generated.js +3 -1
- package/dist/i18n/generated-english/TimeInput/TimeWheels.generated.d.ts +8 -0
- package/dist/i18n/generated-english/TimeInput/TimeWheels.generated.d.ts.map +1 -0
- package/dist/i18n/generated-english/TimeInput/TimeWheels.generated.js +17 -0
- package/dist/i18n/generated-locales/en.generated.d.ts.map +1 -1
- package/dist/i18n/generated-locales/en.generated.js +37 -0
- package/dist/i18n/generated-locales/pseudo.generated.d.ts.map +1 -1
- package/dist/i18n/generated-locales/pseudo.generated.js +37 -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/keyboard/index.d.ts +17 -0
- package/dist/keyboard/index.d.ts.map +1 -0
- package/dist/keyboard/index.js +19 -0
- package/dist/keyboard/keyboardHeight.d.ts +149 -0
- package/dist/keyboard/keyboardHeight.d.ts.map +1 -0
- package/dist/keyboard/keyboardHeight.js +432 -0
- package/dist/keyboard/keyboardLayoutGuide.d.ts +59 -0
- package/dist/keyboard/keyboardLayoutGuide.d.ts.map +1 -0
- package/dist/keyboard/keyboardLayoutGuide.js +207 -0
- package/dist/keyboard/keyboardModel.d.ts +93 -0
- package/dist/keyboard/keyboardModel.d.ts.map +1 -0
- package/dist/keyboard/keyboardModel.js +220 -0
- package/dist/keyboard/rideKeyboard.d.ts +42 -0
- package/dist/keyboard/rideKeyboard.d.ts.map +1 -0
- package/dist/keyboard/rideKeyboard.js +77 -0
- package/dist/keyboard/useMobileKeyboard.d.ts +61 -0
- package/dist/keyboard/useMobileKeyboard.d.ts.map +1 -0
- package/dist/keyboard/useMobileKeyboard.js +699 -0
- package/dist/motion/android/index.d.ts +16 -0
- package/dist/motion/android/index.d.ts.map +1 -0
- package/dist/motion/android/index.js +18 -0
- package/dist/motion/android/keyboard.d.ts +83 -0
- package/dist/motion/android/keyboard.d.ts.map +1 -0
- package/dist/motion/android/keyboard.js +96 -0
- 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/datePicker.d.ts +58 -0
- package/dist/motion/uikit/datePicker.d.ts.map +1 -0
- package/dist/motion/uikit/datePicker.js +60 -0
- package/dist/motion/uikit/index.d.ts +6 -4
- package/dist/motion/uikit/index.d.ts.map +1 -1
- package/dist/motion/uikit/index.js +6 -4
- 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 +6 -4
- package/dist/utils/interactionOverlay.stylex.d.ts.map +1 -1
- package/dist/utils/interactionOverlay.stylex.js +6 -4
- 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/layoutViewport.d.ts +25 -0
- package/dist/utils/layoutViewport.d.ts.map +1 -0
- package/dist/utils/layoutViewport.js +102 -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 +6 -0
- package/dist/utils/pressFeedback.d.ts.map +1 -1
- package/dist/utils/pressFeedback.js +97 -18
- package/dist/utils/pressGesture.d.ts +4 -2
- package/dist/utils/pressGesture.d.ts.map +1 -1
- package/dist/utils/pressGesture.js +3 -1
- package/dist/utils/selectionLock.d.ts +10 -1
- package/dist/utils/selectionLock.d.ts.map +1 -1
- package/dist/utils/selectionLock.js +31 -5
- package/dist/utils/sharedMutationObserver.d.ts +2 -1
- package/dist/utils/sharedMutationObserver.d.ts.map +1 -1
- package/dist/utils/sharedMutationObserver.js +2 -1
- package/dist/utils/timeParser.d.ts +2 -1
- package/dist/utils/timeParser.d.ts.map +1 -1
- package/dist/utils/timeParser.js +29 -3
- 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 +148 -0
- package/locales/pseudo.json +111 -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.doc.mjs +1 -1
- package/src/BottomSheet/BottomSheet.tsx +1 -0
- package/src/BottomSheet/BottomSheetPanel.tsx +80 -16
- package/src/BottomSheet/BottomSheetSwitcher.doc.mjs +5 -0
- package/src/BottomSheet/BottomSheetSwitcher.tsx +5 -0
- package/src/BottomSheet/bottomSheetStack.ts +1 -1
- package/src/BottomSheet/useSheetGestures.ts +16 -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 +14 -0
- package/src/CheckboxList/CheckboxList.tsx +43 -2
- package/src/CheckboxList/CheckboxListContext.tsx +9 -1
- package/src/CheckboxList/CheckboxListItem.tsx +23 -2
- package/src/CheckboxList/requiredGroup.ts +77 -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 +796 -0
- package/src/DateInput/TouchDateField.tsx +6 -32
- package/src/DateInput/Wheel.tsx +188 -171
- package/src/DateInput/datePickerTouch.ts +15 -0
- 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 +184 -0
- package/src/DateInput/wheelPhysics.ts +406 -0
- package/src/DateInput/wheelStrip.ts +341 -0
- package/src/DateTimeInput/TouchDateTimeField.tsx +100 -189
- 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 +55 -55
- package/src/Icon/Icon.doc.mjs +51 -10
- package/src/Icon/Icon.tsx +31 -8
- 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/Overlay/Overlay.tsx +7 -2
- 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 +622 -157
- package/src/PowerSearch/PowerSearchBottomSheet.tsx +2700 -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 +187 -135
- package/src/Resizable/createResizable.ts +1046 -0
- package/src/Resizable/separatorAttributes.ts +73 -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 +31 -7
- package/src/Table/plugins/stickyColumns/useTableStickyColumns.tsx +2 -0
- package/src/Table/plugins/tree/useTableTreeData.tsx +43 -20
- package/src/Table/useTableRowExpansion.doc.mjs +9 -0
- package/src/Table/useTableTreeData.doc.mjs +15 -3
- package/src/TextArea/TextArea.tsx +2 -7
- package/src/TextInput/TextInput.tsx +13 -17
- package/src/TimeInput/TimeInput.tsx +2 -0
- package/src/TimeInput/TimeWheels.tsx +218 -0
- package/src/TimeInput/TouchTimeField.tsx +93 -155
- package/src/TimeInput/timeWheelRules.ts +352 -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 +17 -23
- 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 +243 -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 +6 -5
- 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 +25 -9
- 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 +46 -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-english/Resizable/createResizable.generated.ts +14 -0
- package/src/i18n/generated-english/Table/plugins/rowExpansion/useTableRowExpansion.generated.ts +3 -1
- package/src/i18n/generated-english/Table/plugins/tree/useTableTreeData.generated.ts +3 -1
- package/src/i18n/generated-english/TimeInput/TimeWheels.generated.ts +18 -0
- package/src/i18n/generated-locales/en.generated.ts +47 -0
- package/src/i18n/generated-locales/pseudo.generated.ts +48 -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/keyboard/README.md +197 -0
- package/src/keyboard/index.ts +48 -0
- package/src/keyboard/keyboardHeight.ts +543 -0
- package/src/keyboard/keyboardLayoutGuide.ts +266 -0
- package/src/keyboard/keyboardModel.ts +301 -0
- package/src/keyboard/rideKeyboard.ts +100 -0
- package/src/keyboard/useMobileKeyboard.ts +866 -0
- package/src/motion/MEASUREMENTS.md +28 -0
- package/src/motion/README.md +12 -5
- package/src/motion/android/index.ts +18 -0
- package/src/motion/android/keyboard.ts +96 -0
- 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/datePicker.ts +60 -0
- package/src/motion/uikit/index.ts +6 -4
- 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 +6 -4
- package/src/utils/isFocusDetached.ts +34 -0
- package/src/utils/layoutViewport.ts +104 -0
- package/src/utils/plainDate.ts +80 -4
- package/src/utils/pressFeedback.ts +126 -30
- package/src/utils/pressGesture.ts +4 -2
- package/src/utils/selectionLock.ts +40 -6
- package/src/utils/sharedMutationObserver.ts +2 -1
- package/src/utils/timeParser.ts +40 -3
- package/src/utils/triggerFocus.ts +80 -0
- package/dist/BottomSheet/useMobileKeyboard.d.ts +0 -21
- package/dist/BottomSheet/useMobileKeyboard.d.ts.map +0 -1
- package/dist/BottomSheet/useMobileKeyboard.js +0 -407
- 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/BottomSheet/useMobileKeyboard.ts +0 -538
- package/src/Calendar/getStandaloneShortWeekdayNames.ts +0 -38
- package/src/Layer/usePressPin.ts +0 -510
- package/src/internal/touch-sheet.ts +0 -21
package/src/motion/animator.ts
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,6 +181,7 @@
|
|
|
180
181
|
*/
|
|
181
182
|
|
|
182
183
|
import {cubicBezier} from './bezier';
|
|
184
|
+
import {LATE_START_MS} from './frameBlock';
|
|
183
185
|
import {solveSpring, toSpring, type SpringDescription} from './spring';
|
|
184
186
|
import {registerPresentedOffset, type PresentedSource} from './presentation';
|
|
185
187
|
import {resolveMotion} from './resolveMotion';
|
|
@@ -188,6 +190,7 @@ import {
|
|
|
188
190
|
registerReducedMotionCrossFade,
|
|
189
191
|
} from './uikit/timing';
|
|
190
192
|
import {planReducedMotion, type ReducedMotionView} from './reducedMotionPlan';
|
|
193
|
+
import {themeReducesMotion} from '../privateAttributes/reducedMotion.stylex';
|
|
191
194
|
|
|
192
195
|
/**
|
|
193
196
|
* A value the animator can drive.
|
|
@@ -244,18 +247,18 @@ export interface AnimateOptions {
|
|
|
244
247
|
crossfadeAs?: 'entrance' | 'exit';
|
|
245
248
|
/**
|
|
246
249
|
* When the call's animations start. By default a call from rest starts
|
|
247
|
-
* when the browser commits it
|
|
248
|
-
*
|
|
250
|
+
* when the browser commits it. A call that continues motion on screen (a
|
|
251
|
+
* retarget) starts now, from the value on screen. A curve whose tail
|
|
252
|
+
* already shows as at rest counts as rest. Ignored with `at`.
|
|
249
253
|
* - `'commit'`: a call that continues motion also starts when the browser
|
|
250
|
-
* commits it
|
|
251
|
-
*
|
|
252
|
-
*
|
|
253
|
-
*
|
|
254
|
-
*
|
|
255
|
-
*
|
|
256
|
-
*
|
|
257
|
-
*
|
|
258
|
-
* continues motion on screen (a retarget) starts now, as by default.
|
|
254
|
+
* commits it. The browser dates it, as it dates a call from rest.
|
|
255
|
+
* - `'presented'`: a call from rest leaves its element at rest. Its
|
|
256
|
+
* animations are created two frames later, once the frame with the
|
|
257
|
+
* element at rest has been presented. They then start at their commit,
|
|
258
|
+
* so a busy UI process delays the motion instead of skipping into it.
|
|
259
|
+
* Any other change to the animator before then creates the animations
|
|
260
|
+
* first, in call order. A call that continues motion on screen starts
|
|
261
|
+
* now, as by default.
|
|
259
262
|
*/
|
|
260
263
|
start?: 'commit' | 'presented';
|
|
261
264
|
/**
|
|
@@ -297,7 +300,7 @@ export interface MotionCurve {
|
|
|
297
300
|
}
|
|
298
301
|
|
|
299
302
|
/**
|
|
300
|
-
* Options of `
|
|
303
|
+
* Options of `createMotionAnimator`.
|
|
301
304
|
*/
|
|
302
305
|
/** How `set` puts values in place. */
|
|
303
306
|
export interface SetOptions {
|
|
@@ -652,15 +655,20 @@ const SAMPLE_TOLERANCE: Record<MotionProperty, number> = {
|
|
|
652
655
|
/** Keyframes start on this grid (ms) and are split where the curve needs it. */
|
|
653
656
|
const SAMPLE_GRID_MS = 1000 / 30;
|
|
654
657
|
|
|
655
|
-
/**
|
|
656
|
-
|
|
658
|
+
/**
|
|
659
|
+
* A curve within this many sample tolerances of its target can show as at
|
|
660
|
+
* rest. A call on it then starts as one from rest does, at the browser's start.
|
|
661
|
+
*/
|
|
662
|
+
const REST_DISTANCE_TOLERANCES = 2;
|
|
657
663
|
|
|
658
664
|
/**
|
|
659
|
-
*
|
|
660
|
-
*
|
|
665
|
+
* A curve shows as at rest only while it moves at most one `SAMPLE_TOLERANCE`
|
|
666
|
+
* a frame at this rate.
|
|
661
667
|
*/
|
|
662
|
-
|
|
663
|
-
|
|
668
|
+
const REST_FRAMES_PER_SECOND = 60;
|
|
669
|
+
|
|
670
|
+
/** A curve that has not settled by then (an undamped spring) snaps. */
|
|
671
|
+
const MAX_DURATION_MS = 30_000;
|
|
664
672
|
|
|
665
673
|
/**
|
|
666
674
|
* The task calls from rest are made in, shared by every call made in it
|
|
@@ -803,7 +811,7 @@ export function animatorFor(
|
|
|
803
811
|
const key = options.pseudoElement ?? '';
|
|
804
812
|
let animator = byPseudo.get(key);
|
|
805
813
|
if (animator == null) {
|
|
806
|
-
animator =
|
|
814
|
+
animator = createMotionAnimator(element, options);
|
|
807
815
|
byPseudo.set(key, animator);
|
|
808
816
|
}
|
|
809
817
|
return animator;
|
|
@@ -920,7 +928,7 @@ const REDUCED_TRANSITION: SpringTransition = {
|
|
|
920
928
|
*
|
|
921
929
|
* @example
|
|
922
930
|
* ```
|
|
923
|
-
* const animator =
|
|
931
|
+
* const animator = createMotionAnimator(sheet);
|
|
924
932
|
* // finger lifts at 1200 px/s heading for the detent at 0 (a component
|
|
925
933
|
* // passes the spring of its motion role):
|
|
926
934
|
* animator.animate({y: 0}, {spring: {response: 0.45, dampingRatio: 0.9}, velocity: {y: 1200}});
|
|
@@ -929,7 +937,7 @@ const REDUCED_TRANSITION: SpringTransition = {
|
|
|
929
937
|
* animator.stop(['y']);
|
|
930
938
|
* ```
|
|
931
939
|
*/
|
|
932
|
-
export function
|
|
940
|
+
export function createMotionAnimator(
|
|
933
941
|
element: HTMLElement | null,
|
|
934
942
|
options: AnimatorOptions = {},
|
|
935
943
|
): Animator {
|
|
@@ -958,8 +966,10 @@ export function createAnimator(
|
|
|
958
966
|
};
|
|
959
967
|
const pseudoElement = options.pseudoElement;
|
|
960
968
|
// Reduced Motion reads the person's settings and nothing else: no option
|
|
961
|
-
// overrides them (design:reduced-motion DR4).
|
|
962
|
-
|
|
969
|
+
// overrides them (design:reduced-motion DR4). A theme that reduces motion
|
|
970
|
+
// for everyone counts as the setting.
|
|
971
|
+
const prefersReducedMotion = () =>
|
|
972
|
+
defaultPrefersReducedMotion() || themeReducesMotion(target);
|
|
963
973
|
const isCoarsePointer = defaultIsCoarsePointer;
|
|
964
974
|
const resting: Record<MotionProperty, number> = {
|
|
965
975
|
...IDENTITY,
|
|
@@ -1165,6 +1175,22 @@ export function createAnimator(
|
|
|
1165
1175
|
return curveAt(property, time);
|
|
1166
1176
|
};
|
|
1167
1177
|
|
|
1178
|
+
/**
|
|
1179
|
+
* Whether a curve's tail already shows as at rest at `time`. Under a
|
|
1180
|
+
* starved main thread the browser commits a call late. A call that starts
|
|
1181
|
+
* at its own time then skips that far into its curve. One that starts at
|
|
1182
|
+
* the commit holds an element that hardly moves.
|
|
1183
|
+
*/
|
|
1184
|
+
const showsAtRest = (
|
|
1185
|
+
property: MotionProperty,
|
|
1186
|
+
segment: Segment,
|
|
1187
|
+
time: number,
|
|
1188
|
+
): boolean =>
|
|
1189
|
+
Math.abs(valueAt(property, time) - segment.target) <=
|
|
1190
|
+
REST_DISTANCE_TOLERANCES * SAMPLE_TOLERANCE[property] &&
|
|
1191
|
+
Math.abs(velocityAt(property, time)) <=
|
|
1192
|
+
SAMPLE_TOLERANCE[property] * REST_FRAMES_PER_SECOND;
|
|
1193
|
+
|
|
1168
1194
|
const velocityAt = (property: MotionProperty, time: number): number => {
|
|
1169
1195
|
const held = segments.get(property);
|
|
1170
1196
|
if (held != null && isHeld(held)) {
|
|
@@ -2033,10 +2059,10 @@ export function createAnimator(
|
|
|
2033
2059
|
// -- starting from rest ---------------------------------------------------
|
|
2034
2060
|
|
|
2035
2061
|
/**
|
|
2036
|
-
* A call starts from rest when nothing on the channels it drives
|
|
2037
|
-
*
|
|
2038
|
-
*
|
|
2039
|
-
* start.
|
|
2062
|
+
* A call starts from rest when nothing on the channels it drives moves on
|
|
2063
|
+
* screen and nothing pins its clock (`at`). A curve still waiting for its
|
|
2064
|
+
* first frame counts as rest, as does one whose tail already shows as at
|
|
2065
|
+
* rest. Returns its start group, or null for an explicit start.
|
|
2040
2066
|
*/
|
|
2041
2067
|
const beginGroup = (
|
|
2042
2068
|
time: number,
|
|
@@ -2070,10 +2096,12 @@ export function createAnimator(
|
|
|
2070
2096
|
}
|
|
2071
2097
|
return null;
|
|
2072
2098
|
}
|
|
2073
|
-
// A call that continues motion starts now unless it asks for the
|
|
2074
|
-
// browser's start (`commit`). `presented` asks only for a call from rest
|
|
2075
|
-
//
|
|
2076
|
-
// the value and velocity on screen
|
|
2099
|
+
// A call that continues motion starts now, unless it asks for the
|
|
2100
|
+
// browser's start (`commit`). `presented` asks only for a call from rest.
|
|
2101
|
+
// A curve that still moves is not at rest, so a call on it starts now,
|
|
2102
|
+
// from the value and velocity on screen. A tail that shows as at rest
|
|
2103
|
+
// counts as rest, so a call on it waits, under `presented` for its two
|
|
2104
|
+
// frames.
|
|
2077
2105
|
for (const channel of start === 'commit' ? [] : channels) {
|
|
2078
2106
|
for (const property of CHANNELS[channel]) {
|
|
2079
2107
|
const segment = segments.get(property);
|
|
@@ -2084,7 +2112,8 @@ export function createAnimator(
|
|
|
2084
2112
|
time < endOf(property, segment) &&
|
|
2085
2113
|
(segment.group == null ||
|
|
2086
2114
|
segment.group.resolved ||
|
|
2087
|
-
shownSince(property, segment) != null)
|
|
2115
|
+
shownSince(property, segment) != null) &&
|
|
2116
|
+
!showsAtRest(property, segment, time)
|
|
2088
2117
|
) {
|
|
2089
2118
|
return null;
|
|
2090
2119
|
}
|
|
@@ -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,155 @@
|
|
|
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 type {Animator, MotionCurve, MotionProperty} from './animator';
|
|
42
|
+
import {
|
|
43
|
+
SETTLING_EPSILON,
|
|
44
|
+
solveSpring,
|
|
45
|
+
toSpring,
|
|
46
|
+
type SpringDescription,
|
|
47
|
+
} from './spring';
|
|
48
|
+
|
|
49
|
+
/** The step of the finite differences taken on a progress. */
|
|
50
|
+
const STEP = 1e-4;
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* The progress of `spring` from 0 to 1, starting with `velocity` (progress
|
|
54
|
+
* per second): exactly 1 once it settles within `epsilon`.
|
|
55
|
+
*/
|
|
56
|
+
export function progressCurve(
|
|
57
|
+
spring: SpringDescription,
|
|
58
|
+
{
|
|
59
|
+
velocity = 0,
|
|
60
|
+
epsilon = SETTLING_EPSILON,
|
|
61
|
+
}: {velocity?: number; epsilon?: number} = {},
|
|
62
|
+
): MotionCurve {
|
|
63
|
+
const curve = solveSpring(toSpring(spring), {from: 0, to: 1, velocity});
|
|
64
|
+
const duration = curve.settleTime(epsilon);
|
|
65
|
+
return {
|
|
66
|
+
duration,
|
|
67
|
+
at: t => (t >= duration ? 1 : curve.value(t)),
|
|
68
|
+
velocity: t => (t >= duration ? 0 : curve.velocity(t)),
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* The curve of `f(driver(t))`, its velocity by the chain rule: a channel
|
|
74
|
+
* following a path as its progress moves, or a companion following any
|
|
75
|
+
* driving curve (a sheet's `y` mapped onto its scrim's opacity). The driver
|
|
76
|
+
* is any MotionCurve, not only a progress from 0 to 1. A companion played on
|
|
77
|
+
* another animator starts with its driver (`{at: start}`; see the file
|
|
78
|
+
* header).
|
|
79
|
+
*/
|
|
80
|
+
export function mapProgress(
|
|
81
|
+
driver: MotionCurve,
|
|
82
|
+
f: (value: number) => number,
|
|
83
|
+
): MotionCurve {
|
|
84
|
+
return {
|
|
85
|
+
duration: driver.duration,
|
|
86
|
+
at: t => f(driver.at(t)),
|
|
87
|
+
velocity: t => {
|
|
88
|
+
const value = driver.at(t);
|
|
89
|
+
return (
|
|
90
|
+
((f(value + STEP) - f(value - STEP)) / (2 * STEP)) * driver.velocity(t)
|
|
91
|
+
);
|
|
92
|
+
},
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* The linear map from `input` to `output`, held at `output`'s ends outside
|
|
98
|
+
* `input` unless `clamp` is false: what most companions are (a scrim's dim
|
|
99
|
+
* along a sheet's travel, a parallax, a dismissal's fade). Either range may
|
|
100
|
+
* run backward (`[openY, closedY]`).
|
|
101
|
+
*/
|
|
102
|
+
export function mapRange(
|
|
103
|
+
input: readonly [number, number],
|
|
104
|
+
output: readonly [number, number],
|
|
105
|
+
{clamp = true}: {clamp?: boolean} = {},
|
|
106
|
+
): (x: number) => number {
|
|
107
|
+
const [a, b] = input;
|
|
108
|
+
const [c, d] = output;
|
|
109
|
+
return x => {
|
|
110
|
+
let t = a === b ? (x < a ? 0 : 1) : (x - a) / (b - a);
|
|
111
|
+
if (clamp) {
|
|
112
|
+
t = Math.min(1, Math.max(0, t));
|
|
113
|
+
}
|
|
114
|
+
// Exact at both ends.
|
|
115
|
+
return t === 0 ? c : t === 1 ? d : c + (d - c) * t;
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* One channel of a path: an animator property and its value at each
|
|
121
|
+
* progress.
|
|
122
|
+
*/
|
|
123
|
+
export interface ProgressChannel {
|
|
124
|
+
readonly property: MotionProperty;
|
|
125
|
+
/** The property's value at progress `p`. */
|
|
126
|
+
at(p: number): number;
|
|
127
|
+
/**
|
|
128
|
+
* What one unit of the property weighs in the projection, in a unit the
|
|
129
|
+
* channels share (px per unit of scale for a box `weight` px wide). 1 by
|
|
130
|
+
* default.
|
|
131
|
+
*/
|
|
132
|
+
readonly weight?: number;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* The progress velocity, per second, that continues what `animator`
|
|
137
|
+
* presents at `now` along a path that starts there: the presented velocity
|
|
138
|
+
* projected on the path's tangent at progress 0, v·t / (t·t). 0 when the
|
|
139
|
+
* path does not move any of its channels.
|
|
140
|
+
*/
|
|
141
|
+
export function presentedProgressVelocity(
|
|
142
|
+
animator: Pick<Animator, 'getVelocity'>,
|
|
143
|
+
channels: ReadonlyArray<ProgressChannel>,
|
|
144
|
+
now?: number,
|
|
145
|
+
): number {
|
|
146
|
+
let along = 0;
|
|
147
|
+
let squared = 0;
|
|
148
|
+
for (const channel of channels) {
|
|
149
|
+
const weight = channel.weight ?? 1;
|
|
150
|
+
const tangent = ((channel.at(STEP) - channel.at(0)) / STEP) * weight;
|
|
151
|
+
along += animator.getVelocity(channel.property, now) * weight * tangent;
|
|
152
|
+
squared += tangent * tangent;
|
|
153
|
+
}
|
|
154
|
+
return squared > 1e-12 ? along / squared : 0;
|
|
155
|
+
}
|
|
@@ -46,6 +46,7 @@
|
|
|
46
46
|
|
|
47
47
|
import {defaultIsCoarsePointer, defaultPrefersReducedMotion} from './animator';
|
|
48
48
|
import {resolveMotion} from './resolveMotion';
|
|
49
|
+
import {themeReducesMotion} from '../privateAttributes/reducedMotion.stylex';
|
|
49
50
|
import {
|
|
50
51
|
reducedMotionCrossFade,
|
|
51
52
|
registerReducedMotionCrossFade,
|
|
@@ -83,7 +84,8 @@ export function reducedMotionFade(
|
|
|
83
84
|
touchRelease?: boolean;
|
|
84
85
|
} = {},
|
|
85
86
|
): ReducedMotionFade | null {
|
|
86
|
-
|
|
87
|
+
// A theme that reduces motion for everyone counts as the setting.
|
|
88
|
+
if (!defaultPrefersReducedMotion() && !themeReducesMotion(element)) {
|
|
87
89
|
return null;
|
|
88
90
|
}
|
|
89
91
|
const fades = options.touchRelease === true || defaultIsCoarsePointer();
|
|
@@ -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
|
+
} as const;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @file datePicker.ts
|
|
5
|
+
* @input Nothing; data only
|
|
6
|
+
* @output Exports `datePicker`: the rules UIDatePicker adds to its wheels. The
|
|
7
|
+
* month/year wheels change the date, the AM/PM column follows the hour, a
|
|
8
|
+
* column turns back onto a bound, and a day clamps to its month.
|
|
9
|
+
* @position The date picker domain of the UIKit constants table
|
|
10
|
+
* (motion/uikit), for the date and time touch sheets. Every leaf names its
|
|
11
|
+
* source, which uikit.test.ts checks.
|
|
12
|
+
*
|
|
13
|
+
* SYNC: When modified, update /packages/core/src/motion/MEASUREMENTS.md and
|
|
14
|
+
* /packages/core/src/motion/README.md.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
export const datePicker = {
|
|
18
|
+
calendar: {
|
|
19
|
+
monthYearWheels: {
|
|
20
|
+
/**
|
|
21
|
+
* Turning the month or year wheel changes the picker's date, keeping
|
|
22
|
+
* the day, and fires `valueChanged`.
|
|
23
|
+
* @source measured: UIKit lab, iOS 26.2 simulator, `.date` `.inline`,
|
|
24
|
+
* October 15 → May 15 after the month wheel's fling, with a
|
|
25
|
+
* `valueChanged` carrying May 15, Oct 23 2026
|
|
26
|
+
*/
|
|
27
|
+
changesDate: true,
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
wheels: {
|
|
31
|
+
/**
|
|
32
|
+
* In 12-hour time the AM/PM column follows the hour. Turning the hour from
|
|
33
|
+
* 11 to 12 turns the time from AM to PM, and back. From 12 to 1 it keeps
|
|
34
|
+
* the half of the day.
|
|
35
|
+
* @source measured: UIKit lab, iOS 26.2 simulator, `.time` `.wheels`,
|
|
36
|
+
* en_US: 11:58 AM, hour wheel +1 row → `valueChanged` 12:58 PM; then
|
|
37
|
+
* the minute wheel's +4 rows carried the hour from 12 to 1 → 1:02 PM,
|
|
38
|
+
* Oct 23 2026
|
|
39
|
+
*/
|
|
40
|
+
meridiemFollowsHour: true,
|
|
41
|
+
/**
|
|
42
|
+
* A column that comes to rest past `minimumDate` or `maximumDate` turns
|
|
43
|
+
* back onto the bound. Its `valueChanged` already carries the bound. For
|
|
44
|
+
* example, with bounds 9:00–17:00, the hour of 10:00 dragged to 7 reads
|
|
45
|
+
* 9:00 at rest. The hour column then turns 64 pt, two rows, back to 9.
|
|
46
|
+
* @source measured: UIKit lab, iOS 26.2 simulator, `.time` `.wheels`
|
|
47
|
+
* with bounds 9:00–17:00 and `minuteInterval` 15, per-frame hour
|
|
48
|
+
* offsets after the rest (0.4, 2, 7.4, 16, 26.4, 37.7, 48.3, 56.7,
|
|
49
|
+
* 62, 64 pt at 33 ms steps) and the `valueChanged` time, Oct 23 2026
|
|
50
|
+
*/
|
|
51
|
+
restPastBound: 'turnToBound',
|
|
52
|
+
/**
|
|
53
|
+
* In `.date` wheels a day the month does not have clamps to the month's
|
|
54
|
+
* last day (January 30, month +1 → February 28).
|
|
55
|
+
* @source measured: UIKit lab, iOS 26.2 simulator, `.date` `.wheels`
|
|
56
|
+
* with bounds Jun 1 2026 – Mar 15 2027, Oct 23 2026
|
|
57
|
+
*/
|
|
58
|
+
dayClampsToMonth: true,
|
|
59
|
+
},
|
|
60
|
+
} as const;
|
|
@@ -4,10 +4,10 @@
|
|
|
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
|
-
*
|
|
9
|
-
* thresholds
|
|
10
|
-
* `UIKIT_GESTURES`, and the haptic tables
|
|
7
|
+
* …), `scroll`, `timing`, `navigation`, `picker`, `progressBar`,
|
|
8
|
+
* `segmentedControl`, `datePicker`, `slider` and `switchControl`. It also
|
|
9
|
+
* re-exports the gesture thresholds: one `UIKIT_*` group per recognizer,
|
|
10
|
+
* their union `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
|
|
13
13
|
*
|
|
@@ -39,7 +39,9 @@ export {
|
|
|
39
39
|
type GestureConstantUnit,
|
|
40
40
|
type HapticFeedbackKind,
|
|
41
41
|
} from './gestures';
|
|
42
|
+
export {datePicker} from './datePicker';
|
|
42
43
|
export {navigation, registerNavigationTable} from './navigation';
|
|
44
|
+
export {picker} from './picker';
|
|
43
45
|
export {progressBar, registerProgressBarTable} from './progressBar';
|
|
44
46
|
export {registerScrollTable, scroll} from './scroll';
|
|
45
47
|
export {segmentedControl} from './segmented';
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @file picker.ts
|
|
5
|
+
* @input Nothing; data only
|
|
6
|
+
* @output `picker`, UIPickerView's measured constants, and
|
|
7
|
+
* `registerPickerTable`, which makes the tap spin's duration a motion role
|
|
8
|
+
* @position The picker domain of the UIKit table (motion/uikit); read by
|
|
9
|
+
* DateInput's wheelPhysics.ts, wheelStrip.ts and PickerWheel.tsx
|
|
10
|
+
*
|
|
11
|
+
* Lengths are pt at UIKit's scale, times ms and velocities pt/ms. Every leaf
|
|
12
|
+
* carries one `@source`, as uikit.test.ts enforces.
|
|
13
|
+
*
|
|
14
|
+
* SYNC: When modified, update motion/MEASUREMENTS.md and PickerWheel.tsx.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import {registerMotionTable} from '../roles';
|
|
18
|
+
|
|
19
|
+
export const picker = {
|
|
20
|
+
geometry: {
|
|
21
|
+
/**
|
|
22
|
+
* Row pitch: rows sit at k × 32 pt in each column's table.
|
|
23
|
+
* @source measured: UIKit lab (injected host app), iOS 26.2 simulator,
|
|
24
|
+
* iPhone 17 Pro, UIPickerView table offsets and cell frames, Oct 23 2026
|
|
25
|
+
*/
|
|
26
|
+
rowHeight: 32,
|
|
27
|
+
/**
|
|
28
|
+
* The picker's height (its intrinsic content size).
|
|
29
|
+
* @source measured: UIKit lab (injected host app), iOS 26.2 simulator,
|
|
30
|
+
* iPhone 17 Pro, UIPickerView frame, Oct 23 2026
|
|
31
|
+
*/
|
|
32
|
+
height: 216,
|
|
33
|
+
/**
|
|
34
|
+
* d of the rubber band past the first or last row. The column's table view
|
|
35
|
+
* is 291 pt tall in a 216 pt picker. With c = 0.55, scroll.rubberBand's
|
|
36
|
+
* formula puts 10, 50 and 110 pt of finger travel past the end at 5.4, 25.1
|
|
37
|
+
* and 50.1 pt. The measured values are 5.3, 25 and 50.
|
|
38
|
+
* @source measured: UIKit lab (injected host app), iOS 26.2 simulator,
|
|
39
|
+
* iPhone 17 Pro, UIPickerTableView frame and offsets during drags
|
|
40
|
+
* 20, 60 and 120 pt past the last row, Oct 23 2026
|
|
41
|
+
*/
|
|
42
|
+
rubberBandDimension: 291,
|
|
43
|
+
},
|
|
44
|
+
release: {
|
|
45
|
+
/**
|
|
46
|
+
* The speed at which a coast ends. The scroll view projects the target at
|
|
47
|
+
* offset + (v − this) × r ÷ (1 − r), with r = scroll.decelerationRate
|
|
48
|
+
* .normal. That gives 461.33, 502.67 and 266.67 pt for v = 0.9334, 1.0162
|
|
49
|
+
* and 0.5436, all three to 0.3 pt. The coast onto the row it snaps to keeps
|
|
50
|
+
* the release velocity. It re-solves the rate so that the speed reaches
|
|
51
|
+
* this exactly at that row, where it stops. Two coasts fit it to 0.4 and
|
|
52
|
+
* 0.3 pt RMS, ending within 30 ms of the measured end.
|
|
53
|
+
* @source measured: UIKit lab (injected host app), iOS 26.2 simulator,
|
|
54
|
+
* iPhone 17 Pro, scrollViewWillEndDragging targets and per-frame
|
|
55
|
+
* offsets to rest, Oct 23 2026
|
|
56
|
+
*/
|
|
57
|
+
stopSpeed: 0.0089,
|
|
58
|
+
/**
|
|
59
|
+
* Below this release speed (pt/ms, a scroll view's release velocity), a
|
|
60
|
+
* release inside the rows carries no velocity. The wheel then snaps to the
|
|
61
|
+
* nearest row instead of coasting. Past the first or last row the velocity
|
|
62
|
+
* is kept, however small (0.0816 kept). A pause before the lift does not
|
|
63
|
+
* zero it: the velocity changes only when the finger moves.
|
|
64
|
+
* @source measured: UIKit lab (injected host app), iOS 26.2 simulator,
|
|
65
|
+
* iPhone 17 Pro, steady 100 pt drags mid-list lifted while moving: zeroed
|
|
66
|
+
* at 100 to 250 pt/s both ways, passed from 260 pt/s (0.2577 the
|
|
67
|
+
* smallest velocity handed on); a 300 pt/s drag held still 300 ms
|
|
68
|
+
* still coasted, Oct 23 2026
|
|
69
|
+
*/
|
|
70
|
+
minimumSpeed: 0.25,
|
|
71
|
+
},
|
|
72
|
+
/**
|
|
73
|
+
* A release without velocity, or a coast already on a row, eases onto the
|
|
74
|
+
* nearest row exponentially. Each millisecond it covers this fraction of the
|
|
75
|
+
* distance left: e^(−0.011 t), done in about 0.3 s. Snaps of 4, 6 and 8 pt
|
|
76
|
+
* fit 0.0099, 0.0107 and 0.0123.
|
|
77
|
+
* @source measured: UIKit lab (injected host app), iOS 26.2 simulator,
|
|
78
|
+
* iPhone 17 Pro, per-frame offsets after three slow releases between
|
|
79
|
+
* rows, Oct 23 2026
|
|
80
|
+
*/
|
|
81
|
+
snapRate: 0.011,
|
|
82
|
+
tapSpin: {
|
|
83
|
+
/**
|
|
84
|
+
* A tap on a row turns the wheel onto it in this long (setContentOffset
|
|
85
|
+
* animated), on Core Animation's ease-in-ease-out (timing.curves.move). The
|
|
86
|
+
* row is selected on arrival. A tap on the band's row does nothing.
|
|
87
|
+
* @source measured: UIKit lab (injected host app), iOS 26.2 simulator,
|
|
88
|
+
* iPhone 17 Pro, per-frame offsets after a tap two rows below the band
|
|
89
|
+
* (6.8, 25.1, 50.2, 75.4, 93.7 % at 50 ms steps, arriving at 300 ms;
|
|
90
|
+
* the same with Reduce Motion and Prefer Cross-Fade on), Oct 23 2026
|
|
91
|
+
*/
|
|
92
|
+
durationMs: 300,
|
|
93
|
+
},
|
|
94
|
+
selectionTick: {
|
|
95
|
+
/**
|
|
96
|
+
* One selection haptic per row whose centre reaches the band's centre,
|
|
97
|
+
* at most one per this interval. Not during a tap's spin.
|
|
98
|
+
* @source measured: UIKit lab (injected host app), iOS 26.2 simulator,
|
|
99
|
+
* iPhone 17 Pro, selectionChangedAtLocation: and the feedback
|
|
100
|
+
* generator's minimum interval (0.040 s) logged during drags and
|
|
101
|
+
* coasts, Oct 23 2026
|
|
102
|
+
*/
|
|
103
|
+
minimumIntervalMs: 40,
|
|
104
|
+
},
|
|
105
|
+
} as const;
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Registers the tap spin's duration as an internal motion role,
|
|
109
|
+
* `picker.tapSpin.durationMs`. Every other value stays an internal measured
|
|
110
|
+
* constant. The tap spin's curve is the shared role `timing.curves.move`, and
|
|
111
|
+
* the bounce at an end is `scroll.bounce`. Nothing registers on import, and
|
|
112
|
+
* registering again does nothing.
|
|
113
|
+
*/
|
|
114
|
+
export function registerPickerTable(): void {
|
|
115
|
+
registerMotionTable('picker', picker, {roles: ['tapSpin.durationMs']});
|
|
116
|
+
}
|