@mkbabb/glass-ui 4.0.1 → 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 (459) hide show
  1. package/dist/{CardAction-CW7a0m8M.js → CardAction-8whJrLWt.js} +23 -8
  2. package/dist/{CommandShortcut-DvZNQ_HF.js → CommandShortcut-D3yxgHNn.js} +23 -12
  3. package/dist/{ConfiguratorRow-BR4l-ixA.js → ConfiguratorRow-CaP7U3ZA.js} +11 -11
  4. package/dist/ContextMenuContent-B3ZsheLV.js +90 -0
  5. package/dist/{ContextMenuSubContent-xol4sD2q.js → ContextMenuSubContent-DDRID3qC.js} +15 -15
  6. package/dist/{DataTable-CuKwF7wr.js → DataTable-Bc9kUtu_.js} +2 -2
  7. package/dist/{DialogContent-DcKK8k9i.js → DialogContent-6JtTB5x2.js} +8 -5
  8. package/dist/DialogFooter-9phqcRIS.js +80 -0
  9. package/dist/DialogScrollContent-TTuovQst.js +93 -0
  10. package/dist/HoverCardContent-Bel1gdLZ.js +88 -0
  11. package/dist/{IconChip-BTD-nay5.js → IconChip-DhbdGdFQ.js} +1 -1
  12. package/dist/{IconTooltip-Bl8gFZ8d.js → IconTooltip-B0zimd2H.js} +1 -1
  13. package/dist/Input-Cg9DF62r.js +57 -0
  14. package/dist/{Notification-VUwexFUf.js → Notification-CphK7AAm.js} +3 -3
  15. package/dist/NumberFieldContent-D8cXeyO4.js +140 -0
  16. package/dist/PagerDots-Cjx96la-.js +98 -0
  17. package/dist/{SelectScrollDownButton-CrA8F0iV.js → SelectScrollDownButton-DAKCBEdW.js} +62 -57
  18. package/dist/{SelectSeparator-DXswVdRz.js → SelectSeparator-C2UGOkXF.js} +1 -1
  19. package/dist/Separator-DQcwC2TR.js +44 -0
  20. package/dist/Switch-B8RscmRu.js +49 -0
  21. package/dist/{Toaster-Bw4xR8xV.js → Toaster-D9qIHjBI.js} +1 -1
  22. package/dist/{ToggleGroupItem-pEM9vIhs.js → ToggleGroupItem-BLtr3TJq.js} +2 -2
  23. package/dist/TooltipProvider-BJ_Y5EGX.js +109 -0
  24. package/dist/animated-digit.js +1 -1
  25. package/dist/api/index.d.ts +15 -32
  26. package/dist/api/types-extra.d.ts +31 -0
  27. package/dist/api.js +1 -1
  28. package/dist/aurora.js +579 -251
  29. package/dist/border-progress.js +49 -57
  30. package/dist/{button-DYCUa-tH.js → button-5dY1Dvhd.js} +13 -14
  31. package/dist/button.js +1 -1
  32. package/dist/canvas.js +2 -3
  33. package/dist/card.js +1 -1
  34. package/dist/carousel.js +20 -20
  35. package/dist/color-Cs0-oxYL.js +116 -0
  36. package/dist/color.js +2 -2
  37. package/dist/command.js +1 -1
  38. package/dist/completion-seal.d.ts +1 -0
  39. package/dist/completion-seal.js +89 -0
  40. package/dist/components/custom/aurora/Aurora.vue.d.ts +10 -5
  41. package/dist/components/custom/aurora/composables/color.d.ts +13 -0
  42. package/dist/components/custom/aurora/composables/frameLoop.d.ts +9 -0
  43. package/dist/components/custom/aurora/composables/runtime.d.ts +12 -0
  44. package/dist/components/custom/aurora/composables/uniformBridgeWGPU.d.ts +11 -2
  45. package/dist/components/custom/aurora/composables/wgpuSetup.d.ts +8 -0
  46. package/dist/components/custom/aurora/constants/presets.d.ts +18 -0
  47. package/dist/components/custom/aurora/constants/renderMode.d.ts +16 -8
  48. package/dist/components/custom/aurora/constants/shaders/aurora-mediums.wgsl.d.ts +1 -0
  49. package/dist/components/custom/aurora/constants/shaders/aurora.wgsl.d.ts +1 -1
  50. package/dist/components/custom/border-progress/composables/spectrum-walk.d.ts +25 -0
  51. package/dist/components/custom/border-progress/composables/useBorderSpectrum.d.ts +14 -18
  52. package/dist/components/custom/border-progress/index.d.ts +1 -1
  53. package/dist/components/custom/completion-seal/CompletionSeal.vue.d.ts +21 -0
  54. package/dist/components/custom/completion-seal/composables/useCompletionSeal.d.ts +37 -0
  55. package/dist/components/custom/completion-seal/constants.d.ts +46 -0
  56. package/dist/components/custom/completion-seal/index.d.ts +4 -0
  57. package/dist/components/custom/concentric/composables/concentricGLSetup.d.ts +7 -0
  58. package/dist/components/custom/concentric/composables/concentricWGPUSetup.d.ts +9 -0
  59. package/dist/components/custom/concentric/composables/ringField.d.ts +57 -16
  60. package/dist/components/custom/concentric/composables/uniformBridgeWGPU.d.ts +2 -1
  61. package/dist/components/custom/concentric/composables/useConcentric.d.ts +4 -4
  62. package/dist/components/custom/concentric/constants.d.ts +30 -6
  63. package/dist/components/custom/concentric/index.d.ts +2 -2
  64. package/dist/components/custom/concentric/shaders/concentric.glsl.d.ts +2 -2
  65. package/dist/components/custom/concentric/shaders/concentric.wgsl.d.ts +1 -1
  66. package/dist/components/custom/confirm-dialog/ConfirmDialog.vue.d.ts +3 -3
  67. package/dist/components/custom/constellation/Constellation.vue.d.ts +5 -4
  68. package/dist/components/custom/constellation/composables/constellationGLSetup.d.ts +10 -0
  69. package/dist/components/custom/constellation/composables/constellationWGPUSetup.d.ts +19 -0
  70. package/dist/components/custom/constellation/composables/uniformBridgeWGPU.d.ts +66 -0
  71. package/dist/components/custom/constellation/composables/useConstellation.d.ts +3 -10
  72. package/dist/components/custom/constellation/constants.d.ts +33 -0
  73. package/dist/components/custom/constellation/constellationField.d.ts +31 -1
  74. package/dist/components/custom/constellation/constellationInteraction.d.ts +23 -14
  75. package/dist/components/custom/constellation/constellationRender.d.ts +25 -0
  76. package/dist/components/custom/constellation/constellationTypes.d.ts +38 -0
  77. package/dist/components/custom/constellation/constellationWell.d.ts +15 -0
  78. package/dist/components/custom/constellation/index.d.ts +5 -5
  79. package/dist/components/custom/constellation/shaders/constellation-lines.glsl.d.ts +2 -0
  80. package/dist/components/custom/constellation/shaders/constellation-lines.wgsl.d.ts +1 -0
  81. package/dist/components/custom/constellation/shaders/constellation-points.glsl.d.ts +2 -0
  82. package/dist/components/custom/constellation/shaders/constellation-points.wgsl.d.ts +1 -0
  83. package/dist/components/custom/deck/DeckPager.vue.d.ts +29 -0
  84. package/dist/components/custom/deck/composables/useDeck.d.ts +27 -0
  85. package/dist/components/custom/deck/composables/useDeckKeyboard.d.ts +25 -0
  86. package/dist/components/custom/deck/composables/useDeckSpring.d.ts +22 -0
  87. package/dist/components/custom/deck/constants.d.ts +14 -0
  88. package/dist/components/custom/deck/index.d.ts +8 -0
  89. package/dist/components/custom/dock/DockIconButton.vue.d.ts +12 -0
  90. package/dist/components/custom/dock/DockStack.vue.d.ts +65 -0
  91. package/dist/components/custom/dock/GlassDock.vue.d.ts +4 -2
  92. package/dist/components/custom/dock/composables/dockMorphMeasure.d.ts +80 -0
  93. package/dist/components/custom/dock/composables/index.d.ts +2 -0
  94. package/dist/components/custom/dock/composables/useDockSearch.d.ts +85 -0
  95. package/dist/components/custom/dock/composables/useDockShellProps.d.ts +11 -0
  96. package/dist/components/custom/dock/constants.d.ts +18 -14
  97. package/dist/components/custom/dock/index.d.ts +5 -2
  98. package/dist/components/custom/dot-flow-field/DotFlowField.vue.d.ts +15 -11
  99. package/dist/components/custom/dot-flow-field/composables/flowField.d.ts +48 -6
  100. package/dist/components/custom/dot-flow-field/composables/uniformBridgeWGPU.d.ts +23 -8
  101. package/dist/components/custom/dot-flow-field/composables/useDotFlowField.d.ts +6 -5
  102. package/dist/components/custom/dot-flow-field/composables/useFlowParticles.d.ts +18 -5
  103. package/dist/components/custom/dot-flow-field/constants.d.ts +42 -21
  104. package/dist/components/custom/dot-flow-field/index.d.ts +2 -2
  105. package/dist/components/custom/dot-flow-field/shaders/flow-field.compute.wgsl.d.ts +1 -1
  106. package/dist/components/custom/dot-flow-field/shaders/flow-field.glsl.d.ts +4 -20
  107. package/dist/components/custom/dot-flow-field/shaders/flow-field.render.wgsl.d.ts +1 -1
  108. package/dist/components/custom/dot-matrix/DotMatrix.vue.d.ts +43 -0
  109. package/dist/components/custom/dot-matrix/composables/dotMatrixField.d.ts +89 -0
  110. package/dist/components/custom/dot-matrix/composables/uniformBridgeWGPU.d.ts +52 -0
  111. package/dist/components/custom/dot-matrix/composables/useDotMatrix.d.ts +34 -0
  112. package/dist/components/custom/dot-matrix/composables/useDotSphere.d.ts +27 -0
  113. package/dist/components/custom/dot-matrix/constants.d.ts +58 -0
  114. package/dist/components/custom/dot-matrix/index.d.ts +5 -0
  115. package/dist/components/custom/dot-matrix/shaders/dot-matrix.glsl.d.ts +4 -0
  116. package/dist/components/custom/dot-matrix/shaders/dot-matrix.wgsl.d.ts +1 -0
  117. package/dist/components/custom/easing/EasingPicker.vue.d.ts +2 -2
  118. package/dist/components/custom/easing/composables/useEasingPicker.d.ts +5 -0
  119. package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +11 -0
  120. package/dist/components/custom/fourier-field/FourierField.vue.d.ts +40 -47
  121. package/dist/components/custom/fourier-field/composables/fourierFieldGLSetup.d.ts +15 -0
  122. package/dist/components/custom/fourier-field/composables/fourierFieldWGPUSetup.d.ts +20 -0
  123. package/dist/components/custom/fourier-field/composables/uniformBridgeWGPU.d.ts +41 -0
  124. package/dist/components/custom/fourier-field/composables/useFourierField.d.ts +40 -37
  125. package/dist/components/custom/fourier-field/constants.d.ts +61 -4
  126. package/dist/components/custom/fourier-field/index.d.ts +23 -18
  127. package/dist/components/custom/fourier-field/shaders/fourier-field.compute.wgsl.d.ts +1 -0
  128. package/dist/components/custom/fourier-field/shaders/fourier-field.glsl.d.ts +4 -0
  129. package/dist/components/custom/fourier-field/shaders/fourier-field.render.wgsl.d.ts +1 -0
  130. package/dist/components/custom/goo-blob/GooBlob.vue.d.ts +9 -1
  131. package/dist/components/custom/goo-blob/constants.d.ts +1 -1
  132. package/dist/components/custom/goo-blob/index.d.ts +1 -1
  133. package/dist/components/custom/goo-blob/shaders/metaball-noise.wgsl.d.ts +1 -0
  134. package/dist/components/custom/goo-blob/shaders/metaball-palette.wgsl.d.ts +1 -0
  135. package/dist/components/custom/goo-blob/shaders/metaball-uniforms.glsl.d.ts +1 -1
  136. package/dist/components/custom/goo-blob/shaders/metaball.wgsl.d.ts +1 -1
  137. package/dist/components/custom/goo-blob/types.d.ts +36 -0
  138. package/dist/components/custom/goo-dot-matrix/GooDotMatrix.vue.d.ts +49 -0
  139. package/dist/components/custom/goo-dot-matrix/composables/gooDotLattice.d.ts +24 -0
  140. package/dist/components/custom/goo-dot-matrix/composables/gooDotSetup.d.ts +50 -0
  141. package/dist/components/custom/goo-dot-matrix/composables/uniformBridgeWGPU.d.ts +35 -0
  142. package/dist/components/custom/goo-dot-matrix/composables/useGooDotMatrix.d.ts +31 -0
  143. package/dist/components/custom/goo-dot-matrix/constants.d.ts +76 -0
  144. package/dist/components/custom/goo-dot-matrix/index.d.ts +5 -0
  145. package/dist/components/custom/goo-dot-matrix/shaders/goo-dot.frag.d.ts +11 -0
  146. package/dist/components/custom/goo-dot-matrix/shaders/goo-dot.wgsl.d.ts +3 -0
  147. package/dist/components/custom/labeled-field/LabeledField.vue.d.ts +21 -2
  148. package/dist/components/custom/metric-stack/MetricRow.vue.d.ts +15 -0
  149. package/dist/components/custom/pager-dots/PagerDots.vue.d.ts +9 -0
  150. package/dist/components/custom/pager-dots/index.d.ts +2 -0
  151. package/dist/components/custom/pager-dots/pagerWindow.d.ts +9 -0
  152. package/dist/components/custom/paper-grid/PaperGrid.vue.d.ts +42 -0
  153. package/dist/components/custom/paper-grid/composables/paperGrid.d.ts +90 -0
  154. package/dist/components/custom/paper-grid/composables/paperGridGLSetup.d.ts +16 -0
  155. package/dist/components/custom/paper-grid/composables/paperGridWGPUSetup.d.ts +19 -0
  156. package/dist/components/custom/paper-grid/composables/uniformBridgeWGPU.d.ts +16 -0
  157. package/dist/components/custom/paper-grid/composables/usePaperGrid.d.ts +31 -0
  158. package/dist/components/custom/paper-grid/constants.d.ts +57 -0
  159. package/dist/components/custom/paper-grid/index.d.ts +5 -0
  160. package/dist/components/custom/paper-grid/shaders/paper-grid.glsl.d.ts +4 -0
  161. package/dist/components/custom/paper-grid/shaders/paper-grid.wgsl.d.ts +1 -0
  162. package/dist/components/custom/search/FuzzySearch.vue.d.ts +8 -2
  163. package/dist/components/custom/search/SearchBar.vue.d.ts +8 -0
  164. package/dist/components/custom/search/index.d.ts +2 -0
  165. package/dist/components/custom/search/searchVariants.d.ts +19 -0
  166. package/dist/components/custom/selectable-chip/SelectableChip.vue.d.ts +50 -0
  167. package/dist/components/custom/selectable-chip/index.d.ts +2 -0
  168. package/dist/components/custom/selectable-chip/selectableChipVariants.d.ts +23 -0
  169. package/dist/components/custom/split-chars/SplitChars.vue.d.ts +39 -0
  170. package/dist/components/custom/split-chars/index.d.ts +1 -0
  171. package/dist/components/custom/tabs/SegmentedTabs.vue.d.ts +8 -6
  172. package/dist/components/custom/tabs/constants.d.ts +20 -2
  173. package/dist/components/custom/watercolor-dot/WatercolorDot.vue.d.ts +29 -16
  174. package/dist/components/custom/watercolor-dot/useWatercolorBlob.d.ts +10 -5
  175. package/dist/components/ui/_shared/index.d.ts +2 -0
  176. package/dist/components/ui/_shared/useControlSize.d.ts +46 -0
  177. package/dist/components/ui/button/index.d.ts +1 -1
  178. package/dist/components/ui/card/Card.vue.d.ts +45 -0
  179. package/dist/components/ui/card/index.d.ts +1 -1
  180. package/dist/components/ui/carousel/CarouselNext.vue.d.ts +1 -1
  181. package/dist/components/ui/carousel/CarouselPrevious.vue.d.ts +1 -1
  182. package/dist/components/ui/command/CommandDialog.vue.d.ts +9 -3
  183. package/dist/components/ui/command/CommandList.vue.d.ts +3 -0
  184. package/dist/components/ui/context-menu/ContextMenuContent.vue.d.ts +5 -1
  185. package/dist/components/ui/dropdown-menu/DropdownMenuContent.vue.d.ts +4 -0
  186. package/dist/components/ui/hover-card/HoverCardContent.vue.d.ts +3 -0
  187. package/dist/components/ui/input/Input.vue.d.ts +3 -0
  188. package/dist/components/ui/number-field/NumberFieldInput.vue.d.ts +6 -1
  189. package/dist/components/ui/select/SelectContent.vue.d.ts +3 -0
  190. package/dist/components/ui/switch/Switch.vue.d.ts +2 -0
  191. package/dist/components/ui/textarea/Textarea.vue.d.ts +3 -0
  192. package/dist/components/ui/tooltip/TooltipContent.vue.d.ts +3 -0
  193. package/dist/composables/color/index.d.ts +2 -0
  194. package/dist/composables/color/useAccentTone.d.ts +34 -0
  195. package/dist/composables/glass/useVizChoreography.d.ts +123 -0
  196. package/dist/composables/glass/webgl/createCanvasLifecycle.d.ts +10 -0
  197. package/dist/composables/glass/webgl/shaders/flow.wgsl.d.ts +1 -0
  198. package/dist/composables/glass/webgpu/index.d.ts +1 -1
  199. package/dist/composables/glass/webgpu/useGpuSubstrate.d.ts +28 -7
  200. package/dist/composables/glass/webgpu/useWebGPUCanvas.d.ts +1 -0
  201. package/dist/composables/glass/webgpu/webgpuDevice.d.ts +42 -0
  202. package/dist/composables/motion/core/index.d.ts +3 -0
  203. package/dist/composables/motion/scrollReader.d.ts +25 -0
  204. package/dist/composables/motion/springPresets.d.ts +20 -1
  205. package/dist/composables/motion/useCharStagger.d.ts +44 -0
  206. package/dist/composables/motion/useDockCtaReceive.d.ts +31 -6
  207. package/dist/composables/motion/useScrollChrome.d.ts +58 -0
  208. package/dist/composables/motion/useScrollTrigger.d.ts +67 -0
  209. package/dist/composables/motion/useSpringPress.d.ts +5 -5
  210. package/dist/composables/motion/useStaggerReveal.d.ts +24 -0
  211. package/dist/composables/sidebar/index.d.ts +4 -1
  212. package/dist/composables/sidebar/types.d.ts +68 -3
  213. package/dist/composables/sidebar/useClickDelegate.d.ts +4 -0
  214. package/dist/composables/sidebar/useLazyLoader.d.ts +5 -0
  215. package/dist/composables/sidebar/useScrollTo.d.ts +5 -0
  216. package/dist/composables/virtual/index.d.ts +4 -0
  217. package/dist/composables/virtual/useVirtualSectionWindow.d.ts +72 -0
  218. package/dist/composables/virtual/useWindowedStore.d.ts +43 -0
  219. package/dist/composables/virtual/virtualSectionLayout.d.ts +103 -0
  220. package/dist/concentric.js +495 -221
  221. package/dist/configurator.js +2 -2
  222. package/dist/confirm-dialog.js +62 -47
  223. package/dist/constellation.js +635 -235
  224. package/dist/context-menu.js +2 -2
  225. package/dist/controls.js +1 -1
  226. package/dist/createCanvasLifecycle-Gh45Ce-p.js +93 -0
  227. package/dist/dark.js +1 -1
  228. package/dist/data-table.js +1 -1
  229. package/dist/deck.d.ts +1 -0
  230. package/dist/deck.js +105 -0
  231. package/dist/dialog.js +4 -3
  232. package/dist/dock.js +602 -458
  233. package/dist/dot-flow-field.js +580 -290
  234. package/dist/dot-matrix.d.ts +1 -0
  235. package/dist/dot-matrix.js +630 -0
  236. package/dist/dotMatrixField-D_x9_1qq.js +48 -0
  237. package/dist/{dropdown-menu-CofSZuk8.js → dropdown-menu-aJmV5SqE.js} +83 -79
  238. package/dist/dropdown-menu.js +1 -1
  239. package/dist/easing.js +188 -176
  240. package/dist/expandable-container.js +42 -20
  241. package/dist/fading-scroll.js +1 -1
  242. package/dist/flow.glsl-B2P7e0MT.js +4 -0
  243. package/dist/forms.js +62 -60
  244. package/dist/fourier-field.js +825 -178
  245. package/dist/fourier-math.js +1 -1
  246. package/dist/glass-ui.css +1 -1
  247. package/dist/glass-ui.js +145 -104
  248. package/dist/goo-blob.js +171 -1228
  249. package/dist/goo-dot-matrix.d.ts +1 -0
  250. package/dist/goo-dot-matrix.js +591 -0
  251. package/dist/handmark.js +1 -1
  252. package/dist/hover-card.js +1 -1
  253. package/dist/hover-popover.js +1 -1
  254. package/dist/icon-chip.js +1 -1
  255. package/dist/icon-tooltip.js +1 -1
  256. package/dist/index.d.ts +2 -0
  257. package/dist/instrument-chassis.js +1 -1
  258. package/dist/keyboard.js +1 -1
  259. package/dist/labeled-field.js +70 -60
  260. package/dist/metric-cell.js +1 -1
  261. package/dist/metric-stack.js +11 -2
  262. package/dist/motion-core.js +54 -32
  263. package/dist/motion-curves.js +11 -1
  264. package/dist/motion.js +46 -111
  265. package/dist/notification.js +1 -1
  266. package/dist/number-field.js +1 -1
  267. package/dist/pager-dots.js +2 -91
  268. package/dist/paper-backdrop.js +1 -1
  269. package/dist/paper-grid.d.ts +1 -0
  270. package/dist/paper-grid.js +788 -0
  271. package/dist/{presets-BW2b-fr1.js → presets-CvOUqtdY.js} +3 -3
  272. package/dist/{procedural-color.glsl-CIFsJhwI.js → procedural-color.wgsl-m7Zgv35j.js} +2 -2
  273. package/dist/progress.js +1 -1
  274. package/dist/pulse.js +1 -1
  275. package/dist/reactive.js +1 -1
  276. package/dist/{useCanvas2D-B8w_E3Rr.js → resolveCanvasColor-yPyIpJt9.js} +12 -2
  277. package/dist/scrollReader-DI1NWxUw.js +42 -0
  278. package/dist/scrolling-text.js +1 -1
  279. package/dist/search.js +160 -304
  280. package/dist/select.js +3 -3
  281. package/dist/selectable-chip.d.ts +1 -0
  282. package/dist/selectable-chip.js +65 -0
  283. package/dist/separator.js +1 -1
  284. package/dist/{sheet-tZMg0E0w.js → sheet-B2flBfLH.js} +2 -2
  285. package/dist/sheet.js +1 -1
  286. package/dist/sidebar.js +216 -114
  287. package/dist/slider.js +1 -1
  288. package/dist/sortable-list.js +1 -1
  289. package/dist/spectrum-walk-BVzA7Biz.js +33 -0
  290. package/dist/{springPresets-CFQGQfdl.js → springPresets-Ce7OYCm9.js} +12 -6
  291. package/dist/styles/animations.css +13 -3
  292. package/dist/styles/cards.css +69 -0
  293. package/dist/styles/completion-seal.css +131 -0
  294. package/dist/styles/components.css +2 -3
  295. package/dist/styles/configurator.css +55 -0
  296. package/dist/styles/critical-partition.mjs +33 -11
  297. package/dist/styles/deferred.css +2 -0
  298. package/dist/styles/dock/cta-seat.css +87 -0
  299. package/dist/styles/dock/density.css +153 -0
  300. package/dist/styles/dock/layers.css +55 -7
  301. package/dist/styles/dock/morph-bridge.css +54 -18
  302. package/dist/styles/dock/morph.css +41 -33
  303. package/dist/styles/dock/overflow.css +12 -0
  304. package/dist/styles/dock/search.css +68 -0
  305. package/dist/styles/dock/shape.css +124 -0
  306. package/dist/styles/dock/shell.css +23 -5
  307. package/dist/styles/dock/stack-rail.css +264 -0
  308. package/dist/styles/dock-controls/dark-mode-toggle.css +17 -4
  309. package/dist/styles/dock-controls/icon-button.css +14 -0
  310. package/dist/styles/dock.css +11 -1
  311. package/dist/styles/glass/accent-tone.css +66 -0
  312. package/dist/styles/glass/control-surfaces.css +167 -0
  313. package/dist/styles/glass/ladder.css +67 -17
  314. package/dist/styles/glass/rim.css +19 -9
  315. package/dist/styles/glass/surfaces.css +69 -148
  316. package/dist/styles/glass.css +10 -0
  317. package/dist/styles/index.css +15 -0
  318. package/dist/styles/scroll-chrome.css +123 -0
  319. package/dist/styles/scroll-driven.css +38 -0
  320. package/dist/styles/segmented-tabs.css +50 -14
  321. package/dist/styles/theme/bridges.css +22 -0
  322. package/dist/styles/theme/radius.css +18 -1
  323. package/dist/styles/tokens/color-radius.css +13 -3
  324. package/dist/styles/tokens/dark-arm.css +39 -6
  325. package/dist/styles/tokens/glass-deep.css +28 -3
  326. package/dist/styles/tokens/glass-fx.css +44 -1
  327. package/dist/styles/tokens/glass.css +91 -31
  328. package/dist/styles/tokens/light-dark.css +1 -1
  329. package/dist/styles/tokens/offsets.css +27 -0
  330. package/dist/styles/tokens/property-regs.css +133 -0
  331. package/dist/styles/tokens/scale-paper.css +73 -29
  332. package/dist/styles/tokens/scheme-motion.css +44 -6
  333. package/dist/styles/tokens/sizing-config.css +110 -0
  334. package/dist/styles/tokens/sizing.css +55 -104
  335. package/dist/styles/tokens.css +5 -0
  336. package/dist/styles/typography/semantic.css +18 -5
  337. package/dist/styles/utilities/a11y-overrides.css +20 -5
  338. package/dist/styles/utilities/base-misc.css +52 -0
  339. package/dist/styles/utilities/btn.css +14 -3
  340. package/dist/styles/utilities/components.css +31 -6
  341. package/dist/styles/utilities/metal.css +26 -0
  342. package/dist/switch.js +1 -1
  343. package/dist/tabs.js +8 -8
  344. package/dist/timeline.js +1 -1
  345. package/dist/toast.js +1 -1
  346. package/dist/toggle-chip.js +10 -10
  347. package/dist/toggle-group.js +1 -1
  348. package/dist/tooltip.js +1 -1
  349. package/dist/typewriter.js +1 -1
  350. package/dist/uniformBridgeWGPU-CtAKl45L.js +1204 -0
  351. package/dist/{useAnimatedNumber-BfUq2bUM.js → useAnimatedNumber-CLrxicG9.js} +1 -1
  352. package/dist/{useConfiguratorState-DNlOh6c8.js → useConfiguratorState-4xblKfwd.js} +25 -24
  353. package/dist/useControlSize-SH1UmJCi.js +9 -0
  354. package/dist/useDockCtaReceive-DfFkmgL1.js +82 -0
  355. package/dist/{useDragMorph-DgxnsVJz.js → useDragMorph-BUgAC-zK.js} +4 -4
  356. package/dist/useFuzzySearch-DIhcYtcw.js +177 -0
  357. package/dist/useGpuSubstrate-4pTcp6mX.js +294 -0
  358. package/dist/{useLiquidPress-kfb4KX79.js → useLiquidPress-BooG97RY.js} +2 -2
  359. package/dist/usePointerVelocityField-QLsy3_kv.js +91 -0
  360. package/dist/useScrollChrome-D66AVP7C.js +258 -0
  361. package/dist/{useSpringMount-q1amq1SJ.js → useSpringMount-BWDnKIwh.js} +1 -1
  362. package/dist/useSpringPress-B1-Czp-V.js +36 -0
  363. package/dist/useViewTransition-CUI1nAgn.js +95 -0
  364. package/dist/{vendor-CKmzio-i.js → vendor-B2qOlYY3.js} +24 -11
  365. package/dist/virtual.d.ts +1 -0
  366. package/dist/virtual.js +225 -0
  367. package/dist/watercolor-dot.js +116 -73
  368. package/package.json +127 -7
  369. package/src/styles/animations.css +13 -3
  370. package/src/styles/cards.css +69 -0
  371. package/src/styles/completion-seal.css +131 -0
  372. package/src/styles/configurator.css +55 -0
  373. package/src/styles/critical-partition.mjs +33 -11
  374. package/src/styles/dock/cta-seat.css +87 -0
  375. package/src/styles/dock/density.css +153 -0
  376. package/src/styles/dock/layers.css +55 -7
  377. package/src/styles/dock/morph-bridge.css +54 -18
  378. package/src/styles/dock/morph.css +41 -33
  379. package/src/styles/dock/overflow.css +12 -0
  380. package/src/styles/dock/search.css +68 -0
  381. package/src/styles/dock/shape.css +124 -0
  382. package/src/styles/dock/shell.css +23 -5
  383. package/src/styles/dock/stack-rail.css +264 -0
  384. package/src/styles/dock-controls/dark-mode-toggle.css +17 -4
  385. package/src/styles/dock-controls/icon-button.css +14 -0
  386. package/src/styles/dock.css +11 -1
  387. package/src/styles/glass/accent-tone.css +66 -0
  388. package/src/styles/glass/control-surfaces.css +167 -0
  389. package/src/styles/glass/ladder.css +67 -17
  390. package/src/styles/glass/rim.css +19 -9
  391. package/src/styles/glass/surfaces.css +69 -148
  392. package/src/styles/glass.css +10 -0
  393. package/src/styles/index.css +15 -0
  394. package/src/styles/scroll-chrome.css +123 -0
  395. package/src/styles/scroll-driven.css +38 -0
  396. package/src/styles/segmented-tabs.css +50 -14
  397. package/src/styles/theme/bridges.css +22 -0
  398. package/src/styles/theme/radius.css +18 -1
  399. package/src/styles/tokens/color-radius.css +13 -3
  400. package/src/styles/tokens/dark-arm.css +39 -6
  401. package/src/styles/tokens/glass-deep.css +28 -3
  402. package/src/styles/tokens/glass-fx.css +44 -1
  403. package/src/styles/tokens/glass.css +91 -31
  404. package/src/styles/tokens/light-dark.css +1 -1
  405. package/src/styles/tokens/offsets.css +27 -0
  406. package/src/styles/tokens/property-regs.css +133 -0
  407. package/src/styles/tokens/scale-paper.css +73 -29
  408. package/src/styles/tokens/scheme-motion.css +44 -6
  409. package/src/styles/tokens/sizing-config.css +110 -0
  410. package/src/styles/tokens/sizing.css +55 -104
  411. package/src/styles/tokens.css +5 -0
  412. package/src/styles/typography/semantic.css +18 -5
  413. package/src/styles/utilities/a11y-overrides.css +20 -5
  414. package/src/styles/utilities/base-misc.css +52 -0
  415. package/src/styles/utilities/btn.css +14 -3
  416. package/src/styles/utilities/components.css +31 -6
  417. package/src/styles/utilities/metal.css +26 -0
  418. package/dist/ContextMenuContent-uWnVxDab.js +0 -85
  419. package/dist/DialogFooter-BZNX5aVr.js +0 -165
  420. package/dist/HoverCardContent-b2uaAMRR.js +0 -83
  421. package/dist/Input-h9v5LeXf.js +0 -55
  422. package/dist/NumberFieldContent-Cq7EzX-U.js +0 -138
  423. package/dist/Separator-pKF0oA4M.js +0 -37
  424. package/dist/Switch-CwYNf8bo.js +0 -47
  425. package/dist/TooltipProvider-rzvnXz60.js +0 -104
  426. package/dist/color-DweYl7pE.js +0 -86
  427. package/dist/components/custom/constellation/composables/useConstellationPointer.d.ts +0 -35
  428. package/dist/components/custom/constellation/constellationDraw.d.ts +0 -30
  429. package/dist/components/custom/dock/DockRail.vue.d.ts +0 -89
  430. package/dist/createCanvasLifecycle-CHD5XrDW.js +0 -82
  431. package/dist/procedural-color.wgsl-CToRHugY.js +0 -224
  432. package/dist/resolveCanvasColor-CUyHr5Uu.js +0 -11
  433. package/dist/styles/dock/rail-extend.css +0 -397
  434. package/dist/usePointerVelocityField-JbRd5CrM.js +0 -137
  435. package/dist/useRAFLoop-UYa4zoiN.js +0 -109
  436. package/dist/useSpringPress-BsqPr7FJ.js +0 -34
  437. package/src/styles/dock/rail-extend.css +0 -397
  438. /package/dist/{FadingScroll-DI6hQhT9.js → FadingScroll-DLRbH5Xr.js} +0 -0
  439. /package/dist/{HoverPopover-CbqbNwgU.js → HoverPopover-BcIxvyqZ.js} +0 -0
  440. /package/dist/{InstrumentChassis-Bx0F_q5g.js → InstrumentChassis-CxsHSyMj.js} +0 -0
  441. /package/dist/{PaperBackdrop-Vf3tlpvd.js → PaperBackdrop-CqwjnfLv.js} +0 -0
  442. /package/dist/{Progress-DctG61iZ.js → Progress-CnqB7gLm.js} +0 -0
  443. /package/dist/{ScrollingText-yOpBzFYq.js → ScrollingText-CTZbA_cG.js} +0 -0
  444. /package/dist/{SelectGroup-DwwjicPY.js → SelectGroup-BFiod7X2.js} +0 -0
  445. /package/dist/{compile-CQEFRTmx.js → compile-nZ1xVYTp.js} +0 -0
  446. /package/dist/{constants-BPOqYJAm.js → constants--C2DkLW8.js} +0 -0
  447. /package/dist/{math-BINYmg5z.js → math-Eb0w3LqU.js} +0 -0
  448. /package/dist/{prng-Za0Rmgag.js → prng-B-d9eYX8.js} +0 -0
  449. /package/dist/{slider-DVb4HXU-.js → slider-2A0rPn79.js} +0 -0
  450. /package/dist/{useGlobalDark-C28t0VWJ.js → useGlobalDark-CmjB9E32.js} +0 -0
  451. /package/dist/{useIntersectionPause-Bj4sPkMh.js → useIntersectionPause-Dbozzjgm.js} +0 -0
  452. /package/dist/{useInterval-CvK1mL92.js → useInterval-CNdua40W.js} +0 -0
  453. /package/dist/{useKeyboardShortcuts-BXWXOZ-9.js → useKeyboardShortcuts-BPRp33Im.js} +0 -0
  454. /package/dist/{useLiquidFlex-mZPMiNXh.js → useLiquidFlex-UmA6LMZu.js} +0 -0
  455. /package/dist/{useScrollProgress-D7bYU2RK.js → useScrollProgress-c3yxmH6a.js} +0 -0
  456. /package/dist/{useSortable-DHjtZSEd.js → useSortable-BVqlJRBR.js} +0 -0
  457. /package/dist/{useTextHighlight-CWEi25hf.js → useTextHighlight-NmBM5V_4.js} +0 -0
  458. /package/dist/{vReveal-Czsb7zQC.js → vReveal-D9k0jADx.js} +0 -0
  459. /package/dist/{vSpecular-CQFmLNzA.js → vSpecular-EX7loENl.js} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mkbabb/glass-ui",
