@mkbabb/glass-ui 3.12.0 → 4.0.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 (436) hide show
  1. package/dist/CardAction-XH4YBVEK.js +158 -0
  2. package/dist/{CommandShortcut-CefCj5mt.js → CommandShortcut-DdtWXxOK.js} +58 -53
  3. package/dist/{ContextMenuSubContent-Bhg4f5jX.js → ContextMenuSubContent-B0Vs6atR.js} +4 -4
  4. package/dist/{DataTable-CUHMukiQ.js → DataTable-C464Zbqd.js} +99 -97
  5. package/dist/DialogContent-DDE6pQBU.js +103 -0
  6. package/dist/{DialogFooter-Gprw8H_A.js → DialogFooter-8eZbdmPc.js} +2 -2
  7. package/dist/FadingScroll-DwNnvKMs.js +76 -0
  8. package/dist/{HoverPopover-2LOIW34a.js → HoverPopover-Dpzwvc4t.js} +1 -1
  9. package/dist/IconChip-BDw1j5mu.js +54 -0
  10. package/dist/{IconTooltip-Cus0fvK0.js → IconTooltip-DSjasZIt.js} +1 -1
  11. package/dist/MetricBadge-BpC0R_Ec.js +79 -0
  12. package/dist/{Notification-DLMhblXR.js → Notification-DKjKsQq8.js} +10 -10
  13. package/dist/{NumberFieldContent-BbLOh8RU.js → NumberFieldContent-1VtwDSgf.js} +3 -3
  14. package/dist/PopoverContent-BTorlp--.js +127 -0
  15. package/dist/{Progress-iEuD9pxG.js → Progress-hAT4gqGH.js} +97 -77
  16. package/dist/{ScrollingText-BPP84wKo.js → ScrollingText-CUVFTWk2.js} +2 -2
  17. package/dist/{SelectScrollDownButton-T32cVFeM.js → SelectScrollDownButton-C1jb3b3K.js} +24 -8
  18. package/dist/{Switch-Ch-k3Rv-.js → Switch-Dr--uLGH.js} +2 -2
  19. package/dist/{Toaster-1rYWrmAm.js → Toaster-Bm_HQSpc.js} +55 -52
  20. package/dist/{ToggleGroupItem-COu_4IW4.js → ToggleGroupItem-Dzk9hWsF.js} +18 -22
  21. package/dist/animated-digit.js +3 -3
  22. package/dist/api/index.d.ts +10 -4
  23. package/dist/api.js +1 -1
  24. package/dist/aurora.js +113 -98
  25. package/dist/{badge-CaoFJzRb.js → badge-UILT_3pZ.js} +1 -1
  26. package/dist/badge.js +1 -1
  27. package/dist/{button-DN39cGqL.js → button-BNDWhAZb.js} +12 -12
  28. package/dist/button.js +1 -1
  29. package/dist/card.js +1 -1
  30. package/dist/carousel.d.ts +1 -1
  31. package/dist/carousel.js +101 -145
  32. package/dist/{check-BBKKKSTf.js → check-njhk-vfu.js} +1 -1
  33. package/dist/{chevron-down-BSkTP2aL.js → chevron-down-DKkxb4VV.js} +1 -1
  34. package/dist/{chevron-right-sDM0Yvrf.js → chevron-right-CPXbqQQz.js} +1 -1
  35. package/dist/{chevron-up-CCOD_FTz.js → chevron-up-n_24SqI-.js} +1 -1
  36. package/dist/coalesceMetric-5qIeZnTx.js +13 -0
  37. package/dist/collapsible.js +1 -1
  38. package/dist/{color-C5ls_QF7.js → color-DweYl7pE.js} +9 -7
  39. package/dist/color-swatch.d.ts +1 -0
  40. package/dist/color-swatch.js +47 -0
  41. package/dist/color.js +1 -1
  42. package/dist/command.js +1 -1
  43. package/dist/components/custom/animated-digit/AnimatedDigit.vue.d.ts +8 -0
  44. package/dist/components/custom/aurora/constants/presets.d.ts +16 -45
  45. package/dist/components/custom/aurora/constants/renderMode.d.ts +2 -0
  46. package/dist/components/custom/aurora/constants/shaders/mediums.glsl.d.ts +1 -1
  47. package/dist/components/custom/aurora/constants/shaders/vangogh-medium.glsl.d.ts +1 -0
  48. package/dist/components/custom/color-swatch/ColorSwatch.vue.d.ts +22 -0
  49. package/dist/components/custom/color-swatch/index.d.ts +1 -0
  50. package/dist/components/custom/configurator/Configurator.vue.d.ts +19 -8
  51. package/dist/components/custom/configurator/ConfiguratorRow.vue.d.ts +16 -0
  52. package/dist/components/custom/constellation/Constellation.vue.d.ts +23 -143
  53. package/dist/components/custom/constellation/composables/createConstellationField.d.ts +41 -0
  54. package/dist/components/custom/constellation/composables/useConstellation.d.ts +26 -0
  55. package/dist/components/custom/constellation/composables/useConstellationPointer.d.ts +35 -0
  56. package/dist/components/custom/constellation/constants.d.ts +61 -0
  57. package/dist/components/custom/constellation/constellationDraw.d.ts +30 -0
  58. package/dist/components/custom/constellation/constellationField.d.ts +3 -403
  59. package/dist/components/custom/constellation/constellationInteraction.d.ts +132 -0
  60. package/dist/components/custom/constellation/constellationTypes.d.ts +369 -0
  61. package/dist/components/custom/constellation/index.d.ts +5 -2
  62. package/dist/components/custom/controls/DarkModeToggle.vue.d.ts +11 -0
  63. package/dist/components/custom/dock/DockRail.vue.d.ts +89 -0
  64. package/dist/components/custom/dock/DockSection.vue.d.ts +69 -0
  65. package/dist/components/custom/dock/DockSeparator.vue.d.ts +49 -1
  66. package/dist/components/custom/dock/DockTabButton.vue.d.ts +5 -6
  67. package/dist/components/custom/dock/GlassDock.vue.d.ts +5 -118
  68. package/dist/components/custom/dock/composables/dockMorphContext.d.ts +36 -0
  69. package/dist/components/custom/dock/composables/index.d.ts +1 -0
  70. package/dist/components/custom/dock/composables/useDockClickIntegrity.d.ts +23 -0
  71. package/dist/components/custom/dock/composables/useDockMorphWindow.d.ts +15 -0
  72. package/dist/components/custom/dock/composables/useDockOrientationMorph.d.ts +44 -0
  73. package/dist/components/custom/dock/composables/useDockShellProps.d.ts +165 -0
  74. package/dist/components/custom/dock/composables/useLayerTransition.d.ts +44 -0
  75. package/dist/components/custom/dock/constants.d.ts +83 -0
  76. package/dist/components/custom/dock/index.d.ts +5 -0
  77. package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +15 -37
  78. package/dist/components/custom/fading-scroll/FadingScroll.vue.d.ts +25 -0
  79. package/dist/components/custom/fading-scroll/composables/useFadingScroll.d.ts +31 -0
  80. package/dist/components/custom/fading-scroll/constants.d.ts +19 -0
  81. package/dist/components/custom/fading-scroll/index.d.ts +2 -0
  82. package/dist/components/custom/fourier-field/FourierField.vue.d.ts +7 -0
  83. package/dist/components/custom/fourier-field/index.d.ts +1 -1
  84. package/dist/components/custom/fourier-field/math.d.ts +34 -0
  85. package/dist/components/custom/fourier-field/presets.d.ts +54 -0
  86. package/dist/components/custom/glass-panel/GlassPanel.vue.d.ts +8 -0
  87. package/dist/components/custom/goo-blob/composables/buildMetaballProgram.d.ts +18 -0
  88. package/dist/components/custom/goo-blob/composables/uploadBlobUniforms.d.ts +41 -0
  89. package/dist/components/custom/goo-blob/composables/useBlobPointer.d.ts +4 -3
  90. package/dist/components/custom/goo-blob/composables/useMetaballRenderer.d.ts +21 -8
  91. package/dist/components/custom/goo-blob/constants.d.ts +57 -0
  92. package/dist/components/custom/goo-blob/shaders/metaball-uniforms.glsl.d.ts +1 -0
  93. package/dist/components/custom/handmark/brush.d.ts +33 -6
  94. package/dist/components/custom/handmark/{useHandMark.d.ts → composables/useHandMark.d.ts} +6 -4
  95. package/dist/components/custom/handmark/constants.d.ts +39 -0
  96. package/dist/components/custom/handmark/geometry.d.ts +14 -12
  97. package/dist/components/custom/handmark/index.d.ts +8 -2
  98. package/dist/components/custom/handmark/types.d.ts +9 -0
  99. package/dist/components/custom/icon-chip/IconChip.vue.d.ts +4 -0
  100. package/dist/components/custom/icon-chip/index.d.ts +2 -0
  101. package/dist/components/custom/icon-chip/types.d.ts +72 -0
  102. package/dist/components/custom/instrument-chassis/InstrumentChassis.vue.d.ts +17 -4
  103. package/dist/components/custom/labeled-field/LabeledField.vue.d.ts +37 -0
  104. package/dist/components/custom/labeled-field/LabeledSelect.vue.d.ts +6 -0
  105. package/dist/components/custom/labeled-field/LabeledSlider.vue.d.ts +6 -0
  106. package/dist/components/custom/labeled-field/LabeledSwitch.vue.d.ts +6 -0
  107. package/dist/components/custom/metric-badge/MetricBadge.vue.d.ts +11 -18
  108. package/dist/components/custom/metric-badge/index.d.ts +1 -0
  109. package/dist/components/custom/metric-cell/MetricCell.vue.d.ts +15 -4
  110. package/dist/components/custom/metric-stack/MetricRow.vue.d.ts +6 -4
  111. package/dist/components/custom/pager-dots/PagerDots.vue.d.ts +39 -0
  112. package/dist/components/custom/pager-dots/index.d.ts +2 -0
  113. package/dist/components/custom/tabs/SegmentedTabs.vue.d.ts +20 -25
  114. package/dist/components/custom/tabs/composables/useTabIndicator.d.ts +30 -21
  115. package/dist/components/custom/tabs/constants.d.ts +18 -0
  116. package/dist/components/custom/tabs/index.d.ts +1 -1
  117. package/dist/components/custom/watercolor-dot/WatercolorDot.vue.d.ts +14 -0
  118. package/dist/components/ui/_shared/index.d.ts +2 -0
  119. package/dist/components/ui/_shared/menuItemVariants.d.ts +19 -0
  120. package/dist/components/ui/_shared/useSurfaceAxis.d.ts +41 -0
  121. package/dist/components/ui/card/Card.vue.d.ts +16 -4
  122. package/dist/components/ui/carousel/index.d.ts +0 -1
  123. package/dist/components/ui/command/Command.vue.d.ts +3 -0
  124. package/dist/components/ui/dialog/DialogContent.vue.d.ts +8 -3
  125. package/dist/components/ui/drawer/Drawer.vue.d.ts +1 -0
  126. package/dist/components/ui/drawer/DrawerContent.vue.d.ts +5 -0
  127. package/dist/components/ui/dropdown-menu/DropdownMenuSubContent.vue.d.ts +2 -2
  128. package/dist/components/ui/index.d.ts +0 -1
  129. package/dist/components/ui/metric-pill/MetricPill.vue.d.ts +6 -3
  130. package/dist/components/ui/popover/PopoverContent.vue.d.ts +3 -0
  131. package/dist/components/ui/progress/ProgressSectioned.vue.d.ts +14 -3
  132. package/dist/components/ui/select/SelectTrigger.vue.d.ts +27 -4
  133. package/dist/components/ui/sheet/SheetContent.vue.d.ts +6 -0
  134. package/dist/components/ui/skeleton/Skeleton.vue.d.ts +3 -0
  135. package/dist/components/ui/slider/index.d.ts +22 -19
  136. package/dist/components/ui/tabs/TabsIndicator.vue.d.ts +4 -1
  137. package/dist/components/ui/toast/use-toast.d.ts +2 -2
  138. package/dist/components/ui/toggle/Toggle.vue.d.ts +1 -1
  139. package/dist/components/ui/toggle/index.d.ts +1 -1
  140. package/dist/components/ui/toggle-group/ToggleGroup.vue.d.ts +1 -7
  141. package/dist/components/ui/toggle-group/ToggleGroupItem.vue.d.ts +1 -3
  142. package/dist/components/ui/toggle-group/toggleGroupContext.d.ts +0 -13
  143. package/dist/composables/color/index.d.ts +12 -0
  144. package/dist/composables/dark/useGlobalDark.d.ts +14 -12
  145. package/dist/composables/glass/index.d.ts +0 -1
  146. package/dist/composables/glass/useGlassBackdropLuminance.d.ts +59 -0
  147. package/dist/composables/glass/useSpecularTracking.d.ts +12 -3
  148. package/dist/composables/motion/core/index.d.ts +1 -1
  149. package/dist/composables/motion/curves.d.ts +48 -0
  150. package/dist/composables/motion/index.d.ts +2 -0
  151. package/dist/composables/motion/springPresets.d.ts +33 -0
  152. package/dist/composables/motion/suite.d.ts +2 -0
  153. package/dist/composables/motion/useLiquidFlex.d.ts +85 -0
  154. package/dist/composables/motion/useSpringMount.d.ts +1 -1
  155. package/dist/composables/motion/useViewTransition.d.ts +36 -1
  156. package/dist/configurator.js +1 -1
  157. package/dist/confirm-dialog.js +3 -3
  158. package/dist/constellation.js +373 -261
  159. package/dist/context-menu.js +2 -2
  160. package/dist/controls.js +48 -14
  161. package/dist/dark.js +1 -1
  162. package/dist/data-table.js +1 -1
  163. package/dist/dialog.js +2 -2
  164. package/dist/dock.js +901 -372
  165. package/dist/dockContext-Bu1Avy-a.js +17 -0
  166. package/dist/dom.js +5 -5
  167. package/dist/{dropdown-menu-D77jX6Df.js → dropdown-menu-BJ7E9js_.js} +11 -8
  168. package/dist/dropdown-menu.js +1 -1
  169. package/dist/expandable-container.js +44 -81
  170. package/dist/fading-scroll.d.ts +1 -0
  171. package/dist/fading-scroll.js +2 -0
  172. package/dist/forms.js +5 -5
  173. package/dist/fourier-field.js +140 -104
  174. package/dist/fourier-math.js +2 -2
  175. package/dist/glass-panel.js +90 -21
  176. package/dist/glass-ui.css +1 -1
  177. package/dist/glass-ui.js +230 -236
  178. package/dist/goo-blob.js +264 -228
  179. package/dist/handmark.js +203 -159
  180. package/dist/header-ribbon.js +1 -1
  181. package/dist/hover-card.js +1 -1
  182. package/dist/hover-popover.js +1 -1
  183. package/dist/icon-chip.d.ts +1 -0
  184. package/dist/icon-chip.js +2 -0
  185. package/dist/icon-tooltip.js +1 -1
  186. package/dist/index.d.ts +3 -5
  187. package/dist/instrument-chassis.js +1 -1
  188. package/dist/keyboard.js +1 -1
  189. package/dist/label.js +1 -1
  190. package/dist/labeled-field.js +28 -18
  191. package/dist/{math-DTpRVC0e.js → math-DeuJwLFx.js} +26 -2
  192. package/dist/{menuItemVariants-CCoBNkU5.js → menuItemVariants-DWRQXBxJ.js} +10 -4
  193. package/dist/metric-badge.js +1 -1
  194. package/dist/metric-cell.js +29 -22
  195. package/dist/metric-stack.js +35 -34
  196. package/dist/{minimize-2-lcXOuc6V.js → minimize-2-BV31Ob_h.js} +1 -1
  197. package/dist/motion-core.js +32 -136
  198. package/dist/motion-curves.d.ts +1 -0
  199. package/dist/motion-curves.js +130 -0
  200. package/dist/motion.js +38 -37
  201. package/dist/notification.js +1 -1
  202. package/dist/number-field.js +1 -1
  203. package/dist/pager-dots.d.ts +1 -0
  204. package/dist/pager-dots.js +91 -0
  205. package/dist/paper-backdrop.js +1 -1
  206. package/dist/popover.js +1 -1
  207. package/dist/progress.js +1 -1
  208. package/dist/pulse.js +1 -1
  209. package/dist/reactive.js +2 -2
  210. package/dist/scrolling-text.js +1 -1
  211. package/dist/{search-nbkvr2dC.js → search-BSGrf2Sk.js} +1 -1
  212. package/dist/search.js +10 -10
  213. package/dist/select.js +3 -3
  214. package/dist/separator.js +1 -1
  215. package/dist/sheet-CquRYOAw.js +218 -0
  216. package/dist/sheet.js +1 -1
  217. package/dist/{slider-ClgpP7EB.js → slider-DQ95MET2.js} +8 -8
  218. package/dist/slider.js +1 -1
  219. package/dist/sortable-list.js +3 -3
  220. package/dist/springPresets-WXaLbu8u.js +40 -0
  221. package/dist/stacked-icons.js +6 -6
  222. package/dist/styles/animations.css +25 -125
  223. package/dist/styles/cards.css +55 -0
  224. package/dist/styles/components.css +4 -1
  225. package/dist/styles/configurator.css +77 -0
  226. package/dist/styles/dock/density.css +19 -0
  227. package/dist/styles/dock/layer-group.css +83 -25
  228. package/dist/styles/dock/layers.css +23 -1
  229. package/dist/styles/dock/morph-bridge.css +123 -0
  230. package/dist/styles/dock/morph.css +175 -45
  231. package/dist/styles/dock/overflow.css +66 -1
  232. package/dist/styles/dock/rail-extend.css +397 -0
  233. package/dist/styles/dock/section.css +59 -0
  234. package/dist/styles/dock/shell.css +97 -110
  235. package/dist/styles/dock-controls/dark-mode-toggle.css +109 -0
  236. package/dist/styles/dock-controls/icon-button.css +143 -0
  237. package/dist/styles/dock-controls/tab-button.css +143 -0
  238. package/dist/styles/dock-controls/touch-floor.css +94 -0
  239. package/dist/styles/dock-controls/triggers.css +135 -0
  240. package/dist/styles/dock-controls.css +30 -595
  241. package/dist/styles/dock.css +8 -3
  242. package/dist/styles/drawer.css +48 -0
  243. package/dist/styles/feedback-tone.css +104 -0
  244. package/dist/styles/floating-panel.css +17 -0
  245. package/dist/styles/glass/a11y-fallback.css +245 -0
  246. package/dist/styles/glass/ladder.css +383 -0
  247. package/dist/styles/glass/material.css +238 -0
  248. package/dist/styles/glass/progress-rail.css +78 -0
  249. package/dist/styles/glass/squircle.css +66 -0
  250. package/dist/styles/glass/surface-axis.css +113 -0
  251. package/dist/styles/glass/surfaces.css +382 -0
  252. package/dist/styles/glass-refract.css +2 -0
  253. package/dist/styles/glass.css +34 -1188
  254. package/dist/styles/hover-popover.css +2 -0
  255. package/dist/styles/icon-chip.css +149 -0
  256. package/dist/styles/index.css +94 -18
  257. package/dist/styles/instrument-chassis.css +46 -0
  258. package/dist/styles/menu.css +127 -0
  259. package/dist/styles/paper.css +2 -68
  260. package/dist/styles/segmented-tabs.css +346 -0
  261. package/dist/styles/select.css +50 -0
  262. package/dist/styles/theme/bridges.css +347 -0
  263. package/dist/styles/theme/dark.css +7 -0
  264. package/dist/styles/theme/literals.css +94 -0
  265. package/dist/styles/theme/radius.css +95 -0
  266. package/dist/styles/theme.css +26 -529
  267. package/dist/styles/tokens/color-radius.css +287 -0
  268. package/dist/styles/tokens/dark-arm.css +308 -0
  269. package/dist/styles/tokens/glass.css +500 -0
  270. package/dist/styles/tokens/light-dark.css +187 -0
  271. package/dist/styles/tokens/offsets-sizing.css +562 -0
  272. package/dist/styles/tokens/property-regs.css +162 -0
  273. package/dist/styles/tokens/scale-paper.css +409 -0
  274. package/dist/styles/tokens/scheme-motion.css +352 -0
  275. package/dist/styles/tokens/shadow.css +166 -0
  276. package/dist/styles/tokens.css +22 -2360
  277. package/dist/styles/transitions.css +7 -7
  278. package/dist/styles/typography/scale.css +153 -0
  279. package/dist/styles/typography/semantic.css +220 -0
  280. package/dist/styles/typography/utilities.css +159 -0
  281. package/dist/styles/typography.css +23 -453
  282. package/dist/styles/utilities/a11y-overrides.css +169 -0
  283. package/dist/styles/utilities/animate.css +26 -0
  284. package/dist/styles/utilities/base.css +541 -0
  285. package/dist/styles/utilities/btn.css +218 -0
  286. package/dist/styles/utilities/components.css +317 -0
  287. package/dist/styles/utilities.css +19 -1318
  288. package/dist/styles/view-transition.css +4 -52
  289. package/dist/switch.js +1 -1
  290. package/dist/tabs.js +161 -181
  291. package/dist/timeline.js +2 -2
  292. package/dist/toast.js +1 -1
  293. package/dist/toggle-chip.js +3 -1
  294. package/dist/toggle-group.js +1 -1
  295. package/dist/tooltip.js +1 -1
  296. package/dist/typewriter.js +1 -1
  297. package/dist/{useAnimatedNumber-Bcpy5Etf.js → useAnimatedNumber-C_3wZLx4.js} +1 -1
  298. package/dist/useConfiguratorState-kiIlun8I.js +303 -0
  299. package/dist/useLiquidFlex-C12hXwOZ.js +30 -0
  300. package/dist/useRAFLoop-CdwJ7284.js +109 -0
  301. package/dist/{useScrollProgress-CffFGLa5.js → useScrollProgress-D7bYU2RK.js} +1 -1
  302. package/dist/useSpecularTracking-Bo5su68i.js +32 -0
  303. package/dist/useSpringMount-CvopqiFr.js +108 -0
  304. package/dist/useSurfaceAxis-CMnF2zHb.js +7 -0
  305. package/dist/{useTouchGate-WFyJYsth.js → useTouchGate-28Tk2-t2.js} +1 -1
  306. package/dist/useViewTransition-COsPjQVZ.js +47 -0
  307. package/dist/utils/coalesceMetric.d.ts +29 -0
  308. package/dist/utils/index.d.ts +1 -0
  309. package/dist/vReveal-D9k0jADx.js +10 -0
  310. package/dist/watercolor-dot.js +22 -13
  311. package/dist/{x-Dfsegz9Y.js → x-BUwTKe50.js} +1 -1
  312. package/package.json +134 -50
  313. package/src/styles/animations.css +25 -125
  314. package/src/styles/cards.css +53 -0
  315. package/src/styles/configurator.css +77 -0
  316. package/src/styles/dock/density.css +19 -0
  317. package/src/styles/dock/layer-group.css +83 -25
  318. package/src/styles/dock/layers.css +23 -1
  319. package/src/styles/dock/morph-bridge.css +123 -0
  320. package/src/styles/dock/morph.css +175 -45
  321. package/src/styles/dock/overflow.css +66 -1
  322. package/src/styles/dock/rail-extend.css +397 -0
  323. package/src/styles/dock/section.css +59 -0
  324. package/src/styles/dock/shell.css +97 -110
  325. package/src/styles/dock-controls/dark-mode-toggle.css +109 -0
  326. package/src/styles/dock-controls/icon-button.css +143 -0
  327. package/src/styles/dock-controls/tab-button.css +143 -0
  328. package/src/styles/dock-controls/touch-floor.css +94 -0
  329. package/src/styles/dock-controls/triggers.css +135 -0
  330. package/src/styles/dock-controls.css +30 -595
  331. package/src/styles/dock.css +8 -3
  332. package/src/styles/drawer.css +42 -0
  333. package/src/styles/feedback-tone.css +104 -0
  334. package/src/styles/floating-panel.css +15 -0
  335. package/src/styles/glass/a11y-fallback.css +245 -0
  336. package/src/styles/glass/ladder.css +383 -0
  337. package/src/styles/glass/material.css +238 -0
  338. package/src/styles/glass/progress-rail.css +78 -0
  339. package/src/styles/glass/squircle.css +66 -0
  340. package/src/styles/glass/surface-axis.css +113 -0
  341. package/src/styles/glass/surfaces.css +382 -0
  342. package/src/styles/glass.css +34 -1188
  343. package/src/styles/icon-chip.css +149 -0
  344. package/src/styles/index.css +93 -17
  345. package/src/styles/instrument-chassis.css +42 -0
  346. package/src/styles/menu.css +127 -0
  347. package/src/styles/paper.css +2 -68
  348. package/src/styles/segmented-tabs.css +340 -0
  349. package/src/styles/select.css +50 -0
  350. package/src/styles/theme/bridges.css +347 -0
  351. package/src/styles/theme/dark.css +7 -0
  352. package/src/styles/theme/literals.css +94 -0
  353. package/src/styles/theme/radius.css +95 -0
  354. package/src/styles/theme.css +26 -529
  355. package/src/styles/tokens/color-radius.css +287 -0
  356. package/src/styles/tokens/dark-arm.css +308 -0
  357. package/src/styles/tokens/glass.css +500 -0
  358. package/src/styles/tokens/light-dark.css +187 -0
  359. package/src/styles/tokens/offsets-sizing.css +562 -0
  360. package/src/styles/tokens/property-regs.css +162 -0
  361. package/src/styles/tokens/scale-paper.css +409 -0
  362. package/src/styles/tokens/scheme-motion.css +352 -0
  363. package/src/styles/tokens/shadow.css +166 -0
  364. package/src/styles/tokens.css +22 -2360
  365. package/src/styles/transitions.css +7 -7
  366. package/src/styles/typography/scale.css +153 -0
  367. package/src/styles/typography/semantic.css +220 -0
  368. package/src/styles/typography/utilities.css +159 -0
  369. package/src/styles/typography.css +23 -453
  370. package/src/styles/utilities/a11y-overrides.css +169 -0
  371. package/src/styles/utilities/animate.css +26 -0
  372. package/src/styles/utilities/base.css +541 -0
  373. package/src/styles/utilities/btn.css +218 -0
  374. package/src/styles/utilities/components.css +317 -0
  375. package/src/styles/utilities.css +19 -1318
  376. package/src/styles/view-transition.css +4 -52
  377. package/dist/CardAction-DuArVky-.js +0 -157
  378. package/dist/DeckProgress-Dmk4_AKN.js +0 -23
  379. package/dist/DialogContent-BRkT1cjP.js +0 -100
  380. package/dist/InstrumentRail-CUJ05YVG.js +0 -44
  381. package/dist/MetricBadge-BZVWIxNy.js +0 -80
  382. package/dist/PopoverContent-BId6ggf_.js +0 -121
  383. package/dist/TabsList-B8CVOQPC.js +0 -101
  384. package/dist/components/custom/deck-progress/DeckProgress.vue.d.ts +0 -27
  385. package/dist/components/custom/deck-progress/index.d.ts +0 -2
  386. package/dist/components/custom/dialog-native/GlassDialogNative.vue.d.ts +0 -57
  387. package/dist/components/custom/dialog-native/index.d.ts +0 -1
  388. package/dist/components/custom/instrument-rail/InstrumentRail.vue.d.ts +0 -91
  389. package/dist/components/custom/instrument-rail/index.d.ts +0 -2
  390. package/dist/components/ui/carousel/CarouselDots.vue.d.ts +0 -4
  391. package/dist/composables/motion/useRouteTransition.d.ts +0 -42
  392. package/dist/deck-progress.d.ts +0 -1
  393. package/dist/deck-progress.js +0 -2
  394. package/dist/dockContext-BKeIMmNk.js +0 -9
  395. package/dist/instrument-rail.d.ts +0 -1
  396. package/dist/instrument-rail.js +0 -2
  397. package/dist/sheet-VZEtNFvO.js +0 -214
  398. package/dist/styles/instrument-rail.css +0 -127
  399. package/dist/useConfiguratorState-DxAqksK6.js +0 -287
  400. package/dist/useGlassRenderer-D7YGOYiM.js +0 -69
  401. package/dist/useSpecularTracking-BVRZsRHA.js +0 -26
  402. package/dist/useSpringMount-BJSHcLl3.js +0 -113
  403. package/dist/useViewTransition-DaN5Zrox.js +0 -21
  404. package/dist/vReveal-zUIQk-rJ.js +0 -53
  405. package/src/styles/instrument-rail.css +0 -127
  406. /package/dist/{CollapsibleContent-CP9qF1v4.js → CollapsibleContent-C_s6fG7r.js} +0 -0
  407. /package/dist/{ContextMenuContent-DDa0v27s.js → ContextMenuContent-ON3x7cuk.js} +0 -0
  408. /package/dist/{HoverCardContent-B6CcQ8He.js → HoverCardContent-DkMaQzH5.js} +0 -0
  409. /package/dist/{Input-xuDwALQR.js → Input-DVG_J0ne.js} +0 -0
  410. /package/dist/{InstrumentChassis-C2f6cBaQ.js → InstrumentChassis-UUJX0-mW.js} +0 -0
  411. /package/dist/{Label-zRfbQdCn.js → Label-Ck9SWEKM.js} +0 -0
  412. /package/dist/{ModalOverlay-B1GkAjNb.js → ModalOverlay-CkPRRgl_.js} +0 -0
  413. /package/dist/{PaperBackdrop-CqwjnfLv.js → PaperBackdrop-nBKe0vkB.js} +0 -0
  414. /package/dist/{SelectGroup-BFiod7X2.js → SelectGroup-Dcczq44n.js} +0 -0
  415. /package/dist/{SelectSeparator-C4Ql0gzV.js → SelectSeparator-DK2y1Bun.js} +0 -0
  416. /package/dist/{Separator-D7sD7RKj.js → Separator-BArl4OaB.js} +0 -0
  417. /package/dist/{TooltipProvider-CmZzCuaG.js → TooltipProvider-B3MkB_8P.js} +0 -0
  418. /package/dist/{_plugin-vue_export-helper-ok8pgSl5.js → _plugin-vue_export-helper-CBt_VvXa.js} +0 -0
  419. /package/dist/{compile-BOXjLUxu.js → compile-EXXzEr1q.js} +0 -0
  420. /package/dist/{constants-yKeKnE84.js → constants-BPOqYJAm.js} +0 -0
  421. /package/dist/{createContext-B44Sah_H.js → createContext-B2RaZ-b8.js} +0 -0
  422. /package/dist/{createLucideIcon-B6uNAU9G.js → createLucideIcon-DydS2qgk.js} +0 -0
  423. /package/dist/{presets-BP_ALM0m.js → presets-BW2b-fr1.js} +0 -0
  424. /package/dist/{prng-D27-B3tK.js → prng-Cg22zv8g.js} +0 -0
  425. /package/dist/{supportsCssTimeline-C5oe0lnD.js → supportsCssTimeline-BWenxvHU.js} +0 -0
  426. /package/dist/{useGlobalDark-CAhOXNLO.js → useGlobalDark-C28t0VWJ.js} +0 -0
  427. /package/dist/{useIntersectionPause-Cck5Uxk8.js → useIntersectionPause-Bj4sPkMh.js} +0 -0
  428. /package/dist/{useInterval-Dsmqwi03.js → useInterval-CNdua40W.js} +0 -0
  429. /package/dist/{useKeyboardShortcuts-CyIYrndH.js → useKeyboardShortcuts-BXWXOZ-9.js} +0 -0
  430. /package/dist/{useResizeObserver-CWCbk5Px.js → useResizeObserver-V6nq5gJb.js} +0 -0
  431. /package/dist/{useResolveTokenColor-r9pnNjqK.js → useResolveTokenColor-NUG2zYAW.js} +0 -0
  432. /package/dist/{useSortable-C8ReQ50P.js → useSortable-BVqlJRBR.js} +0 -0
  433. /package/dist/{useTextHighlight-CWEi25hf.js → useTextHighlight-NmBM5V_4.js} +0 -0
  434. /package/dist/{useTimer-3xqf_54b.js → useTimer-B_PAasDL.js} +0 -0
  435. /package/dist/{useUserInvalidAria-DoJKMZ3s.js → useUserInvalidAria-CDfJuakL.js} +0 -0
  436. /package/dist/{useViewportReady-RIr5Wgkh.js → useViewportReady-CvBcCYDf.js} +0 -0
