@mkbabb/glass-ui 4.1.0 → 4.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (430) hide show
  1. package/dist/{CardAction-8whJrLWt.js → CardAction-DlVP2evz.js} +58 -54
  2. package/dist/{CommandShortcut-D3yxgHNn.js → CommandShortcut-By-VQcLO.js} +3 -3
  3. package/dist/{ConfiguratorRow-CaP7U3ZA.js → ConfiguratorRow-YMXdINHx.js} +3 -3
  4. package/dist/{ContextMenuContent-B3ZsheLV.js → ContextMenuContent-CMWn6huB.js} +1 -1
  5. package/dist/{ContextMenuSubContent-DDRID3qC.js → ContextMenuSubContent-DvwWCUc0.js} +1 -1
  6. package/dist/{DataTable-Bc9kUtu_.js → DataTable-C4tG3eIJ.js} +4 -4
  7. package/dist/DialogContent-D8U9ZfWS.js +121 -0
  8. package/dist/{DialogScrollContent-TTuovQst.js → DialogScrollContent-BMekN7gq.js} +1 -1
  9. package/dist/{FadingScroll-DLRbH5Xr.js → FadingScroll-P8B30rAD.js} +1 -1
  10. package/dist/{HoverCardContent-Bel1gdLZ.js → HoverCardContent-DAmGYglo.js} +1 -1
  11. package/dist/{HoverPopover-BcIxvyqZ.js → HoverPopover-DYpBOzzF.js} +1 -1
  12. package/dist/{IconChip-DhbdGdFQ.js → IconChip-CQa7XZYc.js} +7 -5
  13. package/dist/{IconTooltip-B0zimd2H.js → IconTooltip-_df8M3xm.js} +1 -1
  14. package/dist/{Input-Cg9DF62r.js → Input-CyU4_hIC.js} +2 -2
  15. package/dist/{MetricBadge-RHdBP72w.js → MetricBadge-DQt_dGah.js} +1 -1
  16. package/dist/{Notification-CphK7AAm.js → Notification-BlSPJhtZ.js} +1 -1
  17. package/dist/{NumberFieldContent-D8cXeyO4.js → NumberFieldContent-Z3VxGu_6.js} +3 -3
  18. package/dist/PagerDots-CYlqVFd4.js +196 -0
  19. package/dist/PaperBackdrop-DYWgrnh8.js +42 -0
  20. package/dist/{PopoverContent-DL7E6vJP.js → PopoverContent-BuKyHZSz.js} +2 -2
  21. package/dist/{Progress-CnqB7gLm.js → Progress-C9SsdwIZ.js} +1 -1
  22. package/dist/{ScrollingText-CTZbA_cG.js → ScrollingText-DY3W1Jfh.js} +2 -2
  23. package/dist/{SelectScrollDownButton-DAKCBEdW.js → SelectScrollDownButton-3mFHX_R-.js} +15 -12
  24. package/dist/{Switch-B8RscmRu.js → Switch-uf-UKPA2.js} +1 -1
  25. package/dist/{Toaster-D9qIHjBI.js → Toaster-ozrsR4mP.js} +1 -1
  26. package/dist/{ToggleGroupItem-BLtr3TJq.js → ToggleGroupItem-BpzaVzNm.js} +4 -4
  27. package/dist/{TooltipProvider-BJ_Y5EGX.js → TooltipProvider-QQVM_80r.js} +1 -1
  28. package/dist/animated-digit.js +2 -2
  29. package/dist/api/index.d.ts +1 -0
  30. package/dist/api/types-extra.d.ts +3 -1
  31. package/dist/api.js +2 -2
  32. package/dist/aurora.js +163 -131
  33. package/dist/badge-Bt14yURi.js +72 -0
  34. package/dist/badge.js +1 -1
  35. package/dist/border-progress.js +1 -1
  36. package/dist/button-D1W9PrzI.js +130 -0
  37. package/dist/button.js +1 -1
  38. package/dist/canvas.js +1 -1
  39. package/dist/card.js +1 -1
  40. package/dist/carousel.js +227 -98
  41. package/dist/chipVariants-BJQ0I2kB.js +18 -0
  42. package/dist/collapsible.js +1 -1
  43. package/dist/color.js +1 -1
  44. package/dist/command.js +1 -1
  45. package/dist/components/custom/aurora/composables/glSetup.d.ts +1 -1
  46. package/dist/components/custom/aurora/composables/uniformBridgeWGPU.d.ts +1 -1
  47. package/dist/components/custom/aurora/constants/presets.d.ts +29 -0
  48. package/dist/components/custom/aurora/constants/shaders/aurora.wgsl.d.ts +1 -1
  49. package/dist/components/custom/aurora/index.d.ts +1 -1
  50. package/dist/components/custom/concentric/Concentric.vue.d.ts +15 -12
  51. package/dist/components/custom/concentric/composables/concentricGLSetup.d.ts +8 -3
  52. package/dist/components/custom/concentric/composables/concentricWGPUSetup.d.ts +8 -4
  53. package/dist/components/custom/concentric/composables/levelField.d.ts +50 -0
  54. package/dist/components/custom/concentric/composables/uniformBridgeWGPU.d.ts +7 -4
  55. package/dist/components/custom/concentric/composables/useConcentric.d.ts +3 -3
  56. package/dist/components/custom/concentric/constants.d.ts +62 -41
  57. package/dist/components/custom/concentric/index.d.ts +2 -2
  58. package/dist/components/custom/concentric/shaders/concentric.glsl.d.ts +2 -2
  59. package/dist/components/custom/concentric/shaders/concentric.wgsl.d.ts +1 -1
  60. package/dist/components/custom/configurator/Configurator.vue.d.ts +23 -2
  61. package/dist/components/custom/configurator/index.d.ts +1 -1
  62. package/dist/components/custom/dock/DockDropdownTrigger.vue.d.ts +4 -3
  63. package/dist/components/custom/dock/DockIconButton.vue.d.ts +10 -0
  64. package/dist/components/custom/dock/DockPopoverTrigger.vue.d.ts +19 -0
  65. package/dist/components/custom/dock/DockStack.vue.d.ts +35 -22
  66. package/dist/components/custom/dock/GlassDock.vue.d.ts +19 -3
  67. package/dist/components/custom/dock/composables/dockMorphContext.d.ts +18 -32
  68. package/dist/components/custom/dock/composables/dockMorphMeasure.d.ts +76 -145
  69. package/dist/components/custom/dock/composables/index.d.ts +1 -0
  70. package/dist/components/custom/dock/composables/railProjection.d.ts +45 -0
  71. package/dist/components/custom/dock/composables/useDockContextSilhouette.d.ts +192 -0
  72. package/dist/components/custom/dock/composables/useDockFission.d.ts +158 -0
  73. package/dist/components/custom/dock/composables/useDockItemDrag.d.ts +18 -0
  74. package/dist/components/custom/dock/composables/useDockShellProps.d.ts +38 -0
  75. package/dist/components/custom/dock/constants.d.ts +14 -3
  76. package/dist/components/custom/dock/index.d.ts +3 -0
  77. package/dist/components/custom/dot-flow-field/composables/flowField.d.ts +21 -0
  78. package/dist/components/custom/dot-flow-field/composables/flowGLProgram.d.ts +8 -0
  79. package/dist/components/custom/dot-flow-field/composables/flowSetupGL.d.ts +9 -0
  80. package/dist/components/custom/dot-flow-field/composables/flowSetupGLFlow.d.ts +12 -0
  81. package/dist/components/custom/dot-flow-field/composables/flowSetupWGPU.d.ts +7 -0
  82. package/dist/components/custom/dot-flow-field/composables/uniformBridgeWGPU.d.ts +28 -2
  83. package/dist/components/custom/dot-flow-field/composables/useFlowParticles.d.ts +18 -17
  84. package/dist/components/custom/dot-flow-field/constants.d.ts +51 -0
  85. package/dist/components/custom/dot-flow-field/index.d.ts +1 -1
  86. package/dist/components/custom/dot-flow-field/shaders/flow-field.compute.wgsl.d.ts +1 -1
  87. package/dist/components/custom/dot-flow-field/shaders/flow-field.glsl.d.ts +29 -0
  88. package/dist/components/custom/dot-flow-field/shaders/flow-field.render.wgsl.d.ts +2 -1
  89. package/dist/components/custom/dot-matrix/composables/uniformBridgeWGPU.d.ts +10 -1
  90. package/dist/components/custom/dot-matrix/composables/useDotSphere.d.ts +7 -0
  91. package/dist/components/custom/dot-matrix/constants.d.ts +14 -0
  92. package/dist/components/custom/dot-matrix/index.d.ts +1 -1
  93. package/dist/components/custom/dot-matrix/shaders/dot-matrix.glsl.d.ts +2 -2
  94. package/dist/components/custom/dot-matrix/shaders/dot-matrix.wgsl.d.ts +1 -1
  95. package/dist/components/custom/fourier-field/FourierField.vue.d.ts +4 -0
  96. package/dist/components/custom/fourier-field/composables/fourierFieldGLSetup.d.ts +9 -0
  97. package/dist/components/custom/fourier-field/composables/fourierFieldWGPUSetup.d.ts +11 -0
  98. package/dist/components/custom/fourier-field/composables/uniformBridgeWGPU.d.ts +16 -1
  99. package/dist/components/custom/fourier-field/composables/useFourierField.d.ts +22 -1
  100. package/dist/components/custom/fourier-field/constants.d.ts +53 -0
  101. package/dist/components/custom/fourier-field/shaders/fourier-field.glsl.d.ts +1 -1
  102. package/dist/components/custom/fourier-field/shaders/fourier-field.render.wgsl.d.ts +1 -1
  103. package/dist/components/custom/goo-blob/composables/easing.d.ts +1 -0
  104. package/dist/components/custom/goo-blob/composables/useBlobSatellites.d.ts +1 -0
  105. package/dist/components/custom/goo-blob/constants.d.ts +26 -1
  106. package/dist/components/custom/goo-blob/shaders/metaball-uniforms.glsl.d.ts +1 -1
  107. package/dist/components/custom/goo-blob/shaders/metaball.wgsl.d.ts +1 -1
  108. package/dist/components/custom/goo-blob/types.d.ts +50 -1
  109. package/dist/components/custom/goo-dot-matrix/composables/gooDotSetup.d.ts +32 -3
  110. package/dist/components/custom/goo-dot-matrix/composables/uniformBridgeWGPU.d.ts +14 -4
  111. package/dist/components/custom/goo-dot-matrix/constants.d.ts +55 -16
  112. package/dist/components/custom/goo-dot-matrix/index.d.ts +1 -1
  113. package/dist/components/custom/goo-dot-matrix/shaders/goo-dot.frag.d.ts +2 -0
  114. package/dist/components/custom/goo-dot-matrix/shaders/goo-dot.wgsl.d.ts +1 -0
  115. package/dist/components/custom/goo-filter/GooFilter.vue.d.ts +22 -0
  116. package/dist/components/custom/goo-filter/index.d.ts +1 -0
  117. package/dist/components/custom/handmark/brush.d.ts +17 -17
  118. package/dist/components/custom/handmark/constants.d.ts +28 -8
  119. package/dist/components/custom/handmark/geometry.d.ts +34 -1
  120. package/dist/components/custom/handmark/index.d.ts +1 -1
  121. package/dist/components/custom/icon-chip/types.d.ts +10 -0
  122. package/dist/components/custom/paper-backdrop/PaperBackdrop.vue.d.ts +18 -0
  123. package/dist/components/custom/paper-grid/composables/paperGrid.d.ts +44 -29
  124. package/dist/components/custom/paper-grid/composables/paperGridGLSetup.d.ts +2 -0
  125. package/dist/components/custom/paper-grid/composables/paperGridWGPUSetup.d.ts +3 -1
  126. package/dist/components/custom/paper-grid/composables/uniformBridgeWGPU.d.ts +2 -2
  127. package/dist/components/custom/paper-grid/constants.d.ts +44 -6
  128. package/dist/components/custom/paper-grid/index.d.ts +2 -2
  129. package/dist/components/custom/paper-grid/shaders/paper-grid.glsl.d.ts +1 -1
  130. package/dist/components/custom/paper-grid/shaders/paper-grid.wgsl.d.ts +1 -1
  131. package/dist/components/custom/selectable-chip/chipVariants.d.ts +39 -0
  132. package/dist/components/custom/selectable-chip/selectableChipVariants.d.ts +12 -20
  133. package/dist/components/custom/tabs/constants.d.ts +16 -8
  134. package/dist/components/custom/timeline/ScrubberTimeline.vue.d.ts +16 -0
  135. package/dist/components/custom/timeline/geometry.d.ts +0 -8
  136. package/dist/components/custom/toggle-chip/index.d.ts +15 -4
  137. package/dist/components/custom/watercolor-dot/WatercolorDot.vue.d.ts +12 -10
  138. package/dist/components/ui/_shared/useSurfaceAxis.d.ts +17 -3
  139. package/dist/components/ui/badge/Badge.vue.d.ts +14 -0
  140. package/dist/components/ui/badge/index.d.ts +1 -0
  141. package/dist/components/ui/button/Button.vue.d.ts +1 -0
  142. package/dist/components/ui/card/Card.vue.d.ts +1 -1
  143. package/dist/components/ui/card/ScrollCard.vue.d.ts +1 -1
  144. package/dist/components/ui/carousel/CarouselContent.vue.d.ts +2 -4
  145. package/dist/components/ui/dialog/DialogContent.vue.d.ts +9 -0
  146. package/dist/components/ui/drawer/Drawer.vue.d.ts +33 -14
  147. package/dist/components/ui/drawer/constants.d.ts +8 -6
  148. package/dist/components/ui/drawer/index.d.ts +12 -2
  149. package/dist/components/ui/select/SelectContent.vue.d.ts +9 -0
  150. package/dist/components/ui/slider/Slider.vue.d.ts +9 -0
  151. package/dist/composables/dom/index.d.ts +1 -0
  152. package/dist/composables/dom/useDragVelocity.d.ts +46 -0
  153. package/dist/composables/glass/wave/index.d.ts +4 -0
  154. package/dist/composables/glass/wave/waveField.d.ts +115 -0
  155. package/dist/composables/glass/wave/waveField.glsl.d.ts +1 -0
  156. package/dist/composables/glass/wave/waveField.wgsl.d.ts +1 -0
  157. package/dist/composables/glass/webgl/createCanvasLifecycle.d.ts +95 -2
  158. package/dist/composables/glass/webgl/useWebGLCanvas.d.ts +40 -2
  159. package/dist/composables/glass/webgpu/index.d.ts +1 -0
  160. package/dist/composables/glass/webgpu/useGpuSubstrate.d.ts +37 -0
  161. package/dist/composables/glass/webgpu/useWebGPUCanvas.d.ts +49 -2
  162. package/dist/composables/glass/webgpu/webgpuDevice.d.ts +1 -1
  163. package/dist/composables/motion/core/index.d.ts +4 -0
  164. package/dist/composables/motion/core/useHaptic.d.ts +48 -0
  165. package/dist/composables/motion/core/writeVelocityWeight.d.ts +31 -0
  166. package/dist/composables/motion/index.d.ts +2 -0
  167. package/dist/composables/motion/springPresets.d.ts +16 -17
  168. package/dist/composables/motion/suite.d.ts +2 -2
  169. package/dist/composables/motion/useBloomUp.d.ts +97 -0
  170. package/dist/composables/motion/useCelebrationBurst.d.ts +50 -0
  171. package/dist/composables/motion/useDockCtaReceive.d.ts +10 -28
  172. package/dist/composables/motion/useGooMorph.d.ts +72 -0
  173. package/dist/composables/motion/useLiquidFlex.d.ts +18 -0
  174. package/dist/composables/motion/useLiquidMorph.d.ts +108 -0
  175. package/dist/composables/motion/useLiquidPress.d.ts +12 -0
  176. package/dist/composables/motion/useLiquidReveal.d.ts +7 -4
  177. package/dist/composables/motion/useMorphField.d.ts +157 -0
  178. package/dist/composables/motion/useScrollPin.d.ts +49 -0
  179. package/dist/composables/motion/useScrollScene.d.ts +67 -0
  180. package/dist/concentric.js +532 -563
  181. package/dist/configurator.js +2 -2
  182. package/dist/confirm-dialog.js +3 -3
  183. package/dist/constellation.js +4 -4
  184. package/dist/context-menu.js +2 -2
  185. package/dist/controls.js +2 -2
  186. package/dist/createCanvasLifecycle-CuCrGRfq.js +173 -0
  187. package/dist/dark.js +1 -1
  188. package/dist/data-table.js +1 -1
  189. package/dist/deck.js +1 -1
  190. package/dist/dialog.js +3 -3
  191. package/dist/dock.js +1163 -618
  192. package/dist/dockContext-gFVS2gMg.js +18 -0
  193. package/dist/dom.js +7 -6
  194. package/dist/dot-flow-field.js +1114 -523
  195. package/dist/dot-matrix.js +348 -204
  196. package/dist/drawer.js +106 -96
  197. package/dist/{dropdown-menu-aJmV5SqE.js → dropdown-menu-CCfcCQ68.js} +3 -3
  198. package/dist/dropdown-menu.js +1 -1
  199. package/dist/easing.js +3 -3
  200. package/dist/expandable-container.js +2 -2
  201. package/dist/fading-scroll.js +1 -1
  202. package/dist/forms.js +6 -6
  203. package/dist/fourier-field.js +441 -197
  204. package/dist/fourier-math.js +1 -1
  205. package/dist/glass-panel.js +2 -2
  206. package/dist/glass-ui.css +1 -1
  207. package/dist/glass-ui.js +139 -135
  208. package/dist/goo-blob.js +11 -9
  209. package/dist/goo-dot-matrix.js +418 -198
  210. package/dist/handmark.js +137 -94
  211. package/dist/header-ribbon.js +1 -1
  212. package/dist/hover-card.js +1 -1
  213. package/dist/hover-popover.js +1 -1
  214. package/dist/icon-chip.js +1 -1
  215. package/dist/icon-tooltip.js +1 -1
  216. package/dist/index.d.ts +3 -0
  217. package/dist/instrument-chassis.js +1 -1
  218. package/dist/keyboard.js +1 -1
  219. package/dist/label.js +1 -1
  220. package/dist/labeled-field.js +7 -7
  221. package/dist/metric-badge.js +1 -1
  222. package/dist/metric-cell.js +1 -1
  223. package/dist/metric-stack.js +1 -1
  224. package/dist/motion-core.js +42 -39
  225. package/dist/motion-curves.js +20 -14
  226. package/dist/motion.js +226 -26
  227. package/dist/notification.js +1 -1
  228. package/dist/number-field.js +1 -1
  229. package/dist/pager-dots.js +1 -1
  230. package/dist/paper-backdrop.js +1 -1
  231. package/dist/paper-grid.js +315 -342
  232. package/dist/paperGrid-CXCSMbZ1.js +191 -0
  233. package/dist/popover.js +1 -1
  234. package/dist/{presets-CvOUqtdY.js → presets-QvYgnFIZ.js} +13 -12
  235. package/dist/progress.js +1 -1
  236. package/dist/pulse.js +1 -1
  237. package/dist/reactive.js +2 -2
  238. package/dist/{resolveCanvasColor-yPyIpJt9.js → resolveCanvasColor-DsSJk06I.js} +5 -5
  239. package/dist/scrolling-text.js +1 -1
  240. package/dist/search.js +7 -7
  241. package/dist/select.js +3 -3
  242. package/dist/selectable-chip.js +18 -35
  243. package/dist/separator.js +1 -1
  244. package/dist/{sheet-B2flBfLH.js → sheet-DUCIoOe0.js} +3 -3
  245. package/dist/sheet.js +1 -1
  246. package/dist/sidebar.js +1 -1
  247. package/dist/slider-CcICPe3u.js +149 -0
  248. package/dist/slider.js +1 -1
  249. package/dist/sortable-list.js +3 -3
  250. package/dist/{spectrum-walk-BVzA7Biz.js → spectrum-walk-cBNSx_zm.js} +1 -1
  251. package/dist/springPresets-DfoQ6XRY.js +64 -0
  252. package/dist/stacked-icons.js +54 -39
  253. package/dist/styles/cards.css +202 -2
  254. package/dist/styles/components.css +1 -3
  255. package/dist/styles/configurator.css +172 -7
  256. package/dist/styles/critical-partition.mjs +35 -2
  257. package/dist/styles/deferred.css +2 -0
  258. package/dist/styles/dock/adaptive-legibility.css +119 -0
  259. package/dist/styles/dock/density.css +18 -10
  260. package/dist/styles/dock/fission-bridge.css +552 -0
  261. package/dist/styles/dock/layers.css +88 -124
  262. package/dist/styles/dock/morph-bridge.css +15 -2
  263. package/dist/styles/dock/morph.css +45 -114
  264. package/dist/styles/dock/shape.css +137 -11
  265. package/dist/styles/dock/shell.css +1 -3
  266. package/dist/styles/dock/stack-rail.css +95 -7
  267. package/dist/styles/dock-controls/icon-button.css +34 -2
  268. package/dist/styles/dock-controls/triggers.css +23 -1
  269. package/dist/styles/dock-controls.css +18 -0
  270. package/dist/styles/dock.css +16 -1
  271. package/dist/styles/drawer.css +166 -0
  272. package/dist/styles/glass/glass-atom.css +244 -0
  273. package/dist/styles/glass/glass-capsule.css +143 -0
  274. package/dist/styles/glass/glass-chip.css +215 -0
  275. package/dist/styles/glass/liquid-enter.css +252 -0
  276. package/dist/styles/glass/liquid-morph.css +850 -0
  277. package/dist/styles/glass/material.css +70 -1
  278. package/dist/styles/glass/reveal.css +22 -2
  279. package/dist/styles/glass/rim.css +13 -1
  280. package/dist/styles/glass/surfaces.css +18 -8
  281. package/dist/styles/glass.css +11 -0
  282. package/dist/styles/icon-chip.css +45 -0
  283. package/dist/styles/index.css +11 -0
  284. package/dist/styles/jubilance.css +65 -0
  285. package/dist/styles/motion/morph-field.css +229 -0
  286. package/dist/styles/paper.css +230 -14
  287. package/dist/styles/scroll-choreography.css +135 -78
  288. package/dist/styles/segmented-tabs.css +85 -51
  289. package/dist/styles/select.css +151 -0
  290. package/dist/styles/tokens/color-radius.css +1 -1
  291. package/dist/styles/tokens/dark-arm.css +57 -8
  292. package/dist/styles/tokens/glass-deep.css +8 -4
  293. package/dist/styles/tokens/glass-fx.css +80 -2
  294. package/dist/styles/tokens/glass.css +140 -8
  295. package/dist/styles/tokens/light-dark.css +2 -2
  296. package/dist/styles/tokens/property-regs.css +144 -0
  297. package/dist/styles/tokens/scale-paper.css +20 -8
  298. package/dist/styles/tokens/scheme-motion.css +92 -157
  299. package/dist/styles/tokens/scheme-spring.css +239 -0
  300. package/dist/styles/tokens/scroll-tokens.css +15 -15
  301. package/dist/styles/tokens/shadow.css +73 -13
  302. package/dist/styles/tokens.css +9 -2
  303. package/dist/styles/utilities/btn.css +70 -0
  304. package/dist/switch.js +1 -1
  305. package/dist/tabs.js +198 -181
  306. package/dist/timeline.js +241 -206
  307. package/dist/toast.js +1 -1
  308. package/dist/toggle-chip.js +14 -41
  309. package/dist/toggle-group.js +1 -1
  310. package/dist/tooltip.js +1 -1
  311. package/dist/typewriter.js +1 -1
  312. package/dist/{uniformBridgeWGPU-CtAKl45L.js → uniformBridgeWGPU-BCse1SHU.js} +191 -127
  313. package/dist/{useAnimatedNumber-CLrxicG9.js → useAnimatedNumber-BntskVdQ.js} +1 -1
  314. package/dist/{useConfiguratorState-4xblKfwd.js → useConfiguratorState-22BcULzF.js} +37 -35
  315. package/dist/useDockCtaReceive-DX7RDb6_.js +88 -0
  316. package/dist/{useDragMorph-BUgAC-zK.js → useDragMorph-DGLSewwB.js} +2 -2
  317. package/dist/useDragVelocity-CjcfX3dA.js +57 -0
  318. package/dist/useGooMorph-Cs13NgYL.js +104 -0
  319. package/dist/useGpuSubstrate-Ceet70xq.js +347 -0
  320. package/dist/{useViewTransition-CUI1nAgn.js → useHaptic-CPz5BT9I.js} +40 -1
  321. package/dist/{useLiquidFlex-UmA6LMZu.js → useLiquidFlex-Cc6PjVJD.js} +8 -3
  322. package/dist/useLiquidPress-CtOQ8Z0_.js +43 -0
  323. package/dist/useMorphField-ogBM7ubT.js +141 -0
  324. package/dist/{useScrollChrome-D66AVP7C.js → useScrollChrome-JuImi1DM.js} +2 -2
  325. package/dist/{useSpringMount-BWDnKIwh.js → useSpringMount-DFxtzmkR.js} +1 -1
  326. package/dist/{useSpringPress-B1-Czp-V.js → useSpringPress-VM9RgVq3.js} +1 -1
  327. package/dist/{useSurfaceAxis-g0NloYEF.js → useSurfaceAxis-Ci7Dnaw2.js} +1 -1
  328. package/dist/{useTouchGate-CBZTD4SD.js → useTouchGate-B1Lf9XqN.js} +1 -1
  329. package/dist/virtual.js +1 -1
  330. package/dist/watercolor-dot.js +16 -26
  331. package/dist/writeVelocityWeight-Bh83xZfs.js +19 -0
  332. package/package.json +14 -3
  333. package/src/styles/cards.css +202 -2
  334. package/src/styles/configurator.css +172 -7
  335. package/src/styles/critical-partition.mjs +35 -2
  336. package/src/styles/dock/adaptive-legibility.css +119 -0
  337. package/src/styles/dock/density.css +18 -10
  338. package/src/styles/dock/fission-bridge.css +552 -0
  339. package/src/styles/dock/layers.css +88 -124
  340. package/src/styles/dock/morph-bridge.css +15 -2
  341. package/src/styles/dock/morph.css +45 -114
  342. package/src/styles/dock/shape.css +137 -11
  343. package/src/styles/dock/shell.css +1 -3
  344. package/src/styles/dock/stack-rail.css +95 -7
  345. package/src/styles/dock-controls/icon-button.css +34 -2
  346. package/src/styles/dock-controls/triggers.css +23 -1
  347. package/src/styles/dock-controls.css +18 -0
  348. package/src/styles/dock.css +16 -1
  349. package/src/styles/drawer.css +164 -0
  350. package/src/styles/glass/glass-atom.css +244 -0
  351. package/src/styles/glass/glass-capsule.css +143 -0
  352. package/src/styles/glass/glass-chip.css +215 -0
  353. package/src/styles/glass/liquid-enter.css +252 -0
  354. package/src/styles/glass/liquid-morph.css +850 -0
  355. package/src/styles/glass/material.css +70 -1
  356. package/src/styles/glass/reveal.css +22 -2
  357. package/src/styles/glass/rim.css +13 -1
  358. package/src/styles/glass/surfaces.css +18 -8
  359. package/src/styles/glass.css +11 -0
  360. package/src/styles/icon-chip.css +45 -0
  361. package/src/styles/index.css +11 -0
  362. package/src/styles/jubilance.css +65 -0
  363. package/src/styles/motion/morph-field.css +229 -0
  364. package/src/styles/paper.css +230 -14
  365. package/src/styles/scroll-choreography.css +135 -78
  366. package/src/styles/segmented-tabs.css +85 -47
  367. package/src/styles/select.css +151 -0
  368. package/src/styles/tokens/color-radius.css +1 -1
  369. package/src/styles/tokens/dark-arm.css +57 -8
  370. package/src/styles/tokens/glass-deep.css +8 -4
  371. package/src/styles/tokens/glass-fx.css +80 -2
  372. package/src/styles/tokens/glass.css +140 -8
  373. package/src/styles/tokens/light-dark.css +2 -2
  374. package/src/styles/tokens/property-regs.css +144 -0
  375. package/src/styles/tokens/scale-paper.css +20 -8
  376. package/src/styles/tokens/scheme-motion.css +92 -157
  377. package/src/styles/tokens/scheme-spring.css +239 -0
  378. package/src/styles/tokens/scroll-tokens.css +15 -15
  379. package/src/styles/tokens/shadow.css +73 -13
  380. package/src/styles/tokens.css +9 -2
  381. package/src/styles/utilities/btn.css +70 -0
  382. package/dist/DialogContent-6JtTB5x2.js +0 -106
  383. package/dist/PagerDots-Cjx96la-.js +0 -98
  384. package/dist/PaperBackdrop-CqwjnfLv.js +0 -31
  385. package/dist/badge-D9XWW4GT.js +0 -53
  386. package/dist/button-5dY1Dvhd.js +0 -125
  387. package/dist/components/custom/concentric/composables/ringField.d.ts +0 -85
  388. package/dist/createCanvasLifecycle-Gh45Ce-p.js +0 -93
  389. package/dist/dockContext-BNfyPLe9.js +0 -17
  390. package/dist/slider-2A0rPn79.js +0 -142
  391. package/dist/springPresets-Ce7OYCm9.js +0 -46
  392. package/dist/useDockCtaReceive-DfFkmgL1.js +0 -82
  393. package/dist/useGpuSubstrate-4pTcp6mX.js +0 -294
  394. package/dist/useLiquidPress-BooG97RY.js +0 -39
  395. /package/dist/{CollapsibleContent-68dEXIAl.js → CollapsibleContent-D7UNsXQr.js} +0 -0
  396. /package/dist/{DialogFooter-9phqcRIS.js → DialogFooter-DoLy0ewI.js} +0 -0
  397. /package/dist/{InstrumentChassis-CxsHSyMj.js → InstrumentChassis-UUJX0-mW.js} +0 -0
  398. /package/dist/{Label-C2ejNWeC.js → Label-B_HPqi_q.js} +0 -0
  399. /package/dist/{ModalOverlay-D1VrWyoi.js → ModalOverlay-DfAf7o15.js} +0 -0
  400. /package/dist/{SelectGroup-BFiod7X2.js → SelectGroup-Dcczq44n.js} +0 -0
  401. /package/dist/{SelectSeparator-C2UGOkXF.js → SelectSeparator-CNRGG7Ew.js} +0 -0
  402. /package/dist/{Separator-DQcwC2TR.js → Separator-Cf9-JFgi.js} +0 -0
  403. /package/dist/{_plugin-vue_export-helper-C1je1s0u.js → _plugin-vue_export-helper-gLzyemvl.js} +0 -0
  404. /package/dist/{color-Cs0-oxYL.js → color-B9jZdhJX.js} +0 -0
  405. /package/dist/{compile-nZ1xVYTp.js → compile-INR_tPk_.js} +0 -0
  406. /package/dist/{constants--C2DkLW8.js → constants-BWj7DkMn.js} +0 -0
  407. /package/dist/{createContext-CpBNTRMI.js → createContext-Cd23P9j0.js} +0 -0
  408. /package/dist/{dotMatrixField-D_x9_1qq.js → dotMatrixField-CRO0ZFk4.js} +0 -0
  409. /package/dist/{flow.glsl-B2P7e0MT.js → flow.glsl-DqEGRpl4.js} +0 -0
  410. /package/dist/{math-Eb0w3LqU.js → math-5RcIgCB4.js} +0 -0
  411. /package/dist/{menuItemVariants-D8VNHq22.js → menuItemVariants-DAXquKja.js} +0 -0
  412. /package/dist/{prng-B-d9eYX8.js → prng-B5tIXTtj.js} +0 -0
  413. /package/dist/{procedural-color.wgsl-m7Zgv35j.js → procedural-color.wgsl-C1Y5PkM6.js} +0 -0
  414. /package/dist/{scrollReader-DI1NWxUw.js → scrollReader-rc3Ns_NM.js} +0 -0
  415. /package/dist/{useControlSize-SH1UmJCi.js → useControlSize-DAZ062x7.js} +0 -0
  416. /package/dist/{useFuzzySearch-DIhcYtcw.js → useFuzzySearch-0fTYOhS4.js} +0 -0
  417. /package/dist/{useGlobalDark-CmjB9E32.js → useGlobalDark-B4HO9LXG.js} +0 -0
  418. /package/dist/{useIntersectionPause-Dbozzjgm.js → useIntersectionPause-DO8Vl4gs.js} +0 -0
  419. /package/dist/{useInterval-CNdua40W.js → useInterval-BVUI-sez.js} +0 -0
  420. /package/dist/{useKeyboardShortcuts-BPRp33Im.js → useKeyboardShortcuts-BEut54Tk.js} +0 -0
  421. /package/dist/{usePointerVelocityField-QLsy3_kv.js → usePointerVelocityField-BrkqZFhj.js} +0 -0
  422. /package/dist/{useResizeObserver-Bpoi7tRE.js → useResizeObserver-DdEn3v2f.js} +0 -0
  423. /package/dist/{useResolveTokenColor-vAylyR0x.js → useResolveTokenColor-ChOnCckA.js} +0 -0
  424. /package/dist/{useScrollProgress-c3yxmH6a.js → useScrollProgress-A0M6qRl7.js} +0 -0
  425. /package/dist/{useSortable-BVqlJRBR.js → useSortable-DQV_UNDw.js} +0 -0
  426. /package/dist/{useTextHighlight-NmBM5V_4.js → useTextHighlight-Bma3UlKA.js} +0 -0
  427. /package/dist/{useTimer-BHJOKr35.js → useTimer-BBLGPXR8.js} +0 -0
  428. /package/dist/{useUserInvalidAria-y5namzeE.js → useUserInvalidAria-EmmwWPOl.js} +0 -0
  429. /package/dist/{useViewportReady-anbac3m6.js → useViewportReady-C9pYnn7K.js} +0 -0
  430. /package/dist/{vReveal-D9k0jADx.js → vReveal-CT1KtwZA.js} +0 -0
