@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,64 @@
|
|
|
1
|
+
/** Sequential native frames bracket contact at 4.50–5.04, 9.23–10.57,
|
|
2
|
+
* 18.53–20.94, 36.56–41.92 pt. See phase-morph-engine-notes.md.
|
|
3
|
+
* Polynomial smooth-min joins equal members at gap = k/2. */
|
|
4
|
+
export function glassBlendRadius(spacing) {
|
|
5
|
+
if (!Number.isFinite(spacing) || spacing < 0)
|
|
6
|
+
throw Error('Glass container spacing must be finite and nonnegative.');
|
|
7
|
+
return Math.max(0, spacing - 0.5);
|
|
8
|
+
}
|
|
9
|
+
export function roundedRectDistance(x, y, s) {
|
|
10
|
+
const qx = Math.abs(x - s.centerX) - s.halfWidth + s.radius, qy = Math.abs(y - s.centerY) - s.halfHeight + s.radius;
|
|
11
|
+
return Math.min(Math.max(qx, qy), 0) + Math.hypot(Math.max(qx, 0), Math.max(qy, 0)) - s.radius;
|
|
12
|
+
}
|
|
13
|
+
export function smoothMinimum(a, b, k) {
|
|
14
|
+
if (k <= 0)
|
|
15
|
+
return Math.min(a, b);
|
|
16
|
+
const h = Math.max(k - Math.abs(a - b), 0) / k;
|
|
17
|
+
return Math.min(a, b) - h * h * k * 0.25;
|
|
18
|
+
}
|
|
19
|
+
// Fitted against native 2-pt-gap necks (20/32/45.33/61.33 pt).
|
|
20
|
+
// Opposing normals retain full reach; parallel normals preserve member edges.
|
|
21
|
+
// The angle scales the blend radius itself (a spatially varying smooth minimum), which keeps
|
|
22
|
+
// the union C1 across the members' bisector. Scaling only the correction term left part of
|
|
23
|
+
// min()'s kink: a V-shaped waist and a lighting seam (native, merge-sweep-40: a U-shaped waist).
|
|
24
|
+
export const GLASS_BLEND_ANGLE_POWER = 1;
|
|
25
|
+
/** One smooth-union step: the running field `d` (normal `n`) with member distance `b` (normal `nb`). */
|
|
26
|
+
export function glassFieldJoin(d, n, b, nb, blendRadius) {
|
|
27
|
+
const angle = Math.pow(Math.max(0, Math.min(1, (1 - n[0] * nb[0] - n[1] * nb[1]) / 2)), GLASS_BLEND_ANGLE_POWER);
|
|
28
|
+
const k = blendRadius * angle;
|
|
29
|
+
if (k <= 1e-4)
|
|
30
|
+
return b < d ? { distance: b, normal: nb } : { distance: d, normal: n };
|
|
31
|
+
const h = Math.max(k - Math.abs(d - b), 0) / k;
|
|
32
|
+
const weight = Math.max(0, Math.min(1, 0.5 + (d - b) / (2 * k)));
|
|
33
|
+
const nx = n[0] * (1 - weight) + nb[0] * weight, ny = n[1] * (1 - weight) + nb[1] * weight, length = Math.hypot(nx, ny);
|
|
34
|
+
return {
|
|
35
|
+
distance: Math.min(d, b) - h * h * k * 0.25,
|
|
36
|
+
normal: length ? [nx / length, ny / length] : [0, 0],
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
export function roundedRectNormal(x, y, s) {
|
|
40
|
+
const dx = x - s.centerX, dy = y - s.centerY, qx = Math.abs(dx) - s.halfWidth + s.radius, qy = Math.abs(dy) - s.halfHeight + s.radius;
|
|
41
|
+
let nx = Math.max(qx, 0) * Math.sign(dx), ny = Math.max(qy, 0) * Math.sign(dy);
|
|
42
|
+
if (qx <= 0 && qy <= 0) {
|
|
43
|
+
nx = qx >= qy ? Math.sign(dx) : 0;
|
|
44
|
+
ny = qx >= qy ? 0 : Math.sign(dy);
|
|
45
|
+
}
|
|
46
|
+
const length = Math.hypot(nx, ny);
|
|
47
|
+
return length ? [nx / length, ny / length] : [0, 0];
|
|
48
|
+
}
|
|
49
|
+
/** Returns the signed distance to the diagnostic glass union in points. */
|
|
50
|
+
export function glassFieldDistance(x, y, members, blendRadius) {
|
|
51
|
+
let d = Infinity, n = [0, 0];
|
|
52
|
+
for (const s of members) {
|
|
53
|
+
const b = roundedRectDistance(x, y, s), nb = roundedRectNormal(x, y, s);
|
|
54
|
+
if (!Number.isFinite(d)) {
|
|
55
|
+
d = b;
|
|
56
|
+
n = nb;
|
|
57
|
+
continue;
|
|
58
|
+
}
|
|
59
|
+
const joined = glassFieldJoin(d, n, b, nb, blendRadius);
|
|
60
|
+
d = joined.distance;
|
|
61
|
+
n = joined.normal;
|
|
62
|
+
}
|
|
63
|
+
return d;
|
|
64
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { CapsuleShape } from './renderSpecs.js';
|
|
2
|
+
/** A unit-mass spring: stiffness and damping per second squared and per second. */
|
|
3
|
+
export type FieldSpring = Readonly<{
|
|
4
|
+
stiffness: number;
|
|
5
|
+
damping: number;
|
|
6
|
+
}>;
|
|
7
|
+
/** The shared measured field spring (mass 1). Members with their own native fit pass a profile. */
|
|
8
|
+
export declare const FIELD_SPRING: FieldSpring;
|
|
9
|
+
export declare const FIELD_MOTION_DURATION = 1000;
|
|
10
|
+
export declare const ZERO_FIELD_VELOCITY: CapsuleShape;
|
|
11
|
+
/** Exact underdamped spring, including the velocity at a retarget boundary (units / second). */
|
|
12
|
+
export declare function sampleFieldAxis(from: number, to: number, velocity: number, elapsedMs: number, spring?: FieldSpring): {
|
|
13
|
+
value: number;
|
|
14
|
+
velocity: number;
|
|
15
|
+
};
|
|
16
|
+
export declare function sampleFieldMember(from: CapsuleShape, to: CapsuleShape, velocity: CapsuleShape, elapsedMs: number, reducedMotion?: boolean): {
|
|
17
|
+
value: {
|
|
18
|
+
centerX: number;
|
|
19
|
+
centerY: number;
|
|
20
|
+
halfHeight: number;
|
|
21
|
+
halfWidth: number;
|
|
22
|
+
radius: number;
|
|
23
|
+
bottomRadius?: number;
|
|
24
|
+
};
|
|
25
|
+
velocity: {
|
|
26
|
+
centerX: number;
|
|
27
|
+
centerY: number;
|
|
28
|
+
halfHeight: number;
|
|
29
|
+
halfWidth: number;
|
|
30
|
+
radius: number;
|
|
31
|
+
bottomRadius?: number;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
/** Follow a moving layout target without changing the spring's elapsed time or residual. */
|
|
35
|
+
export declare function followFieldTarget(from: CapsuleShape, oldTarget: CapsuleShape, target: CapsuleShape): {
|
|
36
|
+
centerX: number;
|
|
37
|
+
centerY: number;
|
|
38
|
+
halfHeight: number;
|
|
39
|
+
halfWidth: number;
|
|
40
|
+
radius: number;
|
|
41
|
+
bottomRadius?: number;
|
|
42
|
+
};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/** The shared measured field spring (mass 1). Members with their own native fit pass a profile. */
|
|
2
|
+
export const FIELD_SPRING = { stiffness: 186.57, damping: 25.13 };
|
|
3
|
+
const axes = ['centerX', 'centerY', 'halfWidth', 'halfHeight', 'radius'];
|
|
4
|
+
export const FIELD_MOTION_DURATION = 1000;
|
|
5
|
+
export const ZERO_FIELD_VELOCITY = {
|
|
6
|
+
centerX: 0,
|
|
7
|
+
centerY: 0,
|
|
8
|
+
halfWidth: 0,
|
|
9
|
+
halfHeight: 0,
|
|
10
|
+
radius: 0,
|
|
11
|
+
};
|
|
12
|
+
/** Exact underdamped spring, including the velocity at a retarget boundary (units / second). */
|
|
13
|
+
export function sampleFieldAxis(from, to, velocity, elapsedMs, spring = FIELD_SPRING) {
|
|
14
|
+
const decay = spring.damping / 2;
|
|
15
|
+
const frequency = Math.sqrt(spring.stiffness - decay * decay);
|
|
16
|
+
const seconds = Math.max(0, elapsedMs) / 1000;
|
|
17
|
+
const displacement = from - to;
|
|
18
|
+
const sineCoefficient = (velocity + decay * displacement) / frequency;
|
|
19
|
+
const cosine = Math.cos(frequency * seconds);
|
|
20
|
+
const sine = Math.sin(frequency * seconds);
|
|
21
|
+
const attenuation = Math.exp(-decay * seconds);
|
|
22
|
+
const residual = displacement * cosine + sineCoefficient * sine;
|
|
23
|
+
return {
|
|
24
|
+
value: to + attenuation * residual,
|
|
25
|
+
velocity: attenuation *
|
|
26
|
+
(-decay * residual + frequency * (-displacement * sine + sineCoefficient * cosine)),
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
export function sampleFieldMember(from, to, velocity, elapsedMs, reducedMotion = false) {
|
|
30
|
+
const value = { ...to };
|
|
31
|
+
const nextVelocity = { ...ZERO_FIELD_VELOCITY };
|
|
32
|
+
if (!reducedMotion && elapsedMs < FIELD_MOTION_DURATION) {
|
|
33
|
+
for (const axis of axes) {
|
|
34
|
+
const sample = sampleFieldAxis(from[axis], to[axis], velocity[axis], elapsedMs);
|
|
35
|
+
value[axis] = sample.value;
|
|
36
|
+
nextVelocity[axis] = sample.velocity;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return { value, velocity: nextVelocity };
|
|
40
|
+
}
|
|
41
|
+
/** Follow a moving layout target without changing the spring's elapsed time or residual. */
|
|
42
|
+
export function followFieldTarget(from, oldTarget, target) {
|
|
43
|
+
const followed = { ...from };
|
|
44
|
+
for (const axis of axes)
|
|
45
|
+
followed[axis] += target[axis] - oldTarget[axis];
|
|
46
|
+
return followed;
|
|
47
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { type OwnedGesture } from '../press/gestureArbitration.js';
|
|
2
|
+
import type { GlassInteraction } from './rendererContract.js';
|
|
3
|
+
/**
|
|
4
|
+
* The one contact path of interactive glass in the document.
|
|
5
|
+
*
|
|
6
|
+
* Every interactive glass surface (glass Buttons of every shape, toolbar items and groups, the
|
|
7
|
+
* back/close/sidebar chrome buttons, menu triggers, text fields, app `Glass.interactive()`
|
|
8
|
+
* surfaces) feeds the renderer through a GlassContact: the glass tracks the physical finger from
|
|
9
|
+
* down to up, and the renderer's InteractiveContact turns it into light, growth, follow, squish
|
|
10
|
+
* and release with the kind's row of GLASS_CONTACT_PHYSICS.
|
|
11
|
+
*
|
|
12
|
+
* The control inside the glass (a Pressable) reads the same physical contact: both see the same
|
|
13
|
+
* pointer events, and a gesture that claims the touch (a scroll, a menu's hold) cancels both
|
|
14
|
+
* through the shared press arbitration (`cancelPointerPressForOwnedGesture`). There is no second
|
|
15
|
+
* path that relays the control's press state to the glass.
|
|
16
|
+
*
|
|
17
|
+
* Like pointer capture, the contact follows its pointer after it leaves the glass (document
|
|
18
|
+
* listeners filtered by pointer id). It never calls `setPointerCapture`: an explicit capture keeps
|
|
19
|
+
* WebKit's control recognizer alive after a scroll view has won the pan.
|
|
20
|
+
*/
|
|
21
|
+
export type GlassContactPhase = GlassInteraction['phase'];
|
|
22
|
+
/**
|
|
23
|
+
* Why a contact ended: the finger lifted (`up`), the browser cancelled the touch (`cancel`), a
|
|
24
|
+
* gesture claimed it (`gesture`: a scroll, a sheet's pan, the back swipe), or the contact was
|
|
25
|
+
* cleared at once (`clear`: window blur, unmount, a new contact).
|
|
26
|
+
*/
|
|
27
|
+
export type GlassContactEnd = 'up' | 'cancel' | 'gesture' | 'clear';
|
|
28
|
+
export type GlassContactOptions = Readonly<{
|
|
29
|
+
/** Sends one input: `point` is the finger in client px (absent at rest and on a cancel); `end`
|
|
30
|
+
* says why a `releasing`/`rest` input ended the contact. */
|
|
31
|
+
send: (phase: GlassContactPhase, point: {
|
|
32
|
+
x: number;
|
|
33
|
+
y: number;
|
|
34
|
+
} | undefined, epoch: number, end?: GlassContactEnd) => void;
|
|
35
|
+
/**
|
|
36
|
+
* Whether a gesture that claims this touch ends the contact. By default every claim does: the
|
|
37
|
+
* glass springs back as the control's tap cancels. A glass button that lets the back swipe
|
|
38
|
+
* through stays pressed while the page moves (native); a Toggle or Slider thumb that is already
|
|
39
|
+
* dragging keeps its finger.
|
|
40
|
+
*/
|
|
41
|
+
yieldsTo?: (owner: OwnedGesture) => boolean;
|
|
42
|
+
/** Thumb controls retain a recognized drag before WebKit cancels pointer delivery.
|
|
43
|
+
* Ordinary glass never claims a native pan. The pointer stream still owns all samples. */
|
|
44
|
+
ownsNativePan?: () => boolean;
|
|
45
|
+
}>;
|
|
46
|
+
export declare class GlassContact {
|
|
47
|
+
private readonly options;
|
|
48
|
+
private pointerId;
|
|
49
|
+
private stopObservingCancellation;
|
|
50
|
+
private listening;
|
|
51
|
+
private handoff;
|
|
52
|
+
private touchTarget;
|
|
53
|
+
private enabledControl;
|
|
54
|
+
private disabledObserver;
|
|
55
|
+
constructor(options: GlassContactOptions);
|
|
56
|
+
get active(): boolean;
|
|
57
|
+
/**
|
|
58
|
+
* A pointer went down on the glass. Starts the contact unless a glass nested inside this one
|
|
59
|
+
* already took the touch, or the pointer is not a primary press. Returns whether it started.
|
|
60
|
+
*/
|
|
61
|
+
down(event: PointerEvent, document: Document, control?: HTMLElement): boolean;
|
|
62
|
+
/** Ends the contact: `releasing` springs back and fades, `rest` clears at once. */
|
|
63
|
+
end(phase: 'releasing' | 'rest', event?: Pick<PointerEvent, 'clientX' | 'clientY'>, cause?: GlassContactEnd): void;
|
|
64
|
+
private send;
|
|
65
|
+
private readonly handleMove;
|
|
66
|
+
private readonly handleUp;
|
|
67
|
+
private readonly handleCancel;
|
|
68
|
+
private disabled;
|
|
69
|
+
private readonly checkEnabled;
|
|
70
|
+
private readonly retainNativePan;
|
|
71
|
+
private owningTouch;
|
|
72
|
+
private readonly handleTouchMove;
|
|
73
|
+
private readonly handleTouchEnd;
|
|
74
|
+
private readonly handleRetirement;
|
|
75
|
+
private readonly handleBlur;
|
|
76
|
+
}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { observePointerPressCancellation, } from '../press/gestureArbitration.js';
|
|
2
|
+
/** Touches already taken by a glass: the innermost interactive glass owns a contact. */
|
|
3
|
+
const claimedEvents = new WeakSet();
|
|
4
|
+
export class GlassContact {
|
|
5
|
+
options;
|
|
6
|
+
pointerId;
|
|
7
|
+
stopObservingCancellation;
|
|
8
|
+
listening;
|
|
9
|
+
handoff;
|
|
10
|
+
touchTarget = null;
|
|
11
|
+
enabledControl;
|
|
12
|
+
disabledObserver;
|
|
13
|
+
constructor(options) {
|
|
14
|
+
this.options = options;
|
|
15
|
+
}
|
|
16
|
+
get active() {
|
|
17
|
+
return this.pointerId !== undefined;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* A pointer went down on the glass. Starts the contact unless a glass nested inside this one
|
|
21
|
+
* already took the touch, or the pointer is not a primary press. Returns whether it started.
|
|
22
|
+
*/
|
|
23
|
+
down(event, document, control) {
|
|
24
|
+
if (!event.isPrimary || event.button !== 0 || event.defaultPrevented)
|
|
25
|
+
return false;
|
|
26
|
+
if (control && this.disabled(control))
|
|
27
|
+
return false;
|
|
28
|
+
if (claimedEvents.has(event))
|
|
29
|
+
return false;
|
|
30
|
+
claimedEvents.add(event);
|
|
31
|
+
this.end('rest');
|
|
32
|
+
this.pointerId = event.pointerId;
|
|
33
|
+
this.listening = document;
|
|
34
|
+
this.touchTarget = event.target;
|
|
35
|
+
if (this.options.ownsNativePan)
|
|
36
|
+
document.addEventListener('touchmove', this.retainNativePan, {
|
|
37
|
+
capture: true,
|
|
38
|
+
passive: false,
|
|
39
|
+
});
|
|
40
|
+
this.enabledControl = control;
|
|
41
|
+
if (control) {
|
|
42
|
+
this.disabledObserver = new MutationObserver(this.checkEnabled);
|
|
43
|
+
this.disabledObserver.observe(control, {
|
|
44
|
+
attributes: true,
|
|
45
|
+
attributeFilter: ['disabled', 'aria-disabled'],
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
document.addEventListener('pointermove', this.handleMove, true);
|
|
49
|
+
document.addEventListener('pointerup', this.handleUp, true);
|
|
50
|
+
document.addEventListener('pointercancel', this.handleCancel, true);
|
|
51
|
+
document.defaultView?.addEventListener('blur', this.handleBlur);
|
|
52
|
+
// A scroll or a menu's hold that claims this touch ends the glass's contact with the
|
|
53
|
+
// control's press: the glass springs back rather than vanishing.
|
|
54
|
+
this.stopObservingCancellation = observePointerPressCancellation(event.pointerId, (owner, handoff) => {
|
|
55
|
+
if (this.options.yieldsTo?.(owner) ?? true) {
|
|
56
|
+
this.end('releasing', undefined, 'gesture');
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
if (owner === 'back-swipe' && handoff && !handoff.retired.aborted) {
|
|
60
|
+
this.handoff?.retired.removeEventListener('abort', this.handleRetirement);
|
|
61
|
+
this.handoff = handoff;
|
|
62
|
+
document.addEventListener('touchmove', this.handleTouchMove, {
|
|
63
|
+
capture: true,
|
|
64
|
+
passive: true,
|
|
65
|
+
});
|
|
66
|
+
document.addEventListener('touchend', this.handleTouchEnd, true);
|
|
67
|
+
document.addEventListener('touchcancel', this.handleTouchEnd, true);
|
|
68
|
+
handoff.retired.addEventListener('abort', this.handleRetirement, { once: true });
|
|
69
|
+
}
|
|
70
|
+
return false;
|
|
71
|
+
});
|
|
72
|
+
this.send('pressed', event);
|
|
73
|
+
return true;
|
|
74
|
+
}
|
|
75
|
+
/** Ends the contact: `releasing` springs back and fades, `rest` clears at once. */
|
|
76
|
+
end(phase, event, cause = phase === 'rest' ? 'clear' : event ? 'up' : 'cancel') {
|
|
77
|
+
if (this.pointerId === undefined)
|
|
78
|
+
return;
|
|
79
|
+
this.pointerId = undefined;
|
|
80
|
+
this.handoff?.retired.removeEventListener('abort', this.handleRetirement);
|
|
81
|
+
this.handoff = undefined;
|
|
82
|
+
this.disabledObserver?.disconnect();
|
|
83
|
+
this.disabledObserver = undefined;
|
|
84
|
+
this.enabledControl = undefined;
|
|
85
|
+
this.stopObservingCancellation?.();
|
|
86
|
+
this.stopObservingCancellation = undefined;
|
|
87
|
+
const document = this.listening;
|
|
88
|
+
this.listening = undefined;
|
|
89
|
+
document?.removeEventListener('touchmove', this.retainNativePan, true);
|
|
90
|
+
this.touchTarget = null;
|
|
91
|
+
document?.removeEventListener('touchmove', this.handleTouchMove, true);
|
|
92
|
+
document?.removeEventListener('touchend', this.handleTouchEnd, true);
|
|
93
|
+
document?.removeEventListener('touchcancel', this.handleTouchEnd, true);
|
|
94
|
+
document?.removeEventListener('pointermove', this.handleMove, true);
|
|
95
|
+
document?.removeEventListener('pointerup', this.handleUp, true);
|
|
96
|
+
document?.removeEventListener('pointercancel', this.handleCancel, true);
|
|
97
|
+
document?.defaultView?.removeEventListener('blur', this.handleBlur);
|
|
98
|
+
this.send(phase, event, cause);
|
|
99
|
+
}
|
|
100
|
+
send(phase, event, end) {
|
|
101
|
+
const point = event ? { x: event.clientX, y: event.clientY } : undefined;
|
|
102
|
+
this.options.send(phase, point, performance.timeOrigin + performance.now(), end);
|
|
103
|
+
}
|
|
104
|
+
handleMove = (event) => {
|
|
105
|
+
this.checkEnabled();
|
|
106
|
+
if (!this.handoff && event.pointerId === this.pointerId)
|
|
107
|
+
this.send('dragging', event);
|
|
108
|
+
};
|
|
109
|
+
handleUp = (event) => {
|
|
110
|
+
if (event.pointerId === this.pointerId)
|
|
111
|
+
this.end('releasing', event);
|
|
112
|
+
};
|
|
113
|
+
handleCancel = (event) => {
|
|
114
|
+
// A cancel's coordinates are not a finger position (WebKit can report 0, 0).
|
|
115
|
+
if (!this.handoff && event.pointerId === this.pointerId)
|
|
116
|
+
this.end('releasing', undefined, 'cancel');
|
|
117
|
+
};
|
|
118
|
+
disabled(control) {
|
|
119
|
+
return control.matches(':disabled') || control.getAttribute('aria-disabled') === 'true';
|
|
120
|
+
}
|
|
121
|
+
checkEnabled = () => {
|
|
122
|
+
if (this.enabledControl && this.disabled(this.enabledControl))
|
|
123
|
+
this.end('rest');
|
|
124
|
+
};
|
|
125
|
+
retainNativePan = (event) => {
|
|
126
|
+
// pan-y alone does not keep iOS WebKit's recognizer from cancelling a horizontal
|
|
127
|
+
// control drag. Claim only the matching, single thumb touch once its model owns it.
|
|
128
|
+
// A back-swipe handoff already belongs to WebKit's scrolling tree and stays native.
|
|
129
|
+
if (this.active &&
|
|
130
|
+
!this.handoff &&
|
|
131
|
+
event.cancelable &&
|
|
132
|
+
event.touches.length === 1 &&
|
|
133
|
+
event.touches[0]?.target === this.touchTarget &&
|
|
134
|
+
this.options.ownsNativePan?.())
|
|
135
|
+
event.preventDefault();
|
|
136
|
+
};
|
|
137
|
+
owningTouch(event) {
|
|
138
|
+
return Array.from(event.changedTouches).find(touch => touch.identifier === this.handoff?.touchIdentifier);
|
|
139
|
+
}
|
|
140
|
+
handleTouchMove = (event) => {
|
|
141
|
+
this.checkEnabled();
|
|
142
|
+
const touch = this.owningTouch(event);
|
|
143
|
+
if (touch)
|
|
144
|
+
this.send('dragging', touch);
|
|
145
|
+
};
|
|
146
|
+
handleTouchEnd = (event) => {
|
|
147
|
+
const touch = this.owningTouch(event);
|
|
148
|
+
if (touch)
|
|
149
|
+
this.end('releasing', event.type === 'touchend' ? touch : undefined, event.type === 'touchend' ? 'up' : 'cancel');
|
|
150
|
+
};
|
|
151
|
+
handleRetirement = () => this.end('releasing', undefined, 'gesture');
|
|
152
|
+
handleBlur = () => this.end('rest');
|
|
153
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { LiquidMotionMode } from './lens/liquidMotion.js';
|
|
2
|
+
import type { ContentPage } from './lens/tabPresentation.js';
|
|
3
|
+
import type { Appearance } from './lens/theme.js';
|
|
4
|
+
import type { LensMode } from './renderSpecs.js';
|
|
5
|
+
export declare function requestedAppearance(): Appearance | undefined;
|
|
6
|
+
export declare function requestedLiquidMotion(): LiquidMotionMode;
|
|
7
|
+
export declare function requestedMenu(): boolean;
|
|
8
|
+
export declare function useAppearance(): Appearance;
|
|
9
|
+
export declare function formatMetric(value: number, digits?: number): string;
|
|
10
|
+
export declare function storedFlag(key: string, fallback: string): string;
|
|
11
|
+
export declare function persistFlag(key: string, value: string): void;
|
|
12
|
+
export declare function measurementClientId(): string;
|
|
13
|
+
export declare const LIQUID_PLAYBACK_SPEED = 1;
|
|
14
|
+
export declare function isLensMode(value: string | null): value is LensMode;
|
|
15
|
+
export declare function storedLens(): LensMode;
|
|
16
|
+
export declare function persistLens(mode: LensMode): void;
|
|
17
|
+
export declare function storedPage(): ContentPage;
|
|
18
|
+
export declare function lensLabel(mode: LensMode): "Clear" | "Regular";
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { useDarkAppearance } from '../app/appearance.js';
|
|
2
|
+
import { isBitmapBackdrop } from './lens/bitmapBackdrop.js';
|
|
3
|
+
import { STRIPE_BACKGROUND_MODES, TINT_BACKGROUND_MODES } from './lens/referenceBackground.js';
|
|
4
|
+
// The glass probe page's settings (GlassPresentation without a consumer): URL parameters and
|
|
5
|
+
// their persisted localStorage flags, and the measurement client identity.
|
|
6
|
+
export function requestedAppearance() {
|
|
7
|
+
const value = new URLSearchParams(window.location.search).get('theme');
|
|
8
|
+
return value === 'dark' || value === 'light' ? value : undefined;
|
|
9
|
+
}
|
|
10
|
+
export function requestedLiquidMotion() {
|
|
11
|
+
const value = new URLSearchParams(window.location.search).get('motion');
|
|
12
|
+
if (value === 'pill' || value === 'press' || value === 'merge' || value === 'none') {
|
|
13
|
+
persistFlag('motion', value);
|
|
14
|
+
return value;
|
|
15
|
+
}
|
|
16
|
+
const stored = storedFlag('motion', 'none');
|
|
17
|
+
return stored === 'pill' || stored === 'press' || stored === 'merge' ? stored : 'none';
|
|
18
|
+
}
|
|
19
|
+
export function requestedMenu() {
|
|
20
|
+
const motion = new URLSearchParams(window.location.search).get('motion');
|
|
21
|
+
return motion === null || motion === 'menu';
|
|
22
|
+
}
|
|
23
|
+
export function useAppearance() {
|
|
24
|
+
const explicit = requestedAppearance();
|
|
25
|
+
const dark = useDarkAppearance();
|
|
26
|
+
return explicit ?? (dark ? 'dark' : 'light');
|
|
27
|
+
}
|
|
28
|
+
export function formatMetric(value, digits = 1) {
|
|
29
|
+
return value > 0 ? value.toFixed(digits) : '--';
|
|
30
|
+
}
|
|
31
|
+
export function storedFlag(key, fallback) {
|
|
32
|
+
const fromUrl = new URLSearchParams(window.location.search).get(key);
|
|
33
|
+
if (fromUrl !== null) {
|
|
34
|
+
try {
|
|
35
|
+
localStorage.setItem(`satinGeometry-flag-${key}`, fromUrl);
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
/* ignore */
|
|
39
|
+
}
|
|
40
|
+
return fromUrl;
|
|
41
|
+
}
|
|
42
|
+
try {
|
|
43
|
+
return localStorage.getItem(`satinGeometry-flag-${key}`) ?? fallback;
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
return fallback;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
export function persistFlag(key, value) {
|
|
50
|
+
try {
|
|
51
|
+
localStorage.setItem(`satinGeometry-flag-${key}`, value);
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
/* ignore */
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
function randomClientId() {
|
|
58
|
+
// crypto.randomUUID is only defined in secure contexts; LAN http:// phone
|
|
59
|
+
// testing is insecure, so fall back to getRandomValues-based v4.
|
|
60
|
+
if (typeof crypto.randomUUID === 'function')
|
|
61
|
+
return crypto.randomUUID();
|
|
62
|
+
const bytes = crypto.getRandomValues(new Uint8Array(16));
|
|
63
|
+
bytes[6] = (bytes[6] & 0x0f) | 0x40;
|
|
64
|
+
bytes[8] = (bytes[8] & 0x3f) | 0x80;
|
|
65
|
+
const hex = Array.from(bytes, byte => byte.toString(16).padStart(2, '0')).join('');
|
|
66
|
+
return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`;
|
|
67
|
+
}
|
|
68
|
+
export function measurementClientId() {
|
|
69
|
+
const key = 'satinMeasurement-measurement-client:v1';
|
|
70
|
+
try {
|
|
71
|
+
const stored = localStorage.getItem(key);
|
|
72
|
+
if (stored)
|
|
73
|
+
return stored;
|
|
74
|
+
const created = randomClientId();
|
|
75
|
+
localStorage.setItem(key, created);
|
|
76
|
+
return created;
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
return randomClientId();
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
const LENS_STORAGE_KEY = 'satinLens-lens:v1';
|
|
83
|
+
// measured-reference removes the capture-only `?slow` fork; retained motion uses measured playback speed.
|
|
84
|
+
export const LIQUID_PLAYBACK_SPEED = 1;
|
|
85
|
+
export function isLensMode(value) {
|
|
86
|
+
return value === 'reference-regular' || value === 'reference-clear';
|
|
87
|
+
}
|
|
88
|
+
export function storedLens() {
|
|
89
|
+
const fromUrl = new URLSearchParams(window.location.search).get('lens');
|
|
90
|
+
if (fromUrl !== null) {
|
|
91
|
+
const mode = isLensMode(fromUrl) ? fromUrl : 'reference-regular';
|
|
92
|
+
try {
|
|
93
|
+
localStorage.setItem(LENS_STORAGE_KEY, mode);
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
/* ignore */
|
|
97
|
+
}
|
|
98
|
+
return mode;
|
|
99
|
+
}
|
|
100
|
+
try {
|
|
101
|
+
const stored = localStorage.getItem(LENS_STORAGE_KEY);
|
|
102
|
+
if (isLensMode(stored))
|
|
103
|
+
return stored;
|
|
104
|
+
return 'reference-regular';
|
|
105
|
+
}
|
|
106
|
+
catch {
|
|
107
|
+
return 'reference-regular';
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
export function persistLens(mode) {
|
|
111
|
+
try {
|
|
112
|
+
localStorage.setItem(LENS_STORAGE_KEY, mode);
|
|
113
|
+
}
|
|
114
|
+
catch {
|
|
115
|
+
/* ignore */
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
function isContentPage(value) {
|
|
119
|
+
return (isBitmapBackdrop(value) ||
|
|
120
|
+
value === 'drag' ||
|
|
121
|
+
value === 'settings' ||
|
|
122
|
+
value === 'shapes' ||
|
|
123
|
+
value === 'wallpaper' ||
|
|
124
|
+
TINT_BACKGROUND_MODES.some(mode => mode === value) ||
|
|
125
|
+
STRIPE_BACKGROUND_MODES.some(mode => mode === value));
|
|
126
|
+
}
|
|
127
|
+
export function storedPage() {
|
|
128
|
+
const value = storedFlag('page', 'settings');
|
|
129
|
+
return isContentPage(value) ? value : 'settings';
|
|
130
|
+
}
|
|
131
|
+
export function lensLabel(mode) {
|
|
132
|
+
return mode === 'reference-clear' ? 'Clear' : 'Regular';
|
|
133
|
+
}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { type CSSProperties, type RefObject } from 'react';
|
|
2
|
+
import { type IconName } from './data.js';
|
|
3
|
+
import { type ReferenceBackgroundMode } from './referenceBackground.js';
|
|
4
|
+
export type ScreenId = 'general' | 'root';
|
|
5
|
+
export declare const GLASS_DOCK_HEIGHT_PX = 62;
|
|
6
|
+
export declare function glassDockHeight(layoutWidth: number, layoutHeight: number): 44 | 62;
|
|
7
|
+
export declare const GLASS_DOCK_WIDTH_PX = 360;
|
|
8
|
+
export declare const GLASS_DOCK_SIDE_INSET_PX = 21;
|
|
9
|
+
export declare const GLASS_DOCK_BOTTOM_GAP_PX = 21;
|
|
10
|
+
export declare const isCalibratedMaxLayout: (layoutWidth: number, screen: {
|
|
11
|
+
width: number;
|
|
12
|
+
height: number;
|
|
13
|
+
}) => boolean;
|
|
14
|
+
/** The tab platter's width: the one rule for the glass renderer and the tab slot it reads. */
|
|
15
|
+
export declare function glassDockWidth(layoutWidth: number, screen: {
|
|
16
|
+
width: number;
|
|
17
|
+
height: number;
|
|
18
|
+
}, insets?: {
|
|
19
|
+
left: number;
|
|
20
|
+
right: number;
|
|
21
|
+
}, layoutHeight?: number): number;
|
|
22
|
+
export declare const GLASS_DOCK_RADIUS_PX = 30.8;
|
|
23
|
+
export declare const GLASS_CIRCLE_SIZE_PX = 44;
|
|
24
|
+
export declare const GLASS_CIRCLE_INLINE_INSET_PX = 16;
|
|
25
|
+
export declare const GLASS_CIRCLE_TOP_PX = 8;
|
|
26
|
+
export declare const GLASS_OVERSCAN_X_PX = 64;
|
|
27
|
+
export declare const GLASS_OVERSCAN_Y_PX = 128;
|
|
28
|
+
export { MARKER_INTERVAL_PX } from './mirrorConstants.js';
|
|
29
|
+
type SceneStyle = CSSProperties & Record<`--${string}`, string>;
|
|
30
|
+
export declare const SCENE_STYLE: SceneStyle;
|
|
31
|
+
export type MirrorNode = Readonly<{
|
|
32
|
+
clips?: readonly {
|
|
33
|
+
x: number;
|
|
34
|
+
y: number;
|
|
35
|
+
width: number;
|
|
36
|
+
height: number;
|
|
37
|
+
radii: readonly number[];
|
|
38
|
+
}[];
|
|
39
|
+
glassRegionId?: string;
|
|
40
|
+
regionId?: string;
|
|
41
|
+
imageReady?: Promise<HTMLImageElement | undefined>;
|
|
42
|
+
imageSource?: string;
|
|
43
|
+
imageFit?: string;
|
|
44
|
+
/** DOM identity for capture failures; never used as a paint instruction. */
|
|
45
|
+
sourceElement?: string;
|
|
46
|
+
color: string;
|
|
47
|
+
fontFamily?: string;
|
|
48
|
+
fontSize?: number;
|
|
49
|
+
fontWeight?: string;
|
|
50
|
+
height: number;
|
|
51
|
+
icon?: IconName;
|
|
52
|
+
id: string;
|
|
53
|
+
kind: 'image' | 'chevron' | 'icon' | 'reference-background' | 'rect' | 'text' | 'background';
|
|
54
|
+
/** kind 'background': the element's computed background-image layers and their size, position and repeat lists. */
|
|
55
|
+
background?: Readonly<{
|
|
56
|
+
image: string;
|
|
57
|
+
size: string;
|
|
58
|
+
position: string;
|
|
59
|
+
repeat: string;
|
|
60
|
+
}>;
|
|
61
|
+
letterSpacing?: number;
|
|
62
|
+
lineHeight?: number;
|
|
63
|
+
radius?: number;
|
|
64
|
+
referenceBackground?: ReferenceBackgroundMode;
|
|
65
|
+
sourceOffsetY?: number;
|
|
66
|
+
text?: string;
|
|
67
|
+
width: number;
|
|
68
|
+
x: number;
|
|
69
|
+
y: number;
|
|
70
|
+
}>;
|
|
71
|
+
export type MirrorLayout = Readonly<{
|
|
72
|
+
contentHeight: number;
|
|
73
|
+
measuredAt: number;
|
|
74
|
+
nodes: readonly MirrorNode[];
|
|
75
|
+
screen: ScreenId;
|
|
76
|
+
width: number;
|
|
77
|
+
}>;
|
|
78
|
+
/** DOM geometry is authoritative. This function is only called after layout changes. */
|
|
79
|
+
export type MirrorCaptureRange = {
|
|
80
|
+
top: number;
|
|
81
|
+
bottom: number;
|
|
82
|
+
/** Disjoint rows inside top..bottom: only these are measured. */
|
|
83
|
+
bands?: readonly {
|
|
84
|
+
top: number;
|
|
85
|
+
bottom: number;
|
|
86
|
+
}[];
|
|
87
|
+
};
|
|
88
|
+
export declare function measureMirrorLayout(contentHost: HTMLElement, screen: ScreenId, includeCoveredRoot?: boolean, capture?: 'viewport' | 'plane', captureRange?: MirrorCaptureRange): MirrorLayout | undefined;
|
|
89
|
+
/** A host whose origin moves on every read (a route inside a running navigation
|
|
90
|
+
* transform) never passes the absolute-origin check. Its own layout is still
|
|
91
|
+
* stable: two consecutive snapshots with identical host-relative geometry are a
|
|
92
|
+
* consistent reading, whatever the origin did. Additive; measureMirrorLayout is unchanged. */
|
|
93
|
+
export declare function measureMirrorLayoutRelative(contentHost: HTMLElement, screen: ScreenId, includeCoveredRoot?: boolean, capture?: 'viewport' | 'plane', captureRange?: MirrorCaptureRange): MirrorLayout | undefined;
|
|
94
|
+
export declare let lastUnstableMeasurement: string;
|
|
95
|
+
export declare const SettingsDomScene: import("react").MemoExoticComponent<({ contentRef, onOpenGeneral, onQuery, query, screen, }: {
|
|
96
|
+
contentRef: RefObject<HTMLDivElement | null>;
|
|
97
|
+
onOpenGeneral: () => void;
|
|
98
|
+
onQuery: (value: string) => void;
|
|
99
|
+
query: string;
|
|
100
|
+
screen: ScreenId;
|
|
101
|
+
}) => import("react").JSX.Element>;
|
|
102
|
+
export declare function ReferenceBackgroundScene({ contentRef, height, mode, sourceOffsetY, width, }: {
|
|
103
|
+
contentRef: RefObject<HTMLDivElement | null>;
|
|
104
|
+
height: number;
|
|
105
|
+
mode: ReferenceBackgroundMode;
|
|
106
|
+
sourceOffsetY: number;
|
|
107
|
+
width: number;
|
|
108
|
+
}): import("react").JSX.Element;
|