@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
@@ -2,21 +2,32 @@ import { type Ref, type ComputedRef } from "vue";
2
2
  import type { SegmentedTabOption } from "../SegmentedTabs.vue";
3
3
  /**
4
4
  * Package-private composable for `SegmentedTabs.vue` — owns the JS-measured
5
- * indicator path: the single- and multi-select slider styles, the offset
6
- * measure, the model/options re-measure watchers, and the ResizeObserver
7
- * lifecycle. It ALSO owns the AX.W53 travel-squish: a velocity-driven,
8
- * volume-preserving `--stretch` scalar the active indicator reads so it
9
- * STRETCHES along its travel axis as it glides between tabs and settles to fit
10
- * (the Material 3 ELASTIC / Apple Liquid-Glass register, capped LOW).
5
+ * single-select indicator path: the slider style, the offset measure, the
6
+ * model/options re-measure watchers, and the ResizeObserver lifecycle. It ALSO
7
+ * owns the AX.W53 travel-squish: a velocity-driven, volume-preserving `--stretch`
8
+ * scalar the active indicator reads so it STRETCHES along its travel axis as it
9
+ * glides between tabs and settles to fit (the Material 3 ELASTIC / Apple
10
+ * Liquid-Glass register, capped LOW).
11
11
  *
12
- * The composable is the SOLE writer of the JS slider styles. The measure path
13
- * runs only on the multi-select OR `@supports not (anchor)` branch — on an
14
- * anchor-supporting single-select engine the CSS `anchor-name` owns the slider
15
- * position and that path stays dormant (no RO is constructed, no measure runs).
16
- * The squish is independent of the position path: it is a transient `--stretch`
17
- * write driven on EVERY selection (anchor or JS engine) and reads from
18
- * `--tab-indicator-max-stretch`, so the elastic warp lands on all three
19
- * variants. Honors `prefers-reduced-motion` (no squish under reduce).
12
+ * BA.W-TABS — the engine is AXIS-DERIVED (the `vertical` param): the JS slider
13
+ * writes width/translateX on the inline axis (horizontal) OR height/translateY on
14
+ * the block axis (vertical). It is CENTER-ANCHORED (the BA-VJS-3 / valuejs-fold A-5
15
+ * fix): the indicator is positioned by its CENTER == the active button's center
16
+ * (translate = buttonCenter − indicatorSize/2), so the squish (which scales from
17
+ * `transform-origin: center`) keeps the indicator center pinned to the label
18
+ * center — the prior `translateX(offsetLeft)` left-edge write is GONE.
19
+ *
20
+ * The composable is the SOLE writer of the JS slider style. The measure path runs
21
+ * only on the `@supports not (anchor)` branch — on an anchor-supporting engine the
22
+ * CSS `anchor-name` owns the slider position and that path stays dormant (no RO is
23
+ * constructed, no measure runs). The squish is independent of the position path: it
24
+ * is a transient `--stretch` write driven on EVERY selection (anchor or JS engine)
25
+ * and reads from `--tab-indicator-max-stretch`, and RELEASES AT ARRIVAL (keyed to
26
+ * the calibrated clock, not a fixed mid-glide timer). Honors
27
+ * `prefers-reduced-motion` (no squish under reduce). The underline material SLIDES
28
+ * (no squish — a hairline does not deform), gated by the `vertical`/underline
29
+ * early-return at the SFC's `squishOnTravel` call shape (the underline has no
30
+ * `indicatorRef` element).
20
31
  */