@@ -110,11 +110,18 @@
110
110
  MATERIAL luminosity lift — the SAME named tokens, per-mode (the plain per-mode
111
111
  pair idiom). The brightness() companions stay baked (this fold mints ONLY the
112
112
  saturate knob). Machine-locked by `proof:glass-legibility` L7. */
113
- --glass-saturate-wash: 1.05;
114
- --glass-saturate-quiet: 1.05;
115
- --glass-saturate-resting: 1.05;
116
- --glass-saturate-floating: 1.18;
117
- --glass-saturate-overlay: 1.2;
113
+ --glass-saturate-wash: 1.4;
114
+ --glass-saturate-quiet: 1.4;
115
+ --glass-saturate-resting: 1.4;
116
+ --glass-saturate-floating: 1.6;
117
+ --glass-saturate-overlay: 1.6;
118
+ /* W-NAV-DOCK-FIX — the dock's named light-concentration saturate. The dock is a
119
+ calm chrome strip (the wash/quiet/resting register 1.4, NOT the floating 1.6).
120
+ Mirrors the dark arm's dock saturate; the single retune knob in both modes. The
121
+ light dock was the ONLY light surface with no saturate companion — over the flat
122
+ warm-cream page the un-saturated backdrop-filter pulled the cream toward neutral
123
+ (the flat-slab gray read). */
124
+ --glass-saturate-dock: 1.4;
118
125
 
