@satinhq/kit 0.0.0-stage → 0.1.0-beta.0
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/LICENSE +21 -0
- package/NOTICE +96 -0
- package/README.md +454 -2
- package/THIRD_PARTY_NOTICES.md +65 -0
- package/bin/satin.mjs +13 -0
- package/dist/acknowledgements/Acknowledgements.d.ts +4 -0
- package/dist/acknowledgements/Acknowledgements.js +42 -0
- package/dist/acknowledgements/bundledNotices.d.ts +4 -0
- package/dist/acknowledgements/bundledNotices.js +58 -0
- package/dist/acknowledgements/inventory.d.ts +17 -0
- package/dist/acknowledgements/inventory.js +10 -0
- package/dist/acknowledgements/inventory.json +39 -0
- package/dist/actions/ActionMenu.d.ts +30 -0
- package/dist/actions/ActionMenu.js +103 -0
- package/dist/actions/RowActions.d.ts +42 -0
- package/dist/actions/RowActions.js +820 -0
- package/dist/actions/contextMotion.d.ts +78 -0
- package/dist/actions/contextMotion.js +329 -0
- package/dist/actions/motion.d.ts +19 -0
- package/dist/actions/motion.js +74 -0
- package/dist/actions/nativeContextAppearance.json +86 -0
- package/dist/actions/nativeContextMotion.json +734 -0
- package/dist/actions/nativeMotion.json +388 -0
- package/dist/actions/preview.d.ts +27 -0
- package/dist/actions/preview.js +217 -0
- package/dist/actions/recognizers.d.ts +24 -0
- package/dist/actions/recognizers.js +87 -0
- package/dist/actions/rowScrub.d.ts +59 -0
- package/dist/actions/rowScrub.js +400 -0
- package/dist/actions/swipeSpring.d.ts +14 -0
- package/dist/actions/swipeSpring.js +35 -0
- package/dist/actions/types.d.ts +71 -0
- package/dist/actions/types.js +28 -0
- package/dist/app/InstallComponents.d.ts +16 -0
- package/dist/app/InstallComponents.js +104 -0
- package/dist/app/InstallationDiagnostics.d.ts +7 -0
- package/dist/app/InstallationDiagnostics.js +23 -0
- package/dist/app/OrientationGuard.d.ts +8 -0
- package/dist/app/OrientationGuard.js +9 -0
- package/dist/app/appearance.d.ts +18 -0
- package/dist/app/appearance.js +15 -0
- package/dist/app/appearanceStore.d.ts +30 -0
- package/dist/app/appearanceStore.js +228 -0
- package/dist/app/backgroundUpdate.d.ts +20 -0
- package/dist/app/backgroundUpdate.js +151 -0
- package/dist/app/buildInfo.d.ts +11 -0
- package/dist/app/buildInfo.js +12 -0
- package/dist/app/buildInfoBuild.d.ts +3 -0
- package/dist/app/buildInfoBuild.js +12 -0
- package/dist/app/checkCli.d.ts +1 -0
- package/dist/app/checkCli.js +73 -0
- package/dist/app/coldLaunchUpdate.d.ts +14 -0
- package/dist/app/coldLaunchUpdate.js +384 -0
- package/dist/app/definition.d.ts +85 -0
- package/dist/app/definition.js +347 -0
- package/dist/app/deployment.d.ts +28 -0
- package/dist/app/deployment.js +352 -0
- package/dist/app/deploymentBuild.d.ts +3 -0
- package/dist/app/deploymentBuild.js +55 -0
- package/dist/app/earlyWorker.d.ts +3 -0
- package/dist/app/earlyWorker.js +77 -0
- package/dist/app/head.d.ts +10 -0
- package/dist/app/head.js +120 -0
- package/dist/app/icons.d.ts +4 -0
- package/dist/app/icons.js +35 -0
- package/dist/app/install.d.ts +18 -0
- package/dist/app/install.js +82 -0
- package/dist/app/installCheck.d.ts +2 -0
- package/dist/app/installCheck.js +148 -0
- package/dist/app/installContext.d.ts +35 -0
- package/dist/app/installContext.js +45 -0
- package/dist/app/installCustom.d.ts +25 -0
- package/dist/app/installCustom.js +55 -0
- package/dist/app/installExperience.d.ts +22 -0
- package/dist/app/installExperience.js +389 -0
- package/dist/app/installExperienceDevice.d.ts +29 -0
- package/dist/app/installExperienceDevice.js +160 -0
- package/dist/app/installExperienceHome.d.ts +16 -0
- package/dist/app/installExperienceHome.js +304 -0
- package/dist/app/installExperienceRuntime.d.ts +37 -0
- package/dist/app/installExperienceRuntime.js +285 -0
- package/dist/app/installPolicy.d.ts +28 -0
- package/dist/app/installPolicy.js +90 -0
- package/dist/app/installQr.d.ts +10 -0
- package/dist/app/installQr.js +139 -0
- package/dist/app/installStrings.d.ts +52 -0
- package/dist/app/installStrings.js +75 -0
- package/dist/app/installTipPath.d.ts +12 -0
- package/dist/app/installTipPath.js +9 -0
- package/dist/app/installationFailure.d.ts +14 -0
- package/dist/app/installationFailure.js +38 -0
- package/dist/app/launch.d.ts +7 -0
- package/dist/app/launch.js +241 -0
- package/dist/app/launchReadiness.d.ts +9 -0
- package/dist/app/launchReadiness.js +72 -0
- package/dist/app/launchScreen.d.ts +16 -0
- package/dist/app/launchScreen.js +14 -0
- package/dist/app/launchScreenRuntime.d.ts +19 -0
- package/dist/app/launchScreenRuntime.js +313 -0
- package/dist/app/launchWatchdog.d.ts +1 -0
- package/dist/app/launchWatchdog.js +202 -0
- package/dist/app/manifests.d.ts +19 -0
- package/dist/app/manifests.js +20 -0
- package/dist/app/mdm.d.ts +3 -0
- package/dist/app/mdm.js +20 -0
- package/dist/app/mediaCheck.d.ts +9 -0
- package/dist/app/mediaCheck.js +122 -0
- package/dist/app/mediaTypes.d.ts +2 -0
- package/dist/app/mediaTypes.js +13 -0
- package/dist/app/platformPolicy.d.ts +3 -0
- package/dist/app/platformPolicy.js +10 -0
- package/dist/app/platformScripts.d.ts +6 -0
- package/dist/app/platformScripts.js +65 -0
- package/dist/app/releaseUpdates.d.ts +7 -0
- package/dist/app/releaseUpdates.js +53 -0
- package/dist/app/runtime.d.ts +9 -0
- package/dist/app/runtime.js +38 -0
- package/dist/app/startup.d.ts +30 -0
- package/dist/app/startup.js +24 -0
- package/dist/app/statusBand.d.ts +11 -0
- package/dist/app/statusBand.js +257 -0
- package/dist/app/viewport.d.ts +3 -0
- package/dist/app/viewport.js +42 -0
- package/dist/app/viewportValue.d.ts +5 -0
- package/dist/app/viewportValue.js +14 -0
- package/dist/app/vite.d.ts +27 -0
- package/dist/app/vite.js +440 -0
- package/dist/app/warmImage.d.ts +3 -0
- package/dist/app/warmImage.js +59 -0
- package/dist/content/content.d.ts +153 -0
- package/dist/content/content.js +315 -0
- package/dist/content/layout.d.ts +26 -0
- package/dist/content/layout.js +114 -0
- package/dist/content/scaledMetric.d.ts +3 -0
- package/dist/content/scaledMetric.js +68 -0
- package/dist/content/typography.d.ts +83 -0
- package/dist/content/typography.js +32 -0
- package/dist/controls/ActivityIndicatorSegments.d.ts +4 -0
- package/dist/controls/ActivityIndicatorSegments.js +5 -0
- package/dist/controls/ColorPicker.d.ts +20 -0
- package/dist/controls/ColorPicker.js +70 -0
- package/dist/controls/ControlRow.d.ts +5 -0
- package/dist/controls/ControlRow.js +10 -0
- package/dist/controls/DatePicker.d.ts +41 -0
- package/dist/controls/DatePicker.js +148 -0
- package/dist/controls/ProgressView.d.ts +17 -0
- package/dist/controls/ProgressView.js +24 -0
- package/dist/controls/civilDate.d.ts +49 -0
- package/dist/controls/civilDate.js +112 -0
- package/dist/data/database.d.ts +154 -0
- package/dist/data/database.js +710 -0
- package/dist/data/value-equal.d.ts +2 -0
- package/dist/data/value-equal.js +36 -0
- package/dist/data/write-store.d.ts +38 -0
- package/dist/data/write-store.js +192 -0
- package/dist/dev-menu/DevMenu.d.ts +1 -0
- package/dist/dev-menu/DevMenu.js +121 -0
- package/dist/dev-menu/actions.d.ts +12 -0
- package/dist/dev-menu/actions.js +99 -0
- package/dist/dev-menu/build.d.ts +5 -0
- package/dist/dev-menu/build.js +40 -0
- package/dist/dev-menu/gesture.d.ts +18 -0
- package/dist/dev-menu/gesture.js +109 -0
- package/dist/dev-menu/shake.d.ts +2 -0
- package/dist/dev-menu/shake.js +36 -0
- package/dist/dev-menu/types.d.ts +8 -0
- package/dist/dev-menu/types.js +1 -0
- package/dist/diagnostics.d.ts +3 -0
- package/dist/diagnostics.js +4 -0
- package/dist/docs/app-recipes.md +411 -0
- package/dist/docs/components/file-importer.md +54 -0
- package/dist/docs/components/paste-button.md +48 -0
- package/dist/docs/components/photos-picker.md +53 -0
- package/dist/docs/components/share-link.md +58 -0
- package/dist/docs/content.md +159 -0
- package/dist/docs/controls.md +151 -0
- package/dist/docs/data.md +332 -0
- package/dist/docs/limitations.md +40 -0
- package/dist/docs/messaging-scroll.md +234 -0
- package/dist/docs/networking.md +190 -0
- package/dist/docs/push.md +215 -0
- package/dist/docs/swiftui-reference.md +1895 -0
- package/dist/docs/symbols.md +293 -0
- package/dist/docs/tokens.md +60 -0
- package/dist/fidelity/devAssertions.d.ts +21 -0
- package/dist/fidelity/devAssertions.js +199 -0
- package/dist/focus/focusIntentMachine.d.ts +106 -0
- package/dist/focus/focusIntentMachine.js +359 -0
- package/dist/focus/navigationFocus.d.ts +42 -0
- package/dist/focus/navigationFocus.js +241 -0
- package/dist/focus/programmaticFocus.d.ts +15 -0
- package/dist/focus/programmaticFocus.js +152 -0
- package/dist/gestures/GestureView.d.ts +12 -0
- package/dist/gestures/GestureView.js +321 -0
- package/dist/gestures/arena.d.ts +138 -0
- package/dist/gestures/arena.js +417 -0
- package/dist/gestures/existingCompetitors.d.ts +79 -0
- package/dist/gestures/existingCompetitors.js +82 -0
- package/dist/gestures/gesture.d.ts +62 -0
- package/dist/gestures/gesture.js +107 -0
- package/dist/glass/ControlLens.d.ts +46 -0
- package/dist/glass/ControlLens.js +88 -0
- package/dist/glass/GlassBar.d.ts +9 -0
- package/dist/glass/GlassBar.js +22 -0
- package/dist/glass/GlassConfusionReview.d.ts +3 -0
- package/dist/glass/GlassConfusionReview.js +185 -0
- package/dist/glass/GlassEffect.d.ts +69 -0
- package/dist/glass/GlassEffect.js +550 -0
- package/dist/glass/GlassMaterialRoot.d.ts +7 -0
- package/dist/glass/GlassMaterialRoot.js +39 -0
- package/dist/glass/GlassPresentation.d.ts +28 -0
- package/dist/glass/GlassPresentation.js +1038 -0
- package/dist/glass/GlassProbeIcons.d.ts +8 -0
- package/dist/glass/GlassProbeIcons.js +12 -0
- package/dist/glass/GlassProbeOverlay.d.ts +52 -0
- package/dist/glass/GlassProbeOverlay.js +45 -0
- package/dist/glass/GlassTextField.d.ts +22 -0
- package/dist/glass/GlassTextField.js +12 -0
- package/dist/glass/MaterialEffectRoot.d.ts +9 -0
- package/dist/glass/MaterialEffectRoot.js +189 -0
- package/dist/glass/Menu.d.ts +3 -0
- package/dist/glass/Menu.js +35 -0
- package/dist/glass/MenuStack.d.ts +23 -0
- package/dist/glass/MenuStack.js +371 -0
- package/dist/glass/MenuSymbol.d.ts +7 -0
- package/dist/glass/MenuSymbol.js +16 -0
- package/dist/glass/MorphEllipsisArtwork.d.ts +2 -0
- package/dist/glass/MorphEllipsisArtwork.js +6 -0
- package/dist/glass/TabBar.d.ts +29 -0
- package/dist/glass/TabBar.js +169 -0
- package/dist/glass/capability.d.ts +25 -0
- package/dist/glass/capability.js +63 -0
- package/dist/glass/captureWindow.d.ts +60 -0
- package/dist/glass/captureWindow.js +119 -0
- package/dist/glass/confusionSession.d.ts +41 -0
- package/dist/glass/confusionSession.js +44 -0
- package/dist/glass/contactPhysics.d.ts +130 -0
- package/dist/glass/contactPhysics.js +214 -0
- package/dist/glass/context.d.ts +37 -0
- package/dist/glass/context.js +11 -0
- package/dist/glass/errorAlert.d.ts +6 -0
- package/dist/glass/errorAlert.js +57 -0
- package/dist/glass/errors.d.ts +22 -0
- package/dist/glass/errors.js +78 -0
- package/dist/glass/failurePolicy.d.ts +4 -0
- package/dist/glass/failurePolicy.js +20 -0
- package/dist/glass/fallback/material.d.ts +16 -0
- package/dist/glass/fallback/material.js +87 -0
- package/dist/glass/fallback/regions.d.ts +16 -0
- package/dist/glass/fallback/regions.js +249 -0
- package/dist/glass/fallback/runtime.d.ts +72 -0
- package/dist/glass/fallback/runtime.js +278 -0
- package/dist/glass/fallback/selection.d.ts +2 -0
- package/dist/glass/fallback/selection.js +9 -0
- package/dist/glass/fieldGeometry.d.ts +28 -0
- package/dist/glass/fieldGeometry.js +64 -0
- package/dist/glass/fieldMotion.d.ts +42 -0
- package/dist/glass/fieldMotion.js +47 -0
- package/dist/glass/glassContact.d.ts +76 -0
- package/dist/glass/glassContact.js +153 -0
- package/dist/glass/glassProbeSettings.d.ts +18 -0
- package/dist/glass/glassProbeSettings.js +133 -0
- package/dist/glass/lens/Scene.d.ts +108 -0
- package/dist/glass/lens/Scene.js +553 -0
- package/dist/glass/lens/backgrounds.json +103 -0
- package/dist/glass/lens/bitmapBackdrop.d.ts +14 -0
- package/dist/glass/lens/bitmapBackdrop.js +35 -0
- package/dist/glass/lens/controlLift.d.ts +94 -0
- package/dist/glass/lens/controlLift.js +78 -0
- package/dist/glass/lens/data.d.ts +19 -0
- package/dist/glass/lens/data.js +161 -0
- package/dist/glass/lens/drawableTop.d.ts +16 -0
- package/dist/glass/lens/drawableTop.js +15 -0
- package/dist/glass/lens/icons.d.ts +9 -0
- package/dist/glass/lens/icons.js +34 -0
- package/dist/glass/lens/interactiveContact.d.ts +33 -0
- package/dist/glass/lens/interactiveContact.js +158 -0
- package/dist/glass/lens/interactivePress.d.ts +95 -0
- package/dist/glass/lens/interactivePress.js +169 -0
- package/dist/glass/lens/ios27GlyphFit.json +126 -0
- package/dist/glass/lens/lensLightingSamples.json +1 -0
- package/dist/glass/lens/lensPress.d.ts +22 -0
- package/dist/glass/lens/lensPress.js +68 -0
- package/dist/glass/lens/lensPressSamples.json +1 -0
- package/dist/glass/lens/liquidMotion.d.ts +50 -0
- package/dist/glass/lens/liquidMotion.js +239 -0
- package/dist/glass/lens/materialGlassRecipes.json +776 -0
- package/dist/glass/lens/materialUniforms.d.ts +22 -0
- package/dist/glass/lens/materialUniforms.js +117 -0
- package/dist/glass/lens/menu-closing-close-fit.json +380 -0
- package/dist/glass/lens/menu-opening-native-fits.json +911 -0
- package/dist/glass/lens/menuContextFit.json +88 -0
- package/dist/glass/lens/menuContextOpacity.json +98 -0
- package/dist/glass/lens/menuContextPresentation.d.ts +15 -0
- package/dist/glass/lens/menuContextPresentation.js +65 -0
- package/dist/glass/lens/menuCornerFit.json +252 -0
- package/dist/glass/lens/menuCornerMotion.d.ts +9 -0
- package/dist/glass/lens/menuCornerMotion.js +5 -0
- package/dist/glass/lens/menuDropFit.json +64 -0
- package/dist/glass/lens/menuField.d.ts +178 -0
- package/dist/glass/lens/menuField.js +564 -0
- package/dist/glass/lens/menuGesturePresentation.d.ts +12 -0
- package/dist/glass/lens/menuGesturePresentation.js +42 -0
- package/dist/glass/lens/menuGlyphDropFit.json +38 -0
- package/dist/glass/lens/menuMorphFit.json +564 -0
- package/dist/glass/lens/menuMorphMotion.d.ts +70 -0
- package/dist/glass/lens/menuMorphMotion.js +219 -0
- package/dist/glass/lens/menuMorphPhoneFit.json +85 -0
- package/dist/glass/lens/menuMotion.d.ts +81 -0
- package/dist/glass/lens/menuMotion.js +323 -0
- package/dist/glass/lens/menuPlacement.d.ts +5 -0
- package/dist/glass/lens/menuPlacement.js +29 -0
- package/dist/glass/lens/menuSpring.d.ts +18 -0
- package/dist/glass/lens/menuSpring.js +29 -0
- package/dist/glass/lens/menuTouchLight.d.ts +13 -0
- package/dist/glass/lens/menuTouchLight.js +147 -0
- package/dist/glass/lens/mirrorConstants.d.ts +1 -0
- package/dist/glass/lens/mirrorConstants.js +2 -0
- package/dist/glass/lens/mirrorExtents.d.ts +52 -0
- package/dist/glass/lens/mirrorExtents.js +264 -0
- package/dist/glass/lens/mirrorInvalidation.d.ts +6 -0
- package/dist/glass/lens/mirrorInvalidation.js +10 -0
- package/dist/glass/lens/mirrorReuse.d.ts +20 -0
- package/dist/glass/lens/mirrorReuse.js +166 -0
- package/dist/glass/lens/motion.d.ts +62 -0
- package/dist/glass/lens/motion.js +93 -0
- package/dist/glass/lens/recordedMotion.d.ts +6 -0
- package/dist/glass/lens/recordedMotion.js +44 -0
- package/dist/glass/lens/referenceBackground.d.ts +9 -0
- package/dist/glass/lens/referenceBackground.js +151 -0
- package/dist/glass/lens/referenceProfiles.d.ts +21 -0
- package/dist/glass/lens/referenceProfiles.js +33 -0
- package/dist/glass/lens/referenceRegularTint.d.ts +12 -0
- package/dist/glass/lens/referenceRegularTint.js +41 -0
- package/dist/glass/lens/scopeSegments.d.ts +12 -0
- package/dist/glass/lens/scopeSegments.js +18 -0
- package/dist/glass/lens/scrollAnchoring.d.ts +15 -0
- package/dist/glass/lens/scrollAnchoring.js +17 -0
- package/dist/glass/lens/selectionParameters.json +94 -0
- package/dist/glass/lens/shapeParameters.json +198 -0
- package/dist/glass/lens/tab-motion-native-fits.json +778 -0
- package/dist/glass/lens/tabAccessoryMotion.d.ts +52 -0
- package/dist/glass/lens/tabAccessoryMotion.js +52 -0
- package/dist/glass/lens/tabChromaRimModel.d.ts +43 -0
- package/dist/glass/lens/tabChromaRimModel.js +93 -0
- package/dist/glass/lens/tabCollapseInkSamples.json +49 -0
- package/dist/glass/lens/tabCompactGesture.d.ts +15 -0
- package/dist/glass/lens/tabCompactGesture.js +50 -0
- package/dist/glass/lens/tabGeometryAttack.json +70 -0
- package/dist/glass/lens/tabGlyphColours.d.ts +17 -0
- package/dist/glass/lens/tabGlyphColours.js +37 -0
- package/dist/glass/lens/tabInterruptedDecaySamples.json +245 -0
- package/dist/glass/lens/tabInterruptedRestoreSamples.json +290 -0
- package/dist/glass/lens/tabMaterialModel.d.ts +10 -0
- package/dist/glass/lens/tabMaterialModel.js +108 -0
- package/dist/glass/lens/tabMinimizeInk.d.ts +15 -0
- package/dist/glass/lens/tabMinimizeInk.js +14 -0
- package/dist/glass/lens/tabMinimizeMotion.d.ts +36 -0
- package/dist/glass/lens/tabMinimizeMotion.js +107 -0
- package/dist/glass/lens/tabMinimizeSamples.json +411 -0
- package/dist/glass/lens/tabMotion.d.ts +91 -0
- package/dist/glass/lens/tabMotion.js +478 -0
- package/dist/glass/lens/tabMotionFit.d.ts +76 -0
- package/dist/glass/lens/tabMotionFit.js +61 -0
- package/dist/glass/lens/tabNativeSymbols.d.ts +1 -0
- package/dist/glass/lens/tabNativeSymbols.js +7 -0
- package/dist/glass/lens/tabPresentation.d.ts +21 -0
- package/dist/glass/lens/tabPresentation.js +20 -0
- package/dist/glass/lens/tabRelease.d.ts +5 -0
- package/dist/glass/lens/tabRelease.js +14 -0
- package/dist/glass/lens/tabRestoreMotion.d.ts +19 -0
- package/dist/glass/lens/tabRestoreMotion.js +65 -0
- package/dist/glass/lens/tabRestoreSamples.json +1272 -0
- package/dist/glass/lens/tabSearchMember.d.ts +38 -0
- package/dist/glass/lens/tabSearchMember.js +74 -0
- package/dist/glass/lens/tabSelectionMaterial.d.ts +20 -0
- package/dist/glass/lens/tabSelectionMaterial.js +23 -0
- package/dist/glass/lens/tabSelectionMeasurements.test-fixture.d.ts +9 -0
- package/dist/glass/lens/tabSelectionMeasurements.test-fixture.js +74 -0
- package/dist/glass/lens/tabSettingsSymbol.d.ts +1 -0
- package/dist/glass/lens/tabSettingsSymbol.js +2 -0
- package/dist/glass/lens/tabShapeResponse.d.ts +7 -0
- package/dist/glass/lens/tabShapeResponse.js +30 -0
- package/dist/glass/lens/theme.d.ts +18 -0
- package/dist/glass/lens/theme.js +40 -0
- package/dist/glass/lens/trace.d.ts +2 -0
- package/dist/glass/lens/trace.js +27 -0
- package/dist/glass/liquidContext.d.ts +31 -0
- package/dist/glass/liquidContext.js +2 -0
- package/dist/glass/menuPanelPlacement.d.ts +51 -0
- package/dist/glass/menuPanelPlacement.js +128 -0
- package/dist/glass/menuPresenter.d.ts +34 -0
- package/dist/glass/menuPresenter.js +983 -0
- package/dist/glass/menuSymbolMasks.d.ts +1 -0
- package/dist/glass/menuSymbolMasks.js +1 -0
- package/dist/glass/menuSymbolTokens.d.ts +22 -0
- package/dist/glass/menuSymbolTokens.js +12 -0
- package/dist/glass/menuTriggerGeometry.d.ts +99 -0
- package/dist/glass/menuTriggerGeometry.js +126 -0
- package/dist/glass/menuTriggerSnapshot.d.ts +77 -0
- package/dist/glass/menuTriggerSnapshot.js +69 -0
- package/dist/glass/menuTypes.d.ts +22 -0
- package/dist/glass/menuTypes.js +1 -0
- package/dist/glass/morphField.d.ts +18 -0
- package/dist/glass/morphField.js +139 -0
- package/dist/glass/presentationFrame.d.ts +43 -0
- package/dist/glass/presentationFrame.js +82 -0
- package/dist/glass/pressHighlight.d.ts +9 -0
- package/dist/glass/pressHighlight.js +158 -0
- package/dist/glass/regionRegistry.d.ts +93 -0
- package/dist/glass/regionRegistry.js +313 -0
- package/dist/glass/regions.d.ts +262 -0
- package/dist/glass/regions.js +147 -0
- package/dist/glass/regularMaterialContext.d.ts +45 -0
- package/dist/glass/regularMaterialContext.js +118 -0
- package/dist/glass/regularTriggerMaterial.d.ts +19 -0
- package/dist/glass/regularTriggerMaterial.js +111 -0
- package/dist/glass/regularTriggerRim.d.ts +163 -0
- package/dist/glass/regularTriggerRim.js +436 -0
- package/dist/glass/renderSpecs.d.ts +454 -0
- package/dist/glass/renderSpecs.js +231 -0
- package/dist/glass/rendererContract.d.ts +205 -0
- package/dist/glass/rendererContract.js +18 -0
- package/dist/glass/shapeTrack.d.ts +53 -0
- package/dist/glass/shapeTrack.js +74 -0
- package/dist/glass/shapeTrackRegistry.d.ts +40 -0
- package/dist/glass/shapeTrackRegistry.js +49 -0
- package/dist/glass/sourceDamage.d.ts +6 -0
- package/dist/glass/sourceDamage.js +8 -0
- package/dist/glass/submenuMotion.d.ts +205 -0
- package/dist/glass/submenuMotion.js +306 -0
- package/dist/glass/tabBarModel.d.ts +12 -0
- package/dist/glass/tabBarModel.js +32 -0
- package/dist/glass/testing.d.ts +14 -0
- package/dist/glass/testing.js +14 -0
- package/dist/glass/tokens.d.ts +79 -0
- package/dist/glass/tokens.js +86 -0
- package/dist/glass/toolbarMaterialContext.d.ts +28 -0
- package/dist/glass/toolbarMaterialContext.js +66 -0
- package/dist/glass/topLayer.d.ts +5 -0
- package/dist/glass/topLayer.js +10 -0
- package/dist/glass/unionOutline.d.ts +11 -0
- package/dist/glass/unionOutline.js +98 -0
- package/dist/glass/visibleDeadline.d.ts +21 -0
- package/dist/glass/visibleDeadline.js +61 -0
- package/dist/glass/webgpu/accessoryMorph.d.ts +99 -0
- package/dist/glass/webgpu/accessoryMorph.js +473 -0
- package/dist/glass/webgpu/accessoryTrack.d.ts +47 -0
- package/dist/glass/webgpu/accessoryTrack.js +59 -0
- package/dist/glass/webgpu/areaMips.d.ts +50 -0
- package/dist/glass/webgpu/areaMips.js +166 -0
- package/dist/glass/webgpu/backdrop.d.ts +86 -0
- package/dist/glass/webgpu/backdrop.js +243 -0
- package/dist/glass/webgpu/backdropLayers.d.ts +29 -0
- package/dist/glass/webgpu/backdropLayers.js +182 -0
- package/dist/glass/webgpu/backgroundLayers.d.ts +71 -0
- package/dist/glass/webgpu/backgroundLayers.js +385 -0
- package/dist/glass/webgpu/cadence.d.ts +18 -0
- package/dist/glass/webgpu/cadence.js +35 -0
- package/dist/glass/webgpu/canvasSubmission.d.ts +6 -0
- package/dist/glass/webgpu/canvasSubmission.js +22 -0
- package/dist/glass/webgpu/capture.d.ts +77 -0
- package/dist/glass/webgpu/capture.js +534 -0
- package/dist/glass/webgpu/captureBands.d.ts +39 -0
- package/dist/glass/webgpu/captureBands.js +53 -0
- package/dist/glass/webgpu/captureContext.d.ts +1 -0
- package/dist/glass/webgpu/captureContext.js +6 -0
- package/dist/glass/webgpu/captureDemand.d.ts +44 -0
- package/dist/glass/webgpu/captureDemand.js +81 -0
- package/dist/glass/webgpu/captureRelease.d.ts +18 -0
- package/dist/glass/webgpu/captureRelease.js +39 -0
- package/dist/glass/webgpu/client.d.ts +49 -0
- package/dist/glass/webgpu/client.js +336 -0
- package/dist/glass/webgpu/contextBackdrop.d.ts +6 -0
- package/dist/glass/webgpu/contextBackdrop.js +13 -0
- package/dist/glass/webgpu/contextComposite.d.ts +64 -0
- package/dist/glass/webgpu/contextComposite.js +66 -0
- package/dist/glass/webgpu/decodedImage.d.ts +1 -0
- package/dist/glass/webgpu/decodedImage.js +2 -0
- package/dist/glass/webgpu/deviceLimits.d.ts +5 -0
- package/dist/glass/webgpu/deviceLimits.js +8 -0
- package/dist/glass/webgpu/edgePass.d.ts +9 -0
- package/dist/glass/webgpu/edgePass.js +170 -0
- package/dist/glass/webgpu/entry.worker.d.ts +1 -0
- package/dist/glass/webgpu/entry.worker.js +28 -0
- package/dist/glass/webgpu/errorCode.d.ts +3 -0
- package/dist/glass/webgpu/errorCode.js +27 -0
- package/dist/glass/webgpu/errors.d.ts +8 -0
- package/dist/glass/webgpu/errors.js +55 -0
- package/dist/glass/webgpu/fieldInk.d.ts +9 -0
- package/dist/glass/webgpu/fieldInk.js +62 -0
- package/dist/glass/webgpu/foreground.d.ts +29 -0
- package/dist/glass/webgpu/foreground.js +313 -0
- package/dist/glass/webgpu/frameClock.d.ts +34 -0
- package/dist/glass/webgpu/frameClock.js +60 -0
- package/dist/glass/webgpu/frameGraph.d.ts +57 -0
- package/dist/glass/webgpu/frameGraph.js +287 -0
- package/dist/glass/webgpu/frameProbe.d.ts +58 -0
- package/dist/glass/webgpu/frameProbe.js +181 -0
- package/dist/glass/webgpu/interactionProfiles.d.ts +10 -0
- package/dist/glass/webgpu/interactionProfiles.js +25 -0
- package/dist/glass/webgpu/keptGlyphs.d.ts +68 -0
- package/dist/glass/webgpu/keptGlyphs.js +85 -0
- package/dist/glass/webgpu/keyboardBackdrop.d.ts +12 -0
- package/dist/glass/webgpu/keyboardBackdrop.js +51 -0
- package/dist/glass/webgpu/lagTrace.d.ts +31 -0
- package/dist/glass/webgpu/lagTrace.js +22 -0
- package/dist/glass/webgpu/layers.d.ts +100 -0
- package/dist/glass/webgpu/layers.js +301 -0
- package/dist/glass/webgpu/lensDebug.d.ts +4 -0
- package/dist/glass/webgpu/lensDebug.js +28 -0
- package/dist/glass/webgpu/lensDiffusion.d.ts +2 -0
- package/dist/glass/webgpu/lensDiffusion.js +20 -0
- package/dist/glass/webgpu/lensLightingFit.json +222 -0
- package/dist/glass/webgpu/menuLiftInput.d.ts +30 -0
- package/dist/glass/webgpu/menuLiftInput.js +39 -0
- package/dist/glass/webgpu/menuSurfaceGuard.d.ts +17 -0
- package/dist/glass/webgpu/menuSurfaceGuard.js +26 -0
- package/dist/glass/webgpu/minimize.d.ts +184 -0
- package/dist/glass/webgpu/minimize.js +470 -0
- package/dist/glass/webgpu/navigationAtlasCopy.d.ts +12 -0
- package/dist/glass/webgpu/navigationAtlasCopy.js +121 -0
- package/dist/glass/webgpu/navigationTracks.d.ts +3 -0
- package/dist/glass/webgpu/navigationTracks.js +84 -0
- package/dist/glass/webgpu/passes.d.ts +204 -0
- package/dist/glass/webgpu/passes.js +394 -0
- package/dist/glass/webgpu/pendingSurfaceInput.d.ts +29 -0
- package/dist/glass/webgpu/pendingSurfaceInput.js +51 -0
- package/dist/glass/webgpu/preparedSourcePixels.d.ts +21 -0
- package/dist/glass/webgpu/preparedSourcePixels.js +43 -0
- package/dist/glass/webgpu/presentationBackdrop.d.ts +3 -0
- package/dist/glass/webgpu/presentationBackdrop.js +33 -0
- package/dist/glass/webgpu/presentationDiffusion.d.ts +48 -0
- package/dist/glass/webgpu/presentationDiffusion.js +57 -0
- package/dist/glass/webgpu/presentationMaterial.d.ts +9 -0
- package/dist/glass/webgpu/presentationMaterial.js +156 -0
- package/dist/glass/webgpu/presenterViewport.d.ts +11 -0
- package/dist/glass/webgpu/presenterViewport.js +193 -0
- package/dist/glass/webgpu/production.d.ts +552 -0
- package/dist/glass/webgpu/production.js +1929 -0
- package/dist/glass/webgpu/productionInstalls.d.ts +53 -0
- package/dist/glass/webgpu/productionInstalls.js +225 -0
- package/dist/glass/webgpu/productionNavigation.d.ts +5 -0
- package/dist/glass/webgpu/productionNavigation.js +360 -0
- package/dist/glass/webgpu/productionPinnedTop.d.ts +80 -0
- package/dist/glass/webgpu/productionPinnedTop.js +77 -0
- package/dist/glass/webgpu/productionPinnedTopPrepare.d.ts +21 -0
- package/dist/glass/webgpu/productionPinnedTopPrepare.js +132 -0
- package/dist/glass/webgpu/productionPlanes.d.ts +135 -0
- package/dist/glass/webgpu/productionPlanes.js +412 -0
- package/dist/glass/webgpu/productionPrepare.d.ts +18 -0
- package/dist/glass/webgpu/productionPrepare.js +832 -0
- package/dist/glass/webgpu/productionTracks.d.ts +73 -0
- package/dist/glass/webgpu/productionTracks.js +22 -0
- package/dist/glass/webgpu/productionViewport.d.ts +20 -0
- package/dist/glass/webgpu/productionViewport.js +52 -0
- package/dist/glass/webgpu/profile.d.ts +37 -0
- package/dist/glass/webgpu/profile.js +101 -0
- package/dist/glass/webgpu/raster.d.ts +337 -0
- package/dist/glass/webgpu/raster.js +1360 -0
- package/dist/glass/webgpu/rasterMaterial.d.ts +19 -0
- package/dist/glass/webgpu/rasterMaterial.js +197 -0
- package/dist/glass/webgpu/rasterShaders.d.ts +7 -0
- package/dist/glass/webgpu/rasterShaders.js +105 -0
- package/dist/glass/webgpu/rasterUniforms.d.ts +304 -0
- package/dist/glass/webgpu/rasterUniforms.js +415 -0
- package/dist/glass/webgpu/regionBackdrop.d.ts +8 -0
- package/dist/glass/webgpu/regionBackdrop.js +12 -0
- package/dist/glass/webgpu/regionBridge.d.ts +145 -0
- package/dist/glass/webgpu/regionBridge.js +1691 -0
- package/dist/glass/webgpu/regionScene.d.ts +294 -0
- package/dist/glass/webgpu/regionScene.js +2144 -0
- package/dist/glass/webgpu/renderer.d.ts +8 -0
- package/dist/glass/webgpu/renderer.js +1478 -0
- package/dist/glass/webgpu/residentPlanes.d.ts +69 -0
- package/dist/glass/webgpu/residentPlanes.js +104 -0
- package/dist/glass/webgpu/restMaterial.d.ts +6 -0
- package/dist/glass/webgpu/restMaterial.js +65 -0
- package/dist/glass/webgpu/resumeOverlay.d.ts +44 -0
- package/dist/glass/webgpu/resumeOverlay.js +82 -0
- package/dist/glass/webgpu/sampleTrace.d.ts +11 -0
- package/dist/glass/webgpu/sampleTrace.js +50 -0
- package/dist/glass/webgpu/scrollEdgeBackdrop.d.ts +89 -0
- package/dist/glass/webgpu/scrollEdgeBackdrop.js +177 -0
- package/dist/glass/webgpu/scrollEdgePose.d.ts +4 -0
- package/dist/glass/webgpu/scrollEdgePose.js +49 -0
- package/dist/glass/webgpu/selectionThumb.d.ts +81 -0
- package/dist/glass/webgpu/selectionThumb.js +209 -0
- package/dist/glass/webgpu/shaders.d.ts +67 -0
- package/dist/glass/webgpu/shaders.js +595 -0
- package/dist/glass/webgpu/sharedLift.d.ts +7 -0
- package/dist/glass/webgpu/sharedLift.js +223 -0
- package/dist/glass/webgpu/sourcePixels.d.ts +42 -0
- package/dist/glass/webgpu/sourcePixels.js +140 -0
- package/dist/glass/webgpu/sourcePixels.worker.d.ts +1 -0
- package/dist/glass/webgpu/sourcePixels.worker.js +62 -0
- package/dist/glass/webgpu/tabGlyphInk.d.ts +14 -0
- package/dist/glass/webgpu/tabGlyphInk.js +72 -0
- package/dist/glass/webgpu/touchLight.d.ts +4 -0
- package/dist/glass/webgpu/touchLight.js +15 -0
- package/dist/glass/worker/client.d.ts +21 -0
- package/dist/glass/worker/client.js +152 -0
- package/dist/glass/worker/experiment.d.ts +13 -0
- package/dist/glass/worker/experiment.js +221 -0
- package/dist/glass/worker/fixture.d.ts +21 -0
- package/dist/glass/worker/fixture.js +152 -0
- package/dist/glass/worker/protocol.d.ts +439 -0
- package/dist/glass/worker/protocol.js +5 -0
- package/dist/graphicsProbe.d.ts +19 -0
- package/dist/graphicsProbe.js +111 -0
- package/dist/haptics/SensoryButton.d.ts +21 -0
- package/dist/haptics/SensoryButton.js +80 -0
- package/dist/image/ContentAdmission.d.ts +19 -0
- package/dist/image/ContentAdmission.js +70 -0
- package/dist/image/Image.d.ts +30 -0
- package/dist/image/Image.js +341 -0
- package/dist/image/asset.d.ts +9 -0
- package/dist/image/asset.js +1 -0
- package/dist/image/contentReadiness.d.ts +7 -0
- package/dist/image/contentReadiness.js +54 -0
- package/dist/image/imports.d.ts +4 -0
- package/dist/image/resource.d.ts +53 -0
- package/dist/image/resource.js +286 -0
- package/dist/image/vite.d.ts +3 -0
- package/dist/image/vite.js +63 -0
- package/dist/index.d.ts +87 -0
- package/dist/index.js +102 -0
- package/dist/install.d.ts +8 -0
- package/dist/install.js +8 -0
- package/dist/internal.d.ts +96 -0
- package/dist/internal.js +80 -0
- package/dist/keyboard/adapter.d.ts +82 -0
- package/dist/keyboard/adapter.js +727 -0
- package/dist/keyboard/avoidance.d.ts +24 -0
- package/dist/keyboard/avoidance.js +283 -0
- package/dist/keyboard/caretMirror.d.ts +13 -0
- package/dist/keyboard/caretMirror.js +122 -0
- package/dist/keyboard/expectedKeyboard.d.ts +10 -0
- package/dist/keyboard/expectedKeyboard.js +60 -0
- package/dist/keyboard/geometry.d.ts +10 -0
- package/dist/keyboard/geometry.js +21 -0
- package/dist/keyboard/modalTapFocus.d.ts +41 -0
- package/dist/keyboard/modalTapFocus.js +224 -0
- package/dist/keyboard/motion.d.ts +54 -0
- package/dist/keyboard/motion.js +80 -0
- package/dist/keyboard/translation.d.ts +12 -0
- package/dist/keyboard/translation.js +19 -0
- package/dist/layout/adaptiveTabsContext.d.ts +5 -0
- package/dist/layout/adaptiveTabsContext.js +2 -0
- package/dist/layout/deviceIdiom.d.ts +4 -0
- package/dist/layout/deviceIdiom.js +12 -0
- package/dist/layout/layoutClass.d.ts +44 -0
- package/dist/layout/layoutClass.js +102 -0
- package/dist/layout/navigationLayoutContext.d.ts +8 -0
- package/dist/layout/navigationLayoutContext.js +5 -0
- package/dist/list-form/ListForm.d.ts +158 -0
- package/dist/list-form/ListForm.js +427 -0
- package/dist/list-form/ListItem.d.ts +30 -0
- package/dist/list-form/ListItem.js +251 -0
- package/dist/list-form/RowLabel.d.ts +14 -0
- package/dist/list-form/RowLabel.js +11 -0
- package/dist/list-form/Slider.d.ts +18 -0
- package/dist/list-form/Slider.js +235 -0
- package/dist/list-form/StepperButton.d.ts +9 -0
- package/dist/list-form/StepperButton.js +60 -0
- package/dist/list-form/Toggle.d.ts +16 -0
- package/dist/list-form/Toggle.js +204 -0
- package/dist/list-form/editMotion.d.ts +15 -0
- package/dist/list-form/editMotion.js +25 -0
- package/dist/list-form/editing.d.ts +102 -0
- package/dist/list-form/editing.js +51 -0
- package/dist/list-form/listContext.d.ts +4 -0
- package/dist/list-form/listContext.js +5 -0
- package/dist/list-form/offsets.d.ts +26 -0
- package/dist/list-form/offsets.js +34 -0
- package/dist/list-form/reorder.d.ts +20 -0
- package/dist/list-form/reorder.js +193 -0
- package/dist/list-form/rowMotion.d.ts +11 -0
- package/dist/list-form/rowMotion.js +236 -0
- package/dist/list-form/rowMotionScope.d.ts +14 -0
- package/dist/list-form/rowMotionScope.js +61 -0
- package/dist/list-form/separatorInsets.d.ts +4 -0
- package/dist/list-form/separatorInsets.js +87 -0
- package/dist/list-form/sliderContact.d.ts +40 -0
- package/dist/list-form/sliderContact.js +98 -0
- package/dist/list-form/state.d.ts +5 -0
- package/dist/list-form/state.js +8 -0
- package/dist/list-form/toggleContact.d.ts +55 -0
- package/dist/list-form/toggleContact.js +164 -0
- package/dist/media/controller.d.ts +7 -0
- package/dist/media/controller.js +612 -0
- package/dist/media/react.d.ts +9 -0
- package/dist/media/react.js +38 -0
- package/dist/media/systemMedia.d.ts +6 -0
- package/dist/media/systemMedia.js +200 -0
- package/dist/media/types.d.ts +83 -0
- package/dist/media/types.js +1 -0
- package/dist/menu/menuContact.d.ts +20 -0
- package/dist/menu/menuContact.js +286 -0
- package/dist/menu/menuGesture.d.ts +84 -0
- package/dist/menu/menuGesture.js +502 -0
- package/dist/menu/menuInteraction.d.ts +17 -0
- package/dist/menu/menuInteraction.js +34 -0
- package/dist/menu/menuOutside.d.ts +9 -0
- package/dist/menu/menuOutside.js +58 -0
- package/dist/menu/menuPanelContact.d.ts +11 -0
- package/dist/menu/menuPanelContact.js +77 -0
- package/dist/menu/menuTriggerHold.d.ts +3 -0
- package/dist/menu/menuTriggerHold.js +52 -0
- package/dist/menu/sampledMotion.d.ts +37 -0
- package/dist/menu/sampledMotion.js +86 -0
- package/dist/modal/lifecycle.d.ts +10 -0
- package/dist/modal/lifecycle.js +189 -0
- package/dist/motion/TransitionView.d.ts +12 -0
- package/dist/motion/TransitionView.js +118 -0
- package/dist/motion/animate.d.ts +20 -0
- package/dist/motion/animate.js +79 -0
- package/dist/motion/animationValue.d.ts +25 -0
- package/dist/motion/animationValue.js +42 -0
- package/dist/motion/composerMotion.d.ts +3 -0
- package/dist/motion/composerMotion.js +15 -0
- package/dist/motion/layoutTransaction.d.ts +7 -0
- package/dist/motion/layoutTransaction.js +28 -0
- package/dist/motion/matchedGeometry.d.ts +55 -0
- package/dist/motion/matchedGeometry.js +412 -0
- package/dist/motion/springPath.d.ts +27 -0
- package/dist/motion/springPath.js +46 -0
- package/dist/motion/springTrack.d.ts +33 -0
- package/dist/motion/springTrack.js +69 -0
- package/dist/motion/transition.d.ts +48 -0
- package/dist/motion/transition.js +56 -0
- package/dist/motion/transitionImages.d.ts +7 -0
- package/dist/motion/transitionImages.js +49 -0
- package/dist/motionProbe.d.ts +227 -0
- package/dist/motionProbe.js +697 -0
- package/dist/motionProbeControls.d.ts +2 -0
- package/dist/motionProbeControls.js +118 -0
- package/dist/motionProbeDelivery.d.ts +15 -0
- package/dist/motionProbeDelivery.js +84 -0
- package/dist/navigation/DetailList.d.ts +9 -0
- package/dist/navigation/DetailList.js +7 -0
- package/dist/navigation/NavigationChrome.d.ts +18 -0
- package/dist/navigation/NavigationChrome.js +195 -0
- package/dist/navigation/NavigationSearchRow.d.ts +9 -0
- package/dist/navigation/NavigationSearchRow.js +101 -0
- package/dist/navigation/NavigationTitleSlots.d.ts +18 -0
- package/dist/navigation/NavigationTitleSlots.js +64 -0
- package/dist/navigation/NavigatorHost.d.ts +17 -0
- package/dist/navigation/NavigatorHost.js +534 -0
- package/dist/navigation/ScreenContainer.d.ts +31 -0
- package/dist/navigation/ScreenContainer.js +219 -0
- package/dist/navigation/ScrubSourceFrames.d.ts +18 -0
- package/dist/navigation/ScrubSourceFrames.js +67 -0
- package/dist/navigation/Sidebar.d.ts +16 -0
- package/dist/navigation/Sidebar.js +20 -0
- package/dist/navigation/SidebarSymbol.d.ts +4 -0
- package/dist/navigation/SidebarSymbol.js +6 -0
- package/dist/navigation/ToolbarGlass.d.ts +2 -0
- package/dist/navigation/ToolbarGlass.js +429 -0
- package/dist/navigation/TransitionEdge.d.ts +4 -0
- package/dist/navigation/TransitionEdge.js +33 -0
- package/dist/navigation/bottomToolbarGeometry.d.ts +6 -0
- package/dist/navigation/bottomToolbarGeometry.js +14 -0
- package/dist/navigation/chromeCurves.d.ts +48 -0
- package/dist/navigation/chromeCurves.js +255 -0
- package/dist/navigation/glassTransition.d.ts +32 -0
- package/dist/navigation/glassTransition.js +55 -0
- package/dist/navigation/horizontalDrag.d.ts +6 -0
- package/dist/navigation/horizontalDrag.js +15 -0
- package/dist/navigation/interactivePop.d.ts +45 -0
- package/dist/navigation/interactivePop.js +86 -0
- package/dist/navigation/interactivePopTypes.d.ts +85 -0
- package/dist/navigation/interactivePopTypes.js +36 -0
- package/dist/navigation/keyboard.d.ts +9 -0
- package/dist/navigation/keyboard.js +55 -0
- package/dist/navigation/motion.d.ts +19 -0
- package/dist/navigation/motion.js +645 -0
- package/dist/navigation/motionTokens.d.ts +43 -0
- package/dist/navigation/motionTokens.js +75 -0
- package/dist/navigation/nativeScrubExperiment.d.ts +5 -0
- package/dist/navigation/nativeScrubExperiment.js +153 -0
- package/dist/navigation/nativeScrubSource.d.ts +15 -0
- package/dist/navigation/nativeScrubSource.js +88 -0
- package/dist/navigation/navigationChromeModel.d.ts +8 -0
- package/dist/navigation/navigationChromeModel.js +30 -0
- package/dist/navigation/navigationContext.d.ts +22 -0
- package/dist/navigation/navigationContext.js +65 -0
- package/dist/navigation/navigationEdge.d.ts +4 -0
- package/dist/navigation/navigationEdge.js +101 -0
- package/dist/navigation/pointerPop.d.ts +32 -0
- package/dist/navigation/pointerPop.js +206 -0
- package/dist/navigation/probeLayers.d.ts +7 -0
- package/dist/navigation/probeLayers.js +8 -0
- package/dist/navigation/registry.d.ts +14 -0
- package/dist/navigation/registry.js +31 -0
- package/dist/navigation/releaseDecision.d.ts +21 -0
- package/dist/navigation/releaseDecision.js +94 -0
- package/dist/navigation/releaseTrajectory.d.ts +20 -0
- package/dist/navigation/releaseTrajectory.js +95 -0
- package/dist/navigation/releaseVelocity.d.ts +9 -0
- package/dist/navigation/releaseVelocity.js +38 -0
- package/dist/navigation/routeCodec.d.ts +33 -0
- package/dist/navigation/routeCodec.js +123 -0
- package/dist/navigation/scrollEdge.d.ts +18 -0
- package/dist/navigation/scrollEdge.js +66 -0
- package/dist/navigation/scrubFrameLoop.d.ts +44 -0
- package/dist/navigation/scrubFrameLoop.js +129 -0
- package/dist/navigation/sidebarSelection.d.ts +5 -0
- package/dist/navigation/sidebarSelection.js +8 -0
- package/dist/navigation/splitContext.d.ts +17 -0
- package/dist/navigation/splitContext.js +9 -0
- package/dist/navigation/splitState.d.ts +46 -0
- package/dist/navigation/splitState.js +130 -0
- package/dist/navigation/stack.d.ts +25 -0
- package/dist/navigation/stack.js +136 -0
- package/dist/navigation/store.d.ts +80 -0
- package/dist/navigation/store.js +464 -0
- package/dist/navigation/toolbarGlassMotion.d.ts +40 -0
- package/dist/navigation/toolbarGlassMotion.js +202 -0
- package/dist/navigation/toolbarMinimization.d.ts +9 -0
- package/dist/navigation/toolbarMinimization.js +76 -0
- package/dist/navigation/toolbarMotionOwner.d.ts +6 -0
- package/dist/navigation/toolbarMotionOwner.js +30 -0
- package/dist/navigation/touchArbitration.d.ts +34 -0
- package/dist/navigation/touchArbitration.js +550 -0
- package/dist/navigation/tracking.d.ts +7 -0
- package/dist/navigation/tracking.js +19 -0
- package/dist/navigation/transitionBindings.d.ts +31 -0
- package/dist/navigation/transitionBindings.js +106 -0
- package/dist/navigation/transitionChrome.d.ts +31 -0
- package/dist/navigation/transitionChrome.js +380 -0
- package/dist/navigation/transitionPose.d.ts +52 -0
- package/dist/navigation/transitionPose.js +295 -0
- package/dist/navigation/types.d.ts +133 -0
- package/dist/navigation/types.js +1 -0
- package/dist/navigation/zoomDrag.d.ts +3 -0
- package/dist/navigation/zoomDrag.js +125 -0
- package/dist/navigation/zoomGeometry.d.ts +48 -0
- package/dist/navigation/zoomGeometry.js +94 -0
- package/dist/navigation/zoomGlass.d.ts +27 -0
- package/dist/navigation/zoomGlass.js +64 -0
- package/dist/navigation/zoomMotion.d.ts +73 -0
- package/dist/navigation/zoomMotion.js +104 -0
- package/dist/navigation/zoomTransition.d.ts +82 -0
- package/dist/navigation/zoomTransition.js +975 -0
- package/dist/presentation/Presentation.d.ts +61 -0
- package/dist/presentation/Presentation.js +92 -0
- package/dist/presentation/PresentationSurface.d.ts +29 -0
- package/dist/presentation/PresentationSurface.js +586 -0
- package/dist/presentation/PresentedSheet.d.ts +2 -0
- package/dist/presentation/PresentedSheet.js +571 -0
- package/dist/presentation/activity.d.ts +3 -0
- package/dist/presentation/activity.js +24 -0
- package/dist/presentation/coldLaunch.d.ts +2 -0
- package/dist/presentation/coldLaunch.js +19 -0
- package/dist/presentation/dismiss.d.ts +26 -0
- package/dist/presentation/dismiss.js +30 -0
- package/dist/presentation/glassMotion.d.ts +39 -0
- package/dist/presentation/glassMotion.js +259 -0
- package/dist/presentation/glassReady.d.ts +11 -0
- package/dist/presentation/glassReady.js +246 -0
- package/dist/presentation/model.d.ts +108 -0
- package/dist/presentation/model.js +183 -0
- package/dist/presentation/motion.d.ts +56 -0
- package/dist/presentation/motion.js +263 -0
- package/dist/presentation/presentationMotion.d.ts +10 -0
- package/dist/presentation/presentationMotion.js +74 -0
- package/dist/presentation/presentationSource.d.ts +2 -0
- package/dist/presentation/presentationSource.js +28 -0
- package/dist/presentation/sheetChromeContext.d.ts +2 -0
- package/dist/presentation/sheetChromeContext.js +3 -0
- package/dist/presentation/sheetMaterialTransition.d.ts +14 -0
- package/dist/presentation/sheetMaterialTransition.js +33 -0
- package/dist/presentation/sheetReleaseMotion.d.ts +18 -0
- package/dist/presentation/sheetReleaseMotion.js +123 -0
- package/dist/presentation/useAlertKeyboardMotion.d.ts +8 -0
- package/dist/presentation/useAlertKeyboardMotion.js +104 -0
- package/dist/press/Pressable.d.ts +19 -0
- package/dist/press/Pressable.js +16 -0
- package/dist/press/activation.d.ts +20 -0
- package/dist/press/activation.js +28 -0
- package/dist/press/contactReceipt.d.ts +23 -0
- package/dist/press/contactReceipt.js +177 -0
- package/dist/press/gestureArbitration.d.ts +13 -0
- package/dist/press/gestureArbitration.js +38 -0
- package/dist/press/stateMachine.d.ts +29 -0
- package/dist/press/stateMachine.js +39 -0
- package/dist/press/tokens.d.ts +18 -0
- package/dist/press/tokens.js +19 -0
- package/dist/press/usePressInteraction.d.ts +30 -0
- package/dist/press/usePressInteraction.js +247 -0
- package/dist/public/Label.d.ts +16 -0
- package/dist/public/Label.js +40 -0
- package/dist/public/NativeFilePicker.d.ts +19 -0
- package/dist/public/NativeFilePicker.js +75 -0
- package/dist/public/Screen.d.ts +42 -0
- package/dist/public/Screen.js +87 -0
- package/dist/public/actions.d.ts +16 -0
- package/dist/public/actions.js +15 -0
- package/dist/public/buttonBorderShape.d.ts +7 -0
- package/dist/public/buttonBorderShape.js +9 -0
- package/dist/public/chrome.d.ts +3 -0
- package/dist/public/chrome.js +5 -0
- package/dist/public/colors.d.ts +29 -0
- package/dist/public/colors.js +28 -0
- package/dist/public/context.d.ts +19 -0
- package/dist/public/context.js +8 -0
- package/dist/public/controlStyle.d.ts +93 -0
- package/dist/public/controlStyle.js +52 -0
- package/dist/public/controls.d.ts +360 -0
- package/dist/public/controls.js +301 -0
- package/dist/public/definition.d.ts +65 -0
- package/dist/public/definition.js +58 -0
- package/dist/public/deviceActions.d.ts +23 -0
- package/dist/public/deviceActions.js +87 -0
- package/dist/public/environment.d.ts +77 -0
- package/dist/public/environment.js +171 -0
- package/dist/public/fieldContext.d.ts +2 -0
- package/dist/public/fieldContext.js +3 -0
- package/dist/public/filePickers.d.ts +25 -0
- package/dist/public/filePickers.js +11 -0
- package/dist/public/glass.d.ts +31 -0
- package/dist/public/glass.js +29 -0
- package/dist/public/glassValue.d.ts +19 -0
- package/dist/public/glassValue.js +32 -0
- package/dist/public/keyboard.d.ts +4 -0
- package/dist/public/keyboard.js +6 -0
- package/dist/public/navigationTransition.d.ts +48 -0
- package/dist/public/navigationTransition.js +49 -0
- package/dist/public/pickerNavigation.d.ts +7 -0
- package/dist/public/pickerNavigation.js +64 -0
- package/dist/public/presentation.d.ts +40 -0
- package/dist/public/presentation.js +21 -0
- package/dist/public/presentationContext.d.ts +2 -0
- package/dist/public/presentationContext.js +3 -0
- package/dist/public/routeRegistry.d.ts +3 -0
- package/dist/public/routeRegistry.js +10 -0
- package/dist/public/routes.d.ts +74 -0
- package/dist/public/routes.js +105 -0
- package/dist/public/runtime.d.ts +134 -0
- package/dist/public/runtime.js +292 -0
- package/dist/public/screenChrome.d.ts +91 -0
- package/dist/public/screenChrome.js +187 -0
- package/dist/public/scroll.d.ts +38 -0
- package/dist/public/scroll.js +7 -0
- package/dist/public/storage.d.ts +9 -0
- package/dist/public/storage.js +9 -0
- package/dist/public/structure.d.ts +65 -0
- package/dist/public/structure.js +40 -0
- package/dist/public/toolbar.d.ts +37 -0
- package/dist/public/toolbar.js +76 -0
- package/dist/push/PushPermissionExplainer.d.ts +14 -0
- package/dist/push/PushPermissionExplainer.js +30 -0
- package/dist/push/notifications.d.ts +54 -0
- package/dist/push/notifications.js +276 -0
- package/dist/push/routes.d.ts +20 -0
- package/dist/push/routes.js +63 -0
- package/dist/push/schema.d.ts +42 -0
- package/dist/push/schema.js +41 -0
- package/dist/push/urlProjection.d.ts +24 -0
- package/dist/push/urlProjection.js +207 -0
- package/dist/reachability/controller.d.ts +21 -0
- package/dist/reachability/controller.js +202 -0
- package/dist/reachability/model.d.ts +94 -0
- package/dist/reachability/model.js +131 -0
- package/dist/reachability/react.d.ts +29 -0
- package/dist/reachability/react.js +69 -0
- package/dist/restoration/navigation.d.ts +9 -0
- package/dist/restoration/navigation.js +55 -0
- package/dist/restoration/react.d.ts +6 -0
- package/dist/restoration/react.js +21 -0
- package/dist/restoration/routes.d.ts +22 -0
- package/dist/restoration/routes.js +166 -0
- package/dist/restoration/scene.d.ts +44 -0
- package/dist/restoration/scene.js +284 -0
- package/dist/root/SatinRoot.d.ts +25 -0
- package/dist/root/SatinRoot.js +512 -0
- package/dist/root/mountSatin.d.ts +12 -0
- package/dist/root/mountSatin.js +60 -0
- package/dist/root/runtimeContext.d.ts +26 -0
- package/dist/root/runtimeContext.js +30 -0
- package/dist/safe-area/Overlay.d.ts +9 -0
- package/dist/safe-area/Overlay.js +26 -0
- package/dist/safe-area/SafeAreaInset.d.ts +25 -0
- package/dist/safe-area/SafeAreaInset.js +138 -0
- package/dist/safe-area/bottomInsetGeometry.d.ts +12 -0
- package/dist/safe-area/bottomInsetGeometry.js +73 -0
- package/dist/safe-area/context.d.ts +15 -0
- package/dist/safe-area/context.js +8 -0
- package/dist/safe-area/displayCorners.d.ts +21 -0
- package/dist/safe-area/displayCorners.js +70 -0
- package/dist/safe-area/keyboardCarrier.d.ts +26 -0
- package/dist/safe-area/keyboardCarrier.js +394 -0
- package/dist/safe-area/keyboardCarrierGeometry.d.ts +37 -0
- package/dist/safe-area/keyboardCarrierGeometry.js +49 -0
- package/dist/safe-area/modifiers.d.ts +52 -0
- package/dist/safe-area/modifiers.js +86 -0
- package/dist/safe-area/useSafeAreaMetrics.d.ts +83 -0
- package/dist/safe-area/useSafeAreaMetrics.js +367 -0
- package/dist/safe-area/windowChrome.d.ts +7 -0
- package/dist/safe-area/windowChrome.js +14 -0
- package/dist/scroll/RefreshControl.d.ts +8 -0
- package/dist/scroll/RefreshControl.js +135 -0
- package/dist/scroll/ScrollSurface.d.ts +62 -0
- package/dist/scroll/ScrollSurface.js +278 -0
- package/dist/scroll/ScrollTarget.d.ts +6 -0
- package/dist/scroll/ScrollTarget.js +11 -0
- package/dist/scroll/edgePolicy.d.ts +21 -0
- package/dist/scroll/edgePolicy.js +17 -0
- package/dist/scroll/insertionMotion.d.ts +15 -0
- package/dist/scroll/insertionMotion.js +128 -0
- package/dist/scroll/nativeScroll.d.ts +14 -0
- package/dist/scroll/nativeScroll.js +71 -0
- package/dist/scroll/position.d.ts +31 -0
- package/dist/scroll/position.js +273 -0
- package/dist/scroll/pressOwnership.d.ts +4 -0
- package/dist/scroll/pressOwnership.js +65 -0
- package/dist/scroll/refreshMotion.d.ts +9 -0
- package/dist/scroll/refreshMotion.js +15 -0
- package/dist/scroll/refreshable.d.ts +6 -0
- package/dist/scroll/refreshable.js +50 -0
- package/dist/scroll/registry.d.ts +38 -0
- package/dist/scroll/registry.js +261 -0
- package/dist/scroll/screenGeometry.d.ts +8 -0
- package/dist/scroll/screenGeometry.js +50 -0
- package/dist/scroll/scrollIndicator.d.ts +7 -0
- package/dist/scroll/scrollIndicator.js +114 -0
- package/dist/scroll/scrollJump.d.ts +7 -0
- package/dist/scroll/scrollJump.js +16 -0
- package/dist/scroll/types.d.ts +12 -0
- package/dist/scroll/types.js +1 -0
- package/dist/search/SearchDrawer.d.ts +16 -0
- package/dist/search/SearchDrawer.js +421 -0
- package/dist/search/SearchScopesBar.d.ts +6 -0
- package/dist/search/SearchScopesBar.js +12 -0
- package/dist/search/SearchToolbarField.d.ts +8 -0
- package/dist/search/SearchToolbarField.js +115 -0
- package/dist/search/searchBackdrop.d.ts +12 -0
- package/dist/search/searchBackdrop.js +45 -0
- package/dist/search/searchChrome.d.ts +13 -0
- package/dist/search/searchChrome.js +31 -0
- package/dist/search/searchMotion.d.ts +30 -0
- package/dist/search/searchMotion.js +46 -0
- package/dist/search/searchPlacement.d.ts +11 -0
- package/dist/search/searchPlacement.js +15 -0
- package/dist/search/searchable.d.ts +46 -0
- package/dist/search/searchable.js +5 -0
- package/dist/search/useSearchPresentation.d.ts +15 -0
- package/dist/search/useSearchPresentation.js +61 -0
- package/dist/server.d.ts +7 -0
- package/dist/server.js +144 -0
- package/dist/settings/DisclosureIndicator.d.ts +4 -0
- package/dist/settings/DisclosureIndicator.js +6 -0
- package/dist/settings/tokens.d.ts +129 -0
- package/dist/settings/tokens.js +143 -0
- package/dist/shapes/corners.d.ts +14 -0
- package/dist/shapes/corners.js +80 -0
- package/dist/styles.css +9078 -0
- package/dist/styles.css.d.ts +3 -0
- package/dist/sw/activationState.d.ts +20 -0
- package/dist/sw/activationState.js +39 -0
- package/dist/sw/generator.d.ts +14 -0
- package/dist/sw/generator.js +26 -0
- package/dist/sw/manifest.d.ts +32 -0
- package/dist/sw/manifest.js +137 -0
- package/dist/sw/protocol.d.ts +7 -0
- package/dist/sw/protocol.js +7 -0
- package/dist/sw/pushRuntime.d.ts +2 -0
- package/dist/sw/pushRuntime.js +161 -0
- package/dist/sw/registerAppShell.d.ts +25 -0
- package/dist/sw/registerAppShell.js +259 -0
- package/dist/sw/renderServiceWorker.d.ts +10 -0
- package/dist/sw/renderServiceWorker.js +370 -0
- package/dist/sw/requestRouting.d.ts +13 -0
- package/dist/sw/requestRouting.js +26 -0
- package/dist/sw/updateCheck.d.ts +2 -0
- package/dist/sw/updateCheck.js +25 -0
- package/dist/sw/vite.d.ts +20 -0
- package/dist/sw/vite.js +71 -0
- package/dist/symbols/Symbol.d.ts +33 -0
- package/dist/symbols/Symbol.js +59 -0
- package/dist/symbols/catalogue.d.ts +4 -0
- package/dist/symbols/catalogue.js +4139 -0
- package/dist/symbols/exclusions.d.ts +2 -0
- package/dist/symbols/exclusions.js +4 -0
- package/dist/symbols/inheritedWeight.d.ts +3 -0
- package/dist/symbols/inheritedWeight.js +104 -0
- package/dist/symbols/metrics.d.ts +38 -0
- package/dist/symbols/metrics.js +53 -0
- package/dist/symbols/svg.d.ts +3 -0
- package/dist/symbols/svg.js +16 -0
- package/dist/symbols/types.d.ts +30 -0
- package/dist/symbols/types.js +1 -0
- package/dist/tabs/TabSection.d.ts +12 -0
- package/dist/tabs/TabSection.js +4 -0
- package/dist/tabs/TabSidebarSurface.d.ts +7 -0
- package/dist/tabs/TabSidebarSurface.js +29 -0
- package/dist/tabs/TabView.d.ts +28 -0
- package/dist/tabs/TabView.js +258 -0
- package/dist/tabs/accessoryContact.d.ts +2 -0
- package/dist/tabs/accessoryContact.js +42 -0
- package/dist/tabs/compactBar.d.ts +4 -0
- package/dist/tabs/compactBar.js +28 -0
- package/dist/tabs/context.d.ts +8 -0
- package/dist/tabs/context.js +6 -0
- package/dist/tabs/keyboard.d.ts +3 -0
- package/dist/tabs/keyboard.js +23 -0
- package/dist/tabs/model.d.ts +6 -0
- package/dist/tabs/model.js +16 -0
- package/dist/tabs/presentation.d.ts +7 -0
- package/dist/tabs/presentation.js +14 -0
- package/dist/tabs/sourceRevision.d.ts +3 -0
- package/dist/tabs/sourceRevision.js +36 -0
- package/dist/tabs/tabSidebarGlyph.d.ts +2 -0
- package/dist/tabs/tabSidebarGlyph.js +11 -0
- package/dist/tasks/useTask.d.ts +16 -0
- package/dist/tasks/useTask.js +67 -0
- package/dist/testing.d.ts +9 -0
- package/dist/testing.js +11 -0
- package/dist/text-input/TextEditor.d.ts +25 -0
- package/dist/text-input/TextEditor.js +74 -0
- package/dist/text-input/TextField.d.ts +32 -0
- package/dist/text-input/TextField.js +29 -0
- package/dist/text-input/editorGeometry.d.ts +2 -0
- package/dist/text-input/editorGeometry.js +6 -0
- package/dist/text-input/editorTextLayout.d.ts +2 -0
- package/dist/text-input/editorTextLayout.js +31 -0
- package/dist/text-input/focusChain.d.ts +27 -0
- package/dist/text-input/focusChain.js +62 -0
- package/dist/text-input/kinds.d.ts +8 -0
- package/dist/text-input/kinds.js +34 -0
- package/dist/text-input/measureEditor.d.ts +2 -0
- package/dist/text-input/measureEditor.js +50 -0
- package/dist/text-input/submit.d.ts +9 -0
- package/dist/text-input/submit.js +7 -0
- package/dist/unstable.d.ts +16 -0
- package/dist/unstable.js +16 -0
- package/dist/vite.d.ts +3 -0
- package/dist/vite.js +3 -0
- package/dist/web/WebView.d.ts +42 -0
- package/dist/web/WebView.js +115 -0
- package/dist/web/authentication.d.ts +75 -0
- package/dist/web/authentication.js +488 -0
- package/dist/web/openURL.d.ts +37 -0
- package/dist/web/openURL.js +89 -0
- package/dist/web/urlPolicy.d.ts +3 -0
- package/dist/web/urlPolicy.js +19 -0
- package/dist/web/useWebAuthentication.d.ts +3 -0
- package/dist/web/useWebAuthentication.js +6 -0
- package/dist/zoom/Zoomable.d.ts +10 -0
- package/dist/zoom/Zoomable.js +116 -0
- package/dist/zoom/geometry.d.ts +11 -0
- package/dist/zoom/geometry.js +16 -0
- package/package.json +115 -3
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { type DisplayCornerMetrics } from '../safe-area/displayCorners.js';
|
|
2
|
+
/** Native iOS 27 iPad sheet width (form sheet and detent sheet alike), 580 pt in both orientations. */
|
|
3
|
+
export declare const SHEET_MAX_WIDTH = 580;
|
|
4
|
+
export type SheetPlacement = Readonly<{
|
|
5
|
+
kind: 'edge';
|
|
6
|
+
}> | Readonly<{
|
|
7
|
+
kind: 'fill';
|
|
8
|
+
}> | Readonly<{
|
|
9
|
+
kind: 'form';
|
|
10
|
+
bottom: number;
|
|
11
|
+
}> | Readonly<{
|
|
12
|
+
kind: 'floating';
|
|
13
|
+
bottom: number;
|
|
14
|
+
}>;
|
|
15
|
+
/** Native's preferred form height is independent of orientation. Constrain it only when the
|
|
16
|
+
* presenting viewport cannot hold it, rather than subtracting a device-specific margin. */
|
|
17
|
+
export declare function formSheetHeight(viewportHeight: number): number;
|
|
18
|
+
export declare function sheetPlacement(viewport: {
|
|
19
|
+
width: number;
|
|
20
|
+
height: number;
|
|
21
|
+
}, bottomInset: number, onlyLarge: boolean, viewportTop?: number): SheetPlacement;
|
|
22
|
+
export declare function sheetExpansion(height: number, medium: number, large: number): number;
|
|
23
|
+
/** The same frame calculation serves React's resting layout and transient motion. */
|
|
24
|
+
export declare function sheetFrame(viewportWidth: number, expansion: number, keyboardHeight: number, placement?: SheetPlacement): {
|
|
25
|
+
width: number;
|
|
26
|
+
left: number;
|
|
27
|
+
bottom: number;
|
|
28
|
+
contentScale: number;
|
|
29
|
+
};
|
|
30
|
+
/** Only an equally inset screen-edge card has the display's corner centre. A centred form,
|
|
31
|
+
* keyboard-raised card or narrow multitasking window keeps its own measured sheet corners. */
|
|
32
|
+
export declare function sheetCornerShape(frame: ReturnType<typeof sheetFrame>, placement: SheetPlacement | undefined, viewport: {
|
|
33
|
+
width: number;
|
|
34
|
+
height: number;
|
|
35
|
+
}, screen: {
|
|
36
|
+
width: number;
|
|
37
|
+
height: number;
|
|
38
|
+
}, display: DisplayCornerMetrics): {
|
|
39
|
+
kind: 'roundedRectangle';
|
|
40
|
+
cornerRadius: number;
|
|
41
|
+
bottomCornerRadius?: number | undefined;
|
|
42
|
+
cornerStyle: 'continuous';
|
|
43
|
+
};
|
|
44
|
+
/** `PresentationDetent`: a sheet's supported resting height. */
|
|
45
|
+
export type PresentationDetent = 'medium' | 'large' | Readonly<{
|
|
46
|
+
height: number;
|
|
47
|
+
}> | Readonly<{
|
|
48
|
+
fraction: number;
|
|
49
|
+
}>;
|
|
50
|
+
export declare function detentHeight(detent: PresentationDetent, available: number): number;
|
|
51
|
+
export declare function resolveDetents(detents: readonly PresentationDetent[], available: number): number[];
|
|
52
|
+
/** Functional release policy. Velocity is points/ms. */
|
|
53
|
+
export declare function releaseDetent(height: number, velocity: number, heights: readonly number[], dismissDisabled: boolean): number;
|
|
54
|
+
export declare function rubberBandHeight(height: number, maximum: number): number;
|
|
55
|
+
/** The painted drag position. Below its smallest detent a sheet keeps that size and slides down
|
|
56
|
+
* with the finger (native never shrinks a sheet to dismiss it); without interactive dismissal it
|
|
57
|
+
* resists there as it does above its largest detent. The result can be negative: off-screen. */
|
|
58
|
+
export declare function sheetDragHeight(height: number, smallest: number, largest: number, dismissDisabled: boolean): number;
|
|
59
|
+
/** How far a sheet painted at `height` has slid below its smallest detent, and its size there. */
|
|
60
|
+
export declare function sheetTravel(height: number, smallest: number): {
|
|
61
|
+
size: number;
|
|
62
|
+
offset: number;
|
|
63
|
+
};
|
|
64
|
+
/** Native material changes at the midpoint of the medium-to-large drag.
|
|
65
|
+
* The recorded switch is bracketed by top edges 257.67 and 244.67 pt.
|
|
66
|
+
* Keep material choice separate from the final full-width frame geometry. */
|
|
67
|
+
export declare function usesExpandedSheetMaterial(height: number, medium: number, large: number): boolean;
|
|
68
|
+
/** Space kept between an alert's text field and the keyboard's top edge before the keyboard comes. */
|
|
69
|
+
export declare const ALERT_FIELD_KEYBOARD_CLEARANCE = 8;
|
|
70
|
+
/**
|
|
71
|
+
* Where an alert with a text field rests while no keyboard is reported.
|
|
72
|
+
*
|
|
73
|
+
* Measured on the iPad (1366 x 1024): the centred alert's field ends at 531 pt and the keyboard's
|
|
74
|
+
* top is at 526 pt. WebKit scrolls the document whenever a caret it could see is covered by the
|
|
75
|
+
* keyboard, for 300 ms, before any script can move the alert. An alert that already rests with
|
|
76
|
+
* its field above the keyboard to come gives WebKit nothing to reveal. On a phone the centred
|
|
77
|
+
* field is clear already and the centre is unchanged.
|
|
78
|
+
*
|
|
79
|
+
* `fieldReach` is how far the field's bottom edge lies below the alert's centre.
|
|
80
|
+
*/
|
|
81
|
+
export declare function alertRestingCenter(center: number, fieldReach: number, layoutHeight: number, expectedKeyboardHeight: number, keyboardCenter: number): number;
|
|
82
|
+
export declare const CONFIRMATION_POPOVER_WIDTH = 240;
|
|
83
|
+
export declare const CONFIRMATION_ARROW_HEIGHT = 14;
|
|
84
|
+
export type PopoverAnchor = {
|
|
85
|
+
left: number;
|
|
86
|
+
top: number;
|
|
87
|
+
right: number;
|
|
88
|
+
bottom: number;
|
|
89
|
+
};
|
|
90
|
+
export type ConfirmationPopoverFrame = {
|
|
91
|
+
left: number;
|
|
92
|
+
top: number;
|
|
93
|
+
/** Where the arrow meets the body, in the popover's own x; absent when nothing points. */
|
|
94
|
+
arrow?: {
|
|
95
|
+
x: number;
|
|
96
|
+
edge: 'top' | 'bottom';
|
|
97
|
+
};
|
|
98
|
+
/** The point it grows from and shrinks into, in its own coordinates (arrow tip or button). */
|
|
99
|
+
origin?: {
|
|
100
|
+
x: number;
|
|
101
|
+
y: number;
|
|
102
|
+
};
|
|
103
|
+
};
|
|
104
|
+
export declare function confirmationPopoverFrame(anchor: PopoverAnchor | null, anchorInBar: boolean, height: number, viewport: {
|
|
105
|
+
width: number;
|
|
106
|
+
top: number;
|
|
107
|
+
bottom: number;
|
|
108
|
+
}): ConfirmationPopoverFrame;
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import { concentricRadius } from '../safe-area/displayCorners.js';
|
|
2
|
+
import { createLayoutClassState } from '../layout/layoutClass.js';
|
|
3
|
+
import { POPOVER_ARROW_HEIGHT } from '../glass/regions.js';
|
|
4
|
+
/** Native iOS 27 iPad sheet width (form sheet and detent sheet alike), 580 pt in both orientations. */
|
|
5
|
+
export const SHEET_MAX_WIDTH = 580;
|
|
6
|
+
/** Native's preferred form height is independent of orientation. Constrain it only when the
|
|
7
|
+
* presenting viewport cannot hold it, rather than subtracting a device-specific margin. */
|
|
8
|
+
export function formSheetHeight(viewportHeight) {
|
|
9
|
+
return Math.min(660, viewportHeight);
|
|
10
|
+
}
|
|
11
|
+
export function sheetPlacement(viewport, bottomInset, onlyLarge, viewportTop = 0) {
|
|
12
|
+
const layout = createLayoutClassState(viewport).layoutClass;
|
|
13
|
+
if (layout.vertical === 'compact')
|
|
14
|
+
return { kind: 'fill' };
|
|
15
|
+
if (layout.horizontal === 'compact')
|
|
16
|
+
return { kind: 'edge' };
|
|
17
|
+
if (onlyLarge) {
|
|
18
|
+
const freeHeight = viewport.height - formSheetHeight(viewport.height);
|
|
19
|
+
// Center in the full window while room permits. A constrained window must still
|
|
20
|
+
// contain the form inside its layout viewport, without moving above its origin.
|
|
21
|
+
return { kind: 'form', bottom: Math.min(freeHeight, (freeHeight + viewportTop) / 2) };
|
|
22
|
+
}
|
|
23
|
+
return { kind: 'floating', bottom: bottomInset };
|
|
24
|
+
}
|
|
25
|
+
export function sheetExpansion(height, medium, large) {
|
|
26
|
+
return large > medium
|
|
27
|
+
? Math.max(0, Math.min(1, (height - medium) / (large - medium)))
|
|
28
|
+
: Number(height >= large);
|
|
29
|
+
}
|
|
30
|
+
/** The same frame calculation serves React's resting layout and transient motion. */
|
|
31
|
+
export function sheetFrame(viewportWidth, expansion, keyboardHeight, placement = { kind: 'edge' }) {
|
|
32
|
+
if (placement.kind === 'fill')
|
|
33
|
+
return { width: viewportWidth, left: 0, bottom: 0, contentScale: 1 };
|
|
34
|
+
if (placement.kind === 'form') {
|
|
35
|
+
const width = Math.min(viewportWidth, SHEET_MAX_WIDTH);
|
|
36
|
+
return { width, left: (viewportWidth - width) / 2, bottom: placement.bottom, contentScale: 1 };
|
|
37
|
+
}
|
|
38
|
+
const width = Math.min(viewportWidth - 16 * (1 - expansion), SHEET_MAX_WIDTH);
|
|
39
|
+
const rest = placement.kind === 'floating' ? placement.bottom : 0;
|
|
40
|
+
return {
|
|
41
|
+
width,
|
|
42
|
+
left: (viewportWidth - width) / 2,
|
|
43
|
+
bottom: Math.max(rest + 8 * (1 - expansion), keyboardHeight),
|
|
44
|
+
contentScale: width / Math.min(viewportWidth, SHEET_MAX_WIDTH),
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
/** Only an equally inset screen-edge card has the display's corner centre. A centred form,
|
|
48
|
+
* keyboard-raised card or narrow multitasking window keeps its own measured sheet corners. */
|
|
49
|
+
export function sheetCornerShape(frame, placement, viewport, screen, display) {
|
|
50
|
+
const cornerRadius = placement?.kind === 'form' ? 34 : 38;
|
|
51
|
+
const atDisplayEdge = placement?.kind === 'edge' &&
|
|
52
|
+
display.source !== 'fallback' &&
|
|
53
|
+
Math.abs(viewport.width - screen.width) < 1 &&
|
|
54
|
+
Math.abs(frame.left - frame.bottom) < 0.5;
|
|
55
|
+
return {
|
|
56
|
+
kind: 'roundedRectangle',
|
|
57
|
+
cornerRadius,
|
|
58
|
+
...(atDisplayEdge ? { bottomCornerRadius: concentricRadius(display.radius, frame.left) } : {}),
|
|
59
|
+
cornerStyle: 'continuous',
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
export function detentHeight(detent, available) {
|
|
63
|
+
if (!Number.isFinite(available) || available <= 0)
|
|
64
|
+
throw new Error('Sheet requires a positive available height.');
|
|
65
|
+
if (detent === 'medium')
|
|
66
|
+
return available / 2;
|
|
67
|
+
if (detent === 'large')
|
|
68
|
+
return available;
|
|
69
|
+
const value = 'height' in detent ? detent.height : detent.fraction * available;
|
|
70
|
+
if (!Number.isFinite(value) || value <= 0 || ('fraction' in detent && detent.fraction > 1))
|
|
71
|
+
throw new Error('Sheet detents require positive heights or fractions in (0, 1].');
|
|
72
|
+
return Math.min(value, available);
|
|
73
|
+
}
|
|
74
|
+
export function resolveDetents(detents, available) {
|
|
75
|
+
if (!detents.length)
|
|
76
|
+
throw new Error('Sheet requires at least one detent.');
|
|
77
|
+
return [...new Set(detents.map(detent => detentHeight(detent, available)))].sort((a, b) => a - b);
|
|
78
|
+
}
|
|
79
|
+
/** Functional release policy. Velocity is points/ms. */
|
|
80
|
+
export function releaseDetent(height, velocity, heights, dismissDisabled) {
|
|
81
|
+
const candidates = dismissDisabled ? heights : [0, ...heights];
|
|
82
|
+
// A directional flick advances one stop; slow releases choose the closest stop.
|
|
83
|
+
const directional = Math.abs(velocity) >= 0.5
|
|
84
|
+
? candidates.filter(value => (velocity < 0 ? value > height : value < height))
|
|
85
|
+
: candidates;
|
|
86
|
+
const choices = directional.length ? directional : candidates;
|
|
87
|
+
return choices.reduce((best, value) => Math.abs(value - height) < Math.abs(best - height) ? value : best);
|
|
88
|
+
}
|
|
89
|
+
export function rubberBandHeight(height, maximum) {
|
|
90
|
+
return height <= maximum
|
|
91
|
+
? Math.max(0, height)
|
|
92
|
+
: maximum + maximum * (1 - 1 / (1 + (height - maximum) / maximum));
|
|
93
|
+
}
|
|
94
|
+
/** The painted drag position. Below its smallest detent a sheet keeps that size and slides down
|
|
95
|
+
* with the finger (native never shrinks a sheet to dismiss it); without interactive dismissal it
|
|
96
|
+
* resists there as it does above its largest detent. The result can be negative: off-screen. */
|
|
97
|
+
export function sheetDragHeight(height, smallest, largest, dismissDisabled) {
|
|
98
|
+
if (height > largest)
|
|
99
|
+
return rubberBandHeight(height, largest);
|
|
100
|
+
if (height >= smallest || !dismissDisabled)
|
|
101
|
+
return height;
|
|
102
|
+
const excess = smallest - height;
|
|
103
|
+
return smallest - smallest * (1 - 1 / (1 + excess / smallest));
|
|
104
|
+
}
|
|
105
|
+
/** How far a sheet painted at `height` has slid below its smallest detent, and its size there. */
|
|
106
|
+
export function sheetTravel(height, smallest) {
|
|
107
|
+
return { size: Math.max(height, smallest), offset: Math.max(0, smallest - height) };
|
|
108
|
+
}
|
|
109
|
+
/** Native material changes at the midpoint of the medium-to-large drag.
|
|
110
|
+
* The recorded switch is bracketed by top edges 257.67 and 244.67 pt.
|
|
111
|
+
* Keep material choice separate from the final full-width frame geometry. */
|
|
112
|
+
export function usesExpandedSheetMaterial(height, medium, large) {
|
|
113
|
+
return height >= (medium + large) / 2;
|
|
114
|
+
}
|
|
115
|
+
/** Space kept between an alert's text field and the keyboard's top edge before the keyboard comes. */
|
|
116
|
+
export const ALERT_FIELD_KEYBOARD_CLEARANCE = 8;
|
|
117
|
+
/**
|
|
118
|
+
* Where an alert with a text field rests while no keyboard is reported.
|
|
119
|
+
*
|
|
120
|
+
* Measured on the iPad (1366 x 1024): the centred alert's field ends at 531 pt and the keyboard's
|
|
121
|
+
* top is at 526 pt. WebKit scrolls the document whenever a caret it could see is covered by the
|
|
122
|
+
* keyboard, for 300 ms, before any script can move the alert. An alert that already rests with
|
|
123
|
+
* its field above the keyboard to come gives WebKit nothing to reveal. On a phone the centred
|
|
124
|
+
* field is clear already and the centre is unchanged.
|
|
125
|
+
*
|
|
126
|
+
* `fieldReach` is how far the field's bottom edge lies below the alert's centre.
|
|
127
|
+
*/
|
|
128
|
+
export function alertRestingCenter(center, fieldReach, layoutHeight, expectedKeyboardHeight, keyboardCenter) {
|
|
129
|
+
if (expectedKeyboardHeight <= 0)
|
|
130
|
+
return center;
|
|
131
|
+
const clearLine = layoutHeight - expectedKeyboardHeight - ALERT_FIELD_KEYBOARD_CLEARANCE;
|
|
132
|
+
// Never above where the keyboard itself would put the alert.
|
|
133
|
+
return Math.min(center, Math.max(keyboardCenter, clearLine - fieldReach));
|
|
134
|
+
}
|
|
135
|
+
/* Native iOS 27 `confirmationDialog` on iPhone is a popover from its source (native reference fixture reference,
|
|
136
|
+
* iPhone 17 Pro Max, 3x stills): 240 pt wide. From a list row it sits above the row, centred on it,
|
|
137
|
+
* with a 14 pt arrow whose tip lies 16.5 pt inside the row's top edge. From a toolbar button it grows
|
|
138
|
+
* out of the button: same top edge, 10 pt from the screen edge on the button's side, no arrow. */
|
|
139
|
+
export const CONFIRMATION_POPOVER_WIDTH = 240;
|
|
140
|
+
export const CONFIRMATION_ARROW_HEIGHT = POPOVER_ARROW_HEIGHT;
|
|
141
|
+
const POPOVER_SCREEN_MARGIN = 10;
|
|
142
|
+
const POPOVER_ARROW_OVERLAP = 16.5;
|
|
143
|
+
const POPOVER_ARROW_HALF_BASE = 16;
|
|
144
|
+
const POPOVER_ARROW_CORNER_CLEARANCE = 20;
|
|
145
|
+
export function confirmationPopoverFrame(anchor, anchorInBar, height, viewport) {
|
|
146
|
+
const width = CONFIRMATION_POPOVER_WIDTH;
|
|
147
|
+
const margin = POPOVER_SCREEN_MARGIN;
|
|
148
|
+
if (!anchor) {
|
|
149
|
+
return {
|
|
150
|
+
left: (viewport.width - width) / 2,
|
|
151
|
+
top: (viewport.top + viewport.bottom) / 2 - height / 2,
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
const anchorCenter = (anchor.left + anchor.right) / 2;
|
|
155
|
+
if (anchorInBar) {
|
|
156
|
+
const trailing = anchorCenter > viewport.width / 2;
|
|
157
|
+
const left = trailing ? viewport.width - margin - width : margin;
|
|
158
|
+
return {
|
|
159
|
+
left,
|
|
160
|
+
top: anchor.top,
|
|
161
|
+
origin: { x: anchorCenter - left, y: (anchor.bottom - anchor.top) / 2 },
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
const center = Math.min(Math.max(anchorCenter, margin + width / 2), viewport.width - margin - width / 2);
|
|
165
|
+
const left = center - width / 2;
|
|
166
|
+
const arrowLimit = POPOVER_ARROW_HALF_BASE + POPOVER_ARROW_CORNER_CLEARANCE;
|
|
167
|
+
const arrowX = Math.min(Math.max(anchorCenter - left, arrowLimit), width - arrowLimit);
|
|
168
|
+
const overlap = Math.min(POPOVER_ARROW_OVERLAP, (anchor.bottom - anchor.top) / 2);
|
|
169
|
+
const above = anchor.top + overlap - CONFIRMATION_ARROW_HEIGHT - height;
|
|
170
|
+
if (above >= viewport.top + margin)
|
|
171
|
+
return {
|
|
172
|
+
left,
|
|
173
|
+
top: above,
|
|
174
|
+
arrow: { x: arrowX, edge: 'bottom' },
|
|
175
|
+
origin: { x: arrowX, y: height + CONFIRMATION_ARROW_HEIGHT },
|
|
176
|
+
};
|
|
177
|
+
return {
|
|
178
|
+
left,
|
|
179
|
+
top: anchor.bottom - overlap + CONFIRMATION_ARROW_HEIGHT,
|
|
180
|
+
arrow: { x: arrowX, edge: 'top' },
|
|
181
|
+
origin: { x: arrowX, y: -CONFIRMATION_ARROW_HEIGHT },
|
|
182
|
+
};
|
|
183
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
export declare function sheetEntranceFrames(distance: number): Keyframe[];
|
|
2
|
+
/** Native fullScreenCover entrance (r2, 11 clips, start pinned one screen below): power ease-out
|
|
3
|
+
* 1 - (1 - t / 0.963)^11.26, 6.3 pt RMS. It is the same curve in light and dark. */
|
|
4
|
+
export declare const COVER_PRESENT_DURATION = 963;
|
|
5
|
+
export declare function coverEntranceFrames(distance: number): Keyframe[];
|
|
6
|
+
/** Native fullScreenCover dismissal (r2, 11 clips, travel pinned to one screen height): a
|
|
7
|
+
* mass-one spring from rest, 2.7 pt RMS over the visible part. Returns the travelled distance. */
|
|
8
|
+
export declare function coverDismissalOffset(distance: number, seconds: number): number;
|
|
9
|
+
/** Independently fitted native release tails; velocity is in points/second and seeds the spring.
|
|
10
|
+
* Below its smallest detent a released sheet translates at its detent size. `dismiss` and `return`
|
|
11
|
+
* are native-motion r2 fits (iPad, counter-qualified 60 Hz, light and dark together):
|
|
12
|
+
* - `dismiss`: slides off the screen, seeded with the release velocity; 0.77 pt RMS over 10 clips.
|
|
13
|
+
* It replaces the 12e Simulator flick fit (637.3, 42.4), which no valid recording supports.
|
|
14
|
+
* - `return`: springs back to the detent; 0.23 pt RMS over 11 clips.
|
|
15
|
+
* `expand` and `collapse` remain the 12e phone fits. */
|
|
16
|
+
export declare function sheetReleasePosition(from: number, to: number, velocity: number, seconds: number, phase: 'dismiss' | 'return' | 'expand' | 'collapse'): number;
|
|
17
|
+
export declare function alertKeyboardState(from: number, to: number, velocity: number, seconds: number): {
|
|
18
|
+
position: number;
|
|
19
|
+
velocity: number;
|
|
20
|
+
};
|
|
21
|
+
/** Stock grabber taps are distinct from the velocity-bearing drag release fits. */
|
|
22
|
+
export declare function sheetDetentPosition(from: number, to: number, seconds: number): number;
|
|
23
|
+
export declare function dialogEntranceFrames(kind: 'alert' | 'confirmation'): Keyframe[];
|
|
24
|
+
export declare const CONFIRMATION_DISMISS_DURATION = 210;
|
|
25
|
+
export declare function confirmationDismissalFrames(): Keyframe[];
|
|
26
|
+
/** Stock iOS 27 alert title-contrast fit (Sep 28); opening 2 is the holdout.
|
|
27
|
+
* Opacity RMS 0.0274, independently tracked from the scale/keyboard motion.
|
|
28
|
+
*/
|
|
29
|
+
export declare function alertEntranceOpacity(seconds: number): number;
|
|
30
|
+
/** Native dismissal retains scale 1. Its last visible frame is at 193 ms;
|
|
31
|
+
* the first absent frame brackets removal at 210 ms. Samples use video PTS.
|
|
32
|
+
*/
|
|
33
|
+
export declare const ALERT_DISMISS_DURATION = 210;
|
|
34
|
+
export declare function alertDismissalFrames(): Keyframe[];
|
|
35
|
+
/** Sep 28 stock medium sheet + software keyboard: grabber 454 -> 65 pt,
|
|
36
|
+
* 120 accepted samples, RMS 1.689 pt. Selection itself remains unchanged.
|
|
37
|
+
*/
|
|
38
|
+
export declare function sheetKeyboardPosition(from: number, to: number, seconds: number): number;
|
|
39
|
+
/** iOS 27 Done dismissal: medium 483 ms, large 494 ms, near-critical mass-one fits. */
|
|
40
|
+
export declare function sheetDismissalPosition(distance: number, seconds: number, large: boolean): number;
|
|
41
|
+
/** Submit the measured Done curve once. Ordinary linear interpolation between
|
|
42
|
+
* samples avoids depending on the engine's acceleration of CSS linear(). */
|
|
43
|
+
export declare function presentationDismissalFrames(distance: number, from: number, opacity: number, kind: 'sheet' | 'cover', large: boolean, velocity?: number): {
|
|
44
|
+
transform: Keyframe[];
|
|
45
|
+
dim: Keyframe[];
|
|
46
|
+
};
|
|
47
|
+
/** Seed the existing sheet spring with the interrupted track's velocity.
|
|
48
|
+
* The cover is a power fit, not a spring: its correction matches initial
|
|
49
|
+
* velocity and vanishes at the original endpoint. Native parity is pending. */
|
|
50
|
+
export declare function presentationReturnFrames(from: number, opacity: number, kind: 'sheet' | 'cover', velocity?: number): {
|
|
51
|
+
transform: Keyframe[];
|
|
52
|
+
dim: Keyframe[];
|
|
53
|
+
};
|
|
54
|
+
/** Velocity of the submitted linear keyframe segment in points/second.
|
|
55
|
+
* This reads the animation timeline, never main-thread callback spacing. */
|
|
56
|
+
export declare function presentationAnimationVelocity(animation?: Animation): number;
|
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
/** Native iOS 27 iPad large-sheet entrance (native-motion r2), one spring for light and dark.
|
|
2
|
+
* Joint fit over 11 counter-retimed clips with the start pinned below the screen: 1.38 pt RMS.
|
|
3
|
+
*/
|
|
4
|
+
const SHEET_PRESENT_SPRING = [331.98, 36.378];
|
|
5
|
+
/** A mass-one spring released at rest, sampled into WAAPI translateY keyframes over 0.7 s. */
|
|
6
|
+
function springEntranceFrames(distance, [stiffness, damping]) {
|
|
7
|
+
return Array.from({ length: 85 }, (_, index) => {
|
|
8
|
+
const remaining = springState(distance, 0, 0, (index / 84) * 0.7, stiffness, damping).position;
|
|
9
|
+
return {
|
|
10
|
+
offset: index / 84,
|
|
11
|
+
transform: `translateY(${index === 84 ? 0 : remaining}px)`,
|
|
12
|
+
};
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
export function sheetEntranceFrames(distance) {
|
|
16
|
+
return springEntranceFrames(distance, SHEET_PRESENT_SPRING);
|
|
17
|
+
}
|
|
18
|
+
/** Native fullScreenCover entrance (r2, 11 clips, start pinned one screen below): power ease-out
|
|
19
|
+
* 1 - (1 - t / 0.963)^11.26, 6.3 pt RMS. It is the same curve in light and dark. */
|
|
20
|
+
export const COVER_PRESENT_DURATION = 963;
|
|
21
|
+
export function coverEntranceFrames(distance) {
|
|
22
|
+
return Array.from({ length: 97 }, (_, index) => ({
|
|
23
|
+
offset: index / 96,
|
|
24
|
+
transform: `translateY(${index === 96 ? 0 : distance * (1 - index / 96) ** 11.257}px)`,
|
|
25
|
+
}));
|
|
26
|
+
}
|
|
27
|
+
/** Native fullScreenCover dismissal (r2, 11 clips, travel pinned to one screen height): a
|
|
28
|
+
* mass-one spring from rest, 2.7 pt RMS over the visible part. Returns the travelled distance. */
|
|
29
|
+
export function coverDismissalOffset(distance, seconds) {
|
|
30
|
+
return distance - springState(distance, 0, 0, seconds, 330.544, 35.996).position;
|
|
31
|
+
}
|
|
32
|
+
/** Independently fitted native release tails; velocity is in points/second and seeds the spring.
|
|
33
|
+
* Below its smallest detent a released sheet translates at its detent size. `dismiss` and `return`
|
|
34
|
+
* are native-motion r2 fits (iPad, counter-qualified 60 Hz, light and dark together):
|
|
35
|
+
* - `dismiss`: slides off the screen, seeded with the release velocity; 0.77 pt RMS over 10 clips.
|
|
36
|
+
* It replaces the 12e Simulator flick fit (637.3, 42.4), which no valid recording supports.
|
|
37
|
+
* - `return`: springs back to the detent; 0.23 pt RMS over 11 clips.
|
|
38
|
+
* `expand` and `collapse` remain the 12e phone fits. */
|
|
39
|
+
export function sheetReleasePosition(from, to, velocity, seconds, phase) {
|
|
40
|
+
const [stiffness, damping] = {
|
|
41
|
+
dismiss: [305.97, 34.33],
|
|
42
|
+
return: [321.912, 35.09],
|
|
43
|
+
collapse: [326.5080212050766, 36.13545200303523],
|
|
44
|
+
expand: [136.04264454717745, 21.643366602174066],
|
|
45
|
+
}[phase];
|
|
46
|
+
const w = Math.sqrt(stiffness), z = damping / (2 * w), d = Math.sqrt(1 - z * z);
|
|
47
|
+
const displacement = from - to;
|
|
48
|
+
return (to +
|
|
49
|
+
Math.exp(-z * w * seconds) *
|
|
50
|
+
(displacement * Math.cos(w * d * seconds) +
|
|
51
|
+
((velocity + z * w * displacement) / (w * d)) * Math.sin(w * d * seconds)));
|
|
52
|
+
}
|
|
53
|
+
/** Mass-one spring, including critical/overdamped native detent taps. */
|
|
54
|
+
function springState(from, to, velocity, seconds, stiffness, damping) {
|
|
55
|
+
const t = Math.max(0, seconds), x = from - to, a = damping / 2, discriminant = a * a - stiffness;
|
|
56
|
+
let displacement, speed;
|
|
57
|
+
if (Math.abs(discriminant) < 1e-6) {
|
|
58
|
+
const b = velocity + a * x, decay = Math.exp(-a * t);
|
|
59
|
+
displacement = decay * (x + b * t);
|
|
60
|
+
speed = decay * (b - a * (x + b * t));
|
|
61
|
+
}
|
|
62
|
+
else if (discriminant > 0) {
|
|
63
|
+
const root = Math.sqrt(discriminant), r1 = -a + root, r2 = -a - root;
|
|
64
|
+
const c1 = (velocity - r2 * x) / (r1 - r2), c2 = x - c1;
|
|
65
|
+
displacement = c1 * Math.exp(r1 * t) + c2 * Math.exp(r2 * t);
|
|
66
|
+
speed = r1 * c1 * Math.exp(r1 * t) + r2 * c2 * Math.exp(r2 * t);
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
const w = Math.sqrt(-discriminant), b = (velocity + a * x) / w, decay = Math.exp(-a * t);
|
|
70
|
+
displacement = decay * (x * Math.cos(w * t) + b * Math.sin(w * t));
|
|
71
|
+
speed = -a * displacement + decay * w * (-x * Math.sin(w * t) + b * Math.cos(w * t));
|
|
72
|
+
}
|
|
73
|
+
return { position: to + displacement, velocity: speed };
|
|
74
|
+
}
|
|
75
|
+
/* Sep 27 iOS 27 stock alert + TextField, warmed run 1; run 2 is the holdout.
|
|
76
|
+
* Native centre 492 -> 335.5 pt. See measured-reference notes for captures and residuals.
|
|
77
|
+
*/
|
|
78
|
+
export function alertKeyboardState(from, to, velocity, seconds) {
|
|
79
|
+
return springState(from, to, velocity, seconds, 480.14579454093644, 41.79219798805168);
|
|
80
|
+
}
|
|
81
|
+
/** Stock grabber taps are distinct from the velocity-bearing drag release fits. */
|
|
82
|
+
export function sheetDetentPosition(from, to, seconds) {
|
|
83
|
+
return to > from
|
|
84
|
+
? springState(from, to, 0, seconds, 316.1544205988269, 35.57406510593182).position
|
|
85
|
+
: springState(from, to, 0, seconds, 346.32375968752916, 37.49481475190611).position;
|
|
86
|
+
}
|
|
87
|
+
/* Native visible scale tails, with the Sep 28 software-keyboard alert opacity fit. The
|
|
88
|
+
* confirmation popover grows from its arrow tip (native reference reference, Oct 10, 60 Hz Simulator recording,
|
|
89
|
+
* fit-only): popover width 0.23 -> 1, RMS 0.006, with the dark-run opacity samples below. */
|
|
90
|
+
export function dialogEntranceFrames(kind) {
|
|
91
|
+
const [from, velocity, w, z] = kind === 'alert'
|
|
92
|
+
? [1.1818181818181819, -1.7709405499714581, 20.045876104162325, 0.9515937909832228]
|
|
93
|
+
: [0.23, 0, 20, 0.8];
|
|
94
|
+
const d = Math.sqrt(1 - z * z), x = from - 1;
|
|
95
|
+
return Array.from({ length: 85 }, (_, index) => {
|
|
96
|
+
const t = (index / 84) * 0.7;
|
|
97
|
+
const scale = 1 +
|
|
98
|
+
Math.exp(-z * w * t) *
|
|
99
|
+
(x * Math.cos(w * d * t) + ((velocity + z * w * x) / (w * d)) * Math.sin(w * d * t));
|
|
100
|
+
return {
|
|
101
|
+
offset: index / 84,
|
|
102
|
+
transform: `scale(${index === 84 ? 1 : scale})`,
|
|
103
|
+
opacity: index === 84 ? 1 : kind === 'alert' ? alertEntranceOpacity(t) : confirmationOpacity(t),
|
|
104
|
+
};
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
/** Popover body level over a black list relative to rest (dark run), ms after the first frame. */
|
|
108
|
+
const CONFIRMATION_ENTRANCE_OPACITY = [
|
|
109
|
+
[0, 0],
|
|
110
|
+
[17, 0.2],
|
|
111
|
+
[34, 0.36],
|
|
112
|
+
[44, 0.43],
|
|
113
|
+
[62, 0.57],
|
|
114
|
+
[79, 0.64],
|
|
115
|
+
[97, 0.7],
|
|
116
|
+
[112, 0.77],
|
|
117
|
+
[130, 0.86],
|
|
118
|
+
[147, 0.91],
|
|
119
|
+
[164, 0.93],
|
|
120
|
+
[182, 0.95],
|
|
121
|
+
[195, 1],
|
|
122
|
+
];
|
|
123
|
+
function confirmationOpacity(seconds) {
|
|
124
|
+
const ms = seconds * 1000;
|
|
125
|
+
const next = CONFIRMATION_ENTRANCE_OPACITY.findIndex(([time]) => time >= ms);
|
|
126
|
+
if (next <= 0)
|
|
127
|
+
return next === 0 ? 0 : 1;
|
|
128
|
+
const [t0, v0] = CONFIRMATION_ENTRANCE_OPACITY[next - 1], [t1, v1] = CONFIRMATION_ENTRANCE_OPACITY[next];
|
|
129
|
+
return v0 + ((v1 - v0) * (ms - t0)) / (t1 - t0);
|
|
130
|
+
}
|
|
131
|
+
/* The popover shrinks back into its arrow tip as it fades (native reference reference, video PTS): scale from
|
|
132
|
+
* the light run's width, opacity from the dark run. The first absent frame is at 200-220 ms. */
|
|
133
|
+
export const CONFIRMATION_DISMISS_DURATION = 210;
|
|
134
|
+
export function confirmationDismissalFrames() {
|
|
135
|
+
const samples = [
|
|
136
|
+
[0, 1, 1],
|
|
137
|
+
[16, 0.97, 0.93],
|
|
138
|
+
[35, 0.875, 0.83],
|
|
139
|
+
[50, 0.751, 0.7],
|
|
140
|
+
[66, 0.615, 0.64],
|
|
141
|
+
[83, 0.502, 0.54],
|
|
142
|
+
[101, 0.419, 0.41],
|
|
143
|
+
[120, 0.34, 0.29],
|
|
144
|
+
[136, 0.302, 0.2],
|
|
145
|
+
[153, 0.275, 0.13],
|
|
146
|
+
[170, 0.234, 0.09],
|
|
147
|
+
[188, 0.215, 0.06],
|
|
148
|
+
[210, 0.2, 0],
|
|
149
|
+
];
|
|
150
|
+
return samples.map(([time, scale, opacity]) => ({
|
|
151
|
+
offset: time / CONFIRMATION_DISMISS_DURATION,
|
|
152
|
+
transform: `scale(${scale})`,
|
|
153
|
+
opacity,
|
|
154
|
+
}));
|
|
155
|
+
}
|
|
156
|
+
/** Stock iOS 27 alert title-contrast fit (Sep 28); opening 2 is the holdout.
|
|
157
|
+
* Opacity RMS 0.0274, independently tracked from the scale/keyboard motion.
|
|
158
|
+
*/
|
|
159
|
+
export function alertEntranceOpacity(seconds) {
|
|
160
|
+
return Math.max(0, Math.min(1, springState(0, 1, 0, seconds, 1396.659532456193, 117.75600163364518).position));
|
|
161
|
+
}
|
|
162
|
+
/** Native dismissal retains scale 1. Its last visible frame is at 193 ms;
|
|
163
|
+
* the first absent frame brackets removal at 210 ms. Samples use video PTS.
|
|
164
|
+
*/
|
|
165
|
+
export const ALERT_DISMISS_DURATION = 210;
|
|
166
|
+
export function alertDismissalFrames() {
|
|
167
|
+
const samples = [
|
|
168
|
+
[0, 1],
|
|
169
|
+
[11, 0.987],
|
|
170
|
+
[18, 0.934],
|
|
171
|
+
[35, 0.813],
|
|
172
|
+
[56, 0.675],
|
|
173
|
+
[70, 0.538],
|
|
174
|
+
[85, 0.42],
|
|
175
|
+
[103, 0.307],
|
|
176
|
+
[120, 0.242],
|
|
177
|
+
[135, 0.175],
|
|
178
|
+
[142, 0.143],
|
|
179
|
+
[161, 0.116],
|
|
180
|
+
[175, 0.084],
|
|
181
|
+
[193, 0.058],
|
|
182
|
+
[210, 0],
|
|
183
|
+
];
|
|
184
|
+
return samples.map(([time, opacity]) => ({ offset: time / ALERT_DISMISS_DURATION, opacity }));
|
|
185
|
+
}
|
|
186
|
+
/** Sep 28 stock medium sheet + software keyboard: grabber 454 -> 65 pt,
|
|
187
|
+
* 120 accepted samples, RMS 1.689 pt. Selection itself remains unchanged.
|
|
188
|
+
*/
|
|
189
|
+
export function sheetKeyboardPosition(from, to, seconds) {
|
|
190
|
+
// Return-key dismissal: 100 samples, RMS 1.306 pt, same native session.
|
|
191
|
+
return to > from
|
|
192
|
+
? springState(from, to, 0, seconds, 479.14469035648204, 42.67259323369546).position
|
|
193
|
+
: springState(from, to, 0, seconds, 677.3440899114729, 54.3445148299905).position;
|
|
194
|
+
}
|
|
195
|
+
/** iOS 27 Done dismissal: medium 483 ms, large 494 ms, near-critical mass-one fits. */
|
|
196
|
+
export function sheetDismissalPosition(distance, seconds, large) {
|
|
197
|
+
if (seconds >= 0.5)
|
|
198
|
+
return 0;
|
|
199
|
+
const stiffness = large ? 431 : 361.5;
|
|
200
|
+
const damping = large ? 41.5 : 38;
|
|
201
|
+
return Math.max(0, springState(distance, 0, 0, seconds, stiffness, damping).position);
|
|
202
|
+
}
|
|
203
|
+
/** Submit the measured Done curve once. Ordinary linear interpolation between
|
|
204
|
+
* samples avoids depending on the engine's acceleration of CSS linear(). */
|
|
205
|
+
export function presentationDismissalFrames(distance, from, opacity, kind, large, velocity = 0) {
|
|
206
|
+
const transform = [];
|
|
207
|
+
const dim = [];
|
|
208
|
+
for (let index = 0; index <= 120; index++) {
|
|
209
|
+
const offset = index / 120;
|
|
210
|
+
const remaining = velocity === 0
|
|
211
|
+
? kind === 'cover'
|
|
212
|
+
? distance - coverDismissalOffset(distance, offset * 0.5)
|
|
213
|
+
: sheetDismissalPosition(distance, offset * 0.5, large)
|
|
214
|
+
: springState(distance, 0, -velocity, offset * 0.5, kind === 'cover' ? 330.544 : large ? 431 : 361.5, kind === 'cover' ? 35.996 : large ? 41.5 : 38).position;
|
|
215
|
+
transform.push({ offset, transform: `translateY(${from + distance - remaining}px)` });
|
|
216
|
+
dim.push({ offset, opacity: opacity * Math.max(0, remaining / distance) });
|
|
217
|
+
}
|
|
218
|
+
return { transform, dim };
|
|
219
|
+
}
|
|
220
|
+
/** Seed the existing sheet spring with the interrupted track's velocity.
|
|
221
|
+
* The cover is a power fit, not a spring: its correction matches initial
|
|
222
|
+
* velocity and vanishes at the original endpoint. Native parity is pending. */
|
|
223
|
+
export function presentationReturnFrames(from, opacity, kind, velocity = 0) {
|
|
224
|
+
const normalized = kind === 'cover' ? coverEntranceFrames(1) : sheetEntranceFrames(1);
|
|
225
|
+
const transform = [];
|
|
226
|
+
const dim = [];
|
|
227
|
+
for (const frame of normalized) {
|
|
228
|
+
const remaining = Number(String(frame.transform).slice(11, -3));
|
|
229
|
+
const phase = Number(frame.offset);
|
|
230
|
+
const seconds = phase * (kind === 'cover' ? COVER_PRESENT_DURATION / 1000 : 0.7);
|
|
231
|
+
const position = phase === 1
|
|
232
|
+
? 0
|
|
233
|
+
: kind === 'sheet'
|
|
234
|
+
? springState(from, 0, velocity, seconds, ...SHEET_PRESENT_SPRING).position
|
|
235
|
+
: from * remaining +
|
|
236
|
+
(velocity + (from * 11.257) / 0.963) * seconds * (1 - phase) ** 11.257;
|
|
237
|
+
transform.push({ offset: frame.offset, transform: `translateY(${position}px)` });
|
|
238
|
+
dim.push({ offset: frame.offset, opacity: 1 - (1 - opacity) * remaining });
|
|
239
|
+
}
|
|
240
|
+
return { transform, dim };
|
|
241
|
+
}
|
|
242
|
+
/** Velocity of the submitted linear keyframe segment in points/second.
|
|
243
|
+
* This reads the animation timeline, never main-thread callback spacing. */
|
|
244
|
+
export function presentationAnimationVelocity(animation) {
|
|
245
|
+
const effect = animation?.effect;
|
|
246
|
+
if (!effect || !(effect instanceof KeyframeEffect) || typeof animation?.currentTime !== 'number')
|
|
247
|
+
return 0;
|
|
248
|
+
const duration = Number(effect.getComputedTiming().duration);
|
|
249
|
+
if (!(duration > 0))
|
|
250
|
+
return 0;
|
|
251
|
+
const phase = animation.currentTime / duration;
|
|
252
|
+
const frames = effect.getKeyframes();
|
|
253
|
+
for (let index = 1; index < frames.length; index++) {
|
|
254
|
+
const before = frames[index - 1];
|
|
255
|
+
const after = frames[index];
|
|
256
|
+
if (phase < before.computedOffset || phase >= after.computedOffset)
|
|
257
|
+
continue;
|
|
258
|
+
const start = new DOMMatrixReadOnly(String(before.transform)).m42;
|
|
259
|
+
const end = new DOMMatrixReadOnly(String(after.transform)).m42;
|
|
260
|
+
return ((end - start) * 1000) / ((after.computedOffset - before.computedOffset) * duration);
|
|
261
|
+
}
|
|
262
|
+
return 0;
|
|
263
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** One admission, clock and cancellation contract for programmatic and gesture sheet tails. */
|
|
2
|
+
export declare function runPresentationMotion({ layer, movement, dimming, tracksGlass, phase, invalidate, complete, }: {
|
|
3
|
+
layer: HTMLElement;
|
|
4
|
+
movement: Animation;
|
|
5
|
+
dimming: Animation;
|
|
6
|
+
tracksGlass: boolean;
|
|
7
|
+
phase: 'entrance' | 'dismissal' | 'drag';
|
|
8
|
+
invalidate: () => void;
|
|
9
|
+
complete: () => void;
|
|
10
|
+
}): () => void;
|