@mkbabb/glass-ui 3.11.2 → 3.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (360) hide show
  1. package/dist/{CardAction-DuArVky-.js → CardAction-Cj2eycQ2.js} +2 -2
  2. package/dist/{CommandShortcut-CefCj5mt.js → CommandShortcut-RowNEO6i.js} +4 -4
  3. package/dist/{ContextMenuSubContent-Bhg4f5jX.js → ContextMenuSubContent-BQmxTAdw.js} +4 -4
  4. package/dist/{DataTable-CUHMukiQ.js → DataTable-BCddn3T3.js} +3 -3
  5. package/dist/{DialogContent-BRkT1cjP.js → DialogContent-Dl9WkAoS.js} +3 -3
  6. package/dist/{DialogFooter-Gprw8H_A.js → DialogFooter-Blu4t7tJ.js} +2 -2
  7. package/dist/{HoverPopover-2LOIW34a.js → HoverPopover-CISOJQuZ.js} +1 -1
  8. package/dist/{IconTooltip-Cus0fvK0.js → IconTooltip-DPzE09X9.js} +1 -1
  9. package/dist/MetricBadge-C9QMz1KT.js +79 -0
  10. package/dist/{Notification-DLMhblXR.js → Notification-DdwNxIrI.js} +2 -2
  11. package/dist/{NumberFieldContent-BbLOh8RU.js → NumberFieldContent-CqaN-SvN.js} +3 -3
  12. package/dist/{PopoverContent-BId6ggf_.js → PopoverContent-BYwt2-4x.js} +1 -1
  13. package/dist/{ScrollingText-BPP84wKo.js → ScrollingText-DfFrwSph.js} +1 -1
  14. package/dist/{SelectScrollDownButton-T32cVFeM.js → SelectScrollDownButton-CiDUxfEj.js} +6 -6
  15. package/dist/{Switch-Ch-k3Rv-.js → Switch-CsIuYP_e.js} +1 -1
  16. package/dist/{TabsList-B8CVOQPC.js → TabsList-Dttss653.js} +9 -5
  17. package/dist/{Toaster-1rYWrmAm.js → Toaster-D6q4HtXu.js} +50 -47
  18. package/dist/{ToggleGroupItem-COu_4IW4.js → ToggleGroupItem-D_AHlRw9.js} +18 -22
  19. package/dist/animated-digit.js +2 -2
  20. package/dist/api/index.d.ts +5 -2
  21. package/dist/api.js +2 -2
  22. package/dist/aurora.js +69 -69
  23. package/dist/{badge-CaoFJzRb.js → badge-UILT_3pZ.js} +1 -1
  24. package/dist/badge.js +1 -1
  25. package/dist/{button-DN39cGqL.js → button-ChXMfsud.js} +12 -12
  26. package/dist/button.js +1 -1
  27. package/dist/card.js +1 -1
  28. package/dist/carousel.js +8 -8
  29. package/dist/{check-BBKKKSTf.js → check-njhk-vfu.js} +1 -1
  30. package/dist/{chevron-down-BSkTP2aL.js → chevron-down-DKkxb4VV.js} +1 -1
  31. package/dist/{chevron-right-sDM0Yvrf.js → chevron-right-CPXbqQQz.js} +1 -1
  32. package/dist/{chevron-up-CCOD_FTz.js → chevron-up-n_24SqI-.js} +1 -1
  33. package/dist/coalesceMetric-5qIeZnTx.js +13 -0
  34. package/dist/{color-C5ls_QF7.js → color-CUYeFbgd.js} +9 -7
  35. package/dist/color.js +1 -1
  36. package/dist/command.js +1 -1
  37. package/dist/components/custom/animated-digit/AnimatedDigit.vue.d.ts +8 -0
  38. package/dist/components/custom/aurora/constants/presets.d.ts +5 -62
  39. package/dist/components/custom/aurora/constants/shaders/mediums.glsl.d.ts +1 -1
  40. package/dist/components/custom/aurora/constants/shaders/vangogh-medium.glsl.d.ts +1 -0
  41. package/dist/components/custom/aurora/index.d.ts +1 -1
  42. package/dist/components/custom/configurator/ConfiguratorRow.vue.d.ts +16 -0
  43. package/dist/components/custom/constellation/Constellation.vue.d.ts +74 -6
  44. package/dist/components/custom/constellation/composables/createConstellationField.d.ts +41 -0
  45. package/dist/components/custom/constellation/composables/useConstellationPointer.d.ts +35 -0
  46. package/dist/components/custom/constellation/constants.d.ts +61 -0
  47. package/dist/components/custom/constellation/constellationDraw.d.ts +30 -0
  48. package/dist/components/custom/constellation/constellationField.d.ts +116 -149
  49. package/dist/components/custom/constellation/constellationInteraction.d.ts +132 -0
  50. package/dist/components/custom/constellation/index.d.ts +5 -2
  51. package/dist/components/custom/controls/DarkModeToggle.vue.d.ts +11 -0
  52. package/dist/components/custom/dock/DockRail.vue.d.ts +88 -0
  53. package/dist/components/custom/dock/DockTabButton.vue.d.ts +3 -4
  54. package/dist/components/custom/dock/GlassDock.vue.d.ts +5 -118
  55. package/dist/components/custom/dock/composables/dockMorphContext.d.ts +36 -0
  56. package/dist/components/custom/dock/composables/index.d.ts +1 -0
  57. package/dist/components/custom/dock/composables/useDockClickIntegrity.d.ts +23 -0
  58. package/dist/components/custom/dock/composables/useDockMorphWindow.d.ts +15 -0
  59. package/dist/components/custom/dock/composables/useDockOrientationMorph.d.ts +44 -0
  60. package/dist/components/custom/dock/composables/useDockShellProps.d.ts +165 -0
  61. package/dist/components/custom/dock/composables/useLayerTransition.d.ts +44 -0
  62. package/dist/components/custom/dock/constants.d.ts +48 -0
  63. package/dist/components/custom/dock/index.d.ts +3 -0
  64. package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +5 -37
  65. package/dist/components/custom/fourier-field/index.d.ts +1 -1
  66. package/dist/components/custom/fourier-field/math.d.ts +17 -0
  67. package/dist/components/custom/fourier-field/presets.d.ts +54 -0
  68. package/dist/components/custom/goo-blob/composables/buildMetaballProgram.d.ts +18 -0
  69. package/dist/components/custom/goo-blob/composables/uploadBlobUniforms.d.ts +41 -0
  70. package/dist/components/custom/goo-blob/composables/useBlobPointer.d.ts +4 -3
  71. package/dist/components/custom/goo-blob/composables/useMetaballRenderer.d.ts +11 -8
  72. package/dist/components/custom/goo-blob/constants.d.ts +52 -0
  73. package/dist/components/custom/goo-blob/shaders/metaball-uniforms.glsl.d.ts +1 -0
  74. package/dist/components/custom/instrument-chassis/InstrumentChassis.vue.d.ts +2 -2
  75. package/dist/components/custom/labeled-field/LabeledField.vue.d.ts +37 -0
  76. package/dist/components/custom/labeled-field/LabeledSelect.vue.d.ts +6 -0
  77. package/dist/components/custom/labeled-field/LabeledSlider.vue.d.ts +6 -0
  78. package/dist/components/custom/labeled-field/LabeledSwitch.vue.d.ts +6 -0
  79. package/dist/components/custom/metric-badge/MetricBadge.vue.d.ts +11 -18
  80. package/dist/components/custom/metric-badge/index.d.ts +1 -0
  81. package/dist/components/custom/metric-cell/MetricCell.vue.d.ts +15 -4
  82. package/dist/components/custom/metric-stack/MetricRow.vue.d.ts +6 -4
  83. package/dist/components/custom/tabs/constants.d.ts +12 -0
  84. package/dist/components/custom/underline/GlassUnderline.vue.d.ts +84 -0
  85. package/dist/components/custom/underline/index.d.ts +2 -0
  86. package/dist/components/custom/underline/types.d.ts +56 -0
  87. package/dist/components/ui/card/Card.vue.d.ts +15 -3
  88. package/dist/components/ui/drawer/Drawer.vue.d.ts +1 -0
  89. package/dist/components/ui/dropdown-menu/DropdownMenuSubContent.vue.d.ts +2 -2
  90. package/dist/components/ui/metric-pill/MetricPill.vue.d.ts +6 -3
  91. package/dist/components/ui/slider/index.d.ts +22 -19
  92. package/dist/components/ui/tabs/TabsIndicator.vue.d.ts +4 -1
  93. package/dist/components/ui/toast/use-toast.d.ts +2 -2
  94. package/dist/components/ui/toggle/Toggle.vue.d.ts +1 -1
  95. package/dist/components/ui/toggle/index.d.ts +1 -1
  96. package/dist/components/ui/toggle-group/ToggleGroup.vue.d.ts +1 -7
  97. package/dist/components/ui/toggle-group/ToggleGroupItem.vue.d.ts +1 -3
  98. package/dist/components/ui/toggle-group/toggleGroupContext.d.ts +0 -13
  99. package/dist/composables/color/index.d.ts +12 -0
  100. package/dist/composables/dark/index.d.ts +1 -1
  101. package/dist/composables/dark/useGlobalDark.d.ts +1 -21
  102. package/dist/composables/glass/index.d.ts +0 -1
  103. package/dist/composables/glass/useGlassBackdropLuminance.d.ts +59 -0
  104. package/dist/composables/glass/useSpecularTracking.d.ts +12 -3
  105. package/dist/composables/motion/core/index.d.ts +1 -1
  106. package/dist/composables/motion/curves.d.ts +48 -0
  107. package/dist/composables/motion/index.d.ts +2 -0
  108. package/dist/composables/motion/springPresets.d.ts +33 -0
  109. package/dist/composables/motion/suite.d.ts +2 -0
  110. package/dist/composables/motion/useLiquidFlex.d.ts +85 -0
  111. package/dist/composables/motion/useSpringMount.d.ts +1 -1
  112. package/dist/configurator.js +1 -1
  113. package/dist/confirm-dialog.js +2 -2
  114. package/dist/constellation.js +336 -222
  115. package/dist/context-menu.js +2 -2
  116. package/dist/controls.js +47 -13
  117. package/dist/dark.d.ts +1 -1
  118. package/dist/dark.js +1 -1
  119. package/dist/data-table.js +1 -1
  120. package/dist/dialog.js +2 -2
  121. package/dist/dock.js +705 -365
  122. package/dist/dockContext-BegmJVmx.js +17 -0
  123. package/dist/dom.js +5 -5
  124. package/dist/{dropdown-menu-D77jX6Df.js → dropdown-menu-DzkkyBwX.js} +11 -8
  125. package/dist/dropdown-menu.js +1 -1
  126. package/dist/expandable-container.js +39 -80
  127. package/dist/forms.js +5 -5
  128. package/dist/fourier-field.js +134 -99
  129. package/dist/fourier-math.js +2 -2
  130. package/dist/glass-panel.js +86 -20
  131. package/dist/glass-ui.css +1 -1
  132. package/dist/glass-ui.js +222 -212
  133. package/dist/goo-blob.js +243 -212
  134. package/dist/hover-card.js +1 -1
  135. package/dist/hover-popover.js +1 -1
  136. package/dist/icon-tooltip.js +1 -1
  137. package/dist/index.d.ts +1 -3
  138. package/dist/instrument-chassis.js +1 -1
  139. package/dist/keyboard.js +1 -1
  140. package/dist/label.js +1 -1
  141. package/dist/labeled-field.js +28 -18
  142. package/dist/{math-DTpRVC0e.js → math-U6-RrLmV.js} +18 -2
  143. package/dist/metric-badge.js +1 -1
  144. package/dist/metric-cell.js +25 -21
  145. package/dist/metric-stack.js +35 -34
  146. package/dist/{minimize-2-lcXOuc6V.js → minimize-2-BV31Ob_h.js} +1 -1
  147. package/dist/motion-core.js +32 -137
  148. package/dist/motion-curves.d.ts +1 -0
  149. package/dist/motion-curves.js +130 -0
  150. package/dist/motion.js +38 -37
  151. package/dist/notification.js +1 -1
  152. package/dist/number-field.js +1 -1
  153. package/dist/paper-backdrop.js +1 -1
  154. package/dist/popover.js +1 -1
  155. package/dist/{presets-BP_ALM0m.js → presets-BKVyQfbt.js} +1 -14
  156. package/dist/progress.js +1 -1
  157. package/dist/reactive.js +2 -2
  158. package/dist/scrolling-text.js +1 -1
  159. package/dist/{search-nbkvr2dC.js → search-BSGrf2Sk.js} +1 -1
  160. package/dist/search.js +9 -9
  161. package/dist/select.js +3 -3
  162. package/dist/separator.js +1 -1
  163. package/dist/{sheet-VZEtNFvO.js → sheet-1fChZjtw.js} +3 -3
  164. package/dist/sheet.js +1 -1
  165. package/dist/{slider-ClgpP7EB.js → slider-B-JP2JlI.js} +4 -4
  166. package/dist/slider.js +1 -1
  167. package/dist/sortable-list.js +2 -2
  168. package/dist/springPresets--YdWTHtm.js +40 -0
  169. package/dist/stacked-icons.js +6 -6
  170. package/dist/styles/animations.css +29 -114
  171. package/dist/styles/cards.css +55 -0
  172. package/dist/styles/components.css +4 -1
  173. package/dist/styles/configurator.css +42 -0
  174. package/dist/styles/dock/layer-group.css +83 -25
  175. package/dist/styles/dock/layers.css +23 -1
  176. package/dist/styles/dock/morph-bridge.css +123 -0
  177. package/dist/styles/dock/morph.css +175 -45
  178. package/dist/styles/dock/overflow.css +51 -1
  179. package/dist/styles/dock/rail-extend.css +300 -0
  180. package/dist/styles/dock/shell.css +63 -105
  181. package/dist/styles/dock-controls/dark-mode-toggle.css +109 -0
  182. package/dist/styles/dock-controls/icon-button.css +133 -0
  183. package/dist/styles/dock-controls/tab-button.css +202 -0
  184. package/dist/styles/dock-controls/touch-floor.css +94 -0
  185. package/dist/styles/dock-controls/triggers.css +128 -0
  186. package/dist/styles/dock-controls.css +30 -595
  187. package/dist/styles/dock.css +2 -0
  188. package/dist/styles/drawer.css +2 -0
  189. package/dist/styles/floating-panel.css +17 -0
  190. package/dist/styles/glass/a11y-fallback.css +245 -0
  191. package/dist/styles/glass/ladder.css +337 -0
  192. package/dist/styles/glass/material.css +238 -0
  193. package/dist/styles/glass/progress-rail.css +78 -0
  194. package/dist/styles/glass/squircle.css +66 -0
  195. package/dist/styles/glass/surfaces.css +306 -0
  196. package/dist/styles/glass-refract.css +2 -0
  197. package/dist/styles/glass.css +31 -1188
  198. package/dist/styles/hover-popover.css +2 -0
  199. package/dist/styles/index.css +28 -14
  200. package/dist/styles/instrument-chassis.css +4 -0
  201. package/dist/styles/paper.css +2 -68
  202. package/dist/styles/segmented-tabs.css +275 -0
  203. package/dist/styles/theme/bridges.css +337 -0
  204. package/dist/styles/theme/dark.css +7 -0
  205. package/dist/styles/theme/literals.css +94 -0
  206. package/dist/styles/theme/radius.css +95 -0
  207. package/dist/styles/theme.css +26 -529
  208. package/dist/styles/tokens/color-radius.css +260 -0
  209. package/dist/styles/tokens/dark-arm.css +200 -0
  210. package/dist/styles/tokens/glass.css +440 -0
  211. package/dist/styles/tokens/light-dark.css +158 -0
  212. package/dist/styles/tokens/offsets-sizing.css +500 -0
  213. package/dist/styles/tokens/property-regs.css +169 -0
  214. package/dist/styles/tokens/scale-paper.css +366 -0
  215. package/dist/styles/tokens/scheme-motion.css +334 -0
  216. package/dist/styles/tokens/shadow.css +166 -0
  217. package/dist/styles/tokens.css +22 -2360
  218. package/dist/styles/typography.css +75 -21
  219. package/dist/styles/utilities/a11y-overrides.css +140 -0
  220. package/dist/styles/utilities/animate.css +26 -0
  221. package/dist/styles/utilities/base.css +365 -0
  222. package/dist/styles/utilities/btn.css +401 -0
  223. package/dist/styles/utilities/components.css +317 -0
  224. package/dist/styles/utilities.css +19 -1291
  225. package/dist/styles/view-transition.css +0 -51
  226. package/dist/switch.js +1 -1
  227. package/dist/tabs.js +91 -82
  228. package/dist/timeline.js +1 -1
  229. package/dist/toast.js +1 -1
  230. package/dist/toggle-group.js +1 -1
  231. package/dist/tooltip.js +1 -1
  232. package/dist/underline.d.ts +1 -0
  233. package/dist/underline.js +85 -0
  234. package/dist/{useAnimatedNumber-Bcpy5Etf.js → useAnimatedNumber-C5I3wWd8.js} +1 -1
  235. package/dist/{useConfiguratorState-DxAqksK6.js → useConfiguratorState-DAoeHVue.js} +8 -8
  236. package/dist/{useGlobalDark-CAhOXNLO.js → useGlobalDark-yhL4Wp-s.js} +3 -22
  237. package/dist/useLiquidFlex-BL0lLLN2.js +30 -0
  238. package/dist/useRAFLoop-Bxv0o6L5.js +109 -0
  239. package/dist/{useScrollProgress-CffFGLa5.js → useScrollProgress-Dlvx-L3v.js} +1 -1
  240. package/dist/useSpecularTracking-Bo5su68i.js +32 -0
  241. package/dist/useSpringMount-CI2jOstM.js +108 -0
  242. package/dist/{useTouchGate-WFyJYsth.js → useTouchGate-Dg7MQI1G.js} +1 -1
  243. package/dist/utils/coalesceMetric.d.ts +29 -0
  244. package/dist/utils/index.d.ts +1 -0
  245. package/dist/vReveal-CqaCz_mC.js +44 -0
  246. package/dist/watercolor-dot.js +11 -9
  247. package/dist/{x-Dfsegz9Y.js → x-BUwTKe50.js} +1 -1
  248. package/package.json +78 -58
  249. package/src/styles/animations.css +29 -114
  250. package/src/styles/cards.css +53 -0
  251. package/src/styles/configurator.css +42 -0
  252. package/src/styles/dock/layer-group.css +83 -25
  253. package/src/styles/dock/layers.css +23 -1
  254. package/src/styles/dock/morph-bridge.css +123 -0
  255. package/src/styles/dock/morph.css +175 -45
  256. package/src/styles/dock/overflow.css +51 -1
  257. package/src/styles/dock/rail-extend.css +300 -0
  258. package/src/styles/dock/shell.css +63 -105
  259. package/src/styles/dock-controls/dark-mode-toggle.css +109 -0
  260. package/src/styles/dock-controls/icon-button.css +133 -0
  261. package/src/styles/dock-controls/tab-button.css +202 -0
  262. package/src/styles/dock-controls/touch-floor.css +94 -0
  263. package/src/styles/dock-controls/triggers.css +128 -0
  264. package/src/styles/dock-controls.css +30 -595
  265. package/src/styles/dock.css +2 -0
  266. package/src/styles/floating-panel.css +15 -0
  267. package/src/styles/glass/a11y-fallback.css +245 -0
  268. package/src/styles/glass/ladder.css +337 -0
  269. package/src/styles/glass/material.css +238 -0
  270. package/src/styles/glass/progress-rail.css +78 -0
  271. package/src/styles/glass/squircle.css +66 -0
  272. package/src/styles/glass/surfaces.css +306 -0
  273. package/src/styles/glass.css +31 -1188
  274. package/src/styles/index.css +28 -14
  275. package/src/styles/paper.css +2 -68
  276. package/src/styles/segmented-tabs.css +271 -0
  277. package/src/styles/theme/bridges.css +337 -0
  278. package/src/styles/theme/dark.css +7 -0
  279. package/src/styles/theme/literals.css +94 -0
  280. package/src/styles/theme/radius.css +95 -0
  281. package/src/styles/theme.css +26 -529
  282. package/src/styles/tokens/color-radius.css +260 -0
  283. package/src/styles/tokens/dark-arm.css +200 -0
  284. package/src/styles/tokens/glass.css +440 -0
  285. package/src/styles/tokens/light-dark.css +158 -0
  286. package/src/styles/tokens/offsets-sizing.css +500 -0
  287. package/src/styles/tokens/property-regs.css +169 -0
  288. package/src/styles/tokens/scale-paper.css +366 -0
  289. package/src/styles/tokens/scheme-motion.css +334 -0
  290. package/src/styles/tokens/shadow.css +166 -0
  291. package/src/styles/tokens.css +22 -2360
  292. package/src/styles/typography.css +75 -21
  293. package/src/styles/utilities/a11y-overrides.css +140 -0
  294. package/src/styles/utilities/animate.css +26 -0
  295. package/src/styles/utilities/base.css +365 -0
  296. package/src/styles/utilities/btn.css +401 -0
  297. package/src/styles/utilities/components.css +317 -0
  298. package/src/styles/utilities.css +19 -1291
  299. package/src/styles/view-transition.css +0 -51
  300. package/dist/DeckProgress-Dmk4_AKN.js +0 -23
  301. package/dist/InstrumentRail-CUJ05YVG.js +0 -44
  302. package/dist/MetricBadge-BZVWIxNy.js +0 -80
  303. package/dist/components/custom/deck-progress/DeckProgress.vue.d.ts +0 -27
  304. package/dist/components/custom/deck-progress/index.d.ts +0 -2
  305. package/dist/components/custom/dialog-native/GlassDialogNative.vue.d.ts +0 -57
  306. package/dist/components/custom/dialog-native/index.d.ts +0 -1
  307. package/dist/components/custom/handmark/HandMark.vue.d.ts +0 -29
  308. package/dist/components/custom/handmark/brush.d.ts +0 -242
  309. package/dist/components/custom/handmark/freehand.d.ts +0 -69
  310. package/dist/components/custom/handmark/geometry.d.ts +0 -50
  311. package/dist/components/custom/handmark/index.d.ts +0 -21
  312. package/dist/components/custom/handmark/ink.d.ts +0 -11
  313. package/dist/components/custom/handmark/texture.d.ts +0 -39
  314. package/dist/components/custom/handmark/types.d.ts +0 -53
  315. package/dist/components/custom/handmark/useHandMark.d.ts +0 -87
  316. package/dist/components/custom/instrument-rail/InstrumentRail.vue.d.ts +0 -91
  317. package/dist/components/custom/instrument-rail/index.d.ts +0 -2
  318. package/dist/composables/motion/useRouteTransition.d.ts +0 -42
  319. package/dist/deck-progress.d.ts +0 -1
  320. package/dist/deck-progress.js +0 -2
  321. package/dist/dockContext-BKeIMmNk.js +0 -9
  322. package/dist/handmark.d.ts +0 -1
  323. package/dist/handmark.js +0 -663
  324. package/dist/instrument-rail.d.ts +0 -1
  325. package/dist/instrument-rail.js +0 -2
  326. package/dist/styles/instrument-rail.css +0 -127
  327. package/dist/useGlassRenderer-D7YGOYiM.js +0 -69
  328. package/dist/useSpecularTracking-BVRZsRHA.js +0 -26
  329. package/dist/useSpringMount-BJSHcLl3.js +0 -113
  330. package/dist/useViewTransition-DaN5Zrox.js +0 -21
  331. package/dist/vReveal-zUIQk-rJ.js +0 -53
  332. package/src/styles/instrument-rail.css +0 -127
  333. /package/dist/{ContextMenuContent-DDa0v27s.js → ContextMenuContent-CT3AS1WX.js} +0 -0
  334. /package/dist/{HoverCardContent-B6CcQ8He.js → HoverCardContent-Csywg3YF.js} +0 -0
  335. /package/dist/{Input-xuDwALQR.js → Input-DWQQIOC4.js} +0 -0
  336. /package/dist/{InstrumentChassis-C2f6cBaQ.js → InstrumentChassis-UUJX0-mW.js} +0 -0
  337. /package/dist/{Label-zRfbQdCn.js → Label-r3WzWrsj.js} +0 -0
  338. /package/dist/{ModalOverlay-B1GkAjNb.js → ModalOverlay-DVLI2VRr.js} +0 -0
  339. /package/dist/{PaperBackdrop-CqwjnfLv.js → PaperBackdrop-DIXTtVq6.js} +0 -0
  340. /package/dist/{Progress-iEuD9pxG.js → Progress-DwlUKGbr.js} +0 -0
  341. /package/dist/{SelectGroup-BFiod7X2.js → SelectGroup-aumMgWLs.js} +0 -0
  342. /package/dist/{SelectSeparator-C4Ql0gzV.js → SelectSeparator-BQ_1Fcbp.js} +0 -0
  343. /package/dist/{Separator-D7sD7RKj.js → Separator-0JE6LtNu.js} +0 -0
  344. /package/dist/{TooltipProvider-CmZzCuaG.js → TooltipProvider-B3MkB_8P.js} +0 -0
  345. /package/dist/{compile-BOXjLUxu.js → compile-B7NGOBcP.js} +0 -0
  346. /package/dist/{constants-yKeKnE84.js → constants-CS75AWHG.js} +0 -0
  347. /package/dist/{createContext-B44Sah_H.js → createContext-BM46COQ-.js} +0 -0
  348. /package/dist/{createLucideIcon-B6uNAU9G.js → createLucideIcon-DydS2qgk.js} +0 -0
  349. /package/dist/{menuItemVariants-CCoBNkU5.js → menuItemVariants-DPiEarb0.js} +0 -0
  350. /package/dist/{supportsCssTimeline-C5oe0lnD.js → supportsCssTimeline-BWenxvHU.js} +0 -0
  351. /package/dist/{useIntersectionPause-Cck5Uxk8.js → useIntersectionPause-Cc-H9ees.js} +0 -0
  352. /package/dist/{useInterval-Dsmqwi03.js → useInterval-iHludrxk.js} +0 -0
  353. /package/dist/{useKeyboardShortcuts-CyIYrndH.js → useKeyboardShortcuts-Be3w_Rwk.js} +0 -0
  354. /package/dist/{useResizeObserver-CWCbk5Px.js → useResizeObserver-BhgdhOIj.js} +0 -0
  355. /package/dist/{useResolveTokenColor-r9pnNjqK.js → useResolveTokenColor-Dvn2RZJW.js} +0 -0
  356. /package/dist/{useSortable-C8ReQ50P.js → useSortable-muI29agz.js} +0 -0
  357. /package/dist/{useTextHighlight-CWEi25hf.js → useTextHighlight-DmRYkOBx.js} +0 -0
  358. /package/dist/{useTimer-3xqf_54b.js → useTimer-Dzarvzuk.js} +0 -0
  359. /package/dist/{useUserInvalidAria-DoJKMZ3s.js → useUserInvalidAria-B2h6jAM_.js} +0 -0
  360. /package/dist/{useViewportReady-RIr5Wgkh.js → useViewportReady-B40FK4Pa.js} +0 -0
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mkbabb/glass-ui",
3
- "version": "3.11.2",
4
- "description": "Glassmorphic design system — Vue 3.5 components, reka-ui primitives, Tailwind CSS v4 tokens",
3
+ "version": "3.13.0",
4
+ "description": "Glassmorphic design system \u2014 Vue 3.5 components, reka-ui primitives, Tailwind CSS v4 tokens",
5
5
  "license": "MIT",