119
126
  /* AX.W54 — each blur radius is scaled by the ONE `--glass-level` scalar (in
120
127
  lockstep with the opacity seam above): level=1 byte-identical; level=0 →
@@ -139,7 +146,16 @@
139
146
  --glass-blur-floating: blur(calc(var(--glass-blur-floating-radius) * var(--glass-level))) saturate(var(--glass-saturate-floating));
140
147
  --glass-blur-overlay: blur(calc(var(--glass-blur-overlay-radius) * var(--glass-level))) saturate(var(--glass-saturate-overlay));
141
148
  /* Dock blur composes blur() only — no saturate. */
142
- --glass-blur-dock: blur(calc(var(--glass-blur-dock-radius) * var(--glass-level)));
149
+ /* W-NAV-DOCK-FIX — the dock concentrates light like every other tier (apple-glass
150
+ §4): the saturate lifts the warm-cream chroma THROUGH the plate, the small
151
+ brightness is the light-concentration the quiet rung carries. The blur RADIUS is
152
+ untouched (the W-GLASS-CAL dial). Compositor-only (backdrop-filter is a paint op);
153
+ the prefers-reduced-transparency bracket maps --glass-blur-dock: none, so the
154
+ saturate drops with the blur (no separate carve owed). */
155
+ --glass-blur-dock:
156
+ blur(calc(var(--glass-blur-dock-radius) * var(--glass-level)))
157
+ saturate(var(--glass-saturate-dock))
158
+ brightness(1.02);
143
159
 
