@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,204 @@
|
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useId, useLayoutEffect, useRef, useState, } from 'react';
|
|
3
|
+
import { SensoryButton } from '../haptics/SensoryButton.js';
|
|
4
|
+
import { ControlLens, trackThumbContact } from '../glass/ControlLens.js';
|
|
5
|
+
import { CONTROL_LIFT, controlLensSize } from '../glass/lens/controlLift.js';
|
|
6
|
+
import { requestGlassSourceDamage } from '../glass/sourceDamage.js';
|
|
7
|
+
import { ownPhysicalContact, retirePhysicalContact, TOGGLE_CONTACT_CLICK_WINDOW_MS, } from '../press/contactReceipt.js';
|
|
8
|
+
import { TOGGLE_TRAVEL_PT, ToggleContact } from './toggleContact.js';
|
|
9
|
+
import { RowLabelBody } from './RowLabel.js';
|
|
10
|
+
/** The lens element overhangs the 63 × 44 pt switch so the held lens (and its press overshoot)
|
|
11
|
+
* fits at either end of the travel, with room below for its exterior shadow. */
|
|
12
|
+
const LENS_OVERHANG_PT = 11;
|
|
13
|
+
const LENS_OVERHANG_Y_PT = 8;
|
|
14
|
+
const SWITCH_HEIGHT_PT = 44;
|
|
15
|
+
/** Thumb centre at the off end: 2 pt inset plus half the 37 pt resting thumb. */
|
|
16
|
+
const THUMB_OFF_CENTER_PT = 2 + CONTROL_LIFT.rest.width / 2;
|
|
17
|
+
const now = () => performance.timeOrigin + performance.now();
|
|
18
|
+
export function Toggle(props) {
|
|
19
|
+
return _jsx(ToggleControl, { ...props });
|
|
20
|
+
}
|
|
21
|
+
export function ToggleRow({ label, subtitle, checked, onChange, disabled = false, leading, style, }) {
|
|
22
|
+
return (_jsx(ToggleControl, { row: true, style: style, label: label, subtitle: subtitle, leading: leading, disabled: disabled, checked: checked, onChange: onChange }));
|
|
23
|
+
}
|
|
24
|
+
function ToggleControl({ checked, onChange, disabled = false, label, subtitle, row = false, leading, tint, style, }) {
|
|
25
|
+
const labelId = useId();
|
|
26
|
+
const subtitleId = useId();
|
|
27
|
+
const contactOwner = useRef({}).current;
|
|
28
|
+
const lens = useRef(null);
|
|
29
|
+
const thumb = useRef(null);
|
|
30
|
+
const latest = useRef({ checked, onChange });
|
|
31
|
+
latest.current = { checked, onChange };
|
|
32
|
+
const [contact] = useState(() => new ToggleContact(checked, now()));
|
|
33
|
+
const [lensActive, setLensActive] = useState(false);
|
|
34
|
+
const frame = useRef(0);
|
|
35
|
+
/** What the renderer was last told. A shown lens (lifted or restoring) follows the thumb. */
|
|
36
|
+
const lensPhase = useRef('hidden');
|
|
37
|
+
const lensCenter = useRef(0);
|
|
38
|
+
const endListeners = useRef(undefined);
|
|
39
|
+
function paint(state) {
|
|
40
|
+
const element = thumb.current;
|
|
41
|
+
if (!element)
|
|
42
|
+
return;
|
|
43
|
+
const size = controlLensSize('toggle', state.lift);
|
|
44
|
+
const center = LENS_OVERHANG_PT + THUMB_OFF_CENTER_PT + state.position * TOGGLE_TRAVEL_PT;
|
|
45
|
+
element.style.left = `${center - size.width / 2}px`;
|
|
46
|
+
element.style.top = `${LENS_OVERHANG_Y_PT + (SWITCH_HEIGHT_PT - size.height) / 2}px`;
|
|
47
|
+
element.style.width = `${size.width}px`;
|
|
48
|
+
element.style.height = `${size.height}px`;
|
|
49
|
+
element.style.borderRadius = `${size.height / 2}px`;
|
|
50
|
+
// The white thumb gives way to the lens as it grows (the same spring drives both).
|
|
51
|
+
element.style.opacity = `${1 - Math.min(1, Math.max(0, state.lift))}`;
|
|
52
|
+
const moved = lensCenter.current !== center;
|
|
53
|
+
lensCenter.current = center;
|
|
54
|
+
if (moved && lensPhase.current !== 'hidden')
|
|
55
|
+
lens.current?.interact('dragging', center, now());
|
|
56
|
+
}
|
|
57
|
+
function tick() {
|
|
58
|
+
frame.current = 0;
|
|
59
|
+
const at = now();
|
|
60
|
+
// Lift only once the renderer has the lens: glass shows in the lift's first frame.
|
|
61
|
+
const lifting = contact.liftDue(at) && !!lens.current?.ready;
|
|
62
|
+
if (lifting)
|
|
63
|
+
contact.lift(at);
|
|
64
|
+
paint(contact.sample(at));
|
|
65
|
+
// Sent after this frame's paint, so no later-stamped centre update precedes it.
|
|
66
|
+
if (lifting) {
|
|
67
|
+
lensPhase.current = 'lifted';
|
|
68
|
+
lens.current?.interact('pressed', lensCenter.current, at);
|
|
69
|
+
}
|
|
70
|
+
if (contact.needsFrame) {
|
|
71
|
+
frame.current = requestAnimationFrame(tick);
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
// A settled hold keeps its lens. Input wakes this same transaction when the finger moves.
|
|
75
|
+
if (contact.active)
|
|
76
|
+
return;
|
|
77
|
+
if (lensPhase.current !== 'hidden')
|
|
78
|
+
lens.current?.interact('rest', lensCenter.current, now());
|
|
79
|
+
lensPhase.current = 'hidden';
|
|
80
|
+
setLensActive(false);
|
|
81
|
+
}
|
|
82
|
+
/** The contact ended: the lens restores with the control's release spring from `at`. */
|
|
83
|
+
function releaseLens(at) {
|
|
84
|
+
if (lensPhase.current !== 'lifted' || contact.isLifted)
|
|
85
|
+
return;
|
|
86
|
+
lensPhase.current = 'restoring';
|
|
87
|
+
lens.current?.interact('releasing', lensCenter.current, at);
|
|
88
|
+
}
|
|
89
|
+
function schedule() {
|
|
90
|
+
if (!frame.current)
|
|
91
|
+
frame.current = requestAnimationFrame(tick);
|
|
92
|
+
}
|
|
93
|
+
/** Input paints in its own event, so the thumb never trails the finger by a frame. */
|
|
94
|
+
function paintNow() {
|
|
95
|
+
cancelAnimationFrame(frame.current);
|
|
96
|
+
tick();
|
|
97
|
+
}
|
|
98
|
+
// The thumb's geometry is written here, never by React, so a re-render cannot jump it.
|
|
99
|
+
const mounted = useRef(false);
|
|
100
|
+
useLayoutEffect(() => {
|
|
101
|
+
contact.reducedMotion = matchMedia('(prefers-reduced-motion: reduce)').matches;
|
|
102
|
+
contact.setChecked(checked, now(), mounted.current);
|
|
103
|
+
// Without a track transition there is no transitionend to recapture on.
|
|
104
|
+
const visual = thumb.current?.closest('[data-satin-toggle]');
|
|
105
|
+
if (mounted.current && contact.reducedMotion && visual)
|
|
106
|
+
requestGlassSourceDamage(visual);
|
|
107
|
+
mounted.current = true;
|
|
108
|
+
paint(contact.sample(now()));
|
|
109
|
+
if (contact.needsFrame)
|
|
110
|
+
schedule();
|
|
111
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
112
|
+
}, [checked]);
|
|
113
|
+
useEffect(() => {
|
|
114
|
+
const visual = thumb.current?.closest('[data-satin-toggle]');
|
|
115
|
+
if (!visual)
|
|
116
|
+
return;
|
|
117
|
+
// The lens and other glass sample the track: recapture it once its colour has settled.
|
|
118
|
+
const settled = (event) => {
|
|
119
|
+
const transition = event;
|
|
120
|
+
if (transition.pseudoElement === '::before' && transition.propertyName === 'background-color')
|
|
121
|
+
requestGlassSourceDamage(visual);
|
|
122
|
+
};
|
|
123
|
+
visual.addEventListener('transitionend', settled);
|
|
124
|
+
return () => visual.removeEventListener('transitionend', settled);
|
|
125
|
+
}, []);
|
|
126
|
+
useEffect(() => () => {
|
|
127
|
+
cancelAnimationFrame(frame.current);
|
|
128
|
+
endListeners.current?.();
|
|
129
|
+
retirePhysicalContact(document, contactOwner);
|
|
130
|
+
}, [contactOwner]);
|
|
131
|
+
function begin(event) {
|
|
132
|
+
if (disabled || event.button !== 0 || contact.active)
|
|
133
|
+
return;
|
|
134
|
+
// In a row only the switch itself drags; the label keeps its tap.
|
|
135
|
+
if (row && !(event.target instanceof Element && event.target.closest('[data-satin-toggle]')))
|
|
136
|
+
return;
|
|
137
|
+
// Ancestor row actions must not press with the switch. WebKit still owns native pan-y.
|
|
138
|
+
event.stopPropagation();
|
|
139
|
+
// A sheet switch owns its whole contact, including vertical travel.
|
|
140
|
+
const ownsVertical = !!event.currentTarget.closest('[data-satin-presentation="sheet"]');
|
|
141
|
+
const labelElement = event.currentTarget;
|
|
142
|
+
const pointerId = event.pointerId;
|
|
143
|
+
let ended = false;
|
|
144
|
+
// The finger arrives through the one contact path of interactive glass. A scroll that claims
|
|
145
|
+
// the touch before the thumb drags cancels it; a dragging thumb (or a sheet's) keeps it.
|
|
146
|
+
const finger = trackThumbContact(event.nativeEvent, {
|
|
147
|
+
move(x, y) {
|
|
148
|
+
if (contact.move(pointerId, x, y, now()) === 'vertical')
|
|
149
|
+
finish();
|
|
150
|
+
paintNow();
|
|
151
|
+
},
|
|
152
|
+
up(x, y) {
|
|
153
|
+
const at = now();
|
|
154
|
+
// The release position is the contact's last sample.
|
|
155
|
+
contact.move(pointerId, x, y, at);
|
|
156
|
+
const result = contact.up(pointerId, at);
|
|
157
|
+
releaseLens(at);
|
|
158
|
+
finish();
|
|
159
|
+
if (!result)
|
|
160
|
+
return;
|
|
161
|
+
// Every physical release commits here, whether or not WebKit later generates a click.
|
|
162
|
+
ownPhysicalContact(document, contactOwner, TOGGLE_CONTACT_CLICK_WINDOW_MS, {
|
|
163
|
+
pointerId,
|
|
164
|
+
nativeLabel: result.dragged ? undefined : labelElement,
|
|
165
|
+
});
|
|
166
|
+
if (result.value !== latest.current.checked)
|
|
167
|
+
latest.current.onChange(result.value);
|
|
168
|
+
},
|
|
169
|
+
cancel(end) {
|
|
170
|
+
finish();
|
|
171
|
+
if (end === 'cancel')
|
|
172
|
+
retirePhysicalContact(document, contactOwner);
|
|
173
|
+
},
|
|
174
|
+
yields: () => !ownsVertical && !contact.dragging,
|
|
175
|
+
});
|
|
176
|
+
if (!finger)
|
|
177
|
+
return;
|
|
178
|
+
contact.reducedMotion = matchMedia('(prefers-reduced-motion: reduce)').matches;
|
|
179
|
+
contact.down(pointerId, event.clientX, event.clientY, latest.current.checked, now(), ownsVertical);
|
|
180
|
+
setLensActive(true);
|
|
181
|
+
function finish() {
|
|
182
|
+
if (ended)
|
|
183
|
+
return;
|
|
184
|
+
ended = true;
|
|
185
|
+
const at = now();
|
|
186
|
+
contact.cancel(at);
|
|
187
|
+
releaseLens(at);
|
|
188
|
+
endListeners.current?.();
|
|
189
|
+
paintNow();
|
|
190
|
+
}
|
|
191
|
+
endListeners.current = () => {
|
|
192
|
+
endListeners.current = undefined;
|
|
193
|
+
finger.end('rest');
|
|
194
|
+
};
|
|
195
|
+
schedule();
|
|
196
|
+
}
|
|
197
|
+
const switchVisual = (_jsx(ControlLens, { kind: "toggle", active: lensActive, handle: lens, children: _jsx("span", { ref: thumb, "data-satin-toggle-thumb": "true" }) }));
|
|
198
|
+
return (_jsx(SensoryButton, { style: {
|
|
199
|
+
...(tint ? { '--satin-list-accent': tint, '--satin-list-toggle-on': tint } : {}),
|
|
200
|
+
...style,
|
|
201
|
+
}, role: "switch", "aria-checked": checked, "aria-label": row ? undefined : label, "aria-labelledby": row ? labelId : undefined, "aria-describedby": row && subtitle !== undefined ? subtitleId : undefined, disabled: disabled, "data-satin-row": row ? 'true' : undefined, "data-satin-row-disabled": row && disabled ? 'true' : undefined, "data-satin-toggle-row": row ? 'true' : undefined, "data-satin-row-intrinsic": row ? undefined : 'true', "data-satin-toggle": row ? undefined : 'true', "data-satin-horizontal-drag": !row && !disabled ? 'both' : undefined, "data-checked": checked, onPointerDown: begin, onPress: () => {
|
|
202
|
+
onChange(!checked);
|
|
203
|
+
}, children: row ? (_jsxs(_Fragment, { children: [_jsx("span", { "data-satin-row-leading": "true", children: leading }), subtitle === undefined ? (_jsx("span", { id: labelId, "data-satin-row-label": "true", children: _jsx("span", { "data-satin-row-text": "true", children: label }) })) : (_jsx("span", { "data-satin-row-label": "true", children: _jsx(RowLabelBody, { titleId: labelId, detailId: subtitleId, detail: subtitle, children: label }) })), _jsx("span", { "data-satin-row-trailing": "true", children: _jsx("span", { "data-satin-toggle": "true", "data-checked": checked, "data-satin-horizontal-drag": !disabled ? 'both' : undefined, children: switchVisual }) })] })) : (switchVisual) }));
|
|
204
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { SpringParameters } from '../motion/springTrack.js';
|
|
2
|
+
export declare const EDIT_MODE_SPRING: SpringParameters;
|
|
3
|
+
/** Width of each leading editing control's column: the delete and selection circles. */
|
|
4
|
+
export declare const EDIT_CONTROL_COLUMN = 40;
|
|
5
|
+
/** Space the reorder handle takes from the row's trailing content (21 pt handle and its gap). */
|
|
6
|
+
export declare const REORDER_HANDLE_INSET = 32;
|
|
7
|
+
/** How far the reorder handle travels as it appears. */
|
|
8
|
+
export declare const REORDER_HANDLE_TRAVEL = 44;
|
|
9
|
+
/**
|
|
10
|
+
* Rows a dragged row crosses move out of its way on this spring (`native editing fixture` held drag, one
|
|
11
|
+
* crossing, 17 refreshes, RMS 0.49 pt). The dropped row settles on it too.
|
|
12
|
+
*/
|
|
13
|
+
export declare const REORDER_SPRING: SpringParameters;
|
|
14
|
+
/** The lifted row's shadow fades over this long after the drop (33 refreshes). */
|
|
15
|
+
export declare const REORDER_DROP_SHADOW_MS = 550;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Edit mode's row motion, measured from a stock SwiftUI `List` with `onDelete` and `onMove`
|
|
3
|
+
* (iOS 27.0 Simulator, native reference `native list editing fixture native editing fixture`, five Edit/Done toggles, frame counter
|
|
4
|
+
* retimed: 0 skipped refreshes of 922; fits in native measurements).
|
|
5
|
+
*
|
|
6
|
+
* - The content shifts by the controls' width on one critically damped spring in both directions
|
|
7
|
+
* (response 0.29 s; RMS 0.32 pt entering, 0.43 pt leaving).
|
|
8
|
+
* - The delete and selection controls ride with the content, clipped by the row, and fade with
|
|
9
|
+
* the same progress (opacity tracked position within 0.02).
|
|
10
|
+
* - The reorder handle slides in from 44 pt beyond its place and fades on the same spring.
|
|
11
|
+
*/
|
|
12
|
+
export const EDIT_MODE_SPRING = { stiffness: 474, damping: 43.5 };
|
|
13
|
+
/** Width of each leading editing control's column: the delete and selection circles. */
|
|
14
|
+
export const EDIT_CONTROL_COLUMN = 40;
|
|
15
|
+
/** Space the reorder handle takes from the row's trailing content (21 pt handle and its gap). */
|
|
16
|
+
export const REORDER_HANDLE_INSET = 32;
|
|
17
|
+
/** How far the reorder handle travels as it appears. */
|
|
18
|
+
export const REORDER_HANDLE_TRAVEL = 44;
|
|
19
|
+
/**
|
|
20
|
+
* Rows a dragged row crosses move out of its way on this spring (`native editing fixture` held drag, one
|
|
21
|
+
* crossing, 17 refreshes, RMS 0.49 pt). The dropped row settles on it too.
|
|
22
|
+
*/
|
|
23
|
+
export const REORDER_SPRING = { stiffness: 332, damping: 30.6 };
|
|
24
|
+
/** The lifted row's shadow fades over this long after the drop (33 refreshes). */
|
|
25
|
+
export const REORDER_DROP_SHADOW_MS = 550;
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import type { RowActionsProps } from '../actions/types.js';
|
|
3
|
+
/** `EditMode`: whether a screen's lists show their editing controls. */
|
|
4
|
+
export type EditMode = 'inactive' | 'active';
|
|
5
|
+
/** A row's identity in `List` selection: the `ForEach` id. */
|
|
6
|
+
export type ListItemID = string | number;
|
|
7
|
+
/**
|
|
8
|
+
* Every navigation destination owns one edit mode, as a SwiftUI `NavigationStack` destination does:
|
|
9
|
+
* its `EditButton` and its lists read and write the same value, and another screen keeps its own.
|
|
10
|
+
*/
|
|
11
|
+
export declare function EditModeScope({ children }: {
|
|
12
|
+
children: ReactNode;
|
|
13
|
+
}): import("react").JSX.Element;
|
|
14
|
+
/**
|
|
15
|
+
* `@Environment(\.editMode)`: this screen's edit mode and a setter. `EditButton` toggles
|
|
16
|
+
* the same value, so a toolbar or bottom bar can follow it.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* const [editMode] = useEditMode()
|
|
20
|
+
* const editing = editMode === 'active'
|
|
21
|
+
*/
|
|
22
|
+
export declare function useEditMode(): readonly [EditMode, (next: EditMode) => void];
|
|
23
|
+
/** `List` selection as the rows see it. */
|
|
24
|
+
export type ListSelectionModel = Readonly<{
|
|
25
|
+
/** `single` selects one row (an optional binding); `multiple` collects a set. */
|
|
26
|
+
mode: 'single' | 'multiple';
|
|
27
|
+
isSelected(id: ListItemID): boolean;
|
|
28
|
+
/** A row tap: replaces a single selection; toggles a set only while editing, as SwiftUI does. */
|
|
29
|
+
activate(id: ListItemID, editing: boolean): void;
|
|
30
|
+
}>;
|
|
31
|
+
export declare const ListSelectionContext: import("react").Context<Readonly<{
|
|
32
|
+
/** `single` selects one row (an optional binding); `multiple` collects a set. */
|
|
33
|
+
mode: 'single' | 'multiple';
|
|
34
|
+
isSelected(id: ListItemID): boolean;
|
|
35
|
+
/** A row tap: replaces a single selection; toggles a set only while editing, as SwiftUI does. */
|
|
36
|
+
activate(id: ListItemID, editing: boolean): void;
|
|
37
|
+
}> | null>;
|
|
38
|
+
/**
|
|
39
|
+
* The collection, how to identify each element, the row each element becomes and its editing
|
|
40
|
+
* actions. `id` may be omitted when the elements have an `id` field.
|
|
41
|
+
*/
|
|
42
|
+
export type ForEachProps<T> = {
|
|
43
|
+
data: readonly T[];
|
|
44
|
+
children: (item: T, offset: number) => ReactNode;
|
|
45
|
+
/** `onDelete`: the offsets into `data` of the rows to delete. */
|
|
46
|
+
onDelete?: (offsets: number[]) => void;
|
|
47
|
+
/** `onMove`: the moved offsets and where they go, both counted in `data` before the move. */
|
|
48
|
+
onMove?: (fromOffsets: number[], toOffset: number) => void;
|
|
49
|
+
} & (T extends {
|
|
50
|
+
id: ListItemID;
|
|
51
|
+
} ? {
|
|
52
|
+
id?: (item: T) => ListItemID;
|
|
53
|
+
} : {
|
|
54
|
+
id: (item: T) => ListItemID;
|
|
55
|
+
});
|
|
56
|
+
/** The `ForEach` modifiers that make its rows editable. */
|
|
57
|
+
export type ForEachEditing = Readonly<Pick<ForEachProps<{
|
|
58
|
+
id: ListItemID;
|
|
59
|
+
}>, 'onDelete' | 'onMove'>>;
|
|
60
|
+
/**
|
|
61
|
+
* `ForEach`: one row per element of `data`, identified by its `id` (or `id` function). In a
|
|
62
|
+
* `List`, `onDelete` adds swipe-to-delete and the editing delete control; `onMove` adds the
|
|
63
|
+
* reorder handle. Both receive offsets into `data`; apply them with `removing` and
|
|
64
|
+
* `moving`.
|
|
65
|
+
*
|
|
66
|
+
* Put `ForEach` directly in a `List` or `Section`: the list reads it to know each row's identity.
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* <ForEach data={notes} onDelete={offsets => setNotes(notes => removing(notes, offsets))}>
|
|
70
|
+
* {note => <NavigationLink to="note" params={{ id: note.id }}>{note.title}</NavigationLink>}
|
|
71
|
+
* </ForEach>
|
|
72
|
+
*/
|
|
73
|
+
export declare function ForEach<T>(props: ForEachProps<T>): import("react").JSX.Element;
|
|
74
|
+
/** One expanded `ForEach` element: its rendered row and where it sits in `data`. */
|
|
75
|
+
export type ForEachRow = Readonly<{
|
|
76
|
+
key: string;
|
|
77
|
+
id: ListItemID;
|
|
78
|
+
offset: number;
|
|
79
|
+
child: ReactNode;
|
|
80
|
+
}>;
|
|
81
|
+
export declare function forEachRows<T>(props: ForEachProps<T>): ForEachRow[];
|
|
82
|
+
/** What an editable row needs from its list item: edit state, selection and the item's actions. */
|
|
83
|
+
export type ListItemState = Readonly<{
|
|
84
|
+
editing: boolean;
|
|
85
|
+
/** While editing with a selection, a row's own press selects it, as a SwiftUI list row does. */
|
|
86
|
+
pressSelects: boolean;
|
|
87
|
+
select(): void;
|
|
88
|
+
/** Rows that also declare actions hand them to the item, which owns the row's one gesture host. */
|
|
89
|
+
delegateActions?: (actions: RowActionsDelegation | undefined) => void;
|
|
90
|
+
}>;
|
|
91
|
+
/** A row's own swipe actions, context menu and disabled state, handed to its list item. */
|
|
92
|
+
export type RowActionsDelegation = RowActionsProps & Readonly<{
|
|
93
|
+
disabled?: boolean;
|
|
94
|
+
}>;
|
|
95
|
+
export declare const ListItemContext: import("react").Context<Readonly<{
|
|
96
|
+
editing: boolean;
|
|
97
|
+
/** While editing with a selection, a row's own press selects it, as a SwiftUI list row does. */
|
|
98
|
+
pressSelects: boolean;
|
|
99
|
+
select(): void;
|
|
100
|
+
/** Rows that also declare actions hand them to the item, which owns the row's one gesture host. */
|
|
101
|
+
delegateActions?: (actions: RowActionsDelegation | undefined) => void;
|
|
102
|
+
}> | null>;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { createContext, Fragment, useContext, useMemo, useState } from 'react';
|
|
3
|
+
const inactiveEverywhere = ['inactive', () => { }];
|
|
4
|
+
const EditModeContext = createContext(inactiveEverywhere);
|
|
5
|
+
/**
|
|
6
|
+
* Every navigation destination owns one edit mode, as a SwiftUI `NavigationStack` destination does:
|
|
7
|
+
* its `EditButton` and its lists read and write the same value, and another screen keeps its own.
|
|
8
|
+
*/
|
|
9
|
+
export function EditModeScope({ children }) {
|
|
10
|
+
const [editMode, setEditMode] = useState('inactive');
|
|
11
|
+
const binding = useMemo(() => [editMode, setEditMode], [editMode]);
|
|
12
|
+
return _jsx(EditModeContext, { value: binding, children: children });
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* `@Environment(\.editMode)`: this screen's edit mode and a setter. `EditButton` toggles
|
|
16
|
+
* the same value, so a toolbar or bottom bar can follow it.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* const [editMode] = useEditMode()
|
|
20
|
+
* const editing = editMode === 'active'
|
|
21
|
+
*/
|
|
22
|
+
export function useEditMode() {
|
|
23
|
+
return useContext(EditModeContext);
|
|
24
|
+
}
|
|
25
|
+
export const ListSelectionContext = createContext(null);
|
|
26
|
+
/**
|
|
27
|
+
* `ForEach`: one row per element of `data`, identified by its `id` (or `id` function). In a
|
|
28
|
+
* `List`, `onDelete` adds swipe-to-delete and the editing delete control; `onMove` adds the
|
|
29
|
+
* reorder handle. Both receive offsets into `data`; apply them with `removing` and
|
|
30
|
+
* `moving`.
|
|
31
|
+
*
|
|
32
|
+
* Put `ForEach` directly in a `List` or `Section`: the list reads it to know each row's identity.
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* <ForEach data={notes} onDelete={offsets => setNotes(notes => removing(notes, offsets))}>
|
|
36
|
+
* {note => <NavigationLink to="note" params={{ id: note.id }}>{note.title}</NavigationLink>}
|
|
37
|
+
* </ForEach>
|
|
38
|
+
*/
|
|
39
|
+
export function ForEach(props) {
|
|
40
|
+
// Outside a List, a ForEach is only its rows. Inside one, the List expands it itself.
|
|
41
|
+
return (_jsx(_Fragment, { children: forEachRows(props).map(row => (_jsx(Fragment, { children: row.child }, row.key))) }));
|
|
42
|
+
}
|
|
43
|
+
export function forEachRows(props) {
|
|
44
|
+
const identify = props.id ??
|
|
45
|
+
((item) => item.id);
|
|
46
|
+
return props.data.map((item, offset) => {
|
|
47
|
+
const id = identify(item);
|
|
48
|
+
return { key: `${typeof id}:${id}`, id, offset, child: props.children(item, offset) };
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
export const ListItemContext = createContext(null);
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/** Shared by controls that adopt native row presentation inside a List or Form. */
|
|
2
|
+
export declare const ListContext: import("react").Context<boolean>;
|
|
3
|
+
/** Inside custom ListRow content: the row owns its insets and cell, so fields inside are plain. */
|
|
4
|
+
export declare const ListRowContentContext: import("react").Context<boolean>;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { createContext } from 'react';
|
|
2
|
+
/** Shared by controls that adopt native row presentation inside a List or Form. */
|
|
3
|
+
export const ListContext = createContext(false);
|
|
4
|
+
/** Inside custom ListRow content: the row owns its insets and cell, so fields inside are plain. */
|
|
5
|
+
export const ListRowContentContext = createContext(false);
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns a new array: the elements at `fromOffsets` move,
|
|
3
|
+
* in their original order, to just before the element that was at `toOffset`. Pass it exactly
|
|
4
|
+
* what `ForEach`'s `onMove` reports.
|
|
5
|
+
*
|
|
6
|
+
* `toOffset` counts positions in the original array: moving the first of three
|
|
7
|
+
* rows below the second reports `toOffset` 2, not 1. Use `items.length` to move to the end.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* <ForEach
|
|
11
|
+
* data={todos}
|
|
12
|
+
* onMove={(from, to) => setTodos(todos => moving(todos, { fromOffsets: from, toOffset: to }))}
|
|
13
|
+
* >
|
|
14
|
+
*/
|
|
15
|
+
export declare function moving<T>(items: readonly T[], { fromOffsets, toOffset }: {
|
|
16
|
+
fromOffsets: readonly number[];
|
|
17
|
+
toOffset: number;
|
|
18
|
+
}): T[];
|
|
19
|
+
/**
|
|
20
|
+
* Swift `remove(atOffsets:)`, returning a new array without the elements at `offsets`. Pass it
|
|
21
|
+
* exactly what `ForEach`'s `onDelete` reports.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* <ForEach data={todos} onDelete={offsets => setTodos(todos => removing(todos, offsets))}>
|
|
25
|
+
*/
|
|
26
|
+
export declare function removing<T>(items: readonly T[], offsets: readonly number[]): T[];
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns a new array: the elements at `fromOffsets` move,
|
|
3
|
+
* in their original order, to just before the element that was at `toOffset`. Pass it exactly
|
|
4
|
+
* what `ForEach`'s `onMove` reports.
|
|
5
|
+
*
|
|
6
|
+
* `toOffset` counts positions in the original array: moving the first of three
|
|
7
|
+
* rows below the second reports `toOffset` 2, not 1. Use `items.length` to move to the end.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* <ForEach
|
|
11
|
+
* data={todos}
|
|
12
|
+
* onMove={(from, to) => setTodos(todos => moving(todos, { fromOffsets: from, toOffset: to }))}
|
|
13
|
+
* >
|
|
14
|
+
*/
|
|
15
|
+
export function moving(items, { fromOffsets, toOffset }) {
|
|
16
|
+
const moved = new Set(fromOffsets);
|
|
17
|
+
const kept = items.filter((_, offset) => !moved.has(offset));
|
|
18
|
+
const movedItems = items.filter((_, offset) => moved.has(offset));
|
|
19
|
+
// Every moved element that sat above the destination leaves a gap, so the destination shifts up.
|
|
20
|
+
const movedAbove = [...moved].filter(offset => offset < toOffset).length;
|
|
21
|
+
kept.splice(toOffset - movedAbove, 0, ...movedItems);
|
|
22
|
+
return kept;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Swift `remove(atOffsets:)`, returning a new array without the elements at `offsets`. Pass it
|
|
26
|
+
* exactly what `ForEach`'s `onDelete` reports.
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* <ForEach data={todos} onDelete={offsets => setTodos(todos => removing(todos, offsets))}>
|
|
30
|
+
*/
|
|
31
|
+
export function removing(items, offsets) {
|
|
32
|
+
const removed = new Set(offsets);
|
|
33
|
+
return items.filter((_, offset) => !removed.has(offset));
|
|
34
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Drag-to-reorder for one `ForEach` in a section, started from a row's reorder handle.
|
|
3
|
+
*
|
|
4
|
+
* The lifted row follows the finger, unscaled, with a soft shadow; the rows it crosses slide out
|
|
5
|
+
* of its way on the measured spring. Releasing settles the row into its slot and reports one move;
|
|
6
|
+
* a cancelled contact puts every row back and reports nothing. Native lets a dragged row cross a
|
|
7
|
+
* `moveDisabled` row (the disabled row only lacks a handle), so every row of the group is a slot.
|
|
8
|
+
*/
|
|
9
|
+
export type ReorderDrag = Readonly<{
|
|
10
|
+
cancel(): void;
|
|
11
|
+
}>;
|
|
12
|
+
export declare function startReorderDrag({ item, pointer, onCommit, onEnd, }: {
|
|
13
|
+
item: HTMLElement;
|
|
14
|
+
pointer: PointerEvent;
|
|
15
|
+
/** The dragged row's index and its destination index among the group's rows. */
|
|
16
|
+
onCommit(from: number, to: number): void;
|
|
17
|
+
onEnd(): void;
|
|
18
|
+
}): ReorderDrag;
|
|
19
|
+
/** Clears the transforms a drag left once the list has rendered its new order. */
|
|
20
|
+
export declare function resetReorderTransforms(parent: Element): void;
|