6
6
  "repository": {
7
7
  "type": "git",
@@ -79,9 +79,6 @@
79
79
  "status-dot": [
80
80
  "dist/status-dot.d.ts"
81
81
  ],
82
- "deck-progress": [
83
- "dist/deck-progress.d.ts"
84
- ],
85
82
  "pulse": [
86
83
  "dist/pulse.d.ts"
87
84
  ],
@@ -91,9 +88,6 @@
91
88
  "toggle-chip": [
92
89
  "dist/toggle-chip.d.ts"
93
90
  ],
94
- "glass-panel": [
95
- "dist/glass-panel.d.ts"
96
- ],
97
91
  "sortable-list": [
98
92
  "dist/sortable-list.d.ts"
99
93
  ],
@@ -112,24 +106,27 @@
112
106
  "instrument-chassis": [
113
107
  "dist/instrument-chassis.d.ts"
114
108
  ],
115
- "instrument-rail": [
116
- "dist/instrument-rail.d.ts"
117
- ],
118
109
  "hover-popover": [
119
110
  "dist/hover-popover.d.ts"
120
111
  ],
121
112
  "configurator": [
122
113
  "dist/configurator.d.ts"
123
114
  ],
124
- "header-ribbon": [
125
- "dist/header-ribbon.d.ts"
126
- ],
127
115
  "constellation": [
128
116
  "dist/constellation.d.ts"
129
117
  ],
130
118
  "scrolling-text": [
131
119
  "dist/scrolling-text.d.ts"
132
120
  ],
121
+ "underline": [
122
+ "dist/underline.d.ts"
123
+ ],
124
+ "glass-panel": [
125
+ "dist/glass-panel.d.ts"
126
+ ],
127
+ "header-ribbon": [
128
+ "dist/header-ribbon.d.ts"
129
+ ],
133
130
  "forms": [
134
131
  "dist/forms.d.ts"
135
132
  ],
@@ -154,6 +151,9 @@
154
151
  "motion-core": [
155
152
  "dist/motion-core.d.ts"
156
153
  ],
154
+ "motion-curves": [
155
+ "dist/motion-curves.d.ts"
156
+ ],
157
157
  "button": [
158
158
  "dist/button.d.ts"
159
159
  ],
@@ -312,18 +312,10 @@
312
312
  "types": "./dist/watercolor-dot.d.ts",
313
313
  "import": "./dist/watercolor-dot.js"
314
314
  },
