@mkbabb/glass-ui 3.13.0 → 4.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (507) hide show
  1. package/README.md +3 -1
  2. package/dist/CardAction-CW7a0m8M.js +253 -0
  3. package/dist/{CommandShortcut-RowNEO6i.js → CommandShortcut-DvZNQ_HF.js} +58 -53
  4. package/dist/ConfiguratorRow-BR4l-ixA.js +143 -0
  5. package/dist/{ContextMenuContent-CT3AS1WX.js → ContextMenuContent-uWnVxDab.js} +1 -1
  6. package/dist/{ContextMenuSubContent-BQmxTAdw.js → ContextMenuSubContent-xol4sD2q.js} +32 -37
  7. package/dist/{DataTable-BCddn3T3.js → DataTable-CuKwF7wr.js} +99 -97
  8. package/dist/DialogContent-DcKK8k9i.js +103 -0
  9. package/dist/{DialogFooter-Blu4t7tJ.js → DialogFooter-BZNX5aVr.js} +3 -3
  10. package/dist/FadingScroll-DI6hQhT9.js +76 -0
  11. package/dist/{HoverCardContent-Csywg3YF.js → HoverCardContent-b2uaAMRR.js} +1 -1
  12. package/dist/{HoverPopover-CISOJQuZ.js → HoverPopover-CbqbNwgU.js} +2 -2
  13. package/dist/IconChip-BTD-nay5.js +55 -0
  14. package/dist/{IconTooltip-DPzE09X9.js → IconTooltip-Bl8gFZ8d.js} +1 -1
  15. package/dist/{Input-DWQQIOC4.js → Input-h9v5LeXf.js} +1 -1
  16. package/dist/{MetricBadge-C9QMz1KT.js → MetricBadge-RHdBP72w.js} +1 -1
  17. package/dist/Notification-VUwexFUf.js +43 -0
  18. package/dist/NumberFieldContent-Cq7EzX-U.js +138 -0
  19. package/dist/PopoverContent-DL7E6vJP.js +127 -0
  20. package/dist/{Progress-DwlUKGbr.js → Progress-DctG61iZ.js} +98 -78
  21. package/dist/{ScrollingText-DfFrwSph.js → ScrollingText-yOpBzFYq.js} +2 -2
  22. package/dist/{SelectScrollDownButton-CiDUxfEj.js → SelectScrollDownButton-CrA8F0iV.js} +35 -20
  23. package/dist/{Switch-CsIuYP_e.js → Switch-CwYNf8bo.js} +1 -1
  24. package/dist/Toaster-Bw4xR8xV.js +274 -0
  25. package/dist/{ToggleGroupItem-D_AHlRw9.js → ToggleGroupItem-pEM9vIhs.js} +50 -37
  26. package/dist/{TooltipProvider-B3MkB_8P.js → TooltipProvider-rzvnXz60.js} +1 -1
  27. package/dist/animated-digit.js +2 -2
  28. package/dist/api/index.d.ts +16 -8
  29. package/dist/api/types-extra.d.ts +6 -0
  30. package/dist/api.js +2 -2
  31. package/dist/aurora.js +888 -230
  32. package/dist/badge.js +1 -1
  33. package/dist/border-progress.d.ts +1 -0
  34. package/dist/border-progress.js +106 -0
  35. package/dist/button-DYCUa-tH.js +126 -0
  36. package/dist/button.js +1 -1
  37. package/dist/canvas.js +2 -2
  38. package/dist/card.js +2 -2
  39. package/dist/carousel.d.ts +1 -1
  40. package/dist/carousel.js +90 -151
  41. package/dist/collapsible.js +1 -1
  42. package/dist/color-swatch.d.ts +1 -0
  43. package/dist/color-swatch.js +47 -0
  44. package/dist/color.js +1 -1
  45. package/dist/command.js +1 -1
  46. package/dist/compile-CQEFRTmx.js +19 -0
  47. package/dist/components/custom/aurora/composables/atoms-fields.d.ts +39 -0
  48. package/dist/components/custom/aurora/composables/auroraFallbackGround.d.ts +108 -0
  49. package/dist/components/custom/aurora/composables/runtime.d.ts +19 -0
  50. package/dist/components/custom/aurora/composables/uniformBridge.d.ts +5 -1
  51. package/dist/components/custom/aurora/composables/uniformBridgeWGPU.d.ts +51 -0
  52. package/dist/components/custom/aurora/composables/wgpuSetup.d.ts +29 -0
  53. package/dist/components/custom/aurora/constants/budget.d.ts +21 -0
  54. package/dist/components/custom/aurora/constants/presets.d.ts +30 -2
  55. package/dist/components/custom/aurora/constants/renderMode.d.ts +63 -10
  56. package/dist/components/custom/aurora/constants/shaders/aurora.wgsl.d.ts +1 -0
  57. package/dist/components/custom/aurora/constants/shaders/oil-modes.glsl.d.ts +1 -0
  58. package/dist/components/custom/aurora/constants/shaders/procedural-color.wgsl.d.ts +4 -0
  59. package/dist/components/custom/aurora/index.d.ts +3 -2
  60. package/dist/components/custom/border-progress/BorderProgress.vue.d.ts +46 -0
  61. package/dist/components/custom/border-progress/composables/useBorderSpectrum.d.ts +22 -0
  62. package/dist/components/custom/border-progress/constants.d.ts +59 -0
  63. package/dist/components/custom/border-progress/index.d.ts +4 -0
  64. package/dist/components/custom/color-swatch/ColorSwatch.vue.d.ts +22 -0
  65. package/dist/components/custom/color-swatch/index.d.ts +1 -0
  66. package/dist/components/custom/concentric/Concentric.vue.d.ts +39 -0
  67. package/dist/components/custom/concentric/composables/concentricGLSetup.d.ts +11 -0
  68. package/dist/components/custom/concentric/composables/concentricWGPUSetup.d.ts +13 -0
  69. package/dist/components/custom/concentric/composables/ringField.d.ts +44 -0
  70. package/dist/components/custom/concentric/composables/uniformBridgeWGPU.d.ts +13 -0
  71. package/dist/components/custom/concentric/composables/useConcentric.d.ts +35 -0
  72. package/dist/components/custom/concentric/constants.d.ts +43 -0
  73. package/dist/components/custom/concentric/index.d.ts +5 -0
  74. package/dist/components/custom/concentric/shaders/concentric.glsl.d.ts +4 -0
  75. package/dist/components/custom/concentric/shaders/concentric.wgsl.d.ts +1 -0
  76. package/dist/components/custom/configurator/Configurator.vue.d.ts +19 -8
  77. package/dist/components/custom/constellation/Constellation.vue.d.ts +18 -206
  78. package/dist/components/custom/constellation/composables/useConstellation.d.ts +26 -0
  79. package/dist/components/custom/constellation/constellationField.d.ts +2 -369
  80. package/dist/components/custom/constellation/constellationTypes.d.ts +369 -0
  81. package/dist/components/custom/constellation/index.d.ts +1 -1
  82. package/dist/components/custom/dock/DockIconButton.vue.d.ts +13 -4
  83. package/dist/components/custom/dock/DockLayerGroup.vue.d.ts +10 -2
  84. package/dist/components/custom/dock/DockRail.vue.d.ts +17 -16
  85. package/dist/components/custom/dock/DockSection.vue.d.ts +69 -0
  86. package/dist/components/custom/dock/DockSeparator.vue.d.ts +49 -1
  87. package/dist/components/custom/dock/DockTabButton.vue.d.ts +5 -5
  88. package/dist/components/custom/dock/composables/dockMorphMeasure.d.ts +75 -0
  89. package/dist/components/custom/dock/composables/useLayerTransition.d.ts +13 -0
  90. package/dist/components/custom/dock/constants.d.ts +35 -0
  91. package/dist/components/custom/dock/index.d.ts +2 -0
  92. package/dist/components/custom/dot-flow-field/DotFlowField.vue.d.ts +38 -0
  93. package/dist/components/custom/dot-flow-field/composables/flowField.d.ts +41 -0
  94. package/dist/components/custom/dot-flow-field/composables/uniformBridgeWGPU.d.ts +24 -0
  95. package/dist/components/custom/dot-flow-field/composables/useDotFlowField.d.ts +34 -0
  96. package/dist/components/custom/dot-flow-field/composables/useFlowParticles.d.ts +18 -0
  97. package/dist/components/custom/dot-flow-field/constants.d.ts +48 -0
  98. package/dist/components/custom/dot-flow-field/index.d.ts +5 -0
  99. package/dist/components/custom/dot-flow-field/shaders/flow-field.compute.wgsl.d.ts +1 -0
  100. package/dist/components/custom/dot-flow-field/shaders/flow-field.glsl.d.ts +20 -0
  101. package/dist/components/custom/dot-flow-field/shaders/flow-field.render.wgsl.d.ts +1 -0
  102. package/dist/components/custom/easing/EasingConfigurator.vue.d.ts +33 -0
  103. package/dist/components/custom/easing/EasingPicker.vue.d.ts +49 -0
  104. package/dist/components/custom/easing/composables/useEasingPicker.d.ts +75 -0
  105. package/dist/components/custom/easing/constants.d.ts +28 -0
  106. package/dist/components/custom/easing/index.d.ts +3 -0
  107. package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +10 -0
  108. package/dist/components/custom/fading-scroll/FadingScroll.vue.d.ts +25 -0
  109. package/dist/components/custom/fading-scroll/composables/useFadingScroll.d.ts +31 -0
  110. package/dist/components/custom/fading-scroll/constants.d.ts +19 -0
  111. package/dist/components/custom/fading-scroll/index.d.ts +2 -0
  112. package/dist/components/custom/fourier-field/FourierField.vue.d.ts +19 -2
  113. package/dist/components/custom/fourier-field/composables/useFourierField.d.ts +39 -0
  114. package/dist/components/custom/fourier-field/constants.d.ts +7 -0
  115. package/dist/components/custom/fourier-field/index.d.ts +1 -1
  116. package/dist/components/custom/fourier-field/math.d.ts +17 -0
  117. package/dist/components/custom/glass-panel/GlassPanel.vue.d.ts +9 -1
  118. package/dist/components/custom/goo-blob/GooBlob.vue.d.ts +4 -2
  119. package/dist/components/custom/goo-blob/composables/uniformBridgeWGPU.d.ts +24 -0
  120. package/dist/components/custom/goo-blob/composables/useMetaballRenderer.d.ts +29 -12
  121. package/dist/components/custom/goo-blob/composables/wgpuSetup.d.ts +23 -0
  122. package/dist/components/custom/goo-blob/constants.d.ts +6 -1
  123. package/dist/components/custom/goo-blob/shaders/metaball.wgsl.d.ts +1 -0
  124. package/dist/components/custom/handmark/HandMark.vue.d.ts +29 -0
  125. package/dist/components/custom/handmark/brush.d.ts +269 -0
  126. package/dist/components/custom/handmark/composables/useHandMark.d.ts +89 -0
  127. package/dist/components/custom/handmark/constants.d.ts +39 -0
  128. package/dist/components/custom/handmark/freehand.d.ts +69 -0
  129. package/dist/components/custom/handmark/geometry.d.ts +52 -0
  130. package/dist/components/custom/handmark/index.d.ts +27 -0
  131. package/dist/components/custom/handmark/ink.d.ts +11 -0
  132. package/dist/components/custom/handmark/texture.d.ts +39 -0
  133. package/dist/components/custom/handmark/types.d.ts +62 -0
  134. package/dist/components/custom/icon-chip/IconChip.vue.d.ts +4 -0
  135. package/dist/components/custom/icon-chip/index.d.ts +2 -0
  136. package/dist/components/custom/icon-chip/types.d.ts +82 -0
  137. package/dist/components/custom/instrument-chassis/InstrumentChassis.vue.d.ts +17 -2
  138. package/dist/components/custom/metric-stack/MetricStack.vue.d.ts +1 -1
  139. package/dist/components/custom/pager-dots/PagerDots.vue.d.ts +39 -0
  140. package/dist/components/custom/pager-dots/index.d.ts +2 -0
  141. package/dist/components/custom/spa-view/SpaView.vue.d.ts +50 -0
  142. package/dist/components/custom/spa-view/index.d.ts +2 -0
  143. package/dist/components/custom/tabs/SegmentedTabs.vue.d.ts +29 -24
  144. package/dist/components/custom/tabs/composables/useTabDragMorph.d.ts +42 -0
  145. package/dist/components/custom/tabs/composables/useTabIndicator.d.ts +30 -21
  146. package/dist/components/custom/tabs/constants.d.ts +9 -3
  147. package/dist/components/custom/tabs/index.d.ts +1 -1
  148. package/dist/components/custom/watercolor-dot/WatercolorDot.vue.d.ts +15 -1
  149. package/dist/components/ui/_shared/index.d.ts +2 -0
  150. package/dist/components/ui/_shared/menuItemVariants.d.ts +19 -0
  151. package/dist/components/ui/_shared/useSurfaceAxis.d.ts +41 -0
  152. package/dist/components/ui/badge/index.d.ts +1 -1
  153. package/dist/components/ui/button/Button.vue.d.ts +5 -2
  154. package/dist/components/ui/button/index.d.ts +2 -2
  155. package/dist/components/ui/card/Card.vue.d.ts +34 -4
  156. package/dist/components/ui/card/CardHeader.vue.d.ts +42 -16
  157. package/dist/components/ui/card/ScrollCard.vue.d.ts +33 -0
  158. package/dist/components/ui/card/ScrollCardHeader.vue.d.ts +17 -0
  159. package/dist/components/ui/card/index.d.ts +2 -0
  160. package/dist/components/ui/carousel/CarouselNext.vue.d.ts +2 -2
  161. package/dist/components/ui/carousel/CarouselPrevious.vue.d.ts +2 -2
  162. package/dist/components/ui/carousel/GlassCarouselPager.vue.d.ts +2 -2
  163. package/dist/components/ui/carousel/index.d.ts +0 -1
  164. package/dist/components/ui/command/Command.vue.d.ts +4 -1
  165. package/dist/components/ui/dialog/DialogContent.vue.d.ts +8 -3
  166. package/dist/components/ui/drawer/Drawer.vue.d.ts +46 -33
  167. package/dist/components/ui/drawer/DrawerContent.vue.d.ts +12 -8
  168. package/dist/components/ui/drawer/DrawerDescription.vue.d.ts +2 -2
  169. package/dist/components/ui/drawer/DrawerOverlay.vue.d.ts +1 -1
  170. package/dist/components/ui/drawer/DrawerTitle.vue.d.ts +2 -2
  171. package/dist/components/ui/drawer/composables/drawerSnapContext.d.ts +26 -0
  172. package/dist/components/ui/drawer/composables/useDrawerSnap.d.ts +17 -0
  173. package/dist/components/ui/drawer/constants.d.ts +45 -0
  174. package/dist/components/ui/drawer/index.d.ts +23 -15
  175. package/dist/components/ui/focus-scope/FocusScope.vue.d.ts +20 -0
  176. package/dist/components/ui/focus-scope/index.d.ts +2 -0
  177. package/dist/components/ui/index.d.ts +1 -1
  178. package/dist/components/ui/popover/PopoverContent.vue.d.ts +3 -0
  179. package/dist/components/ui/progress/ProgressDefault.vue.d.ts +3 -2
  180. package/dist/components/ui/progress/ProgressSectioned.vue.d.ts +14 -3
  181. package/dist/components/ui/select/SelectContent.vue.d.ts +1 -1
  182. package/dist/components/ui/select/SelectTrigger.vue.d.ts +27 -4
  183. package/dist/components/ui/sheet/SheetContent.vue.d.ts +6 -0
  184. package/dist/components/ui/sheet/index.d.ts +1 -1
  185. package/dist/components/ui/skeleton/Skeleton.vue.d.ts +3 -0
  186. package/dist/components/ui/tags-input/TagsInput.vue.d.ts +2 -2
  187. package/dist/components/ui/toast/Toast.vue.d.ts +5 -2
  188. package/dist/components/ui/toast/use-toast.d.ts +14 -0
  189. package/dist/components/ui/toggle/Toggle.vue.d.ts +1 -1
  190. package/dist/composables/dark/index.d.ts +1 -1
  191. package/dist/composables/dark/useGlobalDark.d.ts +23 -1
  192. package/dist/composables/glass/canvas2d/useCanvas2D.d.ts +13 -6
  193. package/dist/composables/glass/index.d.ts +5 -2
  194. package/dist/composables/glass/useSpecularPointer.d.ts +33 -0
  195. package/dist/composables/glass/useSpecularTracking.d.ts +20 -0
  196. package/dist/composables/glass/vSpecular.d.ts +2 -0
  197. package/dist/composables/glass/webgl/shaders/flow.glsl.d.ts +1 -0
  198. package/dist/composables/glass/webgl/useWebGLCanvas.d.ts +16 -0
  199. package/dist/composables/glass/webgpu/index.d.ts +2 -0
  200. package/dist/composables/glass/webgpu/useGpuSubstrate.d.ts +54 -0
  201. package/dist/composables/glass/webgpu/useWebGPUCanvas.d.ts +84 -0
  202. package/dist/composables/motion/core/index.d.ts +1 -0
  203. package/dist/composables/motion/index.d.ts +4 -0
  204. package/dist/composables/motion/useDockCtaReceive.d.ts +59 -0
  205. package/dist/composables/motion/useDragMorph.d.ts +77 -0
  206. package/dist/composables/motion/useLiquidFlex.d.ts +11 -0
  207. package/dist/composables/motion/useLiquidPress.d.ts +71 -0
  208. package/dist/composables/motion/useLiquidReveal.d.ts +51 -0
  209. package/dist/composables/motion/useNumericTransition.d.ts +3 -3
  210. package/dist/composables/motion/usePointerVelocityField.d.ts +98 -0
  211. package/dist/composables/motion/useViewTransition.d.ts +36 -1
  212. package/dist/concentric.d.ts +1 -0
  213. package/dist/concentric.js +562 -0
  214. package/dist/configurator.js +3 -2
  215. package/dist/confirm-dialog.js +22 -24
  216. package/dist/constellation.js +93 -95
  217. package/dist/context-menu.js +3 -3
  218. package/dist/controls.js +10 -4
  219. package/dist/createCanvasLifecycle-CHD5XrDW.js +82 -0
  220. package/dist/dark.d.ts +1 -1
  221. package/dist/dark.js +1 -1
  222. package/dist/data-table.js +1 -1
  223. package/dist/dialog.js +2 -2
  224. package/dist/dock.js +738 -442
  225. package/dist/{dockContext-BegmJVmx.js → dockContext-BNfyPLe9.js} +1 -1
  226. package/dist/dom.js +5 -5
  227. package/dist/dot-flow-field.d.ts +1 -0
  228. package/dist/dot-flow-field.js +604 -0
  229. package/dist/drawer.d.ts +1 -0
  230. package/dist/drawer.js +380 -0
  231. package/dist/{dropdown-menu-DzkkyBwX.js → dropdown-menu-CofSZuk8.js} +14 -15
  232. package/dist/dropdown-menu.js +1 -1
  233. package/dist/easing.d.ts +1 -0
  234. package/dist/easing.js +463 -0
  235. package/dist/expandable-container.js +45 -38
  236. package/dist/fading-scroll.d.ts +1 -0
  237. package/dist/fading-scroll.js +2 -0
  238. package/dist/focus-scope.d.ts +1 -0
  239. package/dist/focus-scope.js +23 -0
  240. package/dist/forms.js +7 -7
  241. package/dist/fourier-field.js +135 -122
  242. package/dist/fourier-math.js +2 -2
  243. package/dist/glass-panel.js +39 -36
  244. package/dist/glass-ui.css +1 -1
  245. package/dist/glass-ui.js +154 -362
  246. package/dist/goo-blob.js +838 -227
  247. package/dist/handmark.d.ts +1 -0
  248. package/dist/handmark.js +707 -0
  249. package/dist/header-ribbon.js +1 -1
  250. package/dist/hover-card.js +1 -1
  251. package/dist/hover-popover.js +1 -1
  252. package/dist/icon-chip.d.ts +1 -0
  253. package/dist/icon-chip.js +2 -0
  254. package/dist/icon-tooltip.js +1 -1
  255. package/dist/index.d.ts +3 -3
  256. package/dist/instrument-chassis.js +1 -1
  257. package/dist/keyboard.js +1 -1
  258. package/dist/label.js +1 -1
  259. package/dist/labeled-field.js +6 -6
  260. package/dist/{math-U6-RrLmV.js → math-BINYmg5z.js} +11 -3
  261. package/dist/{menuItemVariants-DPiEarb0.js → menuItemVariants-D8VNHq22.js} +10 -4
  262. package/dist/metric-badge.js +1 -1
  263. package/dist/metric-cell.js +25 -22
  264. package/dist/metric-stack.js +4 -8
  265. package/dist/motion-core.js +36 -35
  266. package/dist/motion-curves.js +1 -1
  267. package/dist/motion.js +157 -55
  268. package/dist/notification.js +1 -1
  269. package/dist/number-field.js +1 -1
  270. package/dist/pager-dots.d.ts +1 -0
  271. package/dist/pager-dots.js +91 -0
  272. package/dist/paper-backdrop.js +1 -1
  273. package/dist/popover.js +1 -1
  274. package/dist/{presets-BKVyQfbt.js → presets-BW2b-fr1.js} +14 -1
  275. package/dist/{compile-B7NGOBcP.js → procedural-color.glsl-CIFsJhwI.js} +1 -155
  276. package/dist/procedural-color.wgsl-CToRHugY.js +224 -0
  277. package/dist/progress.js +1 -1
  278. package/dist/pulse.js +1 -1
  279. package/dist/reactive.js +2 -2
  280. package/dist/scrolling-text.js +1 -1
  281. package/dist/search.js +10 -12
  282. package/dist/select.js +3 -3
  283. package/dist/separator.js +1 -1
  284. package/dist/sheet-tZMg0E0w.js +218 -0
  285. package/dist/sheet.js +1 -1
  286. package/dist/{slider-B-JP2JlI.js → slider-DVb4HXU-.js} +7 -7
  287. package/dist/slider.js +1 -1
  288. package/dist/sortable-list.js +3 -3
  289. package/dist/spa-view.d.ts +1 -0
  290. package/dist/spa-view.js +46 -0
  291. package/dist/styles/animations.css +40 -31
  292. package/dist/styles/border-progress.css +109 -0
  293. package/dist/styles/cards.css +76 -0
  294. package/dist/styles/components.css +1 -1
  295. package/dist/styles/configurator.css +35 -0
  296. package/dist/styles/critical-partition.mjs +140 -0
  297. package/dist/styles/critical.css +12 -0
  298. package/dist/styles/deferred.css +31 -0
  299. package/dist/styles/dock/density.css +64 -0
  300. package/dist/styles/dock/layers.css +54 -30
  301. package/dist/styles/dock/morph.css +124 -7
  302. package/dist/styles/dock/overflow.css +31 -2
  303. package/dist/styles/dock/rail-extend.css +168 -71
  304. package/dist/styles/dock/section.css +59 -0
  305. package/dist/styles/dock/shell.css +83 -16
  306. package/dist/styles/dock-controls/icon-button.css +11 -1
  307. package/dist/styles/dock-controls/tab-button.css +24 -83
  308. package/dist/styles/dock-controls/triggers.css +7 -0
  309. package/dist/styles/dock.css +38 -3
  310. package/dist/styles/drawer.css +127 -35
  311. package/dist/styles/feedback-tone.css +104 -0
  312. package/dist/styles/glass/deep.css +44 -0
  313. package/dist/styles/glass/ladder.css +154 -52
  314. package/dist/styles/glass/material.css +78 -15
  315. package/dist/styles/glass/reveal.css +136 -0
  316. package/dist/styles/glass/rim.css +100 -0
  317. package/dist/styles/glass/surface-axis.css +113 -0
  318. package/dist/styles/glass/surfaces.css +189 -15
  319. package/dist/styles/glass-refract.css +96 -44
  320. package/dist/styles/glass-specular-track.css +7 -0
  321. package/dist/styles/glass.css +8 -2
  322. package/dist/styles/hover-popover.css +7 -6
  323. package/dist/styles/icon-chip.css +211 -0
  324. package/dist/styles/index.css +78 -4
  325. package/dist/styles/instrument-chassis.css +107 -2
  326. package/dist/styles/menu.css +127 -0
  327. package/dist/styles/scroll-choreography.css +300 -0
  328. package/dist/styles/segmented-tabs.css +188 -86
  329. package/dist/styles/select.css +50 -0
  330. package/dist/styles/theme/bridges.css +22 -1
  331. package/dist/styles/theme/literals.css +11 -2
  332. package/dist/styles/theme/radius.css +6 -1
  333. package/dist/styles/tokens/color-radius.css +40 -13
  334. package/dist/styles/tokens/dark-arm.css +200 -20
  335. package/dist/styles/tokens/glass-deep.css +75 -0
  336. package/dist/styles/tokens/glass-fx.css +333 -0
  337. package/dist/styles/tokens/glass.css +95 -315
  338. package/dist/styles/tokens/light-dark.css +64 -22
  339. package/dist/styles/tokens/offsets.css +116 -0
  340. package/dist/styles/tokens/on-glass-fg.css +39 -0
  341. package/dist/styles/tokens/property-regs.css +130 -10
  342. package/dist/styles/tokens/scale-paper.css +155 -84
  343. package/dist/styles/tokens/scheme-motion.css +102 -46
  344. package/dist/styles/tokens/scroll-tokens.css +123 -0
  345. package/dist/styles/tokens/{offsets-sizing.css → sizing.css} +88 -89
  346. package/dist/styles/tokens.css +9 -3
  347. package/dist/styles/transitions.css +7 -7
  348. package/dist/styles/typography/scale.css +153 -0
  349. package/dist/styles/typography/semantic.css +220 -0
  350. package/dist/styles/typography/utilities.css +174 -0
  351. package/dist/styles/typography.css +23 -507
  352. package/dist/styles/utilities/a11y-overrides.css +33 -4
  353. package/dist/styles/utilities/animate.css +27 -24
  354. package/dist/styles/utilities/base-misc.css +255 -0
  355. package/dist/styles/utilities/base.css +100 -138
  356. package/dist/styles/utilities/btn.css +21 -202
  357. package/dist/styles/utilities/metal.css +189 -0
  358. package/dist/styles/utilities.css +14 -7
  359. package/dist/styles/view-transition.css +4 -1
  360. package/dist/switch.js +1 -1
  361. package/dist/tabs.js +275 -191
  362. package/dist/timeline.js +2 -2
  363. package/dist/toast.js +1 -1
  364. package/dist/toggle-chip.js +3 -1
  365. package/dist/toggle-group.js +1 -1
  366. package/dist/tooltip.js +1 -1
  367. package/dist/typewriter.js +1 -1
  368. package/dist/{useAnimatedNumber-C5I3wWd8.js → useAnimatedNumber-BfUq2bUM.js} +1 -1
  369. package/dist/useCanvas2D-B8w_E3Rr.js +83 -0
  370. package/dist/useConfiguratorState-DNlOh6c8.js +161 -0
  371. package/dist/useDragMorph-DgxnsVJz.js +102 -0
  372. package/dist/{useGlobalDark-yhL4Wp-s.js → useGlobalDark-C28t0VWJ.js} +22 -3
  373. package/dist/useLiquidPress-kfb4KX79.js +39 -0
  374. package/dist/usePointerVelocityField-JbRd5CrM.js +137 -0
  375. package/dist/{useRAFLoop-Bxv0o6L5.js → useRAFLoop-UYa4zoiN.js} +1 -1
  376. package/dist/useSpring-C0jyvEJB.js +40 -0
  377. package/dist/useSpringMount-q1amq1SJ.js +71 -0
  378. package/dist/useSpringPress-BsqPr7FJ.js +34 -0
  379. package/dist/useSurfaceAxis-g0NloYEF.js +7 -0
  380. package/dist/{useTouchGate-Dg7MQI1G.js → useTouchGate-CBZTD4SD.js} +1 -1
  381. package/dist/vReveal-Czsb7zQC.js +10 -0
  382. package/dist/vSpecular-CQFmLNzA.js +68 -0
  383. package/dist/vendor-CKmzio-i.js +226 -0
  384. package/dist/watercolor-dot.js +12 -5
  385. package/package.json +193 -25
  386. package/src/styles/animations.css +40 -31
  387. package/src/styles/border-progress.css +109 -0
  388. package/src/styles/cards.css +76 -0
  389. package/src/styles/configurator.css +35 -0
  390. package/src/styles/critical-partition.mjs +140 -0
  391. package/src/styles/dock/density.css +64 -0
  392. package/src/styles/dock/layers.css +54 -30
  393. package/src/styles/dock/morph.css +124 -7
  394. package/src/styles/dock/overflow.css +31 -2
  395. package/src/styles/dock/rail-extend.css +168 -71
  396. package/src/styles/dock/section.css +59 -0
  397. package/src/styles/dock/shell.css +83 -16
  398. package/src/styles/dock-controls/icon-button.css +11 -1
  399. package/src/styles/dock-controls/tab-button.css +24 -83
  400. package/src/styles/dock-controls/triggers.css +7 -0
  401. package/src/styles/dock.css +38 -3
  402. package/src/styles/drawer.css +123 -35
  403. package/src/styles/feedback-tone.css +104 -0
  404. package/src/styles/glass/deep.css +44 -0
  405. package/src/styles/glass/ladder.css +154 -52
  406. package/src/styles/glass/material.css +78 -15
  407. package/src/styles/glass/reveal.css +136 -0
  408. package/src/styles/glass/rim.css +100 -0
  409. package/src/styles/glass/surface-axis.css +113 -0
  410. package/src/styles/glass/surfaces.css +189 -15
  411. package/src/styles/glass-refract.css +96 -44
  412. package/src/styles/glass-specular-track.css +7 -0
  413. package/src/styles/glass.css +8 -2
  414. package/src/styles/hover-popover.css +7 -6
  415. package/src/styles/icon-chip.css +211 -0
  416. package/src/styles/index.css +78 -4
  417. package/src/styles/instrument-chassis.css +107 -2
  418. package/src/styles/menu.css +127 -0
  419. package/src/styles/scroll-choreography.css +300 -0
  420. package/src/styles/segmented-tabs.css +184 -84
  421. package/src/styles/select.css +50 -0
  422. package/src/styles/theme/bridges.css +22 -1
  423. package/src/styles/theme/literals.css +11 -2
  424. package/src/styles/theme/radius.css +6 -1
  425. package/src/styles/tokens/color-radius.css +40 -13
  426. package/src/styles/tokens/dark-arm.css +200 -20
  427. package/src/styles/tokens/glass-deep.css +75 -0
  428. package/src/styles/tokens/glass-fx.css +333 -0
  429. package/src/styles/tokens/glass.css +95 -315
  430. package/src/styles/tokens/light-dark.css +64 -22
  431. package/src/styles/tokens/offsets.css +116 -0
  432. package/src/styles/tokens/on-glass-fg.css +39 -0
  433. package/src/styles/tokens/property-regs.css +130 -10
  434. package/src/styles/tokens/scale-paper.css +155 -84
  435. package/src/styles/tokens/scheme-motion.css +102 -46
  436. package/src/styles/tokens/scroll-tokens.css +123 -0
  437. package/src/styles/tokens/{offsets-sizing.css → sizing.css} +88 -89
  438. package/src/styles/tokens.css +9 -3
  439. package/src/styles/transitions.css +7 -7
  440. package/src/styles/typography/scale.css +153 -0
  441. package/src/styles/typography/semantic.css +220 -0
  442. package/src/styles/typography/utilities.css +174 -0
  443. package/src/styles/typography.css +23 -507
  444. package/src/styles/utilities/a11y-overrides.css +33 -4
  445. package/src/styles/utilities/animate.css +27 -24
  446. package/src/styles/utilities/base-misc.css +255 -0
  447. package/src/styles/utilities/base.css +100 -138
  448. package/src/styles/utilities/btn.css +21 -202
  449. package/src/styles/utilities/metal.css +189 -0
  450. package/src/styles/utilities.css +14 -7
  451. package/src/styles/view-transition.css +4 -1
  452. package/dist/CardAction-Cj2eycQ2.js +0 -157
  453. package/dist/DialogContent-Dl9WkAoS.js +0 -100
  454. package/dist/Notification-DdwNxIrI.js +0 -100
  455. package/dist/NumberFieldContent-CqaN-SvN.js +0 -145
  456. package/dist/PopoverContent-BYwt2-4x.js +0 -121
  457. package/dist/TabsList-Dttss653.js +0 -105
  458. package/dist/Toaster-D6q4HtXu.js +0 -263
  459. package/dist/button-ChXMfsud.js +0 -81
  460. package/dist/check-njhk-vfu.js +0 -7
  461. package/dist/chevron-down-DKkxb4VV.js +0 -7
  462. package/dist/chevron-right-CPXbqQQz.js +0 -7
  463. package/dist/chevron-up-n_24SqI-.js +0 -7
  464. package/dist/components/custom/underline/GlassUnderline.vue.d.ts +0 -84
  465. package/dist/components/custom/underline/index.d.ts +0 -2
  466. package/dist/components/custom/underline/types.d.ts +0 -56
  467. package/dist/components/ui/carousel/CarouselDots.vue.d.ts +0 -4
  468. package/dist/createLucideIcon-DydS2qgk.js +0 -43
  469. package/dist/minimize-2-BV31Ob_h.js +0 -38
  470. package/dist/search-BSGrf2Sk.js +0 -12
  471. package/dist/sheet-1fChZjtw.js +0 -214
  472. package/dist/underline.d.ts +0 -1
  473. package/dist/underline.js +0 -85
  474. package/dist/useCanvas2D-ClrQuZtp.js +0 -96
  475. package/dist/useConfiguratorState-DAoeHVue.js +0 -287
  476. package/dist/useSpecularTracking-Bo5su68i.js +0 -32
  477. package/dist/useSpringMount-CI2jOstM.js +0 -108
  478. package/dist/vReveal-CqaCz_mC.js +0 -44
  479. package/dist/x-BUwTKe50.js +0 -10
  480. /package/dist/{CollapsibleContent-CP9qF1v4.js → CollapsibleContent-68dEXIAl.js} +0 -0
  481. /package/dist/{InstrumentChassis-UUJX0-mW.js → InstrumentChassis-Bx0F_q5g.js} +0 -0
  482. /package/dist/{Label-r3WzWrsj.js → Label-C2ejNWeC.js} +0 -0
  483. /package/dist/{ModalOverlay-DVLI2VRr.js → ModalOverlay-D1VrWyoi.js} +0 -0
  484. /package/dist/{PaperBackdrop-DIXTtVq6.js → PaperBackdrop-Vf3tlpvd.js} +0 -0
  485. /package/dist/{SelectGroup-aumMgWLs.js → SelectGroup-DwwjicPY.js} +0 -0
  486. /package/dist/{SelectSeparator-BQ_1Fcbp.js → SelectSeparator-DXswVdRz.js} +0 -0
  487. /package/dist/{Separator-0JE6LtNu.js → Separator-pKF0oA4M.js} +0 -0
  488. /package/dist/{_plugin-vue_export-helper-ok8pgSl5.js → _plugin-vue_export-helper-C1je1s0u.js} +0 -0
  489. /package/dist/{badge-UILT_3pZ.js → badge-D9XWW4GT.js} +0 -0
  490. /package/dist/{color-CUYeFbgd.js → color-DweYl7pE.js} +0 -0
  491. /package/dist/{constants-CS75AWHG.js → constants-BPOqYJAm.js} +0 -0
  492. /package/dist/{createContext-BM46COQ-.js → createContext-CpBNTRMI.js} +0 -0
  493. /package/dist/{prng-D27-B3tK.js → prng-Za0Rmgag.js} +0 -0
  494. /package/dist/{resolveCanvasColor-BBiYfp8g.js → resolveCanvasColor-CUyHr5Uu.js} +0 -0
  495. /package/dist/{springPresets--YdWTHtm.js → springPresets-CFQGQfdl.js} +0 -0
  496. /package/dist/{useIntersectionPause-Cc-H9ees.js → useIntersectionPause-Bj4sPkMh.js} +0 -0
  497. /package/dist/{useInterval-iHludrxk.js → useInterval-CvK1mL92.js} +0 -0
  498. /package/dist/{useKeyboardShortcuts-Be3w_Rwk.js → useKeyboardShortcuts-BXWXOZ-9.js} +0 -0
  499. /package/dist/{useLiquidFlex-BL0lLLN2.js → useLiquidFlex-mZPMiNXh.js} +0 -0
  500. /package/dist/{useResizeObserver-BhgdhOIj.js → useResizeObserver-Bpoi7tRE.js} +0 -0
  501. /package/dist/{useResolveTokenColor-Dvn2RZJW.js → useResolveTokenColor-vAylyR0x.js} +0 -0
  502. /package/dist/{useScrollProgress-Dlvx-L3v.js → useScrollProgress-D7bYU2RK.js} +0 -0
  503. /package/dist/{useSortable-muI29agz.js → useSortable-DHjtZSEd.js} +0 -0
  504. /package/dist/{useTextHighlight-DmRYkOBx.js → useTextHighlight-CWEi25hf.js} +0 -0
  505. /package/dist/{useTimer-Dzarvzuk.js → useTimer-BHJOKr35.js} +0 -0
  506. /package/dist/{useUserInvalidAria-B2h6jAM_.js → useUserInvalidAria-y5namzeE.js} +0 -0
  507. /package/dist/{useViewportReady-B40FK4Pa.js → useViewportReady-anbac3m6.js} +0 -0