3
- "version": "4.0.1",
3
+ "version": "4.1.0",
4
4
  "description": "Glassmorphic design system — Vue 3.5 components, reka-ui primitives, Tailwind CSS v4 tokens",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -19,6 +19,9 @@
19
19
  "tokens": [
20
20
  "dist/tokens.d.ts"
21
21
  ],
22
+ "deck": [
23
+ "dist/deck.d.ts"
24
+ ],
22
25
  "dock": [
23
26
  "dist/dock.d.ts"
24
27
  ],
@@ -67,6 +70,9 @@
67
70
  "canvas": [
68
71
  "dist/canvas.d.ts"
69
72
  ],
73
+ "virtual": [
74
+ "dist/virtual.d.ts"
75
+ ],
70
76
  "color": [
71
77
  "dist/color.d.ts"
72
78
  ],
@@ -88,6 +94,15 @@
88
94
  "dot-flow-field": [
89
95
  "dist/dot-flow-field.d.ts"
90
96
  ],
97
+ "paper-grid": [
98
+ "dist/paper-grid.d.ts"
99
+ ],
100
+ "dot-matrix": [
101
+ "dist/dot-matrix.d.ts"
102
+ ],
103
+ "goo-dot-matrix": [
104
+ "dist/goo-dot-matrix.d.ts"
105
+ ],
91
106
  "goo-blob": [
92
107
  "dist/goo-blob.d.ts"
93
108
  ],
