@astryxdesign/core 0.7.7-canary.c0929c8 → 0.7.7-canary.c19ca12
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 +36 -6
- package/dist/AppShell/useCloseMobileDrawerOnActivate.d.ts +13 -0
- package/dist/AppShell/useCloseMobileDrawerOnActivate.d.ts.map +1 -0
- package/dist/AppShell/useCloseMobileDrawerOnActivate.js +45 -0
- package/dist/BottomSheet/BottomSheet.d.ts.map +1 -1
- package/dist/BottomSheet/BottomSheet.js +79 -9
- package/dist/BottomSheet/BottomSheetPanel.d.ts.map +1 -1
- package/dist/BottomSheet/BottomSheetPanel.js +23 -4
- package/dist/BottomSheet/bottomSheetStack.d.ts.map +1 -1
- package/dist/BottomSheet/bottomSheetStack.js +5 -4
- package/dist/BottomSheet/useSheetGestures.d.ts.map +1 -1
- package/dist/BottomSheet/useSheetGestures.js +3 -1
- package/dist/Breadcrumbs/BreadcrumbItem.d.ts +2 -1
- package/dist/Breadcrumbs/BreadcrumbItem.d.ts.map +1 -1
- package/dist/Breadcrumbs/BreadcrumbItem.js +7 -3
- package/dist/Button/Button.d.ts.map +1 -1
- package/dist/Button/Button.js +47 -3
- package/dist/CheckboxInput/CheckboxInput.d.ts.map +1 -1
- package/dist/CheckboxInput/CheckboxInput.js +13 -2
- package/dist/CheckboxList/CheckboxList.d.ts.map +1 -1
- package/dist/CheckboxList/CheckboxList.js +7 -1
- package/dist/CheckboxList/CheckboxListContext.d.ts +6 -0
- package/dist/CheckboxList/CheckboxListContext.d.ts.map +1 -1
- package/dist/CheckboxList/CheckboxListItem.d.ts.map +1 -1
- package/dist/CheckboxList/CheckboxListItem.js +10 -2
- 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/DateInput.d.ts.map +1 -1
- package/dist/DateInput/DateInput.js +5 -2
- package/dist/DateInput/MonthScroller.d.ts.map +1 -1
- package/dist/DateInput/MonthScroller.js +13 -27
- package/dist/DateInput/Wheel.d.ts.map +1 -1
- package/dist/DateInput/Wheel.js +22 -41
- package/dist/DateTimeInput/DateTimeInput.d.ts.map +1 -1
- package/dist/DateTimeInput/DateTimeInput.js +5 -2
- package/dist/Dialog/Dialog.d.ts.map +1 -1
- package/dist/Dialog/Dialog.js +23 -45
- package/dist/Drawer/Drawer.d.ts.map +1 -1
- package/dist/Drawer/Drawer.js +15 -11
- package/dist/Drawer/useDrawerDialogPresence.d.ts.map +1 -1
- package/dist/Drawer/useDrawerDialogPresence.js +5 -1
- package/dist/Field/Field.js +2 -2
- package/dist/Field/PanelSearchInput.d.ts +9 -1
- package/dist/Field/PanelSearchInput.d.ts.map +1 -1
- package/dist/Field/PanelSearchInput.js +3 -1
- package/dist/HoverCard/HoverCard.d.ts +4 -3
- package/dist/HoverCard/HoverCard.d.ts.map +1 -1
- package/dist/HoverCard/HoverCard.js +27 -2
- package/dist/HoverCard/useHoverCard.d.ts +5 -4
- package/dist/HoverCard/useHoverCard.d.ts.map +1 -1
- package/dist/HoverCard/useHoverCard.js +17 -31
- package/dist/Icon/Icon.d.ts +5 -1
- package/dist/Icon/Icon.d.ts.map +1 -1
- package/dist/Icon/Icon.js +5 -2
- package/dist/InfoTip/InfoTip.d.ts +63 -0
- package/dist/InfoTip/InfoTip.d.ts.map +1 -0
- package/dist/InfoTip/InfoTip.js +126 -0
- package/dist/InfoTip/index.d.ts +10 -0
- package/dist/InfoTip/index.d.ts.map +1 -0
- package/dist/InfoTip/index.js +12 -0
- package/dist/Layer/layerAnimations.stylex.d.ts +7 -8
- package/dist/Layer/layerAnimations.stylex.d.ts.map +1 -1
- package/dist/Layer/layerAnimations.stylex.js +25 -20
- package/dist/Layer/useBackdropPress.d.ts +27 -0
- package/dist/Layer/useBackdropPress.d.ts.map +1 -0
- package/dist/Layer/useBackdropPress.js +53 -0
- package/dist/Layer/usePressPin.d.ts +20 -10
- package/dist/Layer/usePressPin.d.ts.map +1 -1
- package/dist/Layer/usePressPin.js +66 -18
- package/dist/Lightbox/Lightbox.d.ts.map +1 -1
- package/dist/Lightbox/Lightbox.js +18 -0
- package/dist/MobileNav/MobileNav.js +0 -1
- package/dist/MultiSelector/hooks.d.ts.map +1 -1
- package/dist/MultiSelector/hooks.js +2 -4
- package/dist/Outline/Outline.d.ts +2 -4
- package/dist/Outline/Outline.d.ts.map +1 -1
- package/dist/Outline/Outline.js +4 -52
- package/dist/Outline/useOutlineFromMarkdown.d.ts.map +1 -1
- package/dist/Outline/useOutlineFromMarkdown.js +1 -0
- package/dist/Outline/useScrollSpy.js +3 -3
- package/dist/PowerSearch/PowerSearch.d.ts +36 -3
- package/dist/PowerSearch/PowerSearch.d.ts.map +1 -1
- package/dist/PowerSearch/PowerSearch.js +571 -302
- package/dist/PowerSearch/PowerSearchBottomSheet.d.ts +100 -0
- package/dist/PowerSearch/PowerSearchBottomSheet.d.ts.map +1 -0
- package/dist/PowerSearch/PowerSearchBottomSheet.js +1913 -0
- package/dist/PowerSearch/PowerSearchEditPopover.d.ts +32 -1
- package/dist/PowerSearch/PowerSearchEditPopover.d.ts.map +1 -1
- package/dist/PowerSearch/PowerSearchEditPopover.js +17 -6
- package/dist/PowerSearch/PowerSearchValueEditor.d.ts +38 -3
- package/dist/PowerSearch/PowerSearchValueEditor.d.ts.map +1 -1
- package/dist/PowerSearch/PowerSearchValueEditor.js +170 -61
- package/dist/PowerSearch/formatFilterValue.d.ts +7 -0
- package/dist/PowerSearch/formatFilterValue.d.ts.map +1 -1
- package/dist/PowerSearch/formatFilterValue.js +11 -1
- package/dist/PowerSearch/formatTokenValue.d.ts +28 -0
- package/dist/PowerSearch/formatTokenValue.d.ts.map +1 -0
- package/dist/PowerSearch/formatTokenValue.js +160 -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/RadioList/RadioList.d.ts.map +1 -1
- package/dist/RadioList/RadioList.js +8 -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.map +1 -1
- package/dist/Resizable/ResizeHandle.js +118 -260
- package/dist/Resizable/resizeGesture.d.ts +91 -0
- package/dist/Resizable/resizeGesture.d.ts.map +1 -0
- package/dist/Resizable/resizeGesture.js +251 -0
- package/dist/SegmentedControl/SegmentedControl.d.ts +3 -1
- package/dist/SegmentedControl/SegmentedControl.d.ts.map +1 -1
- package/dist/SegmentedControl/SegmentedControl.js +115 -8
- package/dist/SegmentedControl/SegmentedControlContext.d.ts +6 -0
- package/dist/SegmentedControl/SegmentedControlContext.d.ts.map +1 -1
- package/dist/SegmentedControl/SegmentedControlItem.d.ts +1 -0
- package/dist/SegmentedControl/SegmentedControlItem.d.ts.map +1 -1
- package/dist/SegmentedControl/SegmentedControlItem.js +8 -1
- package/dist/SegmentedControl/useSegmentedSelectionMotion.d.ts +357 -0
- package/dist/SegmentedControl/useSegmentedSelectionMotion.d.ts.map +1 -0
- package/dist/SegmentedControl/useSegmentedSelectionMotion.js +1349 -0
- package/dist/SegmentedControl/useSegmentedTouchTracking.d.ts +70 -0
- package/dist/SegmentedControl/useSegmentedTouchTracking.d.ts.map +1 -0
- package/dist/SegmentedControl/useSegmentedTouchTracking.js +264 -0
- package/dist/Selector/Selector.d.ts.map +1 -1
- package/dist/Selector/Selector.js +96 -67
- package/dist/Selector/optionShape.d.ts +24 -0
- package/dist/Selector/optionShape.d.ts.map +1 -0
- package/dist/Selector/optionShape.js +48 -0
- package/dist/Selector/selectableOptionEntries.d.ts +20 -0
- package/dist/Selector/selectableOptionEntries.d.ts.map +1 -0
- package/dist/Selector/selectableOptionEntries.js +38 -0
- package/dist/Selector/utils.d.ts +2 -17
- package/dist/Selector/utils.d.ts.map +1 -1
- package/dist/Selector/utils.js +3 -51
- package/dist/SideNav/SideNavItem.d.ts.map +1 -1
- package/dist/SideNav/SideNavItem.js +3 -9
- 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/Switch/switchTouch.d.ts +0 -7
- package/dist/Switch/switchTouch.d.ts.map +1 -1
- package/dist/Switch/switchTouch.js +2 -10
- package/dist/Switch/useSwitchTouch.d.ts +2 -11
- package/dist/Switch/useSwitchTouch.d.ts.map +1 -1
- package/dist/Switch/useSwitchTouch.js +35 -93
- package/dist/Table/BaseTable.d.ts.map +1 -1
- package/dist/Table/BaseTable.js +29 -8
- package/dist/TextInput/TextInput.d.ts +2 -2
- package/dist/TextInput/TextInput.d.ts.map +1 -1
- package/dist/TextInput/TextInput.js +10 -7
- package/dist/Toast/Toast.d.ts +11 -1
- package/dist/Toast/Toast.d.ts.map +1 -1
- package/dist/Toast/Toast.js +30 -15
- package/dist/Toast/ToastViewport.d.ts.map +1 -1
- package/dist/Toast/ToastViewport.js +94 -34
- package/dist/Toast/types.d.ts +9 -3
- package/dist/Toast/types.d.ts.map +1 -1
- package/dist/Token/Token.d.ts +2 -2
- package/dist/Token/Token.d.ts.map +1 -1
- package/dist/Token/Token.js +13 -4
- package/dist/Token/TokenNamingContext.d.ts +14 -0
- package/dist/Token/TokenNamingContext.d.ts.map +1 -0
- package/dist/Token/TokenNamingContext.js +23 -0
- package/dist/Tokenizer/Tokenizer.d.ts +46 -59
- package/dist/Tokenizer/Tokenizer.d.ts.map +1 -1
- package/dist/Tokenizer/Tokenizer.js +40 -57
- package/dist/Tokenizer/TokenizerBottomSheet.d.ts +25 -28
- package/dist/Tokenizer/TokenizerBottomSheet.d.ts.map +1 -1
- package/dist/Tokenizer/TokenizerBottomSheet.js +157 -54
- package/dist/Tokenizer/TokenizerItemRemovableContext.d.ts +3 -0
- package/dist/Tokenizer/TokenizerItemRemovableContext.d.ts.map +1 -0
- package/dist/Tokenizer/TokenizerItemRemovableContext.js +19 -0
- package/dist/Tooltip/Tooltip.d.ts +25 -30
- package/dist/Tooltip/Tooltip.d.ts.map +1 -1
- package/dist/Tooltip/Tooltip.js +24 -5
- package/dist/Tooltip/index.d.ts +1 -1
- package/dist/Tooltip/index.d.ts.map +1 -1
- package/dist/Tooltip/useTooltip.d.ts +45 -28
- package/dist/Tooltip/useTooltip.d.ts.map +1 -1
- package/dist/Tooltip/useTooltip.js +52 -59
- package/dist/TopNav/TopNavItem.d.ts.map +1 -1
- package/dist/TopNav/TopNavItem.js +4 -7
- package/dist/TopNav/TopNavMegaMenuItem.d.ts.map +1 -1
- package/dist/TopNav/TopNavMegaMenuItem.js +4 -7
- package/dist/TopNav/TopNavMenu.d.ts.map +1 -1
- package/dist/TopNav/TopNavMenu.js +4 -7
- 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 +96 -7
- package/dist/gestures/GestureHost.d.ts +27 -1
- package/dist/gestures/GestureHost.d.ts.map +1 -1
- package/dist/gestures/GestureHost.js +157 -21
- package/dist/gestures/PressTracker.d.ts.map +1 -1
- package/dist/gestures/PressTracker.js +4 -3
- package/dist/hooks/actionGroupTracker.d.ts +7 -4
- package/dist/hooks/actionGroupTracker.d.ts.map +1 -1
- package/dist/hooks/actionGroupTracker.js +19 -56
- 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/pressGroupContext.d.ts +6 -0
- package/dist/hooks/pressGroupContext.d.ts.map +1 -0
- package/dist/hooks/pressGroupContext.js +20 -0
- 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/useAttachment.d.ts +1 -1
- package/dist/hooks/useAttachment.js +1 -1
- package/dist/hooks/useHighlightedOptionScroll.d.ts +11 -1
- package/dist/hooks/useHighlightedOptionScroll.d.ts.map +1 -1
- package/dist/hooks/useHighlightedOptionScroll.js +112 -11
- 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/useLongPress.d.ts +6 -2
- package/dist/hooks/useLongPress.d.ts.map +1 -1
- package/dist/hooks/useLongPress.js +95 -15
- package/dist/hooks/useMediaQuery.d.ts +2 -1
- package/dist/hooks/useMediaQuery.d.ts.map +1 -1
- package/dist/hooks/useMediaQuery.js +7 -4
- package/dist/hooks/useMenuPress.d.ts.map +1 -1
- package/dist/hooks/useMenuPress.js +4 -2
- package/dist/i18n/generated-english/InfoTip/InfoTip.generated.d.ts +8 -0
- package/dist/i18n/generated-english/InfoTip/InfoTip.generated.d.ts.map +1 -0
- package/dist/i18n/generated-english/InfoTip/InfoTip.generated.js +12 -0
- package/dist/i18n/generated-english/PowerSearch/PowerSearch.generated.d.ts.map +1 -1
- package/dist/i18n/generated-english/PowerSearch/PowerSearch.generated.js +1 -0
- package/dist/i18n/generated-english/PowerSearch/PowerSearchBottomSheet.generated.d.ts +8 -0
- package/dist/i18n/generated-english/PowerSearch/PowerSearchBottomSheet.generated.d.ts.map +1 -0
- package/dist/i18n/generated-english/PowerSearch/PowerSearchBottomSheet.generated.js +42 -0
- package/dist/i18n/generated-english/PowerSearch/PowerSearchValueEditor.generated.d.ts.map +1 -1
- package/dist/i18n/generated-english/PowerSearch/PowerSearchValueEditor.generated.js +6 -0
- package/dist/i18n/generated-english/PowerSearch/formatTokenValue.generated.d.ts +8 -0
- package/dist/i18n/generated-english/PowerSearch/formatTokenValue.generated.d.ts.map +1 -0
- package/dist/i18n/generated-english/PowerSearch/formatTokenValue.generated.js +14 -0
- package/dist/i18n/generated-english/Tokenizer/TokenizerBottomSheet.generated.d.ts.map +1 -1
- package/dist/i18n/generated-english/Tokenizer/TokenizerBottomSheet.generated.js +7 -1
- package/dist/i18n/generated-locales/en.generated.d.ts.map +1 -1
- package/dist/i18n/generated-locales/en.generated.js +33 -1
- package/dist/i18n/generated-locales/pseudo.generated.d.ts.map +1 -1
- package/dist/i18n/generated-locales/pseudo.generated.js +33 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/internal/SheetConfirmation.d.ts +11 -0
- package/dist/internal/SheetConfirmation.d.ts.map +1 -0
- package/dist/internal/SheetConfirmation.js +92 -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/sheetDraft.d.ts +35 -0
- package/dist/internal/sheetDraft.d.ts.map +1 -0
- package/dist/internal/sheetDraft.js +65 -0
- package/dist/internal/touch-sheet.d.ts +21 -0
- package/dist/internal/touch-sheet.d.ts.map +1 -0
- package/dist/internal/touch-sheet.js +19 -0
- package/dist/internal/useDismissSearchOnTouchDrag.d.ts +24 -0
- package/dist/internal/useDismissSearchOnTouchDrag.d.ts.map +1 -0
- package/dist/internal/useDismissSearchOnTouchDrag.js +56 -0
- package/dist/motion/animator.d.ts +14 -14
- package/dist/motion/animator.d.ts.map +1 -1
- package/dist/motion/animator.js +41 -18
- package/dist/motion/reducedMotion.d.ts +24 -0
- package/dist/motion/reducedMotion.d.ts.map +1 -1
- package/dist/motion/reducedMotion.js +78 -1
- package/dist/motion/roles.d.ts +7 -1
- package/dist/motion/roles.d.ts.map +1 -1
- package/dist/motion/roles.js +20 -1
- package/dist/motion/uikit/alert.d.ts +41 -0
- package/dist/motion/uikit/alert.d.ts.map +1 -0
- package/dist/motion/uikit/alert.js +43 -0
- package/dist/motion/uikit/index.d.ts +6 -5
- package/dist/motion/uikit/index.d.ts.map +1 -1
- package/dist/motion/uikit/index.js +6 -5
- package/dist/motion/uikit/segmented.d.ts +55 -0
- package/dist/motion/uikit/segmented.d.ts.map +1 -0
- package/dist/motion/uikit/segmented.js +77 -0
- package/dist/motion/uikit/springs.d.ts +0 -18
- package/dist/motion/uikit/springs.d.ts.map +1 -1
- package/dist/motion/uikit/springs.js +5 -21
- package/dist/privateAttributes/pressGroupItem.stylex.d.ts +15 -0
- package/dist/privateAttributes/pressGroupItem.stylex.d.ts.map +1 -0
- package/dist/privateAttributes/pressGroupItem.stylex.js +23 -0
- package/dist/privateAttributes/segmentTitle.stylex.d.ts +5 -0
- package/dist/privateAttributes/segmentTitle.stylex.d.ts.map +1 -0
- package/dist/privateAttributes/segmentTitle.stylex.js +22 -0
- package/dist/utils/browserClickWait.d.ts +35 -0
- package/dist/utils/browserClickWait.d.ts.map +1 -0
- package/dist/utils/browserClickWait.js +123 -0
- package/dist/utils/clickGuard.d.ts +14 -1
- package/dist/utils/clickGuard.d.ts.map +1 -1
- package/dist/utils/clickGuard.js +46 -1
- package/dist/utils/dateParser.d.ts.map +1 -1
- package/dist/utils/dateParser.js +12 -0
- package/dist/utils/focusReturn.d.ts +15 -0
- package/dist/utils/focusReturn.d.ts.map +1 -1
- package/dist/utils/focusReturn.js +28 -0
- package/dist/utils/interactionOverlay.stylex.d.ts +3 -2
- package/dist/utils/interactionOverlay.stylex.d.ts.map +1 -1
- package/dist/utils/interactionOverlay.stylex.js +3 -2
- package/dist/utils/pressFeedback.d.ts.map +1 -1
- package/dist/utils/pressFeedback.js +19 -6
- package/dist/utils/triggerFocus.d.ts +36 -0
- package/dist/utils/triggerFocus.d.ts.map +1 -0
- package/dist/utils/triggerFocus.js +65 -0
- package/locales/en.json +128 -0
- package/locales/pseudo.json +96 -0
- package/package.json +18 -8
- package/src/AlertDialog/AlertDialog.doc.mjs +2 -2
- package/src/AlertDialog/AlertDialog.tsx +37 -5
- package/src/AppShell/useCloseMobileDrawerOnActivate.ts +52 -0
- package/src/BottomSheet/BottomSheet.tsx +95 -10
- package/src/BottomSheet/BottomSheetPanel.tsx +40 -5
- package/src/BottomSheet/bottomSheetStack.ts +8 -4
- package/src/BottomSheet/useSheetGestures.ts +3 -1
- package/src/Breadcrumbs/BreadcrumbItem.tsx +13 -3
- package/src/Button/Button.tsx +63 -5
- package/src/CheckboxInput/CheckboxInput.doc.mjs +18 -0
- package/src/CheckboxInput/CheckboxInput.tsx +36 -9
- package/src/CheckboxList/CheckboxList.doc.mjs +4 -2
- package/src/CheckboxList/CheckboxList.tsx +6 -0
- package/src/CheckboxList/CheckboxListContext.tsx +6 -0
- package/src/CheckboxList/CheckboxListItem.tsx +11 -2
- package/src/ComplexSelector/ComplexSelector.tsx +20 -5
- package/src/ContextMenu/ContextMenu.tsx +2 -2
- package/src/DateInput/DateInput.tsx +8 -2
- package/src/DateInput/MonthScroller.tsx +18 -22
- package/src/DateInput/Wheel.tsx +30 -32
- package/src/DateTimeInput/DateTimeInput.tsx +8 -2
- package/src/Dialog/Dialog.tsx +54 -45
- package/src/Drawer/Drawer.tsx +28 -11
- package/src/Drawer/useDrawerDialogPresence.ts +5 -1
- package/src/Field/Field.tsx +2 -2
- package/src/Field/PanelSearchInput.tsx +11 -0
- package/src/HoverCard/HoverCard.doc.mjs +4 -2
- package/src/HoverCard/HoverCard.tsx +35 -4
- package/src/HoverCard/useHoverCard.doc.mjs +178 -36
- package/src/HoverCard/useHoverCard.tsx +46 -52
- package/src/Icon/Icon.doc.mjs +49 -8
- package/src/Icon/Icon.tsx +15 -7
- package/src/InfoTip/InfoTip.doc.mjs +192 -0
- package/src/InfoTip/InfoTip.tsx +186 -0
- package/src/InfoTip/index.ts +14 -0
- package/src/Layer/layerAnimations.stylex.ts +24 -16
- package/src/Layer/useBackdropPress.ts +81 -0
- package/src/Layer/usePressPin.ts +86 -26
- package/src/Lightbox/Lightbox.tsx +18 -0
- package/src/MobileNav/MobileNav.tsx +1 -1
- package/src/MultiSelector/hooks.ts +2 -4
- package/src/Outline/Outline.doc.mjs +177 -51
- package/src/Outline/Outline.tsx +5 -57
- package/src/Outline/useOutlineFromMarkdown.doc.mjs +157 -0
- package/src/Outline/useOutlineFromMarkdown.ts +1 -0
- package/src/Outline/useScrollSpy.ts +3 -3
- package/src/PowerSearch/PowerSearch.doc.mjs +55 -6
- package/src/PowerSearch/PowerSearch.tsx +798 -324
- package/src/PowerSearch/PowerSearchBottomSheet.tsx +2515 -0
- package/src/PowerSearch/PowerSearchEditPopover.tsx +28 -6
- package/src/PowerSearch/PowerSearchValueEditor.tsx +203 -38
- package/src/PowerSearch/formatFilterValue.ts +18 -1
- package/src/PowerSearch/formatTokenValue.ts +215 -0
- package/src/PowerSearch/powerSearchSheetUtils.ts +224 -0
- package/src/RadioList/RadioList.doc.mjs +4 -2
- package/src/RadioList/RadioList.tsx +7 -2
- package/src/RadioList/RadioListItem.tsx +5 -3
- package/src/Resizable/ResizeHandle.tsx +133 -328
- package/src/Resizable/resizeGesture.ts +368 -0
- package/src/SegmentedControl/SegmentedControl.doc.mjs +3 -3
- package/src/SegmentedControl/SegmentedControl.tsx +179 -5
- package/src/SegmentedControl/SegmentedControlContext.ts +6 -0
- package/src/SegmentedControl/SegmentedControlItem.tsx +12 -1
- package/src/SegmentedControl/useSegmentedSelectionMotion.ts +1640 -0
- package/src/SegmentedControl/useSegmentedTouchTracking.ts +308 -0
- package/src/Selector/Selector.tsx +136 -89
- package/src/Selector/optionShape.ts +64 -0
- package/src/Selector/selectableOptionEntries.ts +39 -0
- package/src/Selector/utils.ts +9 -68
- package/src/SideNav/SideNavItem.tsx +3 -7
- package/src/Slider/sliderTouchController.ts +2 -2
- package/src/Spinner/Spinner.tsx +77 -63
- package/src/Switch/switchTouch.ts +2 -10
- package/src/Switch/useSwitchTouch.ts +38 -104
- package/src/Table/BaseTable.tsx +46 -12
- package/src/TextInput/TextInput.tsx +11 -10
- package/src/Toast/Toast.doc.mjs +4 -3
- package/src/Toast/Toast.tsx +57 -32
- package/src/Toast/ToastViewport.tsx +121 -35
- package/src/Toast/types.ts +9 -3
- package/src/Token/Token.tsx +15 -4
- package/src/Token/TokenNamingContext.ts +28 -0
- package/src/Tokenizer/Tokenizer.doc.mjs +16 -0
- package/src/Tokenizer/Tokenizer.tsx +89 -85
- package/src/Tokenizer/TokenizerBottomSheet.tsx +219 -93
- package/src/Tokenizer/TokenizerItemRemovableContext.ts +24 -0
- package/src/Tooltip/Tooltip.doc.mjs +123 -54
- package/src/Tooltip/Tooltip.tsx +36 -39
- package/src/Tooltip/index.ts +0 -1
- package/src/Tooltip/useTooltip.doc.mjs +171 -33
- package/src/Tooltip/useTooltip.tsx +98 -86
- package/src/TopNav/TopNavItem.tsx +6 -5
- package/src/TopNav/TopNavMegaMenuItem.tsx +6 -5
- package/src/TopNav/TopNavMenu.tsx +6 -5
- 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 +198 -20
- package/src/gestures/PressTracker.ts +4 -3
- package/src/gestures/README.md +7 -1
- package/src/hooks/actionGroupTracker.ts +32 -61
- package/src/hooks/index.ts +2 -0
- package/src/hooks/pressGroupContext.ts +21 -0
- 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/useAttachment.ts +1 -1
- package/src/hooks/useHighlightedOptionScroll.ts +123 -15
- package/src/hooks/useInputStatusIcon.tsx +3 -2
- package/src/hooks/useLongPress.doc.mjs +2 -2
- package/src/hooks/useLongPress.ts +136 -15
- package/src/hooks/useMediaQuery.doc.mjs +2 -2
- package/src/hooks/useMediaQuery.ts +13 -4
- package/src/hooks/useMenuPress.ts +8 -2
- package/src/i18n/generated-english/InfoTip/InfoTip.generated.ts +13 -0
- package/src/i18n/generated-english/PowerSearch/PowerSearch.generated.ts +1 -0
- package/src/i18n/generated-english/PowerSearch/PowerSearchBottomSheet.generated.ts +43 -0
- package/src/i18n/generated-english/PowerSearch/PowerSearchValueEditor.generated.ts +6 -0
- package/src/i18n/generated-english/PowerSearch/formatTokenValue.generated.ts +15 -0
- package/src/i18n/generated-english/Tokenizer/TokenizerBottomSheet.generated.ts +7 -1
- package/src/i18n/generated-locales/en.generated.ts +43 -0
- package/src/i18n/generated-locales/pseudo.generated.ts +44 -0
- package/src/index.ts +14 -0
- package/src/internal/SheetConfirmation.tsx +101 -0
- package/src/internal/indicatorPress.stylex.ts +24 -0
- package/src/internal/sheetDraft.ts +80 -0
- package/src/internal/touch-sheet.ts +21 -0
- package/src/internal/useDismissSearchOnTouchDrag.ts +69 -0
- package/src/motion/MEASUREMENTS.md +7 -0
- package/src/motion/README.md +9 -5
- package/src/motion/animator.ts +61 -29
- package/src/motion/reducedMotion.ts +79 -1
- package/src/motion/roles.ts +20 -1
- package/src/motion/uikit/alert.ts +43 -0
- package/src/motion/uikit/index.ts +5 -5
- package/src/motion/uikit/segmented.ts +74 -0
- package/src/motion/uikit/springs.ts +5 -21
- package/src/privateAttributes/pressGroupItem.stylex.ts +23 -0
- package/src/privateAttributes/segmentTitle.stylex.ts +22 -0
- package/src/utils/browserClickWait.ts +133 -0
- package/src/utils/clickGuard.ts +64 -1
- package/src/utils/dateParser.ts +16 -0
- package/src/utils/focusReturn.ts +30 -0
- package/src/utils/interactionOverlay.stylex.ts +3 -2
- package/src/utils/pressFeedback.ts +19 -6
- package/src/utils/triggerFocus.ts +80 -0
- package/dist/internal/tokenizer-presentation.d.ts +0 -21
- package/dist/internal/tokenizer-presentation.d.ts.map +0 -1
- package/dist/internal/tokenizer-presentation.js +0 -21
- package/src/internal/tokenizer-presentation.ts +0 -25
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* @file reducedMotion.ts
|
|
5
5
|
* @input The Reduced Motion preference, the primary pointer, the motion tables
|
|
6
6
|
* @output reducedMotionFade (the fade the animator would play, for motion it
|
|
7
|
-
* does not drive) and the
|
|
7
|
+
* does not drive), playReducedMotionDip, and the queries a transition spells
|
|
8
8
|
* @position The one Reduced Motion policy (design:reduced-motion) for code
|
|
9
9
|
* beside the animator: a raw Web Animations fade, a CSS transition
|
|
10
10
|
*
|
|
@@ -86,4 +86,81 @@ export function reducedMotionFade(element, options = {}) {
|
|
|
86
86
|
duration: reducedMotionCrossFade.durationMs,
|
|
87
87
|
easing: `cubic-bezier(${curve.join(', ')})`
|
|
88
88
|
};
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/** A running Reduced Motion dip. */
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Plays `fade` on `element` as a dip, and runs `land` at its middle: the
|
|
95
|
+
* fade-out, the change, then the fade-in. The fade-out holds at 0 until `land`
|
|
96
|
+
* has run, and the fade-in starts only after it. So the change never shows at
|
|
97
|
+
* full opacity, however late the main thread runs. A timer at the middle can
|
|
98
|
+
* fire after the fade-in has begun.
|
|
99
|
+
*
|
|
100
|
+
* `land` must apply the change before it returns: the fade-in starts right
|
|
101
|
+
* after it. `from` is the opacity the fade-out starts at: a leaving element
|
|
102
|
+
* fades out from where it is.
|
|
103
|
+
*
|
|
104
|
+
* @example
|
|
105
|
+
* ```
|
|
106
|
+
* const dip = playReducedMotionDip(scroller, fade, () => scroller.scrollTo({top}));
|
|
107
|
+
* // A newer change replaces it:
|
|
108
|
+
* dip.cancel();
|
|
109
|
+
* ```
|
|
110
|
+
*/
|
|
111
|
+
export function playReducedMotionDip(element, fade, land, from = 1) {
|
|
112
|
+
const half = fade.duration / 2;
|
|
113
|
+
let isCancelled = false;
|
|
114
|
+
let fadeIn = null;
|
|
115
|
+
const fadeOut = element.animate([{
|
|
116
|
+
opacity: from,
|
|
117
|
+
easing: fade.easing
|
|
118
|
+
}, {
|
|
119
|
+
opacity: 0
|
|
120
|
+
}], {
|
|
121
|
+
duration: half,
|
|
122
|
+
fill: 'forwards'
|
|
123
|
+
});
|
|
124
|
+
fadeOut.finished.then(() => {
|
|
125
|
+
if (isCancelled) {
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
land();
|
|
129
|
+
// The fade-in holds 0 until it starts: after a long stall, its start can
|
|
130
|
+
// come after the frame that runs this.
|
|
131
|
+
fadeIn = element.animate([{
|
|
132
|
+
opacity: 0,
|
|
133
|
+
easing: fade.easing
|
|
134
|
+
}, {
|
|
135
|
+
opacity: 1
|
|
136
|
+
}], {
|
|
137
|
+
duration: half,
|
|
138
|
+
fill: 'backwards'
|
|
139
|
+
});
|
|
140
|
+
// The fade-in keeps the dip's own schedule: it starts where the fade-out
|
|
141
|
+
// ended, so the dip keeps its length. The clock is read after the
|
|
142
|
+
// landing, because a frame's timestamp does not count the landing's own
|
|
143
|
+
// work. After a long stall, half of the fade-in still plays.
|
|
144
|
+
const fadeOutEnd = endTime(fadeOut, half);
|
|
145
|
+
if (fadeOutEnd != null) {
|
|
146
|
+
fadeIn.startTime = Math.max(fadeOutEnd, performance.now() - half / 2);
|
|
147
|
+
}
|
|
148
|
+
// The fade-in now holds the opacity, so the held 0 can go.
|
|
149
|
+
fadeOut.cancel();
|
|
150
|
+
},
|
|
151
|
+
// A cancelled fade-out rejects `finished`: nothing lands.
|
|
152
|
+
() => {});
|
|
153
|
+
return {
|
|
154
|
+
cancel() {
|
|
155
|
+
isCancelled = true;
|
|
156
|
+
fadeOut.cancel();
|
|
157
|
+
fadeIn?.cancel();
|
|
158
|
+
}
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/** When `animation` was due to end, on its timeline (ms), if it has started. */
|
|
163
|
+
function endTime(animation, duration) {
|
|
164
|
+
const start = animation.startTime;
|
|
165
|
+
return typeof start === 'number' ? start + duration : null;
|
|
89
166
|
}
|
package/dist/motion/roles.d.ts
CHANGED
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
* @input The motion tables (motion/uikit and each component's own table)
|
|
4
4
|
* @output registerMotionTable, motionRoleOf, motionRoleIn, listMotionRoles,
|
|
5
5
|
* motionRoleVariable, and the CSS form of a role's value
|
|
6
|
-
* (formatMotionRoleValue, parseMotionRoleValue)
|
|
6
|
+
* (formatMotionRoleValue, parseMotionRoleValue), and parseCssEasing for a
|
|
7
|
+
* CSS transition's easing
|
|
7
8
|
* @position Motion foundation, internal to core: read by the code that
|
|
8
9
|
* resolves a role when a motion starts. No public API writes a role: touch
|
|
9
10
|
* motion stays internal until the public motion-token set is decided.
|
|
@@ -76,4 +77,9 @@ export declare function parseMotionRoleValue(kind: 'spring', text: string): Dura
|
|
|
76
77
|
export declare function parseMotionRoleValue(kind: 'duration', text: string): number | null;
|
|
77
78
|
export declare function parseMotionRoleValue(kind: 'curve', text: string): MotionCurvePoints | null;
|
|
78
79
|
export declare function parseMotionRoleValue(kind: MotionRoleKind, text: string): DurationBounce | number | MotionCurvePoints | null;
|
|
80
|
+
/**
|
|
81
|
+
* Reads a CSS easing, a keyword or a `cubic-bezier()`, as a curve role's value
|
|
82
|
+
* is read. Returns null for any other easing, such as `steps()`.
|
|
83
|
+
*/
|
|
84
|
+
export declare function parseCssEasing(text: string): MotionCurvePoints | null;
|
|
79
85
|
//# sourceMappingURL=roles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roles.d.ts","sourceRoot":"","sources":["../../src/motion/roles.ts"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"roles.d.ts","sourceRoot":"","sources":["../../src/motion/roles.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EACL,qBAAqB,EAErB,cAAc,EAEd,kBAAkB,EAClB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACpB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAC,cAAc,EAAE,iBAAiB,EAAC,MAAM,UAAU,CAAC;AAEhE,OAAO,EAAC,qBAAqB,EAAE,cAAc,EAAE,kBAAkB,EAAC,CAAC;AACnE,YAAY,EAAC,iBAAiB,EAAE,cAAc,EAAC,CAAC;AAEhD,2BAA2B;AAC3B,MAAM,WAAW,UAAU;IACzB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,6DAA6D;IAC7D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,gEAAgE;IAChE,QAAQ,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,GAAG,iBAAiB,CAAC;CAChE;AAYD;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,EACb,EACE,KAAU,EACV,OAAY,EACZ,MAAW,GACZ,GAAE;IACD,KAAK,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC9B,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAChC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACtC,GACL,IAAI,CAoEN;AAED,2EAA2E;AAC3E,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,CAIlE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,GACV,UAAU,GAAG,SAAS,CAOxB;AAED,2DAA2D;AAC3D,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAE7D;AAED,oCAAoC;AACpC,wBAAgB,eAAe,IAAI,UAAU,EAAE,CAE9C;AASD;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE,MAAM,GACX,cAAc,GAAG,IAAI,CAAC;AACzB,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,MAAM,GACX,MAAM,GAAG,IAAI,CAAC;AACjB,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,MAAM,GACX,iBAAiB,GAAG,IAAI,CAAC;AAC5B,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,MAAM,GACX,cAAc,GAAG,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAAC;AAqDtD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAGrE"}
|
package/dist/motion/roles.js
CHANGED
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
* @input The motion tables (motion/uikit and each component's own table)
|
|
6
6
|
* @output registerMotionTable, motionRoleOf, motionRoleIn, listMotionRoles,
|
|
7
7
|
* motionRoleVariable, and the CSS form of a role's value
|
|
8
|
-
* (formatMotionRoleValue, parseMotionRoleValue)
|
|
8
|
+
* (formatMotionRoleValue, parseMotionRoleValue), and parseCssEasing for a
|
|
9
|
+
* CSS transition's easing
|
|
9
10
|
* @position Motion foundation, internal to core: read by the code that
|
|
10
11
|
* resolves a role when a motion starts. No public API writes a role: touch
|
|
11
12
|
* motion stays internal until the public motion-token set is decided.
|
|
@@ -196,4 +197,22 @@ export function parseMotionRoleValue(kind, text) {
|
|
|
196
197
|
}
|
|
197
198
|
const points = [m[1], m[2], m[3], m[4]].map(Number);
|
|
198
199
|
return points[0] >= 0 && points[0] <= 1 && points[2] >= 0 && points[2] <= 1 ? points : null;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
/** The CSS easing keywords, as the control points CSS gives them. */
|
|
203
|
+
const EASING_KEYWORDS = {
|
|
204
|
+
linear: [0, 0, 1, 1],
|
|
205
|
+
ease: [0.25, 0.1, 0.25, 1],
|
|
206
|
+
'ease-in': [0.42, 0, 1, 1],
|
|
207
|
+
'ease-out': [0, 0, 0.58, 1],
|
|
208
|
+
'ease-in-out': [0.42, 0, 0.58, 1]
|
|
209
|
+
};
|
|
210
|
+
|
|
211
|
+
/**
|
|
212
|
+
* Reads a CSS easing, a keyword or a `cubic-bezier()`, as a curve role's value
|
|
213
|
+
* is read. Returns null for any other easing, such as `steps()`.
|
|
214
|
+
*/
|
|
215
|
+
export function parseCssEasing(text) {
|
|
216
|
+
const value = text.trim();
|
|
217
|
+
return EASING_KEYWORDS[value] ?? parseMotionRoleValue('curve', value);
|
|
199
218
|
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file alert.ts
|
|
3
|
+
* @input Nothing; data only
|
|
4
|
+
* @output Exports `alertController`: how UIAlertController (`.alert`) tracks
|
|
5
|
+
* a finger across its actions
|
|
6
|
+
* @position The alert domain of the UIKit constants table (motion/uikit);
|
|
7
|
+
* its springs are `springs.alertPresent` and `springs.alertDismiss`
|
|
8
|
+
*
|
|
9
|
+
* Every value was read from UIKit on the iOS 26.2 simulator. A host app
|
|
10
|
+
* presented `UIAlertController(.alert)` with two and with three actions.
|
|
11
|
+
* Real HID touches drove it, and the action views' highlight was sampled
|
|
12
|
+
* every frame. Lengths are in pt (CSS px), durations in ms.
|
|
13
|
+
*
|
|
14
|
+
* Every leaf carries one or more `@source`; GUESS values also carry the
|
|
15
|
+
* `@measure` task that will confirm or replace them. uikit.test.ts enforces
|
|
16
|
+
* both.
|
|
17
|
+
*
|
|
18
|
+
* SYNC: When modified, update /packages/core/src/motion/MEASUREMENTS.md
|
|
19
|
+
*/
|
|
20
|
+
export declare const alertController: {
|
|
21
|
+
readonly actions: {
|
|
22
|
+
/**
|
|
23
|
+
* How long after touch-down the touched action highlights: none, it is
|
|
24
|
+
* highlighted in the touch-down frame (a tap and a 300 ms hold alike).
|
|
25
|
+
* @source measured: UIKit lab (injected host app), iOS 26.2 simulator,
|
|
26
|
+
* iPhone 17 Pro, per-frame highlight of the action views under real HID
|
|
27
|
+
* touches, Oct 23 2026
|
|
28
|
+
*/
|
|
29
|
+
readonly highlightOnsetMs: 0;
|
|
30
|
+
/**
|
|
31
|
+
* How far outside an action the finger may go and keep it highlighted:
|
|
32
|
+
* none. The highlight cleared 1 pt below the action, and a lift there ran
|
|
33
|
+
* nothing. UIButton keeps 70 pt; an alert action does not.
|
|
34
|
+
* @source measured: UIKit lab (injected host app), iOS 26.2 simulator,
|
|
35
|
+
* iPhone 17 Pro, per-frame highlight of the action views under real HID
|
|
36
|
+
* touches, Oct 23 2026
|
|
37
|
+
*/
|
|
38
|
+
readonly highlightExpansion: 0;
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=alert.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alert.d.ts","sourceRoot":"","sources":["../../../src/motion/uikit/alert.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,eAAO,MAAM,eAAe;;QAExB;;;;;;WAMG;;QAEH;;;;;;;WAOG;;;CAGG,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @file alert.ts
|
|
5
|
+
* @input Nothing; data only
|
|
6
|
+
* @output Exports `alertController`: how UIAlertController (`.alert`) tracks
|
|
7
|
+
* a finger across its actions
|
|
8
|
+
* @position The alert domain of the UIKit constants table (motion/uikit);
|
|
9
|
+
* its springs are `springs.alertPresent` and `springs.alertDismiss`
|
|
10
|
+
*
|
|
11
|
+
* Every value was read from UIKit on the iOS 26.2 simulator. A host app
|
|
12
|
+
* presented `UIAlertController(.alert)` with two and with three actions.
|
|
13
|
+
* Real HID touches drove it, and the action views' highlight was sampled
|
|
14
|
+
* every frame. Lengths are in pt (CSS px), durations in ms.
|
|
15
|
+
*
|
|
16
|
+
* Every leaf carries one or more `@source`; GUESS values also carry the
|
|
17
|
+
* `@measure` task that will confirm or replace them. uikit.test.ts enforces
|
|
18
|
+
* both.
|
|
19
|
+
*
|
|
20
|
+
* SYNC: When modified, update /packages/core/src/motion/MEASUREMENTS.md
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
export const alertController = {
|
|
24
|
+
actions: {
|
|
25
|
+
/**
|
|
26
|
+
* How long after touch-down the touched action highlights: none, it is
|
|
27
|
+
* highlighted in the touch-down frame (a tap and a 300 ms hold alike).
|
|
28
|
+
* @source measured: UIKit lab (injected host app), iOS 26.2 simulator,
|
|
29
|
+
* iPhone 17 Pro, per-frame highlight of the action views under real HID
|
|
30
|
+
* touches, Oct 23 2026
|
|
31
|
+
*/
|
|
32
|
+
highlightOnsetMs: 0,
|
|
33
|
+
/**
|
|
34
|
+
* How far outside an action the finger may go and keep it highlighted:
|
|
35
|
+
* none. The highlight cleared 1 pt below the action, and a lift there ran
|
|
36
|
+
* nothing. UIButton keeps 70 pt; an alert action does not.
|
|
37
|
+
* @source measured: UIKit lab (injected host app), iOS 26.2 simulator,
|
|
38
|
+
* iPhone 17 Pro, per-frame highlight of the action views under real HID
|
|
39
|
+
* touches, Oct 23 2026
|
|
40
|
+
*/
|
|
41
|
+
highlightExpansion: 0
|
|
42
|
+
}
|
|
43
|
+
};
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
* @file index.ts
|
|
3
3
|
* @input The domain files of the UIKit constants table
|
|
4
4
|
* @output Re-exports `springs` and one constant per spring (`SHEET_PRESENT_SPRING`,
|
|
5
|
-
* …), `scroll`, `timing`, `navigation`, `progressBar`,
|
|
6
|
-
* switch (`switchControl`) domains, and the gesture
|
|
7
|
-
* `UIKIT_*` group per recognizer, their union
|
|
8
|
-
* haptic tables)
|
|
5
|
+
* …), `scroll`, `timing`, `navigation`, `progressBar`, `segmentedControl`,
|
|
6
|
+
* the `slider` and switch (`switchControl`) domains, and the gesture
|
|
7
|
+
* thresholds (one `UIKIT_*` group per recognizer, their union
|
|
8
|
+
* `UIKIT_GESTURES`, and the haptic tables)
|
|
9
9
|
* @position Entry of the UIKit constants table (motion/uikit). Internal to
|
|
10
10
|
* core: not exported from the package entry point
|
|
11
11
|
*
|
|
@@ -21,8 +21,9 @@ export { HAPTIC_FEEDBACK_KINDS, HAPTIC_VIBRATION_PATTERNS, UIKIT_CLICK, UIKIT_CO
|
|
|
21
21
|
export { navigation, registerNavigationTable } from './navigation.js';
|
|
22
22
|
export { progressBar, registerProgressBarTable } from './progressBar.js';
|
|
23
23
|
export { registerScrollTable, scroll } from './scroll.js';
|
|
24
|
+
export { segmentedControl } from './segmented.js';
|
|
24
25
|
export { slider } from './slider.js';
|
|
25
|
-
export { ACTION_SHEET_DISMISS_SPRING, ACTION_SHEET_PRESENT_SPRING, ALERT_DISMISS_SPRING, ALERT_PRESENT_SPRING, BANNER_SPRING, CONTEXT_MENU_DISMISS_SPRING, CONTEXT_MENU_LIFT_SPRING, CONTEXT_MENU_MORPH_SPRING, DIRECT_CHANGE_SPRING, EMPHASIS_SPRING, FINGER_TRACKING_SPRING, KEYBOARD_SPRING, MENU_CLOSE_SPRING, MENU_OPEN_SPRING, MENU_REDUCED_MOTION_SPRING, NAVIGATION_BAR_ELEMENTS_SPRING, NAVIGATION_INTERACTIVE_POP_FINISH_SPRING, NAVIGATION_POP_SPRING, NAVIGATION_PUSH_SPRING, QUICK_CHANGE_SPRING,
|
|
26
|
+
export { ACTION_SHEET_DISMISS_SPRING, ACTION_SHEET_PRESENT_SPRING, ALERT_DISMISS_SPRING, ALERT_PRESENT_SPRING, BANNER_SPRING, CONTEXT_MENU_DISMISS_SPRING, CONTEXT_MENU_LIFT_SPRING, CONTEXT_MENU_MORPH_SPRING, DIRECT_CHANGE_SPRING, EMPHASIS_SPRING, FINGER_TRACKING_SPRING, KEYBOARD_SPRING, MENU_CLOSE_SPRING, MENU_OPEN_SPRING, MENU_REDUCED_MOTION_SPRING, NAVIGATION_BAR_ELEMENTS_SPRING, NAVIGATION_INTERACTIVE_POP_FINISH_SPRING, NAVIGATION_POP_SPRING, NAVIGATION_PUSH_SPRING, QUICK_CHANGE_SPRING, SETTLE_SPRING, SHEET_DETENT_SPRING, SHEET_DISMISS_SPRING, SHEET_DISMISS_SWIPE_SPRING, SHEET_PRESENT_SPRING, SHEET_RELEASE_FAST_SPRING, STATE_CHANGE_SPRING, SUB_MENU_BACK_SPRING, SUB_MENU_OPEN_SPRING, SWITCH_THUMB_MOVE_SPRING, TIMED_CHANGE_SPRING, VIEW_CHANGE_SPRING, registerSpringsTable, springs, } from './springs.js';
|
|
26
27
|
export { switchControl } from './switch.js';
|
|
27
28
|
export { registerTimingTable, timing } from './timing.js';
|
|
28
29
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/motion/uikit/index.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,WAAW,EACX,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,SAAS,EACT,WAAW,EACX,WAAW,EACX,cAAc,EACd,qBAAqB,EACrB,WAAW,EACX,SAAS,EACT,cAAc,EACd,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,GACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAC,UAAU,EAAE,uBAAuB,EAAC,MAAM,cAAc,CAAC;AACjE,OAAO,EAAC,WAAW,EAAE,wBAAwB,EAAC,MAAM,eAAe,CAAC;AACpE,OAAO,EAAC,mBAAmB,EAAE,MAAM,EAAC,MAAM,UAAU,CAAC;AACrD,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAChC,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,EAC3B,oBAAoB,EACpB,oBAAoB,EACpB,aAAa,EACb,2BAA2B,EAC3B,wBAAwB,EACxB,yBAAyB,EACzB,oBAAoB,EACpB,eAAe,EACf,sBAAsB,EACtB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,0BAA0B,EAC1B,8BAA8B,EAC9B,wCAAwC,EACxC,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/motion/uikit/index.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,WAAW,EACX,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,SAAS,EACT,WAAW,EACX,WAAW,EACX,cAAc,EACd,qBAAqB,EACrB,WAAW,EACX,SAAS,EACT,cAAc,EACd,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,GACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAC,UAAU,EAAE,uBAAuB,EAAC,MAAM,cAAc,CAAC;AACjE,OAAO,EAAC,WAAW,EAAE,wBAAwB,EAAC,MAAM,eAAe,CAAC;AACpE,OAAO,EAAC,mBAAmB,EAAE,MAAM,EAAC,MAAM,UAAU,CAAC;AACrD,OAAO,EAAC,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAChC,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,EAC3B,oBAAoB,EACpB,oBAAoB,EACpB,aAAa,EACb,2BAA2B,EAC3B,wBAAwB,EACxB,yBAAyB,EACzB,oBAAoB,EACpB,eAAe,EACf,sBAAsB,EACtB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,0BAA0B,EAC1B,8BAA8B,EAC9B,wCAAwC,EACxC,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,aAAa,EACb,mBAAmB,EACnB,oBAAoB,EACpB,0BAA0B,EAC1B,oBAAoB,EACpB,yBAAyB,EACzB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,OAAO,GACR,MAAM,WAAW,CAAC;AACnB,OAAO,EAAC,aAAa,EAAC,MAAM,UAAU,CAAC;AACvC,OAAO,EAAC,mBAAmB,EAAE,MAAM,EAAC,MAAM,UAAU,CAAC"}
|
|
@@ -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`, `progressBar`,
|
|
8
|
-
* switch (`switchControl`) domains, and the gesture
|
|
9
|
-
* `UIKIT_*` group per recognizer, their union
|
|
10
|
-
* haptic tables)
|
|
7
|
+
* …), `scroll`, `timing`, `navigation`, `progressBar`, `segmentedControl`,
|
|
8
|
+
* the `slider` and switch (`switchControl`) domains, and the gesture
|
|
9
|
+
* thresholds (one `UIKIT_*` group per recognizer, their union
|
|
10
|
+
* `UIKIT_GESTURES`, and the haptic tables)
|
|
11
11
|
* @position Entry of the UIKit constants table (motion/uikit). Internal to
|
|
12
12
|
* core: not exported from the package entry point
|
|
13
13
|
*
|
|
@@ -24,7 +24,8 @@ export { HAPTIC_FEEDBACK_KINDS, HAPTIC_VIBRATION_PATTERNS, UIKIT_CLICK, UIKIT_CO
|
|
|
24
24
|
export { navigation, registerNavigationTable } from "./navigation.js";
|
|
25
25
|
export { progressBar, registerProgressBarTable } from "./progressBar.js";
|
|
26
26
|
export { registerScrollTable, scroll } from "./scroll.js";
|
|
27
|
+
export { segmentedControl } from "./segmented.js";
|
|
27
28
|
export { slider } from "./slider.js";
|
|
28
|
-
export { ACTION_SHEET_DISMISS_SPRING, ACTION_SHEET_PRESENT_SPRING, ALERT_DISMISS_SPRING, ALERT_PRESENT_SPRING, BANNER_SPRING, CONTEXT_MENU_DISMISS_SPRING, CONTEXT_MENU_LIFT_SPRING, CONTEXT_MENU_MORPH_SPRING, DIRECT_CHANGE_SPRING, EMPHASIS_SPRING, FINGER_TRACKING_SPRING, KEYBOARD_SPRING, MENU_CLOSE_SPRING, MENU_OPEN_SPRING, MENU_REDUCED_MOTION_SPRING, NAVIGATION_BAR_ELEMENTS_SPRING, NAVIGATION_INTERACTIVE_POP_FINISH_SPRING, NAVIGATION_POP_SPRING, NAVIGATION_PUSH_SPRING, QUICK_CHANGE_SPRING,
|
|
29
|
+
export { ACTION_SHEET_DISMISS_SPRING, ACTION_SHEET_PRESENT_SPRING, ALERT_DISMISS_SPRING, ALERT_PRESENT_SPRING, BANNER_SPRING, CONTEXT_MENU_DISMISS_SPRING, CONTEXT_MENU_LIFT_SPRING, CONTEXT_MENU_MORPH_SPRING, DIRECT_CHANGE_SPRING, EMPHASIS_SPRING, FINGER_TRACKING_SPRING, KEYBOARD_SPRING, MENU_CLOSE_SPRING, MENU_OPEN_SPRING, MENU_REDUCED_MOTION_SPRING, NAVIGATION_BAR_ELEMENTS_SPRING, NAVIGATION_INTERACTIVE_POP_FINISH_SPRING, NAVIGATION_POP_SPRING, NAVIGATION_PUSH_SPRING, QUICK_CHANGE_SPRING, SETTLE_SPRING, SHEET_DETENT_SPRING, SHEET_DISMISS_SPRING, SHEET_DISMISS_SWIPE_SPRING, SHEET_PRESENT_SPRING, SHEET_RELEASE_FAST_SPRING, STATE_CHANGE_SPRING, SUB_MENU_BACK_SPRING, SUB_MENU_OPEN_SPRING, SWITCH_THUMB_MOVE_SPRING, TIMED_CHANGE_SPRING, VIEW_CHANGE_SPRING, registerSpringsTable, springs } from "./springs.js";
|
|
29
30
|
export { switchControl } from "./switch.js";
|
|
30
31
|
export { registerTimingTable, timing } from "./timing.js";
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UIKit's own UISegmentedControl, measured with three text segments in a
|
|
3
|
+
* 300 × 31 pt control. A tap and a programmatic change follow the same
|
|
4
|
+
* spring. Every leaf carries a `@source`, and uikit.test.ts checks it.
|
|
5
|
+
*
|
|
6
|
+
* Some UIKit motion is left out on purpose. UIKit cross-fades the two titles
|
|
7
|
+
* that change, over 0.2 s. Astryx switches them at once, because a
|
|
8
|
+
* cross-fade needs a second copy of each title. Under Reduce Motion, UIKit's
|
|
9
|
+
* lens fades in at the new segment and scales from 0.88. Astryx allows no
|
|
10
|
+
* scaling there, so the animator's Reduce Motion cross-fade replaces it.
|
|
11
|
+
* UIKit's lens also lifts and stretches under a finger. A theme role owns
|
|
12
|
+
* the lift, and the stretch is not modeled. The lens chases a dragging
|
|
13
|
+
* finger on the shared `springs.fingerTracking` role, which matches the
|
|
14
|
+
* values UIKit reports for this control.
|
|
15
|
+
*/
|
|
16
|
+
export declare const segmentedControl: {
|
|
17
|
+
/**
|
|
18
|
+
* The selection indicator's slide from the old segment to the new one,
|
|
19
|
+
* after a tap or a programmatic change. Its response is 0.40 s and its
|
|
20
|
+
* damping ratio 0.85. That gives about 1.25 pt of overshoot on a 200 pt
|
|
21
|
+
* move, settled by about 0.6 s. The width follows the same spring when the
|
|
22
|
+
* segments differ in width.
|
|
23
|
+
* @source measured: UIKit lab (injected host app), iOS 26.2 simulator,
|
|
24
|
+
* iPhone 17 Pro, UIViewSpringAnimationBehavior read on the lens position
|
|
25
|
+
* for a tap and a programmatic set (dampingRatio 0.85, response 0.40,
|
|
26
|
+
* tracking off), Oct 23 2026
|
|
27
|
+
* @source measured: UIKit lab (injected host app), iOS 26.2 simulator,
|
|
28
|
+
* iPhone 17 Pro, per-frame log of the lens's presentation position and
|
|
29
|
+
* velocity (method C) for a tap, a programmatic set and an animated set,
|
|
30
|
+
* least-squares spring fit (response 0.395 / 0.405 / 0.400 s, damping
|
|
31
|
+
* ratio 0.855 / 0.845 / 0.850, rms at most 0.65 pt over 200 pt),
|
|
32
|
+
* Oct 23 2026
|
|
33
|
+
*/
|
|
34
|
+
readonly selectionSpring: {
|
|
35
|
+
readonly response: 0.4;
|
|
36
|
+
readonly dampingRatio: 0.85;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* How far past the first or last segment's center the lens follows a
|
|
40
|
+
* dragging finger, in pt. Beyond that, the lens stays put while the finger
|
|
41
|
+
* goes on.
|
|
42
|
+
* @source measured: UIKit lab (injected host app), iOS 26.2 simulator,
|
|
43
|
+
* iPhone 17 Pro, a drag 60 pt past the last segment: the lens stops about
|
|
44
|
+
* 11 pt past its center (312 vs 301), Oct 23 2026
|
|
45
|
+
*/
|
|
46
|
+
readonly dragOvershoot: 11;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Registers this table with the motion registry (motion/roles.ts). The
|
|
50
|
+
* slide's spring becomes an internal motion role. The drag overshoot is not
|
|
51
|
+
* motion, so it stays an internal constant. Nothing registers on import, and
|
|
52
|
+
* a second call does nothing.
|
|
53
|
+
*/
|
|
54
|
+
export declare function registerSegmentedTable(): void;
|
|
55
|
+
//# sourceMappingURL=segmented.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"segmented.d.ts","sourceRoot":"","sources":["../../../src/motion/uikit/segmented.ts"],"names":[],"mappings":"AAkBA;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,gBAAgB;IAC3B;;;;;;;;;;;;;;;;OAgBG;;;;;IAEH;;;;;;;OAOG;;CAEK,CAAC;AAEX;;;;;GAKG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAI7C"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @file segmented.ts
|
|
5
|
+
* @input Nothing; data only
|
|
6
|
+
* @output Exports `segmentedControl`, UISegmentedControl's selection slide
|
|
7
|
+
* spring and its drag overshoot; and `registerSegmentedTable`, which
|
|
8
|
+
* registers the spring as an internal motion role
|
|
9
|
+
* @position The segmented-control domain of the UIKit constants table
|
|
10
|
+
* (motion/uikit); read by SegmentedControl's touch presentation
|
|
11
|
+
*
|
|
12
|
+
* SYNC: When modified, update:
|
|
13
|
+
* - /packages/core/src/SegmentedControl/useSegmentedSelectionMotion.ts
|
|
14
|
+
* - /packages/core/src/motion/README.md (domain list)
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import { registerMotionTable } from "../roles.js";
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* UIKit's own UISegmentedControl, measured with three text segments in a
|
|
21
|
+
* 300 × 31 pt control. A tap and a programmatic change follow the same
|
|
22
|
+
* spring. Every leaf carries a `@source`, and uikit.test.ts checks it.
|
|
23
|
+
*
|
|
24
|
+
* Some UIKit motion is left out on purpose. UIKit cross-fades the two titles
|
|
25
|
+
* that change, over 0.2 s. Astryx switches them at once, because a
|
|
26
|
+
* cross-fade needs a second copy of each title. Under Reduce Motion, UIKit's
|
|
27
|
+
* lens fades in at the new segment and scales from 0.88. Astryx allows no
|
|
28
|
+
* scaling there, so the animator's Reduce Motion cross-fade replaces it.
|
|
29
|
+
* UIKit's lens also lifts and stretches under a finger. A theme role owns
|
|
30
|
+
* the lift, and the stretch is not modeled. The lens chases a dragging
|
|
31
|
+
* finger on the shared `springs.fingerTracking` role, which matches the
|
|
32
|
+
* values UIKit reports for this control.
|
|
33
|
+
*/
|
|
34
|
+
export const segmentedControl = {
|
|
35
|
+
/**
|
|
36
|
+
* The selection indicator's slide from the old segment to the new one,
|
|
37
|
+
* after a tap or a programmatic change. Its response is 0.40 s and its
|
|
38
|
+
* damping ratio 0.85. That gives about 1.25 pt of overshoot on a 200 pt
|
|
39
|
+
* move, settled by about 0.6 s. The width follows the same spring when the
|
|
40
|
+
* segments differ in width.
|
|
41
|
+
* @source measured: UIKit lab (injected host app), iOS 26.2 simulator,
|
|
42
|
+
* iPhone 17 Pro, UIViewSpringAnimationBehavior read on the lens position
|
|
43
|
+
* for a tap and a programmatic set (dampingRatio 0.85, response 0.40,
|
|
44
|
+
* tracking off), Oct 23 2026
|
|
45
|
+
* @source measured: UIKit lab (injected host app), iOS 26.2 simulator,
|
|
46
|
+
* iPhone 17 Pro, per-frame log of the lens's presentation position and
|
|
47
|
+
* velocity (method C) for a tap, a programmatic set and an animated set,
|
|
48
|
+
* least-squares spring fit (response 0.395 / 0.405 / 0.400 s, damping
|
|
49
|
+
* ratio 0.855 / 0.845 / 0.850, rms at most 0.65 pt over 200 pt),
|
|
50
|
+
* Oct 23 2026
|
|
51
|
+
*/
|
|
52
|
+
selectionSpring: {
|
|
53
|
+
response: 0.4,
|
|
54
|
+
dampingRatio: 0.85
|
|
55
|
+
},
|
|
56
|
+
/**
|
|
57
|
+
* How far past the first or last segment's center the lens follows a
|
|
58
|
+
* dragging finger, in pt. Beyond that, the lens stays put while the finger
|
|
59
|
+
* goes on.
|
|
60
|
+
* @source measured: UIKit lab (injected host app), iOS 26.2 simulator,
|
|
61
|
+
* iPhone 17 Pro, a drag 60 pt past the last segment: the lens stops about
|
|
62
|
+
* 11 pt past its center (312 vs 301), Oct 23 2026
|
|
63
|
+
*/
|
|
64
|
+
dragOvershoot: 11
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Registers this table with the motion registry (motion/roles.ts). The
|
|
69
|
+
* slide's spring becomes an internal motion role. The drag overshoot is not
|
|
70
|
+
* motion, so it stays an internal constant. Nothing registers on import, and
|
|
71
|
+
* a second call does nothing.
|
|
72
|
+
*/
|
|
73
|
+
export function registerSegmentedTable() {
|
|
74
|
+
registerMotionTable('segmented', segmentedControl, {
|
|
75
|
+
roles: ['selectionSpring']
|
|
76
|
+
});
|
|
77
|
+
}
|
|
@@ -349,20 +349,6 @@ export declare const SWITCH_THUMB_MOVE_SPRING: {
|
|
|
349
349
|
readonly response: 0.3;
|
|
350
350
|
readonly dampingRatio: 1;
|
|
351
351
|
};
|
|
352
|
-
/**
|
|
353
|
-
* UISegmentedControl selection thumb sliding to a new segment.
|
|
354
|
-
* @source GUESS — WebKit's UIKit-matched switch thumb spring
|
|
355
|
-
* (RenderThemeCocoa.mm `thumbMoveSpring`: response 0.30 s, ratio 0.75),
|
|
356
|
-
* kept only until UISegmentedControl's measured spring replaces it;
|
|
357
|
-
* UISwitch's measured travel (`SWITCH_THUMB_MOVE_SPRING`)
|
|
358
|
-
* belongs to another control
|
|
359
|
-
* @measure M-SG02
|
|
360
|
-
* @measure M-SG03
|
|
361
|
-
*/
|
|
362
|
-
export declare const SEGMENTED_THUMB_SPRING: {
|
|
363
|
-
readonly response: 0.3;
|
|
364
|
-
readonly dampingRatio: 0.75;
|
|
365
|
-
};
|
|
366
352
|
/**
|
|
367
353
|
* Keyboard frame animation, show and hide alike: critically damped,
|
|
368
354
|
* response 0.2667 s. The notification reports curve 7 and 0.3833 s
|
|
@@ -553,10 +539,6 @@ export declare const springs: {
|
|
|
553
539
|
readonly response: 0.3;
|
|
554
540
|
readonly dampingRatio: 1;
|
|
555
541
|
};
|
|
556
|
-
readonly segmentedThumb: {
|
|
557
|
-
readonly response: 0.3;
|
|
558
|
-
readonly dampingRatio: 0.75;
|
|
559
|
-
};
|
|
560
542
|
readonly keyboard: {
|
|
561
543
|
readonly mass: 1;
|
|
562
544
|
readonly stiffness: 555.0265;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"springs.d.ts","sourceRoot":"","sources":["../../../src/motion/uikit/springs.ts"],"names":[],"mappings":"AAmCA;;;;GAIG;AACH,eAAO,MAAM,aAAa;;;CAAsC,CAAC;AAEjE;;;GAGG;AACH,eAAO,MAAM,mBAAmB;;;CAAyC,CAAC;AAE1E;;;GAGG;AACH,eAAO,MAAM,eAAe;;;CAAwC,CAAC;AAErE;;;GAGG;AACH,eAAO,MAAM,sBAAsB;;;CAGzB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,mBAAmB;;;CAA6C,CAAC;AAE9E;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;;CAGvB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,mBAAmB;;;CAAsC,CAAC;AAEvE;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,kBAAkB;;;;CAIrB,CAAC;AAMX;;;;;;;;;GASG;AACH,eAAO,MAAM,sBAAsB;;;CAA4C,CAAC;AAEhF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB;;;CAA4C,CAAC;AAE/E;;;;;;GAMG;AACH,eAAO,MAAM,wCAAwC;;;CAG3C,CAAC;AAEX;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B;;;CAGjC,CAAC;AAMX;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB;;;;CAIvB,CAAC;AAEX;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB;;;;CAIvB,CAAC;AAEX;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB;;;CAGtB,CAAC;AAEX;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB;;;CAG5B,CAAC;AAEX;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B;;;CAG7B,CAAC;AAMX;;;;;;;;;;GAUG;AACH,eAAO,MAAM,oBAAoB;;;;CAIvB,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,oBAAoB;;;;CAIvB,CAAC;AAEX;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B;;;;CAI9B,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,2BAA2B;;;;CAI9B,CAAC;AAEX;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB;;;CAA+C,CAAC;AAE7E;;;;GAIG;AACH,eAAO,MAAM,iBAAiB;;;CAAgD,CAAC;AAE/E;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,oBAAoB;;;CAGvB,CAAC;AAEX;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,oBAAoB;;;CAA4C,CAAC;AAE9E;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB;;;CAG3B,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,2BAA2B;;;CAG9B,CAAC;AAEX;;;;;;;;;GASG;AACH,eAAO,MAAM,yBAAyB;;;CAG5B,CAAC;AAEX;;;;;;;;;GASG;AACH,eAAO,MAAM,0BAA0B;;;CAG7B,CAAC;AAMX;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB;;;CAG3B,CAAC;
|
|
1
|
+
{"version":3,"file":"springs.d.ts","sourceRoot":"","sources":["../../../src/motion/uikit/springs.ts"],"names":[],"mappings":"AAmCA;;;;GAIG;AACH,eAAO,MAAM,aAAa;;;CAAsC,CAAC;AAEjE;;;GAGG;AACH,eAAO,MAAM,mBAAmB;;;CAAyC,CAAC;AAE1E;;;GAGG;AACH,eAAO,MAAM,eAAe;;;CAAwC,CAAC;AAErE;;;GAGG;AACH,eAAO,MAAM,sBAAsB;;;CAGzB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,mBAAmB;;;CAA6C,CAAC;AAE9E;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;;CAGvB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,mBAAmB;;;CAAsC,CAAC;AAEvE;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,kBAAkB;;;;CAIrB,CAAC;AAMX;;;;;;;;;GASG;AACH,eAAO,MAAM,sBAAsB;;;CAA4C,CAAC;AAEhF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB;;;CAA4C,CAAC;AAE/E;;;;;;GAMG;AACH,eAAO,MAAM,wCAAwC;;;CAG3C,CAAC;AAEX;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B;;;CAGjC,CAAC;AAMX;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB;;;;CAIvB,CAAC;AAEX;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB;;;;CAIvB,CAAC;AAEX;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB;;;CAGtB,CAAC;AAEX;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB;;;CAG5B,CAAC;AAEX;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B;;;CAG7B,CAAC;AAMX;;;;;;;;;;GAUG;AACH,eAAO,MAAM,oBAAoB;;;;CAIvB,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,oBAAoB;;;;CAIvB,CAAC;AAEX;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B;;;;CAI9B,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,2BAA2B;;;;CAI9B,CAAC;AAEX;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB;;;CAA+C,CAAC;AAE7E;;;;GAIG;AACH,eAAO,MAAM,iBAAiB;;;CAAgD,CAAC;AAE/E;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,oBAAoB;;;CAGvB,CAAC;AAEX;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,oBAAoB;;;CAA4C,CAAC;AAE9E;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB;;;CAG3B,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,2BAA2B;;;CAG9B,CAAC;AAEX;;;;;;;;;GASG;AACH,eAAO,MAAM,yBAAyB;;;CAG5B,CAAC;AAEX;;;;;;;;;GASG;AACH,eAAO,MAAM,0BAA0B;;;CAG7B,CAAC;AAMX;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB;;;CAG3B,CAAC;AAMX;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe;;;;CAIlB,CAAC;AAEX;;;;;GAKG;AACH,eAAO,MAAM,aAAa;;;;CAAoD,CAAC;AAE/E;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB;;;CAA4C,CAAC;AAE/E;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB;;;CAAgD,CAAC;AAEhF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB;;;CAA8C,CAAC;AAE9E;;;;GAIG;AACH,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoCV,CAAC;AA6BX;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAI3C"}
|
|
@@ -15,11 +15,11 @@
|
|
|
15
15
|
* that will confirm or replace them (MEASUREMENTS.md lists them all).
|
|
16
16
|
* uikit.test.ts enforces both.
|
|
17
17
|
*
|
|
18
|
-
* Most springs are measured on iOS 26.2 or documented by Apple;
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
18
|
+
* Most springs are measured on iOS 26.2 or documented by Apple; one is still
|
|
19
|
+
* a GUESS (`banner`). `switchThumbMove` is the switch's measured travel,
|
|
20
|
+
* which uikit/switch.ts reads. A guess starts from the nearest sourced
|
|
21
|
+
* spring and names it. A component built on the table gets the measured
|
|
22
|
+
* value the moment it lands, without changing.
|
|
23
23
|
*
|
|
24
24
|
* Press highlight in/out are fades, not springs: see timing.ts.
|
|
25
25
|
*
|
|
@@ -430,21 +430,6 @@ export const SWITCH_THUMB_MOVE_SPRING = {
|
|
|
430
430
|
dampingRatio: 1
|
|
431
431
|
};
|
|
432
432
|
|
|
433
|
-
/**
|
|
434
|
-
* UISegmentedControl selection thumb sliding to a new segment.
|
|
435
|
-
* @source GUESS — WebKit's UIKit-matched switch thumb spring
|
|
436
|
-
* (RenderThemeCocoa.mm `thumbMoveSpring`: response 0.30 s, ratio 0.75),
|
|
437
|
-
* kept only until UISegmentedControl's measured spring replaces it;
|
|
438
|
-
* UISwitch's measured travel (`SWITCH_THUMB_MOVE_SPRING`)
|
|
439
|
-
* belongs to another control
|
|
440
|
-
* @measure M-SG02
|
|
441
|
-
* @measure M-SG03
|
|
442
|
-
*/
|
|
443
|
-
export const SEGMENTED_THUMB_SPRING = {
|
|
444
|
-
response: 0.3,
|
|
445
|
-
dampingRatio: 0.75
|
|
446
|
-
};
|
|
447
|
-
|
|
448
433
|
// ---------------------------------------------------------------------
|
|
449
434
|
// System
|
|
450
435
|
// ---------------------------------------------------------------------
|
|
@@ -547,7 +532,6 @@ export const springs = {
|
|
|
547
532
|
contextMenuMorph: CONTEXT_MENU_MORPH_SPRING,
|
|
548
533
|
menuReducedMotion: MENU_REDUCED_MOTION_SPRING,
|
|
549
534
|
switchThumbMove: SWITCH_THUMB_MOVE_SPRING,
|
|
550
|
-
segmentedThumb: SEGMENTED_THUMB_SPRING,
|
|
551
535
|
keyboard: KEYBOARD_SPRING,
|
|
552
536
|
banner: BANNER_SPRING,
|
|
553
537
|
sliderRelease: SLIDER_RELEASE_SPRING,
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file privateAttributes/pressGroupItem.stylex.ts
|
|
3
|
+
* @input Nothing: the private press-group-item attribute
|
|
4
|
+
* @output pressGroupItemProps, which marks an action a group's tracker
|
|
5
|
+
* follows, and isTrackedByGroup, which reads the mark
|
|
6
|
+
* @position Owner module of the private press-group-item attribute: the only
|
|
7
|
+
* file that writes its name. AlertDialog marks its actions, and the press
|
|
8
|
+
* controller (utils/pressFeedback.ts) leaves their press to the group's
|
|
9
|
+
* tracker. No package entry exports it.
|
|
10
|
+
*/
|
|
11
|
+
/** Spread on each action that a group's tracker follows. */
|
|
12
|
+
export declare const pressGroupItemProps: Readonly<Record<string, string>>;
|
|
13
|
+
/** Whether a group's tracker paints the press on `element` or an ancestor. */
|
|
14
|
+
export declare function isTrackedByGroup(element: Element): boolean;
|
|
15
|
+
//# sourceMappingURL=pressGroupItem.stylex.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pressGroupItem.stylex.d.ts","sourceRoot":"","sources":["../../src/privateAttributes/pressGroupItem.stylex.ts"],"names":[],"mappings":"AACA;;;;;;;;;GASG;AAIH,4DAA4D;AAC5D,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAEhE,CAAC;AAEF,8EAA8E;AAC9E,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAE1D"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
/**
|
|
3
|
+
* @file privateAttributes/pressGroupItem.stylex.ts
|
|
4
|
+
* @input Nothing: the private press-group-item attribute
|
|
5
|
+
* @output pressGroupItemProps, which marks an action a group's tracker
|
|
6
|
+
* follows, and isTrackedByGroup, which reads the mark
|
|
7
|
+
* @position Owner module of the private press-group-item attribute: the only
|
|
8
|
+
* file that writes its name. AlertDialog marks its actions, and the press
|
|
9
|
+
* controller (utils/pressFeedback.ts) leaves their press to the group's
|
|
10
|
+
* tracker. No package entry exports it.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
const PRESS_GROUP_ITEM = 'data-astryx-press-group-item';
|
|
14
|
+
|
|
15
|
+
/** Spread on each action that a group's tracker follows. */
|
|
16
|
+
export const pressGroupItemProps = {
|
|
17
|
+
[PRESS_GROUP_ITEM]: ''
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
/** Whether a group's tracker paints the press on `element` or an ancestor. */
|
|
21
|
+
export function isTrackedByGroup(element) {
|
|
22
|
+
return element.closest(`[${PRESS_GROUP_ITEM}]`) != null;
|
|
23
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** Spread on a segment's title: marks it for the touch layer. */
|
|
2
|
+
export declare const segmentTitleProps: Readonly<Record<string, string>>;
|
|
3
|
+
/** The title inside `segment`, or null when the label is hidden. */
|
|
4
|
+
export declare function titleOfSegment(segment: Element): HTMLElement | null;
|
|
5
|
+
//# sourceMappingURL=segmentTitle.stylex.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"segmentTitle.stylex.d.ts","sourceRoot":"","sources":["../../src/privateAttributes/segmentTitle.stylex.ts"],"names":[],"mappings":"AAaA,iEAAiE;AACjE,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAE9D,CAAC;AAEF,oEAAoE;AACpE,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,GAAG,IAAI,CAEnE"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @file privateAttributes/segmentTitle.stylex.ts
|
|
5
|
+
* @input Nothing
|
|
6
|
+
* @output segmentTitleProps, which marks a SegmentedControl segment's title,
|
|
7
|
+
* and titleOfSegment, which finds that title in a segment
|
|
8
|
+
* @position Owner module of the private segment-title attribute: the only
|
|
9
|
+
* file that writes its name. No package entry exports it.
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
const SEGMENT_TITLE = 'data-astryx-segment-title';
|
|
13
|
+
|
|
14
|
+
/** Spread on a segment's title: marks it for the touch layer. */
|
|
15
|
+
export const segmentTitleProps = {
|
|
16
|
+
[SEGMENT_TITLE]: ''
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
/** The title inside `segment`, or null when the label is hidden. */
|
|
20
|
+
export function titleOfSegment(segment) {
|
|
21
|
+
return segment.querySelector(`[${SEGMENT_TITLE}]`);
|
|
22
|
+
}
|