144
160
  /* AX.W52 → BC.W-GLASS-LEGIBILITY-MEASURED — the GLASS BUTTON blur, lifted to
145
161
  the FLOATING-tier "more glass" register. The `glass`/`glass-wash` button
@@ -164,7 +180,10 @@
164
180
  visible through it. Consumed by `.glass-dock` via `--glass-bg-dock`. The
165
181
  value holds the surface register against the tightened 11px blur so the
166
182
  dock reads as painted chrome, not a frosted ghost. */
167
- --glass-opacity-dock: 0.42;
183
+ /* BD.W-DOCK-CORE (D3) — the dock base alpha lifts 0.42 → 0.50 (margin-insurance for
184
+ the warm-chromatic darken: the base composite chroma closes a notch before any tint
185
+ engages). Stays the lightest chrome tier (below resting 0.65), mode-invariant. */
186
+ --glass-opacity-dock: 0.50;
168
187
 
169
188
  /* Dialog-specific opacity (0.68) — BC.W-DIALOG-GLASS. The iOS-27 control-
170
189
  center modal register: SEE-THROUGH frosted glass that reveals the page
@@ -180,6 +199,32 @@
180
199
  that won't re-compose). */
181
200
  --glass-opacity-dialog: 0.68;
182
201
 
202
+ /* Sheet-specific opacity (0.74) — BE.W-SHEET-TRANSLUCENT. The iOS-27 bottom-
203
+ sheet register: SEE-THROUGH frosted glass whose lifted crown reveals the
204
+ page/album grid beneath, NOT the near-opaque overlay slab (0.95 read as "not
205
+ glassy"). 0.74 sits BETWEEN the dialog 0.68 (transparent enough that the
206
+ backdrop reads through) and the overlay 0.95 (opaque enough for AA body text
207
+ against a busy grid) — a sheet is content-bearing, so it sits a hair above the
208
+ dialog. The composed `--glass-bg-sheet` rides the SAME oklab-tint-wrapped
209
+ recipe `--glass-bg-dialog` speaks, so the W55 bright-bucket darken + the
210
+ `--glass-level` opaque escape + the dark-arm saturate companions reach the
211
+ sheet with ZERO new compositing seam. Drawer + Sheet self-re-point onto it.
212
+ Presets-in-consumers — a consumer retunes `--glass-opacity-sheet` via :root. */
213
+ --glass-opacity-sheet: 0.74;
214
+
215
+ /* Clear-specific opacity (0.58) — BE.W-CLEAR-VARIANT. The Apple-Clear MAXIMALLY
216
+ translucent register — the clearest rung the library ships, BELOW the dialog
217
+ 0.68 (the now-playing pill, the Control-Center clear tile: the album grid
218
+ bleeds genuinely through). It is STRUCTURALLY coupled to a MANDATORY legibility
219
+ scrim (the `surface="clear"` decoration carries a `::before` backdrop-dim whose
220
+ strength derives from the sampled `--glass-backdrop-luma`) — a scrim-less clear
221
+ plate is FORBIDDEN by construction (the Apple Clear contract: near-transparent →
222
+ the text needs a scrim floor). 0.58 sits in the Apple-Clear band (clearer than
223
+ the modal 0.68, still a plate not a ghost — > 0.45). The composed
224
+ `--glass-bg-clear` rides the SAME oklab-tint-wrapped recipe so the W55 darken +
225
+ the `--glass-level` escape reach it. Presets-in-consumers — retune via :root. */
226
+ --glass-opacity-clear: 0.58;
227
+
183
228
  /* Dock foreground over an animated backdrop. A dock floating over an
184
229
  aurora/animated surface (`value.js` dock-over-aurora, a slides routed
185
230
  control, bbnf) sits on a mid-luminance, shifting field where the muted
@@ -234,6 +279,40 @@
234
279
  rung override) so the floating edge/rim/under-shadow LIFT survives the
235
280
  transparency drop. */