@@ -17,6 +17,82 @@
17
17
  :where(.dark) .paper-texture {
18
18
  background-blend-mode: screen;
19
19
  }
20
+
21
+ /* BB.W-PAPER-GRID-TEXTURE — the GEOMETRIC sibling of `.paper-texture`.
22
+ Paints the two-frequency `--paper-grid-texture` engineering-grid as a
23
+ card's INTERIOR ground, clipped to the plate's own `border-radius`
24
+ automatically (a host `background-image`), so the math/grid brand pillar
25
+ reads THROUGH a document-register card at the ambient `--paper-grid-
26
+ opacity` — not only in the page margin an opaque plate occludes. A
27
+ decoration-only register (NOT a tier): it composes ON TOP of any glass/
28
+ paper tier, exactly like `.paper-texture` / `cartoon-surface` /
29
+ `veil-surface`.
30
+
31
+ THE SEAM (the two-pseudo-budget reveal, recorded — the Triumvirate's
32
+ through-glass-read locate-the-seam, NOT a token-α loop): a glass tier
33
+ already claims BOTH pseudos — `::before` is the moving-specular catch-
34
+ light (glass/material.css) and `::after` is the grain overlay
35
+ (glass/ladder.css). A `.paper-grid::after` would CLOBBER the grain's
36
+ `background-image` on the SAME single pseudo — so the grid + grain could
37
+ not compose (the orthogonality the spec requires). The grid therefore
38
+ rides the HOST element's `background-image` longhand: the glass tier's
39
+ `background:` SHORTHAND sets the translucent fill `background-color`, and
40
+ a later `background-image` longhand COEXISTS with that color (the image
41
+ paints OVER the color, UNDER the content + UNDER both pseudos), so the
42
+ grid is the card's own underlay felt THROUGH the glass tint with ZERO
43
+ pseudo contention — grain (`::after`) + specular (`::before`) + grid
44
+ (host bg-image) all paint at once. The host bg-image is clipped by the
45
+ host `border-radius` by construction (no `border-radius: inherit` pseudo
46
+ needed). A STATIC raster — gradient-stack `background-image`, one
47
+ compositor-cached paint, no per-frame repaint (the W6 paint-path
48
+ discipline). The ambient strength lives in the line-ink alpha (the
49
+ `--paper-grid-opacity`-scaled `--foreground` mix, scale-paper.css) since
50
+ a host bg-image has no independent layer-opacity — so ONE knob
51
+ (`--paper-grid-opacity`) still tunes the through-card strength. */
52
+ .paper-grid {
53
+ background-image: var(--paper-grid-texture);
54
+ background-repeat: repeat;
55
+ background-size:
56
+ calc(var(--paper-grid-texture-size) * 4)
57
+ calc(var(--paper-grid-texture-size) * 4),
58
+ calc(var(--paper-grid-texture-size) * 4)
59
+ calc(var(--paper-grid-texture-size) * 4),
60
+ var(--paper-grid-texture-size) var(--paper-grid-texture-size),
61
+ var(--paper-grid-texture-size) var(--paper-grid-texture-size);
62
+ background-blend-mode: multiply;
63
+ }
64
+
65
+ /* The scheme-aware dark arm — PLAIN-ancestor `.dark` (NOT a scoped
66
+ `:global()`; the recurring scoped-global-drop trap, recorded; this is a
67
+ library CSS partial, but the discipline holds). The line ink is
68
+ `--foreground`-derived, so the warm-cream foreground flips dark→light in
69
+ the `.dark` block and the grid ink auto-lifts off the near-black `--card`
70
+ interior with NO parallel `--paper-grid-*-dark` family — only the BLEND
71
+ flips (light `multiply` → dark `screen`, the legible-on-dark equivalent
72
+ the `.paper-texture` dark arm uses). */
73
+ :where(.dark) .paper-grid,
74
+ .dark .paper-grid {
75
+ background-blend-mode: screen;
76
+ }
77
+ }
78
+
79
+ /* ═══════════════════════════════════════════════
80
+ A11y — the geometric grid honors the SAME transparency idiom the organic
81
+ paper register establishes (paper.css). A reduced-transparency user gets a
82
+ clean card interior, no texture; the static grid needs no motion gate (the
83
+ PRM block guards a future drift only). One a11y idiom, not a grid-local fork.
84
+ ═══════════════════════════════════════════════ */
85
+ @media (prefers-reduced-transparency: reduce) {
86
+ .paper-grid {
87
+ background-image: none;
88
+ }
89
+ }
90
+
91
+ @media (prefers-reduced-motion: reduce) {
92
+ .paper-grid {
93
+ /* Static raster at rest; guard a future `@property` transform drift. */
94
+ animation: none !important;
95
+ }
20
96
  }