@@ -118,6 +133,12 @@
118
133
  "toggle-chip": [
119
134
  "dist/toggle-chip.d.ts"
120
135
  ],
136
+ "selectable-chip": [
137
+ "dist/selectable-chip.d.ts"
138
+ ],
139
+ "completion-seal": [
140
+ "dist/completion-seal.d.ts"
141
+ ],
121
142
  "spa-view": [
122
143
  "dist/spa-view.d.ts"
123
144
  ],
@@ -283,6 +304,10 @@
283
304
  "./styles/fonts": "./dist/styles/fonts.css",
284
305
  "./styles.css": "./dist/glass-ui.css",
285
306
  "./fonts/*": "./dist/fonts/*",
307
+ "./deck": {
308
+ "types": "./dist/deck.d.ts",
309
+ "import": "./dist/deck.js"
310
+ },
286
311
  "./dock": {
287
312
  "types": "./dist/dock.d.ts",
288
313
  "import": "./dist/dock.js"
@@ -347,6 +372,10 @@
347
372
  "types": "./dist/canvas.d.ts",
348
373
  "import": "./dist/canvas.js"
349
374
  },
375
+ "./virtual": {
376
+ "types": "./dist/virtual.d.ts",
377
+ "import": "./dist/virtual.js"
378
+ },
350
379
  "./color": {
351
380
  "types": "./dist/color.d.ts",
352
381
  "import": "./dist/color.js"
@@ -375,6 +404,18 @@
375
404
  "types": "./dist/dot-flow-field.d.ts",
376
405
  "import": "./dist/dot-flow-field.js"
377
406
  },
