@satinhq/kit 0.0.0-stage → 0.1.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/NOTICE +96 -0
- package/README.md +454 -2
- package/THIRD_PARTY_NOTICES.md +65 -0
- package/bin/satin.mjs +13 -0
- package/dist/acknowledgements/Acknowledgements.d.ts +4 -0
- package/dist/acknowledgements/Acknowledgements.js +42 -0
- package/dist/acknowledgements/bundledNotices.d.ts +4 -0
- package/dist/acknowledgements/bundledNotices.js +58 -0
- package/dist/acknowledgements/inventory.d.ts +17 -0
- package/dist/acknowledgements/inventory.js +10 -0
- package/dist/acknowledgements/inventory.json +39 -0
- package/dist/actions/ActionMenu.d.ts +30 -0
- package/dist/actions/ActionMenu.js +103 -0
- package/dist/actions/RowActions.d.ts +42 -0
- package/dist/actions/RowActions.js +820 -0
- package/dist/actions/contextMotion.d.ts +78 -0
- package/dist/actions/contextMotion.js +329 -0
- package/dist/actions/motion.d.ts +19 -0
- package/dist/actions/motion.js +74 -0
- package/dist/actions/nativeContextAppearance.json +86 -0
- package/dist/actions/nativeContextMotion.json +734 -0
- package/dist/actions/nativeMotion.json +388 -0
- package/dist/actions/preview.d.ts +27 -0
- package/dist/actions/preview.js +217 -0
- package/dist/actions/recognizers.d.ts +24 -0
- package/dist/actions/recognizers.js +87 -0
- package/dist/actions/rowScrub.d.ts +59 -0
- package/dist/actions/rowScrub.js +400 -0
- package/dist/actions/swipeSpring.d.ts +14 -0
- package/dist/actions/swipeSpring.js +35 -0
- package/dist/actions/types.d.ts +71 -0
- package/dist/actions/types.js +28 -0
- package/dist/app/InstallComponents.d.ts +16 -0
- package/dist/app/InstallComponents.js +104 -0
- package/dist/app/InstallationDiagnostics.d.ts +7 -0
- package/dist/app/InstallationDiagnostics.js +23 -0
- package/dist/app/OrientationGuard.d.ts +8 -0
- package/dist/app/OrientationGuard.js +9 -0
- package/dist/app/appearance.d.ts +18 -0
- package/dist/app/appearance.js +15 -0
- package/dist/app/appearanceStore.d.ts +30 -0
- package/dist/app/appearanceStore.js +228 -0
- package/dist/app/backgroundUpdate.d.ts +20 -0
- package/dist/app/backgroundUpdate.js +151 -0
- package/dist/app/buildInfo.d.ts +11 -0
- package/dist/app/buildInfo.js +12 -0
- package/dist/app/buildInfoBuild.d.ts +3 -0
- package/dist/app/buildInfoBuild.js +12 -0
- package/dist/app/checkCli.d.ts +1 -0
- package/dist/app/checkCli.js +73 -0
- package/dist/app/coldLaunchUpdate.d.ts +14 -0
- package/dist/app/coldLaunchUpdate.js +384 -0
- package/dist/app/definition.d.ts +85 -0
- package/dist/app/definition.js +347 -0
- package/dist/app/deployment.d.ts +28 -0
- package/dist/app/deployment.js +352 -0
- package/dist/app/deploymentBuild.d.ts +3 -0
- package/dist/app/deploymentBuild.js +55 -0
- package/dist/app/earlyWorker.d.ts +3 -0
- package/dist/app/earlyWorker.js +77 -0
- package/dist/app/head.d.ts +10 -0
- package/dist/app/head.js +120 -0
- package/dist/app/icons.d.ts +4 -0
- package/dist/app/icons.js +35 -0
- package/dist/app/install.d.ts +18 -0
- package/dist/app/install.js +82 -0
- package/dist/app/installCheck.d.ts +2 -0
- package/dist/app/installCheck.js +148 -0
- package/dist/app/installContext.d.ts +35 -0
- package/dist/app/installContext.js +45 -0
- package/dist/app/installCustom.d.ts +25 -0
- package/dist/app/installCustom.js +55 -0
- package/dist/app/installExperience.d.ts +22 -0
- package/dist/app/installExperience.js +389 -0
- package/dist/app/installExperienceDevice.d.ts +29 -0
- package/dist/app/installExperienceDevice.js +160 -0
- package/dist/app/installExperienceHome.d.ts +16 -0
- package/dist/app/installExperienceHome.js +304 -0
- package/dist/app/installExperienceRuntime.d.ts +37 -0
- package/dist/app/installExperienceRuntime.js +285 -0
- package/dist/app/installPolicy.d.ts +28 -0
- package/dist/app/installPolicy.js +90 -0
- package/dist/app/installQr.d.ts +10 -0
- package/dist/app/installQr.js +139 -0
- package/dist/app/installStrings.d.ts +52 -0
- package/dist/app/installStrings.js +75 -0
- package/dist/app/installTipPath.d.ts +12 -0
- package/dist/app/installTipPath.js +9 -0
- package/dist/app/installationFailure.d.ts +14 -0
- package/dist/app/installationFailure.js +38 -0
- package/dist/app/launch.d.ts +7 -0
- package/dist/app/launch.js +241 -0
- package/dist/app/launchReadiness.d.ts +9 -0
- package/dist/app/launchReadiness.js +72 -0
- package/dist/app/launchScreen.d.ts +16 -0
- package/dist/app/launchScreen.js +14 -0
- package/dist/app/launchScreenRuntime.d.ts +19 -0
- package/dist/app/launchScreenRuntime.js +313 -0
- package/dist/app/launchWatchdog.d.ts +1 -0
- package/dist/app/launchWatchdog.js +202 -0
- package/dist/app/manifests.d.ts +19 -0
- package/dist/app/manifests.js +20 -0
- package/dist/app/mdm.d.ts +3 -0
- package/dist/app/mdm.js +20 -0
- package/dist/app/mediaCheck.d.ts +9 -0
- package/dist/app/mediaCheck.js +122 -0
- package/dist/app/mediaTypes.d.ts +2 -0
- package/dist/app/mediaTypes.js +13 -0
- package/dist/app/platformPolicy.d.ts +3 -0
- package/dist/app/platformPolicy.js +10 -0
- package/dist/app/platformScripts.d.ts +6 -0
- package/dist/app/platformScripts.js +65 -0
- package/dist/app/releaseUpdates.d.ts +7 -0
- package/dist/app/releaseUpdates.js +53 -0
- package/dist/app/runtime.d.ts +9 -0
- package/dist/app/runtime.js +38 -0
- package/dist/app/startup.d.ts +30 -0
- package/dist/app/startup.js +24 -0
- package/dist/app/statusBand.d.ts +11 -0
- package/dist/app/statusBand.js +257 -0
- package/dist/app/viewport.d.ts +3 -0
- package/dist/app/viewport.js +42 -0
- package/dist/app/viewportValue.d.ts +5 -0
- package/dist/app/viewportValue.js +14 -0
- package/dist/app/vite.d.ts +27 -0
- package/dist/app/vite.js +440 -0
- package/dist/app/warmImage.d.ts +3 -0
- package/dist/app/warmImage.js +59 -0
- package/dist/content/content.d.ts +153 -0
- package/dist/content/content.js +315 -0
- package/dist/content/layout.d.ts +26 -0
- package/dist/content/layout.js +114 -0
- package/dist/content/scaledMetric.d.ts +3 -0
- package/dist/content/scaledMetric.js +68 -0
- package/dist/content/typography.d.ts +83 -0
- package/dist/content/typography.js +32 -0
- package/dist/controls/ActivityIndicatorSegments.d.ts +4 -0
- package/dist/controls/ActivityIndicatorSegments.js +5 -0
- package/dist/controls/ColorPicker.d.ts +20 -0
- package/dist/controls/ColorPicker.js +70 -0
- package/dist/controls/ControlRow.d.ts +5 -0
- package/dist/controls/ControlRow.js +10 -0
- package/dist/controls/DatePicker.d.ts +41 -0
- package/dist/controls/DatePicker.js +148 -0
- package/dist/controls/ProgressView.d.ts +17 -0
- package/dist/controls/ProgressView.js +24 -0
- package/dist/controls/civilDate.d.ts +49 -0
- package/dist/controls/civilDate.js +112 -0
- package/dist/data/database.d.ts +154 -0
- package/dist/data/database.js +710 -0
- package/dist/data/value-equal.d.ts +2 -0
- package/dist/data/value-equal.js +36 -0
- package/dist/data/write-store.d.ts +38 -0
- package/dist/data/write-store.js +192 -0
- package/dist/dev-menu/DevMenu.d.ts +1 -0
- package/dist/dev-menu/DevMenu.js +121 -0
- package/dist/dev-menu/actions.d.ts +12 -0
- package/dist/dev-menu/actions.js +99 -0
- package/dist/dev-menu/build.d.ts +5 -0
- package/dist/dev-menu/build.js +40 -0
- package/dist/dev-menu/gesture.d.ts +18 -0
- package/dist/dev-menu/gesture.js +109 -0
- package/dist/dev-menu/shake.d.ts +2 -0
- package/dist/dev-menu/shake.js +36 -0
- package/dist/dev-menu/types.d.ts +8 -0
- package/dist/dev-menu/types.js +1 -0
- package/dist/diagnostics.d.ts +3 -0
- package/dist/diagnostics.js +4 -0
- package/dist/docs/app-recipes.md +411 -0
- package/dist/docs/components/file-importer.md +54 -0
- package/dist/docs/components/paste-button.md +48 -0
- package/dist/docs/components/photos-picker.md +53 -0
- package/dist/docs/components/share-link.md +58 -0
- package/dist/docs/content.md +159 -0
- package/dist/docs/controls.md +151 -0
- package/dist/docs/data.md +332 -0
- package/dist/docs/limitations.md +40 -0
- package/dist/docs/messaging-scroll.md +234 -0
- package/dist/docs/networking.md +190 -0
- package/dist/docs/push.md +215 -0
- package/dist/docs/swiftui-reference.md +1895 -0
- package/dist/docs/symbols.md +293 -0
- package/dist/docs/tokens.md +60 -0
- package/dist/fidelity/devAssertions.d.ts +21 -0
- package/dist/fidelity/devAssertions.js +199 -0
- package/dist/focus/focusIntentMachine.d.ts +106 -0
- package/dist/focus/focusIntentMachine.js +359 -0
- package/dist/focus/navigationFocus.d.ts +42 -0
- package/dist/focus/navigationFocus.js +241 -0
- package/dist/focus/programmaticFocus.d.ts +15 -0
- package/dist/focus/programmaticFocus.js +152 -0
- package/dist/gestures/GestureView.d.ts +12 -0
- package/dist/gestures/GestureView.js +321 -0
- package/dist/gestures/arena.d.ts +138 -0
- package/dist/gestures/arena.js +417 -0
- package/dist/gestures/existingCompetitors.d.ts +79 -0
- package/dist/gestures/existingCompetitors.js +82 -0
- package/dist/gestures/gesture.d.ts +62 -0
- package/dist/gestures/gesture.js +107 -0
- package/dist/glass/ControlLens.d.ts +46 -0
- package/dist/glass/ControlLens.js +88 -0
- package/dist/glass/GlassBar.d.ts +9 -0
- package/dist/glass/GlassBar.js +22 -0
- package/dist/glass/GlassConfusionReview.d.ts +3 -0
- package/dist/glass/GlassConfusionReview.js +185 -0
- package/dist/glass/GlassEffect.d.ts +69 -0
- package/dist/glass/GlassEffect.js +550 -0
- package/dist/glass/GlassMaterialRoot.d.ts +7 -0
- package/dist/glass/GlassMaterialRoot.js +39 -0
- package/dist/glass/GlassPresentation.d.ts +29 -0
- package/dist/glass/GlassPresentation.js +1041 -0
- package/dist/glass/GlassProbeIcons.d.ts +8 -0
- package/dist/glass/GlassProbeIcons.js +12 -0
- package/dist/glass/GlassProbeOverlay.d.ts +52 -0
- package/dist/glass/GlassProbeOverlay.js +45 -0
- package/dist/glass/GlassTextField.d.ts +22 -0
- package/dist/glass/GlassTextField.js +12 -0
- package/dist/glass/MaterialEffectRoot.d.ts +9 -0
- package/dist/glass/MaterialEffectRoot.js +189 -0
- package/dist/glass/Menu.d.ts +3 -0
- package/dist/glass/Menu.js +35 -0
- package/dist/glass/MenuStack.d.ts +23 -0
- package/dist/glass/MenuStack.js +371 -0
- package/dist/glass/MenuSymbol.d.ts +7 -0
- package/dist/glass/MenuSymbol.js +16 -0
- package/dist/glass/MorphEllipsisArtwork.d.ts +2 -0
- package/dist/glass/MorphEllipsisArtwork.js +6 -0
- package/dist/glass/TabBar.d.ts +29 -0
- package/dist/glass/TabBar.js +176 -0
- package/dist/glass/capability.d.ts +25 -0
- package/dist/glass/capability.js +63 -0
- package/dist/glass/captureWindow.d.ts +60 -0
- package/dist/glass/captureWindow.js +119 -0
- package/dist/glass/confusionSession.d.ts +41 -0
- package/dist/glass/confusionSession.js +44 -0
- package/dist/glass/contactPhysics.d.ts +130 -0
- package/dist/glass/contactPhysics.js +214 -0
- package/dist/glass/context.d.ts +37 -0
- package/dist/glass/context.js +11 -0
- package/dist/glass/errorAlert.d.ts +6 -0
- package/dist/glass/errorAlert.js +57 -0
- package/dist/glass/errors.d.ts +22 -0
- package/dist/glass/errors.js +78 -0
- package/dist/glass/failurePolicy.d.ts +4 -0
- package/dist/glass/failurePolicy.js +20 -0
- package/dist/glass/fallback/material.d.ts +16 -0
- package/dist/glass/fallback/material.js +87 -0
- package/dist/glass/fallback/regions.d.ts +16 -0
- package/dist/glass/fallback/regions.js +249 -0
- package/dist/glass/fallback/runtime.d.ts +72 -0
- package/dist/glass/fallback/runtime.js +278 -0
- package/dist/glass/fallback/selection.d.ts +2 -0
- package/dist/glass/fallback/selection.js +9 -0
- package/dist/glass/fieldGeometry.d.ts +28 -0
- package/dist/glass/fieldGeometry.js +64 -0
- package/dist/glass/fieldMotion.d.ts +42 -0
- package/dist/glass/fieldMotion.js +47 -0
- package/dist/glass/glassContact.d.ts +76 -0
- package/dist/glass/glassContact.js +153 -0
- package/dist/glass/glassProbeSettings.d.ts +18 -0
- package/dist/glass/glassProbeSettings.js +133 -0
- package/dist/glass/lens/Scene.d.ts +108 -0
- package/dist/glass/lens/Scene.js +553 -0
- package/dist/glass/lens/backgrounds.json +103 -0
- package/dist/glass/lens/bitmapBackdrop.d.ts +14 -0
- package/dist/glass/lens/bitmapBackdrop.js +35 -0
- package/dist/glass/lens/controlLift.d.ts +94 -0
- package/dist/glass/lens/controlLift.js +78 -0
- package/dist/glass/lens/data.d.ts +19 -0
- package/dist/glass/lens/data.js +161 -0
- package/dist/glass/lens/drawableTop.d.ts +16 -0
- package/dist/glass/lens/drawableTop.js +15 -0
- package/dist/glass/lens/icons.d.ts +9 -0
- package/dist/glass/lens/icons.js +34 -0
- package/dist/glass/lens/interactiveContact.d.ts +33 -0
- package/dist/glass/lens/interactiveContact.js +158 -0
- package/dist/glass/lens/interactivePress.d.ts +95 -0
- package/dist/glass/lens/interactivePress.js +169 -0
- package/dist/glass/lens/ios27GlyphFit.json +126 -0
- package/dist/glass/lens/lensLightingSamples.json +1 -0
- package/dist/glass/lens/lensPress.d.ts +22 -0
- package/dist/glass/lens/lensPress.js +68 -0
- package/dist/glass/lens/lensPressSamples.json +1 -0
- package/dist/glass/lens/liquidMotion.d.ts +50 -0
- package/dist/glass/lens/liquidMotion.js +239 -0
- package/dist/glass/lens/materialGlassRecipes.json +776 -0
- package/dist/glass/lens/materialUniforms.d.ts +22 -0
- package/dist/glass/lens/materialUniforms.js +117 -0
- package/dist/glass/lens/menu-closing-close-fit.json +380 -0
- package/dist/glass/lens/menu-opening-native-fits.json +911 -0
- package/dist/glass/lens/menuContextFit.json +88 -0
- package/dist/glass/lens/menuContextOpacity.json +98 -0
- package/dist/glass/lens/menuContextPresentation.d.ts +15 -0
- package/dist/glass/lens/menuContextPresentation.js +65 -0
- package/dist/glass/lens/menuCornerFit.json +252 -0
- package/dist/glass/lens/menuCornerMotion.d.ts +9 -0
- package/dist/glass/lens/menuCornerMotion.js +5 -0
- package/dist/glass/lens/menuDropFit.json +64 -0
- package/dist/glass/lens/menuField.d.ts +178 -0
- package/dist/glass/lens/menuField.js +564 -0
- package/dist/glass/lens/menuGesturePresentation.d.ts +12 -0
- package/dist/glass/lens/menuGesturePresentation.js +42 -0
- package/dist/glass/lens/menuGlyphDropFit.json +38 -0
- package/dist/glass/lens/menuMorphFit.json +564 -0
- package/dist/glass/lens/menuMorphMotion.d.ts +70 -0
- package/dist/glass/lens/menuMorphMotion.js +219 -0
- package/dist/glass/lens/menuMorphPhoneFit.json +85 -0
- package/dist/glass/lens/menuMotion.d.ts +81 -0
- package/dist/glass/lens/menuMotion.js +323 -0
- package/dist/glass/lens/menuPlacement.d.ts +5 -0
- package/dist/glass/lens/menuPlacement.js +29 -0
- package/dist/glass/lens/menuSpring.d.ts +18 -0
- package/dist/glass/lens/menuSpring.js +29 -0
- package/dist/glass/lens/menuTouchLight.d.ts +13 -0
- package/dist/glass/lens/menuTouchLight.js +147 -0
- package/dist/glass/lens/mirrorConstants.d.ts +1 -0
- package/dist/glass/lens/mirrorConstants.js +2 -0
- package/dist/glass/lens/mirrorExtents.d.ts +52 -0
- package/dist/glass/lens/mirrorExtents.js +264 -0
- package/dist/glass/lens/mirrorInvalidation.d.ts +6 -0
- package/dist/glass/lens/mirrorInvalidation.js +10 -0
- package/dist/glass/lens/mirrorReuse.d.ts +20 -0
- package/dist/glass/lens/mirrorReuse.js +166 -0
- package/dist/glass/lens/motion.d.ts +62 -0
- package/dist/glass/lens/motion.js +93 -0
- package/dist/glass/lens/recordedMotion.d.ts +6 -0
- package/dist/glass/lens/recordedMotion.js +44 -0
- package/dist/glass/lens/referenceBackground.d.ts +9 -0
- package/dist/glass/lens/referenceBackground.js +151 -0
- package/dist/glass/lens/referenceProfiles.d.ts +21 -0
- package/dist/glass/lens/referenceProfiles.js +33 -0
- package/dist/glass/lens/referenceRegularTint.d.ts +12 -0
- package/dist/glass/lens/referenceRegularTint.js +41 -0
- package/dist/glass/lens/scopeSegments.d.ts +12 -0
- package/dist/glass/lens/scopeSegments.js +18 -0
- package/dist/glass/lens/scrollAnchoring.d.ts +15 -0
- package/dist/glass/lens/scrollAnchoring.js +17 -0
- package/dist/glass/lens/selectionParameters.json +94 -0
- package/dist/glass/lens/shapeParameters.json +198 -0
- package/dist/glass/lens/tab-motion-native-fits.json +778 -0
- package/dist/glass/lens/tabAccessoryMotion.d.ts +52 -0
- package/dist/glass/lens/tabAccessoryMotion.js +52 -0
- package/dist/glass/lens/tabChromaRimModel.d.ts +43 -0
- package/dist/glass/lens/tabChromaRimModel.js +93 -0
- package/dist/glass/lens/tabCollapseInkSamples.json +49 -0
- package/dist/glass/lens/tabCompactGesture.d.ts +15 -0
- package/dist/glass/lens/tabCompactGesture.js +50 -0
- package/dist/glass/lens/tabGeometryAttack.json +70 -0
- package/dist/glass/lens/tabGlyphColours.d.ts +17 -0
- package/dist/glass/lens/tabGlyphColours.js +38 -0
- package/dist/glass/lens/tabInterruptedDecaySamples.json +245 -0
- package/dist/glass/lens/tabInterruptedRestoreSamples.json +290 -0
- package/dist/glass/lens/tabMaterialModel.d.ts +10 -0
- package/dist/glass/lens/tabMaterialModel.js +108 -0
- package/dist/glass/lens/tabMinimizeInk.d.ts +15 -0
- package/dist/glass/lens/tabMinimizeInk.js +14 -0
- package/dist/glass/lens/tabMinimizeMotion.d.ts +36 -0
- package/dist/glass/lens/tabMinimizeMotion.js +107 -0
- package/dist/glass/lens/tabMinimizeSamples.json +411 -0
- package/dist/glass/lens/tabMotion.d.ts +91 -0
- package/dist/glass/lens/tabMotion.js +478 -0
- package/dist/glass/lens/tabMotionFit.d.ts +76 -0
- package/dist/glass/lens/tabMotionFit.js +61 -0
- package/dist/glass/lens/tabNativeSymbols.d.ts +1 -0
- package/dist/glass/lens/tabNativeSymbols.js +7 -0
- package/dist/glass/lens/tabPresentation.d.ts +21 -0
- package/dist/glass/lens/tabPresentation.js +20 -0
- package/dist/glass/lens/tabRelease.d.ts +5 -0
- package/dist/glass/lens/tabRelease.js +14 -0
- package/dist/glass/lens/tabRestoreMotion.d.ts +19 -0
- package/dist/glass/lens/tabRestoreMotion.js +65 -0
- package/dist/glass/lens/tabRestoreSamples.json +1272 -0
- package/dist/glass/lens/tabSearchMember.d.ts +38 -0
- package/dist/glass/lens/tabSearchMember.js +74 -0
- package/dist/glass/lens/tabSelectionMaterial.d.ts +20 -0
- package/dist/glass/lens/tabSelectionMaterial.js +23 -0
- package/dist/glass/lens/tabSelectionMeasurements.test-fixture.d.ts +9 -0
- package/dist/glass/lens/tabSelectionMeasurements.test-fixture.js +74 -0
- package/dist/glass/lens/tabSettingsSymbol.d.ts +1 -0
- package/dist/glass/lens/tabSettingsSymbol.js +2 -0
- package/dist/glass/lens/tabShapeResponse.d.ts +7 -0
- package/dist/glass/lens/tabShapeResponse.js +30 -0
- package/dist/glass/lens/theme.d.ts +18 -0
- package/dist/glass/lens/theme.js +40 -0
- package/dist/glass/lens/trace.d.ts +2 -0
- package/dist/glass/lens/trace.js +27 -0
- package/dist/glass/liquidContext.d.ts +32 -0
- package/dist/glass/liquidContext.js +2 -0
- package/dist/glass/menuPanelPlacement.d.ts +51 -0
- package/dist/glass/menuPanelPlacement.js +128 -0
- package/dist/glass/menuPresenter.d.ts +34 -0
- package/dist/glass/menuPresenter.js +983 -0
- package/dist/glass/menuSymbolMasks.d.ts +1 -0
- package/dist/glass/menuSymbolMasks.js +1 -0
- package/dist/glass/menuSymbolTokens.d.ts +22 -0
- package/dist/glass/menuSymbolTokens.js +12 -0
- package/dist/glass/menuTriggerGeometry.d.ts +99 -0
- package/dist/glass/menuTriggerGeometry.js +126 -0
- package/dist/glass/menuTriggerSnapshot.d.ts +77 -0
- package/dist/glass/menuTriggerSnapshot.js +69 -0
- package/dist/glass/menuTypes.d.ts +22 -0
- package/dist/glass/menuTypes.js +1 -0
- package/dist/glass/morphField.d.ts +18 -0
- package/dist/glass/morphField.js +139 -0
- package/dist/glass/presentationFrame.d.ts +43 -0
- package/dist/glass/presentationFrame.js +82 -0
- package/dist/glass/pressHighlight.d.ts +9 -0
- package/dist/glass/pressHighlight.js +158 -0
- package/dist/glass/regionRegistry.d.ts +93 -0
- package/dist/glass/regionRegistry.js +313 -0
- package/dist/glass/regions.d.ts +262 -0
- package/dist/glass/regions.js +147 -0
- package/dist/glass/regularMaterialContext.d.ts +45 -0
- package/dist/glass/regularMaterialContext.js +118 -0
- package/dist/glass/regularTriggerMaterial.d.ts +19 -0
- package/dist/glass/regularTriggerMaterial.js +111 -0
- package/dist/glass/regularTriggerRim.d.ts +163 -0
- package/dist/glass/regularTriggerRim.js +436 -0
- package/dist/glass/renderSpecs.d.ts +454 -0
- package/dist/glass/renderSpecs.js +231 -0
- package/dist/glass/rendererContract.d.ts +205 -0
- package/dist/glass/rendererContract.js +18 -0
- package/dist/glass/shapeTrack.d.ts +53 -0
- package/dist/glass/shapeTrack.js +74 -0
- package/dist/glass/shapeTrackRegistry.d.ts +40 -0
- package/dist/glass/shapeTrackRegistry.js +49 -0
- package/dist/glass/sourceDamage.d.ts +6 -0
- package/dist/glass/sourceDamage.js +8 -0
- package/dist/glass/submenuMotion.d.ts +205 -0
- package/dist/glass/submenuMotion.js +306 -0
- package/dist/glass/tabBarModel.d.ts +12 -0
- package/dist/glass/tabBarModel.js +32 -0
- package/dist/glass/testing.d.ts +14 -0
- package/dist/glass/testing.js +14 -0
- package/dist/glass/tokens.d.ts +79 -0
- package/dist/glass/tokens.js +86 -0
- package/dist/glass/toolbarMaterialContext.d.ts +28 -0
- package/dist/glass/toolbarMaterialContext.js +66 -0
- package/dist/glass/topLayer.d.ts +5 -0
- package/dist/glass/topLayer.js +10 -0
- package/dist/glass/unionOutline.d.ts +11 -0
- package/dist/glass/unionOutline.js +98 -0
- package/dist/glass/visibleDeadline.d.ts +21 -0
- package/dist/glass/visibleDeadline.js +61 -0
- package/dist/glass/webgpu/accessoryMorph.d.ts +99 -0
- package/dist/glass/webgpu/accessoryMorph.js +473 -0
- package/dist/glass/webgpu/accessoryTrack.d.ts +47 -0
- package/dist/glass/webgpu/accessoryTrack.js +59 -0
- package/dist/glass/webgpu/areaMips.d.ts +50 -0
- package/dist/glass/webgpu/areaMips.js +166 -0
- package/dist/glass/webgpu/backdrop.d.ts +86 -0
- package/dist/glass/webgpu/backdrop.js +243 -0
- package/dist/glass/webgpu/backdropLayers.d.ts +29 -0
- package/dist/glass/webgpu/backdropLayers.js +182 -0
- package/dist/glass/webgpu/backgroundLayers.d.ts +71 -0
- package/dist/glass/webgpu/backgroundLayers.js +385 -0
- package/dist/glass/webgpu/cadence.d.ts +18 -0
- package/dist/glass/webgpu/cadence.js +35 -0
- package/dist/glass/webgpu/canvasSubmission.d.ts +6 -0
- package/dist/glass/webgpu/canvasSubmission.js +22 -0
- package/dist/glass/webgpu/capture.d.ts +77 -0
- package/dist/glass/webgpu/capture.js +534 -0
- package/dist/glass/webgpu/captureBands.d.ts +39 -0
- package/dist/glass/webgpu/captureBands.js +53 -0
- package/dist/glass/webgpu/captureContext.d.ts +1 -0
- package/dist/glass/webgpu/captureContext.js +6 -0
- package/dist/glass/webgpu/captureDemand.d.ts +44 -0
- package/dist/glass/webgpu/captureDemand.js +81 -0
- package/dist/glass/webgpu/captureRelease.d.ts +18 -0
- package/dist/glass/webgpu/captureRelease.js +39 -0
- package/dist/glass/webgpu/client.d.ts +49 -0
- package/dist/glass/webgpu/client.js +336 -0
- package/dist/glass/webgpu/contextBackdrop.d.ts +6 -0
- package/dist/glass/webgpu/contextBackdrop.js +13 -0
- package/dist/glass/webgpu/contextComposite.d.ts +64 -0
- package/dist/glass/webgpu/contextComposite.js +66 -0
- package/dist/glass/webgpu/decodedImage.d.ts +1 -0
- package/dist/glass/webgpu/decodedImage.js +2 -0
- package/dist/glass/webgpu/deviceLimits.d.ts +5 -0
- package/dist/glass/webgpu/deviceLimits.js +8 -0
- package/dist/glass/webgpu/edgePass.d.ts +9 -0
- package/dist/glass/webgpu/edgePass.js +170 -0
- package/dist/glass/webgpu/entry.worker.d.ts +1 -0
- package/dist/glass/webgpu/entry.worker.js +28 -0
- package/dist/glass/webgpu/errorCode.d.ts +3 -0
- package/dist/glass/webgpu/errorCode.js +27 -0
- package/dist/glass/webgpu/errors.d.ts +8 -0
- package/dist/glass/webgpu/errors.js +55 -0
- package/dist/glass/webgpu/fieldInk.d.ts +9 -0
- package/dist/glass/webgpu/fieldInk.js +62 -0
- package/dist/glass/webgpu/foreground.d.ts +29 -0
- package/dist/glass/webgpu/foreground.js +313 -0
- package/dist/glass/webgpu/frameClock.d.ts +34 -0
- package/dist/glass/webgpu/frameClock.js +60 -0
- package/dist/glass/webgpu/frameGraph.d.ts +57 -0
- package/dist/glass/webgpu/frameGraph.js +287 -0
- package/dist/glass/webgpu/frameProbe.d.ts +58 -0
- package/dist/glass/webgpu/frameProbe.js +181 -0
- package/dist/glass/webgpu/interactionProfiles.d.ts +10 -0
- package/dist/glass/webgpu/interactionProfiles.js +25 -0
- package/dist/glass/webgpu/keptGlyphs.d.ts +68 -0
- package/dist/glass/webgpu/keptGlyphs.js +85 -0
- package/dist/glass/webgpu/keyboardBackdrop.d.ts +12 -0
- package/dist/glass/webgpu/keyboardBackdrop.js +51 -0
- package/dist/glass/webgpu/lagTrace.d.ts +31 -0
- package/dist/glass/webgpu/lagTrace.js +22 -0
- package/dist/glass/webgpu/layers.d.ts +100 -0
- package/dist/glass/webgpu/layers.js +301 -0
- package/dist/glass/webgpu/lensDebug.d.ts +4 -0
- package/dist/glass/webgpu/lensDebug.js +28 -0
- package/dist/glass/webgpu/lensDiffusion.d.ts +2 -0
- package/dist/glass/webgpu/lensDiffusion.js +20 -0
- package/dist/glass/webgpu/lensLightingFit.json +222 -0
- package/dist/glass/webgpu/menuLiftInput.d.ts +30 -0
- package/dist/glass/webgpu/menuLiftInput.js +39 -0
- package/dist/glass/webgpu/menuSurfaceGuard.d.ts +17 -0
- package/dist/glass/webgpu/menuSurfaceGuard.js +26 -0
- package/dist/glass/webgpu/minimize.d.ts +184 -0
- package/dist/glass/webgpu/minimize.js +470 -0
- package/dist/glass/webgpu/navigationAtlasCopy.d.ts +12 -0
- package/dist/glass/webgpu/navigationAtlasCopy.js +121 -0
- package/dist/glass/webgpu/navigationTracks.d.ts +3 -0
- package/dist/glass/webgpu/navigationTracks.js +84 -0
- package/dist/glass/webgpu/passes.d.ts +204 -0
- package/dist/glass/webgpu/passes.js +394 -0
- package/dist/glass/webgpu/pendingSurfaceInput.d.ts +29 -0
- package/dist/glass/webgpu/pendingSurfaceInput.js +51 -0
- package/dist/glass/webgpu/preparedSourcePixels.d.ts +21 -0
- package/dist/glass/webgpu/preparedSourcePixels.js +43 -0
- package/dist/glass/webgpu/presentationBackdrop.d.ts +3 -0
- package/dist/glass/webgpu/presentationBackdrop.js +33 -0
- package/dist/glass/webgpu/presentationDiffusion.d.ts +48 -0
- package/dist/glass/webgpu/presentationDiffusion.js +57 -0
- package/dist/glass/webgpu/presentationMaterial.d.ts +9 -0
- package/dist/glass/webgpu/presentationMaterial.js +156 -0
- package/dist/glass/webgpu/presenterViewport.d.ts +11 -0
- package/dist/glass/webgpu/presenterViewport.js +193 -0
- package/dist/glass/webgpu/production.d.ts +552 -0
- package/dist/glass/webgpu/production.js +1929 -0
- package/dist/glass/webgpu/productionInstalls.d.ts +53 -0
- package/dist/glass/webgpu/productionInstalls.js +225 -0
- package/dist/glass/webgpu/productionNavigation.d.ts +5 -0
- package/dist/glass/webgpu/productionNavigation.js +360 -0
- package/dist/glass/webgpu/productionPinnedTop.d.ts +80 -0
- package/dist/glass/webgpu/productionPinnedTop.js +77 -0
- package/dist/glass/webgpu/productionPinnedTopPrepare.d.ts +21 -0
- package/dist/glass/webgpu/productionPinnedTopPrepare.js +132 -0
- package/dist/glass/webgpu/productionPlanes.d.ts +135 -0
- package/dist/glass/webgpu/productionPlanes.js +412 -0
- package/dist/glass/webgpu/productionPrepare.d.ts +18 -0
- package/dist/glass/webgpu/productionPrepare.js +833 -0
- package/dist/glass/webgpu/productionTracks.d.ts +73 -0
- package/dist/glass/webgpu/productionTracks.js +22 -0
- package/dist/glass/webgpu/productionViewport.d.ts +20 -0
- package/dist/glass/webgpu/productionViewport.js +52 -0
- package/dist/glass/webgpu/profile.d.ts +37 -0
- package/dist/glass/webgpu/profile.js +101 -0
- package/dist/glass/webgpu/raster.d.ts +337 -0
- package/dist/glass/webgpu/raster.js +1360 -0
- package/dist/glass/webgpu/rasterMaterial.d.ts +19 -0
- package/dist/glass/webgpu/rasterMaterial.js +197 -0
- package/dist/glass/webgpu/rasterShaders.d.ts +7 -0
- package/dist/glass/webgpu/rasterShaders.js +105 -0
- package/dist/glass/webgpu/rasterUniforms.d.ts +304 -0
- package/dist/glass/webgpu/rasterUniforms.js +415 -0
- package/dist/glass/webgpu/regionBackdrop.d.ts +8 -0
- package/dist/glass/webgpu/regionBackdrop.js +12 -0
- package/dist/glass/webgpu/regionBridge.d.ts +145 -0
- package/dist/glass/webgpu/regionBridge.js +1691 -0
- package/dist/glass/webgpu/regionScene.d.ts +294 -0
- package/dist/glass/webgpu/regionScene.js +2144 -0
- package/dist/glass/webgpu/renderer.d.ts +8 -0
- package/dist/glass/webgpu/renderer.js +1478 -0
- package/dist/glass/webgpu/residentPlanes.d.ts +69 -0
- package/dist/glass/webgpu/residentPlanes.js +104 -0
- package/dist/glass/webgpu/restMaterial.d.ts +6 -0
- package/dist/glass/webgpu/restMaterial.js +65 -0
- package/dist/glass/webgpu/resumeOverlay.d.ts +44 -0
- package/dist/glass/webgpu/resumeOverlay.js +82 -0
- package/dist/glass/webgpu/sampleTrace.d.ts +11 -0
- package/dist/glass/webgpu/sampleTrace.js +50 -0
- package/dist/glass/webgpu/scrollEdgeBackdrop.d.ts +89 -0
- package/dist/glass/webgpu/scrollEdgeBackdrop.js +177 -0
- package/dist/glass/webgpu/scrollEdgePose.d.ts +4 -0
- package/dist/glass/webgpu/scrollEdgePose.js +49 -0
- package/dist/glass/webgpu/selectionThumb.d.ts +81 -0
- package/dist/glass/webgpu/selectionThumb.js +209 -0
- package/dist/glass/webgpu/shaders.d.ts +67 -0
- package/dist/glass/webgpu/shaders.js +595 -0
- package/dist/glass/webgpu/sharedLift.d.ts +7 -0
- package/dist/glass/webgpu/sharedLift.js +223 -0
- package/dist/glass/webgpu/sourcePixels.d.ts +42 -0
- package/dist/glass/webgpu/sourcePixels.js +140 -0
- package/dist/glass/webgpu/sourcePixels.worker.d.ts +1 -0
- package/dist/glass/webgpu/sourcePixels.worker.js +62 -0
- package/dist/glass/webgpu/tabGlyphInk.d.ts +14 -0
- package/dist/glass/webgpu/tabGlyphInk.js +72 -0
- package/dist/glass/webgpu/touchLight.d.ts +4 -0
- package/dist/glass/webgpu/touchLight.js +15 -0
- package/dist/glass/worker/client.d.ts +21 -0
- package/dist/glass/worker/client.js +152 -0
- package/dist/glass/worker/experiment.d.ts +13 -0
- package/dist/glass/worker/experiment.js +221 -0
- package/dist/glass/worker/fixture.d.ts +21 -0
- package/dist/glass/worker/fixture.js +152 -0
- package/dist/glass/worker/protocol.d.ts +439 -0
- package/dist/glass/worker/protocol.js +5 -0
- package/dist/graphicsProbe.d.ts +19 -0
- package/dist/graphicsProbe.js +111 -0
- package/dist/haptics/SensoryButton.d.ts +21 -0
- package/dist/haptics/SensoryButton.js +80 -0
- package/dist/image/ContentAdmission.d.ts +19 -0
- package/dist/image/ContentAdmission.js +70 -0
- package/dist/image/Image.d.ts +30 -0
- package/dist/image/Image.js +341 -0
- package/dist/image/asset.d.ts +9 -0
- package/dist/image/asset.js +1 -0
- package/dist/image/contentReadiness.d.ts +7 -0
- package/dist/image/contentReadiness.js +54 -0
- package/dist/image/imports.d.ts +4 -0
- package/dist/image/resource.d.ts +53 -0
- package/dist/image/resource.js +286 -0
- package/dist/image/vite.d.ts +3 -0
- package/dist/image/vite.js +63 -0
- package/dist/index.d.ts +87 -0
- package/dist/index.js +102 -0
- package/dist/install.d.ts +8 -0
- package/dist/install.js +8 -0
- package/dist/internal.d.ts +96 -0
- package/dist/internal.js +80 -0
- package/dist/keyboard/adapter.d.ts +82 -0
- package/dist/keyboard/adapter.js +727 -0
- package/dist/keyboard/avoidance.d.ts +24 -0
- package/dist/keyboard/avoidance.js +283 -0
- package/dist/keyboard/caretMirror.d.ts +13 -0
- package/dist/keyboard/caretMirror.js +122 -0
- package/dist/keyboard/expectedKeyboard.d.ts +10 -0
- package/dist/keyboard/expectedKeyboard.js +60 -0
- package/dist/keyboard/geometry.d.ts +10 -0
- package/dist/keyboard/geometry.js +21 -0
- package/dist/keyboard/modalTapFocus.d.ts +41 -0
- package/dist/keyboard/modalTapFocus.js +224 -0
- package/dist/keyboard/motion.d.ts +54 -0
- package/dist/keyboard/motion.js +80 -0
- package/dist/keyboard/translation.d.ts +12 -0
- package/dist/keyboard/translation.js +19 -0
- package/dist/layout/adaptiveTabsContext.d.ts +5 -0
- package/dist/layout/adaptiveTabsContext.js +2 -0
- package/dist/layout/deviceIdiom.d.ts +4 -0
- package/dist/layout/deviceIdiom.js +12 -0
- package/dist/layout/layoutClass.d.ts +44 -0
- package/dist/layout/layoutClass.js +102 -0
- package/dist/layout/navigationLayoutContext.d.ts +8 -0
- package/dist/layout/navigationLayoutContext.js +5 -0
- package/dist/list-form/ListForm.d.ts +158 -0
- package/dist/list-form/ListForm.js +427 -0
- package/dist/list-form/ListItem.d.ts +30 -0
- package/dist/list-form/ListItem.js +251 -0
- package/dist/list-form/RowLabel.d.ts +14 -0
- package/dist/list-form/RowLabel.js +11 -0
- package/dist/list-form/Slider.d.ts +18 -0
- package/dist/list-form/Slider.js +235 -0
- package/dist/list-form/StepperButton.d.ts +9 -0
- package/dist/list-form/StepperButton.js +60 -0
- package/dist/list-form/Toggle.d.ts +16 -0
- package/dist/list-form/Toggle.js +204 -0
- package/dist/list-form/editMotion.d.ts +15 -0
- package/dist/list-form/editMotion.js +25 -0
- package/dist/list-form/editing.d.ts +102 -0
- package/dist/list-form/editing.js +51 -0
- package/dist/list-form/listContext.d.ts +4 -0
- package/dist/list-form/listContext.js +5 -0
- package/dist/list-form/offsets.d.ts +26 -0
- package/dist/list-form/offsets.js +34 -0
- package/dist/list-form/reorder.d.ts +20 -0
- package/dist/list-form/reorder.js +193 -0
- package/dist/list-form/rowMotion.d.ts +11 -0
- package/dist/list-form/rowMotion.js +236 -0
- package/dist/list-form/rowMotionScope.d.ts +14 -0
- package/dist/list-form/rowMotionScope.js +61 -0
- package/dist/list-form/separatorInsets.d.ts +4 -0
- package/dist/list-form/separatorInsets.js +87 -0
- package/dist/list-form/sliderContact.d.ts +40 -0
- package/dist/list-form/sliderContact.js +98 -0
- package/dist/list-form/state.d.ts +5 -0
- package/dist/list-form/state.js +8 -0
- package/dist/list-form/toggleContact.d.ts +55 -0
- package/dist/list-form/toggleContact.js +164 -0
- package/dist/media/controller.d.ts +7 -0
- package/dist/media/controller.js +612 -0
- package/dist/media/react.d.ts +9 -0
- package/dist/media/react.js +38 -0
- package/dist/media/systemMedia.d.ts +6 -0
- package/dist/media/systemMedia.js +200 -0
- package/dist/media/types.d.ts +83 -0
- package/dist/media/types.js +1 -0
- package/dist/menu/menuContact.d.ts +20 -0
- package/dist/menu/menuContact.js +286 -0
- package/dist/menu/menuGesture.d.ts +84 -0
- package/dist/menu/menuGesture.js +502 -0
- package/dist/menu/menuInteraction.d.ts +17 -0
- package/dist/menu/menuInteraction.js +34 -0
- package/dist/menu/menuOutside.d.ts +9 -0
- package/dist/menu/menuOutside.js +58 -0
- package/dist/menu/menuPanelContact.d.ts +11 -0
- package/dist/menu/menuPanelContact.js +77 -0
- package/dist/menu/menuTriggerHold.d.ts +3 -0
- package/dist/menu/menuTriggerHold.js +52 -0
- package/dist/menu/sampledMotion.d.ts +37 -0
- package/dist/menu/sampledMotion.js +86 -0
- package/dist/modal/lifecycle.d.ts +10 -0
- package/dist/modal/lifecycle.js +189 -0
- package/dist/motion/TransitionView.d.ts +12 -0
- package/dist/motion/TransitionView.js +118 -0
- package/dist/motion/animate.d.ts +20 -0
- package/dist/motion/animate.js +79 -0
- package/dist/motion/animationValue.d.ts +25 -0
- package/dist/motion/animationValue.js +42 -0
- package/dist/motion/composerMotion.d.ts +3 -0
- package/dist/motion/composerMotion.js +15 -0
- package/dist/motion/layoutTransaction.d.ts +7 -0
- package/dist/motion/layoutTransaction.js +28 -0
- package/dist/motion/matchedGeometry.d.ts +55 -0
- package/dist/motion/matchedGeometry.js +412 -0
- package/dist/motion/springPath.d.ts +27 -0
- package/dist/motion/springPath.js +46 -0
- package/dist/motion/springTrack.d.ts +33 -0
- package/dist/motion/springTrack.js +69 -0
- package/dist/motion/transition.d.ts +48 -0
- package/dist/motion/transition.js +56 -0
- package/dist/motion/transitionImages.d.ts +7 -0
- package/dist/motion/transitionImages.js +49 -0
- package/dist/motionProbe.d.ts +227 -0
- package/dist/motionProbe.js +697 -0
- package/dist/motionProbeControls.d.ts +2 -0
- package/dist/motionProbeControls.js +118 -0
- package/dist/motionProbeDelivery.d.ts +15 -0
- package/dist/motionProbeDelivery.js +84 -0
- package/dist/navigation/DetailList.d.ts +9 -0
- package/dist/navigation/DetailList.js +7 -0
- package/dist/navigation/NavigationChrome.d.ts +18 -0
- package/dist/navigation/NavigationChrome.js +195 -0
- package/dist/navigation/NavigationSearchRow.d.ts +9 -0
- package/dist/navigation/NavigationSearchRow.js +101 -0
- package/dist/navigation/NavigationTitleSlots.d.ts +18 -0
- package/dist/navigation/NavigationTitleSlots.js +64 -0
- package/dist/navigation/NavigatorHost.d.ts +17 -0
- package/dist/navigation/NavigatorHost.js +534 -0
- package/dist/navigation/ScreenContainer.d.ts +31 -0
- package/dist/navigation/ScreenContainer.js +219 -0
- package/dist/navigation/ScrubSourceFrames.d.ts +18 -0
- package/dist/navigation/ScrubSourceFrames.js +67 -0
- package/dist/navigation/Sidebar.d.ts +16 -0
- package/dist/navigation/Sidebar.js +20 -0
- package/dist/navigation/SidebarSymbol.d.ts +4 -0
- package/dist/navigation/SidebarSymbol.js +6 -0
- package/dist/navigation/ToolbarGlass.d.ts +2 -0
- package/dist/navigation/ToolbarGlass.js +429 -0
- package/dist/navigation/TransitionEdge.d.ts +4 -0
- package/dist/navigation/TransitionEdge.js +33 -0
- package/dist/navigation/bottomToolbarGeometry.d.ts +6 -0
- package/dist/navigation/bottomToolbarGeometry.js +14 -0
- package/dist/navigation/chromeCurves.d.ts +48 -0
- package/dist/navigation/chromeCurves.js +255 -0
- package/dist/navigation/glassTransition.d.ts +32 -0
- package/dist/navigation/glassTransition.js +55 -0
- package/dist/navigation/horizontalDrag.d.ts +6 -0
- package/dist/navigation/horizontalDrag.js +15 -0
- package/dist/navigation/interactivePop.d.ts +45 -0
- package/dist/navigation/interactivePop.js +86 -0
- package/dist/navigation/interactivePopTypes.d.ts +85 -0
- package/dist/navigation/interactivePopTypes.js +36 -0
- package/dist/navigation/keyboard.d.ts +9 -0
- package/dist/navigation/keyboard.js +55 -0
- package/dist/navigation/motion.d.ts +19 -0
- package/dist/navigation/motion.js +645 -0
- package/dist/navigation/motionTokens.d.ts +43 -0
- package/dist/navigation/motionTokens.js +75 -0
- package/dist/navigation/nativeScrubExperiment.d.ts +5 -0
- package/dist/navigation/nativeScrubExperiment.js +153 -0
- package/dist/navigation/nativeScrubSource.d.ts +15 -0
- package/dist/navigation/nativeScrubSource.js +88 -0
- package/dist/navigation/navigationChromeModel.d.ts +8 -0
- package/dist/navigation/navigationChromeModel.js +30 -0
- package/dist/navigation/navigationContext.d.ts +22 -0
- package/dist/navigation/navigationContext.js +65 -0
- package/dist/navigation/navigationEdge.d.ts +4 -0
- package/dist/navigation/navigationEdge.js +101 -0
- package/dist/navigation/pointerPop.d.ts +32 -0
- package/dist/navigation/pointerPop.js +206 -0
- package/dist/navigation/probeLayers.d.ts +7 -0
- package/dist/navigation/probeLayers.js +8 -0
- package/dist/navigation/registry.d.ts +14 -0
- package/dist/navigation/registry.js +31 -0
- package/dist/navigation/releaseDecision.d.ts +21 -0
- package/dist/navigation/releaseDecision.js +94 -0
- package/dist/navigation/releaseTrajectory.d.ts +20 -0
- package/dist/navigation/releaseTrajectory.js +95 -0
- package/dist/navigation/releaseVelocity.d.ts +9 -0
- package/dist/navigation/releaseVelocity.js +38 -0
- package/dist/navigation/routeCodec.d.ts +33 -0
- package/dist/navigation/routeCodec.js +123 -0
- package/dist/navigation/scrollEdge.d.ts +18 -0
- package/dist/navigation/scrollEdge.js +66 -0
- package/dist/navigation/scrubFrameLoop.d.ts +44 -0
- package/dist/navigation/scrubFrameLoop.js +129 -0
- package/dist/navigation/sidebarSelection.d.ts +5 -0
- package/dist/navigation/sidebarSelection.js +8 -0
- package/dist/navigation/splitContext.d.ts +17 -0
- package/dist/navigation/splitContext.js +9 -0
- package/dist/navigation/splitState.d.ts +46 -0
- package/dist/navigation/splitState.js +130 -0
- package/dist/navigation/stack.d.ts +25 -0
- package/dist/navigation/stack.js +136 -0
- package/dist/navigation/store.d.ts +80 -0
- package/dist/navigation/store.js +464 -0
- package/dist/navigation/toolbarGlassMotion.d.ts +40 -0
- package/dist/navigation/toolbarGlassMotion.js +202 -0
- package/dist/navigation/toolbarMinimization.d.ts +9 -0
- package/dist/navigation/toolbarMinimization.js +76 -0
- package/dist/navigation/toolbarMotionOwner.d.ts +6 -0
- package/dist/navigation/toolbarMotionOwner.js +30 -0
- package/dist/navigation/touchArbitration.d.ts +34 -0
- package/dist/navigation/touchArbitration.js +550 -0
- package/dist/navigation/tracking.d.ts +7 -0
- package/dist/navigation/tracking.js +19 -0
- package/dist/navigation/transitionBindings.d.ts +31 -0
- package/dist/navigation/transitionBindings.js +106 -0
- package/dist/navigation/transitionChrome.d.ts +31 -0
- package/dist/navigation/transitionChrome.js +380 -0
- package/dist/navigation/transitionPose.d.ts +52 -0
- package/dist/navigation/transitionPose.js +295 -0
- package/dist/navigation/types.d.ts +133 -0
- package/dist/navigation/types.js +1 -0
- package/dist/navigation/zoomDrag.d.ts +3 -0
- package/dist/navigation/zoomDrag.js +125 -0
- package/dist/navigation/zoomGeometry.d.ts +48 -0
- package/dist/navigation/zoomGeometry.js +94 -0
- package/dist/navigation/zoomGlass.d.ts +27 -0
- package/dist/navigation/zoomGlass.js +64 -0
- package/dist/navigation/zoomMotion.d.ts +73 -0
- package/dist/navigation/zoomMotion.js +104 -0
- package/dist/navigation/zoomTransition.d.ts +82 -0
- package/dist/navigation/zoomTransition.js +975 -0
- package/dist/presentation/Presentation.d.ts +61 -0
- package/dist/presentation/Presentation.js +92 -0
- package/dist/presentation/PresentationSurface.d.ts +29 -0
- package/dist/presentation/PresentationSurface.js +586 -0
- package/dist/presentation/PresentedSheet.d.ts +2 -0
- package/dist/presentation/PresentedSheet.js +571 -0
- package/dist/presentation/activity.d.ts +3 -0
- package/dist/presentation/activity.js +24 -0
- package/dist/presentation/coldLaunch.d.ts +2 -0
- package/dist/presentation/coldLaunch.js +19 -0
- package/dist/presentation/dismiss.d.ts +26 -0
- package/dist/presentation/dismiss.js +30 -0
- package/dist/presentation/glassMotion.d.ts +39 -0
- package/dist/presentation/glassMotion.js +259 -0
- package/dist/presentation/glassReady.d.ts +11 -0
- package/dist/presentation/glassReady.js +246 -0
- package/dist/presentation/model.d.ts +108 -0
- package/dist/presentation/model.js +183 -0
- package/dist/presentation/motion.d.ts +56 -0
- package/dist/presentation/motion.js +263 -0
- package/dist/presentation/presentationMotion.d.ts +10 -0
- package/dist/presentation/presentationMotion.js +74 -0
- package/dist/presentation/presentationSource.d.ts +2 -0
- package/dist/presentation/presentationSource.js +28 -0
- package/dist/presentation/sheetChromeContext.d.ts +2 -0
- package/dist/presentation/sheetChromeContext.js +3 -0
- package/dist/presentation/sheetMaterialTransition.d.ts +14 -0
- package/dist/presentation/sheetMaterialTransition.js +33 -0
- package/dist/presentation/sheetReleaseMotion.d.ts +18 -0
- package/dist/presentation/sheetReleaseMotion.js +123 -0
- package/dist/presentation/useAlertKeyboardMotion.d.ts +8 -0
- package/dist/presentation/useAlertKeyboardMotion.js +104 -0
- package/dist/press/Pressable.d.ts +19 -0
- package/dist/press/Pressable.js +16 -0
- package/dist/press/activation.d.ts +20 -0
- package/dist/press/activation.js +28 -0
- package/dist/press/contactReceipt.d.ts +23 -0
- package/dist/press/contactReceipt.js +177 -0
- package/dist/press/gestureArbitration.d.ts +13 -0
- package/dist/press/gestureArbitration.js +38 -0
- package/dist/press/stateMachine.d.ts +29 -0
- package/dist/press/stateMachine.js +39 -0
- package/dist/press/tokens.d.ts +18 -0
- package/dist/press/tokens.js +19 -0
- package/dist/press/usePressInteraction.d.ts +30 -0
- package/dist/press/usePressInteraction.js +247 -0
- package/dist/public/Label.d.ts +16 -0
- package/dist/public/Label.js +40 -0
- package/dist/public/NativeFilePicker.d.ts +19 -0
- package/dist/public/NativeFilePicker.js +75 -0
- package/dist/public/Screen.d.ts +42 -0
- package/dist/public/Screen.js +87 -0
- package/dist/public/actions.d.ts +16 -0
- package/dist/public/actions.js +15 -0
- package/dist/public/buttonBorderShape.d.ts +7 -0
- package/dist/public/buttonBorderShape.js +9 -0
- package/dist/public/chrome.d.ts +3 -0
- package/dist/public/chrome.js +5 -0
- package/dist/public/colors.d.ts +29 -0
- package/dist/public/colors.js +28 -0
- package/dist/public/context.d.ts +19 -0
- package/dist/public/context.js +8 -0
- package/dist/public/controlStyle.d.ts +93 -0
- package/dist/public/controlStyle.js +52 -0
- package/dist/public/controls.d.ts +360 -0
- package/dist/public/controls.js +301 -0
- package/dist/public/definition.d.ts +65 -0
- package/dist/public/definition.js +58 -0
- package/dist/public/deviceActions.d.ts +23 -0
- package/dist/public/deviceActions.js +87 -0
- package/dist/public/environment.d.ts +77 -0
- package/dist/public/environment.js +171 -0
- package/dist/public/fieldContext.d.ts +2 -0
- package/dist/public/fieldContext.js +3 -0
- package/dist/public/filePickers.d.ts +25 -0
- package/dist/public/filePickers.js +11 -0
- package/dist/public/glass.d.ts +31 -0
- package/dist/public/glass.js +29 -0
- package/dist/public/glassValue.d.ts +19 -0
- package/dist/public/glassValue.js +32 -0
- package/dist/public/keyboard.d.ts +4 -0
- package/dist/public/keyboard.js +6 -0
- package/dist/public/navigationTransition.d.ts +48 -0
- package/dist/public/navigationTransition.js +49 -0
- package/dist/public/pickerNavigation.d.ts +7 -0
- package/dist/public/pickerNavigation.js +64 -0
- package/dist/public/presentation.d.ts +40 -0
- package/dist/public/presentation.js +21 -0
- package/dist/public/presentationContext.d.ts +2 -0
- package/dist/public/presentationContext.js +3 -0
- package/dist/public/routeRegistry.d.ts +3 -0
- package/dist/public/routeRegistry.js +10 -0
- package/dist/public/routes.d.ts +74 -0
- package/dist/public/routes.js +105 -0
- package/dist/public/runtime.d.ts +134 -0
- package/dist/public/runtime.js +292 -0
- package/dist/public/screenChrome.d.ts +91 -0
- package/dist/public/screenChrome.js +187 -0
- package/dist/public/scroll.d.ts +38 -0
- package/dist/public/scroll.js +7 -0
- package/dist/public/storage.d.ts +9 -0
- package/dist/public/storage.js +9 -0
- package/dist/public/structure.d.ts +65 -0
- package/dist/public/structure.js +40 -0
- package/dist/public/toolbar.d.ts +37 -0
- package/dist/public/toolbar.js +76 -0
- package/dist/push/PushPermissionExplainer.d.ts +14 -0
- package/dist/push/PushPermissionExplainer.js +30 -0
- package/dist/push/notifications.d.ts +54 -0
- package/dist/push/notifications.js +276 -0
- package/dist/push/routes.d.ts +20 -0
- package/dist/push/routes.js +63 -0
- package/dist/push/schema.d.ts +42 -0
- package/dist/push/schema.js +41 -0
- package/dist/push/urlProjection.d.ts +24 -0
- package/dist/push/urlProjection.js +207 -0
- package/dist/reachability/controller.d.ts +21 -0
- package/dist/reachability/controller.js +202 -0
- package/dist/reachability/model.d.ts +94 -0
- package/dist/reachability/model.js +131 -0
- package/dist/reachability/react.d.ts +29 -0
- package/dist/reachability/react.js +69 -0
- package/dist/restoration/navigation.d.ts +9 -0
- package/dist/restoration/navigation.js +55 -0
- package/dist/restoration/react.d.ts +6 -0
- package/dist/restoration/react.js +21 -0
- package/dist/restoration/routes.d.ts +22 -0
- package/dist/restoration/routes.js +166 -0
- package/dist/restoration/scene.d.ts +44 -0
- package/dist/restoration/scene.js +284 -0
- package/dist/root/SatinRoot.d.ts +25 -0
- package/dist/root/SatinRoot.js +512 -0
- package/dist/root/mountSatin.d.ts +12 -0
- package/dist/root/mountSatin.js +60 -0
- package/dist/root/runtimeContext.d.ts +26 -0
- package/dist/root/runtimeContext.js +30 -0
- package/dist/safe-area/Overlay.d.ts +9 -0
- package/dist/safe-area/Overlay.js +26 -0
- package/dist/safe-area/SafeAreaInset.d.ts +25 -0
- package/dist/safe-area/SafeAreaInset.js +138 -0
- package/dist/safe-area/bottomInsetGeometry.d.ts +12 -0
- package/dist/safe-area/bottomInsetGeometry.js +73 -0
- package/dist/safe-area/context.d.ts +15 -0
- package/dist/safe-area/context.js +8 -0
- package/dist/safe-area/displayCorners.d.ts +21 -0
- package/dist/safe-area/displayCorners.js +70 -0
- package/dist/safe-area/keyboardCarrier.d.ts +26 -0
- package/dist/safe-area/keyboardCarrier.js +394 -0
- package/dist/safe-area/keyboardCarrierGeometry.d.ts +37 -0
- package/dist/safe-area/keyboardCarrierGeometry.js +49 -0
- package/dist/safe-area/modifiers.d.ts +52 -0
- package/dist/safe-area/modifiers.js +86 -0
- package/dist/safe-area/useSafeAreaMetrics.d.ts +83 -0
- package/dist/safe-area/useSafeAreaMetrics.js +367 -0
- package/dist/safe-area/windowChrome.d.ts +7 -0
- package/dist/safe-area/windowChrome.js +14 -0
- package/dist/scroll/RefreshControl.d.ts +8 -0
- package/dist/scroll/RefreshControl.js +135 -0
- package/dist/scroll/ScrollSurface.d.ts +62 -0
- package/dist/scroll/ScrollSurface.js +278 -0
- package/dist/scroll/ScrollTarget.d.ts +6 -0
- package/dist/scroll/ScrollTarget.js +11 -0
- package/dist/scroll/edgePolicy.d.ts +21 -0
- package/dist/scroll/edgePolicy.js +17 -0
- package/dist/scroll/insertionMotion.d.ts +15 -0
- package/dist/scroll/insertionMotion.js +128 -0
- package/dist/scroll/nativeScroll.d.ts +14 -0
- package/dist/scroll/nativeScroll.js +71 -0
- package/dist/scroll/position.d.ts +31 -0
- package/dist/scroll/position.js +273 -0
- package/dist/scroll/pressOwnership.d.ts +4 -0
- package/dist/scroll/pressOwnership.js +65 -0
- package/dist/scroll/refreshMotion.d.ts +9 -0
- package/dist/scroll/refreshMotion.js +15 -0
- package/dist/scroll/refreshable.d.ts +6 -0
- package/dist/scroll/refreshable.js +50 -0
- package/dist/scroll/registry.d.ts +38 -0
- package/dist/scroll/registry.js +261 -0
- package/dist/scroll/screenGeometry.d.ts +8 -0
- package/dist/scroll/screenGeometry.js +50 -0
- package/dist/scroll/scrollIndicator.d.ts +7 -0
- package/dist/scroll/scrollIndicator.js +114 -0
- package/dist/scroll/scrollJump.d.ts +7 -0
- package/dist/scroll/scrollJump.js +16 -0
- package/dist/scroll/types.d.ts +12 -0
- package/dist/scroll/types.js +1 -0
- package/dist/search/SearchDrawer.d.ts +16 -0
- package/dist/search/SearchDrawer.js +421 -0
- package/dist/search/SearchScopesBar.d.ts +6 -0
- package/dist/search/SearchScopesBar.js +12 -0
- package/dist/search/SearchToolbarField.d.ts +8 -0
- package/dist/search/SearchToolbarField.js +115 -0
- package/dist/search/searchBackdrop.d.ts +12 -0
- package/dist/search/searchBackdrop.js +45 -0
- package/dist/search/searchChrome.d.ts +13 -0
- package/dist/search/searchChrome.js +31 -0
- package/dist/search/searchMotion.d.ts +30 -0
- package/dist/search/searchMotion.js +46 -0
- package/dist/search/searchPlacement.d.ts +11 -0
- package/dist/search/searchPlacement.js +15 -0
- package/dist/search/searchable.d.ts +46 -0
- package/dist/search/searchable.js +5 -0
- package/dist/search/useSearchPresentation.d.ts +15 -0
- package/dist/search/useSearchPresentation.js +61 -0
- package/dist/server.d.ts +7 -0
- package/dist/server.js +144 -0
- package/dist/settings/DisclosureIndicator.d.ts +4 -0
- package/dist/settings/DisclosureIndicator.js +6 -0
- package/dist/settings/tokens.d.ts +129 -0
- package/dist/settings/tokens.js +143 -0
- package/dist/shapes/corners.d.ts +14 -0
- package/dist/shapes/corners.js +80 -0
- package/dist/styles.css +9078 -0
- package/dist/styles.css.d.ts +3 -0
- package/dist/sw/activationState.d.ts +20 -0
- package/dist/sw/activationState.js +39 -0
- package/dist/sw/generator.d.ts +14 -0
- package/dist/sw/generator.js +26 -0
- package/dist/sw/manifest.d.ts +32 -0
- package/dist/sw/manifest.js +137 -0
- package/dist/sw/protocol.d.ts +7 -0
- package/dist/sw/protocol.js +7 -0
- package/dist/sw/pushRuntime.d.ts +2 -0
- package/dist/sw/pushRuntime.js +161 -0
- package/dist/sw/registerAppShell.d.ts +25 -0
- package/dist/sw/registerAppShell.js +259 -0
- package/dist/sw/renderServiceWorker.d.ts +10 -0
- package/dist/sw/renderServiceWorker.js +370 -0
- package/dist/sw/requestRouting.d.ts +13 -0
- package/dist/sw/requestRouting.js +26 -0
- package/dist/sw/updateCheck.d.ts +2 -0
- package/dist/sw/updateCheck.js +25 -0
- package/dist/sw/vite.d.ts +20 -0
- package/dist/sw/vite.js +71 -0
- package/dist/symbols/Symbol.d.ts +33 -0
- package/dist/symbols/Symbol.js +59 -0
- package/dist/symbols/catalogue.d.ts +4 -0
- package/dist/symbols/catalogue.js +4139 -0
- package/dist/symbols/exclusions.d.ts +2 -0
- package/dist/symbols/exclusions.js +4 -0
- package/dist/symbols/inheritedWeight.d.ts +3 -0
- package/dist/symbols/inheritedWeight.js +104 -0
- package/dist/symbols/metrics.d.ts +38 -0
- package/dist/symbols/metrics.js +53 -0
- package/dist/symbols/svg.d.ts +3 -0
- package/dist/symbols/svg.js +16 -0
- package/dist/symbols/types.d.ts +30 -0
- package/dist/symbols/types.js +1 -0
- package/dist/tabs/TabSection.d.ts +12 -0
- package/dist/tabs/TabSection.js +4 -0
- package/dist/tabs/TabSidebarSurface.d.ts +7 -0
- package/dist/tabs/TabSidebarSurface.js +29 -0
- package/dist/tabs/TabView.d.ts +28 -0
- package/dist/tabs/TabView.js +258 -0
- package/dist/tabs/accessoryContact.d.ts +2 -0
- package/dist/tabs/accessoryContact.js +42 -0
- package/dist/tabs/compactBar.d.ts +4 -0
- package/dist/tabs/compactBar.js +28 -0
- package/dist/tabs/context.d.ts +8 -0
- package/dist/tabs/context.js +6 -0
- package/dist/tabs/keyboard.d.ts +3 -0
- package/dist/tabs/keyboard.js +23 -0
- package/dist/tabs/model.d.ts +6 -0
- package/dist/tabs/model.js +16 -0
- package/dist/tabs/presentation.d.ts +7 -0
- package/dist/tabs/presentation.js +14 -0
- package/dist/tabs/sourceRevision.d.ts +3 -0
- package/dist/tabs/sourceRevision.js +36 -0
- package/dist/tabs/tabSidebarGlyph.d.ts +2 -0
- package/dist/tabs/tabSidebarGlyph.js +11 -0
- package/dist/tasks/useTask.d.ts +16 -0
- package/dist/tasks/useTask.js +67 -0
- package/dist/testing.d.ts +9 -0
- package/dist/testing.js +11 -0
- package/dist/text-input/TextEditor.d.ts +25 -0
- package/dist/text-input/TextEditor.js +74 -0
- package/dist/text-input/TextField.d.ts +32 -0
- package/dist/text-input/TextField.js +29 -0
- package/dist/text-input/editorGeometry.d.ts +2 -0
- package/dist/text-input/editorGeometry.js +6 -0
- package/dist/text-input/editorTextLayout.d.ts +2 -0
- package/dist/text-input/editorTextLayout.js +31 -0
- package/dist/text-input/focusChain.d.ts +27 -0
- package/dist/text-input/focusChain.js +62 -0
- package/dist/text-input/kinds.d.ts +8 -0
- package/dist/text-input/kinds.js +34 -0
- package/dist/text-input/measureEditor.d.ts +2 -0
- package/dist/text-input/measureEditor.js +50 -0
- package/dist/text-input/submit.d.ts +9 -0
- package/dist/text-input/submit.js +7 -0
- package/dist/unstable.d.ts +16 -0
- package/dist/unstable.js +16 -0
- package/dist/vite.d.ts +3 -0
- package/dist/vite.js +3 -0
- package/dist/web/WebView.d.ts +42 -0
- package/dist/web/WebView.js +115 -0
- package/dist/web/authentication.d.ts +75 -0
- package/dist/web/authentication.js +488 -0
- package/dist/web/openURL.d.ts +37 -0
- package/dist/web/openURL.js +89 -0
- package/dist/web/urlPolicy.d.ts +3 -0
- package/dist/web/urlPolicy.js +19 -0
- package/dist/web/useWebAuthentication.d.ts +3 -0
- package/dist/web/useWebAuthentication.js +6 -0
- package/dist/zoom/Zoomable.d.ts +10 -0
- package/dist/zoom/Zoomable.js +116 -0
- package/dist/zoom/geometry.d.ts +11 -0
- package/dist/zoom/geometry.js +16 -0
- package/package.json +116 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type MenuSymbolName = 'info.circle' | 'star' | 'square.and.arrow.up' | 'trash';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export declare const menuSymbolTokens: {
|
|
2
|
+
readonly rowHeight: 42;
|
|
3
|
+
readonly labelLeft: 57;
|
|
4
|
+
readonly positions: {
|
|
5
|
+
readonly 'info.circle': {
|
|
6
|
+
readonly left: number;
|
|
7
|
+
readonly top: number;
|
|
8
|
+
};
|
|
9
|
+
readonly star: {
|
|
10
|
+
readonly left: 22;
|
|
11
|
+
readonly top: number;
|
|
12
|
+
};
|
|
13
|
+
readonly 'square.and.arrow.up': {
|
|
14
|
+
readonly left: number;
|
|
15
|
+
readonly top: 9;
|
|
16
|
+
};
|
|
17
|
+
readonly trash: {
|
|
18
|
+
readonly left: number;
|
|
19
|
+
readonly top: number;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/* iPhone 17 Pro / iOS 26.5 toolbar reference, measured at DPR 3.
|
|
2
|
+
* Local positions include UIKit's symbol alignment margins. */
|
|
3
|
+
export const menuSymbolTokens = {
|
|
4
|
+
rowHeight: 42,
|
|
5
|
+
labelLeft: 57,
|
|
6
|
+
positions: {
|
|
7
|
+
'info.circle': { left: 70 / 3, top: 35 / 3 },
|
|
8
|
+
star: { left: 22, top: 32 / 3 },
|
|
9
|
+
'square.and.arrow.up': { left: 71 / 3, top: 9 },
|
|
10
|
+
trash: { left: 71 / 3, top: 31 / 3 },
|
|
11
|
+
},
|
|
12
|
+
};
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/** The span is a layout slot and may stretch across a flex/grid column. It is not the trigger. */
|
|
2
|
+
export declare function menuTriggerElement(anchor: HTMLElement | null): HTMLElement | null | undefined;
|
|
3
|
+
/** The glass a Menu morphs out of, and the menu's own button when that glass is wider than it.
|
|
4
|
+
* A glass button is its own glass. A plain button inside a toolbar group shares the group's one
|
|
5
|
+
* glass platter with its neighbours: native morphs the whole platter into the menu (its drop
|
|
6
|
+
* forms under the pressed member and the neighbours' symbols fade with the platter). */
|
|
7
|
+
export declare function menuTriggerSource(anchor: HTMLElement | null): {
|
|
8
|
+
glass: HTMLElement;
|
|
9
|
+
member: HTMLElement | undefined;
|
|
10
|
+
} | {
|
|
11
|
+
glass: HTMLElement | undefined;
|
|
12
|
+
member: undefined;
|
|
13
|
+
};
|
|
14
|
+
/** A toolbar's material lives outside its content; hide and lock the complete content run. */
|
|
15
|
+
export declare function menuTriggerContents(anchor: HTMLElement | null): HTMLElement[];
|
|
16
|
+
/** The same viewport-space aperture as the pressed region, including its top-edge pivot.
|
|
17
|
+
* Read the rendered corner radius so a custom rounded rectangle stays a rectangle. */
|
|
18
|
+
export declare function menuTriggerGeometry(rect: {
|
|
19
|
+
x: number;
|
|
20
|
+
y: number;
|
|
21
|
+
width: number;
|
|
22
|
+
height: number;
|
|
23
|
+
}, radius: number, scale?: number): {
|
|
24
|
+
x: number;
|
|
25
|
+
y: number;
|
|
26
|
+
width: number;
|
|
27
|
+
height: number;
|
|
28
|
+
radius: number;
|
|
29
|
+
};
|
|
30
|
+
/** A return aperture must still be visible in the current viewport and its clipping ancestors. */
|
|
31
|
+
export declare function menuTriggerReturnGeometry(anchor: HTMLElement | null, viewport: {
|
|
32
|
+
x: number;
|
|
33
|
+
y: number;
|
|
34
|
+
width: number;
|
|
35
|
+
height: number;
|
|
36
|
+
}, at?: number): {
|
|
37
|
+
x: number;
|
|
38
|
+
y: number;
|
|
39
|
+
width: number;
|
|
40
|
+
height: number;
|
|
41
|
+
radius: number;
|
|
42
|
+
} | undefined;
|
|
43
|
+
/** Plain value labels (a menu-style Picker's value, a text Menu label) have no material of
|
|
44
|
+
* their own, but the native Picker's drop still leaves the label (picker-glass-sheet). */
|
|
45
|
+
export declare function menuTriggerHasGlass(element: HTMLElement | undefined): boolean;
|
|
46
|
+
/** The virtual trigger of a plain label: the label's own box as a capsule. It takes part in
|
|
47
|
+
* the shared glass field like a glass button's, but draws no glass at rest. */
|
|
48
|
+
export declare function menuLabelTrigger(rect: {
|
|
49
|
+
x: number;
|
|
50
|
+
y: number;
|
|
51
|
+
width: number;
|
|
52
|
+
height: number;
|
|
53
|
+
}): {
|
|
54
|
+
x: number;
|
|
55
|
+
y: number;
|
|
56
|
+
width: number;
|
|
57
|
+
height: number;
|
|
58
|
+
radius: number;
|
|
59
|
+
};
|
|
60
|
+
/** How a plain trigger takes part in the menu's glass. An icon-only button (a box at least
|
|
61
|
+
* two thirds as thick as it is long, like the Now Playing ellipsis) is a glyph: its drop is a
|
|
62
|
+
* glass button's that swells out of nothing. A wider box is a text label: menu-style Picker
|
|
63
|
+
* values keep their measured label drop (picker-glass-sheet). */
|
|
64
|
+
export declare function plainMenuSourceKind(rect: {
|
|
65
|
+
width: number;
|
|
66
|
+
height: number;
|
|
67
|
+
}): 'glyph' | 'label';
|
|
68
|
+
export declare function contextMenuSeed(rect: {
|
|
69
|
+
x: number;
|
|
70
|
+
y: number;
|
|
71
|
+
width: number;
|
|
72
|
+
height: number;
|
|
73
|
+
}): {
|
|
74
|
+
x: number;
|
|
75
|
+
y: number;
|
|
76
|
+
width: number;
|
|
77
|
+
height: number;
|
|
78
|
+
radius: number;
|
|
79
|
+
};
|
|
80
|
+
/** Where a dismissed context menu's body collapses: the same 92x25 pt aperture as its open seed,
|
|
81
|
+
* on the side of its source that faces the menu. Native's body shrinks back into its source; a
|
|
82
|
+
* menu placed above its preview (a grid tile near the bottom of the screen) collapses onto the
|
|
83
|
+
* source's top edge rather than travelling across the preview to the seed below it. The facing
|
|
84
|
+
* side is principled, not measured: only the below-the-source seed has a native capture. */
|
|
85
|
+
export declare function contextMenuReturnSeed(source: {
|
|
86
|
+
x: number;
|
|
87
|
+
y: number;
|
|
88
|
+
width: number;
|
|
89
|
+
height: number;
|
|
90
|
+
}, panel?: {
|
|
91
|
+
y: number;
|
|
92
|
+
height: number;
|
|
93
|
+
}): {
|
|
94
|
+
x: number;
|
|
95
|
+
y: number;
|
|
96
|
+
width: number;
|
|
97
|
+
height: number;
|
|
98
|
+
radius: number;
|
|
99
|
+
};
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { toolbarMaterialOwner, toolbarMenuContents } from './toolbarMaterialContext.js';
|
|
2
|
+
import { lowerShapeTop } from './lens/drawableTop.js';
|
|
3
|
+
import { glassAperture } from './shapeTrackRegistry.js';
|
|
4
|
+
import { shapeTrackClock } from './shapeTrack.js';
|
|
5
|
+
/** The span is a layout slot and may stretch across a flex/grid column. It is not the trigger. */
|
|
6
|
+
export function menuTriggerElement(anchor) {
|
|
7
|
+
return (anchor?.querySelector('[data-satin-glass-effect]') ??
|
|
8
|
+
anchor?.querySelector('button') ??
|
|
9
|
+
anchor?.firstElementChild);
|
|
10
|
+
}
|
|
11
|
+
/** The glass a Menu morphs out of, and the menu's own button when that glass is wider than it.
|
|
12
|
+
* A glass button is its own glass. A plain button inside a toolbar group shares the group's one
|
|
13
|
+
* glass platter with its neighbours: native morphs the whole platter into the menu (its drop
|
|
14
|
+
* forms under the pressed member and the neighbours' symbols fade with the platter). */
|
|
15
|
+
export function menuTriggerSource(anchor) {
|
|
16
|
+
const owner = toolbarMaterialOwner(menuTriggerElement(anchor));
|
|
17
|
+
if (owner) {
|
|
18
|
+
return { glass: owner, member: menuTriggerElement(anchor) ?? undefined };
|
|
19
|
+
}
|
|
20
|
+
const own = anchor?.querySelector('[data-satin-glass-effect]');
|
|
21
|
+
if (own)
|
|
22
|
+
return { glass: own, member: undefined };
|
|
23
|
+
const group = anchor?.closest('[data-satin-toolbar-group]');
|
|
24
|
+
if (!group)
|
|
25
|
+
return { glass: menuTriggerElement(anchor) ?? undefined, member: undefined };
|
|
26
|
+
return { glass: group, member: menuTriggerElement(anchor) ?? undefined };
|
|
27
|
+
}
|
|
28
|
+
/** A toolbar's material lives outside its content; hide and lock the complete content run. */
|
|
29
|
+
export function menuTriggerContents(anchor) {
|
|
30
|
+
const { glass } = menuTriggerSource(anchor);
|
|
31
|
+
return toolbarMaterialOwner(menuTriggerElement(anchor))
|
|
32
|
+
? toolbarMenuContents(menuTriggerElement(anchor))
|
|
33
|
+
: glass
|
|
34
|
+
? [glass]
|
|
35
|
+
: [];
|
|
36
|
+
}
|
|
37
|
+
/** The same viewport-space aperture as the pressed region, including its top-edge pivot.
|
|
38
|
+
* Read the rendered corner radius so a custom rounded rectangle stays a rectangle. */
|
|
39
|
+
export function menuTriggerGeometry(rect, radius, scale = 1) {
|
|
40
|
+
const width = rect.width * scale, height = rect.height * scale;
|
|
41
|
+
const shape = lowerShapeTop({ centerY: rect.height / 2, halfHeight: height / 2 }, rect.y);
|
|
42
|
+
return {
|
|
43
|
+
x: rect.x - (width - rect.width) / 2,
|
|
44
|
+
y: rect.y + shape.centerY - shape.halfHeight,
|
|
45
|
+
width,
|
|
46
|
+
height,
|
|
47
|
+
radius: Math.min(Math.max(0, radius * scale), width / 2, height / 2),
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
/** A return aperture must still be visible in the current viewport and its clipping ancestors. */
|
|
51
|
+
export function menuTriggerReturnGeometry(anchor, viewport, at = shapeTrackClock()) {
|
|
52
|
+
const { glass } = menuTriggerSource(anchor);
|
|
53
|
+
if (!anchor?.isConnected || !glass?.isConnected)
|
|
54
|
+
return undefined;
|
|
55
|
+
const rect = glassAperture(glass, at);
|
|
56
|
+
let left = Math.max(rect.x, viewport.x);
|
|
57
|
+
let top = Math.max(rect.y, viewport.y);
|
|
58
|
+
let right = Math.min(rect.x + rect.width, viewport.x + viewport.width);
|
|
59
|
+
let bottom = Math.min(rect.y + rect.height, viewport.y + viewport.height);
|
|
60
|
+
for (let parent = glass.parentElement; parent; parent = parent.parentElement) {
|
|
61
|
+
const style = getComputedStyle(parent);
|
|
62
|
+
const clipsX = /auto|scroll|hidden|clip/.test(style.overflowX);
|
|
63
|
+
const clipsY = /auto|scroll|hidden|clip/.test(style.overflowY);
|
|
64
|
+
if (!clipsX && !clipsY)
|
|
65
|
+
continue;
|
|
66
|
+
const bounds = parent.getBoundingClientRect();
|
|
67
|
+
if (clipsX) {
|
|
68
|
+
left = Math.max(left, bounds.left);
|
|
69
|
+
right = Math.min(right, bounds.right);
|
|
70
|
+
}
|
|
71
|
+
if (clipsY) {
|
|
72
|
+
top = Math.max(top, bounds.top);
|
|
73
|
+
bottom = Math.min(bottom, bounds.bottom);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
if (rect.width <= 0 || rect.height <= 0 || right <= left || bottom <= top)
|
|
77
|
+
return undefined;
|
|
78
|
+
return menuTriggerHasGlass(glass)
|
|
79
|
+
? menuTriggerGeometry(rect, rect.radius)
|
|
80
|
+
: menuLabelTrigger(rect);
|
|
81
|
+
}
|
|
82
|
+
/** Plain value labels (a menu-style Picker's value, a text Menu label) have no material of
|
|
83
|
+
* their own, but the native Picker's drop still leaves the label (picker-glass-sheet). */
|
|
84
|
+
export function menuTriggerHasGlass(element) {
|
|
85
|
+
return !!element?.matches('[data-satin-glass-effect], [data-satin-glass-button], [data-satin-toolbar-group], [data-satin-toolbar-glass]');
|
|
86
|
+
}
|
|
87
|
+
/** The virtual trigger of a plain label: the label's own box as a capsule. It takes part in
|
|
88
|
+
* the shared glass field like a glass button's, but draws no glass at rest. */
|
|
89
|
+
export function menuLabelTrigger(rect) {
|
|
90
|
+
return {
|
|
91
|
+
x: rect.x,
|
|
92
|
+
y: rect.y,
|
|
93
|
+
width: rect.width,
|
|
94
|
+
height: rect.height,
|
|
95
|
+
radius: rect.height / 2,
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
/** How a plain trigger takes part in the menu's glass. An icon-only button (a box at least
|
|
99
|
+
* two thirds as thick as it is long, like the Now Playing ellipsis) is a glyph: its drop is a
|
|
100
|
+
* glass button's that swells out of nothing. A wider box is a text label: menu-style Picker
|
|
101
|
+
* values keep their measured label drop (picker-glass-sheet). */
|
|
102
|
+
export function plainMenuSourceKind(rect) {
|
|
103
|
+
const thick = Math.min(rect.width, rect.height), long = Math.max(rect.width, rect.height);
|
|
104
|
+
return long > 0 && thick / long >= 2 / 3 ? 'glyph' : 'label';
|
|
105
|
+
}
|
|
106
|
+
/* First resolved native context body, native opening measurements: a 92x25 pt aperture below
|
|
107
|
+
* the resting preview. The preview itself never enters the material field. */
|
|
108
|
+
export function contextMenuSeed(rect) {
|
|
109
|
+
return {
|
|
110
|
+
x: rect.x + rect.width / 2 - 46,
|
|
111
|
+
y: rect.y + rect.height + 2,
|
|
112
|
+
width: 92,
|
|
113
|
+
height: 25,
|
|
114
|
+
radius: 12.5,
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
/** Where a dismissed context menu's body collapses: the same 92x25 pt aperture as its open seed,
|
|
118
|
+
* on the side of its source that faces the menu. Native's body shrinks back into its source; a
|
|
119
|
+
* menu placed above its preview (a grid tile near the bottom of the screen) collapses onto the
|
|
120
|
+
* source's top edge rather than travelling across the preview to the seed below it. The facing
|
|
121
|
+
* side is principled, not measured: only the below-the-source seed has a native capture. */
|
|
122
|
+
export function contextMenuReturnSeed(source, panel) {
|
|
123
|
+
const below = contextMenuSeed(source);
|
|
124
|
+
const panelAbove = panel && panel.height > 0 && panel.y + panel.height / 2 < source.y + source.height / 2;
|
|
125
|
+
return panelAbove ? { ...below, y: source.y - 2 - below.height } : below;
|
|
126
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
export declare function snapshotMenuTrigger(element: HTMLElement): {
|
|
2
|
+
id: number;
|
|
3
|
+
at: number;
|
|
4
|
+
element: HTMLElement;
|
|
5
|
+
layout: {
|
|
6
|
+
x: number;
|
|
7
|
+
y: number;
|
|
8
|
+
width: number;
|
|
9
|
+
height: number;
|
|
10
|
+
};
|
|
11
|
+
envelope: DOMRect;
|
|
12
|
+
aperture: {
|
|
13
|
+
x: number;
|
|
14
|
+
y: number;
|
|
15
|
+
width: number;
|
|
16
|
+
height: number;
|
|
17
|
+
radius: number;
|
|
18
|
+
};
|
|
19
|
+
members: {
|
|
20
|
+
element: HTMLElement;
|
|
21
|
+
geometry: {
|
|
22
|
+
bounds: DOMRect;
|
|
23
|
+
rects: Map<Element, DOMRect>;
|
|
24
|
+
lines: Map<Text, {
|
|
25
|
+
text: string;
|
|
26
|
+
rect: DOMRect;
|
|
27
|
+
}[]>;
|
|
28
|
+
};
|
|
29
|
+
}[];
|
|
30
|
+
} | undefined;
|
|
31
|
+
export declare function menuTriggerSnapshot(element: HTMLElement, id: number | undefined): {
|
|
32
|
+
id: number;
|
|
33
|
+
at: number;
|
|
34
|
+
element: HTMLElement;
|
|
35
|
+
layout: {
|
|
36
|
+
x: number;
|
|
37
|
+
y: number;
|
|
38
|
+
width: number;
|
|
39
|
+
height: number;
|
|
40
|
+
};
|
|
41
|
+
envelope: DOMRect;
|
|
42
|
+
aperture: {
|
|
43
|
+
x: number;
|
|
44
|
+
y: number;
|
|
45
|
+
width: number;
|
|
46
|
+
height: number;
|
|
47
|
+
radius: number;
|
|
48
|
+
};
|
|
49
|
+
members: {
|
|
50
|
+
element: HTMLElement;
|
|
51
|
+
geometry: {
|
|
52
|
+
bounds: DOMRect;
|
|
53
|
+
rects: Map<Element, DOMRect>;
|
|
54
|
+
lines: Map<Text, {
|
|
55
|
+
text: string;
|
|
56
|
+
rect: DOMRect;
|
|
57
|
+
}[]>;
|
|
58
|
+
};
|
|
59
|
+
}[];
|
|
60
|
+
} | undefined;
|
|
61
|
+
/** Move a captured viewport pose into the renderer's resting plane without resampling it. */
|
|
62
|
+
export declare function mapTriggerSnapshot(snapshot: NonNullable<ReturnType<typeof menuTriggerSnapshot>>, envelope: {
|
|
63
|
+
x: number;
|
|
64
|
+
y: number;
|
|
65
|
+
width: number;
|
|
66
|
+
height: number;
|
|
67
|
+
}): {
|
|
68
|
+
aperture: DOMRect;
|
|
69
|
+
members: {
|
|
70
|
+
bounds: DOMRect;
|
|
71
|
+
rects: Map<Element, DOMRect>;
|
|
72
|
+
lines: Map<Text, {
|
|
73
|
+
text: string;
|
|
74
|
+
rect: DOMRect;
|
|
75
|
+
}[]>;
|
|
76
|
+
}[];
|
|
77
|
+
};
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { glassApertureInFrame, glassShapeTrack } from './shapeTrackRegistry.js';
|
|
2
|
+
import { shapeTrackClock } from './shapeTrack.js';
|
|
3
|
+
import { toolbarMaterialContent, toolbarMenuContents } from './toolbarMaterialContext.js';
|
|
4
|
+
import { foregroundGeometry } from './webgpu/foreground.js';
|
|
5
|
+
/** A menu owns one source pose through asynchronous atlas preparation. DOM geometry must not
|
|
6
|
+
* be read again after font/image decoding has allowed the toolbar to advance. */
|
|
7
|
+
let generation = 0;
|
|
8
|
+
const snapshots = new WeakMap();
|
|
9
|
+
function createSnapshot(element) {
|
|
10
|
+
const at = shapeTrackClock();
|
|
11
|
+
const envelope = element.getBoundingClientRect();
|
|
12
|
+
const aperture = glassApertureInFrame(element, envelope, at);
|
|
13
|
+
const layout = localBox(element);
|
|
14
|
+
const members = toolbarMenuContents(toolbarMaterialContent(element)).map(member => ({
|
|
15
|
+
element: member,
|
|
16
|
+
geometry: foregroundGeometry(member),
|
|
17
|
+
}));
|
|
18
|
+
return { id: ++generation, at, element, layout, envelope, aperture, members };
|
|
19
|
+
}
|
|
20
|
+
function localBox(element) {
|
|
21
|
+
const style = getComputedStyle(element);
|
|
22
|
+
return {
|
|
23
|
+
x: parseFloat(style.left) || 0,
|
|
24
|
+
y: parseFloat(style.top) || 0,
|
|
25
|
+
width: parseFloat(style.width) || element.offsetWidth,
|
|
26
|
+
height: parseFloat(style.height) || element.offsetHeight,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
export function snapshotMenuTrigger(element) {
|
|
30
|
+
if (!glassShapeTrack(element))
|
|
31
|
+
return undefined;
|
|
32
|
+
const snapshot = createSnapshot(element);
|
|
33
|
+
snapshots.set(element, snapshot);
|
|
34
|
+
return snapshot;
|
|
35
|
+
}
|
|
36
|
+
export function menuTriggerSnapshot(element, id) {
|
|
37
|
+
const snapshot = snapshots.get(element);
|
|
38
|
+
return snapshot?.id === id ? snapshot : undefined;
|
|
39
|
+
}
|
|
40
|
+
/** Move a captured viewport pose into the renderer's resting plane without resampling it. */
|
|
41
|
+
export function mapTriggerSnapshot(snapshot, envelope) {
|
|
42
|
+
// The toolbar may retire its envelope during decoding. Only its ancestor transform belongs
|
|
43
|
+
// to this mapping; a new endpoint width must not stretch the earlier aperture or glyphs.
|
|
44
|
+
const current = localBox(snapshot.element);
|
|
45
|
+
const scaleX = current.width ? envelope.width / current.width : 1;
|
|
46
|
+
const scaleY = current.height ? envelope.height / current.height : 1;
|
|
47
|
+
const origin = {
|
|
48
|
+
x: envelope.x + (snapshot.layout.x - current.x) * scaleX,
|
|
49
|
+
y: envelope.y + (snapshot.layout.y - current.y) * scaleY,
|
|
50
|
+
};
|
|
51
|
+
const sx = snapshot.envelope.width
|
|
52
|
+
? (snapshot.layout.width * scaleX) / snapshot.envelope.width
|
|
53
|
+
: 1;
|
|
54
|
+
const sy = snapshot.envelope.height
|
|
55
|
+
? (snapshot.layout.height * scaleY) / snapshot.envelope.height
|
|
56
|
+
: 1;
|
|
57
|
+
const map = (rect) => new DOMRect(origin.x + (rect.x - snapshot.envelope.x) * sx, origin.y + (rect.y - snapshot.envelope.y) * sy, rect.width * sx, rect.height * sy);
|
|
58
|
+
return {
|
|
59
|
+
aperture: map(snapshot.aperture),
|
|
60
|
+
members: snapshot.members.map(({ geometry }) => ({
|
|
61
|
+
bounds: map(geometry.bounds),
|
|
62
|
+
rects: new Map([...geometry.rects].map(([element, rect]) => [element, map(rect)])),
|
|
63
|
+
lines: new Map([...geometry.lines].map(([node, lines]) => [
|
|
64
|
+
node,
|
|
65
|
+
lines.map(line => ({ ...line, rect: map(line.rect) })),
|
|
66
|
+
])),
|
|
67
|
+
})),
|
|
68
|
+
};
|
|
69
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { Action } from '../actions/types.js';
|
|
3
|
+
import type { MenuSymbolName } from './menuSymbolMasks.js';
|
|
4
|
+
export type GlassAction = Readonly<{
|
|
5
|
+
id: string;
|
|
6
|
+
label: string;
|
|
7
|
+
icon?: ReactNode;
|
|
8
|
+
symbol?: MenuSymbolName;
|
|
9
|
+
destructive?: boolean;
|
|
10
|
+
onPress: () => void;
|
|
11
|
+
}>;
|
|
12
|
+
/** A menu entry at any depth: sections and submenus nest glass actions as well as plain ones. */
|
|
13
|
+
export type MenuEntry = Action | GlassAction | Readonly<{
|
|
14
|
+
section: readonly MenuEntry[];
|
|
15
|
+
label?: string;
|
|
16
|
+
}> | Readonly<{
|
|
17
|
+
id: string;
|
|
18
|
+
label: string;
|
|
19
|
+
icon?: ReactNode;
|
|
20
|
+
disabled?: boolean;
|
|
21
|
+
submenu: readonly MenuEntry[];
|
|
22
|
+
}>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { SurfaceRenderSpec } from './renderSpecs.js';
|
|
2
|
+
import type { GlassRegion } from './regions.js';
|
|
3
|
+
export { glassBlendRadius, glassFieldDistance, roundedRectDistance, roundedRectNormal, smoothMinimum, GLASS_BLEND_ANGLE_POWER, type GlassFieldMember, type GlassUnionFrame, } from './fieldGeometry.js';
|
|
4
|
+
export declare function glassIdentityKey(region: Pick<GlassRegion, 'container' | 'morph'>): string | undefined;
|
|
5
|
+
type FieldRegion = Pick<GlassRegion, 'container' | 'morph' | 'namespace' | 'union' | 'shape' | 'material'> & Partial<Pick<GlassRegion, 'layer'>>;
|
|
6
|
+
export declare function glassFieldKey(region: FieldRegion): string;
|
|
7
|
+
export declare function glassUnionDiagnostics(regions: readonly FieldRegion[]): string[];
|
|
8
|
+
/** Conservative visible-field bounds in sample coordinates. Each smooth minimum can
|
|
9
|
+
* extend a union by at most blendRadius / 4; retain the optical sample inset too.
|
|
10
|
+
* Capture geometry stays fixed so animation does not invalidate the backdrop. */
|
|
11
|
+
export declare function morphFieldSampleBounds(spec: SurfaceRenderSpec): readonly [number, number, number, number] | undefined;
|
|
12
|
+
export declare function morphFieldUniforms(spec: SurfaceRenderSpec): Record<string, number | number[]>;
|
|
13
|
+
/** The union field (fieldGeometry.ts is its CPU twin; both share the zero set).
|
|
14
|
+
* morphRawDistance is the smooth union. A smooth minimum flattens the field across a neck
|
|
15
|
+
* (|gradient| is about 0.4 at a 14-pt-gap waist), so material bands measured in field units
|
|
16
|
+
* would widen there into a bright rim bead. morphDistance divides by the gradient near the
|
|
17
|
+
* surface, restoring point-true band widths without moving the contour. */
|
|
18
|
+
export declare const MORPH_FIELD_GLSL = "\nprecision highp float;\nuniform vec4 uMorphParams;\nuniform vec4 uMorphShape0;\nuniform vec4 uMorphShape1;\nuniform vec4 uMorphShape2;\nuniform vec4 uMorphShape3;\nuniform vec4 uMorphShape4;\nuniform vec4 uMorphShape5;\nuniform vec4 uMorphShape6;\nuniform vec4 uMorphShape7;\nuniform vec4 uMorphShape8;\nuniform vec4 uMorphShape9;\nuniform vec4 uMorphShape10;\nuniform vec4 uMorphShape11;\nuniform vec4 uMorphShape12;\nuniform vec4 uMorphShape13;\nuniform vec4 uMorphShape14;\nuniform vec4 uMorphShape15;\nuniform vec4 uMorphRadii0;\nuniform vec4 uMorphRadii1;\nuniform vec4 uMorphRadii2;\nuniform vec4 uMorphRadii3;\nfloat morphMemberDistance(vec2 p,vec4 shape,float radius){vec2 q=abs(p-shape.xy)-shape.zw+radius;return min(max(q.x,q.y),0.0)+length(max(q,vec2(0)))-radius;}\nfloat morphSmoothMin(float a,float b){float k=uMorphParams.y;if(k<=0.0)return min(a,b);float h=max(k-abs(a-b),0.0)/k;return min(a,b)-h*h*k*.25;}\nvec2 morphMemberNormal(vec2 p,vec4 shape,float radius){vec2 delta=p-shape.xy;vec2 q=abs(delta)-shape.zw+radius;vec2 n=max(q,vec2(0))*sign(delta);if(max(q.x,q.y)<=0.0)n=q.x>=q.y?vec2(sign(delta.x),0):vec2(0,sign(delta.y));return n/max(length(n),1e-8);}\nvoid morphAdd(vec2 p,vec4 shape,float radius,inout float d,inout vec2 n){float b=morphMemberDistance(p,shape,radius);vec2 nb=morphMemberNormal(p,shape,radius);if(d>1e9){d=b;n=nb;return;}float k=uMorphParams.y*pow(clamp((1.0-dot(n,nb))*.5,0.0,1.0),1);if(k<=1e-4){if(b<d){d=b;n=nb;}return;}float h=max(k-abs(d-b),0.0)/k;float w=clamp(.5+(d-b)/(2.0*k),0.0,1.0);d=min(d,b)-h*h*k*.25;n=mix(n,nb,w);n=n/max(length(n),1e-8);}\nfloat morphRawDistance(vec2 p){float d=1e10;vec2 n=vec2(0);\nif(uMorphParams.x>0.5)morphAdd(p,uMorphShape0,uMorphRadii0.x,d,n);\nif(uMorphParams.x>1.5)morphAdd(p,uMorphShape1,uMorphRadii0.y,d,n);\nif(uMorphParams.x>2.5)morphAdd(p,uMorphShape2,uMorphRadii0.z,d,n);\nif(uMorphParams.x>3.5)morphAdd(p,uMorphShape3,uMorphRadii0.w,d,n);\nif(uMorphParams.x>4.5)morphAdd(p,uMorphShape4,uMorphRadii1.x,d,n);\nif(uMorphParams.x>5.5)morphAdd(p,uMorphShape5,uMorphRadii1.y,d,n);\nif(uMorphParams.x>6.5)morphAdd(p,uMorphShape6,uMorphRadii1.z,d,n);\nif(uMorphParams.x>7.5)morphAdd(p,uMorphShape7,uMorphRadii1.w,d,n);\nif(uMorphParams.x>8.5)morphAdd(p,uMorphShape8,uMorphRadii2.x,d,n);\nif(uMorphParams.x>9.5)morphAdd(p,uMorphShape9,uMorphRadii2.y,d,n);\nif(uMorphParams.x>10.5)morphAdd(p,uMorphShape10,uMorphRadii2.z,d,n);\nif(uMorphParams.x>11.5)morphAdd(p,uMorphShape11,uMorphRadii2.w,d,n);\nif(uMorphParams.x>12.5)morphAdd(p,uMorphShape12,uMorphRadii3.x,d,n);\nif(uMorphParams.x>13.5)morphAdd(p,uMorphShape13,uMorphRadii3.y,d,n);\nif(uMorphParams.x>14.5)morphAdd(p,uMorphShape14,uMorphRadii3.z,d,n);\nif(uMorphParams.x>15.5)morphAdd(p,uMorphShape15,uMorphRadii3.w,d,n);\nreturn d;}\nvec2 morphGradient(vec2 p){float e=.1;return vec2(morphRawDistance(p+vec2(e,0))-morphRawDistance(p-vec2(e,0)),morphRawDistance(p+vec2(0,e))-morphRawDistance(p-vec2(0,e)))/(2.0*e);}\nvec2 morphNormal(vec2 p){return normalize(morphGradient(p)+vec2(1e-8));}\nfloat morphDistance(vec2 p){float d=morphRawDistance(p);if(uMorphParams.x<1.5||uMorphParams.y<=0.0)return d;float scale=1.0/clamp(length(morphGradient(p)),.25,1.0);return d*mix(scale,1.0,smoothstep(16.0,28.0,-d));}\n";
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { GLASS_BLEND_ANGLE_POWER } from './fieldGeometry.js';
|
|
2
|
+
export { glassBlendRadius, glassFieldDistance, roundedRectDistance, roundedRectNormal, smoothMinimum, GLASS_BLEND_ANGLE_POWER, } from './fieldGeometry.js';
|
|
3
|
+
export function glassIdentityKey(region) {
|
|
4
|
+
return region.morph
|
|
5
|
+
? JSON.stringify([region.container?.id ?? null, region.morph.namespace, region.morph.id])
|
|
6
|
+
: undefined;
|
|
7
|
+
}
|
|
8
|
+
export function glassFieldKey(region) {
|
|
9
|
+
// Press policy controls interaction, not optical compatibility.
|
|
10
|
+
const { press: _press, ...material } = region.material;
|
|
11
|
+
return JSON.stringify([
|
|
12
|
+
region.container?.id,
|
|
13
|
+
region.morph?.namespace ?? region.namespace,
|
|
14
|
+
region.union ?? null,
|
|
15
|
+
region.shape,
|
|
16
|
+
material,
|
|
17
|
+
region.layer,
|
|
18
|
+
]);
|
|
19
|
+
}
|
|
20
|
+
export function glassUnionDiagnostics(regions) {
|
|
21
|
+
const requested = new Map();
|
|
22
|
+
for (const region of regions) {
|
|
23
|
+
if (!region.container || region.union === undefined)
|
|
24
|
+
continue;
|
|
25
|
+
const key = JSON.stringify([
|
|
26
|
+
region.container.id,
|
|
27
|
+
region.morph?.namespace ?? region.namespace,
|
|
28
|
+
region.union,
|
|
29
|
+
]);
|
|
30
|
+
const fields = requested.get(key) ?? new Set();
|
|
31
|
+
fields.add(glassFieldKey(region));
|
|
32
|
+
requested.set(key, fields);
|
|
33
|
+
}
|
|
34
|
+
return [...requested]
|
|
35
|
+
.filter(([, fields]) => fields.size > 1)
|
|
36
|
+
.map(([key]) => `Incompatible glassEffectUnion ${key}: preserving separate shape/material fields.`);
|
|
37
|
+
}
|
|
38
|
+
/** Conservative visible-field bounds in sample coordinates. Each smooth minimum can
|
|
39
|
+
* extend a union by at most blendRadius / 4; retain the optical sample inset too.
|
|
40
|
+
* Capture geometry stays fixed so animation does not invalidate the backdrop. */
|
|
41
|
+
export function morphFieldSampleBounds(spec) {
|
|
42
|
+
const members = spec.shape.members;
|
|
43
|
+
if (!members?.length || spec.treatment || spec.materialProfile !== 'chrome')
|
|
44
|
+
return undefined;
|
|
45
|
+
const blendSupport = (Math.max(0, spec.shape.blendRadius) * (members.length - 1)) / 4;
|
|
46
|
+
const paddingX = spec.sampleInsetX + blendSupport;
|
|
47
|
+
const paddingY = spec.sampleInsetY + blendSupport;
|
|
48
|
+
const left = Math.min(...members.map(member => member.centerX - member.halfWidth)) +
|
|
49
|
+
spec.sampleInsetX -
|
|
50
|
+
paddingX;
|
|
51
|
+
const top = Math.min(...members.map(member => member.centerY - member.halfHeight)) +
|
|
52
|
+
spec.sampleInsetY -
|
|
53
|
+
paddingY;
|
|
54
|
+
const right = Math.max(...members.map(member => member.centerX + member.halfWidth)) +
|
|
55
|
+
spec.sampleInsetX +
|
|
56
|
+
paddingX;
|
|
57
|
+
const bottom = Math.max(...members.map(member => member.centerY + member.halfHeight)) +
|
|
58
|
+
spec.sampleInsetY +
|
|
59
|
+
paddingY;
|
|
60
|
+
return [left, top, right - left, bottom - top];
|
|
61
|
+
}
|
|
62
|
+
export function morphFieldUniforms(spec) {
|
|
63
|
+
const members = spec.shape.members ?? [];
|
|
64
|
+
return {
|
|
65
|
+
uMorphParams: [members.length, spec.shape.blendRadius, 0, 0],
|
|
66
|
+
...Object.fromEntries(Array.from({ length: 16 }, (_, i) => {
|
|
67
|
+
const s = members[i];
|
|
68
|
+
return [
|
|
69
|
+
`uMorphShape${i}`,
|
|
70
|
+
s
|
|
71
|
+
? [
|
|
72
|
+
s.centerX + spec.sampleInsetX,
|
|
73
|
+
s.centerY + spec.sampleInsetY,
|
|
74
|
+
s.halfWidth,
|
|
75
|
+
s.halfHeight,
|
|
76
|
+
]
|
|
77
|
+
: [0, 0, 0, 0],
|
|
78
|
+
];
|
|
79
|
+
})),
|
|
80
|
+
...Object.fromEntries(Array.from({ length: 4 }, (_, i) => [
|
|
81
|
+
`uMorphRadii${i}`,
|
|
82
|
+
Array.from({ length: 4 }, (_, j) => members[i * 4 + j]?.radius ?? 0),
|
|
83
|
+
])),
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
/** The union field (fieldGeometry.ts is its CPU twin; both share the zero set).
|
|
87
|
+
* morphRawDistance is the smooth union. A smooth minimum flattens the field across a neck
|
|
88
|
+
* (|gradient| is about 0.4 at a 14-pt-gap waist), so material bands measured in field units
|
|
89
|
+
* would widen there into a bright rim bead. morphDistance divides by the gradient near the
|
|
90
|
+
* surface, restoring point-true band widths without moving the contour. */
|
|
91
|
+
export const MORPH_FIELD_GLSL = /* glsl */ `
|
|
92
|
+
precision highp float;
|
|
93
|
+
uniform vec4 uMorphParams;
|
|
94
|
+
uniform vec4 uMorphShape0;
|
|
95
|
+
uniform vec4 uMorphShape1;
|
|
96
|
+
uniform vec4 uMorphShape2;
|
|
97
|
+
uniform vec4 uMorphShape3;
|
|
98
|
+
uniform vec4 uMorphShape4;
|
|
99
|
+
uniform vec4 uMorphShape5;
|
|
100
|
+
uniform vec4 uMorphShape6;
|
|
101
|
+
uniform vec4 uMorphShape7;
|
|
102
|
+
uniform vec4 uMorphShape8;
|
|
103
|
+
uniform vec4 uMorphShape9;
|
|
104
|
+
uniform vec4 uMorphShape10;
|
|
105
|
+
uniform vec4 uMorphShape11;
|
|
106
|
+
uniform vec4 uMorphShape12;
|
|
107
|
+
uniform vec4 uMorphShape13;
|
|
108
|
+
uniform vec4 uMorphShape14;
|
|
109
|
+
uniform vec4 uMorphShape15;
|
|
110
|
+
uniform vec4 uMorphRadii0;
|
|
111
|
+
uniform vec4 uMorphRadii1;
|
|
112
|
+
uniform vec4 uMorphRadii2;
|
|
113
|
+
uniform vec4 uMorphRadii3;
|
|
114
|
+
float morphMemberDistance(vec2 p,vec4 shape,float radius){vec2 q=abs(p-shape.xy)-shape.zw+radius;return min(max(q.x,q.y),0.0)+length(max(q,vec2(0)))-radius;}
|
|
115
|
+
float morphSmoothMin(float a,float b){float k=uMorphParams.y;if(k<=0.0)return min(a,b);float h=max(k-abs(a-b),0.0)/k;return min(a,b)-h*h*k*.25;}
|
|
116
|
+
vec2 morphMemberNormal(vec2 p,vec4 shape,float radius){vec2 delta=p-shape.xy;vec2 q=abs(delta)-shape.zw+radius;vec2 n=max(q,vec2(0))*sign(delta);if(max(q.x,q.y)<=0.0)n=q.x>=q.y?vec2(sign(delta.x),0):vec2(0,sign(delta.y));return n/max(length(n),1e-8);}
|
|
117
|
+
void morphAdd(vec2 p,vec4 shape,float radius,inout float d,inout vec2 n){float b=morphMemberDistance(p,shape,radius);vec2 nb=morphMemberNormal(p,shape,radius);if(d>1e9){d=b;n=nb;return;}float k=uMorphParams.y*pow(clamp((1.0-dot(n,nb))*.5,0.0,1.0),${GLASS_BLEND_ANGLE_POWER});if(k<=1e-4){if(b<d){d=b;n=nb;}return;}float h=max(k-abs(d-b),0.0)/k;float w=clamp(.5+(d-b)/(2.0*k),0.0,1.0);d=min(d,b)-h*h*k*.25;n=mix(n,nb,w);n=n/max(length(n),1e-8);}
|
|
118
|
+
float morphRawDistance(vec2 p){float d=1e10;vec2 n=vec2(0);
|
|
119
|
+
if(uMorphParams.x>0.5)morphAdd(p,uMorphShape0,uMorphRadii0.x,d,n);
|
|
120
|
+
if(uMorphParams.x>1.5)morphAdd(p,uMorphShape1,uMorphRadii0.y,d,n);
|
|
121
|
+
if(uMorphParams.x>2.5)morphAdd(p,uMorphShape2,uMorphRadii0.z,d,n);
|
|
122
|
+
if(uMorphParams.x>3.5)morphAdd(p,uMorphShape3,uMorphRadii0.w,d,n);
|
|
123
|
+
if(uMorphParams.x>4.5)morphAdd(p,uMorphShape4,uMorphRadii1.x,d,n);
|
|
124
|
+
if(uMorphParams.x>5.5)morphAdd(p,uMorphShape5,uMorphRadii1.y,d,n);
|
|
125
|
+
if(uMorphParams.x>6.5)morphAdd(p,uMorphShape6,uMorphRadii1.z,d,n);
|
|
126
|
+
if(uMorphParams.x>7.5)morphAdd(p,uMorphShape7,uMorphRadii1.w,d,n);
|
|
127
|
+
if(uMorphParams.x>8.5)morphAdd(p,uMorphShape8,uMorphRadii2.x,d,n);
|
|
128
|
+
if(uMorphParams.x>9.5)morphAdd(p,uMorphShape9,uMorphRadii2.y,d,n);
|
|
129
|
+
if(uMorphParams.x>10.5)morphAdd(p,uMorphShape10,uMorphRadii2.z,d,n);
|
|
130
|
+
if(uMorphParams.x>11.5)morphAdd(p,uMorphShape11,uMorphRadii2.w,d,n);
|
|
131
|
+
if(uMorphParams.x>12.5)morphAdd(p,uMorphShape12,uMorphRadii3.x,d,n);
|
|
132
|
+
if(uMorphParams.x>13.5)morphAdd(p,uMorphShape13,uMorphRadii3.y,d,n);
|
|
133
|
+
if(uMorphParams.x>14.5)morphAdd(p,uMorphShape14,uMorphRadii3.z,d,n);
|
|
134
|
+
if(uMorphParams.x>15.5)morphAdd(p,uMorphShape15,uMorphRadii3.w,d,n);
|
|
135
|
+
return d;}
|
|
136
|
+
vec2 morphGradient(vec2 p){float e=.1;return vec2(morphRawDistance(p+vec2(e,0))-morphRawDistance(p-vec2(e,0)),morphRawDistance(p+vec2(0,e))-morphRawDistance(p-vec2(0,e)))/(2.0*e);}
|
|
137
|
+
vec2 morphNormal(vec2 p){return normalize(morphGradient(p)+vec2(1e-8));}
|
|
138
|
+
float morphDistance(vec2 p){float d=morphRawDistance(p);if(uMorphParams.x<1.5||uMorphParams.y<=0.0)return d;float scale=1.0/clamp(length(morphGradient(p)),.25,1.0);return d*mix(scale,1.0,smoothstep(16.0,28.0,-d));}
|
|
139
|
+
`;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/** How glass reads a presentation that is held for its first glass or travelling on screen.
|
|
2
|
+
*
|
|
3
|
+
* Hold: a presentation waiting for its first glass is hidden by one stylesheet rule keyed on
|
|
4
|
+
* `data-satin-glass-hold`, never by inline styles. The rule clips the held node to nothing: no
|
|
5
|
+
* paint and no hit testing, while layout and computed visibility stay exactly as they will show.
|
|
6
|
+
* Source preparation therefore reads a held presentation directly, with no style change (toggling
|
|
7
|
+
* a stylesheet restyles the whole document: about 216 ms per read on an iPad behind a long thread),
|
|
8
|
+
* and content an author hid inside the presentation stays hidden.
|
|
9
|
+
*
|
|
10
|
+
* Travel: a sheet or cover moves as one rigid layer (its entrance, drag and dismissal are a
|
|
11
|
+
* translation of the presentation's glass layer). Glass nested in the presentation and the
|
|
12
|
+
* presentation's own content planes are placed in that layer's resting frame. The compositor moves
|
|
13
|
+
* them together, so nested glass keeps its pixels while the surface travels, as native glass in a
|
|
14
|
+
* sheet does. The presentation's own material is not nested: it samples the screen below it live. */
|
|
15
|
+
/** Hide `node` until `releaseHold` (or a later hold of another generation). */
|
|
16
|
+
export declare function hold(node: HTMLElement, generation: string): void;
|
|
17
|
+
/** End this generation's hold; a newer generation keeps its own. */
|
|
18
|
+
export declare function releaseHold(node: HTMLElement, generation: string): void;
|
|
19
|
+
/** The held presentations a source preparation is about to measure, with their generations. */
|
|
20
|
+
export declare function heldPresentations(document?: Document): (readonly [HTMLElement, string])[];
|
|
21
|
+
/** The renderer holds a backdrop measured during these holds: each still-current hold may now
|
|
22
|
+
* wait for its glass to be drawn over it (holdPresentationForGlass). */
|
|
23
|
+
export declare function confirmHeldSources(held: ReturnType<typeof heldPresentations>): void;
|
|
24
|
+
export type Travel = Readonly<{
|
|
25
|
+
x: number;
|
|
26
|
+
y: number;
|
|
27
|
+
layer?: HTMLElement;
|
|
28
|
+
}>;
|
|
29
|
+
/** The current travel of the sheet or cover that `element` is nested in (zero when it is the
|
|
30
|
+
* presentation's own surface, outside any presentation, or at rest). */
|
|
31
|
+
export declare function presentationTravel(element: Element): Travel;
|
|
32
|
+
/** A viewport rectangle of something inside the travelling layer, in the layer's resting frame. */
|
|
33
|
+
export declare function atRest<T extends {
|
|
34
|
+
x: number;
|
|
35
|
+
y: number;
|
|
36
|
+
width: number;
|
|
37
|
+
height: number;
|
|
38
|
+
}>(rect: T, travel: Travel): {
|
|
39
|
+
x: number;
|
|
40
|
+
y: number;
|
|
41
|
+
width: number;
|
|
42
|
+
height: number;
|
|
43
|
+
};
|