@mkbabb/glass-ui 4.0.0 → 4.1.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 (609) hide show
  1. package/README.md +3 -1
  2. package/dist/CardAction-8whJrLWt.js +268 -0
  3. package/dist/{CommandShortcut-DdtWXxOK.js → CommandShortcut-D3yxgHNn.js} +25 -14
  4. package/dist/ConfiguratorRow-CaP7U3ZA.js +143 -0
  5. package/dist/ContextMenuContent-B3ZsheLV.js +90 -0
  6. package/dist/{ContextMenuSubContent-B0Vs6atR.js → ContextMenuSubContent-DDRID3qC.js} +28 -33
  7. package/dist/{DataTable-C464Zbqd.js → DataTable-Bc9kUtu_.js} +4 -4
  8. package/dist/{DialogContent-DDE6pQBU.js → DialogContent-6JtTB5x2.js} +11 -8
  9. package/dist/DialogFooter-9phqcRIS.js +80 -0
  10. package/dist/DialogScrollContent-TTuovQst.js +93 -0
  11. package/dist/{FadingScroll-DwNnvKMs.js → FadingScroll-DLRbH5Xr.js} +1 -1
  12. package/dist/HoverCardContent-Bel1gdLZ.js +88 -0
  13. package/dist/{HoverPopover-Dpzwvc4t.js → HoverPopover-BcIxvyqZ.js} +2 -2
  14. package/dist/{IconChip-BDw1j5mu.js → IconChip-DhbdGdFQ.js} +2 -1
  15. package/dist/{IconTooltip-DSjasZIt.js → IconTooltip-B0zimd2H.js} +1 -1
  16. package/dist/Input-Cg9DF62r.js +57 -0
  17. package/dist/{MetricBadge-BpC0R_Ec.js → MetricBadge-RHdBP72w.js} +1 -1
  18. package/dist/Notification-CphK7AAm.js +43 -0
  19. package/dist/NumberFieldContent-D8cXeyO4.js +140 -0
  20. package/dist/PagerDots-Cjx96la-.js +98 -0
  21. package/dist/{PopoverContent-BTorlp--.js → PopoverContent-DL7E6vJP.js} +4 -4
  22. package/dist/{Progress-hAT4gqGH.js → Progress-CnqB7gLm.js} +4 -4
  23. package/dist/{ScrollingText-CUVFTWk2.js → ScrollingText-CTZbA_cG.js} +2 -2
  24. package/dist/{SelectScrollDownButton-C1jb3b3K.js → SelectScrollDownButton-DAKCBEdW.js} +65 -61
  25. package/dist/{SelectSeparator-DK2y1Bun.js → SelectSeparator-C2UGOkXF.js} +1 -1
  26. package/dist/Separator-DQcwC2TR.js +44 -0
  27. package/dist/Switch-B8RscmRu.js +49 -0
  28. package/dist/Toaster-D9qIHjBI.js +274 -0
  29. package/dist/ToggleGroupItem-BLtr3TJq.js +170 -0
  30. package/dist/TooltipProvider-BJ_Y5EGX.js +109 -0
  31. package/dist/animated-digit.js +2 -2
  32. package/dist/api/index.d.ts +21 -33
  33. package/dist/api/types-extra.d.ts +37 -0
  34. package/dist/api.js +1 -1
  35. package/dist/aurora.js +1231 -260
  36. package/dist/badge.js +1 -1
  37. package/dist/border-progress.d.ts +1 -0
  38. package/dist/border-progress.js +98 -0
  39. package/dist/button-5dY1Dvhd.js +125 -0
  40. package/dist/button.js +1 -1
  41. package/dist/canvas.js +2 -3
  42. package/dist/card.js +2 -2
  43. package/dist/carousel.js +93 -110
  44. package/dist/collapsible.js +1 -1
  45. package/dist/color-Cs0-oxYL.js +116 -0
  46. package/dist/color.js +2 -2
  47. package/dist/command.js +1 -1
  48. package/dist/compile-nZ1xVYTp.js +19 -0
  49. package/dist/completion-seal.d.ts +1 -0
  50. package/dist/completion-seal.js +89 -0
  51. package/dist/components/custom/aurora/Aurora.vue.d.ts +10 -5
  52. package/dist/components/custom/aurora/composables/atoms-fields.d.ts +39 -0
  53. package/dist/components/custom/aurora/composables/auroraFallbackGround.d.ts +108 -0
  54. package/dist/components/custom/aurora/composables/color.d.ts +13 -0
  55. package/dist/components/custom/aurora/composables/frameLoop.d.ts +9 -0
  56. package/dist/components/custom/aurora/composables/runtime.d.ts +31 -0
  57. package/dist/components/custom/aurora/composables/uniformBridge.d.ts +5 -1
  58. package/dist/components/custom/aurora/composables/uniformBridgeWGPU.d.ts +60 -0
  59. package/dist/components/custom/aurora/composables/wgpuSetup.d.ts +37 -0
  60. package/dist/components/custom/aurora/constants/budget.d.ts +21 -0
  61. package/dist/components/custom/aurora/constants/presets.d.ts +20 -2
  62. package/dist/components/custom/aurora/constants/renderMode.d.ts +77 -18
  63. package/dist/components/custom/aurora/constants/shaders/aurora-mediums.wgsl.d.ts +1 -0
  64. package/dist/components/custom/aurora/constants/shaders/aurora.wgsl.d.ts +1 -0
  65. package/dist/components/custom/aurora/constants/shaders/oil-modes.glsl.d.ts +1 -0
  66. package/dist/components/custom/aurora/constants/shaders/procedural-color.wgsl.d.ts +4 -0
  67. package/dist/components/custom/aurora/index.d.ts +2 -1
  68. package/dist/components/custom/border-progress/BorderProgress.vue.d.ts +46 -0
  69. package/dist/components/custom/border-progress/composables/spectrum-walk.d.ts +25 -0
  70. package/dist/components/custom/border-progress/composables/useBorderSpectrum.d.ts +18 -0
  71. package/dist/components/custom/border-progress/constants.d.ts +59 -0
  72. package/dist/components/custom/border-progress/index.d.ts +4 -0
  73. package/dist/components/custom/completion-seal/CompletionSeal.vue.d.ts +21 -0
  74. package/dist/components/custom/completion-seal/composables/useCompletionSeal.d.ts +37 -0
  75. package/dist/components/custom/completion-seal/constants.d.ts +46 -0
  76. package/dist/components/custom/completion-seal/index.d.ts +4 -0
  77. package/dist/components/custom/concentric/Concentric.vue.d.ts +39 -0
  78. package/dist/components/custom/concentric/composables/concentricGLSetup.d.ts +18 -0
  79. package/dist/components/custom/concentric/composables/concentricWGPUSetup.d.ts +22 -0
  80. package/dist/components/custom/concentric/composables/ringField.d.ts +85 -0
  81. package/dist/components/custom/concentric/composables/uniformBridgeWGPU.d.ts +14 -0
  82. package/dist/components/custom/concentric/composables/useConcentric.d.ts +35 -0
  83. package/dist/components/custom/concentric/constants.d.ts +67 -0
  84. package/dist/components/custom/concentric/index.d.ts +5 -0
  85. package/dist/components/custom/concentric/shaders/concentric.glsl.d.ts +4 -0
  86. package/dist/components/custom/concentric/shaders/concentric.wgsl.d.ts +1 -0
  87. package/dist/components/custom/confirm-dialog/ConfirmDialog.vue.d.ts +3 -3
  88. package/dist/components/custom/constellation/Constellation.vue.d.ts +5 -4
  89. package/dist/components/custom/constellation/composables/constellationGLSetup.d.ts +10 -0
  90. package/dist/components/custom/constellation/composables/constellationWGPUSetup.d.ts +19 -0
  91. package/dist/components/custom/constellation/composables/uniformBridgeWGPU.d.ts +66 -0
  92. package/dist/components/custom/constellation/composables/useConstellation.d.ts +3 -10
  93. package/dist/components/custom/constellation/constants.d.ts +33 -0
  94. package/dist/components/custom/constellation/constellationField.d.ts +31 -1
  95. package/dist/components/custom/constellation/constellationInteraction.d.ts +23 -14
  96. package/dist/components/custom/constellation/constellationRender.d.ts +25 -0
  97. package/dist/components/custom/constellation/constellationTypes.d.ts +38 -0
  98. package/dist/components/custom/constellation/constellationWell.d.ts +15 -0
  99. package/dist/components/custom/constellation/index.d.ts +5 -5
  100. package/dist/components/custom/constellation/shaders/constellation-lines.glsl.d.ts +2 -0
  101. package/dist/components/custom/constellation/shaders/constellation-lines.wgsl.d.ts +1 -0
  102. package/dist/components/custom/constellation/shaders/constellation-points.glsl.d.ts +2 -0
  103. package/dist/components/custom/constellation/shaders/constellation-points.wgsl.d.ts +1 -0
  104. package/dist/components/custom/deck/DeckPager.vue.d.ts +29 -0
  105. package/dist/components/custom/deck/composables/useDeck.d.ts +27 -0
  106. package/dist/components/custom/deck/composables/useDeckKeyboard.d.ts +25 -0
  107. package/dist/components/custom/deck/composables/useDeckSpring.d.ts +22 -0
  108. package/dist/components/custom/deck/constants.d.ts +14 -0
  109. package/dist/components/custom/deck/index.d.ts +8 -0
  110. package/dist/components/custom/dock/DockIconButton.vue.d.ts +25 -4
  111. package/dist/components/custom/dock/DockLayerGroup.vue.d.ts +10 -2
  112. package/dist/components/custom/dock/DockStack.vue.d.ts +65 -0
  113. package/dist/components/custom/dock/GlassDock.vue.d.ts +4 -2
  114. package/dist/components/custom/dock/composables/dockMorphMeasure.d.ts +155 -0
  115. package/dist/components/custom/dock/composables/index.d.ts +2 -0
  116. package/dist/components/custom/dock/composables/useDockSearch.d.ts +85 -0
  117. package/dist/components/custom/dock/composables/useDockShellProps.d.ts +11 -0
  118. package/dist/components/custom/dock/composables/useLayerTransition.d.ts +13 -0
  119. package/dist/components/custom/dock/constants.d.ts +18 -14
  120. package/dist/components/custom/dock/index.d.ts +5 -2
  121. package/dist/components/custom/dot-flow-field/DotFlowField.vue.d.ts +42 -0
  122. package/dist/components/custom/dot-flow-field/composables/flowField.d.ts +83 -0
  123. package/dist/components/custom/dot-flow-field/composables/uniformBridgeWGPU.d.ts +39 -0
  124. package/dist/components/custom/dot-flow-field/composables/useDotFlowField.d.ts +35 -0
  125. package/dist/components/custom/dot-flow-field/composables/useFlowParticles.d.ts +31 -0
  126. package/dist/components/custom/dot-flow-field/constants.d.ts +69 -0
  127. package/dist/components/custom/dot-flow-field/index.d.ts +5 -0
  128. package/dist/components/custom/dot-flow-field/shaders/flow-field.compute.wgsl.d.ts +1 -0
  129. package/dist/components/custom/dot-flow-field/shaders/flow-field.glsl.d.ts +4 -0
  130. package/dist/components/custom/dot-flow-field/shaders/flow-field.render.wgsl.d.ts +1 -0
  131. package/dist/components/custom/dot-matrix/DotMatrix.vue.d.ts +43 -0
  132. package/dist/components/custom/dot-matrix/composables/dotMatrixField.d.ts +89 -0
  133. package/dist/components/custom/dot-matrix/composables/uniformBridgeWGPU.d.ts +52 -0
  134. package/dist/components/custom/dot-matrix/composables/useDotMatrix.d.ts +34 -0
  135. package/dist/components/custom/dot-matrix/composables/useDotSphere.d.ts +27 -0
  136. package/dist/components/custom/dot-matrix/constants.d.ts +58 -0
  137. package/dist/components/custom/dot-matrix/index.d.ts +5 -0
  138. package/dist/components/custom/dot-matrix/shaders/dot-matrix.glsl.d.ts +4 -0
  139. package/dist/components/custom/dot-matrix/shaders/dot-matrix.wgsl.d.ts +1 -0
  140. package/dist/components/custom/easing/EasingConfigurator.vue.d.ts +33 -0
  141. package/dist/components/custom/easing/EasingPicker.vue.d.ts +49 -0
  142. package/dist/components/custom/easing/composables/useEasingPicker.d.ts +80 -0
  143. package/dist/components/custom/easing/constants.d.ts +28 -0
  144. package/dist/components/custom/easing/index.d.ts +3 -0
  145. package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +11 -0
  146. package/dist/components/custom/fourier-field/FourierField.vue.d.ts +43 -40
  147. package/dist/components/custom/fourier-field/composables/fourierFieldGLSetup.d.ts +15 -0
  148. package/dist/components/custom/fourier-field/composables/fourierFieldWGPUSetup.d.ts +20 -0
  149. package/dist/components/custom/fourier-field/composables/uniformBridgeWGPU.d.ts +41 -0
  150. package/dist/components/custom/fourier-field/composables/useFourierField.d.ts +42 -0
  151. package/dist/components/custom/fourier-field/constants.d.ts +64 -0
  152. package/dist/components/custom/fourier-field/index.d.ts +23 -18
  153. package/dist/components/custom/fourier-field/shaders/fourier-field.compute.wgsl.d.ts +1 -0
  154. package/dist/components/custom/fourier-field/shaders/fourier-field.glsl.d.ts +4 -0
  155. package/dist/components/custom/fourier-field/shaders/fourier-field.render.wgsl.d.ts +1 -0
  156. package/dist/components/custom/glass-panel/GlassPanel.vue.d.ts +1 -1
  157. package/dist/components/custom/goo-blob/GooBlob.vue.d.ts +13 -3
  158. package/dist/components/custom/goo-blob/composables/uniformBridgeWGPU.d.ts +24 -0
  159. package/dist/components/custom/goo-blob/composables/useMetaballRenderer.d.ts +18 -11
  160. package/dist/components/custom/goo-blob/composables/wgpuSetup.d.ts +23 -0
  161. package/dist/components/custom/goo-blob/constants.d.ts +1 -1
  162. package/dist/components/custom/goo-blob/index.d.ts +1 -1
  163. package/dist/components/custom/goo-blob/shaders/metaball-noise.wgsl.d.ts +1 -0
  164. package/dist/components/custom/goo-blob/shaders/metaball-palette.wgsl.d.ts +1 -0
  165. package/dist/components/custom/goo-blob/shaders/metaball-uniforms.glsl.d.ts +1 -1
  166. package/dist/components/custom/goo-blob/shaders/metaball.wgsl.d.ts +1 -0
  167. package/dist/components/custom/goo-blob/types.d.ts +36 -0
  168. package/dist/components/custom/goo-dot-matrix/GooDotMatrix.vue.d.ts +49 -0
  169. package/dist/components/custom/goo-dot-matrix/composables/gooDotLattice.d.ts +24 -0
  170. package/dist/components/custom/goo-dot-matrix/composables/gooDotSetup.d.ts +50 -0
  171. package/dist/components/custom/goo-dot-matrix/composables/uniformBridgeWGPU.d.ts +35 -0
  172. package/dist/components/custom/goo-dot-matrix/composables/useGooDotMatrix.d.ts +31 -0
  173. package/dist/components/custom/goo-dot-matrix/constants.d.ts +76 -0
  174. package/dist/components/custom/goo-dot-matrix/index.d.ts +5 -0
  175. package/dist/components/custom/goo-dot-matrix/shaders/goo-dot.frag.d.ts +11 -0
  176. package/dist/components/custom/goo-dot-matrix/shaders/goo-dot.wgsl.d.ts +3 -0
  177. package/dist/components/custom/handmark/HandMark.vue.d.ts +1 -1
  178. package/dist/components/custom/icon-chip/types.d.ts +11 -1
  179. package/dist/components/custom/instrument-chassis/InstrumentChassis.vue.d.ts +3 -1
  180. package/dist/components/custom/labeled-field/LabeledField.vue.d.ts +21 -2
  181. package/dist/components/custom/metric-stack/MetricRow.vue.d.ts +15 -0
  182. package/dist/components/custom/metric-stack/MetricStack.vue.d.ts +1 -1
  183. package/dist/components/custom/pager-dots/PagerDots.vue.d.ts +9 -0
  184. package/dist/components/custom/pager-dots/index.d.ts +2 -0
  185. package/dist/components/custom/pager-dots/pagerWindow.d.ts +9 -0
  186. package/dist/components/custom/paper-grid/PaperGrid.vue.d.ts +42 -0
  187. package/dist/components/custom/paper-grid/composables/paperGrid.d.ts +90 -0
  188. package/dist/components/custom/paper-grid/composables/paperGridGLSetup.d.ts +16 -0
  189. package/dist/components/custom/paper-grid/composables/paperGridWGPUSetup.d.ts +19 -0
  190. package/dist/components/custom/paper-grid/composables/uniformBridgeWGPU.d.ts +16 -0
  191. package/dist/components/custom/paper-grid/composables/usePaperGrid.d.ts +31 -0
  192. package/dist/components/custom/paper-grid/constants.d.ts +57 -0
  193. package/dist/components/custom/paper-grid/index.d.ts +5 -0
  194. package/dist/components/custom/paper-grid/shaders/paper-grid.glsl.d.ts +4 -0
  195. package/dist/components/custom/paper-grid/shaders/paper-grid.wgsl.d.ts +1 -0
  196. package/dist/components/custom/search/FuzzySearch.vue.d.ts +8 -2
  197. package/dist/components/custom/search/SearchBar.vue.d.ts +8 -0
  198. package/dist/components/custom/search/index.d.ts +2 -0
  199. package/dist/components/custom/search/searchVariants.d.ts +19 -0
  200. package/dist/components/custom/selectable-chip/SelectableChip.vue.d.ts +50 -0
  201. package/dist/components/custom/selectable-chip/index.d.ts +2 -0
  202. package/dist/components/custom/selectable-chip/selectableChipVariants.d.ts +23 -0
  203. package/dist/components/custom/spa-view/SpaView.vue.d.ts +50 -0
  204. package/dist/components/custom/spa-view/index.d.ts +2 -0
  205. package/dist/components/custom/split-chars/SplitChars.vue.d.ts +39 -0
  206. package/dist/components/custom/split-chars/index.d.ts +1 -0
  207. package/dist/components/custom/tabs/SegmentedTabs.vue.d.ts +12 -0
  208. package/dist/components/custom/tabs/composables/useTabDragMorph.d.ts +42 -0
  209. package/dist/components/custom/tabs/constants.d.ts +20 -2
  210. package/dist/components/custom/watercolor-dot/WatercolorDot.vue.d.ts +30 -17
  211. package/dist/components/custom/watercolor-dot/useWatercolorBlob.d.ts +10 -5
  212. package/dist/components/ui/_shared/index.d.ts +2 -0
  213. package/dist/components/ui/_shared/menuItemVariants.d.ts +1 -1
  214. package/dist/components/ui/_shared/useControlSize.d.ts +46 -0
  215. package/dist/components/ui/badge/index.d.ts +1 -1
  216. package/dist/components/ui/button/Button.vue.d.ts +5 -2
  217. package/dist/components/ui/button/index.d.ts +2 -2
  218. package/dist/components/ui/card/Card.vue.d.ts +79 -4
  219. package/dist/components/ui/card/CardHeader.vue.d.ts +42 -16
  220. package/dist/components/ui/card/ScrollCard.vue.d.ts +33 -0
  221. package/dist/components/ui/card/ScrollCardHeader.vue.d.ts +17 -0
  222. package/dist/components/ui/card/index.d.ts +3 -1
  223. package/dist/components/ui/carousel/CarouselNext.vue.d.ts +2 -2
  224. package/dist/components/ui/carousel/CarouselPrevious.vue.d.ts +2 -2
  225. package/dist/components/ui/carousel/GlassCarouselPager.vue.d.ts +2 -2
  226. package/dist/components/ui/command/Command.vue.d.ts +1 -1
  227. package/dist/components/ui/command/CommandDialog.vue.d.ts +9 -3
  228. package/dist/components/ui/command/CommandList.vue.d.ts +3 -0
  229. package/dist/components/ui/context-menu/ContextMenuContent.vue.d.ts +5 -1
  230. package/dist/components/ui/drawer/Drawer.vue.d.ts +46 -33
  231. package/dist/components/ui/drawer/DrawerContent.vue.d.ts +7 -8
  232. package/dist/components/ui/drawer/DrawerDescription.vue.d.ts +2 -2
  233. package/dist/components/ui/drawer/DrawerOverlay.vue.d.ts +1 -1
  234. package/dist/components/ui/drawer/DrawerTitle.vue.d.ts +2 -2
  235. package/dist/components/ui/drawer/composables/drawerSnapContext.d.ts +26 -0
  236. package/dist/components/ui/drawer/composables/useDrawerSnap.d.ts +17 -0
  237. package/dist/components/ui/drawer/constants.d.ts +45 -0
  238. package/dist/components/ui/drawer/index.d.ts +23 -15
  239. package/dist/components/ui/dropdown-menu/DropdownMenuContent.vue.d.ts +4 -0
  240. package/dist/components/ui/focus-scope/FocusScope.vue.d.ts +20 -0
  241. package/dist/components/ui/focus-scope/index.d.ts +2 -0
  242. package/dist/components/ui/hover-card/HoverCardContent.vue.d.ts +3 -0
  243. package/dist/components/ui/index.d.ts +1 -0
  244. package/dist/components/ui/input/Input.vue.d.ts +3 -0
  245. package/dist/components/ui/number-field/NumberFieldInput.vue.d.ts +6 -1
  246. package/dist/components/ui/progress/ProgressDefault.vue.d.ts +3 -2
  247. package/dist/components/ui/select/SelectContent.vue.d.ts +4 -1
  248. package/dist/components/ui/sheet/index.d.ts +1 -1
  249. package/dist/components/ui/switch/Switch.vue.d.ts +2 -0
  250. package/dist/components/ui/tags-input/TagsInput.vue.d.ts +2 -2
  251. package/dist/components/ui/textarea/Textarea.vue.d.ts +3 -0
  252. package/dist/components/ui/toast/Toast.vue.d.ts +5 -2
  253. package/dist/components/ui/toast/use-toast.d.ts +14 -0
  254. package/dist/components/ui/toggle/Toggle.vue.d.ts +1 -1
  255. package/dist/components/ui/tooltip/TooltipContent.vue.d.ts +3 -0
  256. package/dist/composables/color/index.d.ts +2 -0
  257. package/dist/composables/color/useAccentTone.d.ts +34 -0
  258. package/dist/composables/glass/canvas2d/useCanvas2D.d.ts +13 -6
  259. package/dist/composables/glass/index.d.ts +5 -2
  260. package/dist/composables/glass/useSpecularPointer.d.ts +33 -0
  261. package/dist/composables/glass/useSpecularTracking.d.ts +20 -0
  262. package/dist/composables/glass/useVizChoreography.d.ts +123 -0
  263. package/dist/composables/glass/vSpecular.d.ts +2 -0
  264. package/dist/composables/glass/webgl/createCanvasLifecycle.d.ts +10 -0
  265. package/dist/composables/glass/webgl/shaders/flow.glsl.d.ts +1 -0
  266. package/dist/composables/glass/webgl/shaders/flow.wgsl.d.ts +1 -0
  267. package/dist/composables/glass/webgl/useWebGLCanvas.d.ts +16 -0
  268. package/dist/composables/glass/webgpu/index.d.ts +2 -0
  269. package/dist/composables/glass/webgpu/useGpuSubstrate.d.ts +75 -0
  270. package/dist/composables/glass/webgpu/useWebGPUCanvas.d.ts +85 -0
  271. package/dist/composables/glass/webgpu/webgpuDevice.d.ts +42 -0
  272. package/dist/composables/motion/core/index.d.ts +4 -0
  273. package/dist/composables/motion/index.d.ts +4 -0
  274. package/dist/composables/motion/scrollReader.d.ts +25 -0
  275. package/dist/composables/motion/springPresets.d.ts +20 -1
  276. package/dist/composables/motion/useCharStagger.d.ts +44 -0
  277. package/dist/composables/motion/useDockCtaReceive.d.ts +84 -0
  278. package/dist/composables/motion/useDragMorph.d.ts +77 -0
  279. package/dist/composables/motion/useLiquidFlex.d.ts +11 -0
  280. package/dist/composables/motion/useLiquidPress.d.ts +71 -0
  281. package/dist/composables/motion/useLiquidReveal.d.ts +51 -0
  282. package/dist/composables/motion/useNumericTransition.d.ts +3 -3
  283. package/dist/composables/motion/usePointerVelocityField.d.ts +98 -0
  284. package/dist/composables/motion/useScrollChrome.d.ts +58 -0
  285. package/dist/composables/motion/useScrollTrigger.d.ts +67 -0
  286. package/dist/composables/motion/useSpringPress.d.ts +5 -5
  287. package/dist/composables/motion/useStaggerReveal.d.ts +24 -0
  288. package/dist/composables/sidebar/index.d.ts +4 -1
  289. package/dist/composables/sidebar/types.d.ts +68 -3
  290. package/dist/composables/sidebar/useClickDelegate.d.ts +4 -0
  291. package/dist/composables/sidebar/useLazyLoader.d.ts +5 -0
  292. package/dist/composables/sidebar/useScrollTo.d.ts +5 -0
  293. package/dist/composables/virtual/index.d.ts +4 -0
  294. package/dist/composables/virtual/useVirtualSectionWindow.d.ts +72 -0
  295. package/dist/composables/virtual/useWindowedStore.d.ts +43 -0
  296. package/dist/composables/virtual/virtualSectionLayout.d.ts +103 -0
  297. package/dist/concentric.d.ts +1 -0
  298. package/dist/concentric.js +836 -0
  299. package/dist/configurator.js +3 -2
  300. package/dist/confirm-dialog.js +62 -49
  301. package/dist/constellation.js +635 -235
  302. package/dist/context-menu.js +3 -3
  303. package/dist/controls.js +2 -2
  304. package/dist/createCanvasLifecycle-Gh45Ce-p.js +93 -0
  305. package/dist/dark.js +1 -1
  306. package/dist/data-table.js +1 -1
  307. package/dist/deck.d.ts +1 -0
  308. package/dist/deck.js +105 -0
  309. package/dist/dialog.js +4 -3
  310. package/dist/dock.js +819 -568
  311. package/dist/{dockContext-Bu1Avy-a.js → dockContext-BNfyPLe9.js} +1 -1
  312. package/dist/dom.js +5 -5
  313. package/dist/dot-flow-field.d.ts +1 -0
  314. package/dist/dot-flow-field.js +894 -0
  315. package/dist/dot-matrix.d.ts +1 -0
  316. package/dist/dot-matrix.js +630 -0
  317. package/dist/dotMatrixField-D_x9_1qq.js +48 -0
  318. package/dist/drawer.d.ts +1 -0
  319. package/dist/drawer.js +380 -0
  320. package/dist/{dropdown-menu-BJ7E9js_.js → dropdown-menu-aJmV5SqE.js} +82 -79
  321. package/dist/dropdown-menu.js +1 -1
  322. package/dist/easing.d.ts +1 -0
  323. package/dist/easing.js +475 -0
  324. package/dist/expandable-container.js +46 -21
  325. package/dist/fading-scroll.js +1 -1
  326. package/dist/flow.glsl-B2P7e0MT.js +4 -0
  327. package/dist/focus-scope.d.ts +1 -0
  328. package/dist/focus-scope.js +23 -0
  329. package/dist/forms.js +65 -63
  330. package/dist/fourier-field.js +831 -172
  331. package/dist/fourier-math.js +1 -1
  332. package/dist/glass-panel.js +2 -2
  333. package/dist/glass-ui.css +1 -1
  334. package/dist/glass-ui.js +187 -338
  335. package/dist/goo-blob.js +241 -692
  336. package/dist/goo-dot-matrix.d.ts +1 -0
  337. package/dist/goo-dot-matrix.js +591 -0
  338. package/dist/handmark.js +2 -2
  339. package/dist/header-ribbon.js +1 -1
  340. package/dist/hover-card.js +1 -1
  341. package/dist/hover-popover.js +1 -1
  342. package/dist/icon-chip.js +1 -1
  343. package/dist/icon-tooltip.js +1 -1
  344. package/dist/index.d.ts +3 -1
  345. package/dist/instrument-chassis.js +1 -1
  346. package/dist/keyboard.js +1 -1
  347. package/dist/label.js +1 -1
  348. package/dist/labeled-field.js +70 -60
  349. package/dist/metric-badge.js +1 -1
  350. package/dist/metric-cell.js +1 -1
  351. package/dist/metric-stack.js +14 -9
  352. package/dist/motion-core.js +58 -36
  353. package/dist/motion-curves.js +11 -1
  354. package/dist/motion.js +90 -53
  355. package/dist/notification.js +1 -1
  356. package/dist/number-field.js +1 -1
  357. package/dist/pager-dots.js +2 -91
  358. package/dist/paper-backdrop.js +1 -1
  359. package/dist/paper-grid.d.ts +1 -0
  360. package/dist/paper-grid.js +788 -0
  361. package/dist/popover.js +1 -1
  362. package/dist/{presets-BW2b-fr1.js → presets-CvOUqtdY.js} +3 -3
  363. package/dist/{compile-EXXzEr1q.js → procedural-color.wgsl-m7Zgv35j.js} +2 -156
  364. package/dist/progress.js +1 -1
  365. package/dist/pulse.js +2 -2
  366. package/dist/reactive.js +1 -1
  367. package/dist/resolveCanvasColor-yPyIpJt9.js +93 -0
  368. package/dist/scrollReader-DI1NWxUw.js +42 -0
  369. package/dist/scrolling-text.js +1 -1
  370. package/dist/search.js +162 -308
  371. package/dist/select.js +3 -3
  372. package/dist/selectable-chip.d.ts +1 -0
  373. package/dist/selectable-chip.js +65 -0
  374. package/dist/separator.js +1 -1
  375. package/dist/{sheet-CquRYOAw.js → sheet-B2flBfLH.js} +5 -5
  376. package/dist/sheet.js +1 -1
  377. package/dist/sidebar.js +216 -114
  378. package/dist/{slider-DQ95MET2.js → slider-2A0rPn79.js} +3 -3
  379. package/dist/slider.js +1 -1
  380. package/dist/sortable-list.js +2 -2
  381. package/dist/spa-view.d.ts +1 -0
  382. package/dist/spa-view.js +46 -0
  383. package/dist/spectrum-walk-BVzA7Biz.js +33 -0
  384. package/dist/{springPresets-WXaLbu8u.js → springPresets-Ce7OYCm9.js} +12 -6
  385. package/dist/styles/animations.css +46 -12
  386. package/dist/styles/border-progress.css +109 -0
  387. package/dist/styles/cards.css +145 -0
  388. package/dist/styles/completion-seal.css +131 -0
  389. package/dist/styles/components.css +2 -3
  390. package/dist/styles/configurator.css +55 -0
  391. package/dist/styles/critical-partition.mjs +162 -0
  392. package/dist/styles/critical.css +12 -0
  393. package/dist/styles/deferred.css +33 -0
  394. package/dist/styles/dock/cta-seat.css +87 -0
  395. package/dist/styles/dock/density.css +198 -0
  396. package/dist/styles/dock/layers.css +101 -29
  397. package/dist/styles/dock/morph-bridge.css +54 -18
  398. package/dist/styles/dock/morph.css +132 -7
  399. package/dist/styles/dock/overflow.css +28 -2
  400. package/dist/styles/dock/search.css +68 -0
  401. package/dist/styles/dock/shape.css +124 -0
  402. package/dist/styles/dock/shell.css +77 -21
  403. package/dist/styles/dock/stack-rail.css +264 -0
  404. package/dist/styles/dock-controls/dark-mode-toggle.css +17 -4
  405. package/dist/styles/dock-controls/icon-button.css +14 -0
  406. package/dist/styles/dock.css +43 -1
  407. package/dist/styles/drawer.css +81 -35
  408. package/dist/styles/glass/accent-tone.css +66 -0
  409. package/dist/styles/glass/control-surfaces.css +167 -0
  410. package/dist/styles/glass/deep.css +44 -0
  411. package/dist/styles/glass/ladder.css +147 -41
  412. package/dist/styles/glass/material.css +78 -15
  413. package/dist/styles/glass/reveal.css +136 -0
  414. package/dist/styles/glass/rim.css +110 -0
  415. package/dist/styles/glass/surfaces.css +148 -129
  416. package/dist/styles/glass-refract.css +96 -44
  417. package/dist/styles/glass-specular-track.css +7 -0
  418. package/dist/styles/glass.css +13 -0
  419. package/dist/styles/hover-popover.css +7 -6
  420. package/dist/styles/icon-chip.css +77 -15
  421. package/dist/styles/index.css +36 -9
  422. package/dist/styles/instrument-chassis.css +66 -3
  423. package/dist/styles/scroll-choreography.css +300 -0
  424. package/dist/styles/scroll-chrome.css +123 -0
  425. package/dist/styles/scroll-driven.css +38 -0
  426. package/dist/styles/segmented-tabs.css +81 -14
  427. package/dist/styles/theme/bridges.css +33 -0
  428. package/dist/styles/theme/literals.css +11 -2
  429. package/dist/styles/theme/radius.css +24 -2
  430. package/dist/styles/tokens/color-radius.css +13 -3
  431. package/dist/styles/tokens/dark-arm.css +137 -32
  432. package/dist/styles/tokens/glass-deep.css +100 -0
  433. package/dist/styles/tokens/glass-fx.css +376 -0
  434. package/dist/styles/tokens/glass.css +131 -351
  435. package/dist/styles/tokens/light-dark.css +16 -3
  436. package/dist/styles/tokens/offsets.css +143 -0
  437. package/dist/styles/tokens/on-glass-fg.css +39 -0
  438. package/dist/styles/tokens/property-regs.css +260 -0
  439. package/dist/styles/tokens/scale-paper.css +168 -96
  440. package/dist/styles/tokens/scheme-motion.css +114 -38
  441. package/dist/styles/tokens/scroll-tokens.css +123 -0
  442. package/dist/styles/tokens/sizing-config.css +110 -0
  443. package/{src/styles/tokens/offsets-sizing.css → dist/styles/tokens/sizing.css} +92 -204
  444. package/dist/styles/tokens.css +14 -3
  445. package/dist/styles/typography/semantic.css +26 -13
  446. package/dist/styles/typography/utilities.css +22 -7
  447. package/dist/styles/utilities/a11y-overrides.css +20 -5
  448. package/dist/styles/utilities/animate.css +27 -24
  449. package/dist/styles/utilities/base-misc.css +307 -0
  450. package/dist/styles/utilities/base.css +47 -261
  451. package/dist/styles/utilities/btn.css +17 -4
  452. package/dist/styles/utilities/components.css +31 -6
  453. package/dist/styles/utilities/metal.css +215 -0
  454. package/dist/styles/utilities.css +14 -7
  455. package/dist/switch.js +1 -1
  456. package/dist/tabs.js +220 -107
  457. package/dist/timeline.js +2 -2
  458. package/dist/toast.js +1 -1
  459. package/dist/toggle-chip.js +10 -10
  460. package/dist/toggle-group.js +1 -1
  461. package/dist/tooltip.js +1 -1
  462. package/dist/typewriter.js +2 -2
  463. package/dist/uniformBridgeWGPU-CtAKl45L.js +1204 -0
  464. package/dist/{useAnimatedNumber-C_3wZLx4.js → useAnimatedNumber-CLrxicG9.js} +1 -1
  465. package/dist/useConfiguratorState-4xblKfwd.js +162 -0
  466. package/dist/useControlSize-SH1UmJCi.js +9 -0
  467. package/dist/useDockCtaReceive-DfFkmgL1.js +82 -0
  468. package/dist/useDragMorph-BUgAC-zK.js +102 -0
  469. package/dist/useFuzzySearch-DIhcYtcw.js +177 -0
  470. package/dist/useGpuSubstrate-4pTcp6mX.js +294 -0
  471. package/dist/useLiquidPress-BooG97RY.js +39 -0
  472. package/dist/usePointerVelocityField-QLsy3_kv.js +91 -0
  473. package/dist/useScrollChrome-D66AVP7C.js +258 -0
  474. package/dist/useSpring-C0jyvEJB.js +40 -0
  475. package/dist/useSpringMount-BWDnKIwh.js +71 -0
  476. package/dist/useSpringPress-B1-Czp-V.js +36 -0
  477. package/dist/{useTouchGate-28Tk2-t2.js → useTouchGate-CBZTD4SD.js} +1 -1
  478. package/dist/useViewTransition-CUI1nAgn.js +95 -0
  479. package/dist/vSpecular-EX7loENl.js +68 -0
  480. package/dist/vendor-B2qOlYY3.js +239 -0
  481. package/dist/virtual.d.ts +1 -0
  482. package/dist/virtual.js +225 -0
  483. package/dist/watercolor-dot.js +117 -74
  484. package/package.json +252 -28
  485. package/src/styles/animations.css +46 -12
  486. package/src/styles/border-progress.css +109 -0
  487. package/src/styles/cards.css +145 -0
  488. package/src/styles/completion-seal.css +131 -0
  489. package/src/styles/configurator.css +55 -0
  490. package/src/styles/critical-partition.mjs +162 -0
  491. package/src/styles/dock/cta-seat.css +87 -0
  492. package/src/styles/dock/density.css +198 -0
  493. package/src/styles/dock/layers.css +101 -29
  494. package/src/styles/dock/morph-bridge.css +54 -18
  495. package/src/styles/dock/morph.css +132 -7
  496. package/src/styles/dock/overflow.css +28 -2
  497. package/src/styles/dock/search.css +68 -0
  498. package/src/styles/dock/shape.css +124 -0
  499. package/src/styles/dock/shell.css +77 -21
  500. package/src/styles/dock/stack-rail.css +264 -0
  501. package/src/styles/dock-controls/dark-mode-toggle.css +17 -4
  502. package/src/styles/dock-controls/icon-button.css +14 -0
  503. package/src/styles/dock.css +43 -1
  504. package/src/styles/drawer.css +81 -35
  505. package/src/styles/glass/accent-tone.css +66 -0
  506. package/src/styles/glass/control-surfaces.css +167 -0
  507. package/src/styles/glass/deep.css +44 -0
  508. package/src/styles/glass/ladder.css +147 -41
  509. package/src/styles/glass/material.css +78 -15
  510. package/src/styles/glass/reveal.css +136 -0
  511. package/src/styles/glass/rim.css +110 -0
  512. package/src/styles/glass/surfaces.css +148 -129
  513. package/src/styles/glass-refract.css +96 -44
  514. package/src/styles/glass-specular-track.css +7 -0
  515. package/src/styles/glass.css +13 -0
  516. package/src/styles/hover-popover.css +7 -6
  517. package/src/styles/icon-chip.css +77 -15
  518. package/src/styles/index.css +27 -0
  519. package/src/styles/instrument-chassis.css +66 -3
  520. package/src/styles/scroll-choreography.css +300 -0
  521. package/src/styles/scroll-chrome.css +123 -0
  522. package/src/styles/scroll-driven.css +38 -0
  523. package/src/styles/segmented-tabs.css +81 -14
  524. package/src/styles/theme/bridges.css +33 -0
  525. package/src/styles/theme/literals.css +11 -2
  526. package/src/styles/theme/radius.css +24 -2
  527. package/src/styles/tokens/color-radius.css +13 -3
  528. package/src/styles/tokens/dark-arm.css +137 -32
  529. package/src/styles/tokens/glass-deep.css +100 -0
  530. package/src/styles/tokens/glass-fx.css +376 -0
  531. package/src/styles/tokens/glass.css +131 -351
  532. package/src/styles/tokens/light-dark.css +16 -3
  533. package/src/styles/tokens/offsets.css +143 -0
  534. package/src/styles/tokens/on-glass-fg.css +39 -0
  535. package/src/styles/tokens/property-regs.css +260 -0
  536. package/src/styles/tokens/scale-paper.css +168 -96
  537. package/src/styles/tokens/scheme-motion.css +114 -38
  538. package/src/styles/tokens/scroll-tokens.css +123 -0
  539. package/src/styles/tokens/sizing-config.css +110 -0
  540. package/{dist/styles/tokens/offsets-sizing.css → src/styles/tokens/sizing.css} +92 -204
  541. package/src/styles/tokens.css +14 -3
  542. package/src/styles/typography/semantic.css +26 -13
  543. package/src/styles/typography/utilities.css +22 -7
  544. package/src/styles/utilities/a11y-overrides.css +20 -5
  545. package/src/styles/utilities/animate.css +27 -24
  546. package/src/styles/utilities/base-misc.css +307 -0
  547. package/src/styles/utilities/base.css +47 -261
  548. package/src/styles/utilities/btn.css +17 -4
  549. package/src/styles/utilities/components.css +31 -6
  550. package/src/styles/utilities/metal.css +215 -0
  551. package/src/styles/utilities.css +14 -7
  552. package/dist/CardAction-XH4YBVEK.js +0 -158
  553. package/dist/ContextMenuContent-ON3x7cuk.js +0 -85
  554. package/dist/DialogFooter-8eZbdmPc.js +0 -165
  555. package/dist/HoverCardContent-DkMaQzH5.js +0 -83
  556. package/dist/Input-DVG_J0ne.js +0 -55
  557. package/dist/Notification-DKjKsQq8.js +0 -100
  558. package/dist/NumberFieldContent-1VtwDSgf.js +0 -145
  559. package/dist/Separator-BArl4OaB.js +0 -37
  560. package/dist/Switch-Dr--uLGH.js +0 -47
  561. package/dist/Toaster-Bm_HQSpc.js +0 -263
  562. package/dist/ToggleGroupItem-Dzk9hWsF.js +0 -157
  563. package/dist/TooltipProvider-B3MkB_8P.js +0 -104
  564. package/dist/button-BNDWhAZb.js +0 -81
  565. package/dist/check-njhk-vfu.js +0 -7
  566. package/dist/chevron-down-DKkxb4VV.js +0 -7
  567. package/dist/chevron-right-CPXbqQQz.js +0 -7
  568. package/dist/chevron-up-n_24SqI-.js +0 -7
  569. package/dist/color-DweYl7pE.js +0 -86
  570. package/dist/components/custom/constellation/composables/useConstellationPointer.d.ts +0 -35
  571. package/dist/components/custom/constellation/constellationDraw.d.ts +0 -30
  572. package/dist/components/custom/dock/DockRail.vue.d.ts +0 -89
  573. package/dist/createLucideIcon-DydS2qgk.js +0 -43
  574. package/dist/minimize-2-BV31Ob_h.js +0 -38
  575. package/dist/resolveCanvasColor-BBiYfp8g.js +0 -11
  576. package/dist/search-BSGrf2Sk.js +0 -12
  577. package/dist/styles/dock/rail-extend.css +0 -397
  578. package/dist/useCanvas2D-ClrQuZtp.js +0 -96
  579. package/dist/useConfiguratorState-kiIlun8I.js +0 -303
  580. package/dist/useRAFLoop-CdwJ7284.js +0 -109
  581. package/dist/useSpecularTracking-Bo5su68i.js +0 -32
  582. package/dist/useSpringMount-CvopqiFr.js +0 -108
  583. package/dist/useViewTransition-COsPjQVZ.js +0 -47
  584. package/dist/x-BUwTKe50.js +0 -10
  585. package/src/styles/dock/rail-extend.css +0 -397
  586. /package/dist/{CollapsibleContent-C_s6fG7r.js → CollapsibleContent-68dEXIAl.js} +0 -0
  587. /package/dist/{InstrumentChassis-UUJX0-mW.js → InstrumentChassis-CxsHSyMj.js} +0 -0
  588. /package/dist/{Label-Ck9SWEKM.js → Label-C2ejNWeC.js} +0 -0
  589. /package/dist/{ModalOverlay-CkPRRgl_.js → ModalOverlay-D1VrWyoi.js} +0 -0
  590. /package/dist/{PaperBackdrop-nBKe0vkB.js → PaperBackdrop-CqwjnfLv.js} +0 -0
  591. /package/dist/{SelectGroup-Dcczq44n.js → SelectGroup-BFiod7X2.js} +0 -0
  592. /package/dist/{_plugin-vue_export-helper-CBt_VvXa.js → _plugin-vue_export-helper-C1je1s0u.js} +0 -0
  593. /package/dist/{badge-UILT_3pZ.js → badge-D9XWW4GT.js} +0 -0
  594. /package/dist/{constants-BPOqYJAm.js → constants--C2DkLW8.js} +0 -0
  595. /package/dist/{createContext-B2RaZ-b8.js → createContext-CpBNTRMI.js} +0 -0
  596. /package/dist/{math-DeuJwLFx.js → math-Eb0w3LqU.js} +0 -0
  597. /package/dist/{menuItemVariants-DWRQXBxJ.js → menuItemVariants-D8VNHq22.js} +0 -0
  598. /package/dist/{prng-Cg22zv8g.js → prng-B-d9eYX8.js} +0 -0
  599. /package/dist/{useGlobalDark-C28t0VWJ.js → useGlobalDark-CmjB9E32.js} +0 -0
  600. /package/dist/{useIntersectionPause-Bj4sPkMh.js → useIntersectionPause-Dbozzjgm.js} +0 -0
  601. /package/dist/{useKeyboardShortcuts-BXWXOZ-9.js → useKeyboardShortcuts-BPRp33Im.js} +0 -0
  602. /package/dist/{useLiquidFlex-C12hXwOZ.js → useLiquidFlex-UmA6LMZu.js} +0 -0
  603. /package/dist/{useResizeObserver-V6nq5gJb.js → useResizeObserver-Bpoi7tRE.js} +0 -0
  604. /package/dist/{useResolveTokenColor-NUG2zYAW.js → useResolveTokenColor-vAylyR0x.js} +0 -0
  605. /package/dist/{useScrollProgress-D7bYU2RK.js → useScrollProgress-c3yxmH6a.js} +0 -0
  606. /package/dist/{useSurfaceAxis-CMnF2zHb.js → useSurfaceAxis-g0NloYEF.js} +0 -0
  607. /package/dist/{useTimer-B_PAasDL.js → useTimer-BHJOKr35.js} +0 -0
  608. /package/dist/{useUserInvalidAria-CDfJuakL.js → useUserInvalidAria-y5namzeE.js} +0 -0
  609. /package/dist/{useViewportReady-CvBcCYDf.js → useViewportReady-anbac3m6.js} +0 -0