407
+ "./paper-grid": {
408
+ "types": "./dist/paper-grid.d.ts",
409
+ "import": "./dist/paper-grid.js"
410
+ },
411
+ "./dot-matrix": {
412
+ "types": "./dist/dot-matrix.d.ts",
413
+ "import": "./dist/dot-matrix.js"
414
+ },
415
+ "./goo-dot-matrix": {
416
+ "types": "./dist/goo-dot-matrix.d.ts",
417
+ "import": "./dist/goo-dot-matrix.js"
418
+ },
378
419
  "./goo-blob": {
379
420
  "types": "./dist/goo-blob.d.ts",
380
421
  "import": "./dist/goo-blob.js"
@@ -427,6 +468,14 @@
427
468
  "types": "./dist/toggle-chip.d.ts",
428
469
  "import": "./dist/toggle-chip.js"
429
470
  },
471
+ "./selectable-chip": {
472
+ "types": "./dist/selectable-chip.d.ts",
473
+ "import": "./dist/selectable-chip.js"
474
+ },
475
+ "./completion-seal": {
476
+ "types": "./dist/completion-seal.d.ts",
477
+ "import": "./dist/completion-seal.js"
478
+ },
430
479
  "./spa-view": {
431
480
  "types": "./dist/spa-view.d.ts",
432
481
  "import": "./dist/spa-view.js"
@@ -646,6 +695,7 @@
646
695
  "proof:perf-producer": "node scripts/proof-perf-producer.mjs",
647
696
  "proof:phantom-classes": "node scripts/proof-phantom-classes.mjs",
648
697
  "proof:vt-names": "node scripts/proof-vt-names.mjs",
698
+ "proof:deck": "node scripts/proof-deck.mjs",
649
699
  "proof:dock-animation-live": "node scripts/proof-dock-animation-live.mjs",
650
700
  "proof:dock-rail-cohesion": "node scripts/proof-dock-rail-cohesion.mjs",
651
701
  "proof:dock-lockstep-bornred": "node scripts/proof-dock-lockstep-bornred.mjs",
@@ -665,14 +715,12 @@
665
715
  "proof:dock-no-scale-pop": "node scripts/proof-dock-no-scale-pop.mjs",
666
716
  "proof:dock-tap-integrity": "node scripts/proof-dock-tap-integrity.mjs",
667
717
  "proof:dock-taxonomy": "node scripts/proof-dock-taxonomy.mjs",
668
- "proof:rail-extend": "node scripts/proof-rail-extend.mjs",
669
718
  "proof:dock-contextual-layers": "node scripts/proof-dock-contextual-layers.mjs",
670
719
  "proof:morph-showcase": "node scripts/proof-morph-showcase.mjs",
671
720
  "proof:blob-page": "node scripts/proof-blob-page.mjs",
672
721
  "proof:blob-page-fence": "node scripts/proof-blob-page-fence.mjs",
673
722
  "proof:motion-demo": "node scripts/proof-motion-demo.mjs",
674
723
  "proof:motion2": "node scripts/proof-motion2.mjs",
675
- "proof:rail3": "node scripts/proof-rail3.mjs",
676
724
  "proof:dock-sections": "node scripts/proof-dock-sections.mjs",
677
725
  "proof:dock-morph-insitu": "node scripts/proof-dock-morph-insitu.mjs",
678
726
  "proof:shell-hold": "node scripts/proof-shell-hold.mjs",
@@ -817,9 +865,6 @@
817
865
  "proof:constellation-tokens": "node scripts/proof-constellation-tokens.mjs",
818
866
  "proof:constellation-warp-live": "node scripts/proof-constellation-warp-live.mjs",
819
867
  "proof:constellation-egg-live": "node scripts/proof-constellation-egg-live.mjs",
820
- "proof:constellation-freeze-live": "node scripts/proof-constellation-freeze-live.mjs",
821
- "proof:fourier-field-intensity": "node scripts/proof-fourier-field-intensity.mjs",
822
- "proof:fourier-field-visibility-live": "node scripts/proof-fourier-field-visibility-live.mjs",
823
868
  "proof:constellation-refit-live": "node scripts/proof-constellation-refit-live.mjs",
824
869
  "proof:canvas2d-substrate": "vitest run tests/composables/glass/canvas2d/useCanvas2D.test.ts",
825
870
  "proof:resolve-canvas-color": "vitest run tests/composables/glass/canvas2d/resolveCanvasColor.test.ts",
@@ -871,7 +916,6 @@
871
916
  "proof:config-chassis": "node scripts/proof-config-chassis.mjs",
872
917
  "proof:progress-gradient": "node scripts/proof-progress-gradient.mjs",
873
918
  "proof:demo-affordances": "node scripts/proof-demo-affordances.mjs",
874
- "proof:fourier-studio": "node scripts/proof-fourier-studio.mjs",
875
919
  "proof:dark-semantic-contrast": "node scripts/proof-dark-semantic-contrast.mjs",
876
920
  "proof:glass-material-demo": "node scripts/proof-glass-material-demo.mjs",
877
921
  "proof:blob-live-truth": "node scripts/proof-blob-live-truth.mjs",
@@ -906,6 +950,82 @@
906
950
  "proof:gen-ci-fresh": "node scripts/proof-gen-ci-fresh.mjs",
907
951
  "proof:gate-manifest-sound": "node scripts/proof-gate-manifest-sound.mjs",
908
952
  "proof:ba-gestalt": "node scripts/proof-ba-gestalt.mjs",
953
+ "proof:bc-fold-ledger": "node scripts/proof-bc-fold-ledger.mjs",
954
+ "proof:observer-loop": "node scripts/proof-observer-loop.mjs",
955
+ "proof:black-bar": "node scripts/proof-black-bar.mjs",
956
+ "proof:glass-identity": "node scripts/proof-glass-identity.mjs",
957
+ "proof:adaptive-reconcile": "node scripts/proof-adaptive-reconcile.mjs",
958
+ "proof:glass-legibility": "node scripts/proof-glass-legibility.mjs",
959
+ "proof:no-shadcn-default": "node scripts/proof-no-shadcn-default.mjs",
960
+ "proof:glass-prune": "node scripts/proof-glass-prune.mjs",
961
+ "proof:selection-card": "node scripts/proof-selection-card.mjs",
962
+ "proof:dialog-glass": "node scripts/proof-dialog-glass.mjs",
963
+ "proof:glass-glow-fix": "node scripts/proof-glass-glow-fix.mjs",
964
+ "proof:accent-tone": "node scripts/proof-accent-tone.mjs",
965
+ "proof:motion-one-clock": "node scripts/proof-motion-one-clock.mjs",
966
+ "proof:spring-ease": "node scripts/proof-spring-ease.mjs",
967
+ "proof:affordance-map": "node scripts/proof-affordance-map.mjs",
968
+ "proof:tunable-anim": "node scripts/proof-tunable-anim.mjs",
969
+ "proof:split-chars": "node scripts/proof-split-chars.mjs",
970
+ "proof:motion-presets": "node scripts/proof-motion-presets.mjs",
971
+ "proof:dock-engine": "node scripts/proof-dock-engine.mjs",
972
+ "proof:dock-arbitrary": "node scripts/proof-dock-arbitrary.mjs",
973
+ "proof:dock-shrink-blur": "node scripts/proof-dock-shrink-blur.mjs",
974
+ "proof:liquid-morph": "node scripts/proof-liquid-morph.mjs",
975
+ "proof:dock-vertical-clickable": "node scripts/proof-dock-vertical-clickable.mjs",
976
+ "proof:dock-collapsed-both": "node scripts/proof-dock-collapsed-both.mjs",
977
+ "proof:dock-stack-rail": "node scripts/proof-dock-stack-rail.mjs",
978
+ "proof:dock-cockpit": "node scripts/proof-dock-cockpit.mjs",
979
+ "proof:tabs-ios": "node scripts/proof-tabs-ios.mjs",
980
+ "proof:liquid-tab": "node scripts/proof-liquid-tab.mjs",
981
+ "proof:underline-tune": "node scripts/proof-underline-tune.mjs",
982
+ "proof:virtual-window": "node scripts/proof-virtual-window.mjs",
983
+ "proof:toc-reconcile": "node scripts/proof-toc-reconcile.mjs",
984
+ "proof:fuzzy-harden": "node scripts/proof-fuzzy-harden.mjs",
985
+ "proof:customizability-census": "node scripts/proof-customizability-census.mjs",
986
+ "proof:search-custom": "node scripts/proof-search-custom.mjs",
987
+ "proof:metric-hover": "node scripts/proof-metric-hover.mjs",
988
+ "proof:fourier-decides": "node scripts/proof-fourier-decides.mjs",
989
+ "proof:tier-class-staleness": "node scripts/proof-tier-class-staleness.mjs",
990
+ "proof:radio-fix": "node scripts/proof-radio-fix.mjs",
991
+ "proof:dropdown-fix": "node scripts/proof-dropdown-fix.mjs",
992
+ "proof:control-smooth": "node scripts/proof-control-smooth.mjs",
993
+ "proof:config-right": "node scripts/proof-config-right.mjs",
994
+ "proof:completion-seal": "node scripts/proof-completion-seal.mjs",
995
+ "proof:webgpu-everywhere": "node scripts/proof-webgpu-everywhere.mjs",
996
+ "proof:safari-webgl": "node scripts/proof-safari-webgl.mjs",
997
+ "proof:viz-interaction": "node scripts/proof-viz-interaction.mjs",
998
+ "proof:viz-choreography": "node scripts/proof-viz-choreography.mjs",
999
+ "proof:visual-reconcile": "node scripts/proof-visual-reconcile.mjs",
1000
+ "proof:viz-aurora": "node scripts/proof-viz-aurora.mjs",
1001
+ "proof:gooblob-plain": "node scripts/proof-gooblob-plain.mjs",
1002
+ "proof:gooblob-plain:source": "node scripts/proof-gooblob-plain.mjs --source",
1003
+ "proof:gooblob-meatball": "node scripts/proof-gooblob-meatball.mjs",
1004
+ "proof:gooblob-meatball:source": "node scripts/proof-gooblob-meatball.mjs --source",
1005
+ "proof:viz-hybrid": "node scripts/proof-viz-hybrid.mjs",
1006
+ "proof:page-prune": "node scripts/proof-page-prune.mjs",
1007
+ "proof:demo-copy-prune": "node scripts/proof-demo-copy-prune.mjs",
1008
+ "proof:page-chassis": "node scripts/proof-page-chassis.mjs",
1009
+ "proof:fourier-field": "node scripts/proof-fourier-field.mjs",
1010
+ "proof:viz-constellation": "node scripts/proof-viz-constellation.mjs",
1011
+ "proof:viz-dotflow": "node scripts/proof-viz-dotflow.mjs",
1012
+ "proof:viz-papergrid": "node scripts/proof-viz-papergrid.mjs",
1013
+ "proof:dot-matrix": "node scripts/proof-dot-matrix.mjs",
1014
+ "proof:teal-navy-purge": "node scripts/proof-teal-navy-purge.mjs",
1015
+ "proof:page-hierarchy": "node scripts/proof-page-hierarchy.mjs",
1016
+ "proof:grid-simple": "node scripts/proof-grid-simple.mjs",
1017
+ "proof:ghost-dashed": "node scripts/proof-ghost-dashed.mjs",
1018
+ "proof:hero-audacious": "node scripts/proof-hero-audacious.mjs",
1019
+ "proof:code-blocks": "node scripts/proof-code-blocks.mjs",
1020
+ "proof:separator-fix": "node scripts/proof-separator-fix.mjs",
1021
+ "proof:compositions-hero": "node scripts/proof-compositions-hero.mjs",
1022
+ "proof:expandable-part": "node scripts/proof-expandable-part.mjs",
1023
+ "proof:scroll-trigger": "node scripts/proof-scroll-trigger.mjs",
1024
+ "proof:scroll-chrome": "node scripts/proof-scroll-chrome.mjs",
1025
+ "proof:dock-search": "node scripts/proof-dock-search.mjs",
1026
+ "proof:viz-configurator-suite": "node scripts/proof-viz-configurator-suite.mjs",
1027
+ "proof:storybook-meta": "node scripts/proof-storybook-meta.mjs",
1028
+ "proof:bp-lazy": "node scripts/proof-bp-lazy.mjs",
909
1029
  "proof:visual-runner": "node scripts/proof-visual-runner.mjs",
910
1030
  "gates:verify-ci": "node scripts/gates.mjs --verify-ci",
911
1031
  "gates:emit-ci": "node scripts/gates.mjs --emit-ci",
@@ -207,14 +207,24 @@
207
207
  /* AX.W57 (P6) — the aura breath reads its OWN element-opacity range
208
208
  (`--pulse-aura-breath-{min,max}`, 0.28↔0.42), decoupled from the
209
209
  shared `--pulse-aura-opacity-*` skeleton-shimmer stops so the halo
210
- breathes as an ambient wash, never up to the 0.95 shimmer peak. */
210
+ breathes as an ambient wash, never up to the 0.95 shimmer peak.
211
+
212
+ BC.W-GLASS-GLOW-FIX (Atlas A-8 root) — the breath SCALE is driven via the
213
+ `--pulse-aura-breath-scale` registered custom property (a `<number>`, typed
214
+ in property-regs.css so it INTERPOLATES per-frame), NOT a `transform: scale()`
215
+ on `.pulse-aura` itself. The `.pulse-aura::before` child reads the scale; the
216
+ `.pulse-aura` element stays UNSCALED at `inset:0` as the `overflow: clip`
217
+ boundary. Scaling the CHILD (clipped by the unscaled parent) is what makes the
218
+ 1.15× peak STAY inside the host box — scaling the clip element itself scaled the
219
+ clip rect too, so the radial escaped (the prior incomplete fix). The element-
220
+ opacity breath stays HERE (it does not change geometry). */
211
221
  0%,
212
222
  100% {
213
- transform: scale(var(--animate-ambient-pulse-scale-min, 1));
223
+ --pulse-aura-breath-scale: var(--animate-ambient-pulse-scale-min, 1);
214
224
  opacity: var(--pulse-aura-breath-min, 0.28);
215
225
  }
216
226
  50% {
217
- transform: scale(var(--animate-ambient-pulse-scale-max, 1.15));
227
+ --pulse-aura-breath-scale: var(--animate-ambient-pulse-scale-max, 1.15);
218
228
  opacity: var(--pulse-aura-breath-max, 0.42);
219
229
  }
220
230
  }