236
281
  --glass-bg-dialog: color-mix(in oklab, color-mix(in srgb, var(--card) calc((1 - (1 - var(--glass-opacity-dialog)) * var(--glass-level)) * 100%), transparent), var(--glass-tint-source) var(--glass-tint-strength));
282
+ /* BE.W-SHEET-TRANSLUCENT — the bottom-sheet plate bg, composed the SAME oklab-
283
+ tint-wrapped way the dialog self-re-points (so the W55 darken + the dark-arm
284
+ saturate companion reach the see-through sheet without a second hand-rolled
285
+ recipe — byte-isomorphic to `--glass-bg-dialog`, only the opacity token
286
+ differs). Drawer + SheetContent re-declare `--glass-bg-floating:
287
+ var(--glass-bg-sheet)` on their scope (the self-re-point recipe — NOT a raw
288
+ rung override that won't re-compose) so the floating edge/rim/under-shadow LIFT
289
+ survives the transparency drop. */
290
+ --glass-bg-sheet: color-mix(in oklab, color-mix(in srgb, var(--card) calc((1 - (1 - var(--glass-opacity-sheet)) * var(--glass-level)) * 100%), transparent), var(--glass-tint-source) var(--glass-tint-strength));
291
+ /* BE.W-CLEAR-VARIANT — the maximally-translucent Apple-Clear plate bg, composed
292
+ the SAME oklab-tint-wrapped way (so the W55 darken reaches the clear plate).
293
+ The `surface="clear"` decoration reads this fill AND couples its MANDATORY
294
+ `::before` legibility scrim (the scrim dims the BACKDROP — distinct from this
295
+ PLATE tint; the two axes stay disjoint). Byte-isomorphic to `--glass-bg-dialog`,
296
+ only the (lower) clear opacity differs. */
297
+ --glass-bg-clear: color-mix(in oklab, color-mix(in srgb, var(--card) calc((1 - (1 - var(--glass-opacity-clear)) * var(--glass-level)) * 100%), transparent), var(--glass-tint-source) var(--glass-tint-strength));
298
+
299
+ /* ── BE.W-TINTED-CHIP — the per-INSTANCE PLATE-FILL tint axis (`--glass-fill-tint`
300
+ / `--glass-fill-strength`) ──────────────────────────────────────────────────
301
+ The THIRD per-instance chromatic axis (BESIDE the rim `--glass-accent` and the
302
+ whole-plate legibility `--glass-tint-source`): `--glass-fill-tint` tints the
303
+ plate BACKGROUND BODY toward a consumer DATA hue, so a glass surface reads as
304
+ COLORED GLASS (a green chip, a violet facet) without re-declaring the composed
305
+ `--glass-bg-*` token. DISTINCT-not-fork of `--glass-accent` (which tints only the
306
+ RIM + the `::before` specular CORE — file-line-disjoint): the fill writes the
307
+ plate body, the accent writes the rim; a chip may carry BOTH. The mix is `in
308
+ oklab` (the perceptual glass-tint family — NOT the in-srgb `--surface-tint-*`
309
+ brand-overlay fence, AW.W26). It rides ON TOP of the W55 legibility composite
310
+ (the plate still darkens-over-light for AA AND carries the data hue — additive,
311
+ never a replacement). At the `@property` defaults (transparent + 0%) the body is
312
+ byte-identical to today (`color-mix(in oklab, X, transparent 0%)` ≡ X — the no-op
313
+ floor). `<GlassChip :tone>` is the first-class consumer (BE.W-TINTED-CHIP
314
+ component) — the fill is read on the surface, never written into a `--glass-bg-*`
315
+ token here. The `@property` registration is below (the typed no-op floor). */
237
316
 
