@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.
Files changed (1154) hide show
  1. package/LICENSE +21 -0
  2. package/NOTICE +96 -0
  3. package/README.md +454 -2
  4. package/THIRD_PARTY_NOTICES.md +65 -0
  5. package/bin/satin.mjs +13 -0
  6. package/dist/acknowledgements/Acknowledgements.d.ts +4 -0
  7. package/dist/acknowledgements/Acknowledgements.js +42 -0
  8. package/dist/acknowledgements/bundledNotices.d.ts +4 -0
  9. package/dist/acknowledgements/bundledNotices.js +58 -0
  10. package/dist/acknowledgements/inventory.d.ts +17 -0
  11. package/dist/acknowledgements/inventory.js +10 -0
  12. package/dist/acknowledgements/inventory.json +39 -0
  13. package/dist/actions/ActionMenu.d.ts +30 -0
  14. package/dist/actions/ActionMenu.js +103 -0
  15. package/dist/actions/RowActions.d.ts +42 -0
  16. package/dist/actions/RowActions.js +820 -0
  17. package/dist/actions/contextMotion.d.ts +78 -0
  18. package/dist/actions/contextMotion.js +329 -0
  19. package/dist/actions/motion.d.ts +19 -0
  20. package/dist/actions/motion.js +74 -0
  21. package/dist/actions/nativeContextAppearance.json +86 -0
  22. package/dist/actions/nativeContextMotion.json +734 -0
  23. package/dist/actions/nativeMotion.json +388 -0
  24. package/dist/actions/preview.d.ts +27 -0
  25. package/dist/actions/preview.js +217 -0
  26. package/dist/actions/recognizers.d.ts +24 -0
  27. package/dist/actions/recognizers.js +87 -0
  28. package/dist/actions/rowScrub.d.ts +59 -0
  29. package/dist/actions/rowScrub.js +400 -0
  30. package/dist/actions/swipeSpring.d.ts +14 -0
  31. package/dist/actions/swipeSpring.js +35 -0
  32. package/dist/actions/types.d.ts +71 -0
  33. package/dist/actions/types.js +28 -0
  34. package/dist/app/InstallComponents.d.ts +16 -0
  35. package/dist/app/InstallComponents.js +104 -0
  36. package/dist/app/InstallationDiagnostics.d.ts +7 -0
  37. package/dist/app/InstallationDiagnostics.js +23 -0
  38. package/dist/app/OrientationGuard.d.ts +8 -0
  39. package/dist/app/OrientationGuard.js +9 -0
  40. package/dist/app/appearance.d.ts +18 -0
  41. package/dist/app/appearance.js +15 -0
  42. package/dist/app/appearanceStore.d.ts +30 -0
  43. package/dist/app/appearanceStore.js +228 -0
  44. package/dist/app/backgroundUpdate.d.ts +20 -0
  45. package/dist/app/backgroundUpdate.js +151 -0
  46. package/dist/app/buildInfo.d.ts +11 -0
  47. package/dist/app/buildInfo.js +12 -0
  48. package/dist/app/buildInfoBuild.d.ts +3 -0
  49. package/dist/app/buildInfoBuild.js +12 -0
  50. package/dist/app/checkCli.d.ts +1 -0
  51. package/dist/app/checkCli.js +73 -0
  52. package/dist/app/coldLaunchUpdate.d.ts +14 -0
  53. package/dist/app/coldLaunchUpdate.js +384 -0
  54. package/dist/app/definition.d.ts +85 -0
  55. package/dist/app/definition.js +347 -0
  56. package/dist/app/deployment.d.ts +28 -0
  57. package/dist/app/deployment.js +352 -0
  58. package/dist/app/deploymentBuild.d.ts +3 -0
  59. package/dist/app/deploymentBuild.js +55 -0
  60. package/dist/app/earlyWorker.d.ts +3 -0
  61. package/dist/app/earlyWorker.js +77 -0
  62. package/dist/app/head.d.ts +10 -0
  63. package/dist/app/head.js +120 -0
  64. package/dist/app/icons.d.ts +4 -0
  65. package/dist/app/icons.js +35 -0
  66. package/dist/app/install.d.ts +18 -0
  67. package/dist/app/install.js +82 -0
  68. package/dist/app/installCheck.d.ts +2 -0
  69. package/dist/app/installCheck.js +148 -0
  70. package/dist/app/installContext.d.ts +35 -0
  71. package/dist/app/installContext.js +45 -0
  72. package/dist/app/installCustom.d.ts +25 -0
  73. package/dist/app/installCustom.js +55 -0
  74. package/dist/app/installExperience.d.ts +22 -0
  75. package/dist/app/installExperience.js +389 -0
  76. package/dist/app/installExperienceDevice.d.ts +29 -0
  77. package/dist/app/installExperienceDevice.js +160 -0
  78. package/dist/app/installExperienceHome.d.ts +16 -0
  79. package/dist/app/installExperienceHome.js +304 -0
  80. package/dist/app/installExperienceRuntime.d.ts +37 -0
  81. package/dist/app/installExperienceRuntime.js +285 -0
  82. package/dist/app/installPolicy.d.ts +28 -0
  83. package/dist/app/installPolicy.js +90 -0
  84. package/dist/app/installQr.d.ts +10 -0
  85. package/dist/app/installQr.js +139 -0
  86. package/dist/app/installStrings.d.ts +52 -0
  87. package/dist/app/installStrings.js +75 -0
  88. package/dist/app/installTipPath.d.ts +12 -0
  89. package/dist/app/installTipPath.js +9 -0
  90. package/dist/app/installationFailure.d.ts +14 -0
  91. package/dist/app/installationFailure.js +38 -0
  92. package/dist/app/launch.d.ts +7 -0
  93. package/dist/app/launch.js +241 -0
  94. package/dist/app/launchReadiness.d.ts +9 -0
  95. package/dist/app/launchReadiness.js +72 -0
  96. package/dist/app/launchScreen.d.ts +16 -0
  97. package/dist/app/launchScreen.js +14 -0
  98. package/dist/app/launchScreenRuntime.d.ts +19 -0
  99. package/dist/app/launchScreenRuntime.js +313 -0
  100. package/dist/app/launchWatchdog.d.ts +1 -0
  101. package/dist/app/launchWatchdog.js +202 -0
  102. package/dist/app/manifests.d.ts +19 -0
  103. package/dist/app/manifests.js +20 -0
  104. package/dist/app/mdm.d.ts +3 -0
  105. package/dist/app/mdm.js +20 -0
  106. package/dist/app/mediaCheck.d.ts +9 -0
  107. package/dist/app/mediaCheck.js +122 -0
  108. package/dist/app/mediaTypes.d.ts +2 -0
  109. package/dist/app/mediaTypes.js +13 -0
  110. package/dist/app/platformPolicy.d.ts +3 -0
  111. package/dist/app/platformPolicy.js +10 -0
  112. package/dist/app/platformScripts.d.ts +6 -0
  113. package/dist/app/platformScripts.js +65 -0
  114. package/dist/app/releaseUpdates.d.ts +7 -0
  115. package/dist/app/releaseUpdates.js +53 -0
  116. package/dist/app/runtime.d.ts +9 -0
  117. package/dist/app/runtime.js +38 -0
  118. package/dist/app/startup.d.ts +30 -0
  119. package/dist/app/startup.js +24 -0
  120. package/dist/app/statusBand.d.ts +11 -0
  121. package/dist/app/statusBand.js +257 -0
  122. package/dist/app/viewport.d.ts +3 -0
  123. package/dist/app/viewport.js +42 -0
  124. package/dist/app/viewportValue.d.ts +5 -0
  125. package/dist/app/viewportValue.js +14 -0
  126. package/dist/app/vite.d.ts +27 -0
  127. package/dist/app/vite.js +440 -0
  128. package/dist/app/warmImage.d.ts +3 -0
  129. package/dist/app/warmImage.js +59 -0
  130. package/dist/content/content.d.ts +153 -0
  131. package/dist/content/content.js +315 -0
  132. package/dist/content/layout.d.ts +26 -0
  133. package/dist/content/layout.js +114 -0
  134. package/dist/content/scaledMetric.d.ts +3 -0
  135. package/dist/content/scaledMetric.js +68 -0
  136. package/dist/content/typography.d.ts +83 -0
  137. package/dist/content/typography.js +32 -0
  138. package/dist/controls/ActivityIndicatorSegments.d.ts +4 -0
  139. package/dist/controls/ActivityIndicatorSegments.js +5 -0
  140. package/dist/controls/ColorPicker.d.ts +20 -0
  141. package/dist/controls/ColorPicker.js +70 -0
  142. package/dist/controls/ControlRow.d.ts +5 -0
  143. package/dist/controls/ControlRow.js +10 -0
  144. package/dist/controls/DatePicker.d.ts +41 -0
  145. package/dist/controls/DatePicker.js +148 -0
  146. package/dist/controls/ProgressView.d.ts +17 -0
  147. package/dist/controls/ProgressView.js +24 -0
  148. package/dist/controls/civilDate.d.ts +49 -0
  149. package/dist/controls/civilDate.js +112 -0
  150. package/dist/data/database.d.ts +154 -0
  151. package/dist/data/database.js +710 -0
  152. package/dist/data/value-equal.d.ts +2 -0
  153. package/dist/data/value-equal.js +36 -0
  154. package/dist/data/write-store.d.ts +38 -0
  155. package/dist/data/write-store.js +192 -0
  156. package/dist/dev-menu/DevMenu.d.ts +1 -0
  157. package/dist/dev-menu/DevMenu.js +121 -0
  158. package/dist/dev-menu/actions.d.ts +12 -0
  159. package/dist/dev-menu/actions.js +99 -0
  160. package/dist/dev-menu/build.d.ts +5 -0
  161. package/dist/dev-menu/build.js +40 -0
  162. package/dist/dev-menu/gesture.d.ts +18 -0
  163. package/dist/dev-menu/gesture.js +109 -0
  164. package/dist/dev-menu/shake.d.ts +2 -0
  165. package/dist/dev-menu/shake.js +36 -0
  166. package/dist/dev-menu/types.d.ts +8 -0
  167. package/dist/dev-menu/types.js +1 -0
  168. package/dist/diagnostics.d.ts +3 -0
  169. package/dist/diagnostics.js +4 -0
  170. package/dist/docs/app-recipes.md +411 -0
  171. package/dist/docs/components/file-importer.md +54 -0
  172. package/dist/docs/components/paste-button.md +48 -0
  173. package/dist/docs/components/photos-picker.md +53 -0
  174. package/dist/docs/components/share-link.md +58 -0
  175. package/dist/docs/content.md +159 -0
  176. package/dist/docs/controls.md +151 -0
  177. package/dist/docs/data.md +332 -0
  178. package/dist/docs/limitations.md +40 -0
  179. package/dist/docs/messaging-scroll.md +234 -0
  180. package/dist/docs/networking.md +190 -0
  181. package/dist/docs/push.md +215 -0
  182. package/dist/docs/swiftui-reference.md +1895 -0
  183. package/dist/docs/symbols.md +293 -0
  184. package/dist/docs/tokens.md +60 -0
  185. package/dist/fidelity/devAssertions.d.ts +21 -0
  186. package/dist/fidelity/devAssertions.js +199 -0
  187. package/dist/focus/focusIntentMachine.d.ts +106 -0
  188. package/dist/focus/focusIntentMachine.js +359 -0
  189. package/dist/focus/navigationFocus.d.ts +42 -0
  190. package/dist/focus/navigationFocus.js +241 -0
  191. package/dist/focus/programmaticFocus.d.ts +15 -0
  192. package/dist/focus/programmaticFocus.js +152 -0
  193. package/dist/gestures/GestureView.d.ts +12 -0
  194. package/dist/gestures/GestureView.js +321 -0
  195. package/dist/gestures/arena.d.ts +138 -0
  196. package/dist/gestures/arena.js +417 -0
  197. package/dist/gestures/existingCompetitors.d.ts +79 -0
  198. package/dist/gestures/existingCompetitors.js +82 -0
  199. package/dist/gestures/gesture.d.ts +62 -0
  200. package/dist/gestures/gesture.js +107 -0
  201. package/dist/glass/ControlLens.d.ts +46 -0
  202. package/dist/glass/ControlLens.js +88 -0
  203. package/dist/glass/GlassBar.d.ts +9 -0
  204. package/dist/glass/GlassBar.js +22 -0
  205. package/dist/glass/GlassConfusionReview.d.ts +3 -0
  206. package/dist/glass/GlassConfusionReview.js +185 -0
  207. package/dist/glass/GlassEffect.d.ts +69 -0
  208. package/dist/glass/GlassEffect.js +550 -0
  209. package/dist/glass/GlassMaterialRoot.d.ts +7 -0
  210. package/dist/glass/GlassMaterialRoot.js +39 -0
  211. package/dist/glass/GlassPresentation.d.ts +29 -0
  212. package/dist/glass/GlassPresentation.js +1041 -0
  213. package/dist/glass/GlassProbeIcons.d.ts +8 -0
  214. package/dist/glass/GlassProbeIcons.js +12 -0
  215. package/dist/glass/GlassProbeOverlay.d.ts +52 -0
  216. package/dist/glass/GlassProbeOverlay.js +45 -0
  217. package/dist/glass/GlassTextField.d.ts +22 -0
  218. package/dist/glass/GlassTextField.js +12 -0
  219. package/dist/glass/MaterialEffectRoot.d.ts +9 -0
  220. package/dist/glass/MaterialEffectRoot.js +189 -0
  221. package/dist/glass/Menu.d.ts +3 -0
  222. package/dist/glass/Menu.js +35 -0
  223. package/dist/glass/MenuStack.d.ts +23 -0
  224. package/dist/glass/MenuStack.js +371 -0
  225. package/dist/glass/MenuSymbol.d.ts +7 -0
  226. package/dist/glass/MenuSymbol.js +16 -0
  227. package/dist/glass/MorphEllipsisArtwork.d.ts +2 -0
  228. package/dist/glass/MorphEllipsisArtwork.js +6 -0
  229. package/dist/glass/TabBar.d.ts +29 -0
  230. package/dist/glass/TabBar.js +176 -0
  231. package/dist/glass/capability.d.ts +25 -0
  232. package/dist/glass/capability.js +63 -0
  233. package/dist/glass/captureWindow.d.ts +60 -0
  234. package/dist/glass/captureWindow.js +119 -0
  235. package/dist/glass/confusionSession.d.ts +41 -0
  236. package/dist/glass/confusionSession.js +44 -0
  237. package/dist/glass/contactPhysics.d.ts +130 -0
  238. package/dist/glass/contactPhysics.js +214 -0
  239. package/dist/glass/context.d.ts +37 -0
  240. package/dist/glass/context.js +11 -0
  241. package/dist/glass/errorAlert.d.ts +6 -0
  242. package/dist/glass/errorAlert.js +57 -0
  243. package/dist/glass/errors.d.ts +22 -0
  244. package/dist/glass/errors.js +78 -0
  245. package/dist/glass/failurePolicy.d.ts +4 -0
  246. package/dist/glass/failurePolicy.js +20 -0
  247. package/dist/glass/fallback/material.d.ts +16 -0
  248. package/dist/glass/fallback/material.js +87 -0
  249. package/dist/glass/fallback/regions.d.ts +16 -0
  250. package/dist/glass/fallback/regions.js +249 -0
  251. package/dist/glass/fallback/runtime.d.ts +72 -0
  252. package/dist/glass/fallback/runtime.js +278 -0
  253. package/dist/glass/fallback/selection.d.ts +2 -0
  254. package/dist/glass/fallback/selection.js +9 -0
  255. package/dist/glass/fieldGeometry.d.ts +28 -0
  256. package/dist/glass/fieldGeometry.js +64 -0
  257. package/dist/glass/fieldMotion.d.ts +42 -0
  258. package/dist/glass/fieldMotion.js +47 -0
  259. package/dist/glass/glassContact.d.ts +76 -0
  260. package/dist/glass/glassContact.js +153 -0
  261. package/dist/glass/glassProbeSettings.d.ts +18 -0
  262. package/dist/glass/glassProbeSettings.js +133 -0
  263. package/dist/glass/lens/Scene.d.ts +108 -0
  264. package/dist/glass/lens/Scene.js +553 -0
  265. package/dist/glass/lens/backgrounds.json +103 -0
  266. package/dist/glass/lens/bitmapBackdrop.d.ts +14 -0
  267. package/dist/glass/lens/bitmapBackdrop.js +35 -0
  268. package/dist/glass/lens/controlLift.d.ts +94 -0
  269. package/dist/glass/lens/controlLift.js +78 -0
  270. package/dist/glass/lens/data.d.ts +19 -0
  271. package/dist/glass/lens/data.js +161 -0
  272. package/dist/glass/lens/drawableTop.d.ts +16 -0
  273. package/dist/glass/lens/drawableTop.js +15 -0
  274. package/dist/glass/lens/icons.d.ts +9 -0
  275. package/dist/glass/lens/icons.js +34 -0
  276. package/dist/glass/lens/interactiveContact.d.ts +33 -0
  277. package/dist/glass/lens/interactiveContact.js +158 -0
  278. package/dist/glass/lens/interactivePress.d.ts +95 -0
  279. package/dist/glass/lens/interactivePress.js +169 -0
  280. package/dist/glass/lens/ios27GlyphFit.json +126 -0
  281. package/dist/glass/lens/lensLightingSamples.json +1 -0
  282. package/dist/glass/lens/lensPress.d.ts +22 -0
  283. package/dist/glass/lens/lensPress.js +68 -0
  284. package/dist/glass/lens/lensPressSamples.json +1 -0
  285. package/dist/glass/lens/liquidMotion.d.ts +50 -0
  286. package/dist/glass/lens/liquidMotion.js +239 -0
  287. package/dist/glass/lens/materialGlassRecipes.json +776 -0
  288. package/dist/glass/lens/materialUniforms.d.ts +22 -0
  289. package/dist/glass/lens/materialUniforms.js +117 -0
  290. package/dist/glass/lens/menu-closing-close-fit.json +380 -0
  291. package/dist/glass/lens/menu-opening-native-fits.json +911 -0
  292. package/dist/glass/lens/menuContextFit.json +88 -0
  293. package/dist/glass/lens/menuContextOpacity.json +98 -0
  294. package/dist/glass/lens/menuContextPresentation.d.ts +15 -0
  295. package/dist/glass/lens/menuContextPresentation.js +65 -0
  296. package/dist/glass/lens/menuCornerFit.json +252 -0
  297. package/dist/glass/lens/menuCornerMotion.d.ts +9 -0
  298. package/dist/glass/lens/menuCornerMotion.js +5 -0
  299. package/dist/glass/lens/menuDropFit.json +64 -0
  300. package/dist/glass/lens/menuField.d.ts +178 -0
  301. package/dist/glass/lens/menuField.js +564 -0
  302. package/dist/glass/lens/menuGesturePresentation.d.ts +12 -0
  303. package/dist/glass/lens/menuGesturePresentation.js +42 -0
  304. package/dist/glass/lens/menuGlyphDropFit.json +38 -0
  305. package/dist/glass/lens/menuMorphFit.json +564 -0
  306. package/dist/glass/lens/menuMorphMotion.d.ts +70 -0
  307. package/dist/glass/lens/menuMorphMotion.js +219 -0
  308. package/dist/glass/lens/menuMorphPhoneFit.json +85 -0
  309. package/dist/glass/lens/menuMotion.d.ts +81 -0
  310. package/dist/glass/lens/menuMotion.js +323 -0
  311. package/dist/glass/lens/menuPlacement.d.ts +5 -0
  312. package/dist/glass/lens/menuPlacement.js +29 -0
  313. package/dist/glass/lens/menuSpring.d.ts +18 -0
  314. package/dist/glass/lens/menuSpring.js +29 -0
  315. package/dist/glass/lens/menuTouchLight.d.ts +13 -0
  316. package/dist/glass/lens/menuTouchLight.js +147 -0
  317. package/dist/glass/lens/mirrorConstants.d.ts +1 -0
  318. package/dist/glass/lens/mirrorConstants.js +2 -0
  319. package/dist/glass/lens/mirrorExtents.d.ts +52 -0
  320. package/dist/glass/lens/mirrorExtents.js +264 -0
  321. package/dist/glass/lens/mirrorInvalidation.d.ts +6 -0
  322. package/dist/glass/lens/mirrorInvalidation.js +10 -0
  323. package/dist/glass/lens/mirrorReuse.d.ts +20 -0
  324. package/dist/glass/lens/mirrorReuse.js +166 -0
  325. package/dist/glass/lens/motion.d.ts +62 -0
  326. package/dist/glass/lens/motion.js +93 -0
  327. package/dist/glass/lens/recordedMotion.d.ts +6 -0
  328. package/dist/glass/lens/recordedMotion.js +44 -0
  329. package/dist/glass/lens/referenceBackground.d.ts +9 -0
  330. package/dist/glass/lens/referenceBackground.js +151 -0
  331. package/dist/glass/lens/referenceProfiles.d.ts +21 -0
  332. package/dist/glass/lens/referenceProfiles.js +33 -0
  333. package/dist/glass/lens/referenceRegularTint.d.ts +12 -0
  334. package/dist/glass/lens/referenceRegularTint.js +41 -0
  335. package/dist/glass/lens/scopeSegments.d.ts +12 -0
  336. package/dist/glass/lens/scopeSegments.js +18 -0
  337. package/dist/glass/lens/scrollAnchoring.d.ts +15 -0
  338. package/dist/glass/lens/scrollAnchoring.js +17 -0
  339. package/dist/glass/lens/selectionParameters.json +94 -0
  340. package/dist/glass/lens/shapeParameters.json +198 -0
  341. package/dist/glass/lens/tab-motion-native-fits.json +778 -0
  342. package/dist/glass/lens/tabAccessoryMotion.d.ts +52 -0
  343. package/dist/glass/lens/tabAccessoryMotion.js +52 -0
  344. package/dist/glass/lens/tabChromaRimModel.d.ts +43 -0
  345. package/dist/glass/lens/tabChromaRimModel.js +93 -0
  346. package/dist/glass/lens/tabCollapseInkSamples.json +49 -0
  347. package/dist/glass/lens/tabCompactGesture.d.ts +15 -0
  348. package/dist/glass/lens/tabCompactGesture.js +50 -0
  349. package/dist/glass/lens/tabGeometryAttack.json +70 -0
  350. package/dist/glass/lens/tabGlyphColours.d.ts +17 -0
  351. package/dist/glass/lens/tabGlyphColours.js +38 -0
  352. package/dist/glass/lens/tabInterruptedDecaySamples.json +245 -0
  353. package/dist/glass/lens/tabInterruptedRestoreSamples.json +290 -0
  354. package/dist/glass/lens/tabMaterialModel.d.ts +10 -0
  355. package/dist/glass/lens/tabMaterialModel.js +108 -0
  356. package/dist/glass/lens/tabMinimizeInk.d.ts +15 -0
  357. package/dist/glass/lens/tabMinimizeInk.js +14 -0
  358. package/dist/glass/lens/tabMinimizeMotion.d.ts +36 -0
  359. package/dist/glass/lens/tabMinimizeMotion.js +107 -0
  360. package/dist/glass/lens/tabMinimizeSamples.json +411 -0
  361. package/dist/glass/lens/tabMotion.d.ts +91 -0
  362. package/dist/glass/lens/tabMotion.js +478 -0
  363. package/dist/glass/lens/tabMotionFit.d.ts +76 -0
  364. package/dist/glass/lens/tabMotionFit.js +61 -0
  365. package/dist/glass/lens/tabNativeSymbols.d.ts +1 -0
  366. package/dist/glass/lens/tabNativeSymbols.js +7 -0
  367. package/dist/glass/lens/tabPresentation.d.ts +21 -0
  368. package/dist/glass/lens/tabPresentation.js +20 -0
  369. package/dist/glass/lens/tabRelease.d.ts +5 -0
  370. package/dist/glass/lens/tabRelease.js +14 -0
  371. package/dist/glass/lens/tabRestoreMotion.d.ts +19 -0
  372. package/dist/glass/lens/tabRestoreMotion.js +65 -0
  373. package/dist/glass/lens/tabRestoreSamples.json +1272 -0
  374. package/dist/glass/lens/tabSearchMember.d.ts +38 -0
  375. package/dist/glass/lens/tabSearchMember.js +74 -0
  376. package/dist/glass/lens/tabSelectionMaterial.d.ts +20 -0
  377. package/dist/glass/lens/tabSelectionMaterial.js +23 -0
  378. package/dist/glass/lens/tabSelectionMeasurements.test-fixture.d.ts +9 -0
  379. package/dist/glass/lens/tabSelectionMeasurements.test-fixture.js +74 -0
  380. package/dist/glass/lens/tabSettingsSymbol.d.ts +1 -0
  381. package/dist/glass/lens/tabSettingsSymbol.js +2 -0
  382. package/dist/glass/lens/tabShapeResponse.d.ts +7 -0
  383. package/dist/glass/lens/tabShapeResponse.js +30 -0
  384. package/dist/glass/lens/theme.d.ts +18 -0
  385. package/dist/glass/lens/theme.js +40 -0
  386. package/dist/glass/lens/trace.d.ts +2 -0
  387. package/dist/glass/lens/trace.js +27 -0
  388. package/dist/glass/liquidContext.d.ts +32 -0
  389. package/dist/glass/liquidContext.js +2 -0
  390. package/dist/glass/menuPanelPlacement.d.ts +51 -0
  391. package/dist/glass/menuPanelPlacement.js +128 -0
  392. package/dist/glass/menuPresenter.d.ts +34 -0
  393. package/dist/glass/menuPresenter.js +983 -0
  394. package/dist/glass/menuSymbolMasks.d.ts +1 -0
  395. package/dist/glass/menuSymbolMasks.js +1 -0
  396. package/dist/glass/menuSymbolTokens.d.ts +22 -0
  397. package/dist/glass/menuSymbolTokens.js +12 -0
  398. package/dist/glass/menuTriggerGeometry.d.ts +99 -0
  399. package/dist/glass/menuTriggerGeometry.js +126 -0
  400. package/dist/glass/menuTriggerSnapshot.d.ts +77 -0
  401. package/dist/glass/menuTriggerSnapshot.js +69 -0
  402. package/dist/glass/menuTypes.d.ts +22 -0
  403. package/dist/glass/menuTypes.js +1 -0
  404. package/dist/glass/morphField.d.ts +18 -0
  405. package/dist/glass/morphField.js +139 -0
  406. package/dist/glass/presentationFrame.d.ts +43 -0
  407. package/dist/glass/presentationFrame.js +82 -0
  408. package/dist/glass/pressHighlight.d.ts +9 -0
  409. package/dist/glass/pressHighlight.js +158 -0
  410. package/dist/glass/regionRegistry.d.ts +93 -0
  411. package/dist/glass/regionRegistry.js +313 -0
  412. package/dist/glass/regions.d.ts +262 -0
  413. package/dist/glass/regions.js +147 -0
  414. package/dist/glass/regularMaterialContext.d.ts +45 -0
  415. package/dist/glass/regularMaterialContext.js +118 -0
  416. package/dist/glass/regularTriggerMaterial.d.ts +19 -0
  417. package/dist/glass/regularTriggerMaterial.js +111 -0
  418. package/dist/glass/regularTriggerRim.d.ts +163 -0
  419. package/dist/glass/regularTriggerRim.js +436 -0
  420. package/dist/glass/renderSpecs.d.ts +454 -0
  421. package/dist/glass/renderSpecs.js +231 -0
  422. package/dist/glass/rendererContract.d.ts +205 -0
  423. package/dist/glass/rendererContract.js +18 -0
  424. package/dist/glass/shapeTrack.d.ts +53 -0
  425. package/dist/glass/shapeTrack.js +74 -0
  426. package/dist/glass/shapeTrackRegistry.d.ts +40 -0
  427. package/dist/glass/shapeTrackRegistry.js +49 -0
  428. package/dist/glass/sourceDamage.d.ts +6 -0
  429. package/dist/glass/sourceDamage.js +8 -0
  430. package/dist/glass/submenuMotion.d.ts +205 -0
  431. package/dist/glass/submenuMotion.js +306 -0
  432. package/dist/glass/tabBarModel.d.ts +12 -0
  433. package/dist/glass/tabBarModel.js +32 -0
  434. package/dist/glass/testing.d.ts +14 -0
  435. package/dist/glass/testing.js +14 -0
  436. package/dist/glass/tokens.d.ts +79 -0
  437. package/dist/glass/tokens.js +86 -0
  438. package/dist/glass/toolbarMaterialContext.d.ts +28 -0
  439. package/dist/glass/toolbarMaterialContext.js +66 -0
  440. package/dist/glass/topLayer.d.ts +5 -0
  441. package/dist/glass/topLayer.js +10 -0
  442. package/dist/glass/unionOutline.d.ts +11 -0
  443. package/dist/glass/unionOutline.js +98 -0
  444. package/dist/glass/visibleDeadline.d.ts +21 -0
  445. package/dist/glass/visibleDeadline.js +61 -0
  446. package/dist/glass/webgpu/accessoryMorph.d.ts +99 -0
  447. package/dist/glass/webgpu/accessoryMorph.js +473 -0
  448. package/dist/glass/webgpu/accessoryTrack.d.ts +47 -0
  449. package/dist/glass/webgpu/accessoryTrack.js +59 -0
  450. package/dist/glass/webgpu/areaMips.d.ts +50 -0
  451. package/dist/glass/webgpu/areaMips.js +166 -0
  452. package/dist/glass/webgpu/backdrop.d.ts +86 -0
  453. package/dist/glass/webgpu/backdrop.js +243 -0
  454. package/dist/glass/webgpu/backdropLayers.d.ts +29 -0
  455. package/dist/glass/webgpu/backdropLayers.js +182 -0
  456. package/dist/glass/webgpu/backgroundLayers.d.ts +71 -0
  457. package/dist/glass/webgpu/backgroundLayers.js +385 -0
  458. package/dist/glass/webgpu/cadence.d.ts +18 -0
  459. package/dist/glass/webgpu/cadence.js +35 -0
  460. package/dist/glass/webgpu/canvasSubmission.d.ts +6 -0
  461. package/dist/glass/webgpu/canvasSubmission.js +22 -0
  462. package/dist/glass/webgpu/capture.d.ts +77 -0
  463. package/dist/glass/webgpu/capture.js +534 -0
  464. package/dist/glass/webgpu/captureBands.d.ts +39 -0
  465. package/dist/glass/webgpu/captureBands.js +53 -0
  466. package/dist/glass/webgpu/captureContext.d.ts +1 -0
  467. package/dist/glass/webgpu/captureContext.js +6 -0
  468. package/dist/glass/webgpu/captureDemand.d.ts +44 -0
  469. package/dist/glass/webgpu/captureDemand.js +81 -0
  470. package/dist/glass/webgpu/captureRelease.d.ts +18 -0
  471. package/dist/glass/webgpu/captureRelease.js +39 -0
  472. package/dist/glass/webgpu/client.d.ts +49 -0
  473. package/dist/glass/webgpu/client.js +336 -0
  474. package/dist/glass/webgpu/contextBackdrop.d.ts +6 -0
  475. package/dist/glass/webgpu/contextBackdrop.js +13 -0
  476. package/dist/glass/webgpu/contextComposite.d.ts +64 -0
  477. package/dist/glass/webgpu/contextComposite.js +66 -0
  478. package/dist/glass/webgpu/decodedImage.d.ts +1 -0
  479. package/dist/glass/webgpu/decodedImage.js +2 -0
  480. package/dist/glass/webgpu/deviceLimits.d.ts +5 -0
  481. package/dist/glass/webgpu/deviceLimits.js +8 -0
  482. package/dist/glass/webgpu/edgePass.d.ts +9 -0
  483. package/dist/glass/webgpu/edgePass.js +170 -0
  484. package/dist/glass/webgpu/entry.worker.d.ts +1 -0
  485. package/dist/glass/webgpu/entry.worker.js +28 -0
  486. package/dist/glass/webgpu/errorCode.d.ts +3 -0
  487. package/dist/glass/webgpu/errorCode.js +27 -0
  488. package/dist/glass/webgpu/errors.d.ts +8 -0
  489. package/dist/glass/webgpu/errors.js +55 -0
  490. package/dist/glass/webgpu/fieldInk.d.ts +9 -0
  491. package/dist/glass/webgpu/fieldInk.js +62 -0
  492. package/dist/glass/webgpu/foreground.d.ts +29 -0
  493. package/dist/glass/webgpu/foreground.js +313 -0
  494. package/dist/glass/webgpu/frameClock.d.ts +34 -0
  495. package/dist/glass/webgpu/frameClock.js +60 -0
  496. package/dist/glass/webgpu/frameGraph.d.ts +57 -0
  497. package/dist/glass/webgpu/frameGraph.js +287 -0
  498. package/dist/glass/webgpu/frameProbe.d.ts +58 -0
  499. package/dist/glass/webgpu/frameProbe.js +181 -0
  500. package/dist/glass/webgpu/interactionProfiles.d.ts +10 -0
  501. package/dist/glass/webgpu/interactionProfiles.js +25 -0
  502. package/dist/glass/webgpu/keptGlyphs.d.ts +68 -0
  503. package/dist/glass/webgpu/keptGlyphs.js +85 -0
  504. package/dist/glass/webgpu/keyboardBackdrop.d.ts +12 -0
  505. package/dist/glass/webgpu/keyboardBackdrop.js +51 -0
  506. package/dist/glass/webgpu/lagTrace.d.ts +31 -0
  507. package/dist/glass/webgpu/lagTrace.js +22 -0
  508. package/dist/glass/webgpu/layers.d.ts +100 -0
  509. package/dist/glass/webgpu/layers.js +301 -0
  510. package/dist/glass/webgpu/lensDebug.d.ts +4 -0
  511. package/dist/glass/webgpu/lensDebug.js +28 -0
  512. package/dist/glass/webgpu/lensDiffusion.d.ts +2 -0
  513. package/dist/glass/webgpu/lensDiffusion.js +20 -0
  514. package/dist/glass/webgpu/lensLightingFit.json +222 -0
  515. package/dist/glass/webgpu/menuLiftInput.d.ts +30 -0
  516. package/dist/glass/webgpu/menuLiftInput.js +39 -0
  517. package/dist/glass/webgpu/menuSurfaceGuard.d.ts +17 -0
  518. package/dist/glass/webgpu/menuSurfaceGuard.js +26 -0
  519. package/dist/glass/webgpu/minimize.d.ts +184 -0
  520. package/dist/glass/webgpu/minimize.js +470 -0
  521. package/dist/glass/webgpu/navigationAtlasCopy.d.ts +12 -0
  522. package/dist/glass/webgpu/navigationAtlasCopy.js +121 -0
  523. package/dist/glass/webgpu/navigationTracks.d.ts +3 -0
  524. package/dist/glass/webgpu/navigationTracks.js +84 -0
  525. package/dist/glass/webgpu/passes.d.ts +204 -0
  526. package/dist/glass/webgpu/passes.js +394 -0
  527. package/dist/glass/webgpu/pendingSurfaceInput.d.ts +29 -0
  528. package/dist/glass/webgpu/pendingSurfaceInput.js +51 -0
  529. package/dist/glass/webgpu/preparedSourcePixels.d.ts +21 -0
  530. package/dist/glass/webgpu/preparedSourcePixels.js +43 -0
  531. package/dist/glass/webgpu/presentationBackdrop.d.ts +3 -0
  532. package/dist/glass/webgpu/presentationBackdrop.js +33 -0
  533. package/dist/glass/webgpu/presentationDiffusion.d.ts +48 -0
  534. package/dist/glass/webgpu/presentationDiffusion.js +57 -0
  535. package/dist/glass/webgpu/presentationMaterial.d.ts +9 -0
  536. package/dist/glass/webgpu/presentationMaterial.js +156 -0
  537. package/dist/glass/webgpu/presenterViewport.d.ts +11 -0
  538. package/dist/glass/webgpu/presenterViewport.js +193 -0
  539. package/dist/glass/webgpu/production.d.ts +552 -0
  540. package/dist/glass/webgpu/production.js +1929 -0
  541. package/dist/glass/webgpu/productionInstalls.d.ts +53 -0
  542. package/dist/glass/webgpu/productionInstalls.js +225 -0
  543. package/dist/glass/webgpu/productionNavigation.d.ts +5 -0
  544. package/dist/glass/webgpu/productionNavigation.js +360 -0
  545. package/dist/glass/webgpu/productionPinnedTop.d.ts +80 -0
  546. package/dist/glass/webgpu/productionPinnedTop.js +77 -0
  547. package/dist/glass/webgpu/productionPinnedTopPrepare.d.ts +21 -0
  548. package/dist/glass/webgpu/productionPinnedTopPrepare.js +132 -0
  549. package/dist/glass/webgpu/productionPlanes.d.ts +135 -0
  550. package/dist/glass/webgpu/productionPlanes.js +412 -0
  551. package/dist/glass/webgpu/productionPrepare.d.ts +18 -0
  552. package/dist/glass/webgpu/productionPrepare.js +833 -0
  553. package/dist/glass/webgpu/productionTracks.d.ts +73 -0
  554. package/dist/glass/webgpu/productionTracks.js +22 -0
  555. package/dist/glass/webgpu/productionViewport.d.ts +20 -0
  556. package/dist/glass/webgpu/productionViewport.js +52 -0
  557. package/dist/glass/webgpu/profile.d.ts +37 -0
  558. package/dist/glass/webgpu/profile.js +101 -0
  559. package/dist/glass/webgpu/raster.d.ts +337 -0
  560. package/dist/glass/webgpu/raster.js +1360 -0
  561. package/dist/glass/webgpu/rasterMaterial.d.ts +19 -0
  562. package/dist/glass/webgpu/rasterMaterial.js +197 -0
  563. package/dist/glass/webgpu/rasterShaders.d.ts +7 -0
  564. package/dist/glass/webgpu/rasterShaders.js +105 -0
  565. package/dist/glass/webgpu/rasterUniforms.d.ts +304 -0
  566. package/dist/glass/webgpu/rasterUniforms.js +415 -0
  567. package/dist/glass/webgpu/regionBackdrop.d.ts +8 -0
  568. package/dist/glass/webgpu/regionBackdrop.js +12 -0
  569. package/dist/glass/webgpu/regionBridge.d.ts +145 -0
  570. package/dist/glass/webgpu/regionBridge.js +1691 -0
  571. package/dist/glass/webgpu/regionScene.d.ts +294 -0
  572. package/dist/glass/webgpu/regionScene.js +2144 -0
  573. package/dist/glass/webgpu/renderer.d.ts +8 -0
  574. package/dist/glass/webgpu/renderer.js +1478 -0
  575. package/dist/glass/webgpu/residentPlanes.d.ts +69 -0
  576. package/dist/glass/webgpu/residentPlanes.js +104 -0
  577. package/dist/glass/webgpu/restMaterial.d.ts +6 -0
  578. package/dist/glass/webgpu/restMaterial.js +65 -0
  579. package/dist/glass/webgpu/resumeOverlay.d.ts +44 -0
  580. package/dist/glass/webgpu/resumeOverlay.js +82 -0
  581. package/dist/glass/webgpu/sampleTrace.d.ts +11 -0
  582. package/dist/glass/webgpu/sampleTrace.js +50 -0
  583. package/dist/glass/webgpu/scrollEdgeBackdrop.d.ts +89 -0
  584. package/dist/glass/webgpu/scrollEdgeBackdrop.js +177 -0
  585. package/dist/glass/webgpu/scrollEdgePose.d.ts +4 -0
  586. package/dist/glass/webgpu/scrollEdgePose.js +49 -0
  587. package/dist/glass/webgpu/selectionThumb.d.ts +81 -0
  588. package/dist/glass/webgpu/selectionThumb.js +209 -0
  589. package/dist/glass/webgpu/shaders.d.ts +67 -0
  590. package/dist/glass/webgpu/shaders.js +595 -0
  591. package/dist/glass/webgpu/sharedLift.d.ts +7 -0
  592. package/dist/glass/webgpu/sharedLift.js +223 -0
  593. package/dist/glass/webgpu/sourcePixels.d.ts +42 -0
  594. package/dist/glass/webgpu/sourcePixels.js +140 -0
  595. package/dist/glass/webgpu/sourcePixels.worker.d.ts +1 -0
  596. package/dist/glass/webgpu/sourcePixels.worker.js +62 -0
  597. package/dist/glass/webgpu/tabGlyphInk.d.ts +14 -0
  598. package/dist/glass/webgpu/tabGlyphInk.js +72 -0
  599. package/dist/glass/webgpu/touchLight.d.ts +4 -0
  600. package/dist/glass/webgpu/touchLight.js +15 -0
  601. package/dist/glass/worker/client.d.ts +21 -0
  602. package/dist/glass/worker/client.js +152 -0
  603. package/dist/glass/worker/experiment.d.ts +13 -0
  604. package/dist/glass/worker/experiment.js +221 -0
  605. package/dist/glass/worker/fixture.d.ts +21 -0
  606. package/dist/glass/worker/fixture.js +152 -0
  607. package/dist/glass/worker/protocol.d.ts +439 -0
  608. package/dist/glass/worker/protocol.js +5 -0
  609. package/dist/graphicsProbe.d.ts +19 -0
  610. package/dist/graphicsProbe.js +111 -0
  611. package/dist/haptics/SensoryButton.d.ts +21 -0
  612. package/dist/haptics/SensoryButton.js +80 -0
  613. package/dist/image/ContentAdmission.d.ts +19 -0
  614. package/dist/image/ContentAdmission.js +70 -0
  615. package/dist/image/Image.d.ts +30 -0
  616. package/dist/image/Image.js +341 -0
  617. package/dist/image/asset.d.ts +9 -0
  618. package/dist/image/asset.js +1 -0
  619. package/dist/image/contentReadiness.d.ts +7 -0
  620. package/dist/image/contentReadiness.js +54 -0
  621. package/dist/image/imports.d.ts +4 -0
  622. package/dist/image/resource.d.ts +53 -0
  623. package/dist/image/resource.js +286 -0
  624. package/dist/image/vite.d.ts +3 -0
  625. package/dist/image/vite.js +63 -0
  626. package/dist/index.d.ts +87 -0
  627. package/dist/index.js +102 -0
  628. package/dist/install.d.ts +8 -0
  629. package/dist/install.js +8 -0
  630. package/dist/internal.d.ts +96 -0
  631. package/dist/internal.js +80 -0
  632. package/dist/keyboard/adapter.d.ts +82 -0
  633. package/dist/keyboard/adapter.js +727 -0
  634. package/dist/keyboard/avoidance.d.ts +24 -0
  635. package/dist/keyboard/avoidance.js +283 -0
  636. package/dist/keyboard/caretMirror.d.ts +13 -0
  637. package/dist/keyboard/caretMirror.js +122 -0
  638. package/dist/keyboard/expectedKeyboard.d.ts +10 -0
  639. package/dist/keyboard/expectedKeyboard.js +60 -0
  640. package/dist/keyboard/geometry.d.ts +10 -0
  641. package/dist/keyboard/geometry.js +21 -0
  642. package/dist/keyboard/modalTapFocus.d.ts +41 -0
  643. package/dist/keyboard/modalTapFocus.js +224 -0
  644. package/dist/keyboard/motion.d.ts +54 -0
  645. package/dist/keyboard/motion.js +80 -0
  646. package/dist/keyboard/translation.d.ts +12 -0
  647. package/dist/keyboard/translation.js +19 -0
  648. package/dist/layout/adaptiveTabsContext.d.ts +5 -0
  649. package/dist/layout/adaptiveTabsContext.js +2 -0
  650. package/dist/layout/deviceIdiom.d.ts +4 -0
  651. package/dist/layout/deviceIdiom.js +12 -0
  652. package/dist/layout/layoutClass.d.ts +44 -0
  653. package/dist/layout/layoutClass.js +102 -0
  654. package/dist/layout/navigationLayoutContext.d.ts +8 -0
  655. package/dist/layout/navigationLayoutContext.js +5 -0
  656. package/dist/list-form/ListForm.d.ts +158 -0
  657. package/dist/list-form/ListForm.js +427 -0
  658. package/dist/list-form/ListItem.d.ts +30 -0
  659. package/dist/list-form/ListItem.js +251 -0
  660. package/dist/list-form/RowLabel.d.ts +14 -0
  661. package/dist/list-form/RowLabel.js +11 -0
  662. package/dist/list-form/Slider.d.ts +18 -0
  663. package/dist/list-form/Slider.js +235 -0
  664. package/dist/list-form/StepperButton.d.ts +9 -0
  665. package/dist/list-form/StepperButton.js +60 -0
  666. package/dist/list-form/Toggle.d.ts +16 -0
  667. package/dist/list-form/Toggle.js +204 -0
  668. package/dist/list-form/editMotion.d.ts +15 -0
  669. package/dist/list-form/editMotion.js +25 -0
  670. package/dist/list-form/editing.d.ts +102 -0
  671. package/dist/list-form/editing.js +51 -0
  672. package/dist/list-form/listContext.d.ts +4 -0
  673. package/dist/list-form/listContext.js +5 -0
  674. package/dist/list-form/offsets.d.ts +26 -0
  675. package/dist/list-form/offsets.js +34 -0
  676. package/dist/list-form/reorder.d.ts +20 -0
  677. package/dist/list-form/reorder.js +193 -0
  678. package/dist/list-form/rowMotion.d.ts +11 -0
  679. package/dist/list-form/rowMotion.js +236 -0
  680. package/dist/list-form/rowMotionScope.d.ts +14 -0
  681. package/dist/list-form/rowMotionScope.js +61 -0
  682. package/dist/list-form/separatorInsets.d.ts +4 -0
  683. package/dist/list-form/separatorInsets.js +87 -0
  684. package/dist/list-form/sliderContact.d.ts +40 -0
  685. package/dist/list-form/sliderContact.js +98 -0
  686. package/dist/list-form/state.d.ts +5 -0
  687. package/dist/list-form/state.js +8 -0
  688. package/dist/list-form/toggleContact.d.ts +55 -0
  689. package/dist/list-form/toggleContact.js +164 -0
  690. package/dist/media/controller.d.ts +7 -0
  691. package/dist/media/controller.js +612 -0
  692. package/dist/media/react.d.ts +9 -0
  693. package/dist/media/react.js +38 -0
  694. package/dist/media/systemMedia.d.ts +6 -0
  695. package/dist/media/systemMedia.js +200 -0
  696. package/dist/media/types.d.ts +83 -0
  697. package/dist/media/types.js +1 -0
  698. package/dist/menu/menuContact.d.ts +20 -0
  699. package/dist/menu/menuContact.js +286 -0
  700. package/dist/menu/menuGesture.d.ts +84 -0
  701. package/dist/menu/menuGesture.js +502 -0
  702. package/dist/menu/menuInteraction.d.ts +17 -0
  703. package/dist/menu/menuInteraction.js +34 -0
  704. package/dist/menu/menuOutside.d.ts +9 -0
  705. package/dist/menu/menuOutside.js +58 -0
  706. package/dist/menu/menuPanelContact.d.ts +11 -0
  707. package/dist/menu/menuPanelContact.js +77 -0
  708. package/dist/menu/menuTriggerHold.d.ts +3 -0
  709. package/dist/menu/menuTriggerHold.js +52 -0
  710. package/dist/menu/sampledMotion.d.ts +37 -0
  711. package/dist/menu/sampledMotion.js +86 -0
  712. package/dist/modal/lifecycle.d.ts +10 -0
  713. package/dist/modal/lifecycle.js +189 -0
  714. package/dist/motion/TransitionView.d.ts +12 -0
  715. package/dist/motion/TransitionView.js +118 -0
  716. package/dist/motion/animate.d.ts +20 -0
  717. package/dist/motion/animate.js +79 -0
  718. package/dist/motion/animationValue.d.ts +25 -0
  719. package/dist/motion/animationValue.js +42 -0
  720. package/dist/motion/composerMotion.d.ts +3 -0
  721. package/dist/motion/composerMotion.js +15 -0
  722. package/dist/motion/layoutTransaction.d.ts +7 -0
  723. package/dist/motion/layoutTransaction.js +28 -0
  724. package/dist/motion/matchedGeometry.d.ts +55 -0
  725. package/dist/motion/matchedGeometry.js +412 -0
  726. package/dist/motion/springPath.d.ts +27 -0
  727. package/dist/motion/springPath.js +46 -0
  728. package/dist/motion/springTrack.d.ts +33 -0
  729. package/dist/motion/springTrack.js +69 -0
  730. package/dist/motion/transition.d.ts +48 -0
  731. package/dist/motion/transition.js +56 -0
  732. package/dist/motion/transitionImages.d.ts +7 -0
  733. package/dist/motion/transitionImages.js +49 -0
  734. package/dist/motionProbe.d.ts +227 -0
  735. package/dist/motionProbe.js +697 -0
  736. package/dist/motionProbeControls.d.ts +2 -0
  737. package/dist/motionProbeControls.js +118 -0
  738. package/dist/motionProbeDelivery.d.ts +15 -0
  739. package/dist/motionProbeDelivery.js +84 -0
  740. package/dist/navigation/DetailList.d.ts +9 -0
  741. package/dist/navigation/DetailList.js +7 -0
  742. package/dist/navigation/NavigationChrome.d.ts +18 -0
  743. package/dist/navigation/NavigationChrome.js +195 -0
  744. package/dist/navigation/NavigationSearchRow.d.ts +9 -0
  745. package/dist/navigation/NavigationSearchRow.js +101 -0
  746. package/dist/navigation/NavigationTitleSlots.d.ts +18 -0
  747. package/dist/navigation/NavigationTitleSlots.js +64 -0
  748. package/dist/navigation/NavigatorHost.d.ts +17 -0
  749. package/dist/navigation/NavigatorHost.js +534 -0
  750. package/dist/navigation/ScreenContainer.d.ts +31 -0
  751. package/dist/navigation/ScreenContainer.js +219 -0
  752. package/dist/navigation/ScrubSourceFrames.d.ts +18 -0
  753. package/dist/navigation/ScrubSourceFrames.js +67 -0
  754. package/dist/navigation/Sidebar.d.ts +16 -0
  755. package/dist/navigation/Sidebar.js +20 -0
  756. package/dist/navigation/SidebarSymbol.d.ts +4 -0
  757. package/dist/navigation/SidebarSymbol.js +6 -0
  758. package/dist/navigation/ToolbarGlass.d.ts +2 -0
  759. package/dist/navigation/ToolbarGlass.js +429 -0
  760. package/dist/navigation/TransitionEdge.d.ts +4 -0
  761. package/dist/navigation/TransitionEdge.js +33 -0
  762. package/dist/navigation/bottomToolbarGeometry.d.ts +6 -0
  763. package/dist/navigation/bottomToolbarGeometry.js +14 -0
  764. package/dist/navigation/chromeCurves.d.ts +48 -0
  765. package/dist/navigation/chromeCurves.js +255 -0
  766. package/dist/navigation/glassTransition.d.ts +32 -0
  767. package/dist/navigation/glassTransition.js +55 -0
  768. package/dist/navigation/horizontalDrag.d.ts +6 -0
  769. package/dist/navigation/horizontalDrag.js +15 -0
  770. package/dist/navigation/interactivePop.d.ts +45 -0
  771. package/dist/navigation/interactivePop.js +86 -0
  772. package/dist/navigation/interactivePopTypes.d.ts +85 -0
  773. package/dist/navigation/interactivePopTypes.js +36 -0
  774. package/dist/navigation/keyboard.d.ts +9 -0
  775. package/dist/navigation/keyboard.js +55 -0
  776. package/dist/navigation/motion.d.ts +19 -0
  777. package/dist/navigation/motion.js +645 -0
  778. package/dist/navigation/motionTokens.d.ts +43 -0
  779. package/dist/navigation/motionTokens.js +75 -0
  780. package/dist/navigation/nativeScrubExperiment.d.ts +5 -0
  781. package/dist/navigation/nativeScrubExperiment.js +153 -0
  782. package/dist/navigation/nativeScrubSource.d.ts +15 -0
  783. package/dist/navigation/nativeScrubSource.js +88 -0
  784. package/dist/navigation/navigationChromeModel.d.ts +8 -0
  785. package/dist/navigation/navigationChromeModel.js +30 -0
  786. package/dist/navigation/navigationContext.d.ts +22 -0
  787. package/dist/navigation/navigationContext.js +65 -0
  788. package/dist/navigation/navigationEdge.d.ts +4 -0
  789. package/dist/navigation/navigationEdge.js +101 -0
  790. package/dist/navigation/pointerPop.d.ts +32 -0
  791. package/dist/navigation/pointerPop.js +206 -0
  792. package/dist/navigation/probeLayers.d.ts +7 -0
  793. package/dist/navigation/probeLayers.js +8 -0
  794. package/dist/navigation/registry.d.ts +14 -0
  795. package/dist/navigation/registry.js +31 -0
  796. package/dist/navigation/releaseDecision.d.ts +21 -0
  797. package/dist/navigation/releaseDecision.js +94 -0
  798. package/dist/navigation/releaseTrajectory.d.ts +20 -0
  799. package/dist/navigation/releaseTrajectory.js +95 -0
  800. package/dist/navigation/releaseVelocity.d.ts +9 -0
  801. package/dist/navigation/releaseVelocity.js +38 -0
  802. package/dist/navigation/routeCodec.d.ts +33 -0
  803. package/dist/navigation/routeCodec.js +123 -0
  804. package/dist/navigation/scrollEdge.d.ts +18 -0
  805. package/dist/navigation/scrollEdge.js +66 -0
  806. package/dist/navigation/scrubFrameLoop.d.ts +44 -0
  807. package/dist/navigation/scrubFrameLoop.js +129 -0
  808. package/dist/navigation/sidebarSelection.d.ts +5 -0
  809. package/dist/navigation/sidebarSelection.js +8 -0
  810. package/dist/navigation/splitContext.d.ts +17 -0
  811. package/dist/navigation/splitContext.js +9 -0
  812. package/dist/navigation/splitState.d.ts +46 -0
  813. package/dist/navigation/splitState.js +130 -0
  814. package/dist/navigation/stack.d.ts +25 -0
  815. package/dist/navigation/stack.js +136 -0
  816. package/dist/navigation/store.d.ts +80 -0
  817. package/dist/navigation/store.js +464 -0
  818. package/dist/navigation/toolbarGlassMotion.d.ts +40 -0
  819. package/dist/navigation/toolbarGlassMotion.js +202 -0
  820. package/dist/navigation/toolbarMinimization.d.ts +9 -0
  821. package/dist/navigation/toolbarMinimization.js +76 -0
  822. package/dist/navigation/toolbarMotionOwner.d.ts +6 -0
  823. package/dist/navigation/toolbarMotionOwner.js +30 -0
  824. package/dist/navigation/touchArbitration.d.ts +34 -0
  825. package/dist/navigation/touchArbitration.js +550 -0
  826. package/dist/navigation/tracking.d.ts +7 -0
  827. package/dist/navigation/tracking.js +19 -0
  828. package/dist/navigation/transitionBindings.d.ts +31 -0
  829. package/dist/navigation/transitionBindings.js +106 -0
  830. package/dist/navigation/transitionChrome.d.ts +31 -0
  831. package/dist/navigation/transitionChrome.js +380 -0
  832. package/dist/navigation/transitionPose.d.ts +52 -0
  833. package/dist/navigation/transitionPose.js +295 -0
  834. package/dist/navigation/types.d.ts +133 -0
  835. package/dist/navigation/types.js +1 -0
  836. package/dist/navigation/zoomDrag.d.ts +3 -0
  837. package/dist/navigation/zoomDrag.js +125 -0
  838. package/dist/navigation/zoomGeometry.d.ts +48 -0
  839. package/dist/navigation/zoomGeometry.js +94 -0
  840. package/dist/navigation/zoomGlass.d.ts +27 -0
  841. package/dist/navigation/zoomGlass.js +64 -0
  842. package/dist/navigation/zoomMotion.d.ts +73 -0
  843. package/dist/navigation/zoomMotion.js +104 -0
  844. package/dist/navigation/zoomTransition.d.ts +82 -0
  845. package/dist/navigation/zoomTransition.js +975 -0
  846. package/dist/presentation/Presentation.d.ts +61 -0
  847. package/dist/presentation/Presentation.js +92 -0
  848. package/dist/presentation/PresentationSurface.d.ts +29 -0
  849. package/dist/presentation/PresentationSurface.js +586 -0
  850. package/dist/presentation/PresentedSheet.d.ts +2 -0
  851. package/dist/presentation/PresentedSheet.js +571 -0
  852. package/dist/presentation/activity.d.ts +3 -0
  853. package/dist/presentation/activity.js +24 -0
  854. package/dist/presentation/coldLaunch.d.ts +2 -0
  855. package/dist/presentation/coldLaunch.js +19 -0
  856. package/dist/presentation/dismiss.d.ts +26 -0
  857. package/dist/presentation/dismiss.js +30 -0
  858. package/dist/presentation/glassMotion.d.ts +39 -0
  859. package/dist/presentation/glassMotion.js +259 -0
  860. package/dist/presentation/glassReady.d.ts +11 -0
  861. package/dist/presentation/glassReady.js +246 -0
  862. package/dist/presentation/model.d.ts +108 -0
  863. package/dist/presentation/model.js +183 -0
  864. package/dist/presentation/motion.d.ts +56 -0
  865. package/dist/presentation/motion.js +263 -0
  866. package/dist/presentation/presentationMotion.d.ts +10 -0
  867. package/dist/presentation/presentationMotion.js +74 -0
  868. package/dist/presentation/presentationSource.d.ts +2 -0
  869. package/dist/presentation/presentationSource.js +28 -0
  870. package/dist/presentation/sheetChromeContext.d.ts +2 -0
  871. package/dist/presentation/sheetChromeContext.js +3 -0
  872. package/dist/presentation/sheetMaterialTransition.d.ts +14 -0
  873. package/dist/presentation/sheetMaterialTransition.js +33 -0
  874. package/dist/presentation/sheetReleaseMotion.d.ts +18 -0
  875. package/dist/presentation/sheetReleaseMotion.js +123 -0
  876. package/dist/presentation/useAlertKeyboardMotion.d.ts +8 -0
  877. package/dist/presentation/useAlertKeyboardMotion.js +104 -0
  878. package/dist/press/Pressable.d.ts +19 -0
  879. package/dist/press/Pressable.js +16 -0
  880. package/dist/press/activation.d.ts +20 -0
  881. package/dist/press/activation.js +28 -0
  882. package/dist/press/contactReceipt.d.ts +23 -0
  883. package/dist/press/contactReceipt.js +177 -0
  884. package/dist/press/gestureArbitration.d.ts +13 -0
  885. package/dist/press/gestureArbitration.js +38 -0
  886. package/dist/press/stateMachine.d.ts +29 -0
  887. package/dist/press/stateMachine.js +39 -0
  888. package/dist/press/tokens.d.ts +18 -0
  889. package/dist/press/tokens.js +19 -0
  890. package/dist/press/usePressInteraction.d.ts +30 -0
  891. package/dist/press/usePressInteraction.js +247 -0
  892. package/dist/public/Label.d.ts +16 -0
  893. package/dist/public/Label.js +40 -0
  894. package/dist/public/NativeFilePicker.d.ts +19 -0
  895. package/dist/public/NativeFilePicker.js +75 -0
  896. package/dist/public/Screen.d.ts +42 -0
  897. package/dist/public/Screen.js +87 -0
  898. package/dist/public/actions.d.ts +16 -0
  899. package/dist/public/actions.js +15 -0
  900. package/dist/public/buttonBorderShape.d.ts +7 -0
  901. package/dist/public/buttonBorderShape.js +9 -0
  902. package/dist/public/chrome.d.ts +3 -0
  903. package/dist/public/chrome.js +5 -0
  904. package/dist/public/colors.d.ts +29 -0
  905. package/dist/public/colors.js +28 -0
  906. package/dist/public/context.d.ts +19 -0
  907. package/dist/public/context.js +8 -0
  908. package/dist/public/controlStyle.d.ts +93 -0
  909. package/dist/public/controlStyle.js +52 -0
  910. package/dist/public/controls.d.ts +360 -0
  911. package/dist/public/controls.js +301 -0
  912. package/dist/public/definition.d.ts +65 -0
  913. package/dist/public/definition.js +58 -0
  914. package/dist/public/deviceActions.d.ts +23 -0
  915. package/dist/public/deviceActions.js +87 -0
  916. package/dist/public/environment.d.ts +77 -0
  917. package/dist/public/environment.js +171 -0
  918. package/dist/public/fieldContext.d.ts +2 -0
  919. package/dist/public/fieldContext.js +3 -0
  920. package/dist/public/filePickers.d.ts +25 -0
  921. package/dist/public/filePickers.js +11 -0
  922. package/dist/public/glass.d.ts +31 -0
  923. package/dist/public/glass.js +29 -0
  924. package/dist/public/glassValue.d.ts +19 -0
  925. package/dist/public/glassValue.js +32 -0
  926. package/dist/public/keyboard.d.ts +4 -0
  927. package/dist/public/keyboard.js +6 -0
  928. package/dist/public/navigationTransition.d.ts +48 -0
  929. package/dist/public/navigationTransition.js +49 -0
  930. package/dist/public/pickerNavigation.d.ts +7 -0
  931. package/dist/public/pickerNavigation.js +64 -0
  932. package/dist/public/presentation.d.ts +40 -0
  933. package/dist/public/presentation.js +21 -0
  934. package/dist/public/presentationContext.d.ts +2 -0
  935. package/dist/public/presentationContext.js +3 -0
  936. package/dist/public/routeRegistry.d.ts +3 -0
  937. package/dist/public/routeRegistry.js +10 -0
  938. package/dist/public/routes.d.ts +74 -0
  939. package/dist/public/routes.js +105 -0
  940. package/dist/public/runtime.d.ts +134 -0
  941. package/dist/public/runtime.js +292 -0
  942. package/dist/public/screenChrome.d.ts +91 -0
  943. package/dist/public/screenChrome.js +187 -0
  944. package/dist/public/scroll.d.ts +38 -0
  945. package/dist/public/scroll.js +7 -0
  946. package/dist/public/storage.d.ts +9 -0
  947. package/dist/public/storage.js +9 -0
  948. package/dist/public/structure.d.ts +65 -0
  949. package/dist/public/structure.js +40 -0
  950. package/dist/public/toolbar.d.ts +37 -0
  951. package/dist/public/toolbar.js +76 -0
  952. package/dist/push/PushPermissionExplainer.d.ts +14 -0
  953. package/dist/push/PushPermissionExplainer.js +30 -0
  954. package/dist/push/notifications.d.ts +54 -0
  955. package/dist/push/notifications.js +276 -0
  956. package/dist/push/routes.d.ts +20 -0
  957. package/dist/push/routes.js +63 -0
  958. package/dist/push/schema.d.ts +42 -0
  959. package/dist/push/schema.js +41 -0
  960. package/dist/push/urlProjection.d.ts +24 -0
  961. package/dist/push/urlProjection.js +207 -0
  962. package/dist/reachability/controller.d.ts +21 -0
  963. package/dist/reachability/controller.js +202 -0
  964. package/dist/reachability/model.d.ts +94 -0
  965. package/dist/reachability/model.js +131 -0
  966. package/dist/reachability/react.d.ts +29 -0
  967. package/dist/reachability/react.js +69 -0
  968. package/dist/restoration/navigation.d.ts +9 -0
  969. package/dist/restoration/navigation.js +55 -0
  970. package/dist/restoration/react.d.ts +6 -0
  971. package/dist/restoration/react.js +21 -0
  972. package/dist/restoration/routes.d.ts +22 -0
  973. package/dist/restoration/routes.js +166 -0
  974. package/dist/restoration/scene.d.ts +44 -0
  975. package/dist/restoration/scene.js +284 -0
  976. package/dist/root/SatinRoot.d.ts +25 -0
  977. package/dist/root/SatinRoot.js +512 -0
  978. package/dist/root/mountSatin.d.ts +12 -0
  979. package/dist/root/mountSatin.js +60 -0
  980. package/dist/root/runtimeContext.d.ts +26 -0
  981. package/dist/root/runtimeContext.js +30 -0
  982. package/dist/safe-area/Overlay.d.ts +9 -0
  983. package/dist/safe-area/Overlay.js +26 -0
  984. package/dist/safe-area/SafeAreaInset.d.ts +25 -0
  985. package/dist/safe-area/SafeAreaInset.js +138 -0
  986. package/dist/safe-area/bottomInsetGeometry.d.ts +12 -0
  987. package/dist/safe-area/bottomInsetGeometry.js +73 -0
  988. package/dist/safe-area/context.d.ts +15 -0
  989. package/dist/safe-area/context.js +8 -0
  990. package/dist/safe-area/displayCorners.d.ts +21 -0
  991. package/dist/safe-area/displayCorners.js +70 -0
  992. package/dist/safe-area/keyboardCarrier.d.ts +26 -0
  993. package/dist/safe-area/keyboardCarrier.js +394 -0
  994. package/dist/safe-area/keyboardCarrierGeometry.d.ts +37 -0
  995. package/dist/safe-area/keyboardCarrierGeometry.js +49 -0
  996. package/dist/safe-area/modifiers.d.ts +52 -0
  997. package/dist/safe-area/modifiers.js +86 -0
  998. package/dist/safe-area/useSafeAreaMetrics.d.ts +83 -0
  999. package/dist/safe-area/useSafeAreaMetrics.js +367 -0
  1000. package/dist/safe-area/windowChrome.d.ts +7 -0
  1001. package/dist/safe-area/windowChrome.js +14 -0
  1002. package/dist/scroll/RefreshControl.d.ts +8 -0
  1003. package/dist/scroll/RefreshControl.js +135 -0
  1004. package/dist/scroll/ScrollSurface.d.ts +62 -0
  1005. package/dist/scroll/ScrollSurface.js +278 -0
  1006. package/dist/scroll/ScrollTarget.d.ts +6 -0
  1007. package/dist/scroll/ScrollTarget.js +11 -0
  1008. package/dist/scroll/edgePolicy.d.ts +21 -0
  1009. package/dist/scroll/edgePolicy.js +17 -0
  1010. package/dist/scroll/insertionMotion.d.ts +15 -0
  1011. package/dist/scroll/insertionMotion.js +128 -0
  1012. package/dist/scroll/nativeScroll.d.ts +14 -0
  1013. package/dist/scroll/nativeScroll.js +71 -0
  1014. package/dist/scroll/position.d.ts +31 -0
  1015. package/dist/scroll/position.js +273 -0
  1016. package/dist/scroll/pressOwnership.d.ts +4 -0
  1017. package/dist/scroll/pressOwnership.js +65 -0
  1018. package/dist/scroll/refreshMotion.d.ts +9 -0
  1019. package/dist/scroll/refreshMotion.js +15 -0
  1020. package/dist/scroll/refreshable.d.ts +6 -0
  1021. package/dist/scroll/refreshable.js +50 -0
  1022. package/dist/scroll/registry.d.ts +38 -0
  1023. package/dist/scroll/registry.js +261 -0
  1024. package/dist/scroll/screenGeometry.d.ts +8 -0
  1025. package/dist/scroll/screenGeometry.js +50 -0
  1026. package/dist/scroll/scrollIndicator.d.ts +7 -0
  1027. package/dist/scroll/scrollIndicator.js +114 -0
  1028. package/dist/scroll/scrollJump.d.ts +7 -0
  1029. package/dist/scroll/scrollJump.js +16 -0
  1030. package/dist/scroll/types.d.ts +12 -0
  1031. package/dist/scroll/types.js +1 -0
  1032. package/dist/search/SearchDrawer.d.ts +16 -0
  1033. package/dist/search/SearchDrawer.js +421 -0
  1034. package/dist/search/SearchScopesBar.d.ts +6 -0
  1035. package/dist/search/SearchScopesBar.js +12 -0
  1036. package/dist/search/SearchToolbarField.d.ts +8 -0
  1037. package/dist/search/SearchToolbarField.js +115 -0
  1038. package/dist/search/searchBackdrop.d.ts +12 -0
  1039. package/dist/search/searchBackdrop.js +45 -0
  1040. package/dist/search/searchChrome.d.ts +13 -0
  1041. package/dist/search/searchChrome.js +31 -0
  1042. package/dist/search/searchMotion.d.ts +30 -0
  1043. package/dist/search/searchMotion.js +46 -0
  1044. package/dist/search/searchPlacement.d.ts +11 -0
  1045. package/dist/search/searchPlacement.js +15 -0
  1046. package/dist/search/searchable.d.ts +46 -0
  1047. package/dist/search/searchable.js +5 -0
  1048. package/dist/search/useSearchPresentation.d.ts +15 -0
  1049. package/dist/search/useSearchPresentation.js +61 -0
  1050. package/dist/server.d.ts +7 -0
  1051. package/dist/server.js +144 -0
  1052. package/dist/settings/DisclosureIndicator.d.ts +4 -0
  1053. package/dist/settings/DisclosureIndicator.js +6 -0
  1054. package/dist/settings/tokens.d.ts +129 -0
  1055. package/dist/settings/tokens.js +143 -0
  1056. package/dist/shapes/corners.d.ts +14 -0
  1057. package/dist/shapes/corners.js +80 -0
  1058. package/dist/styles.css +9078 -0
  1059. package/dist/styles.css.d.ts +3 -0
  1060. package/dist/sw/activationState.d.ts +20 -0
  1061. package/dist/sw/activationState.js +39 -0
  1062. package/dist/sw/generator.d.ts +14 -0
  1063. package/dist/sw/generator.js +26 -0
  1064. package/dist/sw/manifest.d.ts +32 -0
  1065. package/dist/sw/manifest.js +137 -0
  1066. package/dist/sw/protocol.d.ts +7 -0
  1067. package/dist/sw/protocol.js +7 -0
  1068. package/dist/sw/pushRuntime.d.ts +2 -0
  1069. package/dist/sw/pushRuntime.js +161 -0
  1070. package/dist/sw/registerAppShell.d.ts +25 -0
  1071. package/dist/sw/registerAppShell.js +259 -0
  1072. package/dist/sw/renderServiceWorker.d.ts +10 -0
  1073. package/dist/sw/renderServiceWorker.js +370 -0
  1074. package/dist/sw/requestRouting.d.ts +13 -0
  1075. package/dist/sw/requestRouting.js +26 -0
  1076. package/dist/sw/updateCheck.d.ts +2 -0
  1077. package/dist/sw/updateCheck.js +25 -0
  1078. package/dist/sw/vite.d.ts +20 -0
  1079. package/dist/sw/vite.js +71 -0
  1080. package/dist/symbols/Symbol.d.ts +33 -0
  1081. package/dist/symbols/Symbol.js +59 -0
  1082. package/dist/symbols/catalogue.d.ts +4 -0
  1083. package/dist/symbols/catalogue.js +4139 -0
  1084. package/dist/symbols/exclusions.d.ts +2 -0
  1085. package/dist/symbols/exclusions.js +4 -0
  1086. package/dist/symbols/inheritedWeight.d.ts +3 -0
  1087. package/dist/symbols/inheritedWeight.js +104 -0
  1088. package/dist/symbols/metrics.d.ts +38 -0
  1089. package/dist/symbols/metrics.js +53 -0
  1090. package/dist/symbols/svg.d.ts +3 -0
  1091. package/dist/symbols/svg.js +16 -0
  1092. package/dist/symbols/types.d.ts +30 -0
  1093. package/dist/symbols/types.js +1 -0
  1094. package/dist/tabs/TabSection.d.ts +12 -0
  1095. package/dist/tabs/TabSection.js +4 -0
  1096. package/dist/tabs/TabSidebarSurface.d.ts +7 -0
  1097. package/dist/tabs/TabSidebarSurface.js +29 -0
  1098. package/dist/tabs/TabView.d.ts +28 -0
  1099. package/dist/tabs/TabView.js +258 -0
  1100. package/dist/tabs/accessoryContact.d.ts +2 -0
  1101. package/dist/tabs/accessoryContact.js +42 -0
  1102. package/dist/tabs/compactBar.d.ts +4 -0
  1103. package/dist/tabs/compactBar.js +28 -0
  1104. package/dist/tabs/context.d.ts +8 -0
  1105. package/dist/tabs/context.js +6 -0
  1106. package/dist/tabs/keyboard.d.ts +3 -0
  1107. package/dist/tabs/keyboard.js +23 -0
  1108. package/dist/tabs/model.d.ts +6 -0
  1109. package/dist/tabs/model.js +16 -0
  1110. package/dist/tabs/presentation.d.ts +7 -0
  1111. package/dist/tabs/presentation.js +14 -0
  1112. package/dist/tabs/sourceRevision.d.ts +3 -0
  1113. package/dist/tabs/sourceRevision.js +36 -0
  1114. package/dist/tabs/tabSidebarGlyph.d.ts +2 -0
  1115. package/dist/tabs/tabSidebarGlyph.js +11 -0
  1116. package/dist/tasks/useTask.d.ts +16 -0
  1117. package/dist/tasks/useTask.js +67 -0
  1118. package/dist/testing.d.ts +9 -0
  1119. package/dist/testing.js +11 -0
  1120. package/dist/text-input/TextEditor.d.ts +25 -0
  1121. package/dist/text-input/TextEditor.js +74 -0
  1122. package/dist/text-input/TextField.d.ts +32 -0
  1123. package/dist/text-input/TextField.js +29 -0
  1124. package/dist/text-input/editorGeometry.d.ts +2 -0
  1125. package/dist/text-input/editorGeometry.js +6 -0
  1126. package/dist/text-input/editorTextLayout.d.ts +2 -0
  1127. package/dist/text-input/editorTextLayout.js +31 -0
  1128. package/dist/text-input/focusChain.d.ts +27 -0
  1129. package/dist/text-input/focusChain.js +62 -0
  1130. package/dist/text-input/kinds.d.ts +8 -0
  1131. package/dist/text-input/kinds.js +34 -0
  1132. package/dist/text-input/measureEditor.d.ts +2 -0
  1133. package/dist/text-input/measureEditor.js +50 -0
  1134. package/dist/text-input/submit.d.ts +9 -0
  1135. package/dist/text-input/submit.js +7 -0
  1136. package/dist/unstable.d.ts +16 -0
  1137. package/dist/unstable.js +16 -0
  1138. package/dist/vite.d.ts +3 -0
  1139. package/dist/vite.js +3 -0
  1140. package/dist/web/WebView.d.ts +42 -0
  1141. package/dist/web/WebView.js +115 -0
  1142. package/dist/web/authentication.d.ts +75 -0
  1143. package/dist/web/authentication.js +488 -0
  1144. package/dist/web/openURL.d.ts +37 -0
  1145. package/dist/web/openURL.js +89 -0
  1146. package/dist/web/urlPolicy.d.ts +3 -0
  1147. package/dist/web/urlPolicy.js +19 -0
  1148. package/dist/web/useWebAuthentication.d.ts +3 -0
  1149. package/dist/web/useWebAuthentication.js +6 -0
  1150. package/dist/zoom/Zoomable.d.ts +10 -0
  1151. package/dist/zoom/Zoomable.js +116 -0
  1152. package/dist/zoom/geometry.d.ts +11 -0
  1153. package/dist/zoom/geometry.js +16 -0
  1154. package/package.json +116 -3