@@ -28,6 +28,18 @@
28
28
  paper tier, exactly like `.paper-texture` / `cartoon-surface` /
29
29
  `veil-surface`.
30
30
 
31
+ BC.W-GRID-SIMPLE — the card-interior pitch UNIFIES onto the ONE
32
+ `--grid-*` rhythm source: `--paper-grid-texture-size` now reads
33
+ `var(--grid-pitch)` (scale-paper.css), retiring the prior 32px literal so
34
+ the demo page grid + this card interior share ONE pitch (the
35
+ two-parallel-28px/32px-systems fix). This card-interior register keeps its
36
+ OWN quieter ambient strength (`--paper-grid-opacity`), DISTINCT from the
37
+ full-bleed page-bg 3%/11% tier — a card interior reads softer than a page
38
+ wash. It is a host `background-image` only — NO `backdrop-filter`/`filter`
39
+ on this element, so the grid lines are NEVER convolved into the "blurry
40
+ mess" the page grid suffered (the de-blur discipline: the grid is the
41
+ card's own underlay, not a crisp grid read THROUGH a blurred glass plate).
42
+
31
43
  THE SEAM (the two-pseudo-budget reveal, recorded — the Triumvirate's
32
44
  through-glass-read locate-the-seam, NOT a token-α loop): a glass tier
