@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
@@ -1,59 +1,111 @@
1
- /* AW.W23 — the #glass-refract convex-lens SVG filter, shipped as a library
2
- * asset so `.glass-refract` works OUT OF THE BOX (no consumer hand-mounts a
3
- * filter node).
1
+ /* BB.W-LENSING — the #glass-refract edge-lensing SVG filter, EVOLVED off the
2
+ * AW.W23 crude-radial garnish onto the real squircle bevel-profile + the typed
3
+ * `--glass-refract` axis driving the animatable displacement `scale` (the press
4
+ * lens-swell). Shipped as a library asset so `.glass-lens` works OUT OF THE BOX
5
+ * (no consumer hand-mounts a filter node).
4
6
  *
5
- * The refraction recipe is the canonical 3-primitive graph (kube.io /
7
+ * The refraction recipe is the canonical 3-primitive graph (kube.io / ekino /
6
8
  * LogRocket, 2025):
7
9
  *
8
- * feImage — a pre-baked displacement map computed from the convex-
9
- * squircle surface profile y = ⁴√(1 − (1 − x)⁴) (Apple's
10
- * preferred corner curve) via Snell's law (n₁ = 1 air,
11
- * n₂ = 1.5 glass). The map is authored as an embedded SVG
12
- * whose R channel carries the x-shift and G channel the
13
- * y-shift (neutral 128 = no shift; bright edges bend light
14
- * inward like a lens), expressed as two crossed linear
15
- * gradients over the squircle silhouette.
10
+ * feImage — the displacement map computed from the convex-squircle
11
+ * surface profile f(x) = ⁴√(1 − (1 − x)⁴) (Apple's preferred
12
+ * corner curve) via Snell's law (n₁ = 1 air, n₂ = 1.5 glass).
13
+ * The map's R channel carries the x-shift and G the y-shift
14
+ * (neutral 128 = no shift). The squircle slope is near-flat past
15
+ * the outer ~14% band and STEEP at the rim, so the bend
16
+ * CONCENTRATES at the edge (thin interior) — the iOS edge-lensing
17
+ * read, NOT a uniform radial bulge (the retired AW.W23 placeholder).
18
+ * Encoding: TWO crossed linear gradients — a HORIZONTAL gradient
19
+ * drives the R channel (255 @0% → 128 across the flat interior →
20
+ * 0 @100%, the squircle ramp held in the bevel band) and a VERTICAL
21
+ * gradient drives the G channel the same way — SCREEN-composited
22
+ * over a black base so each channel carries its own axis EXACTLY
23
+ * (`screen(C, 0) = C`; the displacement map reads only R/G, B unused).
24
+ * The map carries ZERO color (the warm-cream identity HOLDS —
25
+ * refraction is DEPTH not hue). The asset is baked ONCE (the
26
+ * squircle CURVE is fixed, the Apple-preferred profile); only the
27
+ * `scale` param animates the magnitude (scope 2 — no map re-bake).
16
28
  * feDisplacementMap— displaces the backdrop by the baked map (R = x-shift,
17
- * G = y-shift, `scale` = max px, neutral 128).
18
- * feImage specular — a soft top-left specular highlight…
19
- * feBlend screen — …blended `screen` over the displaced backdrop for the
20
- * polished-glass catch.
29
+ * G = y-shift, `scale` = max px the `--glass-refract` axis drives).
30
+ * feImage specular — a soft warm top-left specular highlight (PRESERVED from HEAD —
31
+ * the polished-glass catch).
32
+ * feBlend screen — blended `screen` over the displaced backdrop.
21
33
  *
22
- * The filter ships INLINE as a data-URI in the `backdrop-filter` declaration, so
23
- * the consumer gets it with zero markup. `backdrop-filter: url(#…)` is
24
- * Chromium-only (WebKit bug 245510 open, Firefox not shipping), so the whole
25
- * decl sits behind `@supports (backdrop-filter: url(#…))`; a non-supporting
26
- * engine paints the un-gated blur base alone (no broken `url()` reference).
34
+ * DDR-LENS-BAKE — the displacement `scale` is a BAKED LITERAL (`scale='28'`, the §10
35
+ * default depth), NOT a var()-driven axis. WHY (the reversal of BB.W-LENSING scope 2):
36
+ * the scope-2 design split the filter across `var(--…head) var(--glass-refract) var(--…tail)`
37
+ * to splice the typed `@property --glass-refract` value between a head ending `…scale='`
38
+ * and a tail beginning `'…`. That construction is doubly broken, proven on the real edge
39
+ * (Chromium, playwright):
40
+ * (1) PARSE — head/tail each carry a COMPLETE `url(…)`, so the composite is the three
41
+ * tokens `url("…") 28 url("…")`, which a `backdrop-filter` REJECTS. The lens
42
+ * computed-`backdrop-filter: none` — it never rendered. (A var() inside a single
43
+ * url() STRING token is not re-tokenised by the engine either — tested — so there
44
+ * is no CSS-legal path to a dynamic `scale` inside one self-contained data-URI.)
45
+ * (2) BUNDLER — the tail `url("'…")` starts with a bare quote, so a consumer's CSS
46
+ * url()-rewriter (vite/postcss) reads it as a relative asset path and fails
47
+ * `ENOENT: open ''`, breaking EVERY bundler-based consumer.
48
+ * The fix: ONE complete, valid `url("data:…scale='28'…")` token. A `data:` URI is the
49
+ * single form that both PARSES as a filter value AND is skipped by the url()-rewriter
50
+ * (the rewriter only resolves non-data/non-#/non-http content as a file). RE-LITIGATE-IF
51
+ * the platform ships a way to substitute a value into a url() string token (then the
52
+ * press-swell `scale` animation could return). TRADEOFF: the per-instance `:active`
53
+ * lens-swell (28→44 `scale` on press) is dropped — but it was already inert (it animated
54
+ * a value that reached no rendering filter), so the lived read is UNCHANGED (and the lens
55
+ * now actually renders). The `@property --glass-refract` reg + `--glass-refract-swell`
56
+ * knob are retired with it. The bevel-band width is the `--glass-refract-bevel` knob
57
+ * (default 14% — the iOS edge band); the baked stops fix the squircle CURVE, the knob
58
+ * documents the rim concentration the map encodes.
27
59
  *
28
- * RE-HOME (AW.W23 — decouple from the W22-folded compound). At HEAD the
29
- * refraction rule was bound to `.glass-specular-track.glass-refract`. W22 folds
30
- * `glass-specular-track` into `.glass-material`, retiring the compound's left
31
- * operand, so the rule is re-homed onto `.glass-material.glass-refract` — the
32
- * refraction garnish opts in on ANY `.glass-material` surface, no dependency on
33
- * the now-aliased `glass-specular-track` class. The garnish stays PE-only over
34
- * the blur base; it is NEVER promoted to the card/primitive substrate
35
- * (feDisplacementMap is resize-expensive — only the `scale` attr animates
36
- * without rebuilding the map).
60
+ * The filter ships INLINE as a data-URI in the `backdrop-filter` declaration, so the
61
+ * consumer gets it with zero markup. `backdrop-filter: url(#…)` is Chromium-only (WebKit
62
+ * bug 245510 open, Firefox not shipping), so the whole decl sits behind
63
+ * `@supports (backdrop-filter: url(#…))`; a non-supporting engine paints the un-gated blur
64
+ * base alone (no broken `url()` reference — the no-workaround degrade floor, PRESERVED).
65
+ *
66
+ * CLASS RENAME (BB.W-LENSING scope 5 — clean break, no alias, BB inv-7). The AW.W23
67
+ * `.glass-refract` opt-in class is RENAMED to `.glass-lens` (the §2 vocabulary); the
68
+ * `--glass-refract*` AXIS/token names are KEPT (the lens magnitude is the refraction
69
+ * axis). Consumers (`<Button :liquid>`, the demo witness) compose `.glass-lens`. The
70
+ * rename is the only public-surface delta (MIGRATION.md row). The garnish stays PE-only
71
+ * over the blur base; it is NEVER promoted to the card/primitive substrate
72
+ * (feDisplacementMap is resize-expensive — only the `scale` param animates without
73
+ * rebuilding the map).
37
74
  */