21
97
 
22
98
  /* ── Cartoon surface decoration ───────────────────────────────────
@@ -40,3 +40,38 @@
40
40
  .configurator-presets [role="tablist"] {
41
41
  gap: var(--configurator-preset-row-gap);
42
42
  }
43
+
44
+ /* 3. The DIVIDER register — dark-adaptive (BA.W-CONFIG-CHASSIS.1, CFG-4). The
45
+ * section + inter-row dividers were inline `border-border/40` / `/30` Tailwind
46
+ * alphas that VANISHED over the W-DARK-MATERIAL dark glass-floating plate
47
+ * ("the sections run together"). They now read the ONE dark-adaptive
48
+ * --configurator-divider{,-section} token (minted in tokens/offsets-sizing.css
49
+ * with a light-dark() arm + the dark-arm.css `.dark` floor) so a visible
50
+ * luminance step survives BOTH plates. These rules paint only the COLOR; the
51
+ * `border-b`/`border-t` WIDTH stays on the Tailwind utilities in the SFCs.
52
+ *
53
+ * Cascade: configurator.css imports after utilities.css, and these element-
54
+ * targeting selectors override the Tailwind `border-color` default the dropped
55
+ * `border-border/N` utilities used to set (the utilities are GONE from the SFC
56
+ * class lists, so there is no competing utility to lose to). The faint section
57
+ * tonal step (--configurator-section-tint, default transparent on light) reads
58
+ * behind a <ConfiguratorLayer> so a section reads as a section without a second
59
+ * heading rung. */
60
+ .configurator-layer {
61
+ border-color: var(--configurator-divider-section);
62
+ background-color: var(--configurator-section-tint);
63
+ }
64
+ .configurator-layer-body[data-dividers] > * + * {
65
+ border-color: var(--configurator-divider);
66
+ }
67
+
68
+ /* The Configurator.vue chrome dividers (the aside top rule, the preset-row +
69
+ * footer separators) read the inter-row divider token — the SAME dark-adaptive
70
+ * register, so the whole instrument's hairline grammar lifts in lockstep. The
71
+ * SFC drops the inline `border-border/40` from these elements; this rule paints
72
+ * the color. */
73
+ .configurator-aside,
74
+ .configurator-presets,
75
+ .configurator-footer {
76
+ border-color: var(--configurator-divider);
77
+ }
@@ -0,0 +1,140 @@
1
+ /*
2
+ * critical-partition.mjs — the CRITICAL_PARTITION boundary manifest
3
+ * (BB.W-CSS-CRITICAL — the render-blocking `/styles` split).
4
+ *
5
+ * The SINGLE source of the critical/deferred partition of the resolved
6
+ * `@mkbabb/glass-ui/styles` draw. The build (vite.style-assets.ts
7
+ * publishStyleAssets) reads it to emit `dist/styles/critical.css` +
8
+ * `dist/styles/deferred.css`; the gate (scripts/proof-css-critical.mjs) reads
9
+ * it to assert the partition is byte-complete + manifest-driven. There is NO
10
+ * second hand-extracted critical block (W4 — the manifest is the sole source).
11
+ *
12
+ * The partition is drawn at the EXISTING thin-root-over-partials cascade
13
+ * boundary (AY.W-CSS1) — whole `src/styles/index.css` @import partials are
14
+ * bucketed, never a partial-content re-author (the partial CONTENTS are
15
+ * untouched; a cross-partial rule move is a triumvirate trigger, see the wave
16
+ * spec §Triumvirate). The two emitted files each @import their bucket's
17
+ * partials in the SAME cascade order the monolith index.css declares (load
18
+ * order is load-bearing), and CRITICAL loads BEFORE DEFERRED in the consumer
19
+ * so the deferred component recipes still cascade-correctly over the critical
20
+ * glass ladder.
21
+ *
22
+ * CRITICAL (./styles/critical) — the above-the-fold paint surface a consumer's
23
+ * FIRST PAINT requires: the whole token cascade (every visual axis is a custom
24
+ * property the chrome reads), the √φ typography scale + semantic type classes,
25
+ * the @theme aliases + the `.dark` variant selector, and the 5-rung glass
26
+ * ladder + specular/refract. Small (the token + ladder + type surface, not the
27
+ * component recipes) — under the recorded gzip ceiling (W3).
28
+ *
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).
37
+ *
38
+ * The `paper.css` partial is bucketed DEFERRED — the paper underpaint/grain
39
+ * utilities pair with glass for paper-on-glass compositions that mount with the
40
+ * content surfaces (below-the-fold), not the chrome's first paint.
41
+ */
42
+
43
+ /**
44
+ * The two non-fold buckets — each entry is a `src/styles/*.css` partial that the
45
+ * monolith `src/styles/index.css` @imports at the top level (lines 149-182).
46
+ * The order within each list mirrors the monolith's declared cascade order.
47
+ */
48
+ export const CRITICAL_PARTIALS = Object.freeze([
49
+ "tokens.css",
50
+ "typography.css",
51
+ "theme.css",
52
+ "glass.css",
53
+ "glass-specular-track.css",
54
+ "glass-refract.css",
55
+ ]);
56
+
57
+ export const DEFERRED_PARTIALS = Object.freeze([
58
+ "paper.css",
59
+ "dock.css",
60
+ "dock-controls.css",
61
+ "cards.css",
62
+ "feedback-tone.css",
63
+ "floating-panel.css",
64
+ "transitions.css",
65
+ "animations.css",
66
+ "scroll-driven.css",
67
+ "scroll-choreography.css",
68
+ "view-transition.css",
69
+ "utilities.css",
70
+ "menu.css",
71
+ "configurator.css",
72
+ "instrument-chassis.css",
73
+ "hover-popover.css",
74
+ "drawer.css",
75
+ "segmented-tabs.css",
76
+ "select.css",
77
+ "icon-chip.css",
78
+ "border-progress.css",
79
+ ]);
80
+
81
+ /**
82
+ * The build-time folds that land in DEFERRED (NOT a `src/styles/*.css` partial;
83
+ * the publishStyleAssets folds appended to the dist copy of index.css). The SFC
84
+ * scoped payload (`../glass-ui.css`) + the Tailwind component-utility surface
85
+ * (`./components.css`) are below-the-fold component decoration — they MUST NOT
86
+ * leak into critical (the W2 byte-complete-in-one-bucket + W3 ceiling bite).
87
+ * Relative to `dist/styles/` (where critical.css/deferred.css are emitted).
88
+ */
89
+ export const DEFERRED_FOLDS = Object.freeze([
90
+ "../glass-ui.css",
91
+ "./components.css",
92
+ ]);
93
+
94
+ /**
95
+ * The `@source` build-scan backstop directive (the consumer-JIT content-scan
96
+ * reach for glass-ui's own component utilities — a backstop for the
97
+ * components.css self-emit). It backstops the DEFERRED component utilities, so
98
+ * it rides DEFERRED. The value is the exact directive the monolith index.css
99
+ * carries (re-grounded at HEAD: `@source "../*.js";`).
100
+ */
101
+ export const DEFERRED_SOURCE_DIRECTIVE = '@source "../*.js";';
102
+
103
+ /**
104
+ * The recorded critical-subset gzip ceiling (bytes), measured on the FULLY
105
+ * RESOLVED consumer draw (the critical partials' @import roots resolved
106
+ * RECURSIVELY through their nested tokens/* + glass/* sub-partials — the real
107
+ * first-paint byte a consumer's bundler emits, NOT the one-level approximation
108
+ * profile-bundle uses for the monolith budget). The committed, reviewed
109
+ * baseline (the profile-bundle read-baseline discipline): a regression that
110
+ * folds a component recipe back into critical climbs the emitted critical.css
111
+ * resolved gzip over this → RED (W3). Re-base via the gate's `--rebaseline`
112
+ * flag with a recorded rationale, never silently.
113
+ *
114
+ * Measured at this authoring (HEAD bdbcd479, post-build): the critical subset
115
+ * resolved to raw 347266 / gzip 105460 — the token cascade (tokens.css gzip
116
+ * ~62KiB) + the 5-rung glass ladder (glass.css gzip ~27KiB) + typography +
117
+ * theme + specular/refract. It is roughly half the monolith's fully-resolved
118
+ * gzip (~230KiB), so the deferred tail (component recipes + SFC scoped payload
119
+ * + components.css utility surface, ~125KiB gzip) loads NON-blocking after
120
+ * first paint — the render-block win. The ceiling carries ~4% headroom over
121
+ * the measured baseline (the profile-bundle re-base convention). If the
122
+ * re-measured render-block under W-LIGHTHOUSE shows this critical subset is
123
+ * STILL over the mobile-ms floor, the inline-critical-head-block path routes to
124
+ * the named BB.W-CSS-CRITICAL-INLINE successor (a triumvirate trigger, NOT a
125
+ * token-value edit here).
126
+ *
127
+ * RE-BASE (BB liquid-glass band): the critical subset grew to raw 427015 / gzip
128
+ * 131469 — NOT a component-recipe leak (the critical bucket is still the 6
129
+ * documented token+glass+type partials; w2 partials-disjoint + w4 hold), but the
130
+ * legitimate GROWTH of the critical token cascade + glass ladder by the BB
131
+ * liquid-glass band: the deep-glass token family (tokens/glass-deep.css), the
132
+ * --glass-accent rim axis, the W-LENSING refract evolution, the W-DARK-MATERIAL
133
+ * dark-arm + the on-glass-fg / surface-axis registers — all of which live in the
134
+ * critical tokens/* + glass/* sub-partials by construction. Ceiling lifted
135
+ * 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.
139
+ */
140
+ export const CRITICAL_GZIP_CEILING = 137000;
@@ -11,6 +11,30 @@
11
11
  * @import-ed by dock.css in cascade order, in the SAME `@layer components` — the