33
45
  already claims BOTH pseudos — `::before` is the moving-specular catch-
@@ -95,6 +107,63 @@
95
107
  }
96
108
  }
97
109
 
110
+ /* ── Selection-card decoration (BC.W-SELECTION-CARD — the I5 selection card) ──────
111
+ The ONE new Atlas component, realized as a `<Card variant="selection">`
112
+ DECORATION (NOT a new SFC, NOT a new tier, NOT a new compositing seam). It
113
+ COMPOSES the two BUILT seams — the A-2 `--glass-accent` rim (glass/rim.css +
114
+ glass/material.css) + the A-3 `.metal-*-border` swept rim (utilities/metal.css)
115
+ — and authors ZERO competing rim/background recipe of its own. The rule is a
116
+ TOKEN-SUBSTITUTION on the base tier (the `.glass-opaque`/`.glass-deep` precedent):
117
+ it re-points the EXISTING `--glass-accent-strength` (+ an OPTIONAL sub-perceptual
118
+ floating-tier lift) locally; it does NOT declare a `background`/`border`.
119
+
120
+ THE RIM-NOT-FILL DISCIPLINE (the no-saturated-slab structural bar): selection is
121
+ read by (a) the metal rim (the `.metal-*-border` class Card composes when
122
+ `:selected`), (b) a BOUNDED accent-strength LIFT (unselected → selected, both ≤
123
+ the W-GLASS-ACCENT rim ceiling), and OPTIONALLY (c) a sub-perceptual
124
+ `--glass-bg-floating`-tier lift (the "selected reads as glass" register). The
125
+ plate STAYS warm-cream translucent — the BC.W-GLASS-IDENTITY floor is inviolate.
126
+ This rule NEVER writes `--glass-tint-source`/`--glass-tint-strength` (the A-2
127
+ distinct-axis fence — the accent is rim+glint DECORATION, not whole-plate
128
+ legibility) and NEVER paints a `--foreground`/`--primary`/`--surface-tint` opaque
129
+ plate FILL (the "selected = loud fill" anti-pattern is the disease-root the gate's
130
+ S3 bite reds).
131
+
132
+ THE ACCENT-STRENGTH LADDER (the bounded lift, two tokens a consumer retunes):
133
+ unselected → --selection-accent-strength (~16% — a calm rim glow)
134
+ selected → --selection-accent-strength-selected (~28% — brighter at the rim,
135
+ still ≤ the W-GLASS-ACCENT ceiling; the data hue reads stronger at
136
+ the rim/glint, NOT a flooded plate)
137
+ The host (Card.vue) writes `--glass-accent` (the HUE) per-instance off `data-hue`;
138
+ this rule supplies the STRENGTH so the calm/selected lift is ONE source. An UNSET
139
+ `data-hue` leaves `--glass-accent: transparent` (the @property default), so even
140
+ with the strength engaged the `color-mix(in oklab, X, transparent N%)` === X — the
141
+ A-2 no-op floor: a `variant="selection"` card with no `data-hue` is byte-identical
142
+ to a bare Card. A consumer may override `--glass-accent-strength` per-instance
143
+ (Card.vue's `data-hue-strength`); this rule is the default. */
144
+ [data-variant="selection"] {
145
+ /* The bounded accent-strength ladder — both ≤ the W-GLASS-ACCENT rim ceiling.
146
+ A consumer retunes the calm/selected pair from these two knobs. */
147
+ --selection-accent-strength: 16%;
148
+ --selection-accent-strength-selected: 28%;
149
+ /* Re-point the EXISTING accent-strength seam to the calm rung (the rim glow at
150
+ rest). At an unset `--glass-accent: transparent` this is a provable no-op. */
151
+ --glass-accent-strength: var(--selection-accent-strength);
152
+ }
153
+
154
+ [data-variant="selection"][data-selected="true"] {
155
+ /* SELECTED — lift the accent-strength to the brighter (still-bounded) rung. The
156
+ brighter rim + the `.metal-*-border` Card composes are the selection read; the
157
+ plate is UNTOUCHED (no background/fill here — rim-not-fill). */
158
+ --glass-accent-strength: var(--selection-accent-strength-selected);
159
+ /* OPTIONAL sub-perceptual "selected reads as glass" lift — re-point the base
160
+ tier's resting fill toward the floating rung (the W-REGISTER-IOS tier), a
161
+ TOKEN re-point, NOT a `--surface-tint` gray plate, NEVER a `--foreground`
162
+ brand fill. The plate stays warm-cream translucent (the floating rung is the
163
+ SAME warm-cream material at a heavier rung, the BC.W-GLASS-IDENTITY ladder). */
164
+ --glass-bg-resting: var(--glass-bg-floating, var(--glass-bg-resting));
165
+ }
166
+
98
167
  /* ── Cartoon surface decoration ───────────────────────────────────
99
168
  The Memphis-sticker register. Composes ON TOP of a glass tier — it is
100
169
  NOT itself a tier. The former `.glass-cartoon` recipe declared
@@ -0,0 +1,131 @@
1
+ /* BC.W-AX-COMPLETION-SEAL — the hero-scale earned-GOLD completion seal.
2
+ *
3
+ * A determinate process completes and a HERO-SCALE gold mark DRAWS itself onto the
4
+ * surface: the stroke INKS (a `stroke-dashoffset` wipe on the registered `--seal-draw`
5
+ * <percentage>), settles with a small spring overshoot (the `--seal-scale` SPATIAL leg
6
+ * on the seal's own `--spring-snappy`/`--spring-bouncy` clock), and glints ONCE on
7
+ * settle (the `--seal-glint` + the W-AX-METAL-GLOW gold catch-light). It is GOLD because
8
+ * completion is EARNED — the ink reads the W-PHASE-PALETTE completion register
9
+ * (`--phase-complete-color`/`--color-gold`), so a consumer re-inking completion re-inks
10
+ * the seal in lockstep. The seal mints NO new gold token + does NOT re-author the metal
11
+ * glow — it COMPOSES both (the earned-gold register has ONE home).
12
+ *
13
+ * ONE-SHOT: the draw fires ONCE on `play` (the `.completion-seal[data-play]` arm), then
14
+ * holds the static fully-drawn seal — no looping shimmer (the §6 calm register; the disco
15
+ * family stays gone). PRM-gated: under `prefers-reduced-motion: reduce` the seal appears
16
+ * instantly fully-drawn (`--seal-draw: 100%` snap), no stroke animation, no glint sweep
17
+ * (the seal is correct, the motion off — the vestibular floor).
18
+ *
19
+ * COMPOSITOR-ONLY: the draw rides `stroke-dashoffset` (a paint prop) + `transform` (the
20
+ * scale) + `filter`/`opacity` (the glint) — NO layout property animates
21
+ * (`proof:no-layout-animation` holds). The registrations live in
22
+ * tokens/property-regs.css §18 (the specular/border-progress split: the @property reg
23
+ * there, the consumption here). */
24
+
25
+ .completion-seal {
26
+ /* The seal stroke ink — the EARNED-gold completion register (Q2). The runtime
27
+ cascade default is the token form: a consumer (or any ancestor) re-inking
28
+ `--phase-complete-color` re-inks the seal. The @property `initial-value` literal
29
+ light-gold is only the non-supporting-engine fallback. */
30
+ --seal-ink: var(--phase-complete-color, var(--color-gold));
31
+
32
+ display: inline-flex;
33
+ align-items: center;
34
+ justify-content: center;
35
+ /* The settle scale rides the SPATIAL leg — a small overshoot on the seal's own
36
+ spring clock (NOT a generic --duration-*). Compositor-only (transform). */
37
+ transform: scale(var(--seal-scale, 1));
38
+ }
39
+
40
+ /* The hero-scale gold-draw glyph — an SVG <path>/<circle> stroked in `--seal-ink`. The
41
+ stroke INKS itself via the `--seal-draw` wipe (a stroke-dashoffset paint, never a
42
+ fade). The glint reads the W-AX-METAL-GLOW catch-light (composed, not re-authored). */
43
+ .completion-seal__mark {
44
+ fill: none;
45
+ stroke: var(--seal-ink);
46
+ stroke-width: var(--seal-stroke-width, 6);
47
+ stroke-linecap: round;
48
+ stroke-linejoin: round;
49
+ /* The stroke-reveal: the dash array is the full path length, the offset rides the
50
+ `--seal-draw` extent (100% = drawn → offset 0; 0% = undrawn → offset = full
51
+ length). pathLength="100" normalizes the glyph so the wipe is path-agnostic. */
52
+ stroke-dasharray: 100;
53
+ stroke-dashoffset: calc(100 - var(--seal-draw, 100%) / 1%);
54
+ /* The one-pass gold glint on settle — the W-AX-METAL-GLOW catch-light, scaled by
55
+ `--seal-glint` (0 at rest → 1 on settle-pass). A drop-shadow halo of the seal's
56
+ OWN gold ink at the metal-glow radius/strength — composed, never re-authored.
57
+ The seal is NOT a `.metal-*` element, so the bare `--metal-glow-blur`/`-opacity`
58
+ (declared scoped inside `.metal-{gold,silver,bronze}`) do not cascade here; the
59
+ seal CONSUMES THE REGISTER by chaining to the `:root` `-default` retune seam
60
+ (glass-fx.css), NOT a hardcoded magic-number copy — a consumer who retunes
61
+ `--metal-glow-blur-default` re-tunes the seal halo in lockstep. */
62
+ --metal-glow-blur: var(--metal-glow-blur-default, 0.5em);
63
+ --metal-glow-opacity: var(--metal-glow-opacity-default, 0.35);
64
+ filter: drop-shadow(
65
+ 0 0
66
+ calc(var(--metal-glow-blur) * var(--seal-glint, 0))
67
+ color-mix(
68
+ in oklab,
69
+ var(--seal-ink),
70
+ transparent
71
+ calc(100% - var(--metal-glow-opacity) * var(--seal-glint, 0) * 100%)
72
+ )
73
+ );
74
+ }
75
+
76
+ /* THE ONE-SHOT DRAW — fires ONCE on `play`, then holds static. PRM-gated: the whole
77
+ motion sits inside the no-preference gate (under reduce the seal is the static
78
+ fully-drawn mark, the @property initial-values). The draw is NOT a loop — a single
79
+ pass each on the stroke-reveal + the settle + the glint. */
80
+ @media (prefers-reduced-motion: no-preference) {
81
+ .completion-seal[data-play] {
82
+ animation: completion-seal-settle var(--spring-bouncy-duration, 0.57s)
83
+ var(--spring-bouncy) both;
84
+ }
85
+ .completion-seal[data-play] .completion-seal__mark {
86
+ animation:
87
+ completion-seal-draw var(--spring-snappy-duration, 0.34s)
88
+ var(--ease-out, ease-out) both,
89
+ completion-seal-glint var(--spring-snappy-duration, 0.34s)
90
+ var(--ease-out, ease-out)
91
+ var(--spring-snappy-duration, 0.34s) both;
92
+ }
93
+ }
94
+
95
+ /* The stroke-reveal: the gold INKS itself 0→full (a stroke-dashoffset paint wipe — the
96
+ editorial draw-on). The registered `--seal-draw` interpolates; the offset reads it. */
97
+ @keyframes completion-seal-draw {
98
+ from {
99
+ --seal-draw: 0%;
100
+ }
101
+ to {
102
+ --seal-draw: 100%;
103
+ }
104
+ }
105
+
106
+ /* The settle: the seal lands with a small overshoot (the SPATIAL enter-bounce). The
107
+ transform scale rides the `--seal-scale` spring; the keyframe nudges the scale once
108
+ (the §6 calm overshoot — an ENTER may overshoot on arrival). Compositor-only. */
109
+ @keyframes completion-seal-settle {
110
+ from {
111
+ --seal-scale: 0.92;
112
+ }
113
+ to {
114
+ --seal-scale: 1;
115
+ }
116
+ }
117
+
118
+ /* The glint: a ONE-PASS gold catch-light sweep on settle (0 → peak → 0). NOT a loop —
119
+ a single pass, then the seal holds static at glint 0 (the metal-glow whisper is the
120
+ resting register; the disco family stays gone). */
121
+ @keyframes completion-seal-glint {
122
+ 0% {
123
+ --seal-glint: 0;
124
+ }
125
+ 45% {
126
+ --seal-glint: 1;
127
+ }
128
+ 100% {
129
+ --seal-glint: 0;
130
+ }
131
+ }
@@ -75,3 +75,58 @@
75
75
  .configurator-footer {
76
76
  border-color: var(--configurator-divider);
77
77
  }