238
317
  /* Composed borders — foreground-tinted. BC.W-BLACK-BAR D2 — the perimeter
239
318
  hairline is RETIRED as the silhouette device. The old 11-22% warm-ink rung
@@ -253,7 +332,11 @@
253
332
  --glass-border-resting: color-mix(in srgb, var(--foreground) 4%, transparent);
254
333
  --glass-border-floating: color-mix(in srgb, var(--foreground) 5%, transparent);
255
334
  --glass-border-overlay: color-mix(in srgb, var(--foreground) 5%, transparent);
256
- --glass-border-dock: color-mix(in srgb, var(--foreground) 4%, transparent);
335
+ /* W-NAV-DOCK-FIX — the dock is FLOATING chrome over an UNKNOWN backdrop (unlike a
336
+ content card on the page), so it earns a readable warm-INK hairline (the iOS-27
337
+ edge-rim layer). 8% warm-ink is still a whisper, never a black bar (--foreground
338
+ H≈56° → a WARM rim, never a gray line). */
339
+ --glass-border-dock: color-mix(in srgb, var(--foreground) 8%, transparent);
257
340
  --glass-border: var(--glass-border-quiet);
258
341
 
259
342
  /* ── The control REST register (BA.W-SURFACE-AXIS scope 7) ────────────────
@@ -278,3 +361,52 @@
278
361
  under-shadow/overlay-scrim) lives in tokens/glass-fx.css (carved at BB.W-CARVE4
279
362
  — the next adjacent :root{} block in the cascade). */
280
363
  }