12
12
  * carve is isomorphic (same layer, same source order → ZERO visual delta). */
13
13
 
14
+ /* ── BB.W-HIERARCHY2 — the CONTENT-side anti-collision gutter ───────────────────
15
+ `--dock-content-safe-inset` is the structural CONTENT-side counterpart to the
16
+ dock-collision SEAT fix (W-CHIP-GRAZE + W-DOCK-RAIL-SEAT-FINAL own the chip-fan
17
+ SEAT — the chips fan off-canvas into the rail's dead gutter, chipOverMain:false on
18
+ EVERY route by topology). This token reserves a guaranteed safe-inset gutter on the
19
+ CONTENT column so the page-title band is structurally clear of any chip reach even
20
+ on a route added WITHOUT a per-route audit (the anti-gameability the gestalt gate
21
+ wants). It is keyed to the dock reach (`--dock-rail-extend-length`, the rail's
22
+ beyond-edge overrun) so the content gutter tracks the dock geometry in lockstep,
23
+ and it rides `--dock-scale` transitively through that reach token.
24
+
25
+ THE DE-OVERLOAD IS BINDING (distinct geometry concerns, distinct tokens):
26
+ `--dock-control-safe-inset` (per-density, below) is the dock CONTROL plate-clearance
27
+ inset (the painted plate floors a notch below its track cell — BA.W-DOCK-GEOMETRY,
28
+ owned by proof:dock-plate-clearance); `--dock-content-safe-inset` is the CONTENT-band
29
+ gutter (the content column reserves dead inline space the chips can never share).
30
+ The two close the collision from BOTH sides — the chip seat (the SEAT waves) AND the
31
+ content gutter (this token) — coordinated on the SAME dead inline gutter: the content
32
+ gutter is the RESERVE, the gutter-fan lands the chips in it (ONE gutter, two
33
+ consumers). NEVER re-point this AT --dock-control-safe-inset (the de-overload). */
34
+ :root {
35
+ --dock-content-safe-inset: var(--dock-rail-extend-length, 2.5rem);
36
+ }
37
+
14
38
  @layer components {
15
39
  /* AX.W45 — the density cascade is threaded by the ONE `--dock-scale`
16
40
  multiplier (default 1, lifted to `--dock-mobile-scale` on coarse pointers).
@@ -39,6 +63,19 @@
39
63
  calc(var(--dock-density-compact-layer-height, 2rem) * var(--dock-scale)),
40
64
  var(--dock-control-floor, 0px)
41
65
  );
66
+ /* BA.W-DOCK-GEOMETRY — the control-plate clearance inset (DC-2). The
67
+ painted control plate floors a notch BELOW its track cell so the maximal
68
+ hover (×--scale-hover-dock 1.1) / active silhouette stays inside the
69
+ cross-axis clip box with ≥1px margin (the lozenge dies at the plate
70
+ diameter, not at the clip edge). The inset is a per-SIDE fraction of the
71
+ control size (0.1 → an 80%-of-cell painted plate, the iOS-26 inset
72
+ register), so it scales with EVERY density rung in lockstep AND rides the
73
+ `--dock-scale` coarse multiplier transitively through --dock-control-size.
74
+ The control families route it through `padding` + `background-clip:
75
+ content-box`, so the HIT BOX stays the full --dock-control-size (the WCAG
76
+ 2.5.5 44px floor stays on the CELL, never the inset plate) while the
77
+ PAINTED plate insets within it. */
78
+ --dock-control-safe-inset: calc(var(--dock-control-size) * 0.1);
42
79
  --dock-layer-gap: calc(
43
80
  var(--dock-density-compact-gap, 0.25rem) * var(--dock-scale)
44
81
  );
@@ -87,6 +124,8 @@
87
124
  ),