@@ -0,0 +1,143 @@
1
+ /* tokens/offsets.css
2
+ §9 animation offsets — hover-lift offsets, the layout tokens, the public
3
+ --fade-scroll-width ramp, the dock content-overflow caps, the chassis
4
+ max-block-size/mobile dial-reserve, the popover width, the panel inner-padding
5
+ rung, the chart geometry.
6
+ Carved (BB.W-CARVE3) from the former tokens/offsets-sizing.css §9/§10 split;
7
+ @import-ed by tokens.css at offsets-sizing's old cascade slot, immediately
8
+ before sizing.css — adjacent same-selector :root blocks resolve identically,
9
+ so the dist is byte-isomorphic. See docs/precepts/design-idioms.md
10
+ §cohesion-aware partials. */
11
+ :root {
12
+ /* ═══════════════════════════════════════════════
13
+ §9 ANIMATION OFFSETS
14
+ ═══════════════════════════════════════════════ */
15
+ /* Hover lift offsets */
16
+ --lift-sm: -1px;
17
+ --lift-md: -2px;
18
+ --lift-lg: -4px;
19
+
20
+ /* Layout tokens */
21
+ /* BA.W-FADING-SCROLL — `--fade-scroll-width` is the public edge-fade ramp
22
+ width knob for `<FadingScroll>` (inheriting, retunable on any ancestor).
23
+ It superseded the scroll-BLIND `.scroll-fade-*` static masks' knob
24
+ `--mask-fade-width`, which retired in a CLEAN BREAK (no alias) at the
25
+ 4.1.0 cut — BB.W-SCROLL-FADE-RETIRE — alongside the static utilities. */
26
+ --fade-scroll-width: 1rem;
27
+ /* J.W3.C — dock content overflow caps. When dock content exceeds
28
+ these dimensions, the inner `.dock-layers` (horizontal) /
29
+ `.glass-dock.vertical` (rail) container scrolls with a
30
+ `.scroll-fade-{x,y}` mask-fade so the boundary feathers rather
31
+ than cliffs. Defaults clamp to 80vw / 80vh capped at sensible
32
+ desktop widths; consumers override per-dock by setting either
33
+ token directly on a `.glass-dock` instance. User findings 1 + 5a. */
34
+ /* AX.W04 — `--dock-max-inline-size` is the canonical inline cap EVERY overflow
35
+ strategy reads: `overflow="scroll"` scrolls past it, and `overflow="wrap"`
36
+ wraps to N rows on the over-cap crossing (the dock shrink-wraps to content,
37
+ `max-inline-size` caps that intrinsic width at this token). The prior
38
+ `--dock-overflow-bp: 640px` viewport-breakpoint token (the magic-640
39
+ snap-back) is DELETED — the wrap is content-driven, not viewport-coupled, so
40
+ there is no breakpoint threshold to name. */
41
+ --dock-max-inline-size: min(80vw, 64rem);
42
+ --dock-max-block-size: min(80vh, 48rem);
43
+
44
+ /* AB.W1.T1 — chassis max-block-size guardrail.
45
+ Maximum block size a centred consumer-app card may consume while
46
+ preserving the inline dock footprint. The recipe subtracts the
47
+ consumer-owned `--dock-footer-space` (dock height + dock inset +
48
+ card-edge inset) and `--page-padding-top` from the dynamic viewport,
49
+ then takes one further rem of breathing room so the card never
50
+ butts the dock — the user mandate is `≥ 1rem visible gap above
51
+ dock`. Both consumer tokens carry safe fallbacks for callers that
52
+ have not declared them.
53
+
54
+ Consumers should shrink internal regions (meter, readout, timeline)
55
+ before falling back to scroll. This token is a guardrail against
56
+ chassis overflow, NOT a license to make the card scroll as the
57
+ default solution; clamp-first / no-scroll-first is the canon.
58
+ See DESIGN.md `## Chassis sizing — dock-adjusted viewport`. */
59
+ --chassis-max-block-size: calc(
60
+ 100dvh
61
+ - var(--dock-footer-space, 5.75rem)
62
+ - var(--page-padding-top, 0rem)
63
+ - 1rem
64
+ );
65
+ /* R0G-2 (AO.W3/W4) — chassis mobile dial-reserve canon. instrument-
66
+ chassis.css's mobile breakpoint reserves the dial's final box from
67
+ frame 0 via these vars (with the same values as inline fallbacks, the
68
+ safety net). Token-first home so the vars resolve canonically. */
69
+ --instrument-dial-min-height-mobile: 24rem;
70
+ --instrument-dial-meter-reserve-mobile: minmax(0, 1fr);
71
+ /* BB.W-DESKTOP-RESERVE (B3) — the chassis WIDE-AXIS (desktop) dial reserve
72
+ canon, the complement of the mobile rung above. The mobile reflow
73
+ reserves the dial box from frame 0 via the rung above; the WIDE box axis
74
+ had NO library reserve, so on desktop a `1fr` meter row collapsed to its
75
+ pre-hydration intrinsic `<canvas>` size and grew on hydration, pushing
76
+ the results card + dock down (the measured desktop-1440 CLS the speedtest
77
+ App.vue interim authored a local `min-block-size` to cure). This rung is
78
+ the library home: the dial cell reserves its settled height from frame 0
79
+ on the wide axis, so the inner card mounts into an already-correct
80
+ envelope (CLS≈0, no post-hydration growth).
81
+
82
+ The default IS `--chassis-max-block-size` — the library's own
83
+ chassis-sizing guardrail (the dock-adjusted dynamic-viewport budget a
84
+ centred consumer card clamps to), a pure CSS calc that resolves at first
85
+ paint with NO JS. This is the DESKTOP DIAL: a consumer whose meter is a
86
+ different block-size retunes THIS token (the speedtest-specific value
87
+ stays in speedtest — presets-in-consumers). A consumer deletes its local
88
+ App.vue wide-axis interim once it consumes this rung. Both knobs are CSS
89
+ custom properties (token-first), the inline fallback in
90
+ instrument-chassis.css carries the contract if the token is unset. */
91
+ --instrument-dial-min-block-size-desktop: var(--chassis-max-block-size);
92
+
93
+ --max-width-input: 24rem;
94
+ --input-min-width-sm: 5rem;
95
+ --min-width-input-sm: var(--input-min-width-sm);
96
+ /* AU.W8b.4 — canonical popover width (Combobox list + anchor). Lifts the
97
+ `w-[200px]` arbitrary-value wrap to the `w-popover` @theme utility. */
98
+ --popover-width: 200px;
99
+ /* AZ.R5-4 — the ONE panel inner-padding rung (the consumer-verified "the
100
+ popover/dropdown content reads TIGHT" finding). The floating-panel +
101
+ DropdownMenuContent recipes read THIS token for their inner pad instead of
102
+ the prior hand-set `p-1`/literal, so a consumer retunes every teleported
103
+ menu/panel surface from one override. The comfortable default is `0.375rem`
104
+ (a half-rung over the prior 0.25rem tight floor — comfortable both modes
105
+ without over-padding a dense menu list). BB.W-CARD-PAD — the dead
106
+ `--panel-padding-roomy` (1rem) is DELETED here (clean break, no alias): it
107
+ had ZERO `var(--panel-padding-roomy)` consumers (the prose-popover register
108
+ it claimed to back never read it — PopoverContent paints `p-4` directly), so
109
+ it was an orphan declaration the golden-padding cut prunes. */
110
+ --panel-padding: 0.375rem;
111
+
112
+ /* BC.W-OVERLAY-UNIFORM — the token-BACKING of the raw floating-overlay
113
+ literals (the token-beats-prop seam). Each defaults to the byte-identical
114
+ HEAD magnitude so a bare overlay is pixel-unchanged; a consumer retunes
115
+ EVERY overlay's min-width / max-block / tooltip type / select chevron from
116
+ ONE `:root` override (the uniformity payoff). These are token-backings of
117
+ EXISTING raw literals (`min-w-32` / `max-h-[60vh]` / tooltip `text-sm` /
118
+ chevron `opacity-50`) — NOT a new compositing register (the `surface` axis
119
+ + the φ `--overlay-pad-*` ladder are THREADED, not re-minted). */
120
+ /* `min-w-32` = 32 × 0.25rem = 8rem — the dropdown/select/context-menu min-width. */
121
+ --overlay-min-width: 8rem;
122
+ /* The collision-bounded max-block ceiling the dropdown (`max-h-[60vh]`) +
123
+ command list (`max-h-[300px]`) read. Defaults to 60vh — the viewport-
124
+ relative ceiling so a long menu scrolls inside the overlay rather than
125
+ running off-screen. (The Select precompiled `[data-slot="select-content"]`
126
+ max-height in select.css is the BA.W-EMISSION consumer-reach floor — KEPT,
127
+ not threaded here; see the census on-the-line row.) */
128
+ --overlay-max-block: 60vh;
129
+ /* The tooltip type rung — the golden quiet caption register (√φ ladder), the
130
+ token-backing of the bare `text-sm` on TooltipContent (the overlay share of
131
+ class 3). Defaults to `--type-caption` so the compact tooltip chip reads the
132
+ house caption scale; a consumer retunes the tooltip type from `:root`. */
133
+ --tooltip-text: var(--type-caption);
134
+ /* The Select trigger chevron opacity — the token-backing of the bare
135
+ `opacity-50` so a consumer retunes the affordance prominence from `:root`. */
136
+ --select-chevron-opacity: 0.5;
137
+
138
+ --chart-height-compact: 15rem;
139
+ --chart-height-default: 22.5rem;
140
+ --chart-height-large: 25rem;
141
+ --chart-margin: 1.25rem;
142
+ --paper-texture-size: 200px 200px;
143
+ }
@@ -0,0 +1,39 @@
1
+ /* tokens/on-glass-fg.css
2
+ The surface-aware FOREGROUND register (BB.W-ON-GLASS-FG — N13). Carved out of
3
+ tokens/glass.css to keep that partial under the no-god-module bound; @import-ed
4
+ by tokens.css in cascade order AFTER glass.css (the rungs derive against the
5
+ glass-bg-quiet composite, so they must resolve after the §8 ladder). Same :root
6
+ cascade context as its sibling token partials.
7
+
8
+ A THREE-RUNG on-glass family whose contrast TARGET is the COMPOSITED content-
9
+ tier glass FILL, not the canvas. The glass-first MAXIMAL default (AX.W54) makes
10
+ a caption/well/track rendering over a TRANSLUCENT content plate the common case;
11
+ --muted-foreground (= --neutral-5, "AA vs page") collapses on its OWN surface
12
+ (the speedtest ask measured 1.15-3.29:1 in dark theme — the "whisper collapse").
13
+
14
+ This is the THIRD state the BA adaptive-glass seam never expressed (the SAME
15
+ --glass-tint-* cascade context, NOT a fork): (a) bright/darkened plate → full
16
+ ink (the @container bright bucket + the overlay band, shipped — glass/ladder.css);
17
+ (b) opaque canvas → page-muted (--neutral-5, kept); (c) THIS — calm translucent
18
+ glass plate → a register BETWEEN page-muted and full-ink (legible-AND-subordinate;
19
+ a caption stays quieter than body ink WHILE clearing AA on the composited plate).
20
+
21
+ The values are DERIVED against the LIBRARY composite (--card over --neutral-0
22
+ through --glass-bg-quiet at --glass-tint-strength-floor), warm-amber (the BA.W-
23
+ NO-GRAY identity, OKLab gray floor cleared at the warm hue) — NOT copied from
24
+ the slides deck.css §1 reference (the deck's NC-State-red warm-cream literals
25
+ hsl(24 6% 44%)/hsl(45 12% 64%) are a CONSUMER divergence; the library re-derives).
26
+ NO ppmycota/demo hue. The page-muted register (--muted-foreground/-strong) is
27
+ UNTOUCHED — the on-glass rungs are NET-NEW; the glass/ladder.css calm-tier rule
28
+ re-points --muted-foreground → these on the engaged plate, no per-site edit.
29
+
30
+ PLAIN PER-MODE ARM idiom (light here, dark in tokens/dark-arm.css) — NOT
31
+ light-dark(): the house pattern every explicit-color token follows (a re-
32
+ resolution under .dark, not a single-declaration light-dark() that an inset-
33
+ shadow downstream could collapse — the light-dark() inset-shadow trap). */
34
+ :root {
35
+ --on-glass-muted: hsl(30 26% 35%); /* the muted caption rung over the composited cream plate (5.76:1 vs plate; darker than --neutral-5 L40) */
36
+ --on-glass-muted-strong: hsl(28 28% 28%); /* the -strong secondary rung, one step more present (7.79:1 vs plate) */
37
+ --input-on-glass: hsl(36 40% 92%); /* the form-well fill over glass — grounded warm so the input TEXT (--foreground) reads against a stable base (14.9:1) */
38
+ --progress-track-on-glass: hsl(34 24% 84%); /* the recessed meter track over glass — a warm channel distinct from the fill silhouette */
39
+ }
@@ -41,6 +41,21 @@
41
41
  initial-value: 0%;