364
+
365
+ /* ── BE.W5 foundation — the typed per-instance axes (the @property no-op floors) ──
366
+ Registered HERE beside the §8 glass tokens (the canonical @property idiom home is
367
+ tokens/property-regs.css; these foundation axes live with the §8 ladder they
368
+ compose so the BE Tier-0 foundation is one self-contained partial). Each mirrors the
369
+ `--glass-accent`/`--glass-accent-strength` registration shape: a `<color>` HUE +
370
+ a `<percentage>` STRENGTH, both `inherits: true` (a host sets them on any ancestor
371
+ to retune the sub-tree) with the NEUTRAL no-op identity (`transparent` / `0%`) so
372
+ an unset surface is byte-identical to today — `color-mix(in oklab, X, <hue> 0%)` ≡ X.
373
+ A malformed override CLAMPS to the initial-value (the typed fail-safe). */
374
+
375
+ /* BE.W-AMBIENT-TINT — the backdrop hue the glass absorbs. `useGlassBackdropLuminance`
376
+ writes a sampled `oklch()` modal hue here (at a FIXED sub-perceptual chroma — a HUE
377
+ event, never the backdrop's saturation); a gray backdrop writes `transparent` (the
378
+ room tints nothing). The `transparent` initial-value is the neutral identity. */
379
+ @property --glass-ambient-hue {
380
+ syntax: "<color>";
381
+ inherits: true;
382
+ initial-value: transparent;
383
+ }
384
+
385
+ /* The opt-in ambient bias knob — the EXISTING `--glass-tint-source` self-engage
386
+ re-point biases toward `--glass-ambient-hue` at this strength (bounded ≤ 8% in the
387
+ cascade — sub-perceptual under the W55 `--glass-tint-strength-aa` bound). `0%`
388
+ default is the no-op floor (the un-biased `--glass-tint-ink`); the dock wires it on. */
389
+ @property --glass-ambient-strength {
390
+ syntax: "<percentage>";
391
+ inherits: true;
392
+ initial-value: 0%;
393
+ }
394
+
395
+ /* BE.W-TINTED-CHIP — the per-INSTANCE PLATE-FILL tint. A complete `<color>` data hue
396
+ the plate BODY mixes toward (`in oklab`, ON TOP of the W55 legibility composite —
397
+ DISTINCT from the rim `--glass-accent`). `transparent` is the neutral identity (the
398
+ no-op floor: `color-mix(in oklab, X, transparent 0%)` ≡ X). */
399
+ @property --glass-fill-tint {
400
+ syntax: "<color>";
401
+ inherits: true;
402
+ initial-value: transparent;
403
+ }
404
+
405
+ /* The fill-tint bounded strength — `0%` default (an unset surface carries no fill
406
+ tint, byte-identical to today). A consumer (`<GlassChip :strength>`) dials it for a
407
+ louder colored-glass chip; the body ink stays legible (the W-ON-GLASS-FG floor). */
408
+ @property --glass-fill-strength {
409
+ syntax: "<percentage>";
410
+ inherits: true;
411
+ initial-value: 0%;
412
+ }
@@ -98,8 +98,8 @@
98
98
  BA.W-NO-GRAY L1 — the LIGHT arm DECOUPLES off the near-achromatic page onto the
99
99
  warm-cream plate hsl(36 48% 97%) (LOCKSTEP color-radius.css --card) so the light