315
- "./handmark": {
316
- "types": "./dist/handmark.d.ts",
317
- "import": "./dist/handmark.js"
318
- },
319
315
  "./configurator": {
320
316
  "types": "./dist/configurator.d.ts",
321
317
  "import": "./dist/configurator.js"
322
318
  },
323
- "./header-ribbon": {
324
- "types": "./dist/header-ribbon.d.ts",
325
- "import": "./dist/header-ribbon.js"
326
- },
327
319
  "./constellation": {
328
320
  "types": "./dist/constellation.d.ts",
329
321
  "import": "./dist/constellation.js"
@@ -348,10 +340,6 @@
348
340
  "types": "./dist/status-dot.d.ts",
349
341
  "import": "./dist/status-dot.js"
350
342
  },
351
- "./deck-progress": {
352
- "types": "./dist/deck-progress.d.ts",
353
- "import": "./dist/deck-progress.js"
354
- },
355
343
  "./pulse": {
356
344
  "types": "./dist/pulse.d.ts",
357
345
  "import": "./dist/pulse.js"
@@ -364,10 +352,6 @@
364
352
  "types": "./dist/toggle-chip.d.ts",
365
353
  "import": "./dist/toggle-chip.js"
366
354
  },
367
- "./glass-panel": {
368
- "types": "./dist/glass-panel.d.ts",
369
- "import": "./dist/glass-panel.js"
370
- },
371
355
  "./sortable-list": {
372
356
  "types": "./dist/sortable-list.d.ts",
373
357
  "import": "./dist/sortable-list.js"
@@ -392,10 +376,6 @@
392
376
  "types": "./dist/instrument-chassis.d.ts",
393
377
  "import": "./dist/instrument-chassis.js"
394
378
  },
