@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
|
@@ -3,15 +3,16 @@
|
|
|
3
3
|
/**
|
|
4
4
|
* @file animatedLayout.ts
|
|
5
5
|
* @input The DOM (layout rectangles, computed style), Web Animations, the
|
|
6
|
-
* internal `springs.settle` motion role (motion/roles.ts)
|
|
7
|
-
* cross-fade clock (uikit/timing.ts)
|
|
8
|
-
* @output Exports `createAnimatedLayout
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* `playLayoutSwap`), the edge reveal's
|
|
12
|
-
* `playLayoutEdge`), `playLayoutFrames`
|
|
13
|
-
* the one module that produces the
|
|
14
|
-
* `spec:AST-105` defines
|
|
6
|
+
* internal `springs.settle` motion role (motion/roles.ts), the Reduce Motion
|
|
7
|
+
* cross-fade clock (uikit/timing.ts) and the block measure (frameBlock.ts)
|
|
8
|
+
* @output Exports `createAnimatedLayout`, the opaque `AnimatedLayout` handle,
|
|
9
|
+
* `reportLayoutChange`, `playLayoutChange` and `layoutStartFor`. It also
|
|
10
|
+
* exports the exit hold (`holdLayoutExit`, `releaseLayoutExit`), the
|
|
11
|
+
* in-place swap (`holdLayoutSwap`, `playLayoutSwap`), the edge reveal's
|
|
12
|
+
* two-state form (`holdLayoutEdge`, `playLayoutEdge`), `playLayoutFrames`
|
|
13
|
+
* and `applyLayoutChangeTransition`. It is the one module that produces the
|
|
14
|
+
* size-change glide and the edge reveal `spec:AST-105` defines
|
|
15
|
+
* (`architecture:react-component-runtime` INV12)
|
|
15
16
|
* @position Motion foundation, internal to core. A handle comes from the
|
|
16
17
|
* public `useAnimatedLayout` hook; a component that takes it reports its
|
|
17
18
|
* size changes through this module.
|
|
@@ -79,6 +80,7 @@
|
|
|
79
80
|
* (`spec:AST-105` FR2).
|
|
80
81
|
*/
|
|
81
82
|
|
|
83
|
+
import {LATE_START_MS} from './frameBlock';
|
|
82
84
|
import {motionRole} from './roles';
|
|
83
85
|
import {
|
|
84
86
|
inertCopy,
|
|
@@ -89,8 +91,10 @@ import {
|
|
|
89
91
|
wrapText,
|
|
90
92
|
} from './transientCopy';
|
|
91
93
|
import {isSpring} from './roleValue';
|
|
92
|
-
import {
|
|
94
|
+
import {progressCurve} from './progress';
|
|
95
|
+
import type {SpringDescription} from './spring';
|
|
93
96
|
import {registerSpringsTable, SETTLE_SPRING} from './uikit/springs';
|
|
97
|
+
import {themeReducesMotion} from '../privateAttributes/reducedMotion.stylex';
|
|
94
98
|
import {reducedMotionCrossFade} from './uikit/timing';
|
|
95
99
|
|
|
96
100
|
/** The shared motion role (`spec:AST-105` FR4). */
|
|
@@ -142,17 +146,20 @@ function settleSpring(): SpringDescription {
|
|
|
142
146
|
}
|
|
143
147
|
|
|
144
148
|
function springProgress(description: SpringDescription): SpringProgress {
|
|
145
|
-
const curve =
|
|
146
|
-
const durationMs = Math.max(1, curve.
|
|
149
|
+
const curve = progressCurve(description, {epsilon: 0.001});
|
|
150
|
+
const durationMs = Math.max(1, curve.duration * 1000);
|
|
147
151
|
return {
|
|
148
152
|
durationMs,
|
|
149
|
-
remaining: t => (t >= durationMs ? 0 : curve.
|
|
153
|
+
remaining: t => (t >= durationMs ? 0 : 1 - curve.at(t / 1000)),
|
|
150
154
|
};
|
|
151
155
|
}
|
|
152
156
|
|
|
153
157
|
/** The motion a change in `area` plays now. */
|
|
154
158
|
function layoutMotion(area: Element): LayoutMotion {
|
|
155
|
-
if (
|
|
159
|
+
if (
|
|
160
|
+
matches(area, '(prefers-reduced-motion: reduce)') ||
|
|
161
|
+
themeReducesMotion(area)
|
|
162
|
+
) {
|
|
156
163
|
if (!matches(area, '(pointer: coarse)')) {
|
|
157
164
|
return {kind: 'instant'};
|
|
158
165
|
}
|
|
@@ -223,6 +230,7 @@ function safeAnimate(
|
|
|
223
230
|
element: Element,
|
|
224
231
|
keyframes: Keyframe[],
|
|
225
232
|
options: KeyframeAnimationOptions,
|
|
233
|
+
change?: ChangeStart,
|
|
226
234
|
): Animation | null {
|
|
227
235
|
if (typeof (element as HTMLElement).animate !== 'function') {
|
|
228
236
|
return null;
|
|
@@ -234,16 +242,152 @@ function safeAnimate(
|
|
|
234
242
|
return null;
|
|
235
243
|
}
|
|
236
244
|
ours.add(animation);
|
|
237
|
-
//
|
|
238
|
-
// a retargeted glide keeps moving through the frame it is
|
|
239
|
-
//
|
|
240
|
-
|
|
245
|
+
// The animation starts on the document timeline's current time, not on the
|
|
246
|
+
// next frame. So a retargeted glide keeps moving through the frame it is
|
|
247
|
+
// replaced in. After a block since that frame, Chromium's timeline still
|
|
248
|
+
// reads the frame before the block. A motion started there would skip into
|
|
249
|
+
// its curve, or past all of it. So it starts at the moment of the change
|
|
250
|
+
// instead, and the block delays the motion (startFor). Every animation of
|
|
251
|
+
// one change, in one document, shares that start.
|
|
252
|
+
const doc = element.ownerDocument;
|
|
253
|
+
const now = doc.timeline?.currentTime;
|
|
241
254
|
if (now != null) {
|
|
242
|
-
|
|
255
|
+
// The start of the change it is part of, captured when that change made
|
|
256
|
+
// its first animation (changeStartOf); otherwise the document's.
|
|
257
|
+
const start =
|
|
258
|
+
change != null && change.frame === Number(now)
|
|
259
|
+
? change
|
|
260
|
+
: startFor(doc, Number(now));
|
|
261
|
+
start.last = clockOf(doc);
|
|
262
|
+
animation.startTime = start.at;
|
|
263
|
+
if (start.at !== Number(now)) {
|
|
264
|
+
// Started after the frame time the timeline still reads: until the
|
|
265
|
+
// timeline gets there it shows its first keyframe, not the element at
|
|
266
|
+
// rest.
|
|
267
|
+
const fill = animation.effect?.getTiming().fill;
|
|
268
|
+
animation.effect?.updateTiming({
|
|
269
|
+
fill: fill === 'forwards' || fill === 'both' ? 'both' : 'backwards',
|
|
270
|
+
});
|
|
271
|
+
}
|
|
243
272
|
}
|
|
244
273
|
return animation;
|
|
245
274
|
}
|
|
246
275
|
|
|
276
|
+
/**
|
|
277
|
+
* The start a change's animations share. It is the timeline's frame time,
|
|
278
|
+
* unless a block ran more than LATE_START_MS past that frame before the first
|
|
279
|
+
* of them was made. Then they start at the moment the first of them is made.
|
|
280
|
+
* The frame time is from before the block, so a motion started on it would
|
|
281
|
+
* skip into its curve, or past all of it. Chromium holds the timeline at the
|
|
282
|
+
* frame before a long task once anything in the task reads it.
|
|
283
|
+
*/
|
|
284
|
+
interface ChangeStart {
|
|
285
|
+
/** The frame time the timeline read. */
|
|
286
|
+
readonly frame: number;
|
|
287
|
+
/** When the change's animations start. */
|
|
288
|
+
readonly at: number;
|
|
289
|
+
/** When the last of them was made, on the document's clock. */
|
|
290
|
+
last: number;
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
/**
|
|
294
|
+
* Each document's change start: an iframe or a Picture-in-Picture window
|
|
295
|
+
* keeps its own clock, with its own origin and frames.
|
|
296
|
+
*/
|
|
297
|
+
const changeStarts = new WeakMap<Document, ChangeStart>();
|
|
298
|
+
|
|
299
|
+
/** The clock of the document whose timeline a start is read on. */
|
|
300
|
+
function clockOf(doc: Document): number {
|
|
301
|
+
return (doc.defaultView?.performance ?? performance).now();
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
/**
|
|
305
|
+
* The start the current change's animations share. A change keeps one start
|
|
306
|
+
* from its first animation through the flush of its glides and the parts that
|
|
307
|
+
* ride them. That holds however long the work between them runs, such as the
|
|
308
|
+
* rest of a commit or a slow swap. The start holds while the timeline reads
|
|
309
|
+
* the same frame: through the task that made it and the microtasks after it.
|
|
310
|
+
* A change that begins after a block takes a start of its own (beginChange).
|
|
311
|
+
*/
|
|
312
|
+
function startFor(doc: Document, frame: number): ChangeStart {
|
|
313
|
+
const now = clockOf(doc);
|
|
314
|
+
const held = changeStarts.get(doc);
|
|
315
|
+
if (held != null && held.frame === frame) {
|
|
316
|
+
held.last = now;
|
|
317
|
+
return held;
|
|
318
|
+
}
|
|
319
|
+
const start: ChangeStart = {
|
|
320
|
+
frame,
|
|
321
|
+
at: now - frame <= LATE_START_MS ? frame : now,
|
|
322
|
+
last: now,
|
|
323
|
+
};
|
|
324
|
+
changeStarts.set(doc, start);
|
|
325
|
+
// Let go in a later task: every microtask of this one, where the glides
|
|
326
|
+
// flush and the parts riding them play, has run by then.
|
|
327
|
+
const view = doc.defaultView;
|
|
328
|
+
(view?.setTimeout ?? setTimeout)(() => {
|
|
329
|
+
if (changeStarts.get(doc) === start) {
|
|
330
|
+
changeStarts.delete(doc);
|
|
331
|
+
}
|
|
332
|
+
}, 0);
|
|
333
|
+
return start;
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
/**
|
|
337
|
+
* A change begins as its "before" is read. After a block since the last
|
|
338
|
+
* animation of the change before it, it takes a start of its own. So a change
|
|
339
|
+
* made after a block that follows an earlier layout motion still plays.
|
|
340
|
+
* Changes made together, with no block between them, share one start.
|
|
341
|
+
*/
|
|
342
|
+
function beginChange(doc: Document): void {
|
|
343
|
+
const held = changeStarts.get(doc);
|
|
344
|
+
if (held != null && clockOf(doc) - held.last > LATE_START_MS) {
|
|
345
|
+
changeStarts.delete(doc);
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
/**
|
|
350
|
+
* When the animations of the layout change being made start. Code that
|
|
351
|
+
* follows the change on its own clock reads it, such as a rail's width or a
|
|
352
|
+
* swap's fade. It is the document timeline's current time. After a block
|
|
353
|
+
* since that frame, it is the moment the change made its first animation.
|
|
354
|
+
* Until the timeline reaches it, the change has not started.
|
|
355
|
+
*/
|
|
356
|
+
export function layoutStartFor(document: Document): number {
|
|
357
|
+
const now = document.timeline?.currentTime;
|
|
358
|
+
return now == null ? 0 : startFor(document, Number(now)).at;
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
/**
|
|
362
|
+
* Where `element` shows at the timeline's time `at`: its layout box, moved by
|
|
363
|
+
* its glide's offset then. After a block, WebKit evaluates a running
|
|
364
|
+
* translate on the live clock. The timeline still reads the frame before the
|
|
365
|
+
* block, as every glide here does, so the evaluated box would sit ahead.
|
|
366
|
+
* Glides write px; a translate in percent is not ours, so the box stays.
|
|
367
|
+
*/
|
|
368
|
+
function shownBoxAt(element: Element, at: number): DOMRect {
|
|
369
|
+
const box = element.getBoundingClientRect();
|
|
370
|
+
const glide = glides.get(element);
|
|
371
|
+
const startTime = glide?.animation.startTime;
|
|
372
|
+
if (glide == null || startTime == null) {
|
|
373
|
+
return box;
|
|
374
|
+
}
|
|
375
|
+
const translate =
|
|
376
|
+
element.ownerDocument.defaultView?.getComputedStyle(element).translate ??
|
|
377
|
+
'';
|
|
378
|
+
if (translate.includes('%')) {
|
|
379
|
+
return box;
|
|
380
|
+
}
|
|
381
|
+
const [appliedX = 0, appliedY = 0] = numbersIn(translate);
|
|
382
|
+
const offset = glide.offsetAt(Math.max(0, at - Number(startTime)));
|
|
383
|
+
return new DOMRect(
|
|
384
|
+
box.x + (offset.x - appliedX) * glide.scale.x,
|
|
385
|
+
box.y + (offset.y - appliedY) * glide.scale.y,
|
|
386
|
+
box.width,
|
|
387
|
+
box.height,
|
|
388
|
+
);
|
|
389
|
+
}
|
|
390
|
+
|
|
247
391
|
/** Every animation this module started, so it can tell the app's apart. */
|
|
248
392
|
const ours = new WeakSet<Animation>();
|
|
249
393
|
|
|
@@ -373,6 +517,13 @@ interface Glide {
|
|
|
373
517
|
readonly animation: Animation;
|
|
374
518
|
readonly offsetAt: OffsetCurve;
|
|
375
519
|
readonly durationMs: number;
|
|
520
|
+
/**
|
|
521
|
+
* The offset where the element showed when its old place was read. After a
|
|
522
|
+
* block the glide starts further on, where the compositor has it.
|
|
523
|
+
*/
|
|
524
|
+
readonly shownBefore: {readonly x: number; readonly y: number};
|
|
525
|
+
/** Its ancestors' scale: page px per px of its own offset. */
|
|
526
|
+
readonly scale: {readonly x: number; readonly y: number};
|
|
376
527
|
}
|
|
377
528
|
|
|
378
529
|
const glides = new WeakMap<Element, Glide>();
|
|
@@ -818,6 +969,12 @@ interface Batch {
|
|
|
818
969
|
scheduled: boolean;
|
|
819
970
|
/** Called after every reading and before any glide starts. */
|
|
820
971
|
readonly beforeMove: ((candidates: ReadonlyArray<Element>) => void)[];
|
|
972
|
+
/**
|
|
973
|
+
* The start the change's animations share, taken by its first one: its
|
|
974
|
+
* entrance, or its glides at the flush. A change begun after a block,
|
|
975
|
+
* before this one flushes, takes its own and leaves this one's.
|
|
976
|
+
*/
|
|
977
|
+
start: ChangeStart | null;
|
|
821
978
|
}
|
|
822
979
|
|
|
823
980
|
const batches = new Map<Element, Batch>();
|
|
@@ -840,6 +997,7 @@ function batchFor(area: Element): Batch {
|
|
|
840
997
|
cache: {rects: new Map(), parts: new Map()},
|
|
841
998
|
scheduled: false,
|
|
842
999
|
beforeMove: [],
|
|
1000
|
+
start: null,
|
|
843
1001
|
};
|
|
844
1002
|
batches.set(area, created);
|
|
845
1003
|
// A measurement no commit claims by the next frame (a controlled owner
|
|
@@ -861,6 +1019,39 @@ function batchFor(area: Element): Batch {
|
|
|
861
1019
|
return batch;
|
|
862
1020
|
}
|
|
863
1021
|
|
|
1022
|
+
/**
|
|
1023
|
+
* The start `batch`'s change shares: taken by its first animation, from the
|
|
1024
|
+
* document's (startFor), and kept with the batch through its flush.
|
|
1025
|
+
*/
|
|
1026
|
+
function changeStartOf(batch: Batch): ChangeStart | undefined {
|
|
1027
|
+
const doc = batch.area.ownerDocument;
|
|
1028
|
+
const now = doc.timeline?.currentTime;
|
|
1029
|
+
if (now == null) {
|
|
1030
|
+
return undefined;
|
|
1031
|
+
}
|
|
1032
|
+
if (batch.start == null || batch.start.frame !== Number(now)) {
|
|
1033
|
+
batch.start = startFor(doc, Number(now));
|
|
1034
|
+
}
|
|
1035
|
+
return batch.start;
|
|
1036
|
+
}
|
|
1037
|
+
|
|
1038
|
+
/**
|
|
1039
|
+
* The start of the change being made in `area`, captured now for animations
|
|
1040
|
+
* made later in the task, such as the parts riding a glide. It is its batch's
|
|
1041
|
+
* when one is open there, otherwise the document's.
|
|
1042
|
+
*/
|
|
1043
|
+
function changeStartIn(
|
|
1044
|
+
area: Element | null | undefined,
|
|
1045
|
+
doc: Document,
|
|
1046
|
+
): ChangeStart | undefined {
|
|
1047
|
+
const batch = area == null ? undefined : batches.get(area);
|
|
1048
|
+
if (batch != null) {
|
|
1049
|
+
return changeStartOf(batch);
|
|
1050
|
+
}
|
|
1051
|
+
const now = doc.timeline?.currentTime;
|
|
1052
|
+
return now == null ? undefined : startFor(doc, Number(now));
|
|
1053
|
+
}
|
|
1054
|
+
|
|
864
1055
|
function intersects(a: DOMRect, b: DOMRect): boolean {
|
|
865
1056
|
return (
|
|
866
1057
|
a.width > 0 &&
|
|
@@ -979,6 +1170,9 @@ function flush(batch: Batch): void {
|
|
|
979
1170
|
notify([]);
|
|
980
1171
|
return;
|
|
981
1172
|
}
|
|
1173
|
+
// The change's own start, taken by its entrance when it played one, even
|
|
1174
|
+
// when another change has begun since.
|
|
1175
|
+
const change = changeStartOf(batch);
|
|
982
1176
|
const visible = visibleRect(batch.area);
|
|
983
1177
|
// Every running glide stops first and every new place is read before any
|
|
984
1178
|
// glide starts, so no reading includes another's new motion.
|
|
@@ -987,6 +1181,8 @@ function flush(batch: Batch): void {
|
|
|
987
1181
|
readonly before: DOMRect;
|
|
988
1182
|
readonly carried: OffsetCurve;
|
|
989
1183
|
readonly carriedMs: number;
|
|
1184
|
+
/** The running glide's offset inside `before`, read on the held frame. */
|
|
1185
|
+
readonly held: {readonly x: number; readonly y: number};
|
|
990
1186
|
after?: DOMRect;
|
|
991
1187
|
rawX?: number;
|
|
992
1188
|
rawY?: number;
|
|
@@ -1008,17 +1204,28 @@ function flush(batch: Batch): void {
|
|
|
1008
1204
|
const running = glides.get(element);
|
|
1009
1205
|
let carried = AT_REST;
|
|
1010
1206
|
let carriedMs = 0;
|
|
1207
|
+
let held = AT_REST(0);
|
|
1011
1208
|
if (running != null) {
|
|
1012
1209
|
const time = Number(running.animation.currentTime);
|
|
1013
1210
|
const elapsed = Number.isFinite(time) ? Math.max(0, time) : 0;
|
|
1014
1211
|
if (elapsed < running.durationMs) {
|
|
1015
|
-
|
|
1016
|
-
|
|
1212
|
+
held = running.offsetAt(elapsed);
|
|
1213
|
+
}
|
|
1214
|
+
// The new glide starts at the change's start. After a block, the
|
|
1215
|
+
// compositor kept this glide moving past the held frame until then.
|
|
1216
|
+
const {startTime} = running.animation;
|
|
1217
|
+
const shownAt =
|
|
1218
|
+
change != null && startTime != null
|
|
1219
|
+
? Math.max(elapsed, change.at - Number(startTime))
|
|
1220
|
+
: elapsed;
|
|
1221
|
+
if (shownAt < running.durationMs) {
|
|
1222
|
+
carried = t => running.offsetAt(shownAt + t);
|
|
1223
|
+
carriedMs = running.durationMs - shownAt;
|
|
1017
1224
|
}
|
|
1018
1225
|
running.animation.cancel();
|
|
1019
1226
|
glides.delete(element);
|
|
1020
1227
|
}
|
|
1021
|
-
entries.push({element, before, carried, carriedMs});
|
|
1228
|
+
entries.push({element, before, carried, carriedMs, held});
|
|
1022
1229
|
}
|
|
1023
1230
|
// Every reading (places, transforms, scales) before any glide starts: a
|
|
1024
1231
|
// glide started between two readings would make the next one lay the page
|
|
@@ -1077,7 +1284,7 @@ function flush(batch: Batch): void {
|
|
|
1077
1284
|
// An adopter's own readings join them here, before any glide starts.
|
|
1078
1285
|
notify(entries.map(entry => entry.element));
|
|
1079
1286
|
for (const entry of entries) {
|
|
1080
|
-
const {element, before, carried, carriedMs} = entry;
|
|
1287
|
+
const {element, before, carried, carriedMs, held} = entry;
|
|
1081
1288
|
const after = entry.after as DOMRect;
|
|
1082
1289
|
// Nested changes compose: an element inside another moving element moves
|
|
1083
1290
|
// only by its own change, whatever order the changes were reported in.
|
|
@@ -1103,10 +1310,12 @@ function flush(batch: Batch): void {
|
|
|
1103
1310
|
continue;
|
|
1104
1311
|
}
|
|
1105
1312
|
if (motion.kind === 'fade') {
|
|
1106
|
-
safeAnimate(
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1313
|
+
safeAnimate(
|
|
1314
|
+
element,
|
|
1315
|
+
[{opacity: 0}, {opacity: 1}],
|
|
1316
|
+
{duration: motion.durationMs, easing: motion.easing},
|
|
1317
|
+
change,
|
|
1318
|
+
);
|
|
1110
1319
|
continue;
|
|
1111
1320
|
}
|
|
1112
1321
|
if (entry.isMovedByApp === true) {
|
|
@@ -1114,12 +1323,11 @@ function flush(batch: Batch): void {
|
|
|
1114
1323
|
// (`spec:AST-105` Coverage).
|
|
1115
1324
|
continue;
|
|
1116
1325
|
}
|
|
1117
|
-
// Where it
|
|
1118
|
-
//
|
|
1326
|
+
// Where it showed before the change, against its new place, in its own
|
|
1327
|
+
// px. The part the glide's offset then does not cover is the new move.
|
|
1119
1328
|
const scale = entry.scale ?? {x: 1, y: 1};
|
|
1120
|
-
const
|
|
1121
|
-
const
|
|
1122
|
-
const moveY = dy / scale.y - now.y;
|
|
1329
|
+
const moveX = dx / scale.x - held.x;
|
|
1330
|
+
const moveY = dy / scale.y - held.y;
|
|
1123
1331
|
const {progress} = motion;
|
|
1124
1332
|
const offsetAt: OffsetCurve = t => {
|
|
1125
1333
|
const remaining = progress.remaining(t);
|
|
@@ -1135,9 +1343,16 @@ function flush(batch: Batch): void {
|
|
|
1135
1343
|
return {translate: `${offset.x}px ${offset.y}px`};
|
|
1136
1344
|
}),
|
|
1137
1345
|
{duration: durationMs, easing: 'linear'},
|
|
1346
|
+
change,
|
|
1138
1347
|
);
|
|
1139
1348
|
if (animation != null) {
|
|
1140
|
-
const glide: Glide = {
|
|
1349
|
+
const glide: Glide = {
|
|
1350
|
+
animation,
|
|
1351
|
+
offsetAt,
|
|
1352
|
+
durationMs,
|
|
1353
|
+
shownBefore: {x: dx / scale.x, y: dy / scale.y},
|
|
1354
|
+
scale,
|
|
1355
|
+
};
|
|
1141
1356
|
glides.set(element, glide);
|
|
1142
1357
|
animation.addEventListener?.('finish', () => {
|
|
1143
1358
|
if (glides.get(element) === glide) {
|
|
@@ -1191,6 +1406,7 @@ export function reportLayoutChange(
|
|
|
1191
1406
|
if (area == null) {
|
|
1192
1407
|
return;
|
|
1193
1408
|
}
|
|
1409
|
+
beginChange(element.ownerDocument);
|
|
1194
1410
|
const batch = batchFor(area);
|
|
1195
1411
|
if (batch.changed.has(element)) {
|
|
1196
1412
|
return;
|
|
@@ -1587,11 +1803,22 @@ export function playLayoutChange(
|
|
|
1587
1803
|
return null;
|
|
1588
1804
|
}
|
|
1589
1805
|
const from = shownAtStart(element, 0);
|
|
1806
|
+
// The start of the change it enters with, which its glides then share.
|
|
1807
|
+
const batch = batches.get(area);
|
|
1808
|
+
const change =
|
|
1809
|
+
batch != null &&
|
|
1810
|
+
[...batch.changed].some(
|
|
1811
|
+
changed => changed === element || changed.contains(element),
|
|
1812
|
+
)
|
|
1813
|
+
? changeStartOf(batch)
|
|
1814
|
+
: undefined;
|
|
1590
1815
|
if (motion.kind === 'fade') {
|
|
1591
|
-
return safeAnimate(
|
|
1592
|
-
|
|
1593
|
-
|
|
1594
|
-
|
|
1816
|
+
return safeAnimate(
|
|
1817
|
+
element,
|
|
1818
|
+
[{opacity: from}, {opacity: 1}],
|
|
1819
|
+
{duration: motion.durationMs, easing: motion.easing},
|
|
1820
|
+
change,
|
|
1821
|
+
);
|
|
1595
1822
|
}
|
|
1596
1823
|
const {progress} = motion;
|
|
1597
1824
|
const rtl = edge.startsWith('inline') && isRtl(element);
|
|
@@ -1602,6 +1829,7 @@ export function playLayoutChange(
|
|
|
1602
1829
|
return {opacity: 1 - hidden, clipPath: fractionClip(edge, hidden, rtl)};
|
|
1603
1830
|
}),
|
|
1604
1831
|
{duration: progress.durationMs, easing: 'linear'},
|
|
1832
|
+
change,
|
|
1605
1833
|
);
|
|
1606
1834
|
if (animation != null) {
|
|
1607
1835
|
const tracked = trackEdgeMotion(
|
|
@@ -1884,13 +2112,16 @@ export function holdLayoutExit(
|
|
|
1884
2112
|
// there.
|
|
1885
2113
|
const from = shownAtStart(element, 1);
|
|
1886
2114
|
const rtl = edge.startsWith('inline') && isRtl(element);
|
|
2115
|
+
// The start of the change it exits with, which its glides then share.
|
|
2116
|
+
const change = changeStartOf(batch);
|
|
1887
2117
|
let animation: Animation | null;
|
|
1888
2118
|
if (motion.kind === 'fade') {
|
|
1889
|
-
animation = safeAnimate(
|
|
1890
|
-
|
|
1891
|
-
|
|
1892
|
-
fill: 'forwards',
|
|
1893
|
-
|
|
2119
|
+
animation = safeAnimate(
|
|
2120
|
+
element,
|
|
2121
|
+
[{opacity: from}, {opacity: 0}],
|
|
2122
|
+
{duration: motion.durationMs, easing: motion.easing, fill: 'forwards'},
|
|
2123
|
+
change,
|
|
2124
|
+
);
|
|
1894
2125
|
} else {
|
|
1895
2126
|
const {progress} = motion;
|
|
1896
2127
|
animation = safeAnimate(
|
|
@@ -1900,6 +2131,7 @@ export function holdLayoutExit(
|
|
|
1900
2131
|
return {opacity: shown, clipPath: fractionClip(edge, 1 - shown, rtl)};
|
|
1901
2132
|
}),
|
|
1902
2133
|
{duration: progress.durationMs, easing: 'linear', fill: 'forwards'},
|
|
2134
|
+
change,
|
|
1903
2135
|
);
|
|
1904
2136
|
if (animation != null) {
|
|
1905
2137
|
const tracked = trackEdgeMotion(
|
|
@@ -2041,6 +2273,7 @@ export function holdLayoutSwap(
|
|
|
2041
2273
|
) {
|
|
2042
2274
|
return null;
|
|
2043
2275
|
}
|
|
2276
|
+
beginChange(element.ownerDocument);
|
|
2044
2277
|
const box = element.getBoundingClientRect();
|
|
2045
2278
|
if (!isVisiblePart) {
|
|
2046
2279
|
const copy = inertCopy(element);
|
|
@@ -2066,6 +2299,9 @@ export function playLayoutSwap(
|
|
|
2066
2299
|
return () => {};
|
|
2067
2300
|
}
|
|
2068
2301
|
const {copy} = swap;
|
|
2302
|
+
// Captured now: the parts riding a glide play a microtask later, on the
|
|
2303
|
+
// start of the change they are part of.
|
|
2304
|
+
const change = changeStartIn(swap.area, copy.ownerDocument);
|
|
2069
2305
|
placeOver(copy, how.host, swap.rect);
|
|
2070
2306
|
if (how.isOpaque === true) {
|
|
2071
2307
|
copy.style.zIndex = '1';
|
|
@@ -2121,6 +2357,7 @@ export function playLayoutSwap(
|
|
|
2121
2357
|
element,
|
|
2122
2358
|
sample(t => shape(progressAt(t), rideAt(t))),
|
|
2123
2359
|
{duration: durationMs, fill: 'both', ...options},
|
|
2360
|
+
change,
|
|
2124
2361
|
);
|
|
2125
2362
|
if (animation != null) {
|
|
2126
2363
|
animations.push(animation);
|
|
@@ -2168,8 +2405,10 @@ export function playLayoutSwap(
|
|
|
2168
2405
|
if (glide == null) {
|
|
2169
2406
|
return {x: -rideWith.travel.x, y: -rideWith.travel.y};
|
|
2170
2407
|
}
|
|
2408
|
+
// The parts were read where the ridden element showed then. After a
|
|
2409
|
+
// block it has moved on by the glide's start, so they move with it.
|
|
2171
2410
|
const now = glide.offsetAt(t);
|
|
2172
|
-
const start = glide.
|
|
2411
|
+
const start = glide.shownBefore;
|
|
2173
2412
|
return {x: now.x - start.x, y: now.y - start.y};
|
|
2174
2413
|
};
|
|
2175
2414
|
playAll(durationMs, progressAt, rideAt, {easing: 'linear'}, shape =>
|
|
@@ -2192,9 +2431,10 @@ export function playLayoutFrames(
|
|
|
2192
2431
|
): () => void {
|
|
2193
2432
|
const area = handle?.[AREA]() ?? null;
|
|
2194
2433
|
const motion = area == null ? null : layoutMotion(area);
|
|
2195
|
-
if (motion == null || motion.kind === 'instant') {
|
|
2434
|
+
if (area == null || motion == null || motion.kind === 'instant') {
|
|
2196
2435
|
return () => {};
|
|
2197
2436
|
}
|
|
2437
|
+
const change = changeStartIn(area, area.ownerDocument);
|
|
2198
2438
|
const animations: Animation[] = [];
|
|
2199
2439
|
for (const {element, frames: shape} of parts) {
|
|
2200
2440
|
const animation =
|
|
@@ -2209,11 +2449,14 @@ export function playLayoutFrames(
|
|
|
2209
2449
|
easing: 'linear',
|
|
2210
2450
|
fill: 'both',
|
|
2211
2451
|
},
|
|
2452
|
+
change,
|
|
2212
2453
|
)
|
|
2213
|
-
: safeAnimate(
|
|
2214
|
-
|
|
2215
|
-
|
|
2216
|
-
|
|
2454
|
+
: safeAnimate(
|
|
2455
|
+
element,
|
|
2456
|
+
[{opacity: 0}, {opacity: 1}],
|
|
2457
|
+
{duration: motion.durationMs, easing: motion.easing},
|
|
2458
|
+
change,
|
|
2459
|
+
);
|
|
2217
2460
|
if (animation != null) {
|
|
2218
2461
|
animations.push(animation);
|
|
2219
2462
|
}
|
|
@@ -2290,6 +2533,7 @@ export function holdLayoutEdge(
|
|
|
2290
2533
|
if (element == null || typeof element.animate !== 'function') {
|
|
2291
2534
|
return null;
|
|
2292
2535
|
}
|
|
2536
|
+
beginChange(element.ownerDocument);
|
|
2293
2537
|
const rect = element.getBoundingClientRect();
|
|
2294
2538
|
return {
|
|
2295
2539
|
element,
|
|
@@ -2365,20 +2609,32 @@ export function playLayoutEdge(
|
|
|
2365
2609
|
rides ? from + towards(ride) : from + (to - from) * p;
|
|
2366
2610
|
const clip = (hidden: number) => pxClip(edge, hidden, rtl);
|
|
2367
2611
|
const now = () => Number(element.ownerDocument.timeline?.currentTime ?? 0);
|
|
2368
|
-
|
|
2612
|
+
// The start this change's animations share, which after a block is later
|
|
2613
|
+
// than the frame time the timeline still reads (startFor).
|
|
2614
|
+
const startedAt =
|
|
2615
|
+
changeStartIn(areaOf(handle, element), element.ownerDocument)?.at ?? 0;
|
|
2369
2616
|
const durationMs =
|
|
2370
2617
|
motion.kind === 'spring' ? motion.progress.durationMs : motion.durationMs;
|
|
2618
|
+
const progressAt = (ms: number) =>
|
|
2619
|
+
motion.kind === 'spring'
|
|
2620
|
+
? 1 - motion.progress.remaining(Math.min(ms, durationMs))
|
|
2621
|
+
: 0;
|
|
2371
2622
|
const shown = (): {extent: number; progress: number} | null => {
|
|
2372
|
-
const elapsed = now() - startedAt;
|
|
2623
|
+
const elapsed = Math.max(0, now() - startedAt);
|
|
2373
2624
|
if (elapsed >= durationMs) {
|
|
2374
2625
|
return null;
|
|
2375
2626
|
}
|
|
2376
|
-
|
|
2377
|
-
|
|
2378
|
-
|
|
2627
|
+
// The fades are read at the change's start, where the glide it retargets
|
|
2628
|
+
// carries on. The extent stays on the timeline's frame, the frame a ride
|
|
2629
|
+
// is measured from.
|
|
2630
|
+
const progress = progressAt(
|
|
2631
|
+
Math.max(elapsed, layoutStartFor(element.ownerDocument) - startedAt),
|
|
2632
|
+
);
|
|
2633
|
+
let extent = from + (to - from) * progressAt(elapsed);
|
|
2379
2634
|
if (rides && rideWith != null) {
|
|
2380
|
-
// The edge is the ridden element's: read it where it shows
|
|
2381
|
-
|
|
2635
|
+
// The edge is the ridden element's: read it where it shows, on the
|
|
2636
|
+
// timeline's clock.
|
|
2637
|
+
const ridden = shownBoxAt(rideWith, now());
|
|
2382
2638
|
const own = element.getBoundingClientRect();
|
|
2383
2639
|
extent = !isInline
|
|
2384
2640
|
? isEnd
|
|
@@ -2651,6 +2907,7 @@ export function reportLayoutEdge(
|
|
|
2651
2907
|
const element = getElement();
|
|
2652
2908
|
measured = null;
|
|
2653
2909
|
if (element != null) {
|
|
2910
|
+
beginChange(element.ownerDocument);
|
|
2654
2911
|
const running = resizeReveals.get(element);
|
|
2655
2912
|
const elapsed = Number(running?.animation?.currentTime);
|
|
2656
2913
|
const rect = element.getBoundingClientRect();
|
|
@@ -2662,7 +2919,9 @@ export function reportLayoutEdge(
|
|
|
2662
2919
|
rect,
|
|
2663
2920
|
}
|
|
2664
2921
|
: {
|
|
2665
|
-
shown: running.shownAt(
|
|
2922
|
+
shown: running.shownAt(
|
|
2923
|
+
Number.isFinite(elapsed) ? Math.max(0, elapsed) : 0,
|
|
2924
|
+
),
|
|
2666
2925
|
box: running.box,
|
|
2667
2926
|
rect,
|
|
2668
2927
|
};
|
|
@@ -2700,12 +2959,15 @@ export function reportLayoutEdge(
|
|
|
2700
2959
|
return;
|
|
2701
2960
|
}
|
|
2702
2961
|
const isConceal = after < before.shown;
|
|
2962
|
+
const change = changeStartIn(area, element.ownerDocument);
|
|
2703
2963
|
if (motion.kind === 'fade') {
|
|
2704
2964
|
if (!isConceal) {
|
|
2705
|
-
safeAnimate(
|
|
2706
|
-
|
|
2707
|
-
|
|
2708
|
-
|
|
2965
|
+
safeAnimate(
|
|
2966
|
+
element,
|
|
2967
|
+
[{opacity: 0}, {opacity: 1}],
|
|
2968
|
+
{duration: motion.durationMs, easing: motion.easing},
|
|
2969
|
+
change,
|
|
2970
|
+
);
|
|
2709
2971
|
}
|
|
2710
2972
|
return;
|
|
2711
2973
|
}
|
|
@@ -2730,6 +2992,7 @@ export function reportLayoutEdge(
|
|
|
2730
2992
|
clipPath: pxClip(edge, curve(t), rtl),
|
|
2731
2993
|
})),
|
|
2732
2994
|
{duration: progress.durationMs, easing: 'linear'},
|
|
2995
|
+
change,
|
|
2733
2996
|
);
|
|
2734
2997
|
const reveal: ResizeReveal = {
|
|
2735
2998
|
animation,
|