88
125
  var(--dock-control-floor, 0px)
89
126
  );
127
+ /* BA.W-DOCK-GEOMETRY — see the compact rung. */
128
+ --dock-control-safe-inset: calc(var(--dock-control-size) * 0.1);
90
129
  --dock-layer-gap: calc(
91
130
  var(--dock-density-comfortable-gap, 0.375rem) * var(--dock-scale)
92
131
  );
@@ -131,6 +170,8 @@
131
170
  ),
132
171
  var(--dock-control-floor, 0px)
133
172
  );
173
+ /* BA.W-DOCK-GEOMETRY — see the compact rung. */
174
+ --dock-control-safe-inset: calc(var(--dock-control-size) * 0.1);
134
175
  --dock-layer-gap: calc(
135
176
  var(--dock-density-spacious-gap, 0.5rem) * var(--dock-scale)
136
177
  );
@@ -174,6 +215,8 @@
174
215
  calc(var(--dock-density-audacious-layer-height, 4rem) * var(--dock-scale)),
175
216
  var(--dock-control-floor, 0px)
176
217
  );
218
+ /* BA.W-DOCK-GEOMETRY — see the compact rung. */
219
+ --dock-control-safe-inset: calc(var(--dock-control-size) * 0.1);
177
220
  --dock-layer-gap: calc(
178
221
  var(--dock-density-audacious-gap, 0.875rem) * var(--dock-scale)
179
222
  );