395
- "./instrument-rail": {
396
- "types": "./dist/instrument-rail.d.ts",
397
- "import": "./dist/instrument-rail.js"
398
- },
399
379
  "./hover-popover": {
400
380
  "types": "./dist/hover-popover.d.ts",
401
381
  "import": "./dist/hover-popover.js"
@@ -404,6 +384,18 @@
404
384
  "types": "./dist/scrolling-text.d.ts",
405
385
  "import": "./dist/scrolling-text.js"
406
386
  },
387
+ "./underline": {
388
+ "types": "./dist/underline.d.ts",
389
+ "import": "./dist/underline.js"
390
+ },
391
+ "./glass-panel": {
392
+ "types": "./dist/glass-panel.d.ts",
393
+ "import": "./dist/glass-panel.js"
394
+ },
395
+ "./header-ribbon": {
396
+ "types": "./dist/header-ribbon.d.ts",
397
+ "import": "./dist/header-ribbon.js"
398
+ },
407
399
  "./forms": {
408
400
  "types": "./dist/forms.d.ts",
409
401
  "import": "./dist/forms.js"
@@ -432,6 +424,10 @@
432
424
  "types": "./dist/motion-core.d.ts",
433
425
  "import": "./dist/motion-core.js"
434
426
  },
427
+ "./motion-curves": {
428
+ "types": "./dist/motion-curves.d.ts",
429
+ "import": "./dist/motion-curves.js"
430
+ },
435
431
  "./button": {
436
432
  "types": "./dist/button.d.ts",
437
433
  "import": "./dist/button.js"
@@ -575,27 +571,51 @@
575
571
  "proof:dock-hold-contract": "node scripts/proof-dock-hold-contract.mjs",
576
572
  "proof:dock-opacity-lockstep": "node scripts/proof-dock-opacity-lockstep.mjs",
577
573
  "proof:dock-a11y-contract": "vitest run tests/components/custom/dock/DockLayerRail.a11y.test.ts",
578
- "proof:dock-collapse-contract": "vitest run tests/components/custom/dock/GlassDock.collapse-contract.test.ts",
579
- "proof:expand-reparent-determinism": "vitest run tests/components/custom/expandable-container/single-surface-reparent.test.ts",
580
- "proof:dark-flip-settle": "vitest run tests/composables/dark/flip-settle.test.ts",
581
- "proof:control-glass-register": "vitest run tests/components/ui/toggle-group/glass-register.test.ts tests/components/ui/slider/track-frost.test.ts",
582
574
  "proof:dock-vocabulary": "node scripts/proof-dock-vocabulary.mjs",
583
575
  "proof:dock-region-model": "node scripts/proof-dock-region-model.mjs",
584
576
  "proof:dock-perfection": "node scripts/proof-dock-perfection.mjs",
585
577
  "proof:dock-unify": "node scripts/proof-dock-unify.mjs",
578
+ "proof:dock-rail-hairline": "node scripts/proof-dock-rail-hairline.mjs",
579
+ "proof:dock-no-scale-pop": "node scripts/proof-dock-no-scale-pop.mjs",
580
+ "proof:dock-tap-integrity": "node scripts/proof-dock-tap-integrity.mjs",
581
+ "proof:dock-taxonomy": "node scripts/proof-dock-taxonomy.mjs",
582
+ "proof:rail-extend": "node scripts/proof-rail-extend.mjs",
583
+ "proof:dock-contextual-layers": "node scripts/proof-dock-contextual-layers.mjs",
584
+ "proof:morph-showcase": "node scripts/proof-morph-showcase.mjs",
585
+ "proof:blob-page": "node scripts/proof-blob-page.mjs",
586
+ "proof:blob-page-fence": "node scripts/proof-blob-page-fence.mjs",
587
+ "proof:motion-demo": "node scripts/proof-motion-demo.mjs",
588
+ "proof:motion2": "node scripts/proof-motion2.mjs",
589
+ "proof:rail3": "node scripts/proof-rail3.mjs",
590
+ "proof:az-reflect": "node scripts/proof-az-reflect.mjs",
591
+ "proof:az-final": "node scripts/proof-az-final.mjs",
592
+ "proof:shell-identity": "node scripts/proof-shell-identity.mjs",
593
+ "proof:blob-studio": "node scripts/proof-blob-studio.mjs",
594
+ "proof:blob-studio-config": "node scripts/proof-blob-studio-config.mjs",
595
+ "proof:shell-config": "node scripts/proof-shell-config.mjs",
596
+ "proof:adaptive-glass-live": "node scripts/proof-adaptive-glass-live.mjs",
597
+ "proof:adaptive-observer": "node scripts/proof-adaptive-observer.mjs",
598
+ "proof:register-ios": "node scripts/proof-register-ios.mjs",
586
599
  "proof:dock-css-carve": "node scripts/proof-dock-css-carve.mjs",
587
600
  "proof:dock-css-split": "node scripts/proof-dock-controls-split.mjs",
588
601
  "proof:design-idiom-localization": "node scripts/proof-design-idiom-localization.mjs",
602
+ "proof:hierarchy": "node scripts/proof-hierarchy.mjs",
603
+ "proof:suffuse": "node scripts/proof-suffuse.mjs",
604
+ "proof:colocation": "node scripts/proof-colocation.mjs",
589
605
  "proof:tailwind-v4-idiom": "node scripts/proof-tailwind-v4-idiom.mjs",
590
606
  "proof:au-w9-consumers": "node scripts/proof-au-w9-consumers.mjs",
591
607
  "proof:shadow-contract": "node scripts/proof-shadow-contract.mjs",
592
608
  "proof:squircle-language": "node scripts/proof-squircle-language.mjs",
593
609
  "proof:card-cartoon-consumers": "node scripts/proof-card-cartoon-consumers.mjs",
610
+ "proof:card-veil": "node scripts/proof-card-veil.mjs",
611
+ "proof:glass-panel-tiers": "node scripts/proof-glass-panel-tiers.mjs",
612
+ "proof:metric-core": "node scripts/proof-metric-core.mjs",
594
613
  "proof:doc-consistency": "node scripts/proof-doc-consistency.mjs",
595
614
  "proof:au-w0-reground": "node scripts/proof-au-w0-reground.mjs",
596
615
  "proof:ay-w0-reground": "node scripts/proof-ay-w0-reground.mjs",
597
616
  "proof:au-w1-design": "node scripts/proof-au-w1-design.mjs",
598
617
  "proof:au-final": "node scripts/proof-au-final.mjs",
618
+ "proof:ay-final": "node scripts/proof-ay-final.mjs",
599
619
  "proof:strict-templates": "node scripts/proof-strict-templates.mjs",
600
620
  "proof:peer-optional": "node scripts/proof-peer-optional.mjs",
601
621
  "proof:vueuse-free-root": "node scripts/proof-vueuse-free-root.mjs",
@@ -617,7 +637,7 @@
617
637
  "proof:blob-value-free": "node scripts/proof-blob-value-free.mjs",
618
638
  "proof:motion-composables-consumer": "node scripts/proof-motion-composables-consumer.mjs",
619
639
  "proof:motion-value-free": "node scripts/proof-motion-value-free.mjs",
620
- "proof:no-value-default": "node scripts/proof-no-value-default.mjs",
640
+ "proof:motion-suite": "node scripts/proof-motion-suite.mjs",
621
641
  "proof:blob-space-gamma": "node scripts/proof-blob-space-gamma.mjs",
622
642
  "proof:blob-smin-normalized": "node scripts/proof-blob-smin-normalized.mjs",
623
643
  "proof:blob-gradient-unit-length": "node scripts/proof-blob-gradient-unit-length.mjs",
@@ -629,7 +649,6 @@
629
649
  "proof:aurora-space-gamma": "node scripts/proof-aurora-space-gamma.mjs",
630
650
  "proof:aurora-oklch-interp": "node scripts/proof-aurora-oklch-interp.mjs",
631
651
  "proof:aurora-derive-gamut": "vitest run tests/components/custom/aurora/derive-color.test.ts",
632
- "proof:aurora-paper-ground": "vitest run tests/components/custom/aurora/paper-ground.test.ts",
633
652
  "proof:aurora-tensor-field": "node scripts/proof-aurora-tensor-field.mjs && vitest run tests/components/custom/aurora/painterly.test.ts",
634
653
  "proof:aurora-impasto-relight": "node scripts/proof-aurora-impasto-relight.mjs",
635
654
  "proof:aurora-vangogh-preset": "node scripts/proof-aurora-vangogh-preset.mjs",
@@ -647,7 +666,11 @@
647
666
  "proof:blob-color-equivalence": "vitest run tests/components/custom/goo-blob/blob-color-equivalence.test.ts",
648
667
  "proof:fail-explicit": "node scripts/proof-fail-explicit.mjs",
649
668
  "proof:no-god-module": "node scripts/proof-no-god-module.mjs",
669
+ "proof:composable-return-types": "node scripts/proof-composable-return-types.mjs",
650
670
  "proof:no-legacy-commentary": "node scripts/proof-no-legacy-commentary.mjs",
671
+ "proof:no-retired-survivor": "node scripts/proof-no-retired-survivor.mjs",
672
+ "proof:tag-parity": "node scripts/proof-tag-parity.mjs",
673
+ "proof:var-in-arbitrary-guard": "node scripts/proof-var-in-arbitrary-guard.mjs",
651
674
  "proof:story-language": "node scripts/proof-story-language.mjs",
652
675
  "proof:gate-detrap": "node scripts/proof-gate-detrap.mjs",
653
676
  "proof:liquid-glass-tokens": "node scripts/proof-liquid-glass-tokens.mjs",
@@ -655,6 +678,7 @@
655
678
  "proof:di-consistency": "node scripts/proof-di-consistency.mjs",
656
679
  "proof:no-nested-import": "node scripts/proof-no-nested-import.mjs",
657
680
  "proof:no-test-in-src": "node scripts/proof-no-test-in-src.mjs",
681
+ "proof:no-scoped-global": "node scripts/proof-no-scoped-global.mjs",
658
682
  "proof:spring-tokens-synced": "node scripts/proof-spring-tokens-synced.mjs",
659
683
  "proof:offscreen-pause": "node scripts/proof-offscreen-pause.mjs",
660
684
  "proof:constellation-substrate-single": "node scripts/proof-constellation-substrate-single.mjs",
@@ -669,16 +693,9 @@
669
693
  "proof:resolve-canvas-color": "vitest run tests/composables/glass/canvas2d/resolveCanvasColor.test.ts",
670
694
  "proof:text-highlight": "vitest run tests/composables/motion/text-highlight-home.test.ts tests/composables/motion/useTextHighlight.test.ts",
671
695
  "proof:constellation-field": "vitest run tests/components/custom/constellation/constellationField.test.ts",
696
+ "proof:constellation-gen": "node scripts/proof-constellation-gen.mjs",
672
697
  "proof:input-invalid-aria": "node scripts/proof-input-invalid-aria.mjs",
673
698
  "proof:subpath-enumeration": "node scripts/proof-subpath-enumeration.mjs",
674
- "proof:handmark-export": "node scripts/proof-handmark-export.mjs",
675
- "proof:handmark-tests": "vitest run tests/components/custom/handmark",
676
- "proof:no-disco-star": "node scripts/proof-no-disco-star.mjs",
677
- "proof:gold-ink-contrast": "node scripts/proof-gold-ink-contrast.mjs",
678
- "proof:gold-seal-roundtrip": "node scripts/proof-gold-seal-roundtrip.mjs",
679
- "proof:glass-gilt": "node scripts/proof-glass-gilt.mjs",
680
- "proof:crayon-wipe-compositor": "node scripts/proof-crayon-wipe-compositor.mjs",
681
- "proof:metric-badge-record": "vitest run tests/components/custom/metric-badge/MetricBadge.record.test.ts",
682
699
  "proof:no-orphan-composable": "node scripts/proof-no-orphan-composable.mjs",
683
700
  "proof:speedtest-boundary": "node scripts/proof-speedtest-boundary.mjs",
684
701
  "proof:glass-material-unified": "node scripts/proof-glass-material-unified.mjs",
@@ -689,9 +706,19 @@
689
706
  "proof:aurora-chrome-idiomatic": "node scripts/proof-aurora-chrome-idiomatic.mjs",
690
707
  "proof:aurora-preset-roster": "node scripts/proof-aurora-preset-roster.mjs",
691
708
  "proof:ui-scale": "node scripts/proof-ui-scale.mjs",
709
+ "proof:touch-target": "node scripts/proof-touch-target.mjs",
710
+ "proof:webkit-backdrop": "node scripts/proof-webkit-backdrop.mjs",
711
+ "proof:nested-backdrop-budget": "node scripts/proof-nested-backdrop-budget.mjs",
692
712
  "proof:dropdown-type-scale": "node scripts/proof-dropdown-type-scale.mjs",
693
713
  "proof:forced-colors-skin": "node scripts/proof-forced-colors-skin.mjs",
694
714
  "proof:glass-cohesion": "node scripts/proof-glass-cohesion.mjs",
715
+ "proof:substrate-cohesion": "node scripts/proof-substrate-cohesion.mjs",
716
+ "proof:component-orphan": "node scripts/proof-component-orphan.mjs",
717
+ "proof:substrate-staging": "node scripts/proof-substrate-staging.mjs",
718
+ "proof:easter-eggs": "node scripts/proof-easter-eggs.mjs",
719
+ "proof:instrument-scope": "node scripts/proof-instrument-scope.mjs",
720
+ "proof:readme-meta-clean": "node scripts/proof-readme-meta-clean.mjs",
721
+ "proof:convergence-fit-coherent": "node scripts/proof-convergence-fit-coherent.mjs",
695
722
  "proof:adaptive-glass": "node scripts/proof-adaptive-glass.mjs",
696
723
  "proof:dark-semantic-contrast": "node scripts/proof-dark-semantic-contrast.mjs",
697
724
  "proof:glass-material-demo": "node scripts/proof-glass-material-demo.mjs",
@@ -715,9 +742,11 @@
715
742
  "proof:all": "node scripts/gates.mjs --run local",
716
743
  "proof:live-verified-ledger": "node scripts/proof-live-verified-ledger.mjs --tranche=AY",
717
744
  "proof:live-verified-ledger:ay": "node scripts/proof-live-verified-ledger.mjs --tranche=AY",
745
+ "proof:live-verified-ledger:az": "node scripts/proof-live-verified-ledger.mjs --tranche=AZ",
718
746
  "proof:live-verified-ledger:ax": "node scripts/proof-live-verified-ledger.mjs --tranche=AX",
719
747
  "proof:disposition-live": "node scripts/proof-disposition-live.mjs",
720
748
  "proof:gen-ci-fresh": "node scripts/proof-gen-ci-fresh.mjs",
749
+ "proof:gate-manifest-sound": "node scripts/proof-gate-manifest-sound.mjs",
721
750
  "gates:verify-ci": "node scripts/gates.mjs --verify-ci",
722
751
  "gates:emit-ci": "node scripts/gates.mjs --emit-ci",
723
752
  "profile:bundle": "node scripts/profile-bundle.mjs",
@@ -733,13 +762,11 @@
733
762
  "peerDependencies": {
734
763
  "@lucide/vue": "^1.16.0",
735
764
  "@mkbabb/keyframes.js": "^2.2.0 || ^3.0.0 || ^4.0.0",
736
- "@mkbabb/pencil-boil": "^0.4.1",
737
765
  "@mkbabb/value.js": "^0.10.0 || ^0.11.0",
738
766
  "@vueuse/core": "^14.0",
739
767
  "class-variance-authority": "^0.7",
740
768
  "clsx": "^2.0",
741
769
  "embla-carousel-vue": "^8.0",
742
- "perfect-freehand": "^1.2.3",
743
770
  "reka-ui": "^2.0",
744
771
  "tailwindcss": "^4.0",
745
772
  "tw-animate-css": "^1.2.5",
@@ -756,23 +783,16 @@
756
783
  "@mkbabb/keyframes.js": {
757
784
  "optional": true
758
785
  },
759
- "@mkbabb/pencil-boil": {
760
- "optional": true
761
- },
762
786
  "@mkbabb/value.js": {
763
787
  "optional": true
764
788
  },
765
- "perfect-freehand": {
766
- "optional": true
767
- },
768
789
  "tw-animate-css": {
769
790
  "optional": true
770
791
  }
771
792
  },
772
793
  "devDependencies": {
773
794
  "@lucide/vue": "^1.16.0",
774
- "@mkbabb/keyframes.js": "^2.2.0",
775
- "@mkbabb/pencil-boil": "^0.4.1",
795
+ "@mkbabb/keyframes.js": "^4.1.0",
776
796
  "@mkbabb/value.js": "^0.10.0",
777
797
  "@tailwindcss/postcss": "^4.3.0",
778
798
  "@tailwindcss/vite": "^4.3.0",
@@ -141,129 +141,33 @@
141
141
  100% { background-position: -200% 0; }
142
142
  }
143
143
 
144
- /* ── Gold ONE-SHOT round-trip: the pressed seal (E7c — the to-AND-fro) ──────────
144
+ /* ── Sparkle sweep: four-point star traverses a surface diagonally ──
145
145
  *
146
- * A seal is PRESSED, catches the light ONCE, and RECEDES — a full ease-IN-AND-OUT
147
- * envelope, not a fire-and-yank. The defect this replaces: `.text-gilt` used the
148
- * infinite `gold-shimmer-slide` (`1 forwards`), which HELD its gilt terminal frame
149
- * forever, and the consumer ripped the class off on a `setTimeout` — but the gold
150
- * gradient lives in `background-image`, which no transition covers, so it SNAPPED
151
- * off in one frame.
152
- *
153
- * This keyframe owns the WHOLE envelope and RESOLVES TO THE RESTING INK — there is
154
- * nothing left to yank when it ends:
155
- * - `-webkit-text-fill-color` (and `color`) ride from the figure's OWN ink
156
- * (`currentColor` — the consumer's data-pole green/red) → `transparent` (the
157
- * gilt gradient shows through `background-clip:text`) → back to `currentColor`.
158
- * So the gilt FADES UP and FADES DOWN; at 0% and 100% the figure paints its own
159
- * ink and the gradient is occluded — the resting state, by construction.
160
- * - `background-position` slides the gradient across through the same window.
161
- * No `forwards` is needed (the final keyframe IS rest), so on completion the class
162
- * may simply stop mattering — the snap is structurally impossible. */
163
- @keyframes gold-shimmer-pulse {
146
+ * Reserved for the chassis primary-action hover (dock-tab-button[data-tier="primary"])
147
+ * and the `Complete!` shimmer cycle. Single keyframe, ~600ms per pass; the
148
+ * consumer rule sets the duration and easing. Reduced-motion guard at the
149
+ * consumer site (per surface — not all sparkle uses share the same gate).
150
+ */
151
+ @keyframes sparkle-sweep {
164
152
  0% {
165
- background-position: 150% 0;
166
- color: currentColor;
167
- -webkit-text-fill-color: currentColor;
153
+ transform: translate(-30%, -30%) scale(0.5);
154
+ opacity: 0;
168
155
  }
169
156
  25% {
170
- color: transparent;
171
- -webkit-text-fill-color: transparent;
172
- }
173
- 75% {
174
- color: transparent;
175
- -webkit-text-fill-color: transparent;
157
+ opacity: 1;
176
158
  }
177
159
  100% {
178
- background-position: -150% 0;
179
- color: currentColor;
180
- -webkit-text-fill-color: currentColor;
181
- }
182
- }
183
-
184
- /* ── Crayon-wipe: the scroll-scrubbed draw-on (D6.c M1) ──────────────────────
185
- *
186
- * The bidirectional, scroll-scrubbed DRAW-ON of a hand-mark (the crayon/pen
187
- * underline, a drawn rule). The wipe is a `clip-path: inset()` of the LEFT edge
188
- * only — the mark draws from inset(0 100% 0 0) (fully clipped from the right, so
189
- * NOTHING shows) to inset(0) (fully revealed) — so the underline DRAWS as the
190
- * figure scrolls into view and UN-DRAWS as it scrolls back up. `clip-path` is the
191
- * compositor-eligible, FILTER-STABLE wipe (the medium's grain `feTurbulence`
192
- * rasters ONCE and is untouched by the clip — the cardinal "no per-frame raster"
193
- * discipline ds2-motion-field M1 names): clip-path animates on the compositor and
194
- * never re-runs the static filter, unlike a `stroke-dashoffset` draw under the
195
- * grain filter (which re-rasters per frame). The grammar mirrors scroll-driven.css
196
- * (the `view()`/`scroll()` timeline home): the keyframe lives here (the shared
197
- * @keyframes register); a consumer binds it to a NAMED `view-timeline` so the
198
- * draw-on SCRUBS bidirectionally with scroll (forward → draws, back → un-draws),
199
- * never a one-shot. The `.crayon-wipe` utility below is the binding.
200
- *
201
- * The keyframe itself is timeline-agnostic — it is equally a load-clock draw-on
202
- * (bound to a keyframes.js Sequence) or a scroll scrub (bound to a view-timeline).
203
- * The DEFAULT consumer is the scroll scrub (the figure-item underline drawing into
204
- * the lower third), hence the utility's `view()` binding.
205
- *
206
- * Reduced-motion: the utility (NOT the keyframe) gates — under PRM the mark is SET
207
- * to inset(0) (fully drawn, never animated), the correct degrade for a permanent
208
- * structural draw (information parity: the underline is present, just not drawn).
209
- */
210
- @keyframes crayon-wipe {
211
- from {
212
- /* clipped from the RIGHT by 100% → the mark is fully hidden (nothing
213
- drawn yet); the left edge is the pen-tip about to move right. */
214
- clip-path: inset(0 100% 0 0);
215
- }
216
- to {
217
- /* fully revealed — the mark is wholly drawn. */
218
- clip-path: inset(0 0 0 0);
160
+ transform: translate(180%, 180%) scale(1.2);
161
+ opacity: 0;
219
162
  }
220
163
  }
221
164
 
222
- /* ── .crayon-wipe — bind the wipe to a scroll view-timeline (D6.c M1) ──────────
223
- * The scroll-scrubbed draw-on utility. A consumer puts `.crayon-wipe` on a
224
- * hand-mark surface (the underline span, a drawn rule) and the mark draws/un-draws
225
- * as it scrolls through its OWN `view()` timeline — a bidirectional scrub, free,
226
- * off the main thread. The animation is `paused` with `animation-timeline: view()`
227
- * so the scroll position IS the playhead (the native scroll-driven model — the
228
- * timeline drives the frame, time does not). The named timeline is overridable
229
- * (`--crayon-wipe-timeline`, default the element's own `view()`) so a consumer can
230
- * scrub off a SHARED beat timeline (the §--beat-tl the atlas scroll-driven.css
231
- * names) instead of the per-element view — that is the "named view-timeline so a
232
- * consumer scrubs a draw-on bidirectionally" contract.
233
- *
234
- * @supports-gated + PRM-OUTER-gated, mirroring scroll-driven.css exactly: the
235
- * whole binding sits under `prefers-reduced-motion: no-preference`, so under PRM
236
- * the animation never attaches and the mark renders in its terminal `inset(0)`
237
- * (fully-drawn) state — the static-draw degrade. The draw range is `entry`-keyed
238
- * (the mark draws as it ENTERS the lower viewport), tunable via
239
- * `--crayon-wipe-range-{start,end}`. */
240
- @media (prefers-reduced-motion: no-preference) {
241
- @supports ((animation-timeline: view()) and (animation-range: entry)) {
242
- .crayon-wipe {
243
- animation: crayon-wipe auto linear both;
244
- animation-timeline: var(--crayon-wipe-timeline, view(block));
245
- animation-range: var(--crayon-wipe-range-start, entry 0%)
246
- var(--crayon-wipe-range-end, cover 35%);
247
- }
165
+ @media (prefers-reduced-motion: reduce) {
166
+ @keyframes sparkle-sweep {
167
+ 0%, 100% { opacity: 0; transform: none; }
248
168
  }
249
169
  }
250
170
 
251
- /* ── Sparkle sweep: TOMBSTONE (D6.b — the disco-star excision) ──
252
- *
253
- * @deprecated 3.10 — DELETE in 3.11. The four-point `✦` star sweep was the one
254
- * garish gesture in the library; the user named it for removal ("remove the disco
255
- * star from all glass-ui elements"). Every in-tree consumer is re-homed: the
256
- * `btn-audacious` hover affirmation now rides the specular catch-light alone; the
257
- * gold-CTA rides the `btn-gold-bg-sweep` metal-catch; the chassis `complete`
258
- * celebration re-homes to the `.text-gilt` one-shot (utilities.css). The keyframe
259
- * body is EMPTIED rather than deleted for ONE minor so any out-of-tree consumer
260
- * (the slides decks) fails SOFT — a no-op animation, not an unknown-animation
261
- * error. The `--duration-sparkle` token is `@deprecated` alongside (tokens.css).
262
- * Full delete (this block + the token + the theme bridge) lands in 3.11. */
263
- @keyframes sparkle-sweep {
264
- /* intentionally empty — tombstoned, see deprecation note above */
265
- }
266
-
267
171
  /* ── Pulse dot bounce: dots variant of <Pulse> ──
268
172
  *
269
173
  * Three-dot loading indicator. Opacity 0.35 ↔ 1, scale 0.8 ↔ 1.2. Consumer
@@ -451,16 +355,27 @@
451
355
  * exists for `showModal()` dialogs, NOT `[popover]` (popovers are
452
356
  * non-modal — correct, no scrim). */
453
357
  dialog.glass-top-layer::backdrop {
454
- background-color: hsl(var(--background) / 0);
358
+ /* AZ.W-ADAPTIVE-AUTO A5-1 — the modal-scrim dim is the house alpha-derivative
359
+ `color-mix(in srgb, var(--background) Npct, transparent)`, NOT the invalid
360
+ `hsl(var(--background) / α)` double-wrap (`--background` is a complete
361
+ `hsl()` color = `hsl(48 12% 98%)`, so `hsl(hsl(…)/α)` evaluates to nothing
362
+ and the dim silently did not paint). The `in srgb` axis only — the
363
+ `--surface-tint-*` house family + the `in oklab` glass tint axis are
364
+ untouched. */
365
+ background-color: color-mix(in srgb, var(--background) 0%, transparent);
455
366
  backdrop-filter: blur(var(--top-layer-backdrop-blur, 8px));
456
367
  transition: display var(--duration-normal) allow-discrete,
457
368
  overlay var(--duration-normal) allow-discrete,
458
369
  background-color var(--duration-normal) var(--ease-standard);
459
370
  }
460
371
  dialog.glass-top-layer[open]::backdrop {
461
- background-color: hsl(var(--background) / var(--top-layer-backdrop-dim, 0.5));
372
+ background-color: color-mix(
373
+ in srgb,
374
+ var(--background) calc(var(--top-layer-backdrop-dim, 0.5) * 100%),
375
+ transparent
376
+ );
462
377
  @starting-style {
463
- background-color: hsl(var(--background) / 0);
378
+ background-color: color-mix(in srgb, var(--background) 0%, transparent);
464
379
  }
465
380
  }
466
381
  }
@@ -46,3 +46,56 @@
46
46
  box-shadow: var(--shadow-cartoon-lg);
47
47
  }
48
48
  }
49
+
50
+ /* ── Veil surface decoration (R5-7) ──────────────────────────────
51
+ The text-legibility PLATE register, ratified by three slides sites (the
52
+ deck cover subtitle / standfirst / closer lede). Conceptually the W55
53
+ adaptive-legibility tint applied as a LOCAL plate: a translucent glass
54
+ fill + blur that darkens content-on-glass over a busy/bright backdrop so
55
+ text clears AA, but with the BOXED look STRIPPED — no border, no rim, no
56
+ highlight (the user's read: the border+rim "reads as a dividing line on a
57
+ text plate"). It is the `surface` sibling of `cartoon` — a decoration-only
58
+ utility, NOT a tier of its own.
59
+
60
+ It routes the glass MATERIAL through the `--glass-*` ladder (`--veil-bg`
61
+ defaults to the `quiet` rung's adaptive-tint mix, `--veil-blur` to the
62
+ quiet blur), so the glass-cohesion model sees a sanctioned glass register
63
+ (the level knob scales the blur; the W55 bright-bucket darkens the fill via
64
+ the same inheriting tint axis the rung already reads). What it carries on TOP
65
+ of a bare rung is the THREE veil deltas, each a `--veil-*` knob a consumer
66
+ retunes:
67
+
68
+ border : none (--veil-border, the dividing-line strip)
69
+ shadow : none (--veil-shadow, the rim/highlight strip)
70
+ feather : none (default) (--veil-feather — an OPTIONAL radial mask that
71
+ fades the plate edges into the backdrop; off by default so the
72
+ plate is a clean rectangle, on when a consumer wants the
73
+ soft-edged "bleed into the page" text-plate look)
74
+
75
+ <Card surface="veil"> selects it; `--veil-bg`/`--veil-blur` ride the same
76
+ `--glass-*` rungs as the ladder, so one `--glass-level` / `--glass-backdrop`
77
+ override retunes it in lockstep with every other glass surface. */
78
+ @utility veil-surface {
79
+ /* The glass material — routed through the `--glass-*` ladder so the
80
+ cohesion model reads a sanctioned glass register, and the W55 adaptive
81
+ darken (the inheriting `--glass-tint-*` axis) + the `--glass-level` clarity
82
+ knob reach the plate with NO veil-local recipe. Defaults to the `quiet`
83
+ rung; a consumer re-points `--veil-bg`/`--veil-blur` to any other rung. */
84
+ --veil-bg: color-mix(in oklab, var(--glass-bg-quiet), var(--glass-tint-source) var(--glass-tint-strength));
85
+ --veil-blur: var(--glass-blur-quiet);
86
+ /* The three veil deltas over a bare rung — each overridable. */
87
+ --veil-border: none;
88
+ --veil-shadow: none;
89
+ --veil-feather: none;
90
+
91
+ background: var(--veil-bg);
92
+ backdrop-filter: var(--veil-blur);
93
+ border: var(--veil-border);
94
+ box-shadow: var(--veil-shadow);
95
+ /* The optional radial feather — a `mask-image` only painted when
96
+ `--veil-feather` is set to a gradient (default `none` = no mask = a clean
97
+ rectangle). `mask-image: none` is the identity, so the default plate is
98
+ unmasked. `mask-image` Baseline 2023-12 — a non-supporting engine ignores
99
+ it and keeps the clean rectangle. */
100
+ mask-image: var(--veil-feather);
101
+ }
@@ -0,0 +1,42 @@
1
+ /* configurator.css — the Configurator HIERARCHY VOCABULARY (AZ.W-HIERARCHY, D6-3).
2
+ *
3
+ * The Configurator is the controls chassis the blob + aurora studios compose;
4
+ * this partial lands the three NAMED hierarchy registers ONCE so every studio
5
+ * INHERITS a vocabulary (section weight / label register / control rhythm)
6
+ * rather than a flat undifferentiated stack. The token definitions live in
7
+ * tokens/offsets-sizing.css (`--configurator-section-*`, `--configurator-preset-row-*`);
8
+ * this file is where the classes that CONSUME them paint.
9
+ *
10
+ * Cascade rung: imported AFTER utilities.css so the `.configurator-section-label`
11
+ * size/weight overrides the prior flat `text-small font-semibold` register, and
12
+ * the `.configurator-presets` block-padding override wins over the `py-2`
13
+ * Tailwind utility on the preset-row wrapper.
14
+ */
15
+
16
+ /* 1. Section register — the <ConfiguratorLayer> header label reads as a SECTION
17
+ * (√φ subheading, 20.4px / 600), NOT a row. Replaces the flat
18
+ * `text-small font-semibold text-foreground` span (D6-3: "section labels read
19
+ * flat + undifferentiated"). The two tokens are retunable on the cascade so a
20
+ * host can scale the whole section register from one override. */
21
+ .configurator-section-label {
22
+ font-family: var(--font-text);
23
+ font-size: var(--configurator-section-size);
24
+ line-height: var(--type-leading-body);
25
+ font-weight: var(--configurator-section-weight);
26
+ letter-spacing: var(--type-tracking-tight);
27
+ color: var(--foreground);
28
+ }
29
+
30
+ /* 2. Preset-row PRIMARY-AFFORDANCE lift — the preset picker is the primary
31
+ * interaction, so its row breathes ABOVE a body ConfiguratorRow. The token
32
+ * drives the SPATIAL rhythm (block-padding + the chip gap), NOT a font-weight
33
+ * (D6-3: "the preset row is tight"). `.configurator-presets` ships
34
+ * `px-3 py-2` from Tailwind; this rule lifts the block padding to the
35
+ * `--configurator-preset-row-weight` floor (10px > the 8px body py) and sets
36
+ * the inner chip-list gap to `--configurator-preset-row-gap`. */
37
+ .configurator-presets {
38
+ padding-block: var(--configurator-preset-row-weight);
39
+ }
40
+ .configurator-presets [role="tablist"] {
41
+ gap: var(--configurator-preset-row-gap);
42
+ }