@@ -0,0 +1,833 @@
1
+ import { uncoveredCapturePlane } from './productionPlanes.js';
2
+ import { SupersededImage } from '../../image/resource.js';
3
+ import { contextBackdrop } from './contextBackdrop.js';
4
+ import { tabGlyphContextStyle } from '../lens/tabGlyphColours.js';
5
+ import { cssColor, discoverBackdropHosts } from './backdropLayers.js';
6
+ import { confirmHeldSources, heldPresentations } from '../presentationFrame.js';
7
+ import { captureIncomplete, captureProductionGlyphs, rasterProductionSource } from './capture.js';
8
+ import { CAPTURE_CONTEXT } from './captureContext.js';
9
+ import { releaseCaptureCanvas, releaseCaptureCanvases, releaseCaptureCanvasesAfter, } from './captureRelease.js';
10
+ import { captureRegionForeground } from './foreground.js';
11
+ import { inkForRevision } from './keptGlyphs.js';
12
+ import { discardChangedPinnedTops, preparePinnedTops } from './productionPinnedTopPrepare.js';
13
+ import { keepSourceBands, pixelImage, takeSourceBands } from './preparedSourcePixels.js';
14
+ import { backdropLayers, composeMaterialContext, findVisibleContentPlane, materialContextAreas, measurePlane, TAB_CONTEXT_RADIUS, planeDiagnostics, planeSetContextKey, textKey, visiblePlaneSetKey, } from './productionPlanes.js';
15
+ import { commitPlaneSet, sourceImages, surfaceInstalls, syncPlaneScrolls, } from './productionInstalls.js';
16
+ import { placeSurfaceCanvases } from './productionViewport.js';
17
+ import { glassNow, glassTiming, traceStage, traceStageStart } from './profile.js';
18
+ import { lagTraceEnabled } from './lagTrace.js';
19
+ import { readScrollEdges } from './scrollEdgeBackdrop.js';
20
+ export async function commitPreparedContent(runtime, current) {
21
+ if (!current())
22
+ return false;
23
+ const revision = runtime.contentInstall;
24
+ if (revision === undefined)
25
+ return true;
26
+ const receipt = await runtime.post({ type: 'content-commit', revision });
27
+ if (!current())
28
+ return false;
29
+ if (!receipt ||
30
+ typeof receipt !== 'object' ||
31
+ !('accepted' in receipt) ||
32
+ receipt.accepted !== true ||
33
+ !('revision' in receipt) ||
34
+ receipt.revision !== revision)
35
+ throw Error(`WebGPU content commit rejected for revision ${revision}`);
36
+ if (runtime.contentInstall === revision)
37
+ runtime.contentInstall = undefined;
38
+ return true;
39
+ }
40
+ /** A stale commit acknowledgement must retain the barrier record for resume. */
41
+ export async function commitPreparedAppearance(runtime, appearance, current) {
42
+ if (!current())
43
+ return false;
44
+ const appearanceInstall = runtime.appearanceInstall;
45
+ if (appearanceInstall?.value !== appearance)
46
+ return current();
47
+ const acknowledgement = await runtime.post({
48
+ type: 'appearance-commit',
49
+ revision: appearanceInstall.revision,
50
+ });
51
+ if (!current())
52
+ return false;
53
+ if (!acknowledgement ||
54
+ typeof acknowledgement !== 'object' ||
55
+ !('accepted' in acknowledgement) ||
56
+ acknowledgement.accepted !== true ||
57
+ !('revision' in acknowledgement) ||
58
+ acknowledgement.revision !== appearanceInstall.revision) {
59
+ // A current capture rejection is a protocol failure, not successful preparation.
60
+ // The preparation owner reports it and bounds its same-renderer rebuild to one retry.
61
+ throw new Error(`WebGPU appearance commit rejected for revision ${appearanceInstall.revision}`);
62
+ }
63
+ if (runtime.appearanceInstall === appearanceInstall)
64
+ runtime.appearanceInstall = undefined;
65
+ return true;
66
+ }
67
+ /** One preparation at a time. Requests during a run coalesce into one follow-up run,
68
+ * so continuous DOM updates cannot starve the glass of a committed source. */
69
+ export async function prepareSources(runtime) {
70
+ if (runtime.preparing) {
71
+ runtime.prepareAgain = true;
72
+ if (lagTraceEnabled())
73
+ glassTiming('prepare-coalesced');
74
+ return runtime.preparing;
75
+ }
76
+ const revision = ++runtime.revision;
77
+ if (lagTraceEnabled())
78
+ glassTiming('prepare-requested', glassNow(), String(revision));
79
+ const navigationRevision = runtime.navigationRevision;
80
+ // This run measures every plane at its scroll offset now: it serves any recentre asked so far.
81
+ runtime.pendingRecentre = false;
82
+ // Superseded work (hidden, detached, navigation, geometry) is dropped quietly at every await.
83
+ const current = () => runtime.attached &&
84
+ revision === runtime.revision &&
85
+ navigationRevision === runtime.navigationRevision &&
86
+ !runtime.navigationActive &&
87
+ !document.hidden &&
88
+ !runtime.lifecycleHidden;
89
+ // A real failure is reported loudly, then the same renderer rebuilds every source once.
90
+ const run = async () => {
91
+ try {
92
+ for (let attempt = 0; attempt < 2; attempt++) {
93
+ try {
94
+ return await prepareRevision(runtime, revision, current);
95
+ }
96
+ catch (error) {
97
+ if (!current())
98
+ return;
99
+ // An image changed source mid-capture: measure the page again, without waiting for
100
+ // the abandoned decode.
101
+ if (error instanceof SupersededImage) {
102
+ runtime.prepareAgain = true;
103
+ return;
104
+ }
105
+ if (attempt)
106
+ throw error;
107
+ runtime.fail('source preparation; rebuilding same WebGPU renderer', error, true);
108
+ runtime.replaceFailedSourcePixels();
109
+ glassTiming('source-rebuild');
110
+ }
111
+ }
112
+ }
113
+ finally {
114
+ clearPreparation(runtime);
115
+ }
116
+ };
117
+ runtime.serial = runtime.serial.then(run, run);
118
+ runtime.preparing = runtime.serial.finally(() => {
119
+ runtime.preparing = undefined;
120
+ if (runtime.prepareAgain) {
121
+ runtime.prepareAgain = false;
122
+ // A recentre that arrived during this run must not wait for the scroll to end.
123
+ runtime.schedulePrepare(runtime.pendingRecentre, runtime.pendingRecentre);
124
+ }
125
+ });
126
+ return runtime.preparing;
127
+ }
128
+ function clearPreparation(runtime) {
129
+ runtime.preparingPlaneHosts.clear();
130
+ runtime.preparingPlaneWindows?.clear();
131
+ runtime.preparingPinnedWindows?.clear();
132
+ runtime.menuStage = 'prepare';
133
+ }
134
+ /** A stack may mount its first glass region during a push. The navigation job already
135
+ * owns the serial queue, so initialize its backdrop here rather than scheduling a
136
+ * preparation behind ourselves. Later navigation revisions still invalidate this work. */
137
+ export async function prepareInitialNavigationSource(runtime, current) {
138
+ try {
139
+ await prepareRevision(runtime, ++runtime.revision, current);
140
+ }
141
+ finally {
142
+ clearPreparation(runtime);
143
+ }
144
+ }
145
+ /** Capture what changed (backdrop planes, material context, chrome glyphs) and install it in the
146
+ * worker, then (re)install every chrome surface on its layer. */
147
+ async function prepareRevision(runtime, revision, current) {
148
+ const started = glassNow();
149
+ if (!current())
150
+ return;
151
+ const damageGenerations = new Map(runtime.damageGenerations);
152
+ const fontGeneration = runtime.fontGeneration ?? 0;
153
+ const menuGeneration = runtime.menuGeneration;
154
+ runtime.menuStage = 'raster';
155
+ const { geometry, appearance, elements } = runtime.options;
156
+ const resolution = devicePixelRatio;
157
+ const dark = appearance === 'dark';
158
+ const text = textKey();
159
+ // Dynamic Type changed: every resident capture was laid out at the old size.
160
+ if (runtime.lastText !== undefined && runtime.lastText !== text)
161
+ runtime.dropRetained();
162
+ runtime.lastText = text;
163
+ // Right after a navigation the content host can still be the covered route until the
164
+ // retarget commit hands over the new top: preparing now would capture a stale content
165
+ // plane and be redone. Wait briefly for the retarget (it schedules its own preparation).
166
+ if (runtime.contentPlane &&
167
+ (!elements.contentHost.isConnected ||
168
+ elements.contentHost.closest('[data-satin-covered="true"]'))) {
169
+ runtime.coveredSince ||= performance.now();
170
+ if (performance.now() - runtime.coveredSince < 250) {
171
+ glassTiming('prepare-deferred-retarget', started);
172
+ clearTimeout(runtime.coveredRetry);
173
+ runtime.coveredRetry = setTimeout(() => runtime.schedulePrepare(), 260);
174
+ return;
175
+ }
176
+ }
177
+ runtime.coveredSince = 0;
178
+ clearTimeout(runtime.coveredRetry);
179
+ const opened = [];
180
+ /** Capture canvases of planes that left the plane set in this revision's commit. */
181
+ const droppedCanvases = [];
182
+ try {
183
+ // Screen-space backdrop: every visible scroll container (and every static screen)
184
+ // is a plane with its own content-space capture; the worker composes them per glass.
185
+ const scene = elements.contentHost.closest('[data-satin-scene-paint-layer]') ?? document.body;
186
+ const page = dark ? [0, 0, 0] : [242 / 255, 242 / 255, 247 / 255];
187
+ const frame = {
188
+ page,
189
+ resolution,
190
+ appearance,
191
+ covering: runtime.coverageWaiting,
192
+ };
193
+ const planeId = (host) => runtime.planeId(host);
194
+ const windowHint = (id, host) => runtime.windowHint(id, host);
195
+ runtime.preparingPlaneWindows ??= new Map();
196
+ const captureChosen = (id, capture) => runtime.preparingPlaneWindows.set(id, capture);
197
+ // Read only if a plane that does not scroll is measured (windowHint): it reads every region's box.
198
+ let demand;
199
+ runtime.captureDemand = () => (demand ??= sampleDemand(runtime));
200
+ const planes = [];
201
+ // Presentations held for their first glass while these planes are measured: once the renderer
202
+ // holds this backdrop, their nested glass may be drawn over it (presentationFrame.ts).
203
+ const held = heldPresentations();
204
+ for (const host of discoverBackdropHosts(scene, elements.contentHost)) {
205
+ const found = await measurePlane(host, frame, planeId, false, windowHint, undefined, captureChosen);
206
+ if (!current())
207
+ return dropped(runtime, revision);
208
+ if (found)
209
+ planes.push(found);
210
+ }
211
+ // Navigation motion applies to the plane that holds the navigation source. A hidden
212
+ // source (a collapsed sidebar) still backs the chrome's navigation input, but is not
213
+ // part of the screen: with nothing visible the backdrop is the page background alone.
214
+ const visibleContent = findVisibleContentPlane(planes, elements.contentHost);
215
+ const contentPlane = visibleContent ??
216
+ (await measurePlane(elements.contentHost, frame, planeId, true, windowHint, undefined, captureChosen));
217
+ if (!current())
218
+ return dropped(runtime, revision);
219
+ if (!visibleContent)
220
+ planes.push(contentPlane);
221
+ const captures = new Map();
222
+ const reused = new Set();
223
+ let capture;
224
+ const overlay = contextBackdrop(scene.ownerDocument);
225
+ const overlayKey = JSON.stringify(overlay ?? null);
226
+ const contextKey = planeSetContextKey(planes, contentPlane, geometry, page) + overlayKey;
227
+ for (const plane of planes) {
228
+ if (!runtime.damaged.has(plane.id) &&
229
+ runtime.planes.get(plane.id)?.signature === plane.signature &&
230
+ runtime.context)
231
+ continue;
232
+ const retained = runtime.resident.usable(plane.id, appearance, text);
233
+ if (!runtime.damaged.has(plane.id) && retained?.signature === plane.signature) {
234
+ reused.add(plane.id);
235
+ continue;
236
+ }
237
+ const domStarted = glassNow();
238
+ const source = await rasterPlane(runtime, plane, resolution, dark);
239
+ const bitmap = await planeImage(runtime, source, plane.bands && { bands: plane.bands, resolution });
240
+ opened.push(bitmap);
241
+ runtime.planeBytes.set(plane.id, imageBytes(bitmap));
242
+ glassTiming('dom-source', domStarted, plane.id);
243
+ // A photo that has not drawn yet: this capture is used, but it is not current (its signature
244
+ // never matches), and another preparation follows until the photo is in.
245
+ if (captureIncomplete(source)) {
246
+ const attempts = (runtime.incompleteCaptures.get(plane.id) ?? 0) + 1;
247
+ runtime.incompleteCaptures.set(plane.id, attempts);
248
+ if (attempts > 20)
249
+ throw Error(`Glass capture: a photo in ${plane.id} did not draw into the backdrop in 20 captures`);
250
+ runtime.prepareAgain = true;
251
+ captures.set(plane.id, {
252
+ bitmap,
253
+ signature: `incomplete:${attempts}:${plane.signature}`,
254
+ });
255
+ }
256
+ else {
257
+ runtime.incompleteCaptures.delete(plane.id);
258
+ captures.set(plane.id, { bitmap, signature: plane.signature });
259
+ }
260
+ if (!current())
261
+ return dropped(runtime, revision, opened);
262
+ }
263
+ if (reused.size)
264
+ glassTiming('planes-retained', started, () => [...reused].join(','));
265
+ // The top of a long list whose window is further down (productionPinnedTop.ts).
266
+ const pinned = await preparePinnedTops(runtime, planes, captures, frame, text, damageGenerations);
267
+ for (const entry of pinned.images)
268
+ if (entry.image)
269
+ opened.push(entry.image);
270
+ if (!current())
271
+ return dropped(runtime, revision, opened);
272
+ // The context is also rebuilt when only the visible plane SET changed (a popped page's plane
273
+ // leaving): reusing it kept the popped page's context and tab ink regime. Geometry alone (a
274
+ // sheet or route moving) does not rebuild it: that readback cost frames during motion.
275
+ const contextGeometry = visiblePlaneSetKey(planes, runtime.planes, contentPlane, geometry) + overlayKey;
276
+ const cached = !captures.size && reused.size ? runtime.resident.context(contextKey) : undefined;
277
+ let contextBytes = 0;
278
+ const contextUnchanged = !reused.size && contextGeometry === runtime.contextGeometry && runtime.context;
279
+ if (!captures.size && (cached || contextUnchanged)) {
280
+ glassTiming('capture-reused', started);
281
+ if (cached)
282
+ capture = { context: cached };
283
+ }
284
+ else {
285
+ // A plane whose canvas no longer holds its capture (it shared storage, or it returned from
286
+ // retention) is re-rastered for this readback only; the worker keeps its upload.
287
+ for (const plane of planes)
288
+ if (!plane.hidden && runtime.planeCanvases.get(plane.id)?.signature !== plane.signature) {
289
+ await rasterPlane(runtime, plane, resolution, dark);
290
+ if (!current())
291
+ return dropped(runtime, revision, opened);
292
+ }
293
+ const composed = composeMaterialContext(runtime.contextCanvas, planes, runtime.planeCanvases, contentPlane, geometry, frame, materialContextAreas(runtime.currentSpecs(), elements.scroller, geometry.height), overlay?.alpha);
294
+ capture = { context: composed.context };
295
+ contextBytes = composed.bytes;
296
+ }
297
+ if (capture && contextBytes)
298
+ runtime.resident.storeContext(contextKey, capture.context, contextBytes);
299
+ const context = capture?.context ?? runtime.context;
300
+ const baseSpecs = runtime.currentSpecs();
301
+ const specs = baseSpecs.map(spec => spec.id === 'dock' && runtime.minimizeDom ? runtime.minimizeDom.current(spec) : spec);
302
+ const dock = specs.find(spec => spec.id === 'dock');
303
+ if (dock)
304
+ applyTabGlyphContext(dock, elements, context, geometry, appearance);
305
+ // Glyph ink is keyed by the controls' own content and computed paint; unchanged glyphs keep
306
+ // their worker slot. Which ink this revision installs: inkForRevision.
307
+ const backdropChanges = captures.size > 0 || reused.size > 0;
308
+ const deferredInk = new Set();
309
+ const glyphSignatures = new Map(specs.map(spec => {
310
+ const signature = `${fontGeneration}:${glyphSignature(spec, elements, appearance, resolution, geometry)}`;
311
+ const ink = inkForRevision({
312
+ signature,
313
+ installed: runtime.glyphs.get(spec.id),
314
+ kept: !!runtime.keptGlyphs.find(spec.id, signature),
315
+ transformed: !!runtime.minimizeDom?.inkTransformed,
316
+ backdropChanges,
317
+ deferredBefore: runtime.deferredInk.has(spec.id),
318
+ });
319
+ if (ink.deferred)
320
+ deferredInk.add(spec.id);
321
+ return [spec.id, ink.signature];
322
+ }));
323
+ runtime.deferredInk = deferredInk;
324
+ if (deferredInk.size)
325
+ runtime.prepareAgain = true;
326
+ const glyphs = new Map();
327
+ /** Slots whose new ink the renderer still keeps: installed by key, nothing is captured. */
328
+ const keptGlyphs = new Map();
329
+ for (const spec of specs) {
330
+ const signature = glyphSignatures.get(spec.id);
331
+ if (runtime.glyphs.get(spec.id)?.signature === signature)
332
+ continue;
333
+ const kept = runtime.keptGlyphs.find(spec.id, signature);
334
+ if (kept) {
335
+ keptGlyphs.set(spec.id, kept);
336
+ continue;
337
+ }
338
+ const glyphStarted = glassNow();
339
+ let canvas = runtime.glyphCanvases.get(spec.id);
340
+ if (!canvas) {
341
+ canvas = document.createElement('canvas');
342
+ runtime.glyphCanvases.set(spec.id, canvas);
343
+ }
344
+ let glyphCanvas;
345
+ if (spec.id === 'right' && elements.menu) {
346
+ // The menu surface's glyph layer is its trigger ink alone (tab glyphs never apply).
347
+ glyphCanvas = canvas;
348
+ const pixelWidth = Math.ceil(spec.sampleWidth * resolution);
349
+ const pixelHeight = Math.ceil(spec.sampleHeight * resolution);
350
+ if (glyphCanvas.width !== pixelWidth || glyphCanvas.height !== pixelHeight) {
351
+ glyphCanvas.width = pixelWidth;
352
+ glyphCanvas.height = pixelHeight;
353
+ }
354
+ const ink = await captureRegionForeground(elements.menu.trigger, resolution, 0);
355
+ try {
356
+ drawMenuTriggerInk(glyphCanvas, ink, spec, resolution, pixelWidth, pixelHeight);
357
+ }
358
+ finally {
359
+ releaseCaptureCanvas(ink);
360
+ }
361
+ }
362
+ else
363
+ glyphCanvas = await captureProductionGlyphs(elements.chrome.dock, spec, resolution, canvas);
364
+ const bitmap = await createImageBitmap(glyphCanvas);
365
+ opened.push(bitmap);
366
+ glyphs.set(spec.id, bitmap);
367
+ glassTiming('chrome-glyphs', glyphStarted, spec.id);
368
+ if (!current())
369
+ return dropped(runtime, revision, opened);
370
+ }
371
+ // Plane geometry (origin, clip, fill, order) decides composition even when no capture changed.
372
+ const planeGeometry = planes.map(plane => [
373
+ plane.id,
374
+ plane.signature,
375
+ plane.origin,
376
+ plane.clip,
377
+ plane.fill,
378
+ ]);
379
+ const preparedSignature = JSON.stringify([
380
+ planeGeometry,
381
+ contentPlane.id,
382
+ baseSpecs,
383
+ appearance,
384
+ runtime.liftAttached,
385
+ runtime.appRegions.needsBackdrop,
386
+ [...glyphSignatures],
387
+ ]);
388
+ if (!captures.size &&
389
+ !glyphs.size &&
390
+ !keptGlyphs.size &&
391
+ !pinned.images.length &&
392
+ !pinned.release.length &&
393
+ !runtime.resumePending &&
394
+ preparedSignature === runtime.preparedSignature) {
395
+ // Nothing the worker holds would change; only app regions may need a scene refresh.
396
+ // The worker acknowledged exactly this prepared state: a menu surface in it is ready.
397
+ if (baseSpecs.some(spec => spec.id === 'right') &&
398
+ menuGeneration === runtime.menuGeneration &&
399
+ runtime.options.menuEnabled) {
400
+ runtime.menuReady = true;
401
+ runtime.menuSurface.cancel();
402
+ }
403
+ // The renderer already holds this tab's backdrop: its regions need not stay held.
404
+ runtime.appRegions.releaseHeldRegions();
405
+ confirmHeldSources(held);
406
+ runtime.coverageInstalled();
407
+ await runtime.appRegions.sourceChanged(appearance);
408
+ if (!(await commitPreparedAppearance(runtime, appearance, current)))
409
+ return;
410
+ if (!(await commitPreparedContent(runtime, current)))
411
+ return;
412
+ runtime.options.onSourceReady?.(elements.scroller);
413
+ runtime.windowsCommitted();
414
+ glassTiming('production-reused', started, () => JSON.stringify({
415
+ tab: document.querySelector('[role="tab"][aria-selected="true"]')?.textContent?.trim(),
416
+ planes: planes.map(planeDiagnostics),
417
+ }));
418
+ runtime.record({
419
+ kind: 'prepared',
420
+ revision,
421
+ at: performance.now(),
422
+ regions: specs.map(spec => spec.id),
423
+ capture: 'reused',
424
+ planes: planes.map(plane => plane.id),
425
+ planeInfo: planes.map(planeDiagnostics),
426
+ });
427
+ return;
428
+ }
429
+ if (!current())
430
+ return dropped(runtime, revision, opened);
431
+ if (fontGeneration !== (runtime.fontGeneration ?? 0))
432
+ runtime.prepareAgain = true;
433
+ // Measurement and readback awaited while Search (or any glass) could move. Never
434
+ // install obsolete bands and rely on a later coverage acknowledgement to repair them.
435
+ const uncovered = uncoveredCapturePlane(planes, sampleDemand(runtime), resolution);
436
+ if (uncovered) {
437
+ runtime.prepareAgain = true;
438
+ runtime.pendingRecentre = true;
439
+ return dropped(runtime, revision, opened, `capture demand moved: ${uncovered}`);
440
+ }
441
+ const commitStarted = traceStageStart();
442
+ // Commit: one synchronous block, so nothing (navigation included) can interleave
443
+ // its own source messages between this revision's transport numbers.
444
+ // Regions of unselected tabs are held on their own backdrop; the selected tab's resume.
445
+ const suspendedRegions = runtime.appRegions.inactiveRegionIds();
446
+ discardChangedPinnedTops(runtime, pinned, opened);
447
+ const committed = commitPlaneSet(runtime, {
448
+ planes,
449
+ contentPlane,
450
+ captures,
451
+ reused,
452
+ capture,
453
+ contextKey,
454
+ geometry,
455
+ resolution,
456
+ appearance,
457
+ text,
458
+ damageGenerations,
459
+ });
460
+ const { removed, retain, restore, unretain } = committed;
461
+ droppedCanvases.push(...committed.droppedCanvases);
462
+ const installed = runtime.installedSource;
463
+ const batch = runtime.nextTransport();
464
+ // A slot that takes other ink leaves its own with the renderer (KeptGlyphs), to come back to.
465
+ const keep = [];
466
+ const unkeep = [];
467
+ const installedGlyphs = () => [...runtime.glyphs.values()].map(glyph => glyph.key);
468
+ for (const id of [...glyphs.keys(), ...keptGlyphs.keys()]) {
469
+ const outgoing = runtime.glyphs.get(id);
470
+ const signature = glyphSignatures.get(id);
471
+ const key = keptGlyphs.get(id) ?? `production-glyph:${id}:${++runtime.glyphRevision}`;
472
+ runtime.glyphs.set(id, { signature, key });
473
+ runtime.keptGlyphs.used(id, signature);
474
+ const kept = runtime.keptGlyphs.replace(id, outgoing, installedGlyphs());
475
+ keep.push(...kept.keep);
476
+ unkeep.push(...kept.unkeep);
477
+ }
478
+ // The captures whose bytes stay on the page, and the pinned tops this revision leaves.
479
+ for (const id of [...removed, ...reused])
480
+ runtime.planeImages.delete(id);
481
+ for (const [id, { bitmap }] of captures)
482
+ runtime.planeImages.set(id, bitmap);
483
+ runtime.pinnedTops = pinned.next;
484
+ runtime.pinnedOrphans.clear();
485
+ const images = [...sourceImages(runtime, captures, glyphs, keptGlyphs.keys()), ...pinned.images];
486
+ const layers = backdropLayers(planes, runtime.planes, resolution, runtime.pinnedTops);
487
+ if (overlay) {
488
+ const canvas = document.createElement('canvas');
489
+ canvas.width = canvas.height = 1;
490
+ const context = canvas.getContext('2d');
491
+ if (!context)
492
+ throw Error('Context backdrop has no 2D context');
493
+ context.fillStyle = `rgb(0 0 0 / ${overlay.alpha})`;
494
+ context.fillRect(0, 0, 1, 1);
495
+ const image = await createImageBitmap(canvas);
496
+ opened.push(image);
497
+ if (!current())
498
+ return dropped(runtime, revision, opened);
499
+ const key = `context-backdrop:${overlayKey}`;
500
+ images.push({ slot: 'context-backdrop', key, image });
501
+ layers.push({
502
+ id: 'context-backdrop',
503
+ key,
504
+ owner: overlay.owner,
505
+ menuOverlay: true,
506
+ width: geometry.width,
507
+ height: geometry.height,
508
+ resolution: 1,
509
+ origin: { x: 0, y: 0 },
510
+ scroll: { x: 0, y: 0 },
511
+ clip: [0, 0, geometry.width, geometry.height],
512
+ fill: [0, 0, 0, overlay.alpha],
513
+ });
514
+ }
515
+ opened.length = 0;
516
+ syncPlaneScrolls(runtime, planes, elements.scroller);
517
+ // The finished navigation's atlas is no longer sampled: rasters that still show it hold their own leases.
518
+ const release = [
519
+ ...(runtime.installedNavigation ? ['navigation', 'navigation-glyphs'] : []),
520
+ ...removed.map(id => `plane:${id}`),
521
+ ...pinned.release,
522
+ ...(!overlay ? ['context-backdrop'] : []),
523
+ ];
524
+ runtime.installedNavigation = undefined;
525
+ const edges = readScrollEdges(scene, dark);
526
+ runtime.installedEdges = JSON.stringify(edges);
527
+ runtime.appRegions.sourceWillChange(batch);
528
+ const sent = [
529
+ runtime.post({
530
+ type: 'source-images',
531
+ revision: batch,
532
+ images,
533
+ release,
534
+ keep,
535
+ unkeep,
536
+ layers,
537
+ suspendedRegions,
538
+ edges,
539
+ retain,
540
+ restore,
541
+ unretain,
542
+ backdrop: runtime.appRegions.needsBackdrop
543
+ ? {
544
+ regions: true,
545
+ key: `${installed.key}:front`,
546
+ revision: installed.revision,
547
+ appearance,
548
+ reducedMotion: matchMedia('(prefers-reduced-motion: reduce)').matches,
549
+ resolution,
550
+ }
551
+ : { regions: false },
552
+ }, images.flatMap(entry => (entry.image ? [entry.image] : []))),
553
+ ];
554
+ // Only accepted source batches release a held presentation. Coverage waiters also retry
555
+ // after rejection so cancellation and the bounded coverage deadline remain live.
556
+ const navigationCoverage = runtime.navigationCoverage;
557
+ sent[0].then(() => {
558
+ if (!runtime.navigationActive && runtime.navigationCoverage === navigationCoverage)
559
+ runtime.navigationCoverage = undefined;
560
+ confirmHeldSources(held);
561
+ runtime.coverageInstalled();
562
+ }, () => runtime.coverageInstalled());
563
+ // The regions' scene follows the renderer's acknowledgement of the batch above; if the renderer
564
+ // rejects it, held regions stay held (RegionBridge.sourceInstalled).
565
+ sent.push(runtime.appRegions.sourceInstalled(sent[0], appearance));
566
+ const trigger = runtime.triggerValues(elements.scroller.scrollTop);
567
+ const installs = placeSurfaceCanvases(baseSpecs, geometry, {
568
+ chrome: runtime.canvas,
569
+ menu: runtime.menuCanvas,
570
+ chromeLift: runtime.liftCanvas,
571
+ menuLift: runtime.menuLiftCanvas,
572
+ }, runtime.liftAttached, runtime.liftViewports);
573
+ const menuTrack = runtime.menuTrackSince('right', started);
574
+ const barTrack = runtime.menuTrackSince('region:bar-trigger', started);
575
+ const now = glassNow();
576
+ runtime.record({
577
+ kind: 'prepare-menu',
578
+ revision,
579
+ started: Math.round(started - performance.timeOrigin),
580
+ tracked: !!menuTrack,
581
+ });
582
+ installs.push(...surfaceInstalls(runtime, specs, {
583
+ menuTrack,
584
+ barTrack,
585
+ now,
586
+ appearance,
587
+ sourceKey: installed.key,
588
+ contentLayer: contentPlane.id,
589
+ sourceScrollY: elements.scroller.scrollTop,
590
+ trigger,
591
+ geometry,
592
+ resolution,
593
+ }));
594
+ // One GPU fence and one present for the whole batch: per-install fences serialized
595
+ // the worker queue for tens of milliseconds and starved concurrent motion frames.
596
+ installs.forEach((install, i) => {
597
+ const last = i === installs.length - 1;
598
+ sent.push(runtime.post(last ? install : { ...install, settle: false }));
599
+ });
600
+ // Queued after the installs: a run that ended while they were in flight still settles on its end state.
601
+ for (const track of [menuTrack, barTrack])
602
+ if (track)
603
+ runtime.fire({ type: 'region-track', track });
604
+ sent.push(runtime.post({ type: 'source-scroll', y: elements.scroller.scrollTop }));
605
+ runtime.searchGeometry();
606
+ // Visibility restoration already presented retained planes. This completes only
607
+ // the background source refresh.
608
+ const resuming = runtime.resumePending;
609
+ // A held menu run waits until the worker has acknowledged its surface's install, not only until it is posted.
610
+ const installsMenu = specs.some(spec => spec.id === 'right');
611
+ // A new menu surface install is pending until the worker acknowledges it.
612
+ if (installsMenu) {
613
+ runtime.menuStage = 'install-ack';
614
+ runtime.menuReady = false;
615
+ }
616
+ traceStage('prepare-commit-post', commitStarted);
617
+ // Released once the worker has acknowledged (or rejected) the batch. The release is a
618
+ // synchronous GPU-process round trip that waits behind whatever the GPU process is doing: 80 ms
619
+ // while the worker was still uploading this batch (which also held back the new tab's first
620
+ // paint), 1-2 ms once it is idle. A worker that never answers must not keep them allocated:
621
+ // they are released after a fallback delay. A failure before this point releases them in the
622
+ // catch below.
623
+ const acknowledged = Promise.all(sent);
624
+ releaseCaptureCanvasesAfter(acknowledged, droppedCanvases);
625
+ const acknowledgeStarted = traceStageStart();
626
+ await acknowledged;
627
+ traceStage('prepare-acknowledge', acknowledgeStarted);
628
+ if (!current())
629
+ return;
630
+ if (!(await commitPreparedAppearance(runtime, appearance, current)))
631
+ return;
632
+ if (!(await commitPreparedContent(runtime, current)))
633
+ return;
634
+ if (installsMenu && menuGeneration === runtime.menuGeneration && runtime.options.menuEnabled) {
635
+ runtime.menuReady = true;
636
+ runtime.menuSurface.cancel();
637
+ }
638
+ if (resuming) {
639
+ runtime.resumePending = false;
640
+ glassTiming('resume-ready', runtime.resumeAt || started);
641
+ }
642
+ runtime.preparedSignature = preparedSignature;
643
+ runtime.windowsCommitted();
644
+ glassTiming('production-prepared', started, () => JSON.stringify({
645
+ tab: document.querySelector('[role="tab"][aria-selected="true"]')?.textContent?.trim(),
646
+ planes: planes.map(planeDiagnostics),
647
+ }));
648
+ runtime.options.onSourceReady?.(elements.scroller);
649
+ runtime.options.onPresented?.(true);
650
+ runtime.record({
651
+ kind: 'prepared',
652
+ revision,
653
+ at: performance.now(),
654
+ regions: specs.map(spec => spec.id),
655
+ capture: captures.size ? [...captures.keys()].join(',') : 'unchanged',
656
+ planes: planes.map(plane => plane.id),
657
+ planeInfo: planes.map(planeDiagnostics),
658
+ });
659
+ }
660
+ catch (error) {
661
+ // A failed transfer leaves the worker's slots unknown: the next revision resends everything.
662
+ for (const bitmap of opened)
663
+ bitmap.close();
664
+ releaseCaptureCanvases(droppedCanvases);
665
+ runtime.installedSource = undefined;
666
+ runtime.planes.clear();
667
+ runtime.dropRetained();
668
+ for (const id of runtime.pinnedTops.keys())
669
+ runtime.pinnedOrphans.add(id);
670
+ runtime.pinnedTops.clear();
671
+ runtime.planeImages.clear();
672
+ runtime.glyphs.clear();
673
+ runtime.keptGlyphs.reset();
674
+ runtime.preparedSignature = '';
675
+ throw error;
676
+ }
677
+ }
678
+ /** The image of a plane's capture canvas that the renderer installs.
679
+ *
680
+ * A document-owned renderer gets the canvas's bytes, read back on the page (SourcePixels.prepare):
681
+ * no bitmap is taken from the canvas. A bitmap of an accelerated canvas made the canvas cost about
682
+ * 5 ms per megabyte to release or redraw, and staging that bitmap in the upload worker held back
683
+ * every frame of the page meanwhile; with neither, a capture is done inside the animation frame
684
+ * that started it, before the frame's paint. A worker-owned renderer still gets a bitmap, which is
685
+ * what crosses to its thread. */
686
+ async function planeImage(runtime, source, banded) {
687
+ if (!runtime.client.documentOwned) {
688
+ const bitmapStarted = traceStageStart();
689
+ const bitmap = await createImageBitmap(source);
690
+ traceStage('capture-bitmap', bitmapStarted, () => `${bitmap.width}x${bitmap.height}`);
691
+ return bitmap;
692
+ }
693
+ const pixelsStarted = traceStageStart();
694
+ const image = pixelImage(source.width, source.height);
695
+ if (banded) {
696
+ // Only the bands were drawn and need readback; FrameGraph initializes upload gaps.
697
+ const context = source.getContext('2d', CAPTURE_CONTEXT);
698
+ if (!context)
699
+ throw Error(`Glass capture canvas ${source.width}x${source.height} has no 2D context`);
700
+ const readbackStarted = glassNow();
701
+ keepSourceBands(image, banded.bands.map(band => {
702
+ const row = Math.max(0, Math.floor(band.top * banded.resolution));
703
+ const rows = Math.min(source.height, Math.ceil(band.bottom * banded.resolution)) - row;
704
+ return { row, rows, bytes: context.getImageData(0, row, source.width, rows).data };
705
+ }));
706
+ glassTiming('source-readback', readbackStarted, () => `${source.width}x${source.height} banded`);
707
+ traceStage('source-pixels', pixelsStarted, () => `${image.width}x${image.height} banded`);
708
+ return image;
709
+ }
710
+ await runtime.sourcePixels.prepare(image, source);
711
+ traceStage('source-pixels', pixelsStarted, () => `${image.width}x${image.height}`);
712
+ return image;
713
+ }
714
+ /** Bytes a plane's image keeps on the page: its bands, or all of it. */
715
+ function imageBytes(image) {
716
+ const bands = takeSourceBands(image);
717
+ return bands
718
+ ? bands.reduce((sum, band) => sum + band.bytes.byteLength, 0)
719
+ : image.width * image.height * 4;
720
+ }
721
+ /** Raster a plane into its reusable main-thread canvas. */
722
+ async function rasterPlane(runtime, plane, resolution, dark) {
723
+ let entry = runtime.planeCanvases.get(plane.id);
724
+ if (!entry) {
725
+ entry = { canvas: document.createElement('canvas') };
726
+ runtime.planeCanvases.set(plane.id, entry);
727
+ }
728
+ const canvas = await rasterProductionSource(entry.canvas, plane.measured, plane.width, plane.height, resolution, dark, cssColor(plane.fill));
729
+ entry.signature = plane.signature;
730
+ return canvas;
731
+ }
732
+ /** Each tab's glyph colours follow the material context under its slot of the dock. */
733
+ function applyTabGlyphContext(dock, elements, context, geometry, appearance) {
734
+ const tabs = [...elements.chrome.dock.querySelectorAll('[role="tab"]')];
735
+ tabs.forEach((tab, i) => {
736
+ const sample = context.sample(dock.frameX + 10.5 + ((dock.frameWidth - 20) / tabs.length) * (i + 0.5), dock.frameY + dock.frameHeight / 2 + elements.scroller.scrollTop, TAB_CONTEXT_RADIUS, elements.scroller.scrollTop, elements.scroller.scrollTop + geometry.height);
737
+ if (!sample)
738
+ return;
739
+ const tint = getComputedStyle(tab).getPropertyValue('--satin-tab-tint').trim();
740
+ for (const [property, value] of Object.entries(tabGlyphContextStyle(appearance, sample.rgb, tint)))
741
+ tab.style.setProperty(property, value);
742
+ });
743
+ }
744
+ /** Everything a surface's glyph ink depends on: its controls' content and computed paint, the
745
+ * sample envelope and the trigger outline (menu) or tab centres (dock). */
746
+ export function glyphSignature(spec, elements, appearance, resolution, geometry) {
747
+ const host = spec.id === 'dock' ? elements.chrome.dock : (elements.menu?.trigger ?? elements.chrome.right);
748
+ const controls = spec.id === 'dock' ? [...host.querySelectorAll('[role="tab"]')] : [host];
749
+ const first = spec.shape.first;
750
+ return JSON.stringify([
751
+ appearance,
752
+ resolution,
753
+ geometry.width,
754
+ geometry.height,
755
+ spec.sampleWidth,
756
+ spec.sampleHeight,
757
+ spec.sampleInsetX,
758
+ spec.sampleInsetY,
759
+ spec.id === 'right'
760
+ ? [first.centerX, first.centerY, first.halfWidth, first.halfHeight]
761
+ : geometry.tabBarCentres,
762
+ controls.map(control => {
763
+ const style = getComputedStyle(control);
764
+ return [
765
+ control.textContent,
766
+ [...control.querySelectorAll('svg')].map(svg => svg.outerHTML),
767
+ style.font,
768
+ style.color,
769
+ style.getPropertyValue('--tab-selected-icon'),
770
+ style.getPropertyValue('--tab-selected-label'),
771
+ inkBoxes(control),
772
+ ];
773
+ }),
774
+ ]);
775
+ }
776
+ /** The boxes of a control that its ink capture paints (captureRegionForeground draws every
777
+ * descendant that has a background): where each is, its colour, corner radius and mask. A dot
778
+ * badge is one of them and has no text, so the text of the control does not tell it. */
779
+ function inkBoxes(control) {
780
+ const origin = control.getBoundingClientRect();
781
+ const sixtyFourth = (value) => Math.round(value * 64) / 64;
782
+ const boxes = [];
783
+ for (const child of control.querySelectorAll('*')) {
784
+ if (child.closest('svg') || child.tagName === 'CANVAS')
785
+ continue;
786
+ const style = getComputedStyle(child);
787
+ const colour = style.backgroundColor;
788
+ if (!colour || colour === 'rgba(0, 0, 0, 0)' || colour === 'transparent')
789
+ continue;
790
+ const rect = child.getBoundingClientRect();
791
+ boxes.push([
792
+ sixtyFourth(rect.left - origin.left),
793
+ sixtyFourth(rect.top - origin.top),
794
+ sixtyFourth(rect.width),
795
+ sixtyFourth(rect.height),
796
+ colour,
797
+ style.borderRadius,
798
+ style.opacity,
799
+ style.visibility,
800
+ style.maskImage || style.webkitMaskImage || '',
801
+ ]);
802
+ }
803
+ return boxes;
804
+ }
805
+ /** Draw the menu trigger's captured ink at the trigger's place in the surface's sample envelope. */
806
+ function drawMenuTriggerInk(glyphCanvas, ink, spec, resolution, pixelWidth, pixelHeight) {
807
+ const first = spec.shape.first;
808
+ const context = glyphCanvas.getContext('2d', CAPTURE_CONTEXT);
809
+ context.setTransform(1, 0, 0, 1, 0, 0);
810
+ context.clearRect(0, 0, pixelWidth, pixelHeight);
811
+ context.scale(resolution, resolution);
812
+ context.drawImage(ink, spec.sampleInsetX + first.centerX - first.halfWidth, spec.sampleInsetY + first.centerY - first.halfHeight, first.halfWidth * 2, first.halfHeight * 2);
813
+ }
814
+ /** The sample rectangle of every glass surface on screen, in viewport points: the chrome surfaces
815
+ * (`raster.ts` backdropRect) and the app regions. */
816
+ function sampleDemand(runtime) {
817
+ const chrome = runtime
818
+ .currentSpecs()
819
+ .map(spec => [
820
+ spec.frameX - spec.sampleInsetX,
821
+ spec.frameY - spec.sampleInsetY,
822
+ spec.sampleWidth,
823
+ spec.sampleHeight,
824
+ ]);
825
+ return [...chrome, ...runtime.appRegions.sampleRects()];
826
+ }
827
+ /** Superseded work: close the bitmaps it opened and record the drop. */
828
+ function dropped(runtime, revision, opened = [], reason) {
829
+ for (const bitmap of opened)
830
+ bitmap.close();
831
+ opened.length = 0;
832
+ runtime.record({ kind: 'superseded', revision, at: performance.now(), reason });
833
+ }