@@ -203,6 +246,27 @@
203
246
  );
204
247
  }
205
248
 
249
+ /* BB.W-PERF-PRODUCER A′-6 — RE-RESOLVE the glyph token inside the density-painted
250
+ scope. `--dock-icon-glyph` (offsets-sizing.css) is a RATIO of
251
+ `--dock-layer-height`, but density.css paints `--dock-layer-height` ONLY on
252
+ `.glass-dock[data-density]` — the `:root` `--dock-icon-glyph` definition reads
253
+ `--dock-layer-height` at `:root` (the inline fallback ladder), so it would
254
+ FREEZE at the fallback rather than track the per-rung painted height (the SAME
255
+ substitution-vs-inheritance trap the R5-1 sweep fixed for
256
+ `--dock-collapsed-summary-min-size` in overflow.css). Re-resolving it HERE, on
257
+ the element that paints `--dock-layer-height`, lets the per-density height flow
258
+ into the glyph so a `spacious` dock's glyph grows in lockstep with the shelf
259
+ (the value.js D5-1 defect). The formula is IDENTICAL to the `:root` definition;
260
+ only the resolution element moves. The WCAG floor + the `--dock-icon-glyph-ratio`
261
+ knob ride through unchanged; the `.dark-mode-toggle-button > svg` mirror reads
262
+ the same re-resolved token so both glyphs track the density axis. */
263
+ .glass-dock[data-density] {
264
+ --dock-icon-glyph: max(
265
+ calc(var(--dock-layer-height, calc(2.5rem * var(--dock-scale))) * var(--dock-icon-glyph-ratio)),
266
+ var(--dock-icon-glyph-floor)
267
+ );
268
+ }
269
+
206
270
  /* Density-audacious narrow-box carve (AV.W16 TW3) — when the dock's OWN
207
271
  box is narrow the audacious-dock label glyphs compress so the chrome
208
272
  doesn't overflow its host (≤14px below 30rem, 15px 30–45rem). Keyed off
@@ -3,7 +3,9 @@
3
3
  *
4
4
  * Carved from the dock.css god-module (slice 25). This partial owns the dock's
5
5
  * layer model: the `.dock-layers` grid container + the FLIP-driven box-size morph
6
- * (the `--dock-morph-size` calc off the ONE `--dock-morph-t` scalar), the unified
6
+ * (BB.W-DOCK-MORPH-FAMILY — a `transform: scale()` over a reserved settled `to`
7
+ * footprint, the live `--dock-morph-scale` derived off the ONE `--dock-morph-t`
8
+ * scalar; NO per-frame layout-axis lerp), the unified
7
9
  * `.is-active` / `.is-leaving` 3-state crossfade + hit-test contract (the
8
10
  * a11y-006 anchor), the per-child reveal stagger (the `--dock-stagger-*` ramp),
9
11
  * and the `layout="grid"` 2D tile-grid arrangement. The `.dock-layer-group` /
@@ -37,46 +39,66 @@
37
39
  }
38
40
 
39
41
 
40
- /* AX.W01 — the box size morph reads the SAME `--dock-morph-t` scalar as the
41
- root chrome (ONE clock, co-temporal by construction). `useLayerTransition`
42
- measures the from→to size ONCE per swap (the allowed one-time FLIP
43
- measurement) and writes `--dock-morph-from`/`--dock-morph-to` px on the
44
- morphing element; the live scalar interpolates between them. The size lands
45
- on the morph AXIS — `inline-size` for a horizontal `.dock-layers` (always
46
- inline) + a horizontal inner stack, `block-size` for a vertical inner stack.
47
- Gated on the root `[data-morphing]`, so at REST the intrinsic / `width:100%`
48
- rules below hold (the morph vars are cleared on settle). Replaces the prior
49
- `transition: width var(--dock-motion-resize)` inline-FLIP — there is NO CSS
50
- transition on the size axis; the spring writes the scalar, CSS reads it. The
51
- active pane is REVEALED through the clip aperture as the box grows (the W2
52
- clip-reveal contract). */
42
+ /* BB.W-DOCK-MORPH-FAMILY (a)/(b) — the box morph is now a COMPOSITOR TRANSFORM
43
+ over a RESERVED SETTLED footprint, NOT a per-frame `inline-size` lerp (the C3
44
+ "too slow and laggy" relayout-every-frame defect). `useLayerTransition` /
45
+ the orchestrator still measure the from→to size ONCE per swap (the allowed
46
+ one-time FLIP measurement) and write `--dock-morph-from`/`--dock-morph-to` px
47
+ on the morphing element — but the layout axis is set to the SETTLED `to`
48
+ value (ONE layout solve, the box reserves its end footprint from frame 0), and
49
+ the live `--dock-morph-t` scalar drives a `transform: scale()` between the
50
+ from/to RATIO and 1. The content lays out COMPLETE at `to` behind the
51
+ `overflow: clip` aperture (shell.css), and the scaled-down box reads as the
52
+ smaller in-flight footprint (the clip uncovers the scaled box, never a
53
+ half-painted growing layout — the reveal-seat (b) fix). `--dock-morph-ratio`
54
+ is `from/to` (guarded: `to:0` → ratio 0); `--dock-morph-scale` runs
55
+ `ratio → 1` as `t: 0 → 1`. `transform-origin` anchors the pinned edge
56
+ (inline-start for the horizontal aperture) so the box grows from the correct
57
+ side. NO `inline-size`/`block-size` reads the live scalar — the CDP Layout
58
+ track stays FLAT through the morph (the F1 compositor-bound floor). */
53
59
  .glass-dock[data-morphing] .dock-layers,
