@satinhq/kit 0.0.0-stage → 0.1.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/NOTICE +96 -0
- package/README.md +454 -2
- package/THIRD_PARTY_NOTICES.md +65 -0
- package/bin/satin.mjs +13 -0
- package/dist/acknowledgements/Acknowledgements.d.ts +4 -0
- package/dist/acknowledgements/Acknowledgements.js +42 -0
- package/dist/acknowledgements/bundledNotices.d.ts +4 -0
- package/dist/acknowledgements/bundledNotices.js +58 -0
- package/dist/acknowledgements/inventory.d.ts +17 -0
- package/dist/acknowledgements/inventory.js +10 -0
- package/dist/acknowledgements/inventory.json +39 -0
- package/dist/actions/ActionMenu.d.ts +30 -0
- package/dist/actions/ActionMenu.js +103 -0
- package/dist/actions/RowActions.d.ts +42 -0
- package/dist/actions/RowActions.js +820 -0
- package/dist/actions/contextMotion.d.ts +78 -0
- package/dist/actions/contextMotion.js +329 -0
- package/dist/actions/motion.d.ts +19 -0
- package/dist/actions/motion.js +74 -0
- package/dist/actions/nativeContextAppearance.json +86 -0
- package/dist/actions/nativeContextMotion.json +734 -0
- package/dist/actions/nativeMotion.json +388 -0
- package/dist/actions/preview.d.ts +27 -0
- package/dist/actions/preview.js +217 -0
- package/dist/actions/recognizers.d.ts +24 -0
- package/dist/actions/recognizers.js +87 -0
- package/dist/actions/rowScrub.d.ts +59 -0
- package/dist/actions/rowScrub.js +400 -0
- package/dist/actions/swipeSpring.d.ts +14 -0
- package/dist/actions/swipeSpring.js +35 -0
- package/dist/actions/types.d.ts +71 -0
- package/dist/actions/types.js +28 -0
- package/dist/app/InstallComponents.d.ts +16 -0
- package/dist/app/InstallComponents.js +104 -0
- package/dist/app/InstallationDiagnostics.d.ts +7 -0
- package/dist/app/InstallationDiagnostics.js +23 -0
- package/dist/app/OrientationGuard.d.ts +8 -0
- package/dist/app/OrientationGuard.js +9 -0
- package/dist/app/appearance.d.ts +18 -0
- package/dist/app/appearance.js +15 -0
- package/dist/app/appearanceStore.d.ts +30 -0
- package/dist/app/appearanceStore.js +228 -0
- package/dist/app/backgroundUpdate.d.ts +20 -0
- package/dist/app/backgroundUpdate.js +151 -0
- package/dist/app/buildInfo.d.ts +11 -0
- package/dist/app/buildInfo.js +12 -0
- package/dist/app/buildInfoBuild.d.ts +3 -0
- package/dist/app/buildInfoBuild.js +12 -0
- package/dist/app/checkCli.d.ts +1 -0
- package/dist/app/checkCli.js +73 -0
- package/dist/app/coldLaunchUpdate.d.ts +14 -0
- package/dist/app/coldLaunchUpdate.js +384 -0
- package/dist/app/definition.d.ts +85 -0
- package/dist/app/definition.js +347 -0
- package/dist/app/deployment.d.ts +28 -0
- package/dist/app/deployment.js +352 -0
- package/dist/app/deploymentBuild.d.ts +3 -0
- package/dist/app/deploymentBuild.js +55 -0
- package/dist/app/earlyWorker.d.ts +3 -0
- package/dist/app/earlyWorker.js +77 -0
- package/dist/app/head.d.ts +10 -0
- package/dist/app/head.js +120 -0
- package/dist/app/icons.d.ts +4 -0
- package/dist/app/icons.js +35 -0
- package/dist/app/install.d.ts +18 -0
- package/dist/app/install.js +82 -0
- package/dist/app/installCheck.d.ts +2 -0
- package/dist/app/installCheck.js +148 -0
- package/dist/app/installContext.d.ts +35 -0
- package/dist/app/installContext.js +45 -0
- package/dist/app/installCustom.d.ts +25 -0
- package/dist/app/installCustom.js +55 -0
- package/dist/app/installExperience.d.ts +22 -0
- package/dist/app/installExperience.js +389 -0
- package/dist/app/installExperienceDevice.d.ts +29 -0
- package/dist/app/installExperienceDevice.js +160 -0
- package/dist/app/installExperienceHome.d.ts +16 -0
- package/dist/app/installExperienceHome.js +304 -0
- package/dist/app/installExperienceRuntime.d.ts +37 -0
- package/dist/app/installExperienceRuntime.js +285 -0
- package/dist/app/installPolicy.d.ts +28 -0
- package/dist/app/installPolicy.js +90 -0
- package/dist/app/installQr.d.ts +10 -0
- package/dist/app/installQr.js +139 -0
- package/dist/app/installStrings.d.ts +52 -0
- package/dist/app/installStrings.js +75 -0
- package/dist/app/installTipPath.d.ts +12 -0
- package/dist/app/installTipPath.js +9 -0
- package/dist/app/installationFailure.d.ts +14 -0
- package/dist/app/installationFailure.js +38 -0
- package/dist/app/launch.d.ts +7 -0
- package/dist/app/launch.js +241 -0
- package/dist/app/launchReadiness.d.ts +9 -0
- package/dist/app/launchReadiness.js +72 -0
- package/dist/app/launchScreen.d.ts +16 -0
- package/dist/app/launchScreen.js +14 -0
- package/dist/app/launchScreenRuntime.d.ts +19 -0
- package/dist/app/launchScreenRuntime.js +313 -0
- package/dist/app/launchWatchdog.d.ts +1 -0
- package/dist/app/launchWatchdog.js +202 -0
- package/dist/app/manifests.d.ts +19 -0
- package/dist/app/manifests.js +20 -0
- package/dist/app/mdm.d.ts +3 -0
- package/dist/app/mdm.js +20 -0
- package/dist/app/mediaCheck.d.ts +9 -0
- package/dist/app/mediaCheck.js +122 -0
- package/dist/app/mediaTypes.d.ts +2 -0
- package/dist/app/mediaTypes.js +13 -0
- package/dist/app/platformPolicy.d.ts +3 -0
- package/dist/app/platformPolicy.js +10 -0
- package/dist/app/platformScripts.d.ts +6 -0
- package/dist/app/platformScripts.js +65 -0
- package/dist/app/releaseUpdates.d.ts +7 -0
- package/dist/app/releaseUpdates.js +53 -0
- package/dist/app/runtime.d.ts +9 -0
- package/dist/app/runtime.js +38 -0
- package/dist/app/startup.d.ts +30 -0
- package/dist/app/startup.js +24 -0
- package/dist/app/statusBand.d.ts +11 -0
- package/dist/app/statusBand.js +257 -0
- package/dist/app/viewport.d.ts +3 -0
- package/dist/app/viewport.js +42 -0
- package/dist/app/viewportValue.d.ts +5 -0
- package/dist/app/viewportValue.js +14 -0
- package/dist/app/vite.d.ts +27 -0
- package/dist/app/vite.js +440 -0
- package/dist/app/warmImage.d.ts +3 -0
- package/dist/app/warmImage.js +59 -0
- package/dist/content/content.d.ts +153 -0
- package/dist/content/content.js +315 -0
- package/dist/content/layout.d.ts +26 -0
- package/dist/content/layout.js +114 -0
- package/dist/content/scaledMetric.d.ts +3 -0
- package/dist/content/scaledMetric.js +68 -0
- package/dist/content/typography.d.ts +83 -0
- package/dist/content/typography.js +32 -0
- package/dist/controls/ActivityIndicatorSegments.d.ts +4 -0
- package/dist/controls/ActivityIndicatorSegments.js +5 -0
- package/dist/controls/ColorPicker.d.ts +20 -0
- package/dist/controls/ColorPicker.js +70 -0
- package/dist/controls/ControlRow.d.ts +5 -0
- package/dist/controls/ControlRow.js +10 -0
- package/dist/controls/DatePicker.d.ts +41 -0
- package/dist/controls/DatePicker.js +148 -0
- package/dist/controls/ProgressView.d.ts +17 -0
- package/dist/controls/ProgressView.js +24 -0
- package/dist/controls/civilDate.d.ts +49 -0
- package/dist/controls/civilDate.js +112 -0
- package/dist/data/database.d.ts +154 -0
- package/dist/data/database.js +710 -0
- package/dist/data/value-equal.d.ts +2 -0
- package/dist/data/value-equal.js +36 -0
- package/dist/data/write-store.d.ts +38 -0
- package/dist/data/write-store.js +192 -0
- package/dist/dev-menu/DevMenu.d.ts +1 -0
- package/dist/dev-menu/DevMenu.js +121 -0
- package/dist/dev-menu/actions.d.ts +12 -0
- package/dist/dev-menu/actions.js +99 -0
- package/dist/dev-menu/build.d.ts +5 -0
- package/dist/dev-menu/build.js +40 -0
- package/dist/dev-menu/gesture.d.ts +18 -0
- package/dist/dev-menu/gesture.js +109 -0
- package/dist/dev-menu/shake.d.ts +2 -0
- package/dist/dev-menu/shake.js +36 -0
- package/dist/dev-menu/types.d.ts +8 -0
- package/dist/dev-menu/types.js +1 -0
- package/dist/diagnostics.d.ts +3 -0
- package/dist/diagnostics.js +4 -0
- package/dist/docs/app-recipes.md +411 -0
- package/dist/docs/components/file-importer.md +54 -0
- package/dist/docs/components/paste-button.md +48 -0
- package/dist/docs/components/photos-picker.md +53 -0
- package/dist/docs/components/share-link.md +58 -0
- package/dist/docs/content.md +159 -0
- package/dist/docs/controls.md +151 -0
- package/dist/docs/data.md +332 -0
- package/dist/docs/limitations.md +40 -0
- package/dist/docs/messaging-scroll.md +234 -0
- package/dist/docs/networking.md +190 -0
- package/dist/docs/push.md +215 -0
- package/dist/docs/swiftui-reference.md +1895 -0
- package/dist/docs/symbols.md +293 -0
- package/dist/docs/tokens.md +60 -0
- package/dist/fidelity/devAssertions.d.ts +21 -0
- package/dist/fidelity/devAssertions.js +199 -0
- package/dist/focus/focusIntentMachine.d.ts +106 -0
- package/dist/focus/focusIntentMachine.js +359 -0
- package/dist/focus/navigationFocus.d.ts +42 -0
- package/dist/focus/navigationFocus.js +241 -0
- package/dist/focus/programmaticFocus.d.ts +15 -0
- package/dist/focus/programmaticFocus.js +152 -0
- package/dist/gestures/GestureView.d.ts +12 -0
- package/dist/gestures/GestureView.js +321 -0
- package/dist/gestures/arena.d.ts +138 -0
- package/dist/gestures/arena.js +417 -0
- package/dist/gestures/existingCompetitors.d.ts +79 -0
- package/dist/gestures/existingCompetitors.js +82 -0
- package/dist/gestures/gesture.d.ts +62 -0
- package/dist/gestures/gesture.js +107 -0
- package/dist/glass/ControlLens.d.ts +46 -0
- package/dist/glass/ControlLens.js +88 -0
- package/dist/glass/GlassBar.d.ts +9 -0
- package/dist/glass/GlassBar.js +22 -0
- package/dist/glass/GlassConfusionReview.d.ts +3 -0
- package/dist/glass/GlassConfusionReview.js +185 -0
- package/dist/glass/GlassEffect.d.ts +69 -0
- package/dist/glass/GlassEffect.js +550 -0
- package/dist/glass/GlassMaterialRoot.d.ts +7 -0
- package/dist/glass/GlassMaterialRoot.js +39 -0
- package/dist/glass/GlassPresentation.d.ts +28 -0
- package/dist/glass/GlassPresentation.js +1038 -0
- package/dist/glass/GlassProbeIcons.d.ts +8 -0
- package/dist/glass/GlassProbeIcons.js +12 -0
- package/dist/glass/GlassProbeOverlay.d.ts +52 -0
- package/dist/glass/GlassProbeOverlay.js +45 -0
- package/dist/glass/GlassTextField.d.ts +22 -0
- package/dist/glass/GlassTextField.js +12 -0
- package/dist/glass/MaterialEffectRoot.d.ts +9 -0
- package/dist/glass/MaterialEffectRoot.js +189 -0
- package/dist/glass/Menu.d.ts +3 -0
- package/dist/glass/Menu.js +35 -0
- package/dist/glass/MenuStack.d.ts +23 -0
- package/dist/glass/MenuStack.js +371 -0
- package/dist/glass/MenuSymbol.d.ts +7 -0
- package/dist/glass/MenuSymbol.js +16 -0
- package/dist/glass/MorphEllipsisArtwork.d.ts +2 -0
- package/dist/glass/MorphEllipsisArtwork.js +6 -0
- package/dist/glass/TabBar.d.ts +29 -0
- package/dist/glass/TabBar.js +169 -0
- package/dist/glass/capability.d.ts +25 -0
- package/dist/glass/capability.js +63 -0
- package/dist/glass/captureWindow.d.ts +60 -0
- package/dist/glass/captureWindow.js +119 -0
- package/dist/glass/confusionSession.d.ts +41 -0
- package/dist/glass/confusionSession.js +44 -0
- package/dist/glass/contactPhysics.d.ts +130 -0
- package/dist/glass/contactPhysics.js +214 -0
- package/dist/glass/context.d.ts +37 -0
- package/dist/glass/context.js +11 -0
- package/dist/glass/errorAlert.d.ts +6 -0
- package/dist/glass/errorAlert.js +57 -0
- package/dist/glass/errors.d.ts +22 -0
- package/dist/glass/errors.js +78 -0
- package/dist/glass/failurePolicy.d.ts +4 -0
- package/dist/glass/failurePolicy.js +20 -0
- package/dist/glass/fallback/material.d.ts +16 -0
- package/dist/glass/fallback/material.js +87 -0
- package/dist/glass/fallback/regions.d.ts +16 -0
- package/dist/glass/fallback/regions.js +249 -0
- package/dist/glass/fallback/runtime.d.ts +72 -0
- package/dist/glass/fallback/runtime.js +278 -0
- package/dist/glass/fallback/selection.d.ts +2 -0
- package/dist/glass/fallback/selection.js +9 -0
- package/dist/glass/fieldGeometry.d.ts +28 -0
- package/dist/glass/fieldGeometry.js +64 -0
- package/dist/glass/fieldMotion.d.ts +42 -0
- package/dist/glass/fieldMotion.js +47 -0
- package/dist/glass/glassContact.d.ts +76 -0
- package/dist/glass/glassContact.js +153 -0
- package/dist/glass/glassProbeSettings.d.ts +18 -0
- package/dist/glass/glassProbeSettings.js +133 -0
- package/dist/glass/lens/Scene.d.ts +108 -0
- package/dist/glass/lens/Scene.js +553 -0
- package/dist/glass/lens/backgrounds.json +103 -0
- package/dist/glass/lens/bitmapBackdrop.d.ts +14 -0
- package/dist/glass/lens/bitmapBackdrop.js +35 -0
- package/dist/glass/lens/controlLift.d.ts +94 -0
- package/dist/glass/lens/controlLift.js +78 -0
- package/dist/glass/lens/data.d.ts +19 -0
- package/dist/glass/lens/data.js +161 -0
- package/dist/glass/lens/drawableTop.d.ts +16 -0
- package/dist/glass/lens/drawableTop.js +15 -0
- package/dist/glass/lens/icons.d.ts +9 -0
- package/dist/glass/lens/icons.js +34 -0
- package/dist/glass/lens/interactiveContact.d.ts +33 -0
- package/dist/glass/lens/interactiveContact.js +158 -0
- package/dist/glass/lens/interactivePress.d.ts +95 -0
- package/dist/glass/lens/interactivePress.js +169 -0
- package/dist/glass/lens/ios27GlyphFit.json +126 -0
- package/dist/glass/lens/lensLightingSamples.json +1 -0
- package/dist/glass/lens/lensPress.d.ts +22 -0
- package/dist/glass/lens/lensPress.js +68 -0
- package/dist/glass/lens/lensPressSamples.json +1 -0
- package/dist/glass/lens/liquidMotion.d.ts +50 -0
- package/dist/glass/lens/liquidMotion.js +239 -0
- package/dist/glass/lens/materialGlassRecipes.json +776 -0
- package/dist/glass/lens/materialUniforms.d.ts +22 -0
- package/dist/glass/lens/materialUniforms.js +117 -0
- package/dist/glass/lens/menu-closing-close-fit.json +380 -0
- package/dist/glass/lens/menu-opening-native-fits.json +911 -0
- package/dist/glass/lens/menuContextFit.json +88 -0
- package/dist/glass/lens/menuContextOpacity.json +98 -0
- package/dist/glass/lens/menuContextPresentation.d.ts +15 -0
- package/dist/glass/lens/menuContextPresentation.js +65 -0
- package/dist/glass/lens/menuCornerFit.json +252 -0
- package/dist/glass/lens/menuCornerMotion.d.ts +9 -0
- package/dist/glass/lens/menuCornerMotion.js +5 -0
- package/dist/glass/lens/menuDropFit.json +64 -0
- package/dist/glass/lens/menuField.d.ts +178 -0
- package/dist/glass/lens/menuField.js +564 -0
- package/dist/glass/lens/menuGesturePresentation.d.ts +12 -0
- package/dist/glass/lens/menuGesturePresentation.js +42 -0
- package/dist/glass/lens/menuGlyphDropFit.json +38 -0
- package/dist/glass/lens/menuMorphFit.json +564 -0
- package/dist/glass/lens/menuMorphMotion.d.ts +70 -0
- package/dist/glass/lens/menuMorphMotion.js +219 -0
- package/dist/glass/lens/menuMorphPhoneFit.json +85 -0
- package/dist/glass/lens/menuMotion.d.ts +81 -0
- package/dist/glass/lens/menuMotion.js +323 -0
- package/dist/glass/lens/menuPlacement.d.ts +5 -0
- package/dist/glass/lens/menuPlacement.js +29 -0
- package/dist/glass/lens/menuSpring.d.ts +18 -0
- package/dist/glass/lens/menuSpring.js +29 -0
- package/dist/glass/lens/menuTouchLight.d.ts +13 -0
- package/dist/glass/lens/menuTouchLight.js +147 -0
- package/dist/glass/lens/mirrorConstants.d.ts +1 -0
- package/dist/glass/lens/mirrorConstants.js +2 -0
- package/dist/glass/lens/mirrorExtents.d.ts +52 -0
- package/dist/glass/lens/mirrorExtents.js +264 -0
- package/dist/glass/lens/mirrorInvalidation.d.ts +6 -0
- package/dist/glass/lens/mirrorInvalidation.js +10 -0
- package/dist/glass/lens/mirrorReuse.d.ts +20 -0
- package/dist/glass/lens/mirrorReuse.js +166 -0
- package/dist/glass/lens/motion.d.ts +62 -0
- package/dist/glass/lens/motion.js +93 -0
- package/dist/glass/lens/recordedMotion.d.ts +6 -0
- package/dist/glass/lens/recordedMotion.js +44 -0
- package/dist/glass/lens/referenceBackground.d.ts +9 -0
- package/dist/glass/lens/referenceBackground.js +151 -0
- package/dist/glass/lens/referenceProfiles.d.ts +21 -0
- package/dist/glass/lens/referenceProfiles.js +33 -0
- package/dist/glass/lens/referenceRegularTint.d.ts +12 -0
- package/dist/glass/lens/referenceRegularTint.js +41 -0
- package/dist/glass/lens/scopeSegments.d.ts +12 -0
- package/dist/glass/lens/scopeSegments.js +18 -0
- package/dist/glass/lens/scrollAnchoring.d.ts +15 -0
- package/dist/glass/lens/scrollAnchoring.js +17 -0
- package/dist/glass/lens/selectionParameters.json +94 -0
- package/dist/glass/lens/shapeParameters.json +198 -0
- package/dist/glass/lens/tab-motion-native-fits.json +778 -0
- package/dist/glass/lens/tabAccessoryMotion.d.ts +52 -0
- package/dist/glass/lens/tabAccessoryMotion.js +52 -0
- package/dist/glass/lens/tabChromaRimModel.d.ts +43 -0
- package/dist/glass/lens/tabChromaRimModel.js +93 -0
- package/dist/glass/lens/tabCollapseInkSamples.json +49 -0
- package/dist/glass/lens/tabCompactGesture.d.ts +15 -0
- package/dist/glass/lens/tabCompactGesture.js +50 -0
- package/dist/glass/lens/tabGeometryAttack.json +70 -0
- package/dist/glass/lens/tabGlyphColours.d.ts +17 -0
- package/dist/glass/lens/tabGlyphColours.js +37 -0
- package/dist/glass/lens/tabInterruptedDecaySamples.json +245 -0
- package/dist/glass/lens/tabInterruptedRestoreSamples.json +290 -0
- package/dist/glass/lens/tabMaterialModel.d.ts +10 -0
- package/dist/glass/lens/tabMaterialModel.js +108 -0
- package/dist/glass/lens/tabMinimizeInk.d.ts +15 -0
- package/dist/glass/lens/tabMinimizeInk.js +14 -0
- package/dist/glass/lens/tabMinimizeMotion.d.ts +36 -0
- package/dist/glass/lens/tabMinimizeMotion.js +107 -0
- package/dist/glass/lens/tabMinimizeSamples.json +411 -0
- package/dist/glass/lens/tabMotion.d.ts +91 -0
- package/dist/glass/lens/tabMotion.js +478 -0
- package/dist/glass/lens/tabMotionFit.d.ts +76 -0
- package/dist/glass/lens/tabMotionFit.js +61 -0
- package/dist/glass/lens/tabNativeSymbols.d.ts +1 -0
- package/dist/glass/lens/tabNativeSymbols.js +7 -0
- package/dist/glass/lens/tabPresentation.d.ts +21 -0
- package/dist/glass/lens/tabPresentation.js +20 -0
- package/dist/glass/lens/tabRelease.d.ts +5 -0
- package/dist/glass/lens/tabRelease.js +14 -0
- package/dist/glass/lens/tabRestoreMotion.d.ts +19 -0
- package/dist/glass/lens/tabRestoreMotion.js +65 -0
- package/dist/glass/lens/tabRestoreSamples.json +1272 -0
- package/dist/glass/lens/tabSearchMember.d.ts +38 -0
- package/dist/glass/lens/tabSearchMember.js +74 -0
- package/dist/glass/lens/tabSelectionMaterial.d.ts +20 -0
- package/dist/glass/lens/tabSelectionMaterial.js +23 -0
- package/dist/glass/lens/tabSelectionMeasurements.test-fixture.d.ts +9 -0
- package/dist/glass/lens/tabSelectionMeasurements.test-fixture.js +74 -0
- package/dist/glass/lens/tabSettingsSymbol.d.ts +1 -0
- package/dist/glass/lens/tabSettingsSymbol.js +2 -0
- package/dist/glass/lens/tabShapeResponse.d.ts +7 -0
- package/dist/glass/lens/tabShapeResponse.js +30 -0
- package/dist/glass/lens/theme.d.ts +18 -0
- package/dist/glass/lens/theme.js +40 -0
- package/dist/glass/lens/trace.d.ts +2 -0
- package/dist/glass/lens/trace.js +27 -0
- package/dist/glass/liquidContext.d.ts +31 -0
- package/dist/glass/liquidContext.js +2 -0
- package/dist/glass/menuPanelPlacement.d.ts +51 -0
- package/dist/glass/menuPanelPlacement.js +128 -0
- package/dist/glass/menuPresenter.d.ts +34 -0
- package/dist/glass/menuPresenter.js +983 -0
- package/dist/glass/menuSymbolMasks.d.ts +1 -0
- package/dist/glass/menuSymbolMasks.js +1 -0
- package/dist/glass/menuSymbolTokens.d.ts +22 -0
- package/dist/glass/menuSymbolTokens.js +12 -0
- package/dist/glass/menuTriggerGeometry.d.ts +99 -0
- package/dist/glass/menuTriggerGeometry.js +126 -0
- package/dist/glass/menuTriggerSnapshot.d.ts +77 -0
- package/dist/glass/menuTriggerSnapshot.js +69 -0
- package/dist/glass/menuTypes.d.ts +22 -0
- package/dist/glass/menuTypes.js +1 -0
- package/dist/glass/morphField.d.ts +18 -0
- package/dist/glass/morphField.js +139 -0
- package/dist/glass/presentationFrame.d.ts +43 -0
- package/dist/glass/presentationFrame.js +82 -0
- package/dist/glass/pressHighlight.d.ts +9 -0
- package/dist/glass/pressHighlight.js +158 -0
- package/dist/glass/regionRegistry.d.ts +93 -0
- package/dist/glass/regionRegistry.js +313 -0
- package/dist/glass/regions.d.ts +262 -0
- package/dist/glass/regions.js +147 -0
- package/dist/glass/regularMaterialContext.d.ts +45 -0
- package/dist/glass/regularMaterialContext.js +118 -0
- package/dist/glass/regularTriggerMaterial.d.ts +19 -0
- package/dist/glass/regularTriggerMaterial.js +111 -0
- package/dist/glass/regularTriggerRim.d.ts +163 -0
- package/dist/glass/regularTriggerRim.js +436 -0
- package/dist/glass/renderSpecs.d.ts +454 -0
- package/dist/glass/renderSpecs.js +231 -0
- package/dist/glass/rendererContract.d.ts +205 -0
- package/dist/glass/rendererContract.js +18 -0
- package/dist/glass/shapeTrack.d.ts +53 -0
- package/dist/glass/shapeTrack.js +74 -0
- package/dist/glass/shapeTrackRegistry.d.ts +40 -0
- package/dist/glass/shapeTrackRegistry.js +49 -0
- package/dist/glass/sourceDamage.d.ts +6 -0
- package/dist/glass/sourceDamage.js +8 -0
- package/dist/glass/submenuMotion.d.ts +205 -0
- package/dist/glass/submenuMotion.js +306 -0
- package/dist/glass/tabBarModel.d.ts +12 -0
- package/dist/glass/tabBarModel.js +32 -0
- package/dist/glass/testing.d.ts +14 -0
- package/dist/glass/testing.js +14 -0
- package/dist/glass/tokens.d.ts +79 -0
- package/dist/glass/tokens.js +86 -0
- package/dist/glass/toolbarMaterialContext.d.ts +28 -0
- package/dist/glass/toolbarMaterialContext.js +66 -0
- package/dist/glass/topLayer.d.ts +5 -0
- package/dist/glass/topLayer.js +10 -0
- package/dist/glass/unionOutline.d.ts +11 -0
- package/dist/glass/unionOutline.js +98 -0
- package/dist/glass/visibleDeadline.d.ts +21 -0
- package/dist/glass/visibleDeadline.js +61 -0
- package/dist/glass/webgpu/accessoryMorph.d.ts +99 -0
- package/dist/glass/webgpu/accessoryMorph.js +473 -0
- package/dist/glass/webgpu/accessoryTrack.d.ts +47 -0
- package/dist/glass/webgpu/accessoryTrack.js +59 -0
- package/dist/glass/webgpu/areaMips.d.ts +50 -0
- package/dist/glass/webgpu/areaMips.js +166 -0
- package/dist/glass/webgpu/backdrop.d.ts +86 -0
- package/dist/glass/webgpu/backdrop.js +243 -0
- package/dist/glass/webgpu/backdropLayers.d.ts +29 -0
- package/dist/glass/webgpu/backdropLayers.js +182 -0
- package/dist/glass/webgpu/backgroundLayers.d.ts +71 -0
- package/dist/glass/webgpu/backgroundLayers.js +385 -0
- package/dist/glass/webgpu/cadence.d.ts +18 -0
- package/dist/glass/webgpu/cadence.js +35 -0
- package/dist/glass/webgpu/canvasSubmission.d.ts +6 -0
- package/dist/glass/webgpu/canvasSubmission.js +22 -0
- package/dist/glass/webgpu/capture.d.ts +77 -0
- package/dist/glass/webgpu/capture.js +534 -0
- package/dist/glass/webgpu/captureBands.d.ts +39 -0
- package/dist/glass/webgpu/captureBands.js +53 -0
- package/dist/glass/webgpu/captureContext.d.ts +1 -0
- package/dist/glass/webgpu/captureContext.js +6 -0
- package/dist/glass/webgpu/captureDemand.d.ts +44 -0
- package/dist/glass/webgpu/captureDemand.js +81 -0
- package/dist/glass/webgpu/captureRelease.d.ts +18 -0
- package/dist/glass/webgpu/captureRelease.js +39 -0
- package/dist/glass/webgpu/client.d.ts +49 -0
- package/dist/glass/webgpu/client.js +336 -0
- package/dist/glass/webgpu/contextBackdrop.d.ts +6 -0
- package/dist/glass/webgpu/contextBackdrop.js +13 -0
- package/dist/glass/webgpu/contextComposite.d.ts +64 -0
- package/dist/glass/webgpu/contextComposite.js +66 -0
- package/dist/glass/webgpu/decodedImage.d.ts +1 -0
- package/dist/glass/webgpu/decodedImage.js +2 -0
- package/dist/glass/webgpu/deviceLimits.d.ts +5 -0
- package/dist/glass/webgpu/deviceLimits.js +8 -0
- package/dist/glass/webgpu/edgePass.d.ts +9 -0
- package/dist/glass/webgpu/edgePass.js +170 -0
- package/dist/glass/webgpu/entry.worker.d.ts +1 -0
- package/dist/glass/webgpu/entry.worker.js +28 -0
- package/dist/glass/webgpu/errorCode.d.ts +3 -0
- package/dist/glass/webgpu/errorCode.js +27 -0
- package/dist/glass/webgpu/errors.d.ts +8 -0
- package/dist/glass/webgpu/errors.js +55 -0
- package/dist/glass/webgpu/fieldInk.d.ts +9 -0
- package/dist/glass/webgpu/fieldInk.js +62 -0
- package/dist/glass/webgpu/foreground.d.ts +29 -0
- package/dist/glass/webgpu/foreground.js +313 -0
- package/dist/glass/webgpu/frameClock.d.ts +34 -0
- package/dist/glass/webgpu/frameClock.js +60 -0
- package/dist/glass/webgpu/frameGraph.d.ts +57 -0
- package/dist/glass/webgpu/frameGraph.js +287 -0
- package/dist/glass/webgpu/frameProbe.d.ts +58 -0
- package/dist/glass/webgpu/frameProbe.js +181 -0
- package/dist/glass/webgpu/interactionProfiles.d.ts +10 -0
- package/dist/glass/webgpu/interactionProfiles.js +25 -0
- package/dist/glass/webgpu/keptGlyphs.d.ts +68 -0
- package/dist/glass/webgpu/keptGlyphs.js +85 -0
- package/dist/glass/webgpu/keyboardBackdrop.d.ts +12 -0
- package/dist/glass/webgpu/keyboardBackdrop.js +51 -0
- package/dist/glass/webgpu/lagTrace.d.ts +31 -0
- package/dist/glass/webgpu/lagTrace.js +22 -0
- package/dist/glass/webgpu/layers.d.ts +100 -0
- package/dist/glass/webgpu/layers.js +301 -0
- package/dist/glass/webgpu/lensDebug.d.ts +4 -0
- package/dist/glass/webgpu/lensDebug.js +28 -0
- package/dist/glass/webgpu/lensDiffusion.d.ts +2 -0
- package/dist/glass/webgpu/lensDiffusion.js +20 -0
- package/dist/glass/webgpu/lensLightingFit.json +222 -0
- package/dist/glass/webgpu/menuLiftInput.d.ts +30 -0
- package/dist/glass/webgpu/menuLiftInput.js +39 -0
- package/dist/glass/webgpu/menuSurfaceGuard.d.ts +17 -0
- package/dist/glass/webgpu/menuSurfaceGuard.js +26 -0
- package/dist/glass/webgpu/minimize.d.ts +184 -0
- package/dist/glass/webgpu/minimize.js +470 -0
- package/dist/glass/webgpu/navigationAtlasCopy.d.ts +12 -0
- package/dist/glass/webgpu/navigationAtlasCopy.js +121 -0
- package/dist/glass/webgpu/navigationTracks.d.ts +3 -0
- package/dist/glass/webgpu/navigationTracks.js +84 -0
- package/dist/glass/webgpu/passes.d.ts +204 -0
- package/dist/glass/webgpu/passes.js +394 -0
- package/dist/glass/webgpu/pendingSurfaceInput.d.ts +29 -0
- package/dist/glass/webgpu/pendingSurfaceInput.js +51 -0
- package/dist/glass/webgpu/preparedSourcePixels.d.ts +21 -0
- package/dist/glass/webgpu/preparedSourcePixels.js +43 -0
- package/dist/glass/webgpu/presentationBackdrop.d.ts +3 -0
- package/dist/glass/webgpu/presentationBackdrop.js +33 -0
- package/dist/glass/webgpu/presentationDiffusion.d.ts +48 -0
- package/dist/glass/webgpu/presentationDiffusion.js +57 -0
- package/dist/glass/webgpu/presentationMaterial.d.ts +9 -0
- package/dist/glass/webgpu/presentationMaterial.js +156 -0
- package/dist/glass/webgpu/presenterViewport.d.ts +11 -0
- package/dist/glass/webgpu/presenterViewport.js +193 -0
- package/dist/glass/webgpu/production.d.ts +552 -0
- package/dist/glass/webgpu/production.js +1929 -0
- package/dist/glass/webgpu/productionInstalls.d.ts +53 -0
- package/dist/glass/webgpu/productionInstalls.js +225 -0
- package/dist/glass/webgpu/productionNavigation.d.ts +5 -0
- package/dist/glass/webgpu/productionNavigation.js +360 -0
- package/dist/glass/webgpu/productionPinnedTop.d.ts +80 -0
- package/dist/glass/webgpu/productionPinnedTop.js +77 -0
- package/dist/glass/webgpu/productionPinnedTopPrepare.d.ts +21 -0
- package/dist/glass/webgpu/productionPinnedTopPrepare.js +132 -0
- package/dist/glass/webgpu/productionPlanes.d.ts +135 -0
- package/dist/glass/webgpu/productionPlanes.js +412 -0
- package/dist/glass/webgpu/productionPrepare.d.ts +18 -0
- package/dist/glass/webgpu/productionPrepare.js +832 -0
- package/dist/glass/webgpu/productionTracks.d.ts +73 -0
- package/dist/glass/webgpu/productionTracks.js +22 -0
- package/dist/glass/webgpu/productionViewport.d.ts +20 -0
- package/dist/glass/webgpu/productionViewport.js +52 -0
- package/dist/glass/webgpu/profile.d.ts +37 -0
- package/dist/glass/webgpu/profile.js +101 -0
- package/dist/glass/webgpu/raster.d.ts +337 -0
- package/dist/glass/webgpu/raster.js +1360 -0
- package/dist/glass/webgpu/rasterMaterial.d.ts +19 -0
- package/dist/glass/webgpu/rasterMaterial.js +197 -0
- package/dist/glass/webgpu/rasterShaders.d.ts +7 -0
- package/dist/glass/webgpu/rasterShaders.js +105 -0
- package/dist/glass/webgpu/rasterUniforms.d.ts +304 -0
- package/dist/glass/webgpu/rasterUniforms.js +415 -0
- package/dist/glass/webgpu/regionBackdrop.d.ts +8 -0
- package/dist/glass/webgpu/regionBackdrop.js +12 -0
- package/dist/glass/webgpu/regionBridge.d.ts +145 -0
- package/dist/glass/webgpu/regionBridge.js +1691 -0
- package/dist/glass/webgpu/regionScene.d.ts +294 -0
- package/dist/glass/webgpu/regionScene.js +2144 -0
- package/dist/glass/webgpu/renderer.d.ts +8 -0
- package/dist/glass/webgpu/renderer.js +1478 -0
- package/dist/glass/webgpu/residentPlanes.d.ts +69 -0
- package/dist/glass/webgpu/residentPlanes.js +104 -0
- package/dist/glass/webgpu/restMaterial.d.ts +6 -0
- package/dist/glass/webgpu/restMaterial.js +65 -0
- package/dist/glass/webgpu/resumeOverlay.d.ts +44 -0
- package/dist/glass/webgpu/resumeOverlay.js +82 -0
- package/dist/glass/webgpu/sampleTrace.d.ts +11 -0
- package/dist/glass/webgpu/sampleTrace.js +50 -0
- package/dist/glass/webgpu/scrollEdgeBackdrop.d.ts +89 -0
- package/dist/glass/webgpu/scrollEdgeBackdrop.js +177 -0
- package/dist/glass/webgpu/scrollEdgePose.d.ts +4 -0
- package/dist/glass/webgpu/scrollEdgePose.js +49 -0
- package/dist/glass/webgpu/selectionThumb.d.ts +81 -0
- package/dist/glass/webgpu/selectionThumb.js +209 -0
- package/dist/glass/webgpu/shaders.d.ts +67 -0
- package/dist/glass/webgpu/shaders.js +595 -0
- package/dist/glass/webgpu/sharedLift.d.ts +7 -0
- package/dist/glass/webgpu/sharedLift.js +223 -0
- package/dist/glass/webgpu/sourcePixels.d.ts +42 -0
- package/dist/glass/webgpu/sourcePixels.js +140 -0
- package/dist/glass/webgpu/sourcePixels.worker.d.ts +1 -0
- package/dist/glass/webgpu/sourcePixels.worker.js +62 -0
- package/dist/glass/webgpu/tabGlyphInk.d.ts +14 -0
- package/dist/glass/webgpu/tabGlyphInk.js +72 -0
- package/dist/glass/webgpu/touchLight.d.ts +4 -0
- package/dist/glass/webgpu/touchLight.js +15 -0
- package/dist/glass/worker/client.d.ts +21 -0
- package/dist/glass/worker/client.js +152 -0
- package/dist/glass/worker/experiment.d.ts +13 -0
- package/dist/glass/worker/experiment.js +221 -0
- package/dist/glass/worker/fixture.d.ts +21 -0
- package/dist/glass/worker/fixture.js +152 -0
- package/dist/glass/worker/protocol.d.ts +439 -0
- package/dist/glass/worker/protocol.js +5 -0
- package/dist/graphicsProbe.d.ts +19 -0
- package/dist/graphicsProbe.js +111 -0
- package/dist/haptics/SensoryButton.d.ts +21 -0
- package/dist/haptics/SensoryButton.js +80 -0
- package/dist/image/ContentAdmission.d.ts +19 -0
- package/dist/image/ContentAdmission.js +70 -0
- package/dist/image/Image.d.ts +30 -0
- package/dist/image/Image.js +341 -0
- package/dist/image/asset.d.ts +9 -0
- package/dist/image/asset.js +1 -0
- package/dist/image/contentReadiness.d.ts +7 -0
- package/dist/image/contentReadiness.js +54 -0
- package/dist/image/imports.d.ts +4 -0
- package/dist/image/resource.d.ts +53 -0
- package/dist/image/resource.js +286 -0
- package/dist/image/vite.d.ts +3 -0
- package/dist/image/vite.js +63 -0
- package/dist/index.d.ts +87 -0
- package/dist/index.js +102 -0
- package/dist/install.d.ts +8 -0
- package/dist/install.js +8 -0
- package/dist/internal.d.ts +96 -0
- package/dist/internal.js +80 -0
- package/dist/keyboard/adapter.d.ts +82 -0
- package/dist/keyboard/adapter.js +727 -0
- package/dist/keyboard/avoidance.d.ts +24 -0
- package/dist/keyboard/avoidance.js +283 -0
- package/dist/keyboard/caretMirror.d.ts +13 -0
- package/dist/keyboard/caretMirror.js +122 -0
- package/dist/keyboard/expectedKeyboard.d.ts +10 -0
- package/dist/keyboard/expectedKeyboard.js +60 -0
- package/dist/keyboard/geometry.d.ts +10 -0
- package/dist/keyboard/geometry.js +21 -0
- package/dist/keyboard/modalTapFocus.d.ts +41 -0
- package/dist/keyboard/modalTapFocus.js +224 -0
- package/dist/keyboard/motion.d.ts +54 -0
- package/dist/keyboard/motion.js +80 -0
- package/dist/keyboard/translation.d.ts +12 -0
- package/dist/keyboard/translation.js +19 -0
- package/dist/layout/adaptiveTabsContext.d.ts +5 -0
- package/dist/layout/adaptiveTabsContext.js +2 -0
- package/dist/layout/deviceIdiom.d.ts +4 -0
- package/dist/layout/deviceIdiom.js +12 -0
- package/dist/layout/layoutClass.d.ts +44 -0
- package/dist/layout/layoutClass.js +102 -0
- package/dist/layout/navigationLayoutContext.d.ts +8 -0
- package/dist/layout/navigationLayoutContext.js +5 -0
- package/dist/list-form/ListForm.d.ts +158 -0
- package/dist/list-form/ListForm.js +427 -0
- package/dist/list-form/ListItem.d.ts +30 -0
- package/dist/list-form/ListItem.js +251 -0
- package/dist/list-form/RowLabel.d.ts +14 -0
- package/dist/list-form/RowLabel.js +11 -0
- package/dist/list-form/Slider.d.ts +18 -0
- package/dist/list-form/Slider.js +235 -0
- package/dist/list-form/StepperButton.d.ts +9 -0
- package/dist/list-form/StepperButton.js +60 -0
- package/dist/list-form/Toggle.d.ts +16 -0
- package/dist/list-form/Toggle.js +204 -0
- package/dist/list-form/editMotion.d.ts +15 -0
- package/dist/list-form/editMotion.js +25 -0
- package/dist/list-form/editing.d.ts +102 -0
- package/dist/list-form/editing.js +51 -0
- package/dist/list-form/listContext.d.ts +4 -0
- package/dist/list-form/listContext.js +5 -0
- package/dist/list-form/offsets.d.ts +26 -0
- package/dist/list-form/offsets.js +34 -0
- package/dist/list-form/reorder.d.ts +20 -0
- package/dist/list-form/reorder.js +193 -0
- package/dist/list-form/rowMotion.d.ts +11 -0
- package/dist/list-form/rowMotion.js +236 -0
- package/dist/list-form/rowMotionScope.d.ts +14 -0
- package/dist/list-form/rowMotionScope.js +61 -0
- package/dist/list-form/separatorInsets.d.ts +4 -0
- package/dist/list-form/separatorInsets.js +87 -0
- package/dist/list-form/sliderContact.d.ts +40 -0
- package/dist/list-form/sliderContact.js +98 -0
- package/dist/list-form/state.d.ts +5 -0
- package/dist/list-form/state.js +8 -0
- package/dist/list-form/toggleContact.d.ts +55 -0
- package/dist/list-form/toggleContact.js +164 -0
- package/dist/media/controller.d.ts +7 -0
- package/dist/media/controller.js +612 -0
- package/dist/media/react.d.ts +9 -0
- package/dist/media/react.js +38 -0
- package/dist/media/systemMedia.d.ts +6 -0
- package/dist/media/systemMedia.js +200 -0
- package/dist/media/types.d.ts +83 -0
- package/dist/media/types.js +1 -0
- package/dist/menu/menuContact.d.ts +20 -0
- package/dist/menu/menuContact.js +286 -0
- package/dist/menu/menuGesture.d.ts +84 -0
- package/dist/menu/menuGesture.js +502 -0
- package/dist/menu/menuInteraction.d.ts +17 -0
- package/dist/menu/menuInteraction.js +34 -0
- package/dist/menu/menuOutside.d.ts +9 -0
- package/dist/menu/menuOutside.js +58 -0
- package/dist/menu/menuPanelContact.d.ts +11 -0
- package/dist/menu/menuPanelContact.js +77 -0
- package/dist/menu/menuTriggerHold.d.ts +3 -0
- package/dist/menu/menuTriggerHold.js +52 -0
- package/dist/menu/sampledMotion.d.ts +37 -0
- package/dist/menu/sampledMotion.js +86 -0
- package/dist/modal/lifecycle.d.ts +10 -0
- package/dist/modal/lifecycle.js +189 -0
- package/dist/motion/TransitionView.d.ts +12 -0
- package/dist/motion/TransitionView.js +118 -0
- package/dist/motion/animate.d.ts +20 -0
- package/dist/motion/animate.js +79 -0
- package/dist/motion/animationValue.d.ts +25 -0
- package/dist/motion/animationValue.js +42 -0
- package/dist/motion/composerMotion.d.ts +3 -0
- package/dist/motion/composerMotion.js +15 -0
- package/dist/motion/layoutTransaction.d.ts +7 -0
- package/dist/motion/layoutTransaction.js +28 -0
- package/dist/motion/matchedGeometry.d.ts +55 -0
- package/dist/motion/matchedGeometry.js +412 -0
- package/dist/motion/springPath.d.ts +27 -0
- package/dist/motion/springPath.js +46 -0
- package/dist/motion/springTrack.d.ts +33 -0
- package/dist/motion/springTrack.js +69 -0
- package/dist/motion/transition.d.ts +48 -0
- package/dist/motion/transition.js +56 -0
- package/dist/motion/transitionImages.d.ts +7 -0
- package/dist/motion/transitionImages.js +49 -0
- package/dist/motionProbe.d.ts +227 -0
- package/dist/motionProbe.js +697 -0
- package/dist/motionProbeControls.d.ts +2 -0
- package/dist/motionProbeControls.js +118 -0
- package/dist/motionProbeDelivery.d.ts +15 -0
- package/dist/motionProbeDelivery.js +84 -0
- package/dist/navigation/DetailList.d.ts +9 -0
- package/dist/navigation/DetailList.js +7 -0
- package/dist/navigation/NavigationChrome.d.ts +18 -0
- package/dist/navigation/NavigationChrome.js +195 -0
- package/dist/navigation/NavigationSearchRow.d.ts +9 -0
- package/dist/navigation/NavigationSearchRow.js +101 -0
- package/dist/navigation/NavigationTitleSlots.d.ts +18 -0
- package/dist/navigation/NavigationTitleSlots.js +64 -0
- package/dist/navigation/NavigatorHost.d.ts +17 -0
- package/dist/navigation/NavigatorHost.js +534 -0
- package/dist/navigation/ScreenContainer.d.ts +31 -0
- package/dist/navigation/ScreenContainer.js +219 -0
- package/dist/navigation/ScrubSourceFrames.d.ts +18 -0
- package/dist/navigation/ScrubSourceFrames.js +67 -0
- package/dist/navigation/Sidebar.d.ts +16 -0
- package/dist/navigation/Sidebar.js +20 -0
- package/dist/navigation/SidebarSymbol.d.ts +4 -0
- package/dist/navigation/SidebarSymbol.js +6 -0
- package/dist/navigation/ToolbarGlass.d.ts +2 -0
- package/dist/navigation/ToolbarGlass.js +429 -0
- package/dist/navigation/TransitionEdge.d.ts +4 -0
- package/dist/navigation/TransitionEdge.js +33 -0
- package/dist/navigation/bottomToolbarGeometry.d.ts +6 -0
- package/dist/navigation/bottomToolbarGeometry.js +14 -0
- package/dist/navigation/chromeCurves.d.ts +48 -0
- package/dist/navigation/chromeCurves.js +255 -0
- package/dist/navigation/glassTransition.d.ts +32 -0
- package/dist/navigation/glassTransition.js +55 -0
- package/dist/navigation/horizontalDrag.d.ts +6 -0
- package/dist/navigation/horizontalDrag.js +15 -0
- package/dist/navigation/interactivePop.d.ts +45 -0
- package/dist/navigation/interactivePop.js +86 -0
- package/dist/navigation/interactivePopTypes.d.ts +85 -0
- package/dist/navigation/interactivePopTypes.js +36 -0
- package/dist/navigation/keyboard.d.ts +9 -0
- package/dist/navigation/keyboard.js +55 -0
- package/dist/navigation/motion.d.ts +19 -0
- package/dist/navigation/motion.js +645 -0
- package/dist/navigation/motionTokens.d.ts +43 -0
- package/dist/navigation/motionTokens.js +75 -0
- package/dist/navigation/nativeScrubExperiment.d.ts +5 -0
- package/dist/navigation/nativeScrubExperiment.js +153 -0
- package/dist/navigation/nativeScrubSource.d.ts +15 -0
- package/dist/navigation/nativeScrubSource.js +88 -0
- package/dist/navigation/navigationChromeModel.d.ts +8 -0
- package/dist/navigation/navigationChromeModel.js +30 -0
- package/dist/navigation/navigationContext.d.ts +22 -0
- package/dist/navigation/navigationContext.js +65 -0
- package/dist/navigation/navigationEdge.d.ts +4 -0
- package/dist/navigation/navigationEdge.js +101 -0
- package/dist/navigation/pointerPop.d.ts +32 -0
- package/dist/navigation/pointerPop.js +206 -0
- package/dist/navigation/probeLayers.d.ts +7 -0
- package/dist/navigation/probeLayers.js +8 -0
- package/dist/navigation/registry.d.ts +14 -0
- package/dist/navigation/registry.js +31 -0
- package/dist/navigation/releaseDecision.d.ts +21 -0
- package/dist/navigation/releaseDecision.js +94 -0
- package/dist/navigation/releaseTrajectory.d.ts +20 -0
- package/dist/navigation/releaseTrajectory.js +95 -0
- package/dist/navigation/releaseVelocity.d.ts +9 -0
- package/dist/navigation/releaseVelocity.js +38 -0
- package/dist/navigation/routeCodec.d.ts +33 -0
- package/dist/navigation/routeCodec.js +123 -0
- package/dist/navigation/scrollEdge.d.ts +18 -0
- package/dist/navigation/scrollEdge.js +66 -0
- package/dist/navigation/scrubFrameLoop.d.ts +44 -0
- package/dist/navigation/scrubFrameLoop.js +129 -0
- package/dist/navigation/sidebarSelection.d.ts +5 -0
- package/dist/navigation/sidebarSelection.js +8 -0
- package/dist/navigation/splitContext.d.ts +17 -0
- package/dist/navigation/splitContext.js +9 -0
- package/dist/navigation/splitState.d.ts +46 -0
- package/dist/navigation/splitState.js +130 -0
- package/dist/navigation/stack.d.ts +25 -0
- package/dist/navigation/stack.js +136 -0
- package/dist/navigation/store.d.ts +80 -0
- package/dist/navigation/store.js +464 -0
- package/dist/navigation/toolbarGlassMotion.d.ts +40 -0
- package/dist/navigation/toolbarGlassMotion.js +202 -0
- package/dist/navigation/toolbarMinimization.d.ts +9 -0
- package/dist/navigation/toolbarMinimization.js +76 -0
- package/dist/navigation/toolbarMotionOwner.d.ts +6 -0
- package/dist/navigation/toolbarMotionOwner.js +30 -0
- package/dist/navigation/touchArbitration.d.ts +34 -0
- package/dist/navigation/touchArbitration.js +550 -0
- package/dist/navigation/tracking.d.ts +7 -0
- package/dist/navigation/tracking.js +19 -0
- package/dist/navigation/transitionBindings.d.ts +31 -0
- package/dist/navigation/transitionBindings.js +106 -0
- package/dist/navigation/transitionChrome.d.ts +31 -0
- package/dist/navigation/transitionChrome.js +380 -0
- package/dist/navigation/transitionPose.d.ts +52 -0
- package/dist/navigation/transitionPose.js +295 -0
- package/dist/navigation/types.d.ts +133 -0
- package/dist/navigation/types.js +1 -0
- package/dist/navigation/zoomDrag.d.ts +3 -0
- package/dist/navigation/zoomDrag.js +125 -0
- package/dist/navigation/zoomGeometry.d.ts +48 -0
- package/dist/navigation/zoomGeometry.js +94 -0
- package/dist/navigation/zoomGlass.d.ts +27 -0
- package/dist/navigation/zoomGlass.js +64 -0
- package/dist/navigation/zoomMotion.d.ts +73 -0
- package/dist/navigation/zoomMotion.js +104 -0
- package/dist/navigation/zoomTransition.d.ts +82 -0
- package/dist/navigation/zoomTransition.js +975 -0
- package/dist/presentation/Presentation.d.ts +61 -0
- package/dist/presentation/Presentation.js +92 -0
- package/dist/presentation/PresentationSurface.d.ts +29 -0
- package/dist/presentation/PresentationSurface.js +586 -0
- package/dist/presentation/PresentedSheet.d.ts +2 -0
- package/dist/presentation/PresentedSheet.js +571 -0
- package/dist/presentation/activity.d.ts +3 -0
- package/dist/presentation/activity.js +24 -0
- package/dist/presentation/coldLaunch.d.ts +2 -0
- package/dist/presentation/coldLaunch.js +19 -0
- package/dist/presentation/dismiss.d.ts +26 -0
- package/dist/presentation/dismiss.js +30 -0
- package/dist/presentation/glassMotion.d.ts +39 -0
- package/dist/presentation/glassMotion.js +259 -0
- package/dist/presentation/glassReady.d.ts +11 -0
- package/dist/presentation/glassReady.js +246 -0
- package/dist/presentation/model.d.ts +108 -0
- package/dist/presentation/model.js +183 -0
- package/dist/presentation/motion.d.ts +56 -0
- package/dist/presentation/motion.js +263 -0
- package/dist/presentation/presentationMotion.d.ts +10 -0
- package/dist/presentation/presentationMotion.js +74 -0
- package/dist/presentation/presentationSource.d.ts +2 -0
- package/dist/presentation/presentationSource.js +28 -0
- package/dist/presentation/sheetChromeContext.d.ts +2 -0
- package/dist/presentation/sheetChromeContext.js +3 -0
- package/dist/presentation/sheetMaterialTransition.d.ts +14 -0
- package/dist/presentation/sheetMaterialTransition.js +33 -0
- package/dist/presentation/sheetReleaseMotion.d.ts +18 -0
- package/dist/presentation/sheetReleaseMotion.js +123 -0
- package/dist/presentation/useAlertKeyboardMotion.d.ts +8 -0
- package/dist/presentation/useAlertKeyboardMotion.js +104 -0
- package/dist/press/Pressable.d.ts +19 -0
- package/dist/press/Pressable.js +16 -0
- package/dist/press/activation.d.ts +20 -0
- package/dist/press/activation.js +28 -0
- package/dist/press/contactReceipt.d.ts +23 -0
- package/dist/press/contactReceipt.js +177 -0
- package/dist/press/gestureArbitration.d.ts +13 -0
- package/dist/press/gestureArbitration.js +38 -0
- package/dist/press/stateMachine.d.ts +29 -0
- package/dist/press/stateMachine.js +39 -0
- package/dist/press/tokens.d.ts +18 -0
- package/dist/press/tokens.js +19 -0
- package/dist/press/usePressInteraction.d.ts +30 -0
- package/dist/press/usePressInteraction.js +247 -0
- package/dist/public/Label.d.ts +16 -0
- package/dist/public/Label.js +40 -0
- package/dist/public/NativeFilePicker.d.ts +19 -0
- package/dist/public/NativeFilePicker.js +75 -0
- package/dist/public/Screen.d.ts +42 -0
- package/dist/public/Screen.js +87 -0
- package/dist/public/actions.d.ts +16 -0
- package/dist/public/actions.js +15 -0
- package/dist/public/buttonBorderShape.d.ts +7 -0
- package/dist/public/buttonBorderShape.js +9 -0
- package/dist/public/chrome.d.ts +3 -0
- package/dist/public/chrome.js +5 -0
- package/dist/public/colors.d.ts +29 -0
- package/dist/public/colors.js +28 -0
- package/dist/public/context.d.ts +19 -0
- package/dist/public/context.js +8 -0
- package/dist/public/controlStyle.d.ts +93 -0
- package/dist/public/controlStyle.js +52 -0
- package/dist/public/controls.d.ts +360 -0
- package/dist/public/controls.js +301 -0
- package/dist/public/definition.d.ts +65 -0
- package/dist/public/definition.js +58 -0
- package/dist/public/deviceActions.d.ts +23 -0
- package/dist/public/deviceActions.js +87 -0
- package/dist/public/environment.d.ts +77 -0
- package/dist/public/environment.js +171 -0
- package/dist/public/fieldContext.d.ts +2 -0
- package/dist/public/fieldContext.js +3 -0
- package/dist/public/filePickers.d.ts +25 -0
- package/dist/public/filePickers.js +11 -0
- package/dist/public/glass.d.ts +31 -0
- package/dist/public/glass.js +29 -0
- package/dist/public/glassValue.d.ts +19 -0
- package/dist/public/glassValue.js +32 -0
- package/dist/public/keyboard.d.ts +4 -0
- package/dist/public/keyboard.js +6 -0
- package/dist/public/navigationTransition.d.ts +48 -0
- package/dist/public/navigationTransition.js +49 -0
- package/dist/public/pickerNavigation.d.ts +7 -0
- package/dist/public/pickerNavigation.js +64 -0
- package/dist/public/presentation.d.ts +40 -0
- package/dist/public/presentation.js +21 -0
- package/dist/public/presentationContext.d.ts +2 -0
- package/dist/public/presentationContext.js +3 -0
- package/dist/public/routeRegistry.d.ts +3 -0
- package/dist/public/routeRegistry.js +10 -0
- package/dist/public/routes.d.ts +74 -0
- package/dist/public/routes.js +105 -0
- package/dist/public/runtime.d.ts +134 -0
- package/dist/public/runtime.js +292 -0
- package/dist/public/screenChrome.d.ts +91 -0
- package/dist/public/screenChrome.js +187 -0
- package/dist/public/scroll.d.ts +38 -0
- package/dist/public/scroll.js +7 -0
- package/dist/public/storage.d.ts +9 -0
- package/dist/public/storage.js +9 -0
- package/dist/public/structure.d.ts +65 -0
- package/dist/public/structure.js +40 -0
- package/dist/public/toolbar.d.ts +37 -0
- package/dist/public/toolbar.js +76 -0
- package/dist/push/PushPermissionExplainer.d.ts +14 -0
- package/dist/push/PushPermissionExplainer.js +30 -0
- package/dist/push/notifications.d.ts +54 -0
- package/dist/push/notifications.js +276 -0
- package/dist/push/routes.d.ts +20 -0
- package/dist/push/routes.js +63 -0
- package/dist/push/schema.d.ts +42 -0
- package/dist/push/schema.js +41 -0
- package/dist/push/urlProjection.d.ts +24 -0
- package/dist/push/urlProjection.js +207 -0
- package/dist/reachability/controller.d.ts +21 -0
- package/dist/reachability/controller.js +202 -0
- package/dist/reachability/model.d.ts +94 -0
- package/dist/reachability/model.js +131 -0
- package/dist/reachability/react.d.ts +29 -0
- package/dist/reachability/react.js +69 -0
- package/dist/restoration/navigation.d.ts +9 -0
- package/dist/restoration/navigation.js +55 -0
- package/dist/restoration/react.d.ts +6 -0
- package/dist/restoration/react.js +21 -0
- package/dist/restoration/routes.d.ts +22 -0
- package/dist/restoration/routes.js +166 -0
- package/dist/restoration/scene.d.ts +44 -0
- package/dist/restoration/scene.js +284 -0
- package/dist/root/SatinRoot.d.ts +25 -0
- package/dist/root/SatinRoot.js +512 -0
- package/dist/root/mountSatin.d.ts +12 -0
- package/dist/root/mountSatin.js +60 -0
- package/dist/root/runtimeContext.d.ts +26 -0
- package/dist/root/runtimeContext.js +30 -0
- package/dist/safe-area/Overlay.d.ts +9 -0
- package/dist/safe-area/Overlay.js +26 -0
- package/dist/safe-area/SafeAreaInset.d.ts +25 -0
- package/dist/safe-area/SafeAreaInset.js +138 -0
- package/dist/safe-area/bottomInsetGeometry.d.ts +12 -0
- package/dist/safe-area/bottomInsetGeometry.js +73 -0
- package/dist/safe-area/context.d.ts +15 -0
- package/dist/safe-area/context.js +8 -0
- package/dist/safe-area/displayCorners.d.ts +21 -0
- package/dist/safe-area/displayCorners.js +70 -0
- package/dist/safe-area/keyboardCarrier.d.ts +26 -0
- package/dist/safe-area/keyboardCarrier.js +394 -0
- package/dist/safe-area/keyboardCarrierGeometry.d.ts +37 -0
- package/dist/safe-area/keyboardCarrierGeometry.js +49 -0
- package/dist/safe-area/modifiers.d.ts +52 -0
- package/dist/safe-area/modifiers.js +86 -0
- package/dist/safe-area/useSafeAreaMetrics.d.ts +83 -0
- package/dist/safe-area/useSafeAreaMetrics.js +367 -0
- package/dist/safe-area/windowChrome.d.ts +7 -0
- package/dist/safe-area/windowChrome.js +14 -0
- package/dist/scroll/RefreshControl.d.ts +8 -0
- package/dist/scroll/RefreshControl.js +135 -0
- package/dist/scroll/ScrollSurface.d.ts +62 -0
- package/dist/scroll/ScrollSurface.js +278 -0
- package/dist/scroll/ScrollTarget.d.ts +6 -0
- package/dist/scroll/ScrollTarget.js +11 -0
- package/dist/scroll/edgePolicy.d.ts +21 -0
- package/dist/scroll/edgePolicy.js +17 -0
- package/dist/scroll/insertionMotion.d.ts +15 -0
- package/dist/scroll/insertionMotion.js +128 -0
- package/dist/scroll/nativeScroll.d.ts +14 -0
- package/dist/scroll/nativeScroll.js +71 -0
- package/dist/scroll/position.d.ts +31 -0
- package/dist/scroll/position.js +273 -0
- package/dist/scroll/pressOwnership.d.ts +4 -0
- package/dist/scroll/pressOwnership.js +65 -0
- package/dist/scroll/refreshMotion.d.ts +9 -0
- package/dist/scroll/refreshMotion.js +15 -0
- package/dist/scroll/refreshable.d.ts +6 -0
- package/dist/scroll/refreshable.js +50 -0
- package/dist/scroll/registry.d.ts +38 -0
- package/dist/scroll/registry.js +261 -0
- package/dist/scroll/screenGeometry.d.ts +8 -0
- package/dist/scroll/screenGeometry.js +50 -0
- package/dist/scroll/scrollIndicator.d.ts +7 -0
- package/dist/scroll/scrollIndicator.js +114 -0
- package/dist/scroll/scrollJump.d.ts +7 -0
- package/dist/scroll/scrollJump.js +16 -0
- package/dist/scroll/types.d.ts +12 -0
- package/dist/scroll/types.js +1 -0
- package/dist/search/SearchDrawer.d.ts +16 -0
- package/dist/search/SearchDrawer.js +421 -0
- package/dist/search/SearchScopesBar.d.ts +6 -0
- package/dist/search/SearchScopesBar.js +12 -0
- package/dist/search/SearchToolbarField.d.ts +8 -0
- package/dist/search/SearchToolbarField.js +115 -0
- package/dist/search/searchBackdrop.d.ts +12 -0
- package/dist/search/searchBackdrop.js +45 -0
- package/dist/search/searchChrome.d.ts +13 -0
- package/dist/search/searchChrome.js +31 -0
- package/dist/search/searchMotion.d.ts +30 -0
- package/dist/search/searchMotion.js +46 -0
- package/dist/search/searchPlacement.d.ts +11 -0
- package/dist/search/searchPlacement.js +15 -0
- package/dist/search/searchable.d.ts +46 -0
- package/dist/search/searchable.js +5 -0
- package/dist/search/useSearchPresentation.d.ts +15 -0
- package/dist/search/useSearchPresentation.js +61 -0
- package/dist/server.d.ts +7 -0
- package/dist/server.js +144 -0
- package/dist/settings/DisclosureIndicator.d.ts +4 -0
- package/dist/settings/DisclosureIndicator.js +6 -0
- package/dist/settings/tokens.d.ts +129 -0
- package/dist/settings/tokens.js +143 -0
- package/dist/shapes/corners.d.ts +14 -0
- package/dist/shapes/corners.js +80 -0
- package/dist/styles.css +9078 -0
- package/dist/styles.css.d.ts +3 -0
- package/dist/sw/activationState.d.ts +20 -0
- package/dist/sw/activationState.js +39 -0
- package/dist/sw/generator.d.ts +14 -0
- package/dist/sw/generator.js +26 -0
- package/dist/sw/manifest.d.ts +32 -0
- package/dist/sw/manifest.js +137 -0
- package/dist/sw/protocol.d.ts +7 -0
- package/dist/sw/protocol.js +7 -0
- package/dist/sw/pushRuntime.d.ts +2 -0
- package/dist/sw/pushRuntime.js +161 -0
- package/dist/sw/registerAppShell.d.ts +25 -0
- package/dist/sw/registerAppShell.js +259 -0
- package/dist/sw/renderServiceWorker.d.ts +10 -0
- package/dist/sw/renderServiceWorker.js +370 -0
- package/dist/sw/requestRouting.d.ts +13 -0
- package/dist/sw/requestRouting.js +26 -0
- package/dist/sw/updateCheck.d.ts +2 -0
- package/dist/sw/updateCheck.js +25 -0
- package/dist/sw/vite.d.ts +20 -0
- package/dist/sw/vite.js +71 -0
- package/dist/symbols/Symbol.d.ts +33 -0
- package/dist/symbols/Symbol.js +59 -0
- package/dist/symbols/catalogue.d.ts +4 -0
- package/dist/symbols/catalogue.js +4139 -0
- package/dist/symbols/exclusions.d.ts +2 -0
- package/dist/symbols/exclusions.js +4 -0
- package/dist/symbols/inheritedWeight.d.ts +3 -0
- package/dist/symbols/inheritedWeight.js +104 -0
- package/dist/symbols/metrics.d.ts +38 -0
- package/dist/symbols/metrics.js +53 -0
- package/dist/symbols/svg.d.ts +3 -0
- package/dist/symbols/svg.js +16 -0
- package/dist/symbols/types.d.ts +30 -0
- package/dist/symbols/types.js +1 -0
- package/dist/tabs/TabSection.d.ts +12 -0
- package/dist/tabs/TabSection.js +4 -0
- package/dist/tabs/TabSidebarSurface.d.ts +7 -0
- package/dist/tabs/TabSidebarSurface.js +29 -0
- package/dist/tabs/TabView.d.ts +28 -0
- package/dist/tabs/TabView.js +258 -0
- package/dist/tabs/accessoryContact.d.ts +2 -0
- package/dist/tabs/accessoryContact.js +42 -0
- package/dist/tabs/compactBar.d.ts +4 -0
- package/dist/tabs/compactBar.js +28 -0
- package/dist/tabs/context.d.ts +8 -0
- package/dist/tabs/context.js +6 -0
- package/dist/tabs/keyboard.d.ts +3 -0
- package/dist/tabs/keyboard.js +23 -0
- package/dist/tabs/model.d.ts +6 -0
- package/dist/tabs/model.js +16 -0
- package/dist/tabs/presentation.d.ts +7 -0
- package/dist/tabs/presentation.js +14 -0
- package/dist/tabs/sourceRevision.d.ts +3 -0
- package/dist/tabs/sourceRevision.js +36 -0
- package/dist/tabs/tabSidebarGlyph.d.ts +2 -0
- package/dist/tabs/tabSidebarGlyph.js +11 -0
- package/dist/tasks/useTask.d.ts +16 -0
- package/dist/tasks/useTask.js +67 -0
- package/dist/testing.d.ts +9 -0
- package/dist/testing.js +11 -0
- package/dist/text-input/TextEditor.d.ts +25 -0
- package/dist/text-input/TextEditor.js +74 -0
- package/dist/text-input/TextField.d.ts +32 -0
- package/dist/text-input/TextField.js +29 -0
- package/dist/text-input/editorGeometry.d.ts +2 -0
- package/dist/text-input/editorGeometry.js +6 -0
- package/dist/text-input/editorTextLayout.d.ts +2 -0
- package/dist/text-input/editorTextLayout.js +31 -0
- package/dist/text-input/focusChain.d.ts +27 -0
- package/dist/text-input/focusChain.js +62 -0
- package/dist/text-input/kinds.d.ts +8 -0
- package/dist/text-input/kinds.js +34 -0
- package/dist/text-input/measureEditor.d.ts +2 -0
- package/dist/text-input/measureEditor.js +50 -0
- package/dist/text-input/submit.d.ts +9 -0
- package/dist/text-input/submit.js +7 -0
- package/dist/unstable.d.ts +16 -0
- package/dist/unstable.js +16 -0
- package/dist/vite.d.ts +3 -0
- package/dist/vite.js +3 -0
- package/dist/web/WebView.d.ts +42 -0
- package/dist/web/WebView.js +115 -0
- package/dist/web/authentication.d.ts +75 -0
- package/dist/web/authentication.js +488 -0
- package/dist/web/openURL.d.ts +37 -0
- package/dist/web/openURL.js +89 -0
- package/dist/web/urlPolicy.d.ts +3 -0
- package/dist/web/urlPolicy.js +19 -0
- package/dist/web/useWebAuthentication.d.ts +3 -0
- package/dist/web/useWebAuthentication.js +6 -0
- package/dist/zoom/Zoomable.d.ts +10 -0
- package/dist/zoom/Zoomable.js +116 -0
- package/dist/zoom/geometry.d.ts +11 -0
- package/dist/zoom/geometry.js +16 -0
- package/package.json +115 -3
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { useSyncExternalStore } from 'react';
|
|
2
|
+
import { contentFonts, contentTypography } from './typography.js';
|
|
3
|
+
function createMetricStore(style) {
|
|
4
|
+
const listeners = new Set();
|
|
5
|
+
let probe = null;
|
|
6
|
+
let observer = null;
|
|
7
|
+
let scale = 1;
|
|
8
|
+
const measure = () => {
|
|
9
|
+
if (!probe)
|
|
10
|
+
return;
|
|
11
|
+
const fontSize = Number.parseFloat(getComputedStyle(probe).fontSize);
|
|
12
|
+
const next = Number.isFinite(fontSize) && fontSize > 0 ? fontSize / contentTypography[style].size : 1;
|
|
13
|
+
if (next === scale)
|
|
14
|
+
return;
|
|
15
|
+
scale = next;
|
|
16
|
+
listeners.forEach(listener => listener());
|
|
17
|
+
};
|
|
18
|
+
return {
|
|
19
|
+
snapshot: () => scale,
|
|
20
|
+
subscribe(listener) {
|
|
21
|
+
listeners.add(listener);
|
|
22
|
+
if (!probe) {
|
|
23
|
+
probe = document.createElement('span');
|
|
24
|
+
probe.setAttribute('aria-hidden', 'true');
|
|
25
|
+
// One shared, invisible em box per subscribed style. Font changes resize it without
|
|
26
|
+
// a per-frame read or a global text policy. Last unsubscription removes all work.
|
|
27
|
+
Object.assign(probe.style, {
|
|
28
|
+
position: 'absolute',
|
|
29
|
+
top: '0',
|
|
30
|
+
left: '0',
|
|
31
|
+
visibility: 'hidden',
|
|
32
|
+
pointerEvents: 'none',
|
|
33
|
+
width: '1em',
|
|
34
|
+
height: '1em',
|
|
35
|
+
overflow: 'hidden',
|
|
36
|
+
font: contentFonts[style],
|
|
37
|
+
});
|
|
38
|
+
document.body.append(probe);
|
|
39
|
+
observer = new ResizeObserver(measure);
|
|
40
|
+
observer.observe(probe);
|
|
41
|
+
measure();
|
|
42
|
+
}
|
|
43
|
+
return () => {
|
|
44
|
+
listeners.delete(listener);
|
|
45
|
+
if (listeners.size === 0) {
|
|
46
|
+
observer?.disconnect();
|
|
47
|
+
observer = null;
|
|
48
|
+
probe?.remove();
|
|
49
|
+
probe = null;
|
|
50
|
+
scale = 1;
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
const stores = new Map();
|
|
57
|
+
/** Scale a dimension by the target WebKit system text style's Dynamic Type ratio. */
|
|
58
|
+
export function useScaledMetric(value, relativeTo = 'body') {
|
|
59
|
+
if (!Number.isFinite(value))
|
|
60
|
+
throw new Error('useScaledMetric requires a finite value.');
|
|
61
|
+
let store = stores.get(relativeTo);
|
|
62
|
+
if (!store) {
|
|
63
|
+
store = createMetricStore(relativeTo);
|
|
64
|
+
stores.set(relativeTo, store);
|
|
65
|
+
}
|
|
66
|
+
const scale = useSyncExternalStore(store.subscribe, store.snapshot, () => 1);
|
|
67
|
+
return value * scale;
|
|
68
|
+
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
export declare const contentTypography: {
|
|
2
|
+
readonly largeTitle: {
|
|
3
|
+
readonly size: 34;
|
|
4
|
+
readonly lineHeight: 40.57421875;
|
|
5
|
+
readonly lineAdvance: 41;
|
|
6
|
+
readonly weight: 400;
|
|
7
|
+
};
|
|
8
|
+
readonly title: {
|
|
9
|
+
readonly size: 28;
|
|
10
|
+
readonly lineHeight: 33.4140625;
|
|
11
|
+
readonly lineAdvance: 34;
|
|
12
|
+
readonly weight: 400;
|
|
13
|
+
};
|
|
14
|
+
readonly title2: {
|
|
15
|
+
readonly size: 22;
|
|
16
|
+
readonly lineHeight: 26.25390625;
|
|
17
|
+
readonly lineAdvance: 28;
|
|
18
|
+
readonly weight: 400;
|
|
19
|
+
};
|
|
20
|
+
readonly title3: {
|
|
21
|
+
readonly size: 20;
|
|
22
|
+
readonly lineHeight: 23.8671875;
|
|
23
|
+
readonly lineAdvance: 25;
|
|
24
|
+
readonly weight: 400;
|
|
25
|
+
};
|
|
26
|
+
readonly headline: {
|
|
27
|
+
readonly size: 17;
|
|
28
|
+
readonly lineHeight: 20.287109375;
|
|
29
|
+
readonly lineAdvance: 22;
|
|
30
|
+
readonly weight: 600;
|
|
31
|
+
};
|
|
32
|
+
readonly subheadline: {
|
|
33
|
+
readonly size: 15;
|
|
34
|
+
readonly lineHeight: 17.900390625;
|
|
35
|
+
readonly lineAdvance: 20;
|
|
36
|
+
readonly weight: 400;
|
|
37
|
+
};
|
|
38
|
+
readonly body: {
|
|
39
|
+
readonly size: 17;
|
|
40
|
+
readonly lineHeight: 20.287109375;
|
|
41
|
+
readonly lineAdvance: 22;
|
|
42
|
+
readonly weight: 400;
|
|
43
|
+
};
|
|
44
|
+
readonly callout: {
|
|
45
|
+
readonly size: 16;
|
|
46
|
+
readonly lineHeight: 19.09375;
|
|
47
|
+
readonly lineAdvance: 21;
|
|
48
|
+
readonly weight: 400;
|
|
49
|
+
};
|
|
50
|
+
readonly footnote: {
|
|
51
|
+
readonly size: 13;
|
|
52
|
+
readonly lineHeight: 15.513671875;
|
|
53
|
+
readonly lineAdvance: 18;
|
|
54
|
+
readonly weight: 400;
|
|
55
|
+
};
|
|
56
|
+
readonly caption: {
|
|
57
|
+
readonly size: 12;
|
|
58
|
+
readonly lineHeight: 14.3203125;
|
|
59
|
+
readonly lineAdvance: 16;
|
|
60
|
+
readonly weight: 400;
|
|
61
|
+
};
|
|
62
|
+
readonly caption2: {
|
|
63
|
+
readonly size: 11;
|
|
64
|
+
readonly lineHeight: 13.126953125;
|
|
65
|
+
readonly lineAdvance: 13;
|
|
66
|
+
readonly weight: 400;
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
/** Shared Text/probe font policy. WebKit does not support the large-title or callout
|
|
70
|
+
* keywords, so those styles retain Text's measured, fixed-size fallback. */
|
|
71
|
+
export declare const contentFonts: {
|
|
72
|
+
readonly largeTitle: "400 34px -apple-system";
|
|
73
|
+
readonly title: '-apple-system-title1';
|
|
74
|
+
readonly title2: '-apple-system-title2';
|
|
75
|
+
readonly title3: '-apple-system-title3';
|
|
76
|
+
readonly headline: '-apple-system-headline';
|
|
77
|
+
readonly subheadline: '-apple-system-subheadline';
|
|
78
|
+
readonly body: '-apple-system-body';
|
|
79
|
+
readonly callout: "400 16px -apple-system";
|
|
80
|
+
readonly footnote: '-apple-system-footnote';
|
|
81
|
+
readonly caption: '-apple-system-caption1';
|
|
82
|
+
readonly caption2: '-apple-system-caption2';
|
|
83
|
+
};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/* iOS 27.0 (24A434), default Dynamic Type, reference native-sim-light/geometry.json.
|
|
2
|
+
* lineHeight is the glyph line box; lineAdvance includes UIFont leading.
|
|
3
|
+
* Keep Settings large-title geometry tied to this source of type metrics.
|
|
4
|
+
*/
|
|
5
|
+
export const contentTypography = {
|
|
6
|
+
largeTitle: { size: 34, lineHeight: 40.57421875, lineAdvance: 41, weight: 400 },
|
|
7
|
+
title: { size: 28, lineHeight: 33.4140625, lineAdvance: 34, weight: 400 },
|
|
8
|
+
title2: { size: 22, lineHeight: 26.25390625, lineAdvance: 28, weight: 400 },
|
|
9
|
+
title3: { size: 20, lineHeight: 23.8671875, lineAdvance: 25, weight: 400 },
|
|
10
|
+
headline: { size: 17, lineHeight: 20.287109375, lineAdvance: 22, weight: 600 },
|
|
11
|
+
subheadline: { size: 15, lineHeight: 17.900390625, lineAdvance: 20, weight: 400 },
|
|
12
|
+
body: { size: 17, lineHeight: 20.287109375, lineAdvance: 22, weight: 400 },
|
|
13
|
+
callout: { size: 16, lineHeight: 19.09375, lineAdvance: 21, weight: 400 },
|
|
14
|
+
footnote: { size: 13, lineHeight: 15.513671875, lineAdvance: 18, weight: 400 },
|
|
15
|
+
caption: { size: 12, lineHeight: 14.3203125, lineAdvance: 16, weight: 400 },
|
|
16
|
+
caption2: { size: 11, lineHeight: 13.126953125, lineAdvance: 13, weight: 400 },
|
|
17
|
+
};
|
|
18
|
+
/** Shared Text/probe font policy. WebKit does not support the large-title or callout
|
|
19
|
+
* keywords, so those styles retain Text's measured, fixed-size fallback. */
|
|
20
|
+
export const contentFonts = {
|
|
21
|
+
largeTitle: `${contentTypography.largeTitle.weight} ${contentTypography.largeTitle.size}px -apple-system`,
|
|
22
|
+
title: '-apple-system-title1',
|
|
23
|
+
title2: '-apple-system-title2',
|
|
24
|
+
title3: '-apple-system-title3',
|
|
25
|
+
headline: '-apple-system-headline',
|
|
26
|
+
subheadline: '-apple-system-subheadline',
|
|
27
|
+
body: '-apple-system-body',
|
|
28
|
+
callout: `${contentTypography.callout.weight} ${contentTypography.callout.size}px -apple-system`,
|
|
29
|
+
footnote: '-apple-system-footnote',
|
|
30
|
+
caption: '-apple-system-caption1',
|
|
31
|
+
caption2: '-apple-system-caption2',
|
|
32
|
+
};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/** Shared with pull-to-refresh. Its historical cycle remains pending a native motion fit. */
|
|
3
|
+
export function ActivityIndicatorSegments({ running }) {
|
|
4
|
+
return Array.from({ length: 8 }, (_, index) => (_jsx("rect", { x: "9", y: "1", width: "2", height: "5", rx: "1", fill: "currentColor", transform: `rotate(${index * 45} 10 10)`, opacity: (index + 1) / 8, children: running && (_jsx("animate", { attributeName: "opacity", values: "1;0.15", dur: "1.5s", begin: `${index * 0.1875}s`, repeatCount: "indefinite" })) }, index)));
|
|
5
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/** ColorPicker's label and controlled colour. */
|
|
2
|
+
export type ColorPickerProps = {
|
|
3
|
+
label: string;
|
|
4
|
+
/** sRGB hexadecimal colour, `#RRGGBB` or `#RRGGBBAA`. */
|
|
5
|
+
selection: string;
|
|
6
|
+
onSelectionChange(selection: string): void;
|
|
7
|
+
/** Shows the system picker's opacity slider. Defaults to true. */
|
|
8
|
+
supportsOpacity?: boolean;
|
|
9
|
+
disabled?: boolean;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* `ColorPicker`: a row with a colour well that opens the system colour picker (grid,
|
|
13
|
+
* spectrum, sliders, eyedropper and, with `supportsOpacity`, opacity).
|
|
14
|
+
*
|
|
15
|
+
* The system picker is titled "Colors", not with the label.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* <ColorPicker label="List Colour" selection={color} onSelectionChange={setColor} supportsOpacity={false} />
|
|
19
|
+
*/
|
|
20
|
+
export declare function ColorPicker({ label, selection, onSelectionChange, supportsOpacity, disabled, }: ColorPickerProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useId } from 'react';
|
|
3
|
+
import { useControlStyle } from '../public/controlStyle.js';
|
|
4
|
+
import { ControlRow } from './ControlRow.js';
|
|
5
|
+
const hexPattern = /^#([\da-f]{2})([\da-f]{2})([\da-f]{2})([\da-f]{2})?$/i;
|
|
6
|
+
// WebKit reports an input with the `alpha` attribute as `color(srgb r g b / a)`, channels 0–1.
|
|
7
|
+
const srgbPattern = /^color\(srgb\s+([\d.e+-]+)\s+([\d.e+-]+)\s+([\d.e+-]+)(?:\s*\/\s*([\d.e+-]+))?\)$/i;
|
|
8
|
+
function readHex(text) {
|
|
9
|
+
const parts = hexPattern.exec(text);
|
|
10
|
+
if (!parts)
|
|
11
|
+
return null;
|
|
12
|
+
const [red, green, blue] = [parts[1], parts[2], parts[3]].map(part => parseInt(part, 16));
|
|
13
|
+
const alpha = parts[4] === undefined ? 255 : parseInt(parts[4], 16);
|
|
14
|
+
return { red: red, green: green, blue: blue, alpha };
|
|
15
|
+
}
|
|
16
|
+
function readSystemValue(text) {
|
|
17
|
+
const hex = readHex(text);
|
|
18
|
+
if (hex)
|
|
19
|
+
return hex;
|
|
20
|
+
const parts = srgbPattern.exec(text.trim());
|
|
21
|
+
if (!parts)
|
|
22
|
+
return null;
|
|
23
|
+
const unit = [parts[1], parts[2], parts[3], parts[4] ?? '1'].map(Number);
|
|
24
|
+
if (unit.some(value => !Number.isFinite(value)))
|
|
25
|
+
return null;
|
|
26
|
+
const [red, green, blue, alpha] = unit.map(value => Math.round(Math.min(1, Math.max(0, value)) * 255));
|
|
27
|
+
return { red: red, green: green, blue: blue, alpha: alpha };
|
|
28
|
+
}
|
|
29
|
+
function writeHex(channels, withAlpha) {
|
|
30
|
+
const values = [
|
|
31
|
+
channels.red,
|
|
32
|
+
channels.green,
|
|
33
|
+
channels.blue,
|
|
34
|
+
...(withAlpha ? [channels.alpha] : []),
|
|
35
|
+
];
|
|
36
|
+
return '#' + values.map(value => value.toString(16).padStart(2, '0')).join('');
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* `ColorPicker`: a row with a colour well that opens the system colour picker (grid,
|
|
40
|
+
* spectrum, sliders, eyedropper and, with `supportsOpacity`, opacity).
|
|
41
|
+
*
|
|
42
|
+
* The system picker is titled "Colors", not with the label.
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* <ColorPicker label="List Colour" selection={color} onSelectionChange={setColor} supportsOpacity={false} />
|
|
46
|
+
*/
|
|
47
|
+
export function ColorPicker({ label, selection, onSelectionChange, supportsOpacity = true, disabled, }) {
|
|
48
|
+
const labelId = useId();
|
|
49
|
+
const appearance = useControlStyle({ disabled });
|
|
50
|
+
const channels = readHex(selection);
|
|
51
|
+
if (!channels) {
|
|
52
|
+
// Persisted data can be malformed. Say so, and render an inert well rather than crash.
|
|
53
|
+
console.error('ColorPicker selection must be #RRGGBB or #RRGGBBAA.', { selection });
|
|
54
|
+
}
|
|
55
|
+
const shown = channels && writeHex(channels, supportsOpacity);
|
|
56
|
+
function propose(text) {
|
|
57
|
+
if (!channels || appearance.disabled)
|
|
58
|
+
return;
|
|
59
|
+
const next = readSystemValue(text);
|
|
60
|
+
if (!next)
|
|
61
|
+
return;
|
|
62
|
+
const value = writeHex(next, supportsOpacity);
|
|
63
|
+
if (value !== shown)
|
|
64
|
+
onSelectionChange(value);
|
|
65
|
+
}
|
|
66
|
+
// `alpha` turns on the system picker's opacity slider (WebKit, iOS 26+). React passes it
|
|
67
|
+
// through as a plain attribute.
|
|
68
|
+
const opacityAttribute = supportsOpacity ? { alpha: '' } : {};
|
|
69
|
+
return (_jsx(ControlRow, { children: _jsxs("div", { "data-satin-color-picker": "true", children: [_jsx("span", { id: labelId, hidden: appearance.labelsHidden, "data-satin-color-picker-label": "true", children: label }), _jsxs("span", { "data-satin-color-well": "true", "data-disabled": appearance.disabled || undefined, children: [_jsx("span", { "aria-hidden": "true", "data-satin-color-swatch": "true", style: shown ? { background: shown } : undefined }), _jsx("input", { type: "color", ...opacityAttribute, "aria-label": label, disabled: appearance.disabled || !channels, value: shown ?? '#000000', onChange: event => propose(event.currentTarget.value) })] })] }) }));
|
|
70
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
/** A custom ListRow already owns its cell and insets. */
|
|
3
|
+
export declare function ControlRow({ children }: {
|
|
4
|
+
children: ReactNode;
|
|
5
|
+
}): string | number | bigint | boolean | import("react").JSX.Element | Iterable<ReactNode> | Promise<string | number | bigint | boolean | Iterable<ReactNode> | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | import("react").ReactPortal | null | undefined> | null | undefined;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useContext } from 'react';
|
|
3
|
+
import { ListRow } from '../list-form/ListForm.js';
|
|
4
|
+
import { ListContext, ListRowContentContext } from '../list-form/listContext.js';
|
|
5
|
+
/** A custom ListRow already owns its cell and insets. */
|
|
6
|
+
export function ControlRow({ children }) {
|
|
7
|
+
const inList = useContext(ListContext);
|
|
8
|
+
const inRow = useContext(ListRowContentContext);
|
|
9
|
+
return inList && !inRow ? _jsx(ListRow, { children: children }) : children;
|
|
10
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
/** `DatePickerComponents`. */
|
|
3
|
+
export type DatePickerComponent = 'date' | 'hourAndMinute';
|
|
4
|
+
/** `DatePickerStyle`. `automatic` is `compact`. */
|
|
5
|
+
export type DatePickerStyle = 'automatic' | 'compact';
|
|
6
|
+
/**
|
|
7
|
+
* A DatePicker's selectable range. Omit a bound for a one-sided range
|
|
8
|
+
* (`start...` or `...end`). Bounds use the same kind of value as the selection.
|
|
9
|
+
*/
|
|
10
|
+
export type DatePickerRange<Selection extends Date | string> = {
|
|
11
|
+
lowerBound?: Selection;
|
|
12
|
+
upperBound?: Selection;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* DatePicker's label, controlled selection, range and the components it edits.
|
|
16
|
+
*
|
|
17
|
+
* `selection` is a `Date`, or a civil string with no time zone: `'2026-10-14'` for a date,
|
|
18
|
+
* `'09:41'` for a time, `'2026-10-14T09:41'` for both. The callback returns the same kind.
|
|
19
|
+
*/
|
|
20
|
+
export type DatePickerProps<Selection extends Date | string = Date> = {
|
|
21
|
+
label: ReactNode;
|
|
22
|
+
selection: Selection;
|
|
23
|
+
onSelectionChange(selection: NoInfer<Selection>): void;
|
|
24
|
+
in?: DatePickerRange<NoInfer<Selection>>;
|
|
25
|
+
/** Defaults to `['date', 'hourAndMinute']`. */
|
|
26
|
+
displayedComponents?: readonly DatePickerComponent[];
|
|
27
|
+
datePickerStyle?: DatePickerStyle;
|
|
28
|
+
disabled?: boolean;
|
|
29
|
+
'aria-label'?: string;
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* `DatePicker` in its compact style: the row's grey value capsules open the system date
|
|
33
|
+
* or time picker.
|
|
34
|
+
*
|
|
35
|
+
* Use a civil string selection (`'2026-10-14'`) for a day that must stay the same day in every
|
|
36
|
+
* time zone, such as a due date; use a `Date` for a moment in time.
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* <DatePicker label="Due" selection={due} onSelectionChange={setDue} displayedComponents={['date']} />
|
|
40
|
+
*/
|
|
41
|
+
export declare function DatePicker<Selection extends Date | string = Date>({ label, selection, onSelectionChange, in: range, displayedComponents, datePickerStyle, disabled, 'aria-label': accessibleLabel, }: DatePickerProps<Selection>): import("react").JSX.Element;
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useId } from 'react';
|
|
3
|
+
import { useControlStyle } from '../public/controlStyle.js';
|
|
4
|
+
import { ControlRow } from './ControlRow.js';
|
|
5
|
+
import { civilShapeFor, compareCivil, fieldsOfInstant, formatCivil, inputDate, inputTime, instantWithFields, parseCivil, utcCarrier, } from './civilDate.js';
|
|
6
|
+
// Fields a civil string doesn't carry. They are never displayed or written back.
|
|
7
|
+
const unusedFields = { year: 2000, month: 1, day: 1, hour: 0, minute: 0 };
|
|
8
|
+
function readSelection(selection, hasDate, hasTime) {
|
|
9
|
+
if (selection instanceof Date) {
|
|
10
|
+
if (!Number.isFinite(selection.getTime()))
|
|
11
|
+
return null;
|
|
12
|
+
return {
|
|
13
|
+
fields: fieldsOfInstant(selection),
|
|
14
|
+
write: (fields, editedTime) => instantWithFields(selection, fields, editedTime),
|
|
15
|
+
compare: (left, right) => left.getTime() - right.getTime(),
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
if (typeof selection !== 'string')
|
|
19
|
+
return null;
|
|
20
|
+
const shape = civilShapeFor(hasDate, hasTime);
|
|
21
|
+
const fields = parseCivil(selection, shape, unusedFields);
|
|
22
|
+
if (!fields)
|
|
23
|
+
return null;
|
|
24
|
+
return {
|
|
25
|
+
fields,
|
|
26
|
+
write: next => formatCivil(next, shape),
|
|
27
|
+
compare: (left, right) => compareCivil(left, right),
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
/** True when a bound is the same kind of value as the selection and readable in its shape. */
|
|
31
|
+
function validBound(bound, selection, hasDate, hasTime) {
|
|
32
|
+
if (bound === undefined)
|
|
33
|
+
return true;
|
|
34
|
+
if (selection instanceof Date)
|
|
35
|
+
return bound instanceof Date && Number.isFinite(bound.getTime());
|
|
36
|
+
return typeof bound === 'string' && readSelection(bound, hasDate, hasTime) !== null;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Keeps a proposal inside the range. UIDatePicker clamps rather than refusing: picking today
|
|
40
|
+
* when the range starts at noon selects noon.
|
|
41
|
+
*/
|
|
42
|
+
function clamp(value, range, compare) {
|
|
43
|
+
if (range.lowerBound !== undefined && compare(value, range.lowerBound) < 0)
|
|
44
|
+
return range.lowerBound;
|
|
45
|
+
if (range.upperBound !== undefined && compare(value, range.upperBound) > 0)
|
|
46
|
+
return range.upperBound;
|
|
47
|
+
return value;
|
|
48
|
+
}
|
|
49
|
+
function sameDay(left, right) {
|
|
50
|
+
return left.year === right.year && left.month === right.month && left.day === right.day;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* The native input's `min`/`max`. The date input gets the bound's day. The time input only
|
|
54
|
+
* gets a bound on that bound's own day (or always, for a time-only picker); on any other day
|
|
55
|
+
* every time is in range.
|
|
56
|
+
*/
|
|
57
|
+
function inputBound(field, bound, selected, hasDate) {
|
|
58
|
+
if (!bound)
|
|
59
|
+
return undefined;
|
|
60
|
+
if (field === 'date')
|
|
61
|
+
return inputDate(bound);
|
|
62
|
+
if (!hasDate || sameDay(bound, selected))
|
|
63
|
+
return inputTime(bound);
|
|
64
|
+
return undefined;
|
|
65
|
+
}
|
|
66
|
+
/** What the capsule shows, in the user's locale: "Oct 14, 2026" and "9:41 AM" in en-US. */
|
|
67
|
+
function displayText(field, fields) {
|
|
68
|
+
// The fields are already local (or civil), so format them in UTC to keep them as they are.
|
|
69
|
+
const options = field === 'date'
|
|
70
|
+
? { dateStyle: 'medium', timeZone: 'UTC' }
|
|
71
|
+
: { timeStyle: 'short', timeZone: 'UTC' };
|
|
72
|
+
const parts = new Intl.DateTimeFormat(undefined, options).formatToParts(utcCarrier(fields));
|
|
73
|
+
return parts
|
|
74
|
+
.map((part, index) => {
|
|
75
|
+
// WebKit's Intl turns ICU's narrow no-break space before "AM"/"PM" into a plain space for
|
|
76
|
+
// web compatibility. UIKit keeps the narrow one, so "9:41 AM" sets tighter natively.
|
|
77
|
+
const nextToDayPeriod = parts[index + 1]?.type === 'dayPeriod' || parts[index - 1]?.type === 'dayPeriod';
|
|
78
|
+
return part.type === 'literal' && nextToDayPeriod
|
|
79
|
+
? part.value.replace(/ /g, '\u202f')
|
|
80
|
+
: part.value;
|
|
81
|
+
})
|
|
82
|
+
.join('');
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* `DatePicker` in its compact style: the row's grey value capsules open the system date
|
|
86
|
+
* or time picker.
|
|
87
|
+
*
|
|
88
|
+
* Use a civil string selection (`'2026-10-14'`) for a day that must stay the same day in every
|
|
89
|
+
* time zone, such as a due date; use a `Date` for a moment in time.
|
|
90
|
+
*
|
|
91
|
+
* @example
|
|
92
|
+
* <DatePicker label="Due" selection={due} onSelectionChange={setDue} displayedComponents={['date']} />
|
|
93
|
+
*/
|
|
94
|
+
export function DatePicker({ label, selection, onSelectionChange, in: range = {}, displayedComponents = ['date', 'hourAndMinute'], datePickerStyle = 'automatic', disabled, 'aria-label': accessibleLabel, }) {
|
|
95
|
+
const labelId = useId();
|
|
96
|
+
const appearance = useControlStyle({ disabled });
|
|
97
|
+
if (datePickerStyle !== 'automatic' && datePickerStyle !== 'compact') {
|
|
98
|
+
throw new Error(`DatePicker style "${String(datePickerStyle)}" is not available.`);
|
|
99
|
+
}
|
|
100
|
+
const hasDate = displayedComponents.includes('date');
|
|
101
|
+
const hasTime = displayedComponents.includes('hourAndMinute');
|
|
102
|
+
if ((!hasDate && !hasTime) ||
|
|
103
|
+
displayedComponents.some(component => component !== 'date' && component !== 'hourAndMinute')) {
|
|
104
|
+
throw new Error('DatePicker displayedComponents must include date or hourAndMinute.');
|
|
105
|
+
}
|
|
106
|
+
const model = readSelection(selection, hasDate, hasTime);
|
|
107
|
+
const rangeValid = validBound(range.lowerBound, selection, hasDate, hasTime) &&
|
|
108
|
+
validBound(range.upperBound, selection, hasDate, hasTime) &&
|
|
109
|
+
!(model &&
|
|
110
|
+
range.lowerBound !== undefined &&
|
|
111
|
+
range.upperBound !== undefined &&
|
|
112
|
+
model.compare(range.lowerBound, range.upperBound) > 0);
|
|
113
|
+
if (!model || !rangeValid) {
|
|
114
|
+
// Persisted data can be malformed. Say so, and render an inert row rather than crash.
|
|
115
|
+
console.error('DatePicker needs a valid selection of the documented shape and an ordered range.', { selection, range });
|
|
116
|
+
}
|
|
117
|
+
const usable = model !== null && rangeValid;
|
|
118
|
+
const lower = usable && range.lowerBound !== undefined
|
|
119
|
+
? readSelection(range.lowerBound, hasDate, hasTime)
|
|
120
|
+
: null;
|
|
121
|
+
const upper = usable && range.upperBound !== undefined
|
|
122
|
+
? readSelection(range.upperBound, hasDate, hasTime)
|
|
123
|
+
: null;
|
|
124
|
+
function propose(field, text) {
|
|
125
|
+
if (!model || !usable || appearance.disabled)
|
|
126
|
+
return;
|
|
127
|
+
// The system picker's Reset clears the input. A DatePicker always has a value, so the
|
|
128
|
+
// selection stays and React restores the input.
|
|
129
|
+
const shape = field === 'date' ? 'date' : 'time';
|
|
130
|
+
const fields = parseCivil(text, shape, model.fields);
|
|
131
|
+
if (!fields)
|
|
132
|
+
return;
|
|
133
|
+
const candidate = clamp(model.write(fields, field === 'time'), range, model.compare);
|
|
134
|
+
if (model.compare(candidate, selection) !== 0)
|
|
135
|
+
onSelectionChange(candidate);
|
|
136
|
+
}
|
|
137
|
+
const fieldsShown = [
|
|
138
|
+
...(hasDate ? ['date'] : []),
|
|
139
|
+
...(hasTime ? ['time'] : []),
|
|
140
|
+
];
|
|
141
|
+
const nameOf = (field) => accessibleLabel ?? (typeof label === 'string' ? `${label}, ${field}` : undefined);
|
|
142
|
+
return (_jsx(ControlRow, { children: _jsxs("div", { "data-satin-date-picker": "compact", children: [_jsx("span", { id: labelId, hidden: appearance.labelsHidden, "data-satin-date-picker-label": "true", children: label }), _jsx("div", { "data-satin-date-fields": "true", "data-components": fieldsShown.join(' '), children: fieldsShown.map(field => (_jsx(DateField, { field: field, selected: usable ? model.fields : null, lower: lower?.fields ?? null, upper: upper?.fields ?? null, hasDate: hasDate, disabled: appearance.disabled, name: nameOf(field), labelId: labelId, onPick: text => propose(field, text) }, field))) })] }) }));
|
|
143
|
+
}
|
|
144
|
+
/** One capsule. `selected` is null when the selection is unusable: the capsule is then inert. */
|
|
145
|
+
function DateField({ field, selected, lower, upper, hasDate, disabled, name, labelId, onPick, }) {
|
|
146
|
+
const inputValue = selected ? (field === 'date' ? inputDate(selected) : inputTime(selected)) : '';
|
|
147
|
+
return (_jsxs("span", { "data-satin-date-field": field, children: [_jsx("span", { "aria-hidden": "true", "data-satin-date-value": "true", children: selected ? displayText(field, selected) : '' }), _jsx("input", { type: field, required: true, disabled: disabled || !selected, "aria-label": name, "aria-labelledby": name === undefined ? labelId : undefined, value: inputValue, min: selected ? inputBound(field, lower, selected, hasDate) : undefined, max: selected ? inputBound(field, upper, selected, hasDate) : undefined, onChange: event => onPick(event.currentTarget.value) })] }));
|
|
148
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
/** `ProgressViewStyle`: `automatic` is linear with a value, circular without. */
|
|
3
|
+
export type ProgressViewStyle = 'automatic' | 'linear' | 'circular';
|
|
4
|
+
/** ProgressView's optional label and progress; without `value` it is indeterminate. */
|
|
5
|
+
export type ProgressViewProps = {
|
|
6
|
+
/** The iOS style. Automatic preserves the value-dependent default. */
|
|
7
|
+
progressViewStyle?: ProgressViewStyle;
|
|
8
|
+
label?: ReactNode;
|
|
9
|
+
/** Omit value for an indeterminate activity indicator. */
|
|
10
|
+
value?: number;
|
|
11
|
+
total?: number;
|
|
12
|
+
tint?: string;
|
|
13
|
+
'aria-label'?: string;
|
|
14
|
+
};
|
|
15
|
+
/** `ProgressView`: a spinning activity indicator, or a linear bar for `value` of
|
|
16
|
+
* `total` (default 1). */
|
|
17
|
+
export declare function ProgressView({ label, progressViewStyle, value, total, tint, 'aria-label': accessibleLabel, }: ProgressViewProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useContext, useId } from 'react';
|
|
3
|
+
import { ScreenContext } from '../navigation/navigationContext.js';
|
|
4
|
+
import { TabActivityContext } from '../tabs/context.js';
|
|
5
|
+
import { controlTintStyle, useControlStyle } from '../public/controlStyle.js';
|
|
6
|
+
import { ControlRow } from './ControlRow.js';
|
|
7
|
+
import { ActivityIndicatorSegments } from './ActivityIndicatorSegments.js';
|
|
8
|
+
/** `ProgressView`: a spinning activity indicator, or a linear bar for `value` of
|
|
9
|
+
* `total` (default 1). */
|
|
10
|
+
export function ProgressView({ label, progressViewStyle = 'automatic', value, total = 1, tint, 'aria-label': accessibleLabel, }) {
|
|
11
|
+
const labelId = useId();
|
|
12
|
+
const screen = useContext(ScreenContext);
|
|
13
|
+
const tabActive = useContext(TabActivityContext);
|
|
14
|
+
const running = tabActive && !screen?.lifecycle.isCovered;
|
|
15
|
+
const appearance = useControlStyle({ tint });
|
|
16
|
+
if (!Number.isFinite(total) || total <= 0 || (value !== undefined && !Number.isFinite(value))) {
|
|
17
|
+
throw new Error('ProgressView requires a finite value and a finite positive total.');
|
|
18
|
+
}
|
|
19
|
+
const determinate = value !== undefined;
|
|
20
|
+
const resolvedStyle = progressViewStyle === 'automatic' ? (determinate ? 'linear' : 'circular') : progressViewStyle;
|
|
21
|
+
const linear = resolvedStyle === 'linear';
|
|
22
|
+
const clampedValue = determinate ? Math.min(total, Math.max(0, value)) : undefined;
|
|
23
|
+
return (_jsx(ControlRow, { children: _jsxs("div", { "data-satin-row-intrinsic": linear ? undefined : 'true', "data-satin-progress-view": resolvedStyle, style: controlTintStyle(appearance.tint), children: [linear && label != null && (_jsx("div", { id: labelId, hidden: appearance.labelsHidden, children: label })), _jsx("div", { role: "progressbar", "aria-label": accessibleLabel ?? (label == null ? 'Loading' : undefined), "aria-labelledby": accessibleLabel === undefined && label != null ? labelId : undefined, "aria-valuemin": determinate ? 0 : undefined, "aria-valuemax": determinate ? total : undefined, "aria-valuenow": clampedValue, children: linear ? (_jsx("div", { "data-satin-progress-track": "true", children: _jsx("div", { "data-satin-progress-fill": "true", style: { transform: `scaleX(${(clampedValue ?? 0) / total})` } }) })) : (_jsx("svg", { width: "20", height: "20", viewBox: "0 0 20 20", "aria-hidden": "true", children: _jsx(ActivityIndicatorSegments, { running: running }) })) }), !linear && label != null && (_jsx("div", { id: labelId, hidden: appearance.labelsHidden, "data-satin-progress-label": "true", children: label }))] }) }));
|
|
24
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Calendar fields for DatePicker, kept apart from instants.
|
|
3
|
+
*
|
|
4
|
+
* A DatePicker edits calendar fields: a day, a time of day, or both. A `Date` selection reads and
|
|
5
|
+
* writes those fields in the device's time zone, as SwiftUI does. A string selection is a civil
|
|
6
|
+
* value with no time zone at all ('2026-10-14', '09:41', '2026-10-14T09:41'), so a due date
|
|
7
|
+
* chosen in New York is still October 14 when the app is opened in Tokyo.
|
|
8
|
+
*
|
|
9
|
+
* Nothing here parses a civil string with `new Date(string)`: that reads 'YYYY-MM-DD' as UTC
|
|
10
|
+
* midnight, which is the previous day west of Greenwich.
|
|
11
|
+
*/
|
|
12
|
+
/** The fields a DatePicker can edit. Missing fields are not displayed and never change. */
|
|
13
|
+
export type CivilFields = {
|
|
14
|
+
year: number;
|
|
15
|
+
/** 1–12. */
|
|
16
|
+
month: number;
|
|
17
|
+
day: number;
|
|
18
|
+
hour: number;
|
|
19
|
+
minute: number;
|
|
20
|
+
};
|
|
21
|
+
/** Which civil string shape a selection uses; `instant` means a `Date`. */
|
|
22
|
+
export type CivilShape = 'instant' | 'date' | 'time' | 'dateTime';
|
|
23
|
+
/** The string shape a civil selection must use for the components it displays. */
|
|
24
|
+
export declare function civilShapeFor(hasDate: boolean, hasTime: boolean): Exclude<CivilShape, 'instant'>;
|
|
25
|
+
/**
|
|
26
|
+
* Reads a civil string of the given shape. Returns null for anything malformed, including
|
|
27
|
+
* impossible days such as '2026-02-29'. Fields the shape lacks come from `fallback`.
|
|
28
|
+
*/
|
|
29
|
+
export declare function parseCivil(text: string, shape: Exclude<CivilShape, 'instant'>, fallback: CivilFields): CivilFields | null;
|
|
30
|
+
/** Writes fields as a civil string of the given shape. */
|
|
31
|
+
export declare function formatCivil(fields: CivilFields, shape: Exclude<CivilShape, 'instant'>): string;
|
|
32
|
+
/** The calendar fields of an instant in the device's time zone. */
|
|
33
|
+
export declare function fieldsOfInstant(instant: Date): CivilFields;
|
|
34
|
+
/**
|
|
35
|
+
* The instant with `previous`'s seconds and the given local fields. If a daylight-saving gap
|
|
36
|
+
* skips the requested time, JavaScript moves it forward, as UIDatePicker does.
|
|
37
|
+
*/
|
|
38
|
+
export declare function instantWithFields(previous: Date, fields: CivilFields, editedTime: boolean): Date;
|
|
39
|
+
/** Same-shape civil strings compare correctly as text: every field is fixed width. */
|
|
40
|
+
export declare function compareCivil(left: string, right: string): -1 | 0 | 1;
|
|
41
|
+
/** The value a native `<input type="date">` uses. */
|
|
42
|
+
export declare function inputDate(fields: CivilFields): string;
|
|
43
|
+
/** The value a native `<input type="time">` uses. */
|
|
44
|
+
export declare function inputTime(fields: CivilFields): string;
|
|
45
|
+
/**
|
|
46
|
+
* Fields as a Date whose UTC reading equals the civil fields. Only for `Intl` formatting with
|
|
47
|
+
* `timeZone: 'UTC'`, so a civil date is displayed exactly as written in every time zone.
|
|
48
|
+
*/
|
|
49
|
+
export declare function utcCarrier(fields: CivilFields): Date;
|