42
42
  }
43
43
 
44
+ /* BB.W-BORDER-PROGRESS — the masked-conic BORDER ring's sweep fill. The conic
45
+ gradient (border-progress.css) reads `--border-progress-fill` as the swept
46
+ extent (`conic-gradient(…, transparent var(--border-progress-fill), …)`), so a
47
+ determinate progress INTERPOLATES the border ring (a bare unregistered var()
48
+ snaps the sweep; the registered typed <percentage> lets the engine animate the
49
+ gradient stop). `inherits: false` — each ring owns its own fill (the per-surface
50
+ ownership the specular cohort uses; a ringed parent must not push its fill onto a
51
+ child). `initial-value: 0%` is the safe resting ring (the unregistered fallback
52
+ paints it; the cross-fade collapses to it on a non-supporting engine). */
53
+ @property --border-progress-fill {
54
+ syntax: "<percentage>";
55
+ inherits: false;
56
+ initial-value: 0%;
57
+ }
58
+
44
59
  @property --phase-tint-amount {
45
60
  syntax: "<percentage>";
46
61
  inherits: true;
@@ -91,6 +106,84 @@
91
106
  initial-value: 0;
92
107
  }
93
108
 
109
+ /* BB.W-LENSING — the per-surface EDGE-glint angle channel. `--specular-angle` is
110
+ the pointer angle-from-center the edge-glint conic sweep reads (material.css);
111
+ `useSpecularPointer` writes it (the angle feed). `inherits: false` — the
112
+ per-element ownership discipline of the specular cohort above (each pseudo owns
113
+ its typed value; a parent's angle must never bleed into a child glass surface).
114
+ `initial-value: 0deg` is the static rest position (the rim glint sits top when
115
+ unwired — no ambient drift, no blowout). */
116
+ @property --specular-angle {
117
+ syntax: "<angle>";
118
+ inherits: false;
119
+ initial-value: 0deg;
120
+ }
121
+
122
+ /* BB.W-LENSING `--glass-refract` axis — RETIRED (DDR-LENS-BAKE, glass-refract.css).
123
+ The axis drove the `feDisplacementMap` `scale` by splicing `var(--glass-refract)`
124
+ between a head/tail `url()` pair. That construction never parsed as a
125
+ `backdrop-filter` (it emitted three tokens, not one url) AND broke consumer bundlers
126
+ (the tail `url("'…")` mis-resolved as a file path); a CSS url() string token cannot
127
+ carry a substituted `var()`, so a dynamic `scale` inside the mandatory single
128
+ self-contained data-URI is structurally impossible. The `scale` is now BAKED at 28
129
+ (the resting bend, byte-identical) — no axis, no `@property` reg. */
130
+
131
+ /* BB.W-GLASS-ACCENT — the THIRD disjoint glass axis: the per-INSTANCE
132
+ CHROMATIC-RIM tint. `--glass-accent` is a complete `<color>` (a consumer DATA
133
+ hue) that OKLab-tints a glass surface's RIM (the `--glass-material-rim` inset
134
+ ring + the per-rung `--glass-border-*`) and the `::before` specular catch-light
135
+ CORE — so the §F1 data-keyed colored hover (a chart cell whose surface glows
136
+ with that datum's series hue) is a ONE-LINE seam (`--glass-accent: <hue>;
137
+ --glass-accent-strength: <N%>` on the instance), not a hand-threaded
138
+ `border-color` + inline catch-light per consumer.
139
+
140
+ DISTINCT-not-fork of W55's `--glass-tint-source` (the WHOLE-PLATE BACKGROUND
141
+ legibility darken toward `--glass-tint-ink`): the accent is the RIM+GLINT
142
+ chromatic DECORATION axis (toward a consumer DATA hue, per-instance), it NEVER
143
+ writes the W55 cohort and NEVER tints the plate background. Three disjoint glass
144
+ axes: LEVEL (opacity+blur, AX.W54) · TINT (whole-plate legibility, W55) · ACCENT
145
+ (per-instance chromatic rim+glint, this wave).
146
+
147
+ • --glass-accent (<color>) — the consumer data hue. `inherits: true` (the
148
+ `--glass-level`-style cascading scalar — a host sets it on an ancestor to tint
149
+ a sub-tree; a consumer sets it per-INSTANCE on the surface). `initial-value:
150
+ transparent` is the NEUTRAL IDENTITY: a `color-mix(in oklab, X, transparent N)`
151
+ is byte-identical X at the resting end, so an UNSET surface paints exactly
152
+ today's warm-ink rim + warm-cream catch-light (the W2 neutral-fallback floor).
153
+
154
+ • --glass-accent-strength (<percentage>) — the bounded knob. `inherits: true`
155
+ (rides the accent down the same sub-tree). `initial-value: 0%` so the mix is a
156
+ provable no-op when unset (`color-mix(in oklab, X, <accent> 0%)` === X). The
157
+ consumer-set ceiling is a WHISPER at the rim, not a flooded plate — the demo
158
+ specimens engage ~40-55% (the rim/glint reads the hue while the warm-cream core
159
+ + the AA legibility survive; the `--glass-tint-strength-aa` ≤24% bounding
160
+ precedent, lifted here because the accent rides the THIN rim/glint not the
161
+ whole plate). A malformed override CLAMPS to 0% (the typed fail-safe). */
162
+ @property --glass-accent {
163
+ syntax: "<color>";
164
+ inherits: true;
165
+ initial-value: transparent;
166
+ }
167
+
168
+ @property --glass-accent-strength {
169
+ syntax: "<percentage>";
170
+ inherits: true;
171
+ initial-value: 0%;
172
+ }
173
+
174
+ /* BC.W-GLASS-GLOW-FIX (Atlas A-8) — the Pulse aura breath SCALE. The `ambient-pulse`
175
+ keyframe runs on `.pulse-aura` and writes this property; the `.pulse-aura::before`
176
+ child (the radial paint) reads it via `transform: scale(var(--pulse-aura-breath-
177
+ scale))`. Typed `<number>` so the keyframe INTERPOLATES it per-frame (a bare
178
+ unregistered var would snap min↔max). INHERITS so the pseudo-element picks it up
179
+ from its originating `.pulse-aura` (the aura has no content descendants — it is
180
+ `aria-hidden` + empty — so the inherit only reaches the `::before` halo). */
181
+ @property --pulse-aura-breath-scale {
182
+ syntax: "<number>";
183
+ inherits: true;
184
+ initial-value: 1;
185
+ }
186
+
94
187
  /* AX.W54 — the GLASS-FIRST single knob. `--glass-level` is the ONE clarity
95
188
  scalar threaded through BOTH glass ladders at their single sites (the
96
189
  `--glass-bg-*` opacity recipe + the `--glass-blur-*` radii). It is a typed,
@@ -114,6 +207,47 @@
114
207
  initial-value: 1;
115
208
  }
116
209
 
210
+ /* BC.W-ADAPTIVE-RECONCILE — the OBSERVER's measured backdrop relative-luminance, now
211
+ LOAD-BEARING. `useGlassBackdropLuminance` WRITES `--glass-backdrop-luma` (0..1) on
212
+ the glass target; the content/overlay/dock `:where()` rules READ it on the RHS of the
213
+ `--glass-tint-strength` clamp (glass/ladder.css, dock/morph.css) — the continuous
214
+ driver that lifts the calm 4% floor toward the ≤24% AA ceiling as the measured
215
+ backdrop brightens past the knee (the iOS-27 dynamic-range shift; apple-ios27.md §1.5).
216
+ Registered as a typed INHERITING `<number>` (the `--glass-level`/`--progress-crescendo`
217
+ precedent) so a bare `var()` INTERPOLATES smoothly between sample frames instead of
218
+ snapping (a per-sample re-paint would flicker the plate). `inherits: true` so the
219
+ observer's write on the target reaches every descendant glass surface that reads the
220
+ clamp. `initial-value: 0` is the calm-dark rest: with luma 0 the clamp's luma-ramp is
221
+ `max(0, …) = 0`, so an unwired surface resolves EXACTLY the floor (the zero-delta calm
222
+ identity GLASS-IDENTITY pins). This replaces the empty `--glass-backdrop-luma: ;`
223
+ placeholder declaration (the dead-knob's write-only stub) — the loop now READS. */
224
+ @property --glass-backdrop-luma {
225
+ syntax: "<number>";
226
+ inherits: true;
227
+ initial-value: 0;
228
+ }
229
+
230
+ /* BB.W-DEEP-GLASS — the OPT-IN deep-glass DEPTH scalar. `--glass-depth` is the
231
+ `--glass-level` TWIN for the deep tier: a typed INHERITING <number> so a host
232
+ sets it on any ancestor to retune the deep tier's depth (the cascading-scalar
233
+ idiom, distinct from the per-element `inherits: false` specular cohort). The
234
+ deep recipe (tokens/glass-deep.css) LERPs both the blur radius AND the saturate
235
+ between the calm `floating` endpoint (depth 0 ≡ the calm ceiling) and the Apple-
236
+ deep endpoint (depth 1 ≡ saturate 1.5 / blur 16px), so the deep blur is
237
+ `--glass-depth`-DRIVEN (the D1 axis assert — never a baked literal) and animates
238
+ smoothly. `initial-value: 1` is the resting deep magnitude: a `.glass-deep`
239
+ surface paints at the full Apple-deep register by default; a consumer dials
240
+ `--glass-depth: 0.5` to land it half-way to the calm floating rung. SEPARATE
241
+ from `--glass-level` (opacity+blur clarity), `--glass-tint-*` (legibility), and
242
+ `--glass-refract` (lens displacement) — the disjoint depth axis. The deep tier
243
+ COMPOSES `--glass-level` too (the deep blur scales it), so the opaque escape +
244
+ the a11y brackets reach the deep plate through the ONE level path. */
245
+ @property --glass-depth {
246
+ syntax: "<number>";
247
+ inherits: true;
248
+ initial-value: 1;
249
+ }
250
+
117
251
  /* AX.W51 D18 — the master comfortable-sizing scalar registered typed. The
118
252
  `<number>` syntax guarantees `calc(<base> * var(--ui-scale))` is always valid (a
119
253
  malformed override CLAMPS to the initial value 1, not an invalidated calc — the
@@ -152,6 +286,13 @@
152
286
  --glass-specular-intensity-rest: 0;
153
287
  --glass-specular-intensity-hover: 0.1;
154
288
  --glass-specular-intensity-active: 0.16;
289
+ /* BB.W-BUTTON-GLASS (d) — the BUTTON-SCOPED hover gleam bump. The lit glass
290
+ button should read a notch brighter at the grazing edge than the global
291
+ hover whisper (0.10). `.btn-glass` re-points its own
292
+ `--glass-specular-intensity-hover` to this knob (surfaces.css), so ONLY the
293
+ button lifts — the global cohort above is UNTOUCHED. A consumer retints the
294
+ button gleam from this ONE override. */
295
+ --glass-specular-btn-hover: 0.14;
155
296
  }