54
60
  .glass-dock[data-morphing] .dock-layer-stack {
55
- --dock-morph-size: calc(
56
- var(--dock-morph-from, 0px) +
57
- (var(--dock-morph-to, 0px) - var(--dock-morph-from, 0px)) *
58
- var(--dock-morph-t, 0)
61
+ --dock-morph-ratio: calc(
62
+ var(--dock-morph-from, 0px) / max(var(--dock-morph-to, 1px), 1px)
59
63
  );
60
- inline-size: var(--dock-morph-size);
64
+ --dock-morph-scale: calc(
65
+ var(--dock-morph-ratio) +
66
+ (1 - var(--dock-morph-ratio)) * var(--dock-morph-t, 0)
67
+ );
68
+ /* The box RESERVES its settled `to` footprint — a single layout solve, NOT
69
+ the live scalar calc. The transform composites over it. */
70
+ inline-size: var(--dock-morph-to);
71
+ transform: scaleX(var(--dock-morph-scale));
72
+ transform-origin: left center;
73
+ will-change: transform;
61
74
  }
62
75
 
63
76
  /* AZ.W-DOCK-TAXONOMY (move 2) — a VERTICAL dock's outer `.dock-layers` morphs the
64
77
  BLOCK axis (its collapse↔expand shrinks `height`, not `width`). The orchestrator
65
78
  measures/writes the same `--dock-morph-from/to` span on the block axis
66
79
  (`outerLayerAxis` is now the resolved orientation; `morphAxisProp` maps
67
- vertical→`block-size`), so the CSS lands the scalar on `block-size` and lets the
68
- inline axis stay intrinsic. This is the wiring that gives a collapsible vertical
69
- dock the height-morph the mandate names. */
80
+ vertical→`block-size`).
81
+ BB.W-DOCK-MORPH-FAMILY (a)/(b) — the vertical box reserves its settled `to`
82
+ BLOCK footprint + composites a `scaleY()` over it on the SAME `--dock-morph-t`
83
+ scalar (the inverse axis of the horizontal `scaleX`), `transform-origin` at the
84
+ block-start pinned edge. NO live-scalar `block-size` calc → no per-frame
85
+ relayout on the vertical axis either. */
70
86
  .glass-dock.vertical[data-morphing] .dock-layers {
71
87
  inline-size: auto;
72
- block-size: var(--dock-morph-size);
88
+ block-size: var(--dock-morph-to);
89
+ transform: scaleY(var(--dock-morph-scale));
90
+ transform-origin: center top;
91
+ will-change: transform;
73
92
  }