38
75
 
39
76
  @layer components {
40
- /* The shipped filter graph as a data-URI SVG. A `0×0` host SVG mounted via
41
- the CSS asset keeps the `#glass-refract` id resolvable in-document. */
42
- .glass-refract {
43
- /* The named convex-lens displacement filter, baked from the squircle
44
- surface profile. Composed as a custom property so the @supports arm
45
- below references one source. */
46
- --glass-refract-filter: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='glass-refract' x='0' y='0' width='100%25' height='100%25'%3E%3CfeImage href='data:image/svg+xml,%253Csvg xmlns=%2522http://www.w3.org/2000/svg%2522 width=%2522100%2522 height=%2522100%2522%253E%253CradialGradient id=%2522m%2522 cx=%252250%2525%2522 cy=%252250%2525%2522 r=%252250%2525%2522%253E%253Cstop offset=%25220%2525%2522 stop-color=%2522rgb(128,128,128)%2522/%253E%253Cstop offset=%252270%2525%2522 stop-color=%2522rgb(128,128,128)%2522/%253E%253Cstop offset=%2522100%2525%2522 stop-color=%2522rgb(255,255,128)%2522/%253E%253C/radialGradient%253E%253Crect width=%2522100%2522 height=%2522100%2522 fill=%2522url(%2523m)%2522/%253E%253C/svg%253E' result='map'/%3E%3CfeDisplacementMap in='SourceGraphic' in2='map' scale='28' xChannelSelector='R' yChannelSelector='G' result='disp'/%3E%3CfeImage href='data:image/svg+xml,%253Csvg xmlns=%2522http://www.w3.org/2000/svg%2522 width=%2522100%2522 height=%2522100%2522%253E%253CradialGradient id=%2522s%2522 cx=%252230%2525%2522 cy=%252225%2525%2522 r=%252260%2525%2522%253E%253Cstop offset=%25220%2525%2522 stop-color=%2522rgba(255,255,255,0.5)%2522/%253E%253Cstop offset=%2522100%2525%2522 stop-color=%2522rgba(255,255,255,0)%2522/%253E%253C/radialGradient%253E%253Crect width=%2522100%2522 height=%2522100%2522 fill=%2522url(%2523s)%2522/%253E%253C/svg%253E' result='spec'/%3E%3CfeBlend in='disp' in2='spec' mode='screen'/%3E%3C/filter%3E%3C/svg%3E#glass-refract");
77
+ /* The shipped filter graph as ONE self-contained data-URI SVG (`scale='28'` baked,
78
+ DDR-LENS-BAKE). A single `url("data:…")` token is the only form that PARSES as a
79
+ `backdrop-filter` value AND survives a consumer bundler's url()-rewrite (a `data:`
80
+ URI is skipped; any other `url("…")` content is mis-resolved as a file). The
81
+ `#glass-refract` id is resolvable in-document (the data-URI is self-contained). */
82
+ .glass-lens {
83
+ /* The bevel-band width the squircle map encodes (the iOS edge concentration).
84
+ Documents the rim thickness the baked stops fix; a consumer reads it to tune
85
+ the perceived rim band on a successor re-bake. */
86
+ --glass-refract-bevel: 14%;
87
+
88
+ /* The shipped filter — ONE complete, valid `url("data:…")` token carrying the
89
+ whole 3-primitive graph with the `scale='28'` baked in (the §10 default depth,
90
+ DDR-LENS-BAKE). A single self-contained `data:` URI is (a) the ONLY form that
91
+ PARSES as a `backdrop-filter` value — the prior var()-spliced head/tail emitted
92
+ `url("…") <n> url("…")`, three tokens a `backdrop-filter` rejects, so the lens
93
+ silently rendered `none`; and (b) bundler-SAFE — a consumer's CSS url()-rewriter
94
+ skips a `data:` URI but mis-resolves any `url("…")` whose content starts with a
95
+ bare char (the old tail began `'…` → ENOENT, breaking every bundler consumer).
96
+ See the DDR-LENS-BAKE note in the header for the lost-tunability tradeoff. */
97
+ --glass-refract-filter: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cfilter id=%27glass-refract%27 x=%270%27 y=%270%27 width=%27100%25%27 height=%27100%25%27%3E%3CfeImage href=%27data:image/svg+xml,%253Csvg xmlns=%2522http://www.w3.org/2000/svg%2522 width=%2522100%2522 height=%2522100%2522%253E%253ClinearGradient id=%2522hx%2522 x1=%25220%2522 y1=%25220%2522 x2=%2522100%2525%2522 y2=%25220%2522%253E%253Cstop offset=%25220%2525%2522 stop-color=%2522rgb(255,0,0)%2522/%253E%253Cstop offset=%252214%2525%2522 stop-color=%2522rgb(128,0,0)%2522/%253E%253Cstop offset=%252286%2525%2522 stop-color=%2522rgb(128,0,0)%2522/%253E%253Cstop offset=%2522100%2525%2522 stop-color=%2522rgb(0,0,0)%2522/%253E%253C/linearGradient%253E%253ClinearGradient id=%2522vy%2522 x1=%25220%2522 y1=%25220%2522 x2=%25220%2522 y2=%2522100%2525%2522%253E%253Cstop offset=%25220%2525%2522 stop-color=%2522rgb(0,255,0)%2522/%253E%253Cstop offset=%252214%2525%2522 stop-color=%2522rgb(0,128,0)%2522/%253E%253Cstop offset=%252286%2525%2522 stop-color=%2522rgb(0,128,0)%2522/%253E%253Cstop offset=%2522100%2525%2522 stop-color=%2522rgb(0,0,0)%2522/%253E%253C/linearGradient%253E%253Crect width=%2522100%2522 height=%2522100%2522 fill=%2522black%2522/%253E%253Crect width=%2522100%2522 height=%2522100%2522 fill=%2522url(%2523hx)%2522/%253E%253Crect width=%2522100%2522 height=%2522100%2522 fill=%2522url(%2523vy)%2522 style=%2522mix-blend-mode:screen%2522/%253E%253C/svg%253E%27 result=%27map%27/%3E%3CfeDisplacementMap in=%27SourceGraphic%27 in2=%27map%27 scale=%2728%27 xChannelSelector=%27R%27 yChannelSelector=%27G%27 result=%27disp%27/%3E%3CfeImage href=%27data:image/svg+xml,%253Csvg xmlns=%2522http://www.w3.org/2000/svg%2522 width=%2522100%2522 height=%2522100%2522%253E%253CradialGradient id=%2522s%2522 cx=%252230%2525%2522 cy=%252225%2525%2522 r=%252260%2525%2522%253E%253Cstop offset=%25220%2525%2522 stop-color=%2522rgba(255,255,255,0.5)%2522/%253E%253Cstop offset=%2522100%2525%2522 stop-color=%2522rgba(255,255,255,0)%2522/%253E%253C/radialGradient%253E%253Crect width=%2522100%2522 height=%2522100%2522 fill=%2522url(%2523s)%2522/%253E%253C/svg%253E%27 result=%27spec%27/%3E%3CfeBlend in=%27disp%27 in2=%27spec%27 mode=%27screen%27/%3E%3C/filter%3E%3C/svg%3E%23glass-refract");
47
98
  }
48
99
 
49
- /* The gated consuming selector — RE-HOMED onto `.glass-material.glass-refract`
50
- (decoupled from the W22-folded `.glass-specular-track` compound). The
51
- refraction composes the shipped `#glass-refract` filter OVER the host's
52
- existing blur; it is additive (the blur already painted, this sharpens the
53
- refraction edge where the engine supports it). */
100
+ /* The gated consuming selector. The squircle map + the baked `scale='28'` ride
101
+ INSIDE the `@supports (backdrop-filter: url(#…))` block;
102
+ the refraction composes the shipped `#glass-refract` filter OVER the host's existing
103
+ blur — additive (the blur already painted, this bends + concentrates the refraction
104
+ at the rim where the engine supports it). A non-supporting engine never reaches this
105
+ block and paints the un-gated `--glass-blur-*` + `--glass-tint-*` base ALONE. */
54
106
  @supports (backdrop-filter: url("#glass-refract")) {
55
- .glass-material.glass-refract,
56
- .glass-refract {
107
+ .glass-material.glass-lens,
108
+ .glass-lens {
57
109
  -webkit-backdrop-filter: var(--glass-blur-resting) var(--glass-refract-filter);
58
110
 
59
111
  backdrop-filter: var(--glass-blur-resting) var(--glass-refract-filter);
@@ -43,6 +43,13 @@
43
43
  .glass-specular-track::before {
44
44
  --specular-x: 50%;
45
45
  --specular-y: 50%;
46
+ /* BB.W-LENSING — pin the EDGE-glint angle static too (the conic seats at its
47
+ `0deg` top-edge rest). The `useSpecularPointer` leaf already skips the angle
48
+ write under PRM; this is the CSS belt-and-braces pin so the rim glint never
49
+ drifts under reduce. The lens-swell drive also snaps (Button.vue / .tap-squish
50
+ PRM carve), so the whole motion-reactive lens reaches rest with no in-between
51
+ frames — the gesture functions, the physics off. */
52
+ --specular-angle: 0deg;
46
53
  transition: none;
47
54
  }
48
55
  }
@@ -40,11 +40,17 @@
40
40
  * docs/precepts/design-idioms.md §cohesion-aware partials.
41
41
  */
42
42
 
43
- /* CSS @import rules must precede every other rule. The six partials @import in
44
- cascade order: */
43
+ /* CSS @import rules must precede every other rule. The seven partials @import in
44
+ cascade order (surface-axis.css AFTER ladder/surfaces so its [data-surface]
45
+ decoration attr rules win over the base rung by source order; BEFORE the
46
+ squircle + a11y @supports overrides, which must stay last): */
45
47
  @import "./glass/material.css";
46
48
  @import "./glass/ladder.css";
49
+ @import "./glass/rim.css";
47
50
  @import "./glass/surfaces.css";
51
+ @import "./glass/surface-axis.css";
52
+ @import "./glass/reveal.css";
53
+ @import "./glass/deep.css";
48
54
  @import "./glass/progress-rail.css";
49
55
  @import "./glass/squircle.css";
50
56
  @import "./glass/a11y-fallback.css";
@@ -37,10 +37,11 @@
37
37
  }
38
38
  }
39
39
 
40
- /* The data-state animation grammar canonicalises onto `.popover-animate`
41
- (V.W3.T9 / A5 §5.8). Authors compose `class="hover-popover-panel popover-animate"`
42
- on the panel root so the canonical fade + zoom-95 entry/exit grammar
43
- replaces the bespoke `hover-popover-in/out` keyframes that lived here.
44
- The `prefers-reduced-motion` carve is handled at the canonical site
45
- (`utilities.css`'s reduced-motion block) so it cascades to all four
40
+ /* The data-state animation grammar canonicalises onto `.glass-reveal`
41
+ (BB.W-LIQUID-REVEAL — off the retired `popover-animate` bezier zoom-95, clean
42
+ break). Authors compose `class="hover-popover-panel glass-reveal"` on the panel
43
+ root so the spring-clocked LIQUID-ENTER grammar (the coupled scale+fade+filter
44
+ blur-settle, glass/reveal.css) replaces the bespoke `hover-popover-in/out`
45
+ keyframes that lived here. The `prefers-reduced-motion` carve is handled at the
46
+ canonical site (`glass/reveal.css`'s reduced-motion block) so it cascades to all
46
47
  popover-animation consumers automatically. */
@@ -0,0 +1,211 @@
1
+ /* icon-chip.css — BA.W-ICON-CHIP: the <IconChip> section-color pop primitive.
2
+ *
3
+ * The library's SINGLE section-color icon-chip recipe — the brand's ONE color
4
+ * event per surface (the one-color-event rule, AZ.W-SUFFUSE / proof:suffuse):
5
+ * a `color-mix(… 25%, transparent)` backplate under a full-chroma glyph, walked
6
+ * over the 13-stop `--section-color-N` ramp (or a complete `tone` token). It
7
+ * OWNS the recipe the four inline `:style` pastes (icons.vue / empty-states.vue
8
+ * / auth-shell.vue / the MetricCell glyph-tint) collapsed onto, so the recipe
9
+ * lives ONCE and proof:suffuse asserts against one component, not N pastes.
10
+ *
11
+ * THE INTERPOLATION SPACE — `in srgb` (DELIBERATE, recorded). The backplate is
12
+ * a foreground-over-transparent overlay at a hand-tuned α stop — the SAME shape
13
+ * as the `--surface-tint-*` brand family, which CLAUDE.md fixes at `in srgb`
14
+ * (the brand-calibrated mix; switching the space shifts the resting α off its
15
+ * hand-set value). The chip is byte-faithful to the reference paste register
16
+ * (the binding W7 π target: stop-0 bg `color(srgb 0.915 0.484 0.671 / 0.25)`),
17
+ * so it preserves `in srgb` — the same brand-overlay path, NOT the glass-tint
18
+ * `in oklab` perceptual-mix path. (The spec text says `in oklab`; the resolution
19
+ * preserves the reference-faithful `in srgb` so the pop register does not shift
20
+ * — recorded in PROGRESS / the DELTA.)
21
+ *
22
+ * THE α STOP IS A TOKEN (BB.W-SUFFUSE3 c3). The hardcoded `25%` lifted onto
23
+ * `--icon-chip-plate-strength` (default `25%`, BYTE-IDENTICAL); the `:saturated`
24
+ * axis re-points it to ~40% for a louder focal pop — the STRENGTH varies, the
25
+ * `in srgb` space + the chip≤glyph ratio do NOT. The pop is ALIVE too: the
26
+ * reveal entrance + the hover-bloom GROW ride the per-spring CLOCK (the
27
+ * --spring-snappy/--spring-smooth registers), no longer the fixed bezier.
28
+ */
29
+
30
+ :root {
31
+ /* The chip≤glyph proportion (d2, structural). The diameter floors at
32
+ `glyph × ratio` so the plate can NEVER paint under the glyph — a
33
+ consumer's tiny `size` is clamped. The default reproduces the reference
34
+ 48/22 ≈ 2.18 register. Token-first: a consumer retunes without a
35
+ component edit. */
36
+ --icon-chip-glyph-ratio: 2.18;
37
+ /* The duotone fill α — a low-alpha fill of the same hue UNDER the
38
+ full-chroma stroke (the iOS/Material filled-tonal move). Mono-hue. */
39
+ --icon-chip-duotone-fill: 18%;
40
+ /* The backplate vibrancy stop (BB.W-SUFFUSE3 c3). The default reproduces
41
+ the reference 25% register BYTE-IDENTICALLY — the plate `color-mix`
42
+ reads this token instead of the hardcoded `25%`. The `:saturated` axis
43
+ re-points it to a louder focal stop (~40%); the STRENGTH changes, the
44
+ `in srgb` space + the chip≤glyph ratio do NOT (the recorded keep). Still
45
+ ONE color event per surface — a saturated chip is the same event,
46
+ louder, never a license for a second (proof:suffuse d3 counts the event
47
+ FAMILY, not the saturation). Token-first: a consumer retunes without a
48
+ component edit. */
49
+ --icon-chip-plate-strength: 25%;
50
+ /* The hover-bloom backplate lift (25% → ~35%) + the glow-ring spread. */
51
+ --icon-chip-bloom-mix: 35%;
52
+ --icon-chip-bloom-glow: 28%;
53
+ /* The reveal stagger step (consumed by the vReveal `--d` index). */
54
+ --icon-chip-reveal-step: 60ms;
55
+ }
56
+
57
+ .icon-chip {
58
+ /* The diameter FLOORS at glyph × ratio — the d2 proportion enforced in the
59
+ component, not a per-consumer hope. */
60
+ --_icon-chip-floor: calc(
61
+ var(--icon-chip-glyph-size, 22px) * var(--icon-chip-glyph-ratio)
62
+ );
63
+ inline-size: max(var(--icon-chip-size, 48px), var(--_icon-chip-floor));
64
+ block-size: max(var(--icon-chip-size, 48px), var(--_icon-chip-floor));
65
+ display: inline-flex;
66
+ align-items: center;
67
+ justify-content: center;
68
+ border-radius: var(--radius-pill, 9999px);
69
+ /* The backplate — the reference recipe (`in srgb`, the --icon-chip-plate-
70
+ strength α stop, default 25% — BB.W-SUFFUSE3 c3 lifts the hardcoded `25%`
71
+ onto the token, BYTE-IDENTICAL at default). */
72
+ background-color: color-mix(
73
+ in srgb,
74
+ var(--icon-chip-plate-color, var(--muted))
75
+ var(--icon-chip-plate-strength),
76
+ transparent
77
+ );
78
+ color: var(--icon-chip-event-color, var(--muted-foreground));
79
+ /* The §6 easing doctrine — surface props (bg/box-shadow) on the bezier
80
+ standard ease. The transform leg at REST (the leave direction, reverting
81
+ to base) is the NO-OVERSHOOT bezier (a bloom must never overshoot past
82
+ gone — §6 exit law, BB.W-SUFFUSE3 c2); the hover ENTER direction lifts
83
+ onto --spring-smooth on the .icon-chip--bloom:hover rule below. */
84
+ transition:
85
+ background-color var(--duration-fast, 150ms) var(--ease-standard),
86
+ box-shadow var(--duration-fast, 150ms) var(--ease-standard),
87
+ transform var(--duration-fast, 150ms) var(--ease-out);
88
+ }
89
+
90
+ .icon-chip__glyph {
91
+ display: block;
92
+ flex-shrink: 0;
93
+ }
94
+
95
+ /* ── The bare register (the MetricCell leading-glyph tint — no backplate) ──── */
96
+ .icon-chip--bare {
97
+ inline-size: auto;
98
+ block-size: auto;
99
+ background-color: transparent;
100
+ border-radius: 0;
101
+ }
102
+
103
+ /* ── The :saturated vibrancy axis (BB.W-SUFFUSE3 c3) ───────────────────────── */
104
+ /* A louder, more-chromatic backplate for a genuine focal pop — the plate
105
+ `color-mix` re-points off the 25% reference stop to ~40%. STILL the ONE color
106
+ event (the same event, louder — proof:suffuse d3 counts the event FAMILY, not
107
+ the saturation). The interpolation STAYS `in srgb` (the recorded reference-
108
+ register keep) and the chip≤glyph ratio is untouched. */
109
+ .icon-chip--saturated {
110
+ --icon-chip-plate-strength: 40%;
111
+ }
112
+
113
+ /* ── The duotone axis — a low-alpha fill of the same hue UNDER the stroke ──── */
114
+ /* Lucide glyphs bake `fill: none` on the SVG root; CSS wins over the
115
+ presentation attribute, so the `[data-duotone] svg` rule reaches the inner
116
+ paths (they inherit `fill` from the root). Mono-hue, proportion-safe. */
117
+ .icon-chip--duotone[data-duotone] svg,
118
+ .icon-chip[data-duotone] .icon-chip__glyph {
119
+ fill: color-mix(
120
+ in srgb,
121
+ var(--icon-chip-event-color, var(--muted-foreground))
122
+ var(--icon-chip-duotone-fill),
123
+ transparent
124
+ );
125
+ }
126
+
127
+ /* ── The hover-bloom axis — the SMOOTH GLASS register (NO disco) ───────────── */
128
+ /* The backplate mix lifts, a soft same-hue glow ring appears, the glyph stroke
129
+ firms. DISCO FENCE: composes NO sparkle-sweep / btn-audacious / disco-grain —
130
+ the W-GLASS-CAL-retired-disco's calm replacement register only. */
131
+ @media (hover: hover) {
132
+ .icon-chip--bloom:hover {
133
+ background-color: color-mix(
134
+ in srgb,
135
+ var(--icon-chip-plate-color, var(--muted)) var(--icon-chip-bloom-mix),
136
+ transparent
137
+ );
138
+ box-shadow: 0 0 0 0.25rem
139
+ color-mix(
140
+ in srgb,
141
+ var(--icon-chip-event-color, var(--muted-foreground))
142
+ var(--icon-chip-bloom-glow),
143
+ transparent
144
+ );
145
+ /* The bloom GROW (BB.W-SUFFUSE3 c2) — the plate lifts a hair on the
146
+ §6 --spring-smooth transform register (enter smooth). The transition
147
+ is re-declared on :hover so the ENTER direction rides the spring; the
148
+ base rule's --ease-out transform leg governs the leave (no overshoot
149
+ past gone). The color legs stay on the bezier (base rule). */
150
+ transform: scale(var(--icon-chip-bloom-scale, 1.06));
151
+ transition:
152
+ background-color var(--duration-fast, 150ms) var(--ease-standard),
153
+ box-shadow var(--duration-fast, 150ms) var(--ease-standard),
154
+ transform var(--spring-smooth-duration) var(--spring-smooth);
155
+ }
156
+ /* The glyph stroke firms on the chip's own hover. */
157
+ .icon-chip--bloom:hover .icon-chip__glyph {
158
+ stroke-width: 2;
159
+ }
160
+ }
161
+
162
+ /* ── The entrance-reveal axis — composes the shipped vReveal directive ─────── */
163
+ /* The directive writes `[data-reveal]` + `--d` (the stagger index); this rule
164
+ reacts ONLY on an opted-in chip (`.icon-chip--reveal`) so a non-reveal chip's
165
+ inert `[data-reveal]` hook never animates. PRM-gated. */
166
+ @media (prefers-reduced-motion: no-preference) {
167
+ /* BB.W-SUFFUSE3 c1 — the pop-ENTRANCE rides the per-spring CLOCK, NOT the
168
+ fixed --duration-medium bezier. The animation-timing-function is the
169
+ --spring-snappy linear() string (peaks ~1.068) and the duration is
170
+ --spring-snappy-duration (0.34s, the W-GLASS-CAL per-spring clock), so the
171
+ `scale(0.85)→1` keyframe carries the snappy spring's ~+7% overshoot then
172
+ settles (the springy pop, not a flat fade-up). The opacity 0→1 is COUPLED
173
+ on the SAME clock (the W-MOTION-CANON P3 coupled-fade — plate + glyph
174
+ bloom as ONE continuous layer). Compositor-only: transform/opacity only
175
+ (the proof:motion-compositor floor holds). The per-spring clock is the
176
+ W-GLASS-CAL/W-MOTION-CANON fence — CONSUMED here, never re-generated. */
177
+ .icon-chip--reveal[data-reveal] {
178
+ animation: icon-chip-reveal var(--spring-snappy-duration)
179
+ var(--spring-snappy) both;
180
+ animation-delay: calc(var(--d, 0) * var(--icon-chip-reveal-step));
181
+ }
182
+ }
183
+
184
+ @keyframes icon-chip-reveal {
185
+ from {
186
+ opacity: 0;
187
+ transform: scale(0.85) translateY(0.25rem);
188
+ }
189
+ to {
190
+ opacity: 1;
191
+ transform: none;
192
+ }
193
+ }
194
+
195
+ /* ── The deform axes collapse under reduced motion (the PRM guard) ─────────── */
196
+ /* BB.W-SUFFUSE3 c1/c2 — the spring deform drops under reduce: the bloom GROW
197
+ scale collapses to 1 (the color cross-fade may stay — the legibility cue is
198
+ not motion), and the reveal pop SNAPS to its endpoint (scale 1, opacity 1,
199
+ zero in-between frames) via `animation: none` (the chip still APPEARS — only
200
+ the spring/overshoot is off; the W-MOTION-CANON P6 keep-fade/drop-transform). */
201
+ @media (prefers-reduced-motion: reduce) {
202
+ .icon-chip--bloom:hover {
203
+ transform: none;
204
+ }
205
+ .icon-chip--bloom:hover .icon-chip__glyph {
206
+ stroke-width: inherit;
207
+ }
208
+ .icon-chip--reveal[data-reveal] {
209
+ animation: none;
210
+ }
211
+ }
@@ -94,6 +94,15 @@
94
94
  * cascades into these control rules.
95
95
  * 7. cards.css — .cartoon-surface, .paper-texture.
96
96
  * Component utility layer.
97
+ * 7a. feedback-tone.css — the ONE shared tinted-glass tone register
98
+ * (BA.W-FEEDBACK-TONE): `.feedback-tone` +
99
+ * `.feedback-tone-{success,warning,info,destructive}`
100
+ * tint a glass rung a bounded % toward a house tone
101
+ * token on the EXISTING color-mix(in oklab, …) seam.
102
+ * Toast / Notification / Alert consume it (the three
103
+ * tone maps collapse). Loads after cards.css (it reads
104
+ * the same `--glass-bg-*` rung tokens cards.css/the
105
+ * ladder mint) and before floating-panel.css.
97
106
  * 8. floating-panel.css — .floating-panel + .floating-panel-item.
98
107
  * Component utility layer.
99
108
  * 9. transitions.css — Vue <Transition> classes (fade, fade-slide,
@@ -105,6 +114,12 @@
105
114
  * 10a. scroll-driven.css — native scroll-driven recipes (.scroll-progress
106
115
  * + [data-scroll-reveal]); the `@supports`-gated
107
116
  * primary over the JS-composable fallback (AQ.W5).
117
+ * 10a'. scroll-choreography.css — the SOTA scroll-CHOREOGRAPHY register
118
+ * (.scroll-build page-build / .scroll-cascade
119
+ * section-cascade / .scroll-pin scroll-pinned + the
120
+ * native .smooth-scroll opt-in) on the native
121
+ * scroll()/view()/timeline-scope substrate; NO
122
+ * Lenis/GSAP dep (BB.W-SCROLL-MOTION).
108
123
  * 10b. view-transition.css — the `.gl-list-item` View-Transitions group
109
124
  * recipe + `--vt-*` axes (AQ.W5; the
110
125
  * `useViewTransition` substrate's CSS half).
@@ -114,14 +129,26 @@
114
129
  * K W6 + Q.W3 Lane E), rainbow-vivid +
115
130
  * rainbow-pastel. Consumes earlier animations +
116
131
  * tokens.
132
+ * 11a. menu.css — BA.W-MENU-GLASS the glass MENU-ROW + MENU-SECTION
133
+ * register. AFTER utilities.css so `.glass-menu-row`'s
134
+ * `@layer components` hover/highlight rules source-
135
+ * order-win over `.interactive-item:hover` (same layer
136
+ * + specificity) — the cascade-trap-safe placement.
117
137
  * 12. instrument-chassis.css — P-tranche component CSS (chassis bezel +
118
138
  * groove dividers). Loaded after utilities so
119
139
  * component-local recipes can override.
120
140
  * 13. hover-popover.css — V.W3 popover-animation grammar.
121
141
  * 14. drawer.css — AN.W3 detented bottom-sheet grammar (glass
122
142
  * sheet surface + peek handle + snap-stop rules).
143
+ * 15. segmented-tabs.css — AX.W53 SegmentedTabs overflow/indicator grammar.
144
+ * 16. select.css — BA.W-EMISSION the PRECOMPILED Select content
145
+ * collision-bound (the `[data-slot="select-content"]`
146
+ * max-height rule) — moved off the dead arbitrary-
147
+ * bracket CVA class so the bound SHIPS in dist/glass-ui.css
148
+ * regardless of consumer JIT reach. A structural utility
149
+ * never depends on a content-scan; locked by proof:emission.
123
150
  *
124
- * Per-package component CSS lives at (12)-(14) (loaded after utilities so
151
+ * Per-package component CSS lives at (12)-(16) (loaded after utilities so
125
152
  * component-local recipes can override). New per-package CSS files append
126
153
  * to that tail.
127
154
  */
@@ -135,20 +162,67 @@
135
162
  @import "./dock.css";
136
163
  @import "./dock-controls.css";
137
164
  @import "./cards.css";
165
+ @import "./feedback-tone.css";
138
166
  @import "./floating-panel.css";
139
167
  @import "./transitions.css";
140
168
  @import "./animations.css";
141
169
  @import "./scroll-driven.css";
170
+ @import "./scroll-choreography.css";
142
171
  @import "./view-transition.css";
143
172
  @import "./utilities.css";
173
+ /* BA.W-MENU-GLASS — the glass menu-row + menu-section register. @import-ed AFTER
174
+ utilities.css (NOT the floating/transitions band the spec hinted) so the
175
+ `.glass-menu-row` `@layer components` hover/highlight rules source-order-WIN
176
+ over `.interactive-item:hover` (utilities/base.css, same layer + specificity) —
177
+ the cascade-trap-safe placement, mirroring glass/surface-axis.css's "import
178
+ AFTER ladder.css" discipline. */
179
+ @import "./menu.css";
144
180
  @import "./configurator.css";
145
181
  @import "./instrument-chassis.css";
146
182
  @import "./hover-popover.css";
147
183
  @import "./drawer.css";
148
184
  @import "./segmented-tabs.css";
185
+ @import "./select.css";
186
+ /* BA.W-ICON-CHIP — the <IconChip> section-color pop recipe + the three axes
187
+ (duotone/bloom/reveal). A component partial; the token arms (--section-color-N
188
+ / --muted) auto-flip under .dark so the chip is mode-robust by construction. */
189
+ @import "./icon-chip.css";
190
+ /* BB.W-BORDER-PROGRESS — progress IS the element's border: the masked-conic ring
191
+ consumption (the @property reg lives in tokens/property-regs.css §18). A
192
+ component partial; the conic + the radius-following mask-composite + the coverage
193
+ masks + the PRM milestone-pulse bracket. */
194
+ @import "./border-progress.css";
149
195
 
150
- /* Ensure consumer's Tailwind scans glass-ui components for utility classes
151
- (e.g. CVA button variants like text-destructive-foreground) */
196
+ /* Ensure Tailwind scans glass-ui's compiled component templates for the utility
197
+ classes they emit (CVA variant classes like text-destructive-foreground,
198
+ layout utilities like h-full/shrink-0).
199
+
200
+ BA.W-EMISSION — re-pointed from the DEAD components-mirror glob (the prior
201
+ `../components` target). That glob resolved correctly in glass-ui's OWN build
202
+ (`src/styles/index.css` → `src/components` carries the real `.vue` source), but the
203
+ SHIPPED dist copy of this file (`dist/styles/index.css`) resolved `../components` to
204
+ `dist/components/` — a
205
+ directory that carries ONLY `.d.ts` mirror files (zero `.js`, zero `.vue`). The
206
+ compiled render-functions live FLAT at `dist/*.js`. So in every consumer that
207
+ re-imported this `@source` line, Tailwind scanned an empty dir and glass-ui's own
208
+ arbitrary utilities silently died (the P9 / valuejs-fold register-B class).
209
+
210
+ `../*.js` reaches the compiled render-functions PRECISELY in the SHIPPED context:
211
+ in dist it is `dist/*.js` (the 150+ flat compiled chunks that carry glass-ui's
212
+ utility class strings — the surface the dead `../components` mirror NEVER held).
213
+ In glass-ui's OWN source build it is `src/*.js` (empty — glass-ui's own components
214
+ compile their CSS through vite, not this `@source`), so the directive is a no-op
215
+ in the own-build and never scans the `src/` shader/`.ts` tree (a bare `../` glob
216
+ tripped Tailwind's dev candidate-extractor on the shader template strings —
217
+ `Missing opening (`). This directive is a BACKSTOP for a consumer that imports
218
+ this exact cascade file — the PRIMARY self-emission path is
219
+ `vite.style-assets.ts emitComponentUtilities` (P9), which ships glass-ui's
220
+ component-utility RULES build-independently into `dist/styles/components.css`.
221
+ Fully-arbitrary BRACKET utilities (`[max-height:…]`, `[--slider-track-height:…]`)
222
+ are rejected by that path's `classish` token filter AND are not reliably reachable
223
+ by a JIT scan, so every STRUCTURAL bracket utility (geometry/bounds/sizing) is
224
+ pre-compiled into shipped CSS instead — never load-bearing on any consumer's
225
+ content-scan reach. Locked by proof:emission. */
152
226
  /* AN.W1 — SFC scoped component CSS (folded so a single
153
227
  @import "@mkbabb/glass-ui/styles" carries cascade + components) */
154
228
  @import "../glass-ui.css";
@@ -157,4 +231,4 @@
157
231
  …) shipped build-independently so a bare consumer paints them. */
158
232
  @import "./components.css";
159
233
 
160
- @source "../components";
234
+ @source "../*.js";