156
297
 
157
298
  /* Over the deep canvas `plus-lighter` still lifts, so the dark arm runs a touch
@@ -159,4 +300,123 @@
159
300
  .dark {
160
301
  --glass-specular-intensity-hover: 0.08;
161
302
  --glass-specular-intensity-active: 0.12;
303
+ /* The button bump rides a touch softer in dark too (the dark hover is 0.08;
304
+ the button reads ~0.11, still a notch above the global whisper). */
305
+ --glass-specular-btn-hover: 0.11;
306
+ }
307
+
308
+ /* BB.W-BUTTON-GLASS (b)/(e) — the press DRIVE scalar. ONE typed 0..1 custom
309
+ property Button.vue writes off the `useSpringPress` spring (0 released → 1
310
+ pressed, with the ~5% overshoot the spring carries). It is the SINGLE drive the
311
+ press SQUISH (the `useLiquidFlex` reciprocal X/Y deform), the coupled specular/
312
+ brightness lift, and the optional `.glass-refract` lens-swell all read — the "one
313
+ drive, the glass deforms under press" read. Registered typed so a `transition`/
314
+ downstream `calc()` interpolates the VALUE (number), not the text. `inherits:
315
+ true` so the host-written value reaches the `.glass-material::before` pseudo +
316
+ the coupled rules. `initial-value: 0` so an unwired/SSR button is the static
317
+ rest frame (the no-JS CSS `.tap-squish` scale floor still presses). */
318
+ @property --glass-btn-press-t {
319
+ syntax: "<number>";
320
+ inherits: true;
321
+ initial-value: 0;
322
+ }
323
+
324
+ /* BC.W-AX-COMPLETION-SEAL — the 4 motion drives of the hero-scale earned-GOLD
325
+ completion seal (completion-seal.css consumes them). Registered typed so the
326
+ one-shot draw INTERPOLATES (a bare unregistered var() snaps; the §18 typed-property
327
+ idiom lets the engine animate the stroke-reveal / settle / glint). The seal is the
328
+ visual seal of the W-PHASE-PALETTE completion event — its ink reads the earned-gold
329
+ register; its glint composes the W-AX-METAL-GLOW catch-light. One-shot, PRM-gated,
330
+ compositor-only.
331
+
332
+ • --seal-draw (<percentage>) — the stroke-reveal extent (the stroke-dashoffset wipe
333
+ drive: 0% undrawn → 100% fully drawn). `inherits: false` (each seal owns its own
334
+ draw, the per-surface ownership of the specular/border-progress cohort — a sealed
335
+ parent must not push its draw onto a child seal). `initial-value: 100%` is the
336
+ SAFE fully-drawn resting seal: on a non-supporting engine (no @property) the seal
337
+ paints fully drawn, NEVER a blank — the editorial draw-on degrades to the finished
338
+ mark, never to nothing.
339
+
340
+ • --seal-scale (<number>) — the settle scale (the draw-on lands with a small spring
341
+ overshoot on the seal's own --spring-snappy/--spring-bouncy clock — the SPATIAL
342
+ leg, W-MOTION-CANON P2 enter-bouncy). `inherits: false` (per-seal). `initial-value:
343
+ 1` is the resting settled scale.
344
+
345
+ • --seal-glint (<number>) — the gold catch-light intensity (the one-pass glint that
346
+ fires once on settle, reading --metal-glow-opacity from W-AX-METAL-GLOW — a glint,
347
+ not a loop). `inherits: false` (per-seal). `initial-value: 0` so an unwired seal is
348
+ un-glinting at rest (the calm floor; the glint wakes only on the draw).
349
+
350
+ • --seal-ink (<color>) — the seal stroke color. `inherits: true` (the cascading-scalar
351
+ idiom — a consumer scope re-inks the seal in lockstep with the completion register).
352
+ The @property `initial-value` MUST be a CONCRETE var-free <color> (the typed-property
353
+ rule: a registration fallback cannot be a var()), so it is the LITERAL light-gold
354
+ `oklch(0.751 0.147 84.2)` (scale-paper.css's `--gold` value) — the engine fallback
355
+ when no cascaded value exists. The RUNTIME cascade default is the TOKEN form the
356
+ recipe sets: `--seal-ink: var(--phase-complete-color, var(--color-gold))` — the
357
+ EARNED-gold completion register (Q2: gold is earned at completion, NEVER the running
358
+ phase spectrum). */
359
+ @property --seal-draw {
360
+ syntax: "<percentage>";
361
+ inherits: false;
362
+ initial-value: 100%;
363
+ }
364
+
365
+ @property --seal-scale {
366
+ syntax: "<number>";
367
+ inherits: false;
368
+ initial-value: 1;
369
+ }
370
+
371
+ @property --seal-glint {
372
+ syntax: "<number>";
373
+ inherits: false;
374
+ initial-value: 0;
375
+ }
376
+
377
+ @property --seal-ink {
378
+ syntax: "<color>";
379
+ inherits: true;
380
+ initial-value: oklch(0.751 0.147 84.2);
381
+ }
382
+
383
+ /* BC.W-SCROLL-TRIGGER — the native scroll-ramp custom. The continuous 0..1 scroll
384
+ progress the `useScrollTrigger` reader exposes rides this registered custom on a
385
+ `supportsScrollTimeline()` engine: a `.scroll-progress`-style recipe writes it via
386
+ `animation-timeline: scroll(self)` so a consumer's CSS ramp (the BC.W-SCROLL-CHROME
387
+ shrink/opacity) reads `--scroll-t` with ZERO JS (the dual-path single-writer — the JS
388
+ `progress` ref attaches NOTHING on a supporting engine). `inherits: true` (the
389
+ cascading-scalar idiom — a scroll-driven ancestor exposes the ramp to descendant
390
+ chrome, the `--ui-scale`/`--glass-level` pattern), distinct from the per-element
391
+ non-inheriting specular/progress cohort. `initial-value: 0` is the safe resting ramp
392
+ (the unregistered fallback paints it; on a non-supporting engine the JS reader writes
393
+ `progress.value` and the consumer reads the ref, not this custom). The typed
394
+ `<number>` lets the engine interpolate the ramp rather than the textual rep (a bare
395
+ unregistered var() snaps — the `--border-progress-fill`/`--dock-morph-t` precedent). */
396
+ @property --scroll-t {
397
+ syntax: "<number>";
398
+ inherits: true;
399
+ initial-value: 0;
400
+ }
401
+
402
+ /* BC.W-SCROLL-CHROME — the floating-chrome COLLAPSE fraction. `--chrome-collapse-t`
403
+ is the 0..1 collapse scalar `useScrollChrome` ramps off the scroll reader's
404
+ direction + range (0 = fully expanded, 1 = fully collapsed). The `.scroll-chrome`
405
+ recipe (scroll-chrome.css) reads it for the COMPOSITOR shrink/quiet ramp:
406
+ `transform: scale()/translateY()` (the SPATIAL leg), `opacity` (bounded above a
407
+ never-invisible floor — the NN/g pale-fade trap forbidden), and the shadow LIFT as
408
+ content scrolls under (Apple "as text scrolls underneath, shadows become more
409
+ prominent"). It NEVER drives the resting `backdrop-filter` blur (the
410
+ W-DOCK-SHRINK-BLUR fence — the shrunken bar is crisp glass, not a blurry mess).
411
+ Registered typed so a bare `var()` INTERPOLATES the ramp rather than snapping (the
412
+ `--scroll-t`/`--dock-morph-t` precedent); `inherits: true` (the cascading-scalar
413
+ idiom — a scroll-driven ancestor exposes the collapse to descendant chrome, the
414
+ `--scroll-t`/`--glass-level` pattern, distinct from the per-element non-inheriting
415
+ specular cohort). `initial-value: 0` is the PERSISTENT rest (the iOS-27 default — a
416
+ bare chrome does NOT collapse; the unregistered fallback paints it too, so the
417
+ recipe is byte-identical to the expanded chrome when unwired). */
418
+ @property --chrome-collapse-t {
419
+ syntax: "<number>";
420
+ inherits: true;
421
+ initial-value: 0;
162
422
  }