@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,166 @@
|
|
|
1
|
+
/// <reference types="@webgpu/types" />
|
|
2
|
+
import { shaderModule } from './errors.js';
|
|
3
|
+
import { encodeComputePass } from './passes.js';
|
|
4
|
+
/** The bar material's blur pyramid: its wide diffusion reads coarse levels (level 5 to 6 at
|
|
5
|
+
* half resolution, texels of 21 to 43 pt), so the pyramid decides how bright the glass's interior
|
|
6
|
+
* reads over any detail in the backdrop.
|
|
7
|
+
*
|
|
8
|
+
* Two things keep that brightness a property of the backdrop alone, not of the shape's size.
|
|
9
|
+
*
|
|
10
|
+
* Every destination texel is the exact area average of the source texels it covers. With one
|
|
11
|
+
* bilinear tap at the destination centre, a chain that is not a power of two (the tab bar's is
|
|
12
|
+
* 789 x 477) gave whole bands of the backdrop no weight and others double weight: text scrolling
|
|
13
|
+
* under the bar lit its blur at some heights and vanished from it at others.
|
|
14
|
+
*
|
|
15
|
+
* The storage is a whole number of coarse texels (PYRAMID_GRID), so each level is exactly half
|
|
16
|
+
* the one below and a level-k texel always covers the same 2^k level-0 texels, counted from the
|
|
17
|
+
* sample rectangle's top-left corner. When the storage was the content rounded up, every level's
|
|
18
|
+
* texel size followed the surface's width: a growing Music accessory moved the coarse texels'
|
|
19
|
+
* edges across the tiles under it and its interior dimmed and brightened by several luma levels
|
|
20
|
+
* over a still backdrop, then stepped when the run ended at a narrower width. Storage past the
|
|
21
|
+
* content carries no weight: a coarse texel at the content's edge averages only the content it
|
|
22
|
+
* covers, and the shader's reads stop at the content (pyramidClamp). A wider surface changes
|
|
23
|
+
* only the texels at its edge; the ones away from it stay exactly as they were. */
|
|
24
|
+
/** Level-0 texels per side of the coarsest exact texel (level 6, the wide diffusion's deepest). */
|
|
25
|
+
export const PYRAMID_GRID = 64;
|
|
26
|
+
/** Storage for `extent` level-0 texels of content: a whole number of PYRAMID_GRID cells. */
|
|
27
|
+
export function pyramidStorage(extent) {
|
|
28
|
+
return Math.max(1, Math.ceil(Math.ceil(extent) / PYRAMID_GRID)) * PYRAMID_GRID;
|
|
29
|
+
}
|
|
30
|
+
/** Level-0 texels the content copy writes for a content extent: those whose centre lies inside
|
|
31
|
+
* it (the copy's scissor in passes.ts). */
|
|
32
|
+
export function pyramidContent(extent) {
|
|
33
|
+
return Math.max(1, Math.ceil(extent - 0.5));
|
|
34
|
+
}
|
|
35
|
+
/** The kernel's read clamp for a pyramid whose level 0 holds `content` texels: half a texel
|
|
36
|
+
* inside the content, so no sample reaches the cleared storage past it. Same layout as
|
|
37
|
+
* rasterUniforms.ts inputUniforms' uInputClamp. */
|
|
38
|
+
export function pyramidClamp(target, content) {
|
|
39
|
+
return [
|
|
40
|
+
0.5 / target.width,
|
|
41
|
+
0.5 / target.height,
|
|
42
|
+
(content[0] - 0.5) / target.width,
|
|
43
|
+
(content[1] - 0.5) / target.height,
|
|
44
|
+
];
|
|
45
|
+
}
|
|
46
|
+
/** Texels of content at each level, fractional: a level keeps the content's share of its size. */
|
|
47
|
+
export function contentLevels(target, content) {
|
|
48
|
+
const levels = areaMipLevels(target);
|
|
49
|
+
const result = [[content[0], content[1]]];
|
|
50
|
+
for (let level = 1; level < levels.length; level++) {
|
|
51
|
+
const [width, height] = result[level - 1];
|
|
52
|
+
const below = levels[level - 1];
|
|
53
|
+
const here = levels[level];
|
|
54
|
+
result.push([(width * here.width) / below.width, (height * here.height) / below.height]);
|
|
55
|
+
}
|
|
56
|
+
return result;
|
|
57
|
+
}
|
|
58
|
+
/** One axis of a destination texel's footprint over the level below: the source texels it
|
|
59
|
+
* overlaps and how much of each, counting only the part inside the content. Mirrors
|
|
60
|
+
* `footprint` in the compute shader; texel t spans [t, t + 1]. */
|
|
61
|
+
export function footprint(index, ratio, content) {
|
|
62
|
+
const start = index * ratio;
|
|
63
|
+
const end = start + ratio;
|
|
64
|
+
const taps = [];
|
|
65
|
+
for (let texel = Math.floor(start); texel < end; texel++) {
|
|
66
|
+
const overlap = Math.min(texel + 1, end) - Math.max(texel, start);
|
|
67
|
+
const inside = Math.min(1, Math.max(0, content - texel));
|
|
68
|
+
if (overlap > 0 && inside > 0)
|
|
69
|
+
taps.push({ texel, weight: overlap * inside });
|
|
70
|
+
}
|
|
71
|
+
return taps;
|
|
72
|
+
}
|
|
73
|
+
// Each destination texel is the average of the source texels under it, weighted by how much of
|
|
74
|
+
// each it covers and how much of each is content. A texel at the content's edge is the average
|
|
75
|
+
// of the content it covers; one wholly past the content repeats the nearest content texel.
|
|
76
|
+
const areaMipCompute = `@group(0) @binding(0) var source: texture_2d<f32>;
|
|
77
|
+
@group(0) @binding(1) var destination: texture_storage_2d<rgba8unorm, write>;
|
|
78
|
+
// xy: the source level's content in texels, fractional (contentLevels).
|
|
79
|
+
@group(0) @binding(2) var<uniform> sourceContent: vec4f;
|
|
80
|
+
@compute @workgroup_size(8,8) fn main(@builtin(global_invocation_id) id: vec3u) {
|
|
81
|
+
let size = textureDimensions(destination);
|
|
82
|
+
if (id.x >= size.x || id.y >= size.y) { return; }
|
|
83
|
+
let sourceSize = vec2i(textureDimensions(source));
|
|
84
|
+
let ratio = vec2f(sourceSize) / vec2f(size);
|
|
85
|
+
let start = vec2f(id.xy) * ratio;
|
|
86
|
+
let end = start + ratio;
|
|
87
|
+
let first = vec2i(floor(start));
|
|
88
|
+
var sum = vec4f(0.0);
|
|
89
|
+
var weight = 0.0;
|
|
90
|
+
// A footprint spans at most four texels per axis: level sizes halve rounding down, so the
|
|
91
|
+
// ratio is at most 3.
|
|
92
|
+
for (var dy = 0; dy < 4; dy++) {
|
|
93
|
+
for (var dx = 0; dx < 4; dx++) {
|
|
94
|
+
let texel = first + vec2i(dx, dy);
|
|
95
|
+
if (any(texel >= sourceSize)) { continue; }
|
|
96
|
+
let corner = vec2f(texel);
|
|
97
|
+
let overlap = max(vec2f(0.0), min(corner + 1.0, end) - max(corner, start));
|
|
98
|
+
let inside = clamp(sourceContent.xy - corner, vec2f(0.0), vec2f(1.0));
|
|
99
|
+
let w = overlap.x * overlap.y * inside.x * inside.y;
|
|
100
|
+
sum += textureLoad(source, texel, 0) * w;
|
|
101
|
+
weight += w;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
if (weight > 0.0) {
|
|
105
|
+
textureStore(destination, id.xy, sum / weight);
|
|
106
|
+
} else {
|
|
107
|
+
let last = max(vec2i(ceil(sourceContent.xy)) - 1, vec2i(0));
|
|
108
|
+
textureStore(destination, id.xy, textureLoad(source, min(first, last), 0));
|
|
109
|
+
}
|
|
110
|
+
}`;
|
|
111
|
+
const pipelines = new WeakMap();
|
|
112
|
+
const levelCache = new WeakMap();
|
|
113
|
+
/** One view per mip level of a pyramid target (created once per texture). */
|
|
114
|
+
export function areaMipLevels(target) {
|
|
115
|
+
let levels = levelCache.get(target.texture);
|
|
116
|
+
if (!levels) {
|
|
117
|
+
levels = Array.from({ length: target.levels }, (_, level) => ({
|
|
118
|
+
view: target.texture.createView({ baseMipLevel: level, mipLevelCount: 1 }),
|
|
119
|
+
width: Math.max(1, target.width >> level),
|
|
120
|
+
height: Math.max(1, target.height >> level),
|
|
121
|
+
}));
|
|
122
|
+
levelCache.set(target.texture, levels);
|
|
123
|
+
}
|
|
124
|
+
return levels;
|
|
125
|
+
}
|
|
126
|
+
/** Fill every level above 0 of `target` from the level below, in one compute pass. Level 0
|
|
127
|
+
* holds `content` texels of backdrop; `uniform` makes a uniform buffer (Passes.uniform). */
|
|
128
|
+
export function encodeAreaMips(encoder, device, target, content, uniform) {
|
|
129
|
+
if (target.levels < 2)
|
|
130
|
+
return;
|
|
131
|
+
let pipeline = pipelines.get(device);
|
|
132
|
+
if (!pipeline) {
|
|
133
|
+
const module = shaderModule(device, { label: 'area-mips', code: areaMipCompute });
|
|
134
|
+
pipeline = device.createComputePipeline({
|
|
135
|
+
label: 'area-mips',
|
|
136
|
+
layout: 'auto',
|
|
137
|
+
compute: { module, entryPoint: 'main' },
|
|
138
|
+
});
|
|
139
|
+
pipelines.set(device, pipeline);
|
|
140
|
+
}
|
|
141
|
+
const levels = areaMipLevels(target);
|
|
142
|
+
const contents = contentLevels(target, content);
|
|
143
|
+
const layout = pipeline.getBindGroupLayout(0);
|
|
144
|
+
const steps = levels.slice(1).map((level, index) => ({
|
|
145
|
+
level,
|
|
146
|
+
group: device.createBindGroup({
|
|
147
|
+
layout,
|
|
148
|
+
entries: [
|
|
149
|
+
{ binding: 0, resource: levels[index].view },
|
|
150
|
+
{ binding: 1, resource: level.view },
|
|
151
|
+
{
|
|
152
|
+
binding: 2,
|
|
153
|
+
resource: { buffer: uniform(new Float32Array([...contents[index], 0, 0])) },
|
|
154
|
+
},
|
|
155
|
+
],
|
|
156
|
+
}),
|
|
157
|
+
}));
|
|
158
|
+
const compute = pipeline;
|
|
159
|
+
encodeComputePass(encoder, pass => {
|
|
160
|
+
pass.setPipeline(compute);
|
|
161
|
+
for (const { level, group } of steps) {
|
|
162
|
+
pass.setBindGroup(0, group);
|
|
163
|
+
pass.dispatchWorkgroups(Math.ceil(level.width / 8), Math.ceil(level.height / 8));
|
|
164
|
+
}
|
|
165
|
+
}, 'area-mips');
|
|
166
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import type { KeyboardBackdrop } from './keyboardBackdrop.js';
|
|
2
|
+
import { type GraphLease } from './frameGraph.js';
|
|
3
|
+
import type { LayerDevice } from './layers.js';
|
|
4
|
+
import type { Target } from './passes.js';
|
|
5
|
+
import type { BackdropLayer } from '../worker/protocol.js';
|
|
6
|
+
import type { ScrollEdge } from './scrollEdgeBackdrop.js';
|
|
7
|
+
import type { NavigationPose } from './productionTracks.js';
|
|
8
|
+
type Rect = readonly [number, number, number, number];
|
|
9
|
+
type Plane = {
|
|
10
|
+
originY: number;
|
|
11
|
+
layer: BackdropLayer;
|
|
12
|
+
image: GraphLease<ImageBitmap>;
|
|
13
|
+
texture?: GraphLease<Target>;
|
|
14
|
+
};
|
|
15
|
+
/** Intersection of two viewport rectangles, or undefined when they do not overlap. */
|
|
16
|
+
export declare function intersect(a: Rect, b: Rect): Rect | undefined;
|
|
17
|
+
/** The screen-space backdrop every glass surface samples: planes (content-space
|
|
18
|
+
* captures of visible scroll containers and static screens) composed back to front
|
|
19
|
+
* over the page background, each at its live scroll offset and clipped to its
|
|
20
|
+
* viewport rectangle. Only the rectangles under glass are ever composed. */
|
|
21
|
+
export declare class Backdrop {
|
|
22
|
+
static for(owner: LayerDevice): Backdrop;
|
|
23
|
+
private planes;
|
|
24
|
+
/** Navigation-bar scroll edges, composed over the planes under the bars. */
|
|
25
|
+
private edges;
|
|
26
|
+
private graph;
|
|
27
|
+
private constructor();
|
|
28
|
+
get layers(): readonly BackdropLayer[];
|
|
29
|
+
get size(): number;
|
|
30
|
+
/** A screen backdrop was installed (possibly empty: the page background alone). Surfaces
|
|
31
|
+
* then compose from it; before that they sample their own single capture. */
|
|
32
|
+
get installed(): boolean;
|
|
33
|
+
private isInstalled;
|
|
34
|
+
/** Replace the plane set. New images are retained before old ones are released, so a
|
|
35
|
+
* plane whose key survives keeps its upload. Every key must already be retained
|
|
36
|
+
* in the frame graph (a shared slot image); a missing one throws. */
|
|
37
|
+
setLayers(layers: readonly BackdropLayer[]): void;
|
|
38
|
+
/** Detach invalid or disposed pinned textures and restore the parent window's fill. */
|
|
39
|
+
removePinned(ids: readonly string[]): void;
|
|
40
|
+
/** Live scroll of one plane; false when unchanged or unknown. */
|
|
41
|
+
setScroll(id: string, x: number, y: number): boolean;
|
|
42
|
+
/** Only the capture that supplied the anchor may consume its trajectory. */
|
|
43
|
+
setKeyboard(id: string, key: string, keyboard: KeyboardBackdrop, scroll: {
|
|
44
|
+
x: number;
|
|
45
|
+
y: number;
|
|
46
|
+
}): void;
|
|
47
|
+
private keyboardSampledAt;
|
|
48
|
+
get keyboardMoving(): boolean;
|
|
49
|
+
/** Pose captured content before refraction, on the same clock as the lens. */
|
|
50
|
+
sampleKeyboard(at: number): boolean;
|
|
51
|
+
/** Replace the scroll-edge set; false when unchanged. */
|
|
52
|
+
setEdges(edges: readonly ScrollEdge[]): boolean;
|
|
53
|
+
/** Scroll edges that overlap a viewport rectangle. */
|
|
54
|
+
edgesUnder(rect: Rect, pose?: NavigationPose): ScrollEdge[];
|
|
55
|
+
/** Drop GPU storage (hidden page); images stay retained for the resume upload. */
|
|
56
|
+
suspend(): void;
|
|
57
|
+
clear(): void;
|
|
58
|
+
/** Planes that contribute to a viewport rectangle, back to front, with their clipped rectangle. */
|
|
59
|
+
under(rect: Rect, excluded?: readonly string[], menu?: boolean): {
|
|
60
|
+
plane: Plane;
|
|
61
|
+
clip: Rect;
|
|
62
|
+
}[];
|
|
63
|
+
/** Everything that decides the composed pixels of `rect`, relative to `rect`: a surface
|
|
64
|
+
* that moves with its plane (scroll-attached glass) keeps the same key while scrolling. */
|
|
65
|
+
keyFor(rect: Rect, skip?: string, excluded?: readonly string[], belowEdges?: boolean, menu?: boolean, pose?: NavigationPose): string;
|
|
66
|
+
/** GPU texture for a plane's capture (shared with any raster using the same key). */
|
|
67
|
+
texture(plane: Plane): Target;
|
|
68
|
+
report(): {
|
|
69
|
+
id: string;
|
|
70
|
+
owner: string | undefined;
|
|
71
|
+
resolution: number;
|
|
72
|
+
key: string;
|
|
73
|
+
origin: {
|
|
74
|
+
x: number;
|
|
75
|
+
y: number;
|
|
76
|
+
};
|
|
77
|
+
clip: readonly [number, number, number, number];
|
|
78
|
+
scroll: {
|
|
79
|
+
x: number;
|
|
80
|
+
y: number;
|
|
81
|
+
};
|
|
82
|
+
size: number[];
|
|
83
|
+
uploaded: boolean;
|
|
84
|
+
}[];
|
|
85
|
+
}
|
|
86
|
+
export {};
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
import { sampleKeyboardTranslation } from '../../keyboard/translation.js';
|
|
2
|
+
import { FrameGraph } from './frameGraph.js';
|
|
3
|
+
import { poseScrollEdges } from './scrollEdgePose.js';
|
|
4
|
+
const backdrops = new WeakMap();
|
|
5
|
+
/** Intersection of two viewport rectangles, or undefined when they do not overlap. */
|
|
6
|
+
export function intersect(a, b) {
|
|
7
|
+
const x = Math.max(a[0], b[0]), y = Math.max(a[1], b[1]), r = Math.min(a[0] + a[2], b[0] + b[2]), bottom = Math.min(a[1] + a[3], b[1] + b[3]);
|
|
8
|
+
return r > x && bottom > y ? [x, y, r - x, bottom - y] : undefined;
|
|
9
|
+
}
|
|
10
|
+
/** The screen-space backdrop every glass surface samples: planes (content-space
|
|
11
|
+
* captures of visible scroll containers and static screens) composed back to front
|
|
12
|
+
* over the page background, each at its live scroll offset and clipped to its
|
|
13
|
+
* viewport rectangle. Only the rectangles under glass are ever composed. */
|
|
14
|
+
export class Backdrop {
|
|
15
|
+
static for(owner) {
|
|
16
|
+
let backdrop = backdrops.get(owner);
|
|
17
|
+
if (!backdrop) {
|
|
18
|
+
backdrop = new Backdrop(owner);
|
|
19
|
+
backdrops.set(owner, backdrop);
|
|
20
|
+
}
|
|
21
|
+
return backdrop;
|
|
22
|
+
}
|
|
23
|
+
planes = [];
|
|
24
|
+
/** Navigation-bar scroll edges, composed over the planes under the bars. */
|
|
25
|
+
edges = [];
|
|
26
|
+
graph;
|
|
27
|
+
constructor(owner) {
|
|
28
|
+
this.graph = FrameGraph.for(owner);
|
|
29
|
+
// A lost device invalidates every texture; planes re-upload from their retained images.
|
|
30
|
+
owner.subscribe(device => {
|
|
31
|
+
if (!device)
|
|
32
|
+
for (const plane of this.planes)
|
|
33
|
+
plane.texture = undefined;
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
get layers() {
|
|
37
|
+
return this.planes.map(plane => plane.layer);
|
|
38
|
+
}
|
|
39
|
+
get size() {
|
|
40
|
+
return this.planes.length;
|
|
41
|
+
}
|
|
42
|
+
/** A screen backdrop was installed (possibly empty: the page background alone). Surfaces
|
|
43
|
+
* then compose from it; before that they sample their own single capture. */
|
|
44
|
+
get installed() {
|
|
45
|
+
return this.isInstalled;
|
|
46
|
+
}
|
|
47
|
+
isInstalled = false;
|
|
48
|
+
/** Replace the plane set. New images are retained before old ones are released, so a
|
|
49
|
+
* plane whose key survives keeps its upload. Every key must already be retained
|
|
50
|
+
* in the frame graph (a shared slot image); a missing one throws. */
|
|
51
|
+
setLayers(layers) {
|
|
52
|
+
const previous = this.planes;
|
|
53
|
+
this.isInstalled = true;
|
|
54
|
+
this.planes = layers.map(layer => {
|
|
55
|
+
const kept = previous.find(plane => plane.layer.key === layer.key);
|
|
56
|
+
return {
|
|
57
|
+
originY: layer.origin.y,
|
|
58
|
+
layer,
|
|
59
|
+
image: this.graph.retain(layer.key),
|
|
60
|
+
texture: kept?.texture
|
|
61
|
+
? this.graph.target('front', kept.texture.value.width, kept.texture.value.height, false, layer.key)
|
|
62
|
+
: undefined,
|
|
63
|
+
};
|
|
64
|
+
});
|
|
65
|
+
this.sampleKeyboard(performance.timeOrigin + performance.now());
|
|
66
|
+
for (const plane of previous) {
|
|
67
|
+
plane.texture?.release();
|
|
68
|
+
plane.image.release();
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
/** Detach invalid or disposed pinned textures and restore the parent window's fill. */
|
|
72
|
+
removePinned(ids) {
|
|
73
|
+
const removed = new Set(ids);
|
|
74
|
+
this.setLayers(this.planes
|
|
75
|
+
.map(({ layer, originY }) => ({ ...layer, origin: { ...layer.origin, y: originY } }))
|
|
76
|
+
.filter(layer => !layer.follows || !removed.has(layer.follows))
|
|
77
|
+
.map(layer => {
|
|
78
|
+
if (!removed.has(layer.id))
|
|
79
|
+
return layer;
|
|
80
|
+
const { band: _band, ...rest } = layer;
|
|
81
|
+
return rest;
|
|
82
|
+
}));
|
|
83
|
+
}
|
|
84
|
+
/** Live scroll of one plane; false when unchanged or unknown. */
|
|
85
|
+
setScroll(id, x, y) {
|
|
86
|
+
let changed = false;
|
|
87
|
+
// A window pinned at the top of a list scrolls with the list's own window.
|
|
88
|
+
for (const plane of this.planes) {
|
|
89
|
+
if (plane.layer.id !== id && plane.layer.follows !== id)
|
|
90
|
+
continue;
|
|
91
|
+
if (plane.layer.scroll.x === x && plane.layer.scroll.y === y)
|
|
92
|
+
continue;
|
|
93
|
+
plane.layer = { ...plane.layer, scroll: { x, y } };
|
|
94
|
+
changed = true;
|
|
95
|
+
}
|
|
96
|
+
return changed;
|
|
97
|
+
}
|
|
98
|
+
/** Only the capture that supplied the anchor may consume its trajectory. */
|
|
99
|
+
setKeyboard(id, key, keyboard, scroll) {
|
|
100
|
+
if (!this.planes.some(({ layer }) => layer.id === id && layer.key === key))
|
|
101
|
+
return;
|
|
102
|
+
if (keyboard.motion)
|
|
103
|
+
this.keyboardSampledAt = Math.min(this.keyboardSampledAt, keyboard.motion.epoch - 1);
|
|
104
|
+
for (const plane of this.planes) {
|
|
105
|
+
if (plane.layer.id !== id && plane.layer.follows !== id)
|
|
106
|
+
continue;
|
|
107
|
+
// Pinned windows share their parent's content origin and keyboard displacement.
|
|
108
|
+
plane.layer = { ...plane.layer, keyboard, scroll };
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
keyboardSampledAt = -Infinity;
|
|
112
|
+
get keyboardMoving() {
|
|
113
|
+
return this.planes.some(({ layer }) => layer.keyboard?.motion && this.keyboardSampledAt < layer.keyboard.motion.end);
|
|
114
|
+
}
|
|
115
|
+
/** Pose captured content before refraction, on the same clock as the lens. */
|
|
116
|
+
sampleKeyboard(at) {
|
|
117
|
+
this.keyboardSampledAt = at;
|
|
118
|
+
let changed = false;
|
|
119
|
+
for (const plane of this.planes) {
|
|
120
|
+
const keyboard = plane.layer.keyboard;
|
|
121
|
+
const offset = keyboard?.motion
|
|
122
|
+
? sampleKeyboardTranslation(keyboard.motion, at)
|
|
123
|
+
: (keyboard?.offsetY ?? 0);
|
|
124
|
+
const y = plane.originY + offset;
|
|
125
|
+
if (plane.layer.origin.y === y)
|
|
126
|
+
continue;
|
|
127
|
+
plane.layer = { ...plane.layer, origin: { ...plane.layer.origin, y } };
|
|
128
|
+
changed = true;
|
|
129
|
+
}
|
|
130
|
+
return changed;
|
|
131
|
+
}
|
|
132
|
+
/** Replace the scroll-edge set; false when unchanged. */
|
|
133
|
+
setEdges(edges) {
|
|
134
|
+
const next = JSON.stringify(edges);
|
|
135
|
+
if (next === JSON.stringify(this.edges))
|
|
136
|
+
return false;
|
|
137
|
+
this.edges = edges;
|
|
138
|
+
return true;
|
|
139
|
+
}
|
|
140
|
+
/** Scroll edges that overlap a viewport rectangle. */
|
|
141
|
+
edgesUnder(rect, pose) {
|
|
142
|
+
return poseScrollEdges(this.edges, pose).filter(edge => !!intersect(rect, edge.rect));
|
|
143
|
+
}
|
|
144
|
+
/** Drop GPU storage (hidden page); images stay retained for the resume upload. */
|
|
145
|
+
suspend() {
|
|
146
|
+
for (const plane of this.planes) {
|
|
147
|
+
plane.texture?.release();
|
|
148
|
+
plane.texture = undefined;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
clear() {
|
|
152
|
+
for (const plane of this.planes) {
|
|
153
|
+
plane.texture?.release();
|
|
154
|
+
plane.image.release();
|
|
155
|
+
}
|
|
156
|
+
this.planes = [];
|
|
157
|
+
this.isInstalled = false;
|
|
158
|
+
}
|
|
159
|
+
/** Planes that contribute to a viewport rectangle, back to front, with their clipped rectangle. */
|
|
160
|
+
under(rect, excluded = [], menu = false) {
|
|
161
|
+
return this.planes.flatMap(plane => {
|
|
162
|
+
const layer = plane.layer;
|
|
163
|
+
if (layer.menuOverlay && !menu)
|
|
164
|
+
return [];
|
|
165
|
+
if (layer.owner && excluded.includes(layer.owner))
|
|
166
|
+
return [];
|
|
167
|
+
let clip = intersect(rect, layer.clip);
|
|
168
|
+
const bottom = layer.keyboard?.clipBottom;
|
|
169
|
+
if (clip && bottom !== undefined)
|
|
170
|
+
clip = intersect(clip, [clip[0], clip[1], clip[2], Math.max(0, bottom - clip[1])]);
|
|
171
|
+
// A banded window is drawn only where it has pixels: beyond its open edges the window
|
|
172
|
+
// pinned under it shows (and that one's fill beyond its own).
|
|
173
|
+
if (clip && layer.band) {
|
|
174
|
+
const top = layer.origin.y - layer.scroll.y;
|
|
175
|
+
const open = layer.openEdges ?? 0;
|
|
176
|
+
const from = open & 1 ? top : -Infinity;
|
|
177
|
+
const to = open & 2 ? top + layer.height : Infinity;
|
|
178
|
+
const y = Math.max(clip[1], from);
|
|
179
|
+
const bottom = Math.min(clip[1] + clip[3], to);
|
|
180
|
+
clip = bottom > y ? [clip[0], y, clip[2], bottom - y] : undefined;
|
|
181
|
+
}
|
|
182
|
+
return clip ? [{ plane, clip }] : [];
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
/** Everything that decides the composed pixels of `rect`, relative to `rect`: a surface
|
|
186
|
+
* that moves with its plane (scroll-attached glass) keeps the same key while scrolling. */
|
|
187
|
+
keyFor(rect, skip, excluded = [], belowEdges = false, menu = false, pose) {
|
|
188
|
+
// Edges are fixed to the bars: their position relative to the surface decides the pixels.
|
|
189
|
+
// A surface below the edge layer does not have the edges in its backdrop at all.
|
|
190
|
+
const edges = (belowEdges ? [] : this.edgesUnder(rect, pose)).map(e => [
|
|
191
|
+
e.rect[0] - rect[0],
|
|
192
|
+
e.rect[1] - rect[1],
|
|
193
|
+
e.rect[2],
|
|
194
|
+
e.rect[3],
|
|
195
|
+
e.solid - rect[1],
|
|
196
|
+
e.mask?.map(([y, alpha]) => [y - rect[1], alpha]),
|
|
197
|
+
e.sigma,
|
|
198
|
+
e.tint,
|
|
199
|
+
e.strength,
|
|
200
|
+
e.cap ? [e.cap.color, e.cap.solid - rect[1], e.cap.end - rect[1]] : null,
|
|
201
|
+
]);
|
|
202
|
+
return JSON.stringify([
|
|
203
|
+
edges,
|
|
204
|
+
this.under(rect, excluded, menu).map(({ plane: { layer }, clip }) => layer.id === skip
|
|
205
|
+
? [layer.id, clip[0] - rect[0], clip[1] - rect[1], clip[2], clip[3], layer.fillEdges ?? 0]
|
|
206
|
+
: [
|
|
207
|
+
layer.key,
|
|
208
|
+
layer.origin.x - layer.scroll.x - rect[0],
|
|
209
|
+
layer.origin.y - layer.scroll.y - rect[1],
|
|
210
|
+
clip[0] - rect[0],
|
|
211
|
+
clip[1] - rect[1],
|
|
212
|
+
clip[2],
|
|
213
|
+
clip[3],
|
|
214
|
+
layer.fill,
|
|
215
|
+
layer.menuOverlay ?? false,
|
|
216
|
+
layer.openEdges ?? 0,
|
|
217
|
+
layer.fillEdges ?? 0,
|
|
218
|
+
]),
|
|
219
|
+
]);
|
|
220
|
+
}
|
|
221
|
+
/** GPU texture for a plane's capture (shared with any raster using the same key). */
|
|
222
|
+
texture(plane) {
|
|
223
|
+
if (!plane.texture) {
|
|
224
|
+
const image = plane.image.value;
|
|
225
|
+
plane.texture = this.graph.target('front', image.width, image.height, false, plane.layer.key);
|
|
226
|
+
}
|
|
227
|
+
this.graph.upload(plane.image.value, plane.texture.value);
|
|
228
|
+
return plane.texture.value;
|
|
229
|
+
}
|
|
230
|
+
report() {
|
|
231
|
+
return this.planes.map(({ layer, texture }) => ({
|
|
232
|
+
id: layer.id,
|
|
233
|
+
owner: layer.owner,
|
|
234
|
+
resolution: layer.resolution,
|
|
235
|
+
key: layer.key,
|
|
236
|
+
origin: layer.origin,
|
|
237
|
+
clip: layer.clip,
|
|
238
|
+
scroll: layer.scroll,
|
|
239
|
+
size: [layer.width, layer.height],
|
|
240
|
+
uploaded: !!texture,
|
|
241
|
+
}));
|
|
242
|
+
}
|
|
243
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { type Travel } from '../presentationFrame.js';
|
|
2
|
+
/** Main-thread discovery of the screen-space backdrop planes. No pane names, no
|
|
3
|
+
* "primary" heuristics: every visible scroll container is a plane, and so is every
|
|
4
|
+
* visible screen (or presentation's content) that has no scroll container of its own.
|
|
5
|
+
* A held or travelling presentation is discovered in its resting frame
|
|
6
|
+
* (presentationFrame.ts). Nested scroll containers
|
|
7
|
+
* belong to their parent's capture. Planes are ordered back to front by paint order
|
|
8
|
+
* (document order within the scene, then open dialogs, which paint in the top layer). */
|
|
9
|
+
type Rect = [number, number, number, number];
|
|
10
|
+
/** Ownership survives recaptures; the same dialog must never become its own backdrop. */
|
|
11
|
+
export declare function backdropOwner(element: Element): string | undefined;
|
|
12
|
+
/** Presentation materials sample below their top-layer dialog. Smaller controls may
|
|
13
|
+
* sample their dialog's content, but never a later dialog above them.
|
|
14
|
+
* `dialogs` is the scene's top-layer order. Callers that refresh many regions
|
|
15
|
+
* pass one list; a single lookup reads it itself. */
|
|
16
|
+
export declare function backdropExclusions(element: Element, presentation: boolean, dialogs?: readonly HTMLDialogElement[]): string[];
|
|
17
|
+
/** Planes of the scene (its active tab panel) followed by open modal dialogs. `content` (the
|
|
18
|
+
* navigation source) is included when nothing discovered covers it and it is not
|
|
19
|
+
* hidden within the scene (a collapsed sidebar can still be the navigation source). */
|
|
20
|
+
export declare function discoverBackdropHosts(scene: Element, content?: HTMLElement): HTMLElement[];
|
|
21
|
+
/** Viewport rectangle the plane is visible through: its box, every clipping ancestor and the
|
|
22
|
+
* viewport. Inside a travelling presentation, the box and the clips that travel with it are read
|
|
23
|
+
* in the presentation's resting frame. */
|
|
24
|
+
export declare function backdropClip(host: HTMLElement, travel?: Travel): Rect | undefined;
|
|
25
|
+
/** Opaque colour a plane's empty area shows: its own and its ancestors' backgrounds
|
|
26
|
+
* composited front to back, over the page background. Straight RGB, alpha 1. */
|
|
27
|
+
export declare function effectiveBackground(host: HTMLElement, page: readonly [number, number, number]): [number, number, number, number];
|
|
28
|
+
export declare const cssColor: (fill: readonly number[]) => string;
|
|
29
|
+
export {};
|