100
100
  glass plate reads warm-not-gray; the dark arm is UNCHANGED (W-DARK-MATERIAL's). */
101
- --card: light-dark(hsl(36 48% 97%), hsl(24 8% 16%));
102
- --popover: light-dark(hsl(36 48% 97%), hsl(24 8% 16%));
101
+ --card: light-dark(hsl(30 85% 96%), hsl(26 22% 17%));
102
+ --popover: light-dark(hsl(30 85% 96%), hsl(26 22% 17%));
103
103
  --surface-public-data-panel: light-dark(hsl(44 16% 96%), hsl(36 9% 18%));
104
104
 
105
105
  /* BA.W-DARK-MATERIAL scope 4 — the chromatic dark --primary (legendre-violet house
@@ -56,6 +56,44 @@
56
56
  initial-value: 0%;
57
57
  }
58
58
 
59
+ /* BD.W-GOO-CAROUSEL-DECK — the ONE goo-morph travel scalar (the de-dup of the pager
60
+ WORM's `--worm-t`). The morph silhouette (dot worm / carousel slide plate / deck
61
+ slide plate) travels between MEASURED slot centers driven by a continuous page-space
62
+ float the host `transition`s on a `--{prefix}-flow` `linear()` curve. A bare
63
+ unregistered `var()` would SNAP `--goo-t` (no spring glide); the typed `<number>`
64
+ registration lets the engine interpolate the scalar so the silhouette's two-edge
65
+ geometry (useGooMorph.ts) springs past then settles. `inherits: true` — the host
66
+ transitions it, the rAF projection reads it off the host. `initial-value: 0` is the
67
+ resting slot (a non-supporting engine snaps onto the active slot, the floor). ONE
68
+ shared registration: the worm, the carousel plate, and the deck plate all read it. */
69
+ @property --goo-t {
70
+ syntax: "<number>";
71
+ inherits: true;
72
+ initial-value: 0;
73
+ }
74
+
75
+ /* BD.W-TABS-LIQUID — the area-inflation scalar (the 5-beat blob's grow→overshoot
76
+ →shrink envelope) + the one-shot commit accent-flood progress. BOTH are driven
77
+ IMPERATIVELY: the 2nd `useLiquidFlex` channel in `useTabIndicator.ts` writes
78
+ `--tab-blob` every frame (it is NOT added to a CSS `transition` list — the
79
+ composed `scale` write the indicator already transitions carries the glide). The
80
+ `@property` registration exists ONLY so the discrete release-frame write
81
+ (`--tab-blob` snapping back to 1 at arrival) interpolates instead of snap-
82
+ flickering — the SAME role the `--stretch`/`--glass-accent` registered-scalar
83
+ precedent serves. `inherits: false` — each indicator owns its own blob (a blobbed
84
+ parent must not push inflation onto a child). `initial-value: 1`/`0` are the safe
85
+ rest (a non-supporting engine slides with no inflation/flood, never broken). */
86
+ @property --tab-blob {
87
+ syntax: "<number>";
88
+ inherits: false;
89
+ initial-value: 1;
90
+ }
91
+ @property --tab-flood-t {
92
+ syntax: "<number>";
93
+ inherits: false;
94
+ initial-value: 0;
95
+ }
96
+
59
97
  @property --phase-tint-amount {
60
98
  syntax: "<percentage>";
61
99
  inherits: true;
@@ -119,6 +157,91 @@
119
157
  initial-value: 0deg;
120
158
  }
121
159
 
160
+ /* BD.W-MOTION-WEIGHT — the LIVE velocity channel. `useLiquidFlex` writes this
161
+ per-frame off the SAME saturating velocity term it already computes
162
+ (`tanh(|ṫ|·k) ∈ [0,1]`); the consumer's `writeVelocityWeight` helper folds it
163
+ into a transient `--motion-weight: calc(0.618 + 0.382 * var(--flex-vel))` boost
164
+ so a driver in active fast motion deepens its own squish/punch/shadow-travel and
165
+ self-extinguishes back to rest as it settles ("elements morph MORE the faster
166
+ they move"). `inherits: false` is LOAD-BEARING (the C2·R1 subtree-storm bite): a
167
+ per-frame write invalidates exactly ONE element, never a subtree — an inheriting
168
+ velocity channel would re-paint every descendant on every frame. `initial-value:
169
+ 0` is the still rest (no boost when unwired). */
170
+ @property --flex-vel {
171
+ syntax: "<number>";
172
+ inherits: false;
173
+ initial-value: 0;
174
+ }
175
+
176
+ /* BD.W-CARTOON-CASTER — the cartoon cel-cast drive props (H1: proven-live-DEAD
177
+ without these — the calc chain falls back to initials → no punch). The cast
178
+ travel/spread READ `--motion-weight × --cartoon-press-t`, so the inert
179
+ `.cartoon-cast` child plate moves on the compositor as the body presses.
180
+ • --cartoon-press-t (<number>, inherits:true) — the 0→1 press ramp the existing
181
+ `useLiquidPress` writes (aliased onto `--card-press-t` on `.cartoon-surface`);
182
+ inherits so the inert child reads its host's press scalar.
183
+ • --cast-travel (<length>, inherits:false) / --cast-spread (<number>,
184
+ inherits:false) — the per-caster derived offset + scale; non-inheriting (each
185
+ caster owns its own, never bleeds onto a nested cartoon child).
186
+ • --cartoon-cast-dx/dy (<length>, inherits:true) — the OPT-IN drag-track delta
187
+ (0 at rest; a future `useCartoonCast` DOM bridge writes them). Inherits so the
188
+ host can set them for the child. Typed so the gap INTERPOLATES on the
189
+ compositor; a non-supporting engine snaps rather than eases (the gap still
190
+ reads). */
191
+ @property --cartoon-press-t {
192
+ syntax: "<number>";
193
+ inherits: true;
194
+ initial-value: 0;
195
+ }
196
+
197
+ @property --cast-travel {
198
+ syntax: "<length>";
199
+ inherits: false;
200
+ initial-value: 0px;
201
+ }
202
+
203
+ @property --cast-spread {
204
+ syntax: "<number>";
205
+ inherits: false;
206
+ initial-value: 1;
207
+ }
208
+
209
+ @property --cartoon-cast-dx {
210
+ syntax: "<length>";
211
+ inherits: true;
212
+ initial-value: 0px;
213
+ }
214
+
215
+ @property --cartoon-cast-dy {
216
+ syntax: "<length>";
217
+ inherits: true;
218
+ initial-value: 0px;
219
+ }
220
+
221
+ /* BD.W-PAGE-FIELD — the warm colorful FIELD drive props (paper.css `.paper-field`).
222
+ The chassis writes ONE per-route hue (`--field-h-raw`) on the `[data-paper-field]`
223
+ wrapper; `.paper-field` CLAMPS it warm IN THE CSS (`clamp(25, raw, 95)`) so an
224
+ inline `--field-h-raw:210` paint-CANNOT go teal — the warm-bound is a paint-layer
225
+ invariant, not a TS-only convention.
226
+ • --field-h-raw (<number>, inherits:true) — the route's raw hue request. Inherits so
227
+ the wrapper sets it once and every `.paper-field` descendant resolves it. Initial 62
228
+ (warm amber — the canonical cream identity).
229
+ • --field-intensity (<number>, inherits:true) — the ground/hero rung scalar (0.85
230
+ ground, 1.0 vivid hero, 0 under prefers-reduced-transparency → the warm stops drop
231
+ and the decoupled --neutral-0 floor shows). Inherits so a hero surface can lift it
232
+ on a sub-tree. */
233
+ @property --field-h-raw {
234
+ syntax: "<number>";
235
+ inherits: true;
236
+ initial-value: 62;
237
+ }
238
+
239
+ @property --field-intensity {
240
+ syntax: "<number>";
241
+ inherits: true;
242
+ initial-value: 0.85;
243
+ }
244
+
122
245
  /* BB.W-LENSING `--glass-refract` axis — RETIRED (DDR-LENS-BAKE, glass-refract.css).
123
246
  The axis drove the `feDisplacementMap` `scale` by splicing `var(--glass-refract)`
124
247
  between a head/tail `url()` pair. That construction never parsed as a
@@ -263,6 +386,27 @@
263
386
  initial-value: 1;
264
387
  }
265
388
 
389
+ /* BD.W-MOTION-WEIGHT — the GOVERNING motion scalar (the iOS-27 register-triangle
390
+ centroid). ONE number co-scales the squash depth, the overshoot share, the
391
+ anticipation pull-back, and the cartoon-shadow travel so they read as ONE
392
+ proportioned deformation, never four unrelated tics. Registered with the EXACT
393
+ `--ui-scale`/`--glass-level` typed cascading-scalar idiom — `inherits: true` is
394
+ the whole mechanism: a DRIVER ancestor (`.dock`, a celebrating card, a sheet)
395
+ locally pushes `--motion-weight: 1`; an OBSERVER subtree (`<CarouselContent>`
396
+ auto-advance, `[data-reorder]` lists) pins `--motion-weight: 0` — everything
397
+ below reads the local value with zero prop-drilling. `initial-value: 0.618`
398
+ (1/φ, design.md §L6 golden-proportion law): not 0 (dead), not 1 (manic) —
399
+ present, alive, never cartoonish-by-default. The `:root` rest decl + the PRM
400
+ carve live in scheme-motion.css §2 (the Feature-token-home, beside the
401
+ `--spring-*` clocks it co-governs). A non-supporting engine reads the safe
402
+ 0.618 fallback (the squish still reads, just non-animatable — the same fail-safe
403
+ `--ui-scale` documents). */
404
+ @property --motion-weight {
405
+ syntax: "<number>";
406
+ inherits: true;
407
+ initial-value: 0.618;
408
+ }
409
+
266
410
  /* ── The specular-intensity magnitude cohort (AX.W09) ──────────────────────
267
411
  The catch-light alpha multiplier at each interaction state, as a SINGLE
268
412
  overridable token cohort (was three buried literals across glass.css —
@@ -48,13 +48,26 @@
48
48
  `scale: var(--stretch) calc(1 / var(--stretch))`) so it reads as an elastic
49
49
  warp, never a size pump. A consumer dials the elasticity (or to 1 for none)
50
50
  without touching source.
51
- BC.W-LIQUID-TAB — lifted 1.08 → 1.15 (in lockstep with the no-token floor
52
- DEFAULT_INDICATOR_MAX_STRETCH, the SOLE cap source — constant + token never
53
- fork). The click travel-squish AND the liquid-tab pull-morph read this ONE
54
- cap; the lift makes a FAST pull visibly swell the pill so the gel-squish READS
55
- as liquid (glass-dock-codebase.md §3.4) — still capped LOW (≤1.2, the
56
- anti-taffy-pull bar; the pill swells, never taffy-pulls). */
57
- --tab-indicator-max-stretch: 1.15;
51
+ The click travel-squish AND the liquid-tab pull-morph read this ONE cap (in
52
+ lockstep with the no-token floor DEFAULT_INDICATOR_MAX_STRETCH, the SOLE cap
53
+ source — constant + token never fork); a FAST pull visibly swells the pill so
54
+ the gel-squish READS as liquid — still capped LOW (the anti-taffy-pull bar;
55
+ the pill swells, never taffy-pulls).
56
+ BD.W-TABS-LIQUID — re-tuned 1.18 → 1.11. The `--tab-blob` area-inflation
57
+ channel now carries the "grow" (the 5-beat overshoot), so the per-axis stretch
58
+ drops: the FENCE is the COMPOSED visible bbox area `blob × stretch` ≤ ~1.14,
59
+ NOT the bare per-axis scalar. At blob ~1.045 (peak) × stretch ~1.11 (far jump)
60
+ the composed long-axis peak lands ≤ ~1.16 and the AREA (blob² since the squish
61
+ is volume-preserving) stays ≤ ~1.14 — lively, not taffy. */
62
+ --tab-indicator-max-stretch: 1.11;
63
+
64
+ /* BD.W-TABS-LIQUID — the area-inflation cap (the 5-beat blob's overshoot peak).
65
+ The 2nd `useLiquidFlex` channel drives `--tab-blob` toward this on the
66
+ grow-overshoot beat, then de-inflates to 1 at arrival (shrink-to-fit). Kept
67
+ LOW (~1.045) so the COMPOSED bbox area (blob × stretch, the volume-preserving
68
+ squish makes the area ≈ blob²) clears the ≤ ~1.14 anti-taffy fence. A consumer
69
+ dials it (or to 1 for no inflation) without touching source. */
70
+ --tab-indicator-blob-max: 1.045;
58
71
  /* BA.W-TABS — the indicator's OWN travel clock, re-pointed off the generic
59
72
  `--duration-normal` (0.3s, which dragged a ~190ms sub-pixel undershoot tail
60
73
  past the ~100ms 90%-travel point — the R10-2 "too slow" read) onto the
@@ -289,7 +302,6 @@
289
302
 
290
303
  /* Heights — per-variant rail thickness */
291
304
  --timeline-scrubber-height: 0.5rem; /* 8px — single-track scrubber */
292
- --timeline-segmented-height: 0.625rem; /* 10px — N adjacent bands */
293
305
  --timeline-continuous-height: 0.75rem; /* 12px — ONE pill, N regions */
294
306
 
295
307
  /* Geometry — shared across all variants */