@satinhq/kit 0.0.0-stage → 0.1.0-beta.1
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 +29 -0
- package/dist/glass/GlassPresentation.js +1041 -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 +176 -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 +38 -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 +32 -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 +833 -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 +116 -3
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Component, createContext, useContext } from 'react';
|
|
3
|
+
/** The nearest dismissal: a pushed screen pops itself, a presentation's root dismisses it. */
|
|
4
|
+
export const DismissContext = createContext(undefined);
|
|
5
|
+
/**
|
|
6
|
+
* Closes the screen or presentation that contains the caller.
|
|
7
|
+
* In a pushed screen it pops that screen; at the root of a Sheet or FullScreenCover it dismisses the
|
|
8
|
+
* presentation, even when interactive dismissal is disabled. Elsewhere it does nothing.
|
|
9
|
+
*/
|
|
10
|
+
export function useDismiss() {
|
|
11
|
+
return useContext(DismissContext) ?? noDismissal;
|
|
12
|
+
}
|
|
13
|
+
function noDismissal() { }
|
|
14
|
+
/**
|
|
15
|
+
* A render or effect error inside one presentation stays inside it. The app behind it keeps
|
|
16
|
+
* running and the presentation can still be dismissed. React still reports the caught error.
|
|
17
|
+
*/
|
|
18
|
+
export class PresentationBoundary extends Component {
|
|
19
|
+
state = { failure: null };
|
|
20
|
+
static getDerivedStateFromError(error) {
|
|
21
|
+
return { failure: { error } };
|
|
22
|
+
}
|
|
23
|
+
render() {
|
|
24
|
+
const failure = this.state.failure;
|
|
25
|
+
if (!failure)
|
|
26
|
+
return this.props.children;
|
|
27
|
+
const detail = failure.error instanceof Error ? failure.error.message : String(failure.error);
|
|
28
|
+
return (_jsxs("div", { role: "alert", className: "satin-presentation-failure", children: [_jsx("p", { className: "satin-presentation-failure-title", children: "This content couldn\u2019t be shown." }), _jsx("p", { className: "satin-presentation-failure-detail", children: detail })] }));
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { AccessoryViewportTrack } from '../glass/webgpu/accessoryTrack.js';
|
|
2
|
+
type Rect = {
|
|
3
|
+
x: number;
|
|
4
|
+
y: number;
|
|
5
|
+
width: number;
|
|
6
|
+
height: number;
|
|
7
|
+
};
|
|
8
|
+
/** The sheet's own material follows screen coordinates. Nested glass stays at rest. */
|
|
9
|
+
export type PresentationGlassMotion = {
|
|
10
|
+
rect: Rect;
|
|
11
|
+
sampleRect: Rect;
|
|
12
|
+
track: AccessoryViewportTrack;
|
|
13
|
+
/** One retained-content submission per run, prepared before its clock starts. */
|
|
14
|
+
contentEpoch: number;
|
|
15
|
+
admitted: boolean;
|
|
16
|
+
ready: Promise<void>;
|
|
17
|
+
acknowledge: (track: AccessoryViewportTrack) => void;
|
|
18
|
+
current: () => boolean;
|
|
19
|
+
start: () => Promise<number>;
|
|
20
|
+
dispose: () => void;
|
|
21
|
+
};
|
|
22
|
+
/** Retarget an already admitted envelope without another capture or content fence. */
|
|
23
|
+
export declare const PRESENTATION_TRACK_EVENT = "satin-presentation-track";
|
|
24
|
+
/** Live finger writes remain imperative; the worker receives their matching held pose. */
|
|
25
|
+
export declare function holdPresentationGlassMotion(layer: HTMLElement, offset: number): void;
|
|
26
|
+
/** Returns the shared document epoch only when this run can start without waiting. */
|
|
27
|
+
export declare function retargetPresentationGlassMotion(layer: HTMLElement, animation: Animation, now: number): number | undefined;
|
|
28
|
+
export declare const presentationGlassMotion: (element: Element) => PresentationGlassMotion | undefined;
|
|
29
|
+
export declare function disposePresentationGlassMotion(layer: HTMLElement): void;
|
|
30
|
+
/** Nested materials keep their resting pixels, but must submit them for the new moving show
|
|
31
|
+
* before the outer clock is acknowledged. A cached draw from the clipped hold is not that handoff. */
|
|
32
|
+
export declare function presentationGlassContentEpoch(element: Element): number | undefined;
|
|
33
|
+
/** Once the renderer follows the run, neither outer nor nested canvases need DOM polling. */
|
|
34
|
+
export declare function presentationGlassFollowing(element: Element): boolean;
|
|
35
|
+
/** Reuse the actual WAAPI samples, including overshoot; never fit a second spring here. */
|
|
36
|
+
export declare function preparePresentationGlassMotion(layer: HTMLElement, animation: Animation, { retain }?: {
|
|
37
|
+
retain?: boolean;
|
|
38
|
+
}): PresentationGlassMotion | undefined;
|
|
39
|
+
export {};
|
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
import { lagMark, lagTraceEnabled } from '../glass/webgpu/lagTrace.js';
|
|
2
|
+
import { timelineStart } from '../motion/animate.js';
|
|
3
|
+
const materials = new WeakMap();
|
|
4
|
+
const layers = new WeakMap();
|
|
5
|
+
let nextContentEpoch = 0;
|
|
6
|
+
/** Retarget an already admitted envelope without another capture or content fence. */
|
|
7
|
+
export const PRESENTATION_TRACK_EVENT = 'satin-presentation-track';
|
|
8
|
+
function animationTrack(animation) {
|
|
9
|
+
const effect = animation.effect;
|
|
10
|
+
if (!effect?.getKeyframes)
|
|
11
|
+
return;
|
|
12
|
+
const frames = effect.getKeyframes();
|
|
13
|
+
const duration = Number(effect.getTiming().duration);
|
|
14
|
+
if (frames.length < 2 || !(duration > 0))
|
|
15
|
+
return;
|
|
16
|
+
if (frames.some((frame, index) => Math.abs(frame.computedOffset - index / (frames.length - 1)) > 1e-6))
|
|
17
|
+
return;
|
|
18
|
+
const offsets = frames.map(frame => {
|
|
19
|
+
const matrix = new DOMMatrixReadOnly(String(frame.transform ?? 'none'));
|
|
20
|
+
return { x: matrix.e, y: matrix.f };
|
|
21
|
+
});
|
|
22
|
+
return { duration, offsets };
|
|
23
|
+
}
|
|
24
|
+
function retarget(layer, track) {
|
|
25
|
+
const motion = layers.get(layer);
|
|
26
|
+
if (!motion?.current() || !motion.admitted)
|
|
27
|
+
return false;
|
|
28
|
+
const { rect, sampleRect } = motion;
|
|
29
|
+
// Reuse only source rows admitted for this same layout. A reflow retires the
|
|
30
|
+
// owner through ResizeObserver; a trajectory outside its envelope needs admission.
|
|
31
|
+
if (!track.offsets ||
|
|
32
|
+
track.offsets.some(offset => rect.x + offset.x < sampleRect.x - 0.5 ||
|
|
33
|
+
rect.y + offset.y < sampleRect.y - 0.5 ||
|
|
34
|
+
rect.x + offset.x + rect.width > sampleRect.x + sampleRect.width + 0.5 ||
|
|
35
|
+
rect.y + offset.y + rect.height > sampleRect.y + sampleRect.height + 0.5))
|
|
36
|
+
return false;
|
|
37
|
+
motion.track = track;
|
|
38
|
+
const material = layer.querySelector('.satin-presentation-surface');
|
|
39
|
+
window.dispatchEvent(new CustomEvent(PRESENTATION_TRACK_EVENT, { detail: material }));
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
42
|
+
/** Live finger writes remain imperative; the worker receives their matching held pose. */
|
|
43
|
+
export function holdPresentationGlassMotion(layer, offset) {
|
|
44
|
+
const motion = layers.get(layer);
|
|
45
|
+
if (!motion)
|
|
46
|
+
return;
|
|
47
|
+
if (!retarget(layer, {
|
|
48
|
+
epoch: Number.MAX_VALUE,
|
|
49
|
+
duration: 1,
|
|
50
|
+
widths: [motion.rect.width, motion.rect.width],
|
|
51
|
+
offsets: [
|
|
52
|
+
{ x: 0, y: offset },
|
|
53
|
+
{ x: 0, y: offset },
|
|
54
|
+
],
|
|
55
|
+
}))
|
|
56
|
+
motion.dispose();
|
|
57
|
+
}
|
|
58
|
+
/** Returns the shared document epoch only when this run can start without waiting. */
|
|
59
|
+
export function retargetPresentationGlassMotion(layer, animation, now) {
|
|
60
|
+
const motion = layers.get(layer);
|
|
61
|
+
const samples = animationTrack(animation);
|
|
62
|
+
if (!motion || !samples)
|
|
63
|
+
return;
|
|
64
|
+
if (!retarget(layer, {
|
|
65
|
+
epoch: performance.timeOrigin + now,
|
|
66
|
+
duration: samples.duration,
|
|
67
|
+
widths: samples.offsets.map(() => motion.rect.width),
|
|
68
|
+
offsets: samples.offsets,
|
|
69
|
+
}))
|
|
70
|
+
return;
|
|
71
|
+
return timelineStart(now);
|
|
72
|
+
}
|
|
73
|
+
export const presentationGlassMotion = (element) => materials.get(element);
|
|
74
|
+
export function disposePresentationGlassMotion(layer) {
|
|
75
|
+
layers.get(layer)?.dispose();
|
|
76
|
+
}
|
|
77
|
+
/** Nested materials keep their resting pixels, but must submit them for the new moving show
|
|
78
|
+
* before the outer clock is acknowledged. A cached draw from the clipped hold is not that handoff. */
|
|
79
|
+
export function presentationGlassContentEpoch(element) {
|
|
80
|
+
const own = materials.get(element);
|
|
81
|
+
if (own)
|
|
82
|
+
return own.contentEpoch;
|
|
83
|
+
const layer = element.closest('[data-satin-glass-layer]');
|
|
84
|
+
const motion = layer ? layers.get(layer) : undefined;
|
|
85
|
+
return motion?.contentEpoch;
|
|
86
|
+
}
|
|
87
|
+
/** Once the renderer follows the run, neither outer nor nested canvases need DOM polling. */
|
|
88
|
+
export function presentationGlassFollowing(element) {
|
|
89
|
+
const layer = element.closest('[data-satin-glass-layer]');
|
|
90
|
+
// Retaining coverage between gestures must not freeze nested scroll/toolbar
|
|
91
|
+
// presenters. Only active sheet travel replaces their DOM viewport sampling.
|
|
92
|
+
return (!!layer &&
|
|
93
|
+
layers.get(layer)?.admitted === true &&
|
|
94
|
+
!!layer.closest('dialog')?.hasAttribute('data-satin-presentation-moving'));
|
|
95
|
+
}
|
|
96
|
+
/** Reuse the actual WAAPI samples, including overshoot; never fit a second spring here. */
|
|
97
|
+
export function preparePresentationGlassMotion(layer, animation, { retain = false } = {}) {
|
|
98
|
+
const material = layer.querySelector('.satin-presentation-surface');
|
|
99
|
+
if (!material)
|
|
100
|
+
return;
|
|
101
|
+
const usesFallback = () => !!material.querySelector(':scope > [data-satin-fallback-material]');
|
|
102
|
+
let ownsMaterial = material.hasAttribute('data-satin-glass-region-id') && !usesFallback();
|
|
103
|
+
const effect = animation.effect;
|
|
104
|
+
if (!effect?.getKeyframes)
|
|
105
|
+
return;
|
|
106
|
+
const frames = effect.getKeyframes();
|
|
107
|
+
const duration = Number(effect.getTiming().duration);
|
|
108
|
+
if (frames.length < 2 || !(duration > 0))
|
|
109
|
+
return;
|
|
110
|
+
// These framework tracks have evenly spaced translation samples and linear interpolation.
|
|
111
|
+
if (frames.some((frame, index) => Math.abs(frame.computedOffset - index / (frames.length - 1)) > 1e-6))
|
|
112
|
+
return;
|
|
113
|
+
const offsets = frames.map(frame => {
|
|
114
|
+
const matrix = new DOMMatrixReadOnly(String(frame.transform ?? 'none'));
|
|
115
|
+
return { x: matrix.e, y: matrix.f };
|
|
116
|
+
});
|
|
117
|
+
const transform = new DOMMatrixReadOnly(getComputedStyle(layer).transform || 'none');
|
|
118
|
+
const bounds = material.getBoundingClientRect();
|
|
119
|
+
const rect = {
|
|
120
|
+
x: bounds.x - transform.e,
|
|
121
|
+
y: bounds.y - transform.f,
|
|
122
|
+
width: bounds.width,
|
|
123
|
+
height: bounds.height,
|
|
124
|
+
};
|
|
125
|
+
const minX = Math.min(...offsets.map(offset => offset.x));
|
|
126
|
+
const maxX = Math.max(...offsets.map(offset => offset.x));
|
|
127
|
+
const minY = Math.min(...offsets.map(offset => offset.y));
|
|
128
|
+
const maxY = Math.max(...offsets.map(offset => offset.y));
|
|
129
|
+
const trace = (stage, values) => {
|
|
130
|
+
if (lagTraceEnabled())
|
|
131
|
+
lagMark({
|
|
132
|
+
stage: `sheet-motion-${stage}`,
|
|
133
|
+
at: performance.timeOrigin + performance.now(),
|
|
134
|
+
values,
|
|
135
|
+
});
|
|
136
|
+
};
|
|
137
|
+
trace('prepared', { width: rect.width, height: rect.height, ownsMaterial });
|
|
138
|
+
let started;
|
|
139
|
+
const running = new Promise(resolve => {
|
|
140
|
+
started = resolve;
|
|
141
|
+
});
|
|
142
|
+
let prepared;
|
|
143
|
+
const ready = new Promise(resolve => {
|
|
144
|
+
prepared = resolve;
|
|
145
|
+
});
|
|
146
|
+
let preparedReady = !ownsMaterial;
|
|
147
|
+
let startRequested = false;
|
|
148
|
+
let startFrame = 0;
|
|
149
|
+
let timelineEpoch = 0;
|
|
150
|
+
const motion = {
|
|
151
|
+
rect,
|
|
152
|
+
contentEpoch: ++nextContentEpoch,
|
|
153
|
+
sampleRect: {
|
|
154
|
+
x: rect.x + minX,
|
|
155
|
+
y: rect.y + minY,
|
|
156
|
+
width: rect.width + maxX - minX,
|
|
157
|
+
height: rect.height + maxY - minY,
|
|
158
|
+
},
|
|
159
|
+
// Prepare coverage and the first glass while WAAPI is held at sample zero.
|
|
160
|
+
track: { epoch: Number.MAX_VALUE, duration, widths: offsets.map(() => rect.width), offsets },
|
|
161
|
+
admitted: false,
|
|
162
|
+
ready,
|
|
163
|
+
current: () => layers.get(layer) === motion,
|
|
164
|
+
acknowledge(track) {
|
|
165
|
+
if (!motion.current() || motion.track !== track)
|
|
166
|
+
return;
|
|
167
|
+
preparedReady = true;
|
|
168
|
+
prepared();
|
|
169
|
+
if (track.epoch !== Number.MAX_VALUE) {
|
|
170
|
+
motion.admitted = true;
|
|
171
|
+
trace('admitted');
|
|
172
|
+
started(timelineEpoch);
|
|
173
|
+
}
|
|
174
|
+
},
|
|
175
|
+
start() {
|
|
176
|
+
if (!motion.current() || startRequested)
|
|
177
|
+
return running;
|
|
178
|
+
startRequested = true;
|
|
179
|
+
// Coverage, resource installation and the nested-content fence may take many frames.
|
|
180
|
+
// Keep sample zero throughout that work instead of spending the entrance behind the hold.
|
|
181
|
+
if (!preparedReady)
|
|
182
|
+
window.dispatchEvent(new Event('satin-presentation-motion'));
|
|
183
|
+
void ready.then(() => {
|
|
184
|
+
if (!motion.current())
|
|
185
|
+
return;
|
|
186
|
+
// A long task can leave the document clock over a second behind. Acquire both
|
|
187
|
+
// clocks at a rendering update so a stall cannot look like suspension drift.
|
|
188
|
+
startFrame = requestAnimationFrame(() => {
|
|
189
|
+
startFrame = 0;
|
|
190
|
+
if (!motion.current())
|
|
191
|
+
return;
|
|
192
|
+
const start = performance.now();
|
|
193
|
+
timelineEpoch = timelineStart(start);
|
|
194
|
+
motion.track = { ...motion.track, epoch: performance.timeOrigin + start };
|
|
195
|
+
motion.admitted = !ownsMaterial;
|
|
196
|
+
if (!ownsMaterial)
|
|
197
|
+
started(timelineEpoch);
|
|
198
|
+
else
|
|
199
|
+
window.dispatchEvent(new Event('satin-presentation-motion'));
|
|
200
|
+
});
|
|
201
|
+
});
|
|
202
|
+
return running;
|
|
203
|
+
},
|
|
204
|
+
dispose() {
|
|
205
|
+
if (layers.get(layer) !== motion)
|
|
206
|
+
return;
|
|
207
|
+
trace('retired');
|
|
208
|
+
cancelAnimationFrame(startFrame);
|
|
209
|
+
resize.disconnect();
|
|
210
|
+
fallback.disconnect();
|
|
211
|
+
window.removeEventListener('resize', motion.dispose);
|
|
212
|
+
window.visualViewport?.removeEventListener('resize', motion.dispose);
|
|
213
|
+
materials.delete(material);
|
|
214
|
+
layers.delete(layer);
|
|
215
|
+
// A reflow retires this sampled path. Resume the existing DOM-following path
|
|
216
|
+
// immediately instead of leaving a visible restoration paused until the watchdog.
|
|
217
|
+
motion.admitted = false;
|
|
218
|
+
prepared();
|
|
219
|
+
started(timelineStart(performance.now()));
|
|
220
|
+
window.dispatchEvent(new Event('satin-presentation-motion'));
|
|
221
|
+
},
|
|
222
|
+
};
|
|
223
|
+
const resize = new ResizeObserver(entries => {
|
|
224
|
+
const size = entries[0]?.borderBoxSize?.[0];
|
|
225
|
+
if (size &&
|
|
226
|
+
(Math.abs(size.inlineSize - rect.width) > 0.5 || Math.abs(size.blockSize - rect.height) > 0.5)) {
|
|
227
|
+
trace('reflow', { width: size.inlineSize, height: size.blockSize });
|
|
228
|
+
motion.dispose();
|
|
229
|
+
}
|
|
230
|
+
});
|
|
231
|
+
// CSS fallback samples its backdrop live. A demotion must release a pending
|
|
232
|
+
// GPU admission rather than leave a visible modal waiting for a retired worker.
|
|
233
|
+
const fallback = new MutationObserver(() => {
|
|
234
|
+
if (!ownsMaterial || !usesFallback() || !motion.current())
|
|
235
|
+
return;
|
|
236
|
+
ownsMaterial = false;
|
|
237
|
+
preparedReady = true;
|
|
238
|
+
prepared();
|
|
239
|
+
if (motion.track.epoch !== Number.MAX_VALUE) {
|
|
240
|
+
motion.admitted = true;
|
|
241
|
+
started(timelineEpoch);
|
|
242
|
+
}
|
|
243
|
+
});
|
|
244
|
+
layers.get(layer)?.dispose();
|
|
245
|
+
resize.observe(material);
|
|
246
|
+
fallback.observe(material, { childList: true });
|
|
247
|
+
window.addEventListener('resize', motion.dispose);
|
|
248
|
+
window.visualViewport?.addEventListener('resize', motion.dispose);
|
|
249
|
+
if (ownsMaterial)
|
|
250
|
+
materials.set(material, motion);
|
|
251
|
+
else
|
|
252
|
+
prepared();
|
|
253
|
+
layers.set(layer, motion);
|
|
254
|
+
// A sheet can retain its admitted full travel envelope between gestures. Its
|
|
255
|
+
// modal owner, resize or replacement retires it; a finished animation does not.
|
|
256
|
+
if (!retain)
|
|
257
|
+
void animation.finished.then(motion.dispose, motion.dispose);
|
|
258
|
+
return motion;
|
|
259
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** Keep the whole surface together until this show's scene has been submitted.
|
|
2
|
+
* Layout stays measurable while hidden; no replacement material is displayed. */
|
|
3
|
+
export declare function holdPresentationForGlass(panel: HTMLElement, dimmer: HTMLElement | null, animations: readonly Animation[], invalidate: () => void, onReady?: () => void, canReveal?: () => boolean,
|
|
4
|
+
/** Native has no presented sheet before its presentation: nothing held is focusable or reachable
|
|
5
|
+
* by assistive technology (a menu keeps its own inert state, menuPresenter.tsx). */
|
|
6
|
+
{ inert, revealStart, onFailure, }?: {
|
|
7
|
+
inert?: boolean;
|
|
8
|
+
revealStart?: () => Promise<number>;
|
|
9
|
+
/** Retire caller-owned visibility on failure instead of starting an unready entrance. */
|
|
10
|
+
onFailure?: () => void;
|
|
11
|
+
}): () => void;
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
import { VisibleDeadline } from '../glass/visibleDeadline.js';
|
|
2
|
+
import { reportGlassError } from '../glass/errors.js';
|
|
3
|
+
import { hold, releaseHold } from '../glass/presentationFrame.js';
|
|
4
|
+
import { focusFromFramework } from '../focus/programmaticFocus.js';
|
|
5
|
+
import { lagTraceEnabled } from '../glass/webgpu/lagTrace.js';
|
|
6
|
+
import { glassNow, glassTiming } from '../glass/webgpu/profile.js';
|
|
7
|
+
let nextShow = 0;
|
|
8
|
+
/** Keep the whole surface together until this show's scene has been submitted.
|
|
9
|
+
* Layout stays measurable while hidden; no replacement material is displayed. */
|
|
10
|
+
export function holdPresentationForGlass(panel, dimmer, animations, invalidate, onReady = () => { }, canReveal = () => true,
|
|
11
|
+
/** Native has no presented sheet before its presentation: nothing held is focusable or reachable
|
|
12
|
+
* by assistive technology (a menu keeps its own inert state, menuPresenter.tsx). */
|
|
13
|
+
{ inert = false, revealStart, onFailure, } = {}) {
|
|
14
|
+
const generation = String(++nextShow);
|
|
15
|
+
const requestedAt = lagTraceEnabled() ? glassNow() : 0;
|
|
16
|
+
const trace = (stage) => {
|
|
17
|
+
if (lagTraceEnabled())
|
|
18
|
+
glassTiming(stage, requestedAt, generation);
|
|
19
|
+
};
|
|
20
|
+
trace('presentation-held');
|
|
21
|
+
// Only this presentation's own materials gate it: a canvas owned directly by a glass region in
|
|
22
|
+
// this dialog. A container's auxiliary canvas sits inside the sheet's region without being one,
|
|
23
|
+
// and a nested dialog holds its own show (reference readiness contract). Glass that mounts during the
|
|
24
|
+
// hold (a sheet's toolbar capsules are laid out after it opens) gates it too.
|
|
25
|
+
const dialog = panel.closest('dialog');
|
|
26
|
+
const gated = () => [
|
|
27
|
+
...panel.querySelectorAll('canvas[data-satin-glass-region-canvas]:not([data-satin-glass-lift])'),
|
|
28
|
+
].filter(canvas => canvas.parentElement?.hasAttribute('data-satin-glass-region-id') &&
|
|
29
|
+
canvas.closest('dialog') === dialog);
|
|
30
|
+
// Glass on a presentation samples the presentation's own content. Nothing may show until the
|
|
31
|
+
// renderer holds a backdrop measured during this hold (presentationFrame.ts) and the glass has
|
|
32
|
+
// been drawn over it, or the glass would show the screen below and change once content arrives.
|
|
33
|
+
let sourced = !panel.querySelector('[data-satin-presentation-content]');
|
|
34
|
+
let show = generation;
|
|
35
|
+
const arm = (canvas) => {
|
|
36
|
+
canvas.dataset.satinGlassShow = show;
|
|
37
|
+
delete canvas.dataset.satinGlassPresented;
|
|
38
|
+
delete canvas.dataset.satinGlassPresentedShow;
|
|
39
|
+
};
|
|
40
|
+
const targets = [panel, dimmer].filter((node) => node !== null);
|
|
41
|
+
// The hold is marked with its show generation, so source preparation can read through this
|
|
42
|
+
// framework hold while content an author hid stays hidden.
|
|
43
|
+
for (const node of targets)
|
|
44
|
+
hold(node, generation);
|
|
45
|
+
const releaseEditor = keepFocusedEditor(panel);
|
|
46
|
+
const releaseInert = inert ? holdInert(targets, panel) : (_refocus) => { };
|
|
47
|
+
for (const animation of animations) {
|
|
48
|
+
animation.pause();
|
|
49
|
+
animation.currentTime = 0;
|
|
50
|
+
}
|
|
51
|
+
gated().forEach(arm);
|
|
52
|
+
let stopped = false;
|
|
53
|
+
let preparingMotion = false;
|
|
54
|
+
const observer = new MutationObserver(check);
|
|
55
|
+
// The failure is reported loudly, then the presentation stops holding: an invisible modal would
|
|
56
|
+
// trap the app. The entrance settles at its resting pose without the motion sampling hook.
|
|
57
|
+
const deadline = new VisibleDeadline(10_000, () => {
|
|
58
|
+
if (stopped)
|
|
59
|
+
return;
|
|
60
|
+
trace('presentation-readiness-timeout');
|
|
61
|
+
reportGlassError('readiness-timeout', new Error('Presentation glass did not submit for the current show'), 'presentation-first-show');
|
|
62
|
+
stopped = true;
|
|
63
|
+
observer.disconnect();
|
|
64
|
+
if (!canReveal())
|
|
65
|
+
return;
|
|
66
|
+
if (onFailure) {
|
|
67
|
+
// Menu callers own a separate visibility state. Dismiss it before releasing this hold;
|
|
68
|
+
// treating failure as ready would start an entrance with no admitted glass.
|
|
69
|
+
onFailure();
|
|
70
|
+
reveal(true);
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
reveal();
|
|
74
|
+
for (const animation of animations)
|
|
75
|
+
animation.finish();
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
deadline.start();
|
|
79
|
+
function reveal(closing = false) {
|
|
80
|
+
for (const node of targets)
|
|
81
|
+
releaseHold(node, generation);
|
|
82
|
+
releaseEditor();
|
|
83
|
+
releaseInert(!closing);
|
|
84
|
+
}
|
|
85
|
+
function check() {
|
|
86
|
+
if (stopped || preparingMotion)
|
|
87
|
+
return;
|
|
88
|
+
const canvases = gated();
|
|
89
|
+
if (!canvases.length)
|
|
90
|
+
return;
|
|
91
|
+
const late = canvases.filter(canvas => canvas.dataset.satinGlassShow !== show);
|
|
92
|
+
if (late.length) {
|
|
93
|
+
late.forEach(arm);
|
|
94
|
+
invalidate();
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
if (!sourced) {
|
|
98
|
+
if (panel.getAttribute('data-satin-glass-source') !== generation)
|
|
99
|
+
return;
|
|
100
|
+
sourced = true;
|
|
101
|
+
trace('presentation-source-ready');
|
|
102
|
+
// Draws from scenes posted before this backdrop are not this show's: count only receipts
|
|
103
|
+
// for scenes that sample it.
|
|
104
|
+
show = `${generation}:source`;
|
|
105
|
+
canvases.forEach(arm);
|
|
106
|
+
invalidate();
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
if (canvases.some(canvas => canvas.dataset.satinGlassPresentedShow !== show))
|
|
110
|
+
return;
|
|
111
|
+
const start = (epoch) => {
|
|
112
|
+
if (stopped)
|
|
113
|
+
return;
|
|
114
|
+
// Motion admission is asynchronous. A control can register or lose its scene while the
|
|
115
|
+
// outer material acquires its moving clock. Recheck the entire show before exposing it;
|
|
116
|
+
// a replacement admission must acquire a fresh clock after every material is ready again.
|
|
117
|
+
const current = gated();
|
|
118
|
+
if (!current.length ||
|
|
119
|
+
current.some(canvas => canvas.dataset.satinGlassShow !== show ||
|
|
120
|
+
canvas.dataset.satinGlassPresentedShow !== show)) {
|
|
121
|
+
preparingMotion = false;
|
|
122
|
+
check();
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
stopped = true;
|
|
126
|
+
observer.disconnect();
|
|
127
|
+
deadline.cancel();
|
|
128
|
+
// A retained dismissal can outlive its opening. Never revive its entrance.
|
|
129
|
+
if (!canReveal())
|
|
130
|
+
return;
|
|
131
|
+
reveal();
|
|
132
|
+
trace('presentation-shown');
|
|
133
|
+
// Rebase a pending pause, using the renderer's admitted clock when it follows this run.
|
|
134
|
+
for (const animation of animations) {
|
|
135
|
+
animation.play();
|
|
136
|
+
animation.startTime = epoch ?? document.timeline.currentTime;
|
|
137
|
+
}
|
|
138
|
+
onReady();
|
|
139
|
+
};
|
|
140
|
+
if (revealStart) {
|
|
141
|
+
preparingMotion = true;
|
|
142
|
+
void revealStart().then(start);
|
|
143
|
+
}
|
|
144
|
+
else
|
|
145
|
+
start();
|
|
146
|
+
}
|
|
147
|
+
observer.observe(panel, {
|
|
148
|
+
subtree: true,
|
|
149
|
+
childList: true,
|
|
150
|
+
attributes: true,
|
|
151
|
+
attributeFilter: ['data-satin-glass-presented-show', 'data-satin-glass-source'],
|
|
152
|
+
});
|
|
153
|
+
invalidate();
|
|
154
|
+
return () => {
|
|
155
|
+
stopped = true;
|
|
156
|
+
observer.disconnect();
|
|
157
|
+
deadline.cancel();
|
|
158
|
+
reveal(true);
|
|
159
|
+
for (const canvas of gated()) {
|
|
160
|
+
// Retire this generation before a pending scene can acknowledge it.
|
|
161
|
+
if (canvas.dataset.satinGlassShow === show) {
|
|
162
|
+
delete canvas.dataset.satinGlassShow;
|
|
163
|
+
delete canvas.dataset.satinGlassPresented;
|
|
164
|
+
delete canvas.dataset.satinGlassPresentedShow;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* The held nodes are inert, so the hold is invisible to focus and assistive technology as well as
|
|
171
|
+
* to the eye. An editor the opening tap focused stays focusable (keepFocusedEditor): the nodes
|
|
172
|
+
* beside its path are inert instead. A visible focus inside the panel (a dialog's initial focus
|
|
173
|
+
* after a keyboard arrival) is given back at reveal. An `inert` the app set is left alone. The
|
|
174
|
+
* attribute is not read by glass source measurement (mirrorExtents.ts), so it changes no capture.
|
|
175
|
+
*/
|
|
176
|
+
function holdInert(targets, panel) {
|
|
177
|
+
const document = panel.ownerDocument;
|
|
178
|
+
const active = document.activeElement;
|
|
179
|
+
const focused = active instanceof HTMLElement && panel.contains(active) ? active : null;
|
|
180
|
+
const editor = focused?.matches('input, textarea, [contenteditable]:not([contenteditable="false"])')
|
|
181
|
+
? focused
|
|
182
|
+
: null;
|
|
183
|
+
// A UA :focus-visible match may still be quieted after touch. Save the painted indicator
|
|
184
|
+
// before inertness blurs the target and clears that suppression.
|
|
185
|
+
const refocusable = focused !== editor && visibleFocus(focused) ? focused : null;
|
|
186
|
+
const inerted = [];
|
|
187
|
+
const makeInert = (node) => {
|
|
188
|
+
if (node.hasAttribute('inert'))
|
|
189
|
+
return;
|
|
190
|
+
node.setAttribute('inert', '');
|
|
191
|
+
inerted.push(node);
|
|
192
|
+
};
|
|
193
|
+
for (const node of targets) {
|
|
194
|
+
if (!editor || !node.contains(editor)) {
|
|
195
|
+
makeInert(node);
|
|
196
|
+
continue;
|
|
197
|
+
}
|
|
198
|
+
for (let path = editor; path !== node; path = path.parentElement)
|
|
199
|
+
for (const sibling of path.parentElement.children)
|
|
200
|
+
if (sibling !== path)
|
|
201
|
+
makeInert(sibling);
|
|
202
|
+
}
|
|
203
|
+
let released = false;
|
|
204
|
+
return (refocus) => {
|
|
205
|
+
if (released)
|
|
206
|
+
return;
|
|
207
|
+
released = true;
|
|
208
|
+
for (const node of inerted)
|
|
209
|
+
node.removeAttribute('inert');
|
|
210
|
+
const now = document.activeElement;
|
|
211
|
+
if (refocus && refocusable?.isConnected && (!now || now === document.body))
|
|
212
|
+
focusFromFramework(refocusable, { preventScroll: true });
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
function visibleFocus(element) {
|
|
216
|
+
try {
|
|
217
|
+
return !!element?.matches(':focus-visible') && !element.hasAttribute('data-satin-focus-quiet');
|
|
218
|
+
}
|
|
219
|
+
catch {
|
|
220
|
+
return false;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Measured on the iPad: an alert focuses its text field in the opening tap, the hold then hides
|
|
225
|
+
* the panel, and WebKit ends editing at the next rendering update because a hidden element cannot
|
|
226
|
+
* keep focus (focusout 3-12 ms after focusin, no keyboard). The focused editor stays focusable
|
|
227
|
+
* and unpainted for the hold instead, so the keyboard the tap asked for still comes.
|
|
228
|
+
*/
|
|
229
|
+
function keepFocusedEditor(panel) {
|
|
230
|
+
const editor = panel.ownerDocument.activeElement;
|
|
231
|
+
if (!(editor instanceof HTMLElement) || !panel.contains(editor))
|
|
232
|
+
return () => { };
|
|
233
|
+
if (!editor.matches('input, textarea, [contenteditable]:not([contenteditable="false"])'))
|
|
234
|
+
return () => { };
|
|
235
|
+
const { visibility, opacity } = editor.style;
|
|
236
|
+
editor.style.visibility = 'visible';
|
|
237
|
+
editor.style.opacity = '0';
|
|
238
|
+
let released = false;
|
|
239
|
+
return () => {
|
|
240
|
+
if (released)
|
|
241
|
+
return;
|
|
242
|
+
released = true;
|
|
243
|
+
editor.style.visibility = visibility;
|
|
244
|
+
editor.style.opacity = opacity;
|
|
245
|
+
};
|
|
246
|
+
}
|