@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,214 @@
|
|
|
1
|
+
// The contact physics of interactive glass: how a glass shape answers a finger (light, growth,
|
|
2
|
+
// follow, squish, release), one table for every interactive glass surface. The menu gesture
|
|
3
|
+
// (document) and every interactive glass press (glass worker, InteractiveContact,
|
|
4
|
+
// InteractivePress) read it. No DOM access: the glass worker imports it.
|
|
5
|
+
//
|
|
6
|
+
// The menu's measured laws come first; GLASS_CONTACT_PHYSICS below gives each kind of
|
|
7
|
+
// interactive glass its parameters for those laws.
|
|
8
|
+
// iOS 26.5 Menu observations, measured-reference. These bounded 2D fits approximate
|
|
9
|
+
// the visible contour; native's optical warp is not its UIView transform.
|
|
10
|
+
export function menuPull(displacement, gain, range) {
|
|
11
|
+
return (displacement * gain) / (1 + Math.abs(displacement) / range);
|
|
12
|
+
}
|
|
13
|
+
export const MENU_RELEASE_SPRING = Object.freeze({
|
|
14
|
+
stiffness: 111.73389187035956,
|
|
15
|
+
damping: 10.51444760548088,
|
|
16
|
+
delayMilliseconds: 4.941103419008078,
|
|
17
|
+
});
|
|
18
|
+
export function menuReturn(milliseconds) {
|
|
19
|
+
if (milliseconds >= 850)
|
|
20
|
+
return 0;
|
|
21
|
+
const t = Math.max(0, milliseconds - MENU_RELEASE_SPRING.delayMilliseconds) / 1000;
|
|
22
|
+
const a = MENU_RELEASE_SPRING.damping / 2;
|
|
23
|
+
const w = Math.sqrt(MENU_RELEASE_SPRING.stiffness - a * a);
|
|
24
|
+
return Math.exp(-a * t) * (Math.cos(w * t) + (a / w) * Math.sin(w * t));
|
|
25
|
+
}
|
|
26
|
+
export const MENU_STRAIN_RESPONSE_MS = 109.7745877972179;
|
|
27
|
+
/* The closed Menu trigger trailing a held finger (measured-reference): per-axis gains of menuPull over a
|
|
28
|
+
* 300 pt rational range, approached with a 211 ms response. */
|
|
29
|
+
export const MENU_TRIGGER_FOLLOW = Object.freeze({
|
|
30
|
+
gainX: 0.028852199054395337,
|
|
31
|
+
gainY: 0.01683370428028321,
|
|
32
|
+
rangePt: 300,
|
|
33
|
+
responseMs: 211.1299624689032,
|
|
34
|
+
});
|
|
35
|
+
/** The menu panel's velocity strain, in seconds of finger velocity: the panel leads along the
|
|
36
|
+
* motion (x, y), stretches along it and narrows across it. */
|
|
37
|
+
export const MENU_STRAIN = Object.freeze({
|
|
38
|
+
leadXSeconds: 0.003524681648458459,
|
|
39
|
+
leadYSeconds: 0.0042655868076027946,
|
|
40
|
+
stretchSeconds: 0.004789086076060811,
|
|
41
|
+
narrowSeconds: 0.006870711203430614,
|
|
42
|
+
});
|
|
43
|
+
/**
|
|
44
|
+
* OWNER DECISION PENDING (Oct 12): which kinds of interactive glass let a horizontal drag that
|
|
45
|
+
* starts on them start the navigation back swipe.
|
|
46
|
+
*
|
|
47
|
+
* - `[]` (current): every interactive glass owns its horizontal drag; it stretches toward the
|
|
48
|
+
* finger and never navigates.
|
|
49
|
+
* - `['button']` (native, iPad catalog Oct 13): a rightward drag that starts on a content glass
|
|
50
|
+
* button drives the back swipe while the button stays pressed and moves with the page; its tap
|
|
51
|
+
* cancels. Add `'bar'` / `'menu'` to extend that to toolbar buttons and menu triggers.
|
|
52
|
+
*
|
|
53
|
+
* Fields always own their drag (a composer drag must not open the iPad split pane), as do
|
|
54
|
+
* surfaces, Toggles and Sliders.
|
|
55
|
+
*/
|
|
56
|
+
export const GLASS_BACK_SWIPE = {
|
|
57
|
+
// Owner decision (Oct 13): match native. A content glass button lets a back swipe through
|
|
58
|
+
// and stays pressed while the page moves; fields, chrome, surfaces and thumbs keep their drag.
|
|
59
|
+
yieldingKinds: ['button'],
|
|
60
|
+
};
|
|
61
|
+
/*
|
|
62
|
+
* Native glass buttons on iPad (iPadOS 27, Oct 12; native reference `glass-press`, fit-grade counter
|
|
63
|
+
* captures: skips 1.4-3.1%, max skip 1; evidence `native-refs-iPad/glass-{inline,toolbar}-*`,
|
|
64
|
+
* fits in `glass-contact-one-path/native-fit/`):
|
|
65
|
+
* - A 60 pt drag over 400 ms moves the held Actions and Save buttons' centre 0.8 pt toward the
|
|
66
|
+
* finger. With the menu strain's lead that is a follow gain of 0.010 per point (x); y keeps
|
|
67
|
+
* the menu trigger's y/x ratio.
|
|
68
|
+
* - Dark: the glass whitens to a steady plateau (sRGB +51 of 223 over the backdrop, about 0.25
|
|
69
|
+
* white) by ~170 ms, with no flash, and clears ~240 ms after release.
|
|
70
|
+
* - Light: the glass is white from the first pressed frame and stays white while held; it clears
|
|
71
|
+
* over ~500 ms.
|
|
72
|
+
* - Labels: a content button's label stays at full strength (light 0 → 18 of 255, dark 255).
|
|
73
|
+
* A toolbar button's light label washes out into the white glass while held (2 → 255) and its
|
|
74
|
+
* dark label dips for one frame (188 of 255) at touch-down.
|
|
75
|
+
*
|
|
76
|
+
* Shape (native-contact-catalog, iPad, Oct 13; single captures, optical envelopes):
|
|
77
|
+
* - Growth depends on shape through the width: one uniform scale 1 + growthPt / width. Circle
|
|
78
|
+
* composer + 46 pt: native rim ×1.39, this law ×1.35. Capsule "Actions" 82 pt: native ×1.21
|
|
79
|
+
* wide, this law ×1.20.
|
|
80
|
+
* - Follow does not depend on shape. The circle + holds within ~1.5 pt of its place over a 60 pt
|
|
81
|
+
* drag. The capsule's "+31 pt" track in that catalog is the page, not the button: the untouched
|
|
82
|
+
* "Separate" button beside it moves the same +29 / −17 pt in the same frames (the native back
|
|
83
|
+
* swipe, started by the right-drag). Relative to the page the capsule stays put.
|
|
84
|
+
* - Release: circle k 337 c 11.1, capsule k 384 c 12.2, prominent k 373 c 13.7 (ζ 0.30–0.35),
|
|
85
|
+
* inside the fitted INTERACTIVE_GLASS_PRESS release (k 324, c 12.24, ζ 0.34).
|
|
86
|
+
*/
|
|
87
|
+
const BUTTON_FOLLOW = Object.freeze({
|
|
88
|
+
gainX: 0.01,
|
|
89
|
+
gainY: 0.01 * (MENU_TRIGGER_FOLLOW.gainY / MENU_TRIGGER_FOLLOW.gainX),
|
|
90
|
+
rangePt: MENU_TRIGGER_FOLLOW.rangePt,
|
|
91
|
+
responseMs: MENU_TRIGGER_FOLLOW.responseMs,
|
|
92
|
+
});
|
|
93
|
+
const BUTTON_LIGHT = Object.freeze({
|
|
94
|
+
kind: 'whole',
|
|
95
|
+
light: [
|
|
96
|
+
[0, 0],
|
|
97
|
+
[17, 0.65],
|
|
98
|
+
[50, 0.9],
|
|
99
|
+
],
|
|
100
|
+
dark: [
|
|
101
|
+
[0, 0],
|
|
102
|
+
[17, 0.07],
|
|
103
|
+
[50, 0.22],
|
|
104
|
+
[167, 0.25],
|
|
105
|
+
],
|
|
106
|
+
releaseMs: { light: 500, dark: 240 },
|
|
107
|
+
});
|
|
108
|
+
const BAR_LABEL = Object.freeze({
|
|
109
|
+
light: [
|
|
110
|
+
[0, 1],
|
|
111
|
+
[17, 0.35],
|
|
112
|
+
[50, 0],
|
|
113
|
+
],
|
|
114
|
+
dark: [
|
|
115
|
+
[0, 1],
|
|
116
|
+
[8, 0.7],
|
|
117
|
+
[50, 1],
|
|
118
|
+
],
|
|
119
|
+
});
|
|
120
|
+
const POSE_LIMITS = { maxOffset: 8, maxSizeChange: 12 };
|
|
121
|
+
/** The contact kind of an interactive glass material. */
|
|
122
|
+
export function glassContactKind(material) {
|
|
123
|
+
return material.press ?? (material.field ? 'field' : 'surface');
|
|
124
|
+
}
|
|
125
|
+
export const GLASS_CONTACT_PHYSICS = {
|
|
126
|
+
button: {
|
|
127
|
+
growthPt: 16,
|
|
128
|
+
follow: BUTTON_FOLLOW,
|
|
129
|
+
strain: MENU_STRAIN,
|
|
130
|
+
...POSE_LIMITS,
|
|
131
|
+
light: BUTTON_LIGHT,
|
|
132
|
+
label: { light: 'steady', dark: 'steady' },
|
|
133
|
+
},
|
|
134
|
+
bar: {
|
|
135
|
+
// Toolbar Save: 69 x 44 → 85 x 54 pt held.
|
|
136
|
+
growthPt: 16,
|
|
137
|
+
follow: BUTTON_FOLLOW,
|
|
138
|
+
strain: MENU_STRAIN,
|
|
139
|
+
...POSE_LIMITS,
|
|
140
|
+
light: BUTTON_LIGHT,
|
|
141
|
+
label: BAR_LABEL,
|
|
142
|
+
},
|
|
143
|
+
menu: {
|
|
144
|
+
// The stock toolbar Menu's 44 pt circle is 48 pt while held (iPhone 17 Pro Max Simulator,
|
|
145
|
+
// native recording toolbar menu measurements). It trails the finger with the closed Menu
|
|
146
|
+
// trigger's measured law (measured-reference).
|
|
147
|
+
growthPt: 4,
|
|
148
|
+
follow: MENU_TRIGGER_FOLLOW,
|
|
149
|
+
strain: MENU_STRAIN,
|
|
150
|
+
...POSE_LIMITS,
|
|
151
|
+
light: BUTTON_LIGHT,
|
|
152
|
+
// A dark trigger keeps its light glyph at full strength (the ellipsis reads 253 of 255 on
|
|
153
|
+
// its held glass); a light one washes out like a toolbar button's.
|
|
154
|
+
label: { light: BAR_LABEL.light, dark: 'steady' },
|
|
155
|
+
},
|
|
156
|
+
field: {
|
|
157
|
+
// Native glass TextField (iPad, iPadOS 27, native-contact-catalog): held, the field is 8 pt
|
|
158
|
+
// wider in two captures by two methods: `glass-field` envelope 609 → 616-618 pt over four
|
|
159
|
+
// holds, `glass-field-quiet` rim 587 → 595 pt (cadence VALID). Twice a card's growth.
|
|
160
|
+
growthPt: 8,
|
|
161
|
+
follow: MENU_TRIGGER_FOLLOW,
|
|
162
|
+
strain: MENU_STRAIN,
|
|
163
|
+
...POSE_LIMITS,
|
|
164
|
+
light: { kind: 'finger', scale: 0.26, floor: 0.033, menuPeak: 0.175 },
|
|
165
|
+
label: { light: 'steady', dark: 'steady' },
|
|
166
|
+
},
|
|
167
|
+
surface: {
|
|
168
|
+
// A 404 pt card grows to 408-410 pt; a 160 pt circle to 164 pt (Simulator, Sep 25).
|
|
169
|
+
growthPt: 4,
|
|
170
|
+
// Native App-defined card (iPad, Oct 12): ~1.5 pt for a 60 pt drag, the trigger's law.
|
|
171
|
+
follow: MENU_TRIGGER_FOLLOW,
|
|
172
|
+
strain: MENU_STRAIN,
|
|
173
|
+
...POSE_LIMITS,
|
|
174
|
+
// Native dark card: 46 under the finger and 36 elsewhere while held, over 29 at rest (a
|
|
175
|
+
// white mix of ~0.075 at the touch and ~0.033 across the shape); the menu field peaks at
|
|
176
|
+
// ~0.175, so a surface's light is 0.26 of it over a 0.033 floor.
|
|
177
|
+
light: { kind: 'finger', scale: 0.26, floor: 0.033, menuPeak: 0.175 },
|
|
178
|
+
label: { light: 'steady', dark: 'steady' },
|
|
179
|
+
},
|
|
180
|
+
segmented: {
|
|
181
|
+
// The search scope bar, pressed anywhere (stock `.searchScopes`, iPhone 17 Pro Max Simulator,
|
|
182
|
+
// iOS 27.0, held 1.2 s; measured scope thumb, Oct 13): the 400 pt bar is 416 pt wide and keeps its
|
|
183
|
+
// 36 pt height, and its labels and pill grow by the same 1.04 about the bar's centre
|
|
184
|
+
// (webgpu/selectionThumb.ts applies both). The bar holds its place under the finger.
|
|
185
|
+
growthPt: 16,
|
|
186
|
+
follow: { ...MENU_TRIGGER_FOLLOW, gainX: 0, gainY: 0 },
|
|
187
|
+
strain: MENU_STRAIN,
|
|
188
|
+
...POSE_LIMITS,
|
|
189
|
+
// Dark, over 31 at rest: 44 across the bar and 67 at the finger (a white mix of 0.058 and
|
|
190
|
+
// 0.16), about twice a card's light.
|
|
191
|
+
light: { kind: 'finger', scale: 0.59, floor: 0.058, menuPeak: 0.175 },
|
|
192
|
+
label: { light: 'steady', dark: 'steady' },
|
|
193
|
+
},
|
|
194
|
+
};
|
|
195
|
+
/**
|
|
196
|
+
* Track thumbs: a Toggle's or a Slider's thumb is a lens on a track. Its finger arrives through
|
|
197
|
+
* the same GlassContact as every interactive glass (glassContact.ts); its response differs from a
|
|
198
|
+
* free shape's in ways native shows, so it has its own rows:
|
|
199
|
+
*
|
|
200
|
+
* - Follow: the thumb follows the finger 1:1 along its track, clamped to the travel's ends (the
|
|
201
|
+
* value moves with it), and never leaves the track. A free shape trails the finger by ~1% of the
|
|
202
|
+
* drag (follow gains above). Native catalog `toggle-thumb-quiet` / `slider-thumb-quiet` (iPad,
|
|
203
|
+
* cadence VALID): the held lens rides the finger to the ends; across the track it moves ≤1.4 pt.
|
|
204
|
+
* - Growth: the white thumb lifts into a clear lens after a stationary hold of `activationMs`, or
|
|
205
|
+
* as soon as it drags, with the control's own springs (CONTROL_LIFT); a free shape grows at
|
|
206
|
+
* touch-down.
|
|
207
|
+
* - Light: none. The lens is clear; the track shows through it.
|
|
208
|
+
* - A gesture that claims the touch before the thumb drags (a vertical scroll) cancels it; once it
|
|
209
|
+
* drags the thumb keeps the finger (GlassContactOptions.yieldsTo).
|
|
210
|
+
*
|
|
211
|
+
* The page owns a thumb's value, so its response model runs in the document (toggleContact.ts,
|
|
212
|
+
* sliderContact.ts) and the renderer draws the lens it is sent (ControlLens). Values live in
|
|
213
|
+
* lens/controlLift.ts (CONTROL_LIFT, ControlLiftKind) beside the scope bar's selection lens.
|
|
214
|
+
*/
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { GlassAccessibilityPreferences, GlassCapabilityDecision, GlassRenderTestState } from './capability.js';
|
|
2
|
+
import type { GlassVariant } from './tokens.js';
|
|
3
|
+
export type GlassMaterialDiagnostics = Readonly<{
|
|
4
|
+
accessibility: GlassAccessibilityPreferences;
|
|
5
|
+
capability: GlassCapabilityDecision;
|
|
6
|
+
lensBoost: number;
|
|
7
|
+
mapRegenerationCount: number;
|
|
8
|
+
renderTest: GlassRenderTestState;
|
|
9
|
+
}>;
|
|
10
|
+
export type GlassRegionRegistration = Readonly<{
|
|
11
|
+
element: HTMLElement;
|
|
12
|
+
id: string;
|
|
13
|
+
radius: number;
|
|
14
|
+
variant: GlassVariant;
|
|
15
|
+
}>;
|
|
16
|
+
export type GlassMaterialContextValue = Readonly<{
|
|
17
|
+
chromeLayer: HTMLElement | null;
|
|
18
|
+
diagnostics: GlassMaterialDiagnostics;
|
|
19
|
+
registerRegion: (registration: GlassRegionRegistration) => () => void;
|
|
20
|
+
}>;
|
|
21
|
+
export declare const GlassMaterialContext: import("react").Context<Readonly<{
|
|
22
|
+
chromeLayer: HTMLElement | null;
|
|
23
|
+
diagnostics: GlassMaterialDiagnostics;
|
|
24
|
+
registerRegion: (registration: GlassRegionRegistration) => () => void;
|
|
25
|
+
}> | null>;
|
|
26
|
+
export declare function useGlassMaterialContext(): Readonly<{
|
|
27
|
+
chromeLayer: HTMLElement | null;
|
|
28
|
+
diagnostics: GlassMaterialDiagnostics;
|
|
29
|
+
registerRegion: (registration: GlassRegionRegistration) => () => void;
|
|
30
|
+
}>;
|
|
31
|
+
export declare function useGlassMaterialDiagnostics(): Readonly<{
|
|
32
|
+
accessibility: GlassAccessibilityPreferences;
|
|
33
|
+
capability: GlassCapabilityDecision;
|
|
34
|
+
lensBoost: number;
|
|
35
|
+
mapRegenerationCount: number;
|
|
36
|
+
renderTest: GlassRenderTestState;
|
|
37
|
+
}>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { createContext, useContext } from 'react';
|
|
2
|
+
export const GlassMaterialContext = createContext(null);
|
|
3
|
+
export function useGlassMaterialContext() {
|
|
4
|
+
const value = useContext(GlassMaterialContext);
|
|
5
|
+
if (!value)
|
|
6
|
+
throw new Error('Glass primitives must be rendered inside SatinRoot.');
|
|
7
|
+
return value;
|
|
8
|
+
}
|
|
9
|
+
export function useGlassMaterialDiagnostics() {
|
|
10
|
+
return useGlassMaterialContext().diagnostics;
|
|
11
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type GlassError } from './errors.js';
|
|
2
|
+
/** One entry per distinct failure: a cause that propagates through several stages
|
|
3
|
+
* (worker → startup → runtime) is listed once, with every stage it reached. */
|
|
4
|
+
export declare function formatGlassErrors(errors: readonly GlassError[]): string;
|
|
5
|
+
/** Strict builds retain the loud error surface; release apps retain diagnostics only. */
|
|
6
|
+
export declare function installGlassErrorAlert(): void;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { automaticGlassFallbackAllowed } from './failurePolicy.js';
|
|
2
|
+
import { getGlassErrors, subscribeGlassErrors } from './errors.js';
|
|
3
|
+
let installed = false;
|
|
4
|
+
/** One entry per distinct failure: a cause that propagates through several stages
|
|
5
|
+
* (worker → startup → runtime) is listed once, with every stage it reached. */
|
|
6
|
+
export function formatGlassErrors(errors) {
|
|
7
|
+
const cause = (message) => message.replace(/^(Error: )+/, '');
|
|
8
|
+
const groups = new Map();
|
|
9
|
+
for (const error of errors) {
|
|
10
|
+
if (error.transient)
|
|
11
|
+
continue;
|
|
12
|
+
const key = JSON.stringify([error.code, cause(error.message), error.reason]);
|
|
13
|
+
const group = groups.get(key) ?? {
|
|
14
|
+
code: error.code,
|
|
15
|
+
message: cause(error.message),
|
|
16
|
+
reason: error.reason,
|
|
17
|
+
stages: [],
|
|
18
|
+
};
|
|
19
|
+
if (!group.stages.includes(error.stage))
|
|
20
|
+
group.stages.push(error.stage);
|
|
21
|
+
groups.set(key, group);
|
|
22
|
+
}
|
|
23
|
+
return [...groups.values()]
|
|
24
|
+
.map(g => `Glass failed — ${g.code} — ${g.stages.join(' → ')}\n${g.message}${g.reason ? '\nReason: ' + g.reason : ''}`)
|
|
25
|
+
.join('\n\n');
|
|
26
|
+
}
|
|
27
|
+
/** Strict builds retain the loud error surface; release apps retain diagnostics only. */
|
|
28
|
+
export function installGlassErrorAlert() {
|
|
29
|
+
if (installed || typeof document === 'undefined' || automaticGlassFallbackAllowed())
|
|
30
|
+
return;
|
|
31
|
+
installed = true;
|
|
32
|
+
const paint = () => {
|
|
33
|
+
const errors = getGlassErrors().filter(error => !error.transient);
|
|
34
|
+
if (!errors.length)
|
|
35
|
+
return;
|
|
36
|
+
if (document.getElementById('satin-launch-error')) {
|
|
37
|
+
document.querySelector(':root > pre[data-satin-glass-error]')?.remove();
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
// Only this alert (a child of <html>): SatinRoot's launch-failure screen also carries
|
|
41
|
+
// data-satin-glass-error, and writing textContent there would erase its React tree.
|
|
42
|
+
let panel = document.querySelector(':root > pre[data-satin-glass-error]');
|
|
43
|
+
// Loud but never modal: it must not swallow taps on the navigation bar and tabs it
|
|
44
|
+
// covers, or the only way to keep using the app is to hide it.
|
|
45
|
+
if (!panel) {
|
|
46
|
+
panel = document.createElement('pre');
|
|
47
|
+
panel.dataset.satinGlassError = 'true';
|
|
48
|
+
panel.setAttribute('role', 'alert');
|
|
49
|
+
panel.style.cssText =
|
|
50
|
+
'position:fixed;inset:max(16px,env(safe-area-inset-top)) 16px auto;margin:0;z-index:2147483647;max-height:70%;overflow:auto;padding:16px;background:#380b0b;color:white;white-space:pre-wrap;font:14px/1.5 monospace;pointer-events:none';
|
|
51
|
+
document.documentElement.append(panel);
|
|
52
|
+
}
|
|
53
|
+
panel.textContent = formatGlassErrors(errors);
|
|
54
|
+
};
|
|
55
|
+
subscribeGlassErrors(paint);
|
|
56
|
+
paint();
|
|
57
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/** Serializable across the renderer worker boundary. Release failures may select the fallback material. */
|
|
2
|
+
export type GlassErrorCode = 'gpu-unavailable' | 'adapter-unavailable' | 'device-request' | 'context-configure' | 'device-lost' | 'validation' | 'out-of-memory' | 'shader-compilation' | 'worker-startup' | 'readiness-timeout' | 'presentation' | 'unsupported-configuration';
|
|
3
|
+
export type GlassError = Readonly<{
|
|
4
|
+
code: GlassErrorCode;
|
|
5
|
+
message: string;
|
|
6
|
+
stage: string;
|
|
7
|
+
reason?: string;
|
|
8
|
+
at: number;
|
|
9
|
+
/** Null adapters can recover on the next foreground burst; history is diagnostic. */
|
|
10
|
+
transient?: true;
|
|
11
|
+
/** The owner still has a bounded recovery attempt in flight. */
|
|
12
|
+
recovering?: true;
|
|
13
|
+
}>;
|
|
14
|
+
export declare function subscribeGlassFallback(listener: () => void): () => void;
|
|
15
|
+
/** Successful resource reconstruction can retire only an adapter-outage fallback. */
|
|
16
|
+
export declare function setGlassAdapterRecovery(pending: boolean): void;
|
|
17
|
+
export declare function glassFallbackRequired(): boolean;
|
|
18
|
+
export declare function reportGlassError(code: GlassErrorCode, cause: unknown, stage: string, reason?: string, recovery?: {
|
|
19
|
+
recovering: boolean;
|
|
20
|
+
}): GlassError;
|
|
21
|
+
export declare function subscribeGlassErrors(listener: (error: GlassError) => void): () => void;
|
|
22
|
+
export declare function getGlassErrors(): readonly GlassError[];
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { automaticGlassFallbackAllowed, strictGlassRequested } from './failurePolicy.js';
|
|
2
|
+
import { recordGraphicsEvent } from '../graphicsProbe.js';
|
|
3
|
+
const history = [];
|
|
4
|
+
// Independent of diagnostic history. Only a reconstructed adapter outage can clear fallback.
|
|
5
|
+
let fallbackRequired = false;
|
|
6
|
+
let permanentFallback = false;
|
|
7
|
+
let adapterRecoveryPending = false;
|
|
8
|
+
const fallbackListeners = new Set();
|
|
9
|
+
export function subscribeGlassFallback(listener) {
|
|
10
|
+
fallbackListeners.add(listener);
|
|
11
|
+
return () => {
|
|
12
|
+
fallbackListeners.delete(listener);
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
/** Successful resource reconstruction can retire only an adapter-outage fallback. */
|
|
16
|
+
export function setGlassAdapterRecovery(pending) {
|
|
17
|
+
adapterRecoveryPending = pending;
|
|
18
|
+
if (!pending && fallbackRequired && !permanentFallback) {
|
|
19
|
+
fallbackRequired = false;
|
|
20
|
+
for (const listener of fallbackListeners)
|
|
21
|
+
listener();
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
export function glassFallbackRequired() {
|
|
25
|
+
return fallbackRequired;
|
|
26
|
+
}
|
|
27
|
+
const listeners = new Set();
|
|
28
|
+
export function reportGlassError(code, cause, stage, reason, recovery) {
|
|
29
|
+
// GPUError objects are not required to inherit from JavaScript Error.
|
|
30
|
+
const message = cause instanceof Error
|
|
31
|
+
? `${cause.name}: ${cause.message}`
|
|
32
|
+
: cause !== null && typeof cause === 'object' && 'message' in cause
|
|
33
|
+
? String(cause.message)
|
|
34
|
+
: String(cause);
|
|
35
|
+
const transient = code === 'adapter-unavailable' &&
|
|
36
|
+
!strictGlassRequested() &&
|
|
37
|
+
message.includes('navigator.gpu.requestAdapter returned null');
|
|
38
|
+
const error = {
|
|
39
|
+
code,
|
|
40
|
+
message,
|
|
41
|
+
stage,
|
|
42
|
+
reason,
|
|
43
|
+
at: Date.now(),
|
|
44
|
+
...(recovery?.recovering ? { recovering: true } : {}),
|
|
45
|
+
...(transient ? { transient: true } : {}),
|
|
46
|
+
};
|
|
47
|
+
recordGraphicsEvent('glass-error', { ...error });
|
|
48
|
+
history.push(error);
|
|
49
|
+
if (history.length > 100)
|
|
50
|
+
history.shift();
|
|
51
|
+
const release = automaticGlassFallbackAllowed();
|
|
52
|
+
if (release && !error.recovering) {
|
|
53
|
+
if (!adapterRecoveryPending || (code !== 'adapter-unavailable' && code !== 'readiness-timeout'))
|
|
54
|
+
permanentFallback = true;
|
|
55
|
+
fallbackRequired = true;
|
|
56
|
+
for (const listener of fallbackListeners)
|
|
57
|
+
listener();
|
|
58
|
+
}
|
|
59
|
+
// Exhausted null-adapter bursts remain retryable in strict development. Release
|
|
60
|
+
// apps use CSS now; they must not wait for another foreground event to launch.
|
|
61
|
+
if (transient && !release)
|
|
62
|
+
return error;
|
|
63
|
+
console.error(`[Satin glass: ${code}] ${stage}: ${error.message}`, reason ?? '');
|
|
64
|
+
if (typeof window !== 'undefined')
|
|
65
|
+
window.dispatchEvent(new CustomEvent('satin-glass-error', { detail: error }));
|
|
66
|
+
for (const listener of listeners)
|
|
67
|
+
listener(error);
|
|
68
|
+
return error;
|
|
69
|
+
}
|
|
70
|
+
export function subscribeGlassErrors(listener) {
|
|
71
|
+
listeners.add(listener);
|
|
72
|
+
return () => {
|
|
73
|
+
listeners.delete(listener);
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
export function getGlassErrors() {
|
|
77
|
+
return history.slice();
|
|
78
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/** Explicit strict glass always wins, even over an explicit fallback request. */
|
|
2
|
+
export declare function strictGlassRequested(): boolean;
|
|
3
|
+
/** Release apps keep working. Development and test modes never demote implicitly. */
|
|
4
|
+
export declare function automaticGlassFallbackAllowed(): boolean;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/** Explicit strict glass always wins, even over an explicit fallback request. */
|
|
2
|
+
export function strictGlassRequested() {
|
|
3
|
+
if (import.meta.env.SATIN_STRICT_GLASS === true || import.meta.env.SATIN_STRICT_GLASS === '1')
|
|
4
|
+
return true;
|
|
5
|
+
if (typeof document === 'undefined')
|
|
6
|
+
return false;
|
|
7
|
+
const query = new URLSearchParams(window.location.search).get('glass');
|
|
8
|
+
const attribute = document.documentElement.dataset.satinGlass;
|
|
9
|
+
return (query === 'strict' ||
|
|
10
|
+
attribute === 'strict' ||
|
|
11
|
+
query === 'webgpu' ||
|
|
12
|
+
(query === null && attribute === 'webgpu'));
|
|
13
|
+
}
|
|
14
|
+
/** Release apps keep working. Development and test modes never demote implicitly. */
|
|
15
|
+
export function automaticGlassFallbackAllowed() {
|
|
16
|
+
return (import.meta.env.DEV === false &&
|
|
17
|
+
import.meta.env.MODE !== 'test' &&
|
|
18
|
+
typeof document !== 'undefined' &&
|
|
19
|
+
!strictGlassRequested());
|
|
20
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { SurfaceRenderSpec } from '../renderSpecs.js';
|
|
2
|
+
/** CSS owns backdrop sampling, including video that cannot be read into a GPU texture. */
|
|
3
|
+
export declare class FallbackMaterial {
|
|
4
|
+
readonly element: HTMLDivElement;
|
|
5
|
+
private parts;
|
|
6
|
+
private animations;
|
|
7
|
+
constructor(host: HTMLElement);
|
|
8
|
+
private shapes;
|
|
9
|
+
private frame;
|
|
10
|
+
private ensure;
|
|
11
|
+
paint(spec: SurfaceRenderSpec, appearance: 'light' | 'dark'): void;
|
|
12
|
+
/** A sampled track is submitted once. Width/radius may paint, but never need a JS frame loop. */
|
|
13
|
+
play(specs: readonly SurfaceRenderSpec[], duration: number, at: number, appearance: 'light' | 'dark'): Promise<void>;
|
|
14
|
+
private cancel;
|
|
15
|
+
dispose(): void;
|
|
16
|
+
}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { animateElement } from '../../motion/animate.js';
|
|
2
|
+
/** CSS owns backdrop sampling, including video that cannot be read into a GPU texture. */
|
|
3
|
+
export class FallbackMaterial {
|
|
4
|
+
element = document.createElement('div');
|
|
5
|
+
parts = [];
|
|
6
|
+
animations = [];
|
|
7
|
+
constructor(host) {
|
|
8
|
+
this.element.dataset.satinFallbackMaterial = 'true';
|
|
9
|
+
this.element.setAttribute('aria-hidden', 'true');
|
|
10
|
+
this.element.style.cssText =
|
|
11
|
+
'position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:visible;';
|
|
12
|
+
host.prepend(this.element);
|
|
13
|
+
}
|
|
14
|
+
shapes(spec) {
|
|
15
|
+
return (spec.shape.members ?? [spec.shape.first, ...(spec.shape.second ? [spec.shape.second] : [])]);
|
|
16
|
+
}
|
|
17
|
+
frame(shape, spec) {
|
|
18
|
+
return {
|
|
19
|
+
transform: `translate3d(${spec.frameX + shape.centerX - shape.halfWidth}px,${spec.frameY + shape.centerY - shape.halfHeight}px,0)`,
|
|
20
|
+
width: `${Math.max(0, shape.halfWidth * 2)}px`,
|
|
21
|
+
height: `${Math.max(0, shape.halfHeight * 2)}px`,
|
|
22
|
+
borderRadius: `${shape.radius}px ${shape.radius}px ${shape.bottomRadius ?? shape.radius}px ${shape.bottomRadius ?? shape.radius}px`,
|
|
23
|
+
opacity: spec.restHidden ? 0 : (spec.opacity ?? 1),
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
ensure(count, appearance, spec) {
|
|
27
|
+
while (this.parts.length > count)
|
|
28
|
+
this.parts.pop().remove();
|
|
29
|
+
while (this.parts.length < count) {
|
|
30
|
+
const part = document.createElement('div');
|
|
31
|
+
part.style.cssText =
|
|
32
|
+
'position:absolute;left:0;top:0;box-sizing:border-box;pointer-events:none;';
|
|
33
|
+
this.element.append(part);
|
|
34
|
+
this.parts.push(part);
|
|
35
|
+
}
|
|
36
|
+
const reduced = matchMedia('(prefers-reduced-transparency: reduce)').matches;
|
|
37
|
+
const dark = appearance === 'dark';
|
|
38
|
+
const tint = spec.tint;
|
|
39
|
+
const background = tint
|
|
40
|
+
? `rgba(${tint[0] * 255},${tint[1] * 255},${tint[2] * 255},${tint[3]})`
|
|
41
|
+
: dark
|
|
42
|
+
? `rgba(35,35,38,${reduced ? 1 : 0.68})`
|
|
43
|
+
: `rgba(250,250,252,${reduced ? 1 : 0.58})`;
|
|
44
|
+
for (const part of this.parts) {
|
|
45
|
+
part.style.background = background;
|
|
46
|
+
part.style.backdropFilter = reduced
|
|
47
|
+
? 'none'
|
|
48
|
+
: `blur(${spec.variant === 'clear' ? 4 : 18}px) saturate(1.4)`;
|
|
49
|
+
part.style.setProperty('-webkit-backdrop-filter', part.style.backdropFilter);
|
|
50
|
+
part.style.boxShadow = `inset 0 0 0 0.5px rgba(255,255,255,${dark ? 0.25 : 0.7}),0 2px 10px rgba(0,0,0,0.08)`;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
paint(spec, appearance) {
|
|
54
|
+
this.cancel();
|
|
55
|
+
const shapes = this.shapes(spec);
|
|
56
|
+
this.ensure(shapes.length, appearance, spec);
|
|
57
|
+
shapes.forEach((shape, index) => Object.assign(this.parts[index].style, this.frame(shape, spec)));
|
|
58
|
+
}
|
|
59
|
+
/** A sampled track is submitted once. Width/radius may paint, but never need a JS frame loop. */
|
|
60
|
+
play(specs, duration, at, appearance) {
|
|
61
|
+
this.paint(specs[specs.length - 1], appearance);
|
|
62
|
+
const count = Math.max(...specs.map(spec => this.shapes(spec).length));
|
|
63
|
+
this.ensure(count, appearance, specs[specs.length - 1]);
|
|
64
|
+
this.parts.forEach((part, index) => {
|
|
65
|
+
const frames = specs.map((spec, sample) => {
|
|
66
|
+
const shape = this.shapes(spec)[index];
|
|
67
|
+
return {
|
|
68
|
+
offset: sample / (specs.length - 1),
|
|
69
|
+
...(shape ? this.frame(shape, spec) : { opacity: 0 }),
|
|
70
|
+
};
|
|
71
|
+
});
|
|
72
|
+
const animation = animateElement(part, frames, { duration, easing: 'linear', fill: 'both' });
|
|
73
|
+
animation.startTime = at;
|
|
74
|
+
this.animations.push(animation);
|
|
75
|
+
});
|
|
76
|
+
return Promise.all(this.animations.map(animation => animation.finished)).then(() => { }, () => { });
|
|
77
|
+
}
|
|
78
|
+
cancel() {
|
|
79
|
+
for (const animation of this.animations)
|
|
80
|
+
animation.cancel();
|
|
81
|
+
this.animations = [];
|
|
82
|
+
}
|
|
83
|
+
dispose() {
|
|
84
|
+
this.cancel();
|
|
85
|
+
this.element.remove();
|
|
86
|
+
}
|
|
87
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { GlassRegionRegistry } from '../regionRegistry.js';
|
|
2
|
+
/** Registered DOM owners already follow scroll, sheets and navigation on the compositor. */
|
|
3
|
+
export declare class FallbackRegions {
|
|
4
|
+
private entries;
|
|
5
|
+
private unsubscribe;
|
|
6
|
+
private frame;
|
|
7
|
+
private commitFrame;
|
|
8
|
+
private disposed;
|
|
9
|
+
private registry;
|
|
10
|
+
private appearance;
|
|
11
|
+
constructor(registry: GlassRegionRegistry | undefined, appearance: 'light' | 'dark');
|
|
12
|
+
private schedule;
|
|
13
|
+
setAppearance(appearance: 'light' | 'dark'): void;
|
|
14
|
+
refresh(): void;
|
|
15
|
+
dispose(): void;
|
|
16
|
+
}
|