21
32
  export interface UseTabIndicatorParams {
22
33
  /** The container scroller root (observed by the ResizeObserver). */
@@ -28,21 +39,19 @@ export interface UseTabIndicatorParams {
28
39
  /** The tab options (re-measure on change). */
29
40
  options: ComputedRef<SegmentedTabOption[]>;
30
41
  /** The defineModel value (re-measure on change). */
31
- model: Ref<string | string[] | undefined>;
32
- /** True for the multi-select path. */
33
- multiSelect: ComputedRef<boolean>;
42
+ model: Ref<string | undefined>;
34
43
  /** Whether the browser supports CSS anchor positioning. */
35
44
  anchorSupported: boolean;
36
- /** True when ANY JS slider writer is live (gates RO/watcher attach). */
45
+ /** True when the JS slider writer is live (gates RO/watcher attach). */
37
46
  jsSliderActive: ComputedRef<boolean>;
38
- /** The active option values (used by the multi-slider measure). */
47
+ /** The active option values (used by the measure). */
39
48
  activeValues: ComputedRef<string[]>;
49
+ /** True for the vertical (block-axis) orientation. */
50
+ vertical: ComputedRef<boolean>;
40
51
  }
41
52
  export interface UseTabIndicatorReturn {
42
53
  /** Inline style for the single-select JS slider. */
43
54
  singleSliderStyle: Ref<Record<string, string>>;
44
- /** Inline styles for each active multi-select slider, keyed by value. */
45
- multiSliderStyles: Ref<Record<string, Record<string, string>>>;
46
55
  /** Imperatively kick the travel-squish on a selection at `idx`. */
47
56
  squishOnTravel: (toIdx: number) => void;
48
57
  }
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Fallback for `--tab-indicator-max-stretch` when the cascade leaves it unset — the
3
+ * default ≈+8% travel-squish cap (AX.W53). `--stretch = 1 + frac · (cap − 1)`, so a
4
+ * full-width jump reaches the cap and a tiny hop stays near 1. The token is the
5
+ * authority; this is the no-token floor.
6
+ */
7
+ export declare const DEFAULT_INDICATOR_MAX_STRETCH = 1.08;
8
+ /**
9
+ * The travel-progress fraction at which the squish RELEASES — the Material
10
+ * "grow then shrink" close, keyed to ARRIVAL (BA.W-TABS). The squish opens with
11
+ * the glide and releases when the indicator is within this fraction of its target
12
+ * (release-at-arrival), retiring the fixed mid-glide `INDICATOR_RELEASE_MS` timer
13
+ * (which fired at 60ms — BEFORE the ~100ms 90%-travel point, mid-glide). The
14
+ * release schedules off the calibrated clock (`--spring-snappy-duration`) scaled
15
+ * by this fraction, so the stretch peaks during travel and shrinks to fit AT
16
+ * arrival, never before.
17
+ */
18
+ export declare const INDICATOR_RELEASE_AT_ARRIVAL = 0.82;
@@ -1,2 +1,2 @@
1
1
  export { default as SegmentedTabs } from "./SegmentedTabs.vue";
2
- export type { SegmentedTabOption, SegmentedTabsVariant, SegmentedTabsProps, SegmentedTabsResponsive, } from "./SegmentedTabs.vue";
2
+ export type { SegmentedTabOption, SegmentedTabsVariant, SegmentedTabsOrientation, SegmentedTabsProps, SegmentedTabsResponsive, } from "./SegmentedTabs.vue";
@@ -13,6 +13,19 @@
13
13
  type __VLS_Props = {
14
14
  /** CSS color painted as the swatch background (any CSS color form). */
15
15
  color: string;
16
+ /**
17
+ * Render mode (BA.W-EMISSION / BA-VJS-C2):
18
+ * `solid` (default) — the filled organic blob (the swatch background IS the
19
+ * color; the existing register, unchanged).
20
+ * `ghost` — the SAME seeded blob SILHOUETTE rendered as a STROKE: a
21
+ * `color` border over a low-alpha `color` fill, the irregular-blob
22
+ * outline (NOT a CSS dashed rectangle). A `ghost` of a given
23
+ * `color + seed` matches the SAME silhouette the `solid` dot of
24
+ * that seed renders — both read the same `useWatercolorBlob`
25
+ * border-radius morph; the stroke is the only delta. The
26
+ * empty-palette-slot / placeholder affordance.
27
+ */
28
+ variant?: "solid" | "ghost";
16
29
  /** Run the rAF-driven shape morph (default false → static, hover-morph only). */
17
30
  animate?: boolean;
18
31
  /** Host tag — `div` (decorative) or `button` (interactive). */
@@ -30,6 +43,7 @@ type __VLS_Slots = {} & {
30
43
  };
31
44
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
32
45
  animate: boolean;
46
+ variant: "solid" | "ghost";
33
47
  seed: string;
34
48
  range: [number, number];
35
49
  tag: "div" | "button";
@@ -1,2 +1,4 @@
1
1
  export { menuItemVariants } from "./menuItemVariants";
2
2
  export type { MenuItemVariants } from "./menuItemVariants";
3
+ export { surfaceClass } from "./useSurfaceAxis";
4
+ export type { Surface, SurfaceTier } from "./useSurfaceAxis";
@@ -24,8 +24,27 @@ import { type VariantProps } from "class-variance-authority";
24
24
  *
25
25
  * Indicator slot variants reserve the gutter for radio-dot / check / chevron
26
26
  * indicator spans the consumer SFCs render absolutely-positioned.
27
+ *
28
+ * Surface axis (BA.W-MENU-GLASS) — the menu-row's MATERIAL register, an
29
+ * EXPRESSION of the shared {glass·veil·opaque} surface-decoration axis
30
+ * (`_shared/useSurfaceAxis.ts` / `glass/surface-axis.css`), NOT a second axis:
31
+ * - `glass` (DEFAULT, glass-first canon AX.W54) — the `.glass-menu-row` recipe
32
+ * (`src/styles/menu.css`): the hover / focus / `data-highlighted` / open states
33
+ * paint the ELEMENT-LEVEL glass-quiet oklab tint (so the row darkens-over-light
34
+ * AND lifts-over-dark per W-DARK-MATERIAL's tint arm) + a PRM-gated `translateY`
35
+ * hover-lift, the 44px touch floor, the iOS-grade glassy hover-lift plate. The
36
+ * flat `bg-accent` utilities are DROPPED on this arm — the cascade-trap-safe
37
+ * shape: with no unlayered `hover:bg-accent` utility the ONLY background-painters
38
+ * are the `@layer components` `.interactive-item:hover` accent rule and the
39
+ * `.glass-menu-row` recipe (imported AFTER utilities.css so it source-order-wins
40
+ * at equal specificity+layer — the AZ dock-rail `@layer`-loses-to-utility trap
41
+ * pre-empted: never re-add an unlayered flat-accent utility here).
42
+ * - `accent` — the EXPLICIT flat-accent escape (the prior default's look). A clean
43
+ * break, NOT a back-compat alias (BA inv-7): a consumer that wants the flat fill
44
+ * opts in via `surface="accent"`.
27
45
  */
28
46
  export declare const menuItemVariants: (props?: ({
47
+ surface?: "accent" | "glass" | null | undefined;
29
48
  indicator?: "start" | "none" | "start-wide" | null | undefined;
30
49
  density?: "comfortable" | "audacious" | null | undefined;
31
50
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
@@ -0,0 +1,41 @@
1
+ /**
2
+ * The shared surface-decoration axis — three rungs, ONE grammar.
3
+ *
4
+ * glass — the resolved tier's plain glass rung (default). The translucent
5
+ * blur surface, the maximal glass-first register.
6
+ * veil — the borderless/rimless text-legibility plate: the `--glass-bg-quiet`
7
+ * fill + blur with the box border AND rim STRIPPED (the boxed look
8
+ * reads as a dividing line on a text plate). Reads the same `--glass-*`
9
+ * ladder + W55 `--glass-tint-*` seam, so `--glass-level` / the bright
10
+ * bucket retune it in lockstep with every glass surface.
11
+ * opaque — the `--glass-level:0` solid-card escape: solid `--card` + `blur(0)`
12
+ * through the ONE level knob. The explicit opt-out from the maximal
13
+ * glass default.
14
+ */
15
+ export type Surface = "glass" | "veil" | "opaque";
16
+ /**
17
+ * The 5-rung glass-ladder tier the surface paints its base over. Mirrors the
18
+ * `.glass-{wash,quiet,resting,floating,overlay}` ladder. A surface passes the rung
19
+ * it already paints (Card's `resting`, Dialog/Sheet/Popover's `floating`); the
20
+ * resolver maps it to the `glass-${tier}` base class. `opaque` is NOT a ladder
21
+ * rung here — it is a decoration on TOP of a base tier (the `.glass-opaque`
22
+ * escape keeps the tier's edge/rim), exactly as Card composes it.
23
+ */
24
+ export type SurfaceTier = "wash" | "quiet" | "resting" | "floating" | "overlay";
25
+ /**
26
+ * Resolve a (surface, tier) pair to the class string a surface composes. Pairs
27
+ * with a `:data-surface="surface"` attribute binding on the same element — the
28
+ * CSS seam (`surface-axis.css`) reads the attr to apply the veil/opaque
29
+ * decoration UNIFORMLY, while this resolver emits the back-compat decoration
30
+ * classes (`veil-surface` / `glass-opaque`) so Card's three shared rungs stay
31
+ * byte-identical and a surface composing the class set alone (no attr) still
32
+ * paints correctly.
33
+ *
34
+ * surfaceClass("glass", "floating") → "glass-floating"
35
+ * surfaceClass("veil", "floating") → "glass-floating veil-surface"
36
+ * surfaceClass("opaque", "floating") → "glass-floating glass-opaque"
37
+ *
38
+ * @param surface the decoration rung (`glass` default · `veil` · `opaque`)
39
+ * @param tier the base ladder rung (default `resting`)
40
+ */
41
+ export declare function surfaceClass(surface?: Surface, tier?: SurfaceTier): string;
@@ -20,8 +20,17 @@ export type CardTier = "wash" | "quiet" | "resting" | "floating" | "overlay" | "
20
20
  * cartoon — the Memphis-sticker decoration layered on top of the resolved
21
21
  * tier: 2px border, offset-stamp shadow, hover-lift. Composes onto
22
22
  * ANY tier; the retired `<CartoonCard>` was `tier="quiet" surface="cartoon"`.
23
+ * veil — the text-legibility PLATE (R5-7). The wash/quiet glass fill +
24
+ * blur with the border AND rim/highlight STRIPPED (border:none,
25
+ * box-shadow:none — the boxed look reads as a "dividing line" on a
26
+ * text plate). An optional radial feather axis (`--veil-feather`,
27
+ * default none) fades the plate edges into the backdrop. Conceptually
28
+ * the W55 adaptive-legibility tint applied as a LOCAL plate over a
29
+ * busy/bright backdrop. Token-first (`--veil-*` rungs). It routes the
30
+ * glass material through the `--glass-*` ladder, so `--glass-level` /
31
+ * the W55 bright-bucket retune it in lockstep with every glass surface.
23
32
  */
24
- export type CardSurface = "glass" | "cartoon";
33
+ export type CardSurface = "glass" | "cartoon" | "veil";
25
34
  /**
26
35
  * Specular catch-light register (AX.W09) — the pointer-anchored moving lens on a
27
36
  * glass card.
@@ -42,8 +51,11 @@ interface Props extends PrimitiveProps {
42
51
  tier?: CardTier;
43
52
  /** Surface decoration register. `glass` (default) renders the tier's glass
44
53
  * rung; `cartoon` overlays the `cartoon-surface` decoration utility (2px
45
- * border, offset-stamp shadow, hover-lift). Orthogonal to `tier`/`shadow`/
46
- * `grain` — exactly like `shadow` and `grain`; NOT a `tier` rung. */
54
+ * border, offset-stamp shadow, hover-lift); `veil` overlays the borderless,
55
+ * rimless `veil-surface` text-legibility plate (the wash/quiet glass fill +
56
+ * blur with the boxed border + rim STRIPPED, an optional `--veil-feather`
57
+ * radial edge fade). Orthogonal to `tier`/`shadow`/`grain` — exactly like
58
+ * `shadow` and `grain`; NOT a `tier` rung. */
47
59
  surface?: CardSurface;
48
60
  /** Surface drop shadow via `--shadow-card`. Off for cards nested inside cards. */
49
61
  shadow?: boolean;
@@ -66,8 +78,8 @@ type __VLS_Slots = {} & {
66
78
  declare const __VLS_base: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {
67
79
  shadow: boolean;
68
80
  as: import("reka-ui").AsTag | import("vue").Component;
69
- tier: CardTier;
70
81
  surface: CardSurface;
82
+ tier: CardTier;
71
83
  grain: boolean;
72
84
  specular: CardSpecular;
73
85
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -1,6 +1,5 @@
1
1
  export { default as Carousel } from './Carousel.vue';
2
2
  export { default as CarouselContent } from './CarouselContent.vue';
3
- export { default as CarouselDots } from './CarouselDots.vue';
4
3
  export { default as CarouselItem } from './CarouselItem.vue';
5
4
  export { default as CarouselNext } from './CarouselNext.vue';
6
5
  export { default as CarouselPager } from './CarouselPager.vue';
@@ -1,7 +1,9 @@
1
1
  import { type HTMLAttributes } from 'vue';
2
2
  import type { ComboboxRootProps } from 'reka-ui';
3
+ import { type Surface } from '../_shared/useSurfaceAxis';
3
4
  type __VLS_Props = ComboboxRootProps & {
4
5
  class?: HTMLAttributes['class'];
6
+ surface?: Surface;
5
7
  };
6
8
  declare var __VLS_8: {};
7
9
  type __VLS_Slots = {} & {
@@ -24,6 +26,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
24
26
  }>, {
25
27
  modelValue: import("reka-ui").AcceptableValue | import("reka-ui").AcceptableValue[];
26
28
  open: boolean;
29
+ surface: Surface;
27
30
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
28
31
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
29
32
  declare const _default: typeof __VLS_export;
@@ -1,10 +1,15 @@
1
1
  import { type HTMLAttributes } from 'vue';
2
2
  import { type DialogContentProps } from 'reka-ui';
3
3
  import { type SpringPreset } from '../../../composables/motion/useSpringMount';
4
+ import { type Surface } from '../_shared/useSurfaceAxis';
4
5
  type __VLS_Props = DialogContentProps & {
5
6
  class?: HTMLAttributes['class'];
6
- /** Visual variant: "glass" (translucent blur, default) or "opaque" (solid background). */
7
- variant?: 'glass' | 'opaque';
7
+ /** Surface decoration register (BA.W-SURFACE-AXIS) — the SHARED
8
+ * {glass·veil·opaque} axis. `glass` (translucent blur, default) renders the
9
+ * floating glass tier; `veil` overlays the borderless/rimless text-legibility
10
+ * plate; `opaque` sets `--glass-level:0` (the solid-card escape). Replaces the
11
+ * retired binary `variant: glass|opaque` (clean break). */
12
+ surface?: Surface;
8
13
  /**
9
14
  * Optional CSS `animation` shorthand forwarded to the portaled scrim
10
15
  * via the `--scrim-animation` typed cascade variable. reka-ui's
@@ -66,7 +71,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
66
71
  onOpenAutoFocus?: ((event: Event) => any) | undefined;
67
72
  onCloseAutoFocus?: ((event: Event) => any) | undefined;
68
73
  }>, {
69
- variant: "glass" | "opaque";
74
+ surface: Surface;
70
75
  showClose: boolean;
71
76
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
72
77
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -39,6 +39,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
39
39
  "onUpdate:activeSnapPoint"?: ((val: string | number) => any) | undefined;
40
40
  }>, {
41
41
  mode: DrawerMode;
42
+ open: boolean;
42
43
  modal: boolean;
43
44
  shouldScaleBackground: boolean;
44
45
  snapPoints: (number | string)[];
@@ -1,5 +1,6 @@
1
1
  import type { DialogContentProps } from 'reka-ui';
2
2
  import type { HtmlHTMLAttributes } from 'vue';
3
+ import { type Surface } from '../_shared/useSurfaceAxis';
3
4
  /**
4
5
  * `showOverlay` — render the scrim (AN.W3). Defaults `true` for the modal
5
6
  * sheet. The live-behind pattern (`<Drawer mode="live-behind">`) passes
@@ -11,6 +12,9 @@ import type { HtmlHTMLAttributes } from 'vue';
11
12
  type __VLS_Props = DialogContentProps & {
12
13
  class?: HtmlHTMLAttributes['class'];
13
14
  showOverlay?: boolean;
15
+ /** Surface decoration register (BA.W-SURFACE-AXIS) — the SHARED
16
+ * {glass·veil·opaque} axis on top of the `.glass-drawer` recipe. */
17
+ surface?: Surface;
14
18
  };
15
19
  declare var __VLS_19: {};
16
20
  type __VLS_Slots = {} & {
@@ -31,6 +35,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
31
35
  onOpenAutoFocus?: ((event: Event) => any) | undefined;
32
36
  onCloseAutoFocus?: ((event: Event) => any) | undefined;
33
37
  }>, {
38
+ surface: Surface;
34
39
  showOverlay: boolean;
35
40
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
36
41
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -3,9 +3,9 @@ import { type DropdownMenuSubContentProps } from 'reka-ui';
3
3
  type __VLS_Props = DropdownMenuSubContentProps & {
4
4
  class?: HTMLAttributes['class'];
5
5
  };
6
- declare var __VLS_8: {};
6
+ declare var __VLS_14: {};
7
7
  type __VLS_Slots = {} & {
8
- default?: (props: typeof __VLS_8) => any;
8
+ default?: (props: typeof __VLS_14) => any;
9
9
  };
10
10
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
11
11
  escapeKeyDown: (event: KeyboardEvent) => any;
@@ -32,7 +32,6 @@ export * from "./skeleton";
32
32
  export * from "./slider";
33
33
  export * from "./switch";
34
34
  export * from "./table";
35
- export * from "./tabs";
36
35
  export * from "./tags-input";
37
36
  export * from "./textarea";
38
37
  export * from "./toast";
@@ -1,4 +1,5 @@
1
1
  import type { HTMLAttributes } from "vue";
2
+ import { type MetricValue } from "../../../utils";
2
3
  /**
3
4
  * MetricPill — the speedtest stacked-pill default, composed over `<MetricBadge>`.
4
5
  *
@@ -19,13 +20,16 @@ type MetricPillSize = "sm" | "md" | "lg" | "xl";
19
20
  type MetricPillLabelPosition = "inline" | "stacked";
20
21
  type MetricPillDensity = "comfortable" | "spacious";
21
22
  type __VLS_Props = {
22
- amount: string | number | null | undefined;
23
+ /** The primary metric. A valid `0` renders `"0"`, never the placeholder. */
24
+ value: MetricValue;
23
25
  unit?: string;
24
26
  label?: string;
25
27
  abbreviation?: string;
26
28
  color?: string;
29
+ /** Substitute glyph when value is empty; forwarded to `<MetricBadge>`,
30
+ * which owns the shared `coalesceMetric` default. */
27
31
  placeholder?: string;
28
- /** Defaults to `lg` — the 14px amount / prose-unit ladder rung. */
32
+ /** Defaults to `lg` — the 14px value / prose-unit ladder rung. */
29
33
  size?: MetricPillSize;
30
34
  /** Defaults to `stacked` — the 2-row label-above-value reading. */
31
35
  labelPosition?: MetricPillLabelPosition;
@@ -35,7 +39,6 @@ type __VLS_Props = {
35
39
  };
36
40
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
37
41
  size: MetricPillSize;
38
- placeholder: string;
39
42
  density: MetricPillDensity;
40
43
  labelPosition: MetricPillLabelPosition;
41
44
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -1,8 +1,10 @@
1
1
  import { type HTMLAttributes } from 'vue';
2
2
  import { type PopoverContentProps } from 'reka-ui';
3
+ import { type Surface } from '../_shared/useSurfaceAxis';
3
4
  type __VLS_Props = PopoverContentProps & {
4
5
  class?: HTMLAttributes['class'];
5
6
  portal?: boolean;
7
+ surface?: Surface;
6
8
  };
7
9
  declare var __VLS_14: {}, __VLS_23: {};
8
10
  type __VLS_Slots = {} & {
@@ -26,6 +28,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
26
28
  onCloseAutoFocus?: ((event: Event) => any) | undefined;
27
29
  }>, {
28
30
  align: "start" | "center" | "end";
31
+ surface: Surface;
29
32
  sideOffset: number;
30
33
  portal: boolean;
31
34
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -2,9 +2,20 @@ import { type HTMLAttributes } from "vue";
2
2
  import { type ProgressRootProps } from "reka-ui";
3
3
  import { type ProgressSegment } from "./useProgressGeometry";
4
4
  /**
5
- * Sectioned progress variant — the phase-bus (AB.W3.T2). Renders N colour-coded
6
- * cells with gradient seams between siblings; the active cell carries a spring
7
- * fill driven by `activeProgress` and a living catch-light sweep.
5
+ * Sectioned progress variant — the phase-bus (AB.W3.T2; rebuilt on a SINGLE-FILL
6
+ * gradient paint model at BA.W-PROGRESS-GRADIENT). The bar reads as ONE continuous
7
+ * blended liquid filling a frosted recessed glass channel: segment colours hold
8
+ * their identity across their span and blend over short transition zones at the
9
+ * boundaries, the active front carries the single pill cap + catch-light, and
10
+ * pending phases keep their real hue as a faint ghost on the track.
11
+ *
12
+ * The paint is NOT per-cell rectangles. ONE `.progress-sectioned-flow` element
13
+ * spans the cumulative filled extent (`filledExtentPct`, derived off the same
14
+ * `useProgressGeometry` cells[]) and paints ONE `linear-gradient` whose stops are
15
+ * the segment colours (hard stop-pairs hold each hue crisp; short soft zones at
16
+ * the boundaries give the blend). No screen-seam band, no internal pill caps, no
17
+ * dead notch. The pending remainder of the recessed track carries a faint
18
+ * phase-tinted ghost gradient built from the pending cells' own colours.
8
19
  *
9
20
  * The single `modelValue` is NOT the truth here — the per-cell state map is. The
10
21
  * underlying `[role="progressbar"]` reports a numeric `aria-valuenow` derived from
@@ -2,17 +2,40 @@ import { type HTMLAttributes } from 'vue';
2
2
  import { type SelectTriggerProps } from 'reka-ui';
3
3
  type __VLS_Props = SelectTriggerProps & {
4
4
  class?: HTMLAttributes['class'];
5
- /** 'default' = glass bg; 'ghost' = transparent, no border/shadow */
5
+ /** 'default' = the shared control REST surface (BA.W-SURFACE-AXIS scope 7 —
6
+ * the `.control-surface` register every form control reads at rest, off the
7
+ * prior `glass-wash` gray fork); 'ghost' = transparent, no border/shadow */
6
8
  variant?: 'default' | 'ghost';
7
- /** Height register: 'default' = h-10 (byte-identical), 'sm' = h-9 (compact controls) */
8
- size?: 'sm' | 'default';
9
+ /**
10
+ * The trigger register — a TWO-RANGE axis (BA.W-MENU-GLASS / BA-VJS-4 WO-3):
11
+ * • HEIGHT tiers (`sm` | `default`) ride the `--control-h-*` comfort cohort
12
+ * (h-9 / h-10), byte-identical to today.
13
+ * • FONT-RUNG tiers (`display` | `audacious`) WRITE the shared picker-family
14
+ * `--dropdown-text` token on the Select SCOPE (inline style), so the
15
+ * trigger, the SelectValue, AND the item rows re-resolve at ONE scale off
16
+ * the ONE documented lever (`offsets-sizing.css` — the items read
17
+ * `--dropdown-text` via `menuItemVariants`' `text-dropdown` base). This is
18
+ * the fix for the value.js trigger-only `text-display` desync (a 1.59×
19
+ * trigger/items break): a consumer scaling the picker font reaches for the
20
+ * PROP, which sets the FAMILY token, NOT a trigger-local `text-*` class that
21
+ * leaves the items behind. The font rung carries a height too so the box
22
+ * grows with the type. The height tiers stay; the font rung is ADDITIVE
23
+ * (a consumer who never sets it keeps today's resolved sizes).
24
+ *
25
+ * NOTE on the portal: `<SelectContent>` PORTALS to body, so the inline
26
+ * `--dropdown-text` on the trigger reaches the trigger/value/chevron directly;
27
+ * the items re-resolve when the consumer also threads the rung on the shared
28
+ * Select scope (the documented family lever). For a single self-scaling
29
+ * trigger the rung scales the visible trigger silhouette.
30
+ */
31
+ size?: 'sm' | 'default' | 'display' | 'audacious';
9
32
  };
10
33
  declare var __VLS_8: {};
11
34
  type __VLS_Slots = {} & {
12
35
  default?: (props: typeof __VLS_8) => any;
13
36
  };
14
37
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
15
- size: "sm" | "default";
38
+ size: "sm" | "default" | "display" | "audacious";
16
39
  variant: "default" | "ghost";
17
40
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
18
41
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -2,9 +2,15 @@ import { type HTMLAttributes } from 'vue';
2
2
  import { type DialogContentProps } from 'reka-ui';
3
3
  import { type SheetVariants } from '.';
4
4
  import { type SpringPreset } from '../../../composables/motion/useSpringMount';
5
+ import { type Surface } from '../_shared/useSurfaceAxis';
5
6
  interface SheetContentProps extends DialogContentProps {
6
7
  class?: HTMLAttributes['class'];
7
8
  side?: SheetVariants['side'];
9
+ /** Surface decoration register (BA.W-SURFACE-AXIS) — the SHARED
10
+ * {glass·veil·opaque} axis. `glass` (default) renders the floating glass tier
11
+ * sheetVariants already bakes; `veil` overlays the borderless text-legibility
12
+ * plate; `opaque` sets `--glass-level:0` (the solid-card escape). */
13
+ surface?: Surface;
8
14
  /**
9
15
  * Opt into iOS spring-physics entrance via `useSpringMount` (W13). When
10
16
  * truthy, the sheet slides from off-edge via a `useSpring`-driven
@@ -21,12 +21,15 @@ import type { HTMLAttributes } from 'vue';
21
21
  * (opacity-min) — the surface still reads but no longer cycles.
22
22
  */
23
23
  type SkeletonVariant = 'pulse' | 'shimmer' | 'breath';
24
+ type SkeletonSurface = 'glass' | 'opaque';
24
25
  type __VLS_Props = {
25
26
  variant?: SkeletonVariant;
27
+ surface?: SkeletonSurface;
26
28
  class?: HTMLAttributes['class'];
27
29
  };
28
30
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
29
31
  variant: SkeletonVariant;
32
+ surface: SkeletonSurface;
30
33
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
31
34
  declare const _default: typeof __VLS_export;
32
35
  export default _default;
@@ -10,31 +10,34 @@ export { default as Slider } from './Slider.vue';
10
10
  * (`--slider-track-height`, `--slider-thumb-size`) the SFC defaults read.
11
11
  *
12
12
  * Exactly two canonical recipes ship:
13
- * standard — the CONTINUOUS ROUNDED CYLINDER: a THICK glass capsule track with
14
- * the round knob INSCRIBED inside it (knob diameter = track height −
15
- * 2×inset, inset 2px) so the whole reads as ONE continuous piece — a
16
- * ball-bearing seated in the cylinder, never a floating disc on a
17
- * wire. The fill is the W52 liquid-glass material (backdrop + edge
18
- * rim, tinted to `--primary`) pulled along the capsule; the knob
19
- * rides ON it with zero protrusion (`thumbAlignment: 'contain'`).
20
- * The reka SliderThumb stays mounted (a11y/keyboard/focus) and
21
- * carries a faint specular grip. Halo-on-state + the iOS press
22
- * spring. This is the general-purpose glass scrubber and the default.
13
+ * standard — the CONTINUOUS GLASS CYLINDER with NO VISIBLE THUMB AT ALL (the
14
+ * user's binding bar, USER-AUDIT-2026-06-10 §B3): you pull the TRACK
15
+ * itself. A THICK glass capsule track; the filled `.slider-range`
16
+ * glass cylinder (the W52 liquid-glass material — backdrop + edge rim,
17
+ * tinted to `--primary`) is pulled along it, and its leading EDGE IS
18
+ * the handle — the only affordance is the fill edge + the cursor/touch
19
+ * response. The reka `<SliderThumb>` STAYS MOUNTED (a11y/keyboard/drag/
20
+ * value-follow native on it) but paints INVISIBLE: width 0, opacity 0,
21
+ * transparent — no distinct disc/cap/ring over the continuous
22
+ * cylinder. Keyboard focus rings the TRACK (the W-PRIM-POLISH focus
23
+ * register), not the invisible thumb; hover/held lift the track FILL's
24
+ * edge rim; the iOS press spring gives the whole fill a felt squish.
25
+ * This is the general-purpose glass scrubber and the default.
23
26
  * spectrum — the value.js gradient-track color slider: a tall capsule whose
24
27
  * background is a consumer-supplied `--slider-track-bg`
25
28
  * linear-gradient (the LCH/hue ramp), a transparent range, and a
26
- * SQUIRCLE thumb the HEIGHT of the track (the iOS color-picker
27
- * idiom — `corner-shape: superellipse()` via `--corner-shape-thumb`,
29
+ * THIN VISIBLE squircle thumb the HEIGHT of the track (the iOS/value.js
30
+ * color-picker idiom — a slim vertical bar, `w-3`-thin per the value.js
31
+ * reference; `corner-shape: superellipse()` via `--corner-shape-thumb`,
28
32
  * @supports-gated over a generous proportional round fallback that
29
33
  * reads squircle-adjacent cross-engine). This is the aurora/blob
30
- * color-picking surface. The spectrum already obeys the containment
31
- * law the standard cylinder now matches (thumb inscribed, protrusion 0).
34
+ * color-picking surface — its thumb IS visible (it is the handle).
32
35
  *
33
- * Sizes — the standard cylinder inscribes the knob: track height = thumb + 4px
34
- * (a 2px inset reveal each side), thumb diameter ≤ track height at every rung:
35
- * sm — 12px track / 8px thumb
36
- * md — 20px track / 16px thumb (default)
37
- * lg — 28px track / 24px thumb
36
+ * Sizes — the standard cylinder is the thick glass capsule (the invisible thumb's
37
+ * value-follow inset still rides the size token for the 44px coarse hit-halo):
38
+ * sm — 12px track
39
+ * md — 20px track (default)
40
+ * lg — 28px track
38
41
  */
39
42
  export declare const sliderVariants: (props?: ({
40
43
  variant?: "standard" | "spectrum" | null | undefined;
@@ -2,7 +2,10 @@ import { type HTMLAttributes } from "vue";
2
2
  import { type TabsIndicatorProps } from "reka-ui";
3
3
  type __VLS_Props = TabsIndicatorProps & {
4
4
  class?: HTMLAttributes["class"];
5
+ surface?: boolean;
5
6
  };
6
- declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
7
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
8
+ surface: boolean;
9
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
7
10
  declare const _default: typeof __VLS_export;
8
11
  export default _default;
@@ -19,7 +19,7 @@ type ToasterToast = Toast & {
19
19
  description?: string;
20
20
  action?: Component | VNode;
21
21
  open?: boolean;
22
- onOpenChange?: (open: boolean) => void;
22
+ 'onUpdate:open'?: (open: boolean) => void;
23
23
  };
24
24
  type ToastOptions = Omit<ToasterToast, 'id'>;
25
25
  declare function toast(props: ToastOptions): {
@@ -160,7 +160,7 @@ declare function useToast(): {
160
160
  | undefined;
161
161
  duration?: number | undefined;
162
162
  open?: boolean | undefined;
163
- onOpenChange?: ((open: boolean) => void) | undefined;
163
+ 'onUpdate:open'?: ((open: boolean) => void) | undefined;
164
164
  }[]>;
165
165
  toast: typeof toast;
166
166
  dismiss: (toastId?: string) => void;
@@ -16,7 +16,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
16
16
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
17
17
  }>, {
18
18
  size: "default" | "sm" | "lg" | null;
19
- variant: "default" | "outline" | "glass" | "card" | null;
19
+ variant: "default" | "outline" | "card" | null;
20
20
  disabled: boolean;
21
21
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
22
22
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;