@@ -0,0 +1,218 @@
1
+ /* utilities/btn.css
2
+ The interactive/button @utility cluster — scale-on-hover, twin-line-divider, transition-control/collapse, sheet-animate, table-cell/head density, rainbow-vivid/pastel, the text-highlight paint, and btn-interactive. (The btn-audacious/btn-audacious-gold disco recipes + the btn-gold-bg-sweep keyframes were RETIRED at BA.W-GLASS-CAL.)
3
+ Carved from the utilities.css cascade root; @import-ed by utilities.css in
4
+ cascade order. See docs/precepts/design-idioms.md §cohesion-aware partials. */
5
+ /* ── Hover scale (O.W6 Lane C) ──
6
+ Canonical hover-transform utility consuming the `--scale-hover` token
7
+ (tokens.css §11). Promoted from consumer-side `hover:scale-105`
8
+ recipe — 13 sites in keyframes.js demo + 9 sites in words/frontend
9
+ per O11/d L3 + O11/a I4. Single-token recipe (no ladder); the dual
10
+ `--scale-press-{xs..lg}` ladder discussion is the press-axis cohort
11
+ (O-N-7), not hover. Consumers reach the utility via
12
+ `class="scale-on-hover"`; transition + easing bind to the canonical
13
+ `--duration-fast` + `--ease-standard` tokens. */
14
+ @utility scale-on-hover {
15
+ /* Individual-transform identity base (AQ.W3 §W3.2). Transition the `scale`
16
+ longhand (not `transform`) so the migrated hover scale animates.
17
+ AX.W52 §6 doctrine — the `scale` transform leg rides `--spring-smooth`
18
+ (the settle register), NOT the bezier `--ease-standard` (a transform on a
19
+ bezier reads mechanical; springs read alive on transform). */
20
+ scale: 1;
21
+ transition: scale var(--spring-smooth-duration) var(--spring-smooth);
22
+
23
+ &:hover {
24
+ scale: var(--scale-hover);
25
+ }
26
+ }
27
+
28
+ /* ── Twin-line divider — the chassis catch-light / under-shadow groove ───────
29
+ AW.W15 DRY extraction. The twin-line idiom (a 1px white catch-light over a
30
+ 1px black under-shadow reading as one engraved hairline groove) is the
31
+ chassis-divider signature. This utility is the SINGLE source of that
32
+ α pair: it publishes `--twin-line-catch` (the top catch-light) and
33
+ `--twin-line-shadow` (the bottom under-shadow) as cascade tokens, dark-adaptive
34
+ by construction (the `.dark &` arm re-resolves them). `instrument-chassis.css`
35
+ (`.bezel-line.top`/`.bottom`) `@apply`s it and reads the tokens; a retint
36
+ touches one rule. (The prior `instrument-rail.css` co-consumer retired at
37
+ AZ.W-PRUNE2 with its component — the α pair stays canonicalised here.) */
38
+ @utility twin-line-divider {
39
+ --twin-line-catch: rgb(255 255 255 / 0.10);
40
+ --twin-line-shadow: rgb(0 0 0 / 0.12);
41
+
42
+ :where(.dark) & {
43
+ --twin-line-catch: rgb(255 255 255 / 0.06);
44
+ --twin-line-shadow: rgb(0 0 0 / 0.18);
45
+ }
46
+ }
47
+
48
+ /* ── Control transition recipe (AU.W8b.4) ───────────────────────────────
49
+ Shared compound transition for interactive controls that animate their
50
+ surface (background-color/color/box-shadow/border-color) on the four-state
51
+ contract. Replaces the per-site
52
+ `transition-[background-color,color,box-shadow,border-color] duration-[var(--duration-fast)] ease-[var(--ease-standard)]`
53
+ arbitrary wraps at ≥2 sites (TabsTrigger, SelectTrigger, Toggle `card`
54
+ variant). Binds the canonical --duration-fast + --ease-standard tokens. */
55
+ @utility transition-control {
56
+ transition-property: background-color, color, box-shadow, border-color;
57
+ transition-duration: var(--duration-fast);
58
+ transition-timing-function: var(--ease-standard);
59
+ }
60
+
61
+ /* ── Collapse transition recipe (AU.W8b.4) ──────────────────────────────
62
+ Shared height+opacity transition for reka-ui collapse surfaces (Accordion
63
+ content, Collapsible content). Replaces the per-site `transition-[height,opacity]`
64
+ wrap at ≥2 sites. The duration/easing rides the data-state
65
+ `animate-accordion-*`/`animate-collapsible-*` keyframes (this only declares
66
+ WHICH properties transition; the keyframes own the timing). */
67
+ @utility transition-collapse {
68
+ transition-property: height, opacity;
69
+ }
70
+
71
+ /* ── Sheet/drawer slide-out animation grammar ──
72
+ Mirror of `.popover-animate` for sheet/drawer panels. Pairs with
73
+ `slide-in-from-{top,right,bottom,left}-N` to compose side-keyed entries.
74
+ The open path uses --duration-panel (slow, deliberate); the close path
75
+ uses --duration-fast so dismiss feels snappy. R5 vocab.γ gap row 6;
76
+ consumed by W2.A sheet/drawer migration. */
77
+ @utility sheet-animate {
78
+ @apply data-[state=open]:animate-in data-[state=closed]:animate-out
79
+ data-[state=open]:fade-in data-[state=closed]:fade-out
80
+ data-[state=open]:duration-[var(--duration-panel)]
81
+ data-[state=closed]:duration-[var(--duration-fast)];
82
+ }
83
+
84
+ /* ── Calm CTA register (BA.W-GLASS-CAL, H2a — the disco retired) ──────────
85
+ The `@utility btn-audacious` + `@utility btn-audacious-gold` recipes + the
86
+ `@keyframes btn-gold-bg-sweep` are RETIRED (clean break, no alias). The user
87
+ removed the "disco effect" wholesale: the sparkle `::after` glyph, the
88
+ disco-grain hover (`--paper-clean-texture` + `--primary`/gold radial), the
89
+ gold-sweep shimmer, and the typed `--ripple-radius` press-ripple are GONE.
90
+
91
+ The `primary-audacious`/`gold-audacious` Button variants (button/index.ts)
92
+ now collapse onto the calm glass-first register — the `glass-wash`/`btn-glass`
93
+ surface + the `--glass-specular` edge catch-light, hover/press on the §6
94
+ doctrine (surface→`--ease-standard`, scale→`--spring-smooth`). `gold-audacious`
95
+ keeps a STATIC warm-gold tint (no animated sweep). The fenced-out GOOD pops
96
+ (`.gold-shimmer` static text gradient, the specular gleam, the press-scale)
97
+ STAY — they were never disco. */
98
+
99
+ /* ── Table density utilities — AN.R0 ─────────────────────────────────────
100
+ `table-cell` and `table-head` replace the former Tailwind `p-4` / `h-12`
101
+ literals in TableCell.vue / TableHead.vue. Both read `--table-density`
102
+ (tokens.css §19) so a single CSS-var assignment on a wrapping element
103
+ scales all row padding + header height simultaneously. Default density=1
104
+ resolves to the identical geometry as the previous Tailwind literals. */
105
+ @utility table-cell {
106
+ padding-inline: var(--table-cell-px, 1rem);
107
+ padding-block: var(--table-cell-py, 1rem);
108
+ }
109
+
110
+ @utility table-head {
111
+ height: var(--table-head-h, 3rem);
112
+ padding-inline: var(--table-head-px, 1rem);
113
+ }
114
+
115
+ /* ── Rainbow gradient backgrounds ───────────────────────────────────────
116
+ `.rainbow-vivid` + `.rainbow-pastel` paint a left-to-right 7-stop spectrum
117
+ from the canonical `--rainbow-*` / `--rainbow-pastel-*` token families
118
+ (tokens.css §14). Consumed by keyframes.js's demo transport chrome —
119
+ `TransportDock.vue` / `RibbonBar.vue` bind `rainbow-vivid` (playing/active)
120
+ vs `rainbow-pastel` (idle) on the play + Apply buttons (re-confirmed live at
121
+ AZ.W-PRUNE2 E4-2). */
122
+ @utility rainbow-vivid {
123
+ background: linear-gradient(
124
+ to right,
125
+ var(--rainbow-red),
126
+ var(--rainbow-orange),
127
+ var(--rainbow-yellow),
128
+ var(--rainbow-green),
129
+ var(--rainbow-blue),
130
+ var(--rainbow-indigo),
131
+ var(--rainbow-violet)
132
+ );
133
+ }
134
+
135
+ @utility rainbow-pastel {
136
+ background: linear-gradient(
137
+ to right,
138
+ var(--rainbow-pastel-red),
139
+ var(--rainbow-pastel-orange),
140
+ var(--rainbow-pastel-yellow),
141
+ var(--rainbow-pastel-green),
142
+ var(--rainbow-pastel-blue),
143
+ var(--rainbow-pastel-indigo),
144
+ var(--rainbow-pastel-violet)
145
+ );
146
+ }
147
+
148
+ /* ── Text-highlight paint (CSS Custom Highlight API) ─────────────────────
149
+ The default `::highlight()` paint for the `useTextHighlight` composable
150
+ (composables/motion; the `/motion-core` subpath, AX.W37). A named `Highlight`
151
+ registered in `CSS.highlights`
152
+ under one of these keys paints its `Range` set without a `<mark>` wrapper.
153
+ Token-bridged: the search mark reads the canonical pastel-yellow rainbow
154
+ token at a soft alpha; the equation/variable mark reads `--primary`. Both
155
+ axes are overridable via the `--text-highlight-*` custom properties. */
156
+ ::highlight(glass-search-mark) {
157
+ background-color: var(
158
+ --text-highlight-search-bg,
159
+ color-mix(in srgb, var(--rainbow-pastel-yellow) 55%, transparent)
160
+ );
161
+ color: var(--text-highlight-search-fg, inherit);
162
+ }
163
+ ::highlight(glass-mark) {
164
+ background-color: var(
165
+ --text-highlight-bg,
166
+ color-mix(in srgb, var(--primary) 18%, transparent)
167
+ );
168
+ color: var(--text-highlight-fg, inherit);
169
+ }
170
+
171
+ /* ── Interactive-button four-state recipe ────────────────────────────────
172
+ `.btn-interactive` carries the canonical "Button-with-spring-hover"
173
+ four-state contract — transition + hover-scale + active-press + disabled-
174
+ opacity + focus-ring fade-in. The Button primitive's variants emit the four
175
+ states except `hover:scale-*`; this is the canonical opt-in that adds the
176
+ spring-hover lift. Consumed by keyframes.js at 7 sites.
177
+
178
+ AX.W52 §6 — the hover lift is the restrained `--scale-hover-btn` (1.05, NOT
179
+ the emphatic 1.08 `--scale-hover`) routed through `--spring-smooth` — the ONE
180
+ button scale register the §6 doctrine records and the gate asserts across
181
+ `.btn-pill`/`.tap-squish`/`.glass-btn`/`btn-interactive`. The surface legs
182
+ stay on the bezier `--ease-standard` (a colour cross-fade reads as a wobble
183
+ on a spring); only the `scale` transform leg springs. */
184
+ @utility btn-interactive {
185
+ /* AQ.W3 §W3.2 identity base */
186
+ scale: 1;
187
+ transition:
188
+ background-color var(--duration-fast) var(--ease-standard),
189
+ color var(--duration-fast) var(--ease-standard),
190
+ scale var(--spring-smooth-duration) var(--spring-smooth),
191
+ opacity var(--duration-fast) var(--ease-standard);
192
+
193
+ &:hover {
194
+ scale: var(--scale-hover-btn);
195
+ }
196
+
197
+ &:active {
198
+ scale: var(--scale-press);
199
+ }
200
+
201
+ &:disabled {
202
+ opacity: var(--opacity-disabled);
203
+ pointer-events: none;
204
+ }
205
+
206
+ &:focus-visible {
207
+ box-shadow: var(--focus-ring-shadow);
208
+ outline: none;
209
+ /* Fade in; base state has no box-shadow transition → instant
210
+ removal. The `scale` leg keeps the `--spring-smooth` register. */
211
+ transition:
212
+ background-color var(--duration-fast) var(--ease-standard),
213
+ color var(--duration-fast) var(--ease-standard),
214
+ scale var(--spring-smooth-duration) var(--spring-smooth),
215
+ opacity var(--duration-fast) var(--ease-standard),
216
+ box-shadow var(--duration-fast) var(--ease-standard);
217
+ }
218
+ }
@@ -0,0 +1,317 @@
1
+ /* utilities/components.css
2
+ The @layer components component half — metric-badge pill + label-bearing variants, the glassmorphic input-bar, hover-lift levels, cartoon shadows, divider utilities.
3
+ Carved from the utilities.css cascade root; @import-ed by utilities.css in
4
+ cascade order. See docs/precepts/design-idioms.md §cohesion-aware partials. */
5
+ @layer components {
6
+ /* ── Metric badge pill — compact glass label for numeric telemetry ── */
7
+ .metric-badge {
8
+ display: inline-flex;
9
+ align-items: center;
10
+ justify-content: center;
11
+ text-align: center;
12
+ /* AQ.W3 §W3.2 identity base */
13
+ scale: 1;
14
+ gap: var(--metric-badge-gap, 0.125rem);
15
+ max-width: var(--metric-badge-max-width, 8rem);
16
+ min-height: var(--metric-badge-min-height, 1.5rem);
17
+ padding:
18
+ var(--metric-badge-padding-block, 0.125rem)
19
+ var(--metric-badge-padding-inline, 0.5rem);
20
+ overflow: hidden;
21
+ flex-shrink: 0;
22
+ line-height: 1;
23
+ /* Canonical 5-tier glass surface: the `quiet` rung paints the badge
24
+ plate at the `--glass-bg-quiet` α (0.50) with `--glass-blur-quiet`.
25
+ Reduced-transparency / no-backdrop-filter fallbacks propagate
26
+ through the lazy custom-property resolution that `glass.css`
27
+ sets up — the badge no longer bypasses the canon.
28
+ (Per audit U.W0.C-c §7.2.) */
29
+ border: 1px solid var(--metric-badge-border, var(--glass-border-quiet));
30
+ border-radius: var(--metric-badge-radius, var(--radius-badge, var(--radius-pill)));
31
+ background: var(--metric-badge-bg, var(--glass-bg-quiet));
32
+ backdrop-filter: var(--metric-badge-blur, var(--glass-blur-quiet));
33
+ box-shadow: var(--metric-badge-shadow, 0 1px 6px color-mix(in srgb, var(--shadow-color) 8%, transparent), var(--glass-highlight));
34
+ transition:
35
+ background var(--duration-fast) var(--ease-standard),
36
+ border-color var(--duration-fast) var(--ease-standard),
37
+ box-shadow var(--duration-fast) var(--ease-standard),
38
+ scale var(--duration-fast) var(--ease-standard);
39
+ }
40
+
41
+ .metric-badge > span {
42
+ line-height: 1;
43
+ /* AW.W26 — `wrap-anywhere` (overflow-wrap: anywhere) on the value slot:
44
+ a long metric value breaks WITHIN the badge rather than being clipped
45
+ by the host `overflow: hidden`. v4.1 `wrap-anywhere` / mwg css §7.
46
+ Scoped to the value span, NOT a universal selector (mwg perf caveat). */
47
+ overflow-wrap: anywhere;
48
+ }
49
+
50
+ .metric-badge:hover {
51
+ /* Hover lifts to the `resting` rung — one step up the canonical
52
+ ladder (audit U.W0.C-c §7.2). */
53
+ border-color: var(--metric-badge-hover-border, var(--glass-border-resting));
54
+ background: var(--metric-badge-hover-bg, var(--glass-bg-resting));
55
+ box-shadow: var(--metric-badge-hover-shadow, 0 2px 10px color-mix(in srgb, var(--shadow-color) 12%, transparent), var(--glass-highlight));
56
+ scale: var(--metric-badge-hover-scale, 1.02);
57
+ }
58
+
59
+ .metric-badge:active {
60
+ scale: var(--metric-badge-press-scale, 0.96);
61
+ }
62
+
63
+ .metric-badge:focus-visible {
64
+ outline: none;
65
+ box-shadow: var(--focus-ring-shadow);
66
+ }
67
+
68
+ /* Phase-finish catch-light — the quieter cousin of --glass-specular.
69
+ Speedtest toggles `data-just-resolved="true"` on a metric pill once
70
+ its phase completes; the badge briefly carries a 1px catch-light
71
+ streak at the top edge. Reads as the pill catching club lighting at
72
+ the moment its result resolves. */
73
+ .metric-badge[data-just-resolved="true"] {
74
+ box-shadow:
75
+ inset 0 1px 0 0 rgb(255 255 255 / 0.18),
76
+ var(--metric-badge-shadow,
77
+ 0 1px 6px color-mix(in srgb, var(--shadow-color) 8%, transparent),
78
+ var(--glass-highlight));
79
+ }
80
+
81
+ /* ── Label-bearing variants ───────────────────────────────────────────
82
+ When the badge carries a `labelPosition`, the prose-style annotation
83
+ slot precedes the amount. Inline keeps the row baseline-aligned;
84
+ stacked breaks to a column with items flush-left. The label slot
85
+ carries its own tracked uppercase rules; the badge's max-width
86
+ relaxes so the wider register fits. */
87
+ .metric-badge--label-inline {
88
+ flex-direction: row;
89
+ align-items: baseline;
90
+ justify-content: flex-start;
91
+ gap: var(--metric-badge-label-gap, 0.375rem);
92
+ max-width: var(--metric-badge-label-max-width, none);
93
+ text-align: left;
94
+ }
95
+
96
+ .metric-badge--label-stacked {
97
+ flex-direction: column;
98
+ align-items: flex-start;
99
+ justify-content: center;
100
+ gap: var(--metric-badge-label-gap-stacked, 0.0625rem);
101
+ max-width: var(--metric-badge-label-max-width, none);
102
+ text-align: left;
103
+ min-height: var(--metric-badge-min-height-stacked, 2.625rem);
104
+ padding-block: var(--metric-badge-padding-block-stacked, 0.375rem);
105
+ }
106
+
107
+ /* T.W2.T2 — stacked variant pairs amount + unit on a single row (row 2)
108
+ below the label (row 1). The `.metric-badge__row` wrapper baseline-
109
+ aligns the value and unit so the quantity reads as one phrase, not as
110
+ three siblings split across three rows (the pre-T behaviour the
111
+ audit B-spec §2.1 flagged). */
112
+ .metric-badge--label-stacked .metric-badge__row {
113
+ display: inline-flex;
114
+ align-items: baseline;
115
+ gap: var(--metric-badge-row-gap-stacked, 0.25rem);
116
+ }
117
+
118
+ /* T.W2.T3 — MetricPill density modifiers. The pill is a thin composition
119
+ over MetricBadge with `labelPosition="stacked"` defaults; the density
120
+ knob adjusts block padding + horizontal padding so the pill reads at
121
+ the right register for its dock host. `spacious` is the default
122
+ (chassis-strip rhythm), `comfortable` keeps the tighter compact
123
+ register for densely-packed dock clusters. The selectors compose with
124
+ `.metric-badge--label-stacked` so the inline ladder remains untouched
125
+ — these are stacked-only refinements. */
126
+ .metric-pill[data-density="spacious"].metric-badge--label-stacked {
127
+ --metric-badge-padding-block-stacked: 0.5rem;
128
+ --metric-badge-padding-inline: 0.75rem;
129
+ }
130
+
131
+ .metric-pill[data-density="comfortable"].metric-badge--label-stacked {
132
+ --metric-badge-padding-block-stacked: 0.25rem;
133
+ --metric-badge-padding-inline: 0.5rem;
134
+ }
135
+
136
+ /* AS.W4 — @container style(--density) companion. A pill nested under a host
137
+ that sets `--density: comfortable | spacious` on a wrapping element picks
138
+ up the matching padding register with no `data-density` markup contract;
139
+ the attribute rules above stay the SOLE fallback (inv 47).
140
+ The inner `.metric-pill.metric-badge--label-stacked` selector (0,2,0) sits
141
+ just BELOW the `.metric-pill[data-density]…` attribute rules (0,3,0) — so a
142
+ pill carrying BOTH the attribute and a `--density` ancestor lands on the
143
+ attribute rule (same tokens, identical paint), while a pill with only the
144
+ ancestor token still resolves the right register (no competing rule sets
145
+ these padding custom props at higher weight in that case).
146
+
147
+ No `@supports` wrapper: unlike the sibling scroll-state recipe (which
148
+ probes `@supports (container-type: scroll-state)` — a probeable
149
+ container-type VALUE), style queries introduce no new `container-type`
150
+ value (every element is a style container by default), so there is no
151
+ clean declaration test for style-query support. This relies on
152
+ `@container style()`'s own graceful degradation: an engine without
153
+ style-query support parses the unknown at-rule as invalid, drops the
154
+ block, and keeps the `[data-density]` attribute base. (The earlier
155
+ `@supports (container-type: inline-size)` wrapper was wrong — it probed
156
+ SIZE-query support, a distinct feature with a distinct support timeline.) */
157
+ @container style(--density: spacious) {
158
+ .metric-pill.metric-badge--label-stacked {
159
+ --metric-badge-padding-block-stacked: 0.5rem;
160
+ --metric-badge-padding-inline: 0.75rem;
161
+ }
162
+ }
163
+ @container style(--density: comfortable) {
164
+ .metric-pill.metric-badge--label-stacked {
165
+ --metric-badge-padding-block-stacked: 0.25rem;
166
+ --metric-badge-padding-inline: 0.5rem;
167
+ }
168
+ }
169
+
170
+ .metric-badge__label {
171
+ letter-spacing: 0.18em;
172
+ line-height: 1;
173
+ }
174
+
175
+ /* Dual-slot default visibility (R2-spec):
176
+ The library renders both `--full` and `--abbr` siblings whenever both
177
+ props are passed. Default identity is the full label; the abbreviation
178
+ sits hidden until consumer container-query CSS flips it. The adjacent-
179
+ sibling selector preserves single-slot back-compat: when a consumer
180
+ passes only `abbreviation` (no `--full` sibling rendered), the abbr
181
+ reads at default visibility. */
182
+ .metric-badge__label--full + .metric-badge__label--abbr {
183
+ display: none;
184
+ }
185
+
186
+ /* sm-tier label tracking — tighter than the md/lg/xl 0.18em rung so the
187
+ compact register reads as a tighter annotation against the smaller
188
+ glyph rise. R2-spec D-Rec-2 (audit-D). */
189
+ .metric-badge[data-size="sm"] .metric-badge__label {
190
+ letter-spacing: 0.1em;
191
+ }
192
+
193
+ /* Q.W3 Lane A — the `.glass-dock[data-density="…"]` density rungs that
194
+ set `--dock-tab-h` + `--dock-label-size` were consolidated into
195
+ `dock.css` (their canonical dock-styles home). They formerly lived
196
+ here and resolved only by the index.css import order (utilities.css
197
+ after dock.css); the cascade-order dependency is now gone. */
198
+
199
+ /* ── Input bar — glassmorphic inline input container ──
200
+ Composes the canonical `floating` glass rung (--glass-bg-floating
201
+ ≈ 80% α, --glass-blur-floating ≈ 24px) — same surface read as the
202
+ prior raw composition but routed through the canonical 5-tier
203
+ ladder so PRT / no-backdrop-filter fallbacks propagate cleanly.
204
+ (Per audit U.W0.C-c §7.2.) */
205
+ .input-bar {
206
+ display: flex;
207
+ align-items: center;
208
+ gap: 0.5rem;
209
+ border-radius: var(--radius-2xl);
210
+ border: 1px solid var(--glass-border-floating);
211
+ background: var(--glass-bg-floating);
212
+ backdrop-filter: var(--glass-blur-floating);
213
+
214
+ padding: 0 0.75rem;
215
+ height: 2.25rem;
216
+ max-width: var(--max-width-input);
217
+ width: 100%;
218
+ transition:
219
+ box-shadow var(--duration-fast) var(--ease-standard),
220
+ border-color var(--duration-fast) var(--ease-standard);
221
+ }
222
+ .input-bar:focus-within {
223
+ box-shadow: var(--focus-ring-shadow);
224
+ border-color: var(--border);
225
+ }
226
+
227
+ .input-bar-field {
228
+ font-family: var(--font-mono, monospace);
229
+ font-size: var(--type-small);
230
+ background: transparent;
231
+ border: none;
232
+ outline: none;
233
+ flex: 1;
234
+ min-width: 0;
235
+ }
236
+ .input-bar-field::placeholder {
237
+ color: color-mix(in srgb, var(--muted-foreground) 50%, transparent);
238
+ }
239
+
240
+ /* ── Hover lift — translate-y + shadow on hover (3 levels) ──
241
+ The shared transition is expressed once over the family; the three
242
+ :hover rules carry the per-level translate + shadow. */
243
+ :where(.hover-lift, .hover-lift-md, .hover-lift-lg) {
244
+ /* Individual-transform identity base (AQ.W3 §W3.2) — `translate: 0` at
245
+ rest mints the stacking context once so the hover lift does not
246
+ flicker it into being. */
247
+ translate: 0;
248
+ transition-property: translate, box-shadow;
249
+ transition-duration: var(--duration-normal);
250
+ transition-timing-function: var(--ease-standard);
251
+ }
252
+ .hover-lift:hover:not(:disabled):not([aria-disabled='true']) {
253
+ translate: 0 var(--lift-sm);
254
+ box-shadow: var(--shadow-md);
255
+ }
256
+ .hover-lift-md:hover:not(:disabled):not([aria-disabled='true']) {
257
+ translate: 0 var(--lift-md);
258
+ box-shadow: var(--shadow-md);
259
+ }
260
+ .hover-lift-lg:hover:not(:disabled):not([aria-disabled='true']) {
261
+ translate: 0 var(--lift-lg);
262
+ box-shadow: var(--shadow-lg);
263
+ }
264
+
265
+ /* ── Cartoon shadows — token-driven box-shadow + bezel border + lift ──
266
+ The box-shadow stack reads from the canonical
267
+ `--shadow-cartoon-{sm,md,lg}` rungs declared at tokens.css:304-312.
268
+ Those rungs use `color-mix(in srgb, var(--shadow-color) N%, transparent)`
269
+ so dark-mode flips the cast through `--shadow-color` automatically.
270
+ The 2px bezel border + translateY are the cartoon-stamp geometry
271
+ atop the canonical depth — kept here so a single class delivers
272
+ the whole cartoon read.
273
+ (Per audit U.W0.C-c §1.3 / Union 1 — collapses the dual-system
274
+ drift onto the token-driven shadow.) */
275
+ :where(.shadow-cartoon-sm, .shadow-cartoon-md, .shadow-cartoon-lg) {
276
+ border: 2px solid var(--border);
277
+ }
278
+ /* Static cartoon-stamp lift (AQ.W3 §W3.2). NOT state-driven, so the
279
+ identity base is not strictly required, but the `translate:` longhand
280
+ keeps the family uniform with the state-driven sites above. */
281
+ .shadow-cartoon-sm {
282
+ box-shadow: var(--shadow-cartoon-sm);
283
+ translate: 0 -1px;
284
+ }
285
+ .shadow-cartoon-md {
286
+ box-shadow: var(--shadow-cartoon-md);
287
+ translate: 0 -1px;
288
+ }
289
+ .shadow-cartoon-lg {
290
+ box-shadow: var(--shadow-cartoon-lg);
291
+ translate: 0 -2px;
292
+ }
293
+
294
+ /* ── Divider utilities ── */
295
+ .divider-h {
296
+ height: 2px;
297
+ background: linear-gradient(
298
+ to right,
299
+ transparent 1%,
300
+ var(--border) 8%,
301
+ var(--border) 92%,
302
+ transparent 99%
303
+ );
304
+ }
305
+
306
+ .divider-h-tapered {
307
+ height: 2px;
308
+ background: linear-gradient(
309
+ to right,
310
+ transparent 3%,
311
+ var(--border) 15%,
312
+ var(--border) 85%,
313
+ transparent 97%
314
+ );
315
+ }
316
+
317
+ }