78
+
79
+ /* 4. The DESKTOP TWO-COLUMN LAYOUT — controls on the RIGHT (BC.W-CONFIG-RIGHT).
80
+ *
81
+ * The configurator's own desktop grid was the next victim of the BA.W-EMISSION
82
+ * self-emission class (CLAUDE.md): the SFC carried the structural layout as a
83
+ * `lg:grid-cols-[minmax(0,1fr)_minmax(var(--configurator-aside-min,280px),var(--configurator-aside-max,360px))]`
84
+ * arbitrary utility — a `lg:` arbitrary bracket with NESTED `var()` + commas +
85
+ * `minmax()` that dies in a consumer's content-scan (the same failure that killed
86
+ * the Select collision-bound). So every studio rendered SINGLE-column (controls
87
+ * stacked BELOW the stage) on desktop: `getComputedStyle(cfg).gridTemplateColumns`
88
+ * read ONE `1131px` track at 1280px width, the aside below the stage, never right.
89
+ *
90
+ * The fix is the BA.W-EMISSION discipline: the structural layout lives in SHIPPED
91
+ * CSS as a precompiled rule scoped to `[data-slot="configurator"]`, NEVER
92
+ * load-bearing on a content-scan reach (the SAME mechanism the Select bound got in
93
+ * select.css). Below `lg` the base `grid grid-cols-1` + the mobile row template
94
+ * (emitted fine — a plain utility) keeps the single-column stack: stage above,
95
+ * controls below (a narrow viewport has no room for side-by-side). At `lg`+ this
96
+ * rule sets the two-column geometry off the SAME `--configurator-aside-{min,max}`
97
+ * token band (default 280px/360px, retunable via the `asideWidth` prop) the dead
98
+ * utility read — the token contract is byte-identical, only the MECHANISM moves
99
+ * onto shipped CSS. The explicit mobile rows reset to `none` so one auto row
100
+ * stretches to the taller column. */
101
+ @media (min-width: 1024px) {
102
+ [data-slot="configurator"] {
103
+ grid-template-columns: minmax(0, 1fr)
104
+ minmax(
105
+ var(--configurator-aside-min, 280px),
106
+ var(--configurator-aside-max, 360px)
107
+ );
108
+ grid-template-rows: none;
109
+ }
110
+ }
111
+
112
+ /* 5. The SIDE FLIP — a data-attr, default RIGHT (BC.W-CONFIG-RIGHT).
113
+ *
114
+ * The aside side moves off the dead `lg:col-start-*` arbitrary utility (gated
115
+ * behind the same silent-JIT-failure class) onto a `data-aside-side` attr the SFC
116
+ * binds. `right` (the default) is the NATURAL source order — stage in column 1,
117
+ * aside in column 2 — so it needs NO override (the bare desktop rule above already
118
+ * places them left→right). `left` is the reversible taste-level flip: it swaps the
119
+ * grid-COLUMN targets so the aside paints on the LEFT, while the DOM/tab order
120
+ * stays stage→aside (the side is grid-cell PLACEMENT + border-side only, never an
121
+ * `order:`/`row-reverse` that would desync the visual order from the DOM reading
122
+ * order — WCAG 1.3.2/2.4.3 inviolate, the AM.W0 contract). Below `lg` (single
123
+ * column) neither side has meaning. */
124
+ @media (min-width: 1024px) {
125
+ [data-slot="configurator"][data-aside-side="left"] .configurator-stage {
126
+ grid-column-start: 2;
127
+ }
128
+ [data-slot="configurator"][data-aside-side="left"] .configurator-aside {
129
+ grid-column-start: 1;
130
+ grid-row-start: 1;
131
+ }
132
+ }
@@ -27,13 +27,18 @@
27
27
  * component recipes) — under the recorded gzip ceiling (W3).