74
93
 
75
- /* A vertical inner group morphs the BLOCK axis — the same span lands on
76
- block-size, and the inline axis stays intrinsic. */
94
+ /* A vertical inner group morphs the BLOCK axis — the same settled-footprint
95
+ reserve + `scaleY()` composite over it. */
77
96
  .glass-dock[data-morphing] .dock-layer-group.vertical .dock-layer-stack {
78
97
  inline-size: auto;
79
- block-size: var(--dock-morph-size);
98
+ block-size: var(--dock-morph-to);
99
+ transform: scaleY(var(--dock-morph-scale));
100
+ transform-origin: center top;
101
+ will-change: transform;
80
102
  }
81
103
 
82
104
  /* The inner DockLayerGroup stack has no collapsed/expanded class, so its
@@ -311,10 +333,12 @@
311
333
  from these state rules; they keep only their non-overflow concerns.
312
334
 
313
335
  AX.W01 — `:not([data-morphing])` gate: at REST expanded the layers fill the
314
- box (`width:100%`), but DURING the morph the FLIP from→to px (the
315
- `--dock-morph-size` calc above) is the SOLE size authority — a `width:100%`
316
- here would win on specificity and snap the box past the spring. The gate
317
- hands the size to the scalar for the morph and back to 100% on settle. */
336
+ box (`width:100%`), but DURING the morph the reserved `to`-footprint +
337
+ `transform: scale()` (BB.W-DOCK-MORPH-FAMILY, above) is the SOLE size
338
+ authority — a `width:100%` here would win on specificity and fight the
339
+ reserved footprint. The gate hands the box to the transform for the morph and
340
+ back to 100% on settle (the transform/reserve vanish when `[data-morphing]`
341
+ clears). */
318
342
  .glass-dock.expanded:not(.fit-content):not([data-morphing]) .dock-layers {
319
343
  width: 100%;
320
344
  }