28
28
  *
29
29
  * DEFERRED (./styles/deferred) — the below-the-fold + late-mount tail: every
30
- * component recipe + the transitions/animations/scroll-driven/view-transition
31
- * grammar + utilities + the menu/configurator/instrument-chassis/hover-popover/
32
- * drawer/segmented-tabs/select/icon-chip component partials, PLUS the folded SFC
33
- * `<style scoped>` payload (`../glass-ui.css`) and the emitted Tailwind
34
- * component-utility surface (`components.css`). These decorate components that
35
- * mount after first paint or sit below the fold; their late arrival shifts no
36
- * above-the-fold pixel (the FOUC-safe floor, W5).
30
+ * component recipe + the transitions/animations/scroll-driven/scroll-chrome/
31
+ * view-transition grammar + utilities + the menu/configurator/instrument-chassis/
32
+ * hover-popover/drawer/segmented-tabs/select/icon-chip/border-progress/
33
+ * completion-seal component partials, PLUS the folded SFC `<style scoped>`
34
+ * payload (`../glass-ui.css`) and the emitted Tailwind component-utility surface
35
+ * (`components.css`). These decorate components that mount after first paint or
36
+ * sit below the fold; their late arrival shifts no above-the-fold pixel (the
37
+ * FOUC-safe floor, W5). The BC-added `scroll-chrome.css` (the scroll-driven
38
+ * floating-CHROME collapse recipe — a late-mount surface decoration) and
39
+ * `completion-seal.css` (the one-shot earned-gold feedback seal — a focal opt-in
40
+ * surface that mounts on a completion event) are BOTH deferred: neither paints
41
+ * an above-the-fold first-paint chrome pixel.
37
42
  *
38
43
  * The `paper.css` partial is bucketed DEFERRED — the paper underpaint/grain
39
44
  * utilities pair with glass for paper-on-glass compositions that mount with the
@@ -65,6 +70,7 @@ export const DEFERRED_PARTIALS = Object.freeze([
65
70
  "animations.css",
66
71
  "scroll-driven.css",
67
72
  "scroll-choreography.css",
73
+ "scroll-chrome.css",
68
74
  "view-transition.css",
69
75
  "utilities.css",
70
76
  "menu.css",
@@ -76,6 +82,7 @@ export const DEFERRED_PARTIALS = Object.freeze([
76
82
  "select.css",
77
83
  "icon-chip.css",
78
84
  "border-progress.css",
85
+ "completion-seal.css",
79
86
  ]);
80
87
 
81
88
  /**
@@ -133,8 +140,23 @@ export const DEFERRED_SOURCE_DIRECTIVE = '@source "../*.js";';
133
140
  * dark-arm + the on-glass-fg / surface-axis registers — all of which live in the
134
141
  * critical tokens/* + glass/* sub-partials by construction. Ceiling lifted
135
142
  * 110000 → 137000 (~4.2% headroom over the measured 131469, the profile-bundle
136
- * re-base convention) to carry the BB glass-band critical surface. The
137
- * render-block FLOOR stays W-LIGHTHOUSE's W3-arm-1 mobile-ms gate (the binding
138
- * perf truth); this ceiling guards against a recipe revert-toward-monolith.
143
+ * re-base convention) to carry the BB glass-band critical surface.
144
+ *
145
+ * RE-BASE (BC.W-CSS-CRITICAL — re-measured over the SETTLED BC cascade): the
146
+ * critical subset grew to raw 482228 / gzip 149748 — AGAIN not a component-recipe
147
+ * leak (the critical bucket is STILL the 6 documented token+glass+type partials;
148
+ * the BC visual bands 1-7 + 9 re-authored the critical tokens/* + glass/* sub-
149
+ * partials — the warm-cream page chassis tokens, the on-glass-fg/surface-axis
150
+ * registers, the calm/deep glass ladder, the scroll/motion token additions in
151
+ * scale-paper.css — all of which live in the critical token cascade by
152
+ * construction; the two BC-added PARTIALS scroll-chrome.css + completion-seal.css
153
+ * are bucketed DEFERRED, NOT critical). The critical subset is 47.3% of the
154
+ * settled monolith's resolved gzip (316614) — the spec's ~46% small-above-the-
155
+ * fold-subset bar HELD over the settled cascade. Ceiling re-pinned 137000 →
156
+ * 156000 (~4.2% headroom over the measured 149748, the profile-bundle re-base
157
+ * convention — the reviewed write, NEVER a silent component-recipe swallow to
158
+ * stay under the old number). The render-block FLOOR stays W-LIGHTHOUSE's
159
+ * W3-arm-1 mobile-ms gate (the binding perf truth); this ceiling guards against a
160
+ * recipe revert-toward-monolith.
139
161
  */
140
- export const CRITICAL_GZIP_CEILING = 137000;
162
+ export const CRITICAL_GZIP_CEILING = 156000;