@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,39 @@
1
+ /**
2
+ * constants.ts — the marking-space geometry constants (the colocation home).
3
+ * ─────────────────────────────────────────────────────────────────────────────
4
+ * The hand-mark family's named geometry constants live here (the AY.W-COLOCATE
5
+ * convention's `constants.ts` home). geometry.ts + the SFC re-read them by name.
6
+ */
7
+ /** Marking-space width (the 0..100 × 0..40 viewBox; `preserveAspectRatio="none"`). */
8
+ export declare const VB_W = 100;
9
+ /** Marking-space height. */
10
+ export declare const VB_H = 40;
11
+ /**
12
+ * The hairline gap, as a fraction of the `.hm` box, between the MEASURED text
13
+ * baseline and the underline centerline. The underline rides just under the real
14
+ * glyph bottoms — a hand mark sits a few % of cap-height below the baseline, never
15
+ * through it (the E1 occlusion root: a constant `y=32` strikethroughs tight-leading
16
+ * display type because 80% of a `line-height:1.02` box IS the baseline).
17
+ */
18
+ export declare const UNDERLINE_GAP = 0.06;
19
+ /**
20
+ * The highlighter LOW-SEAT band (BA.W-HANDMARK C-1(a)). A real highlighter rides
21
+ * the low two-thirds of the line — the ink sits on the baseline and rises to
22
+ * ~x-height — NOT the box vertical center the fork shipped. The band centerline
23
+ * seats at `baselineFrac − HIGHLIGHT_RISE` (raised off the baseline by ~half a
24
+ * lowercase x-height) so the wide slab (weight 26) covers x-height down to the
25
+ * baseline. Expressed as a fraction of the `.hm` box, parallel to UNDERLINE_GAP.
26
+ */
27
+ export declare const HIGHLIGHT_RISE = 0.22;
28
+ /** Pre-measure fallback for the highlight band's low seat (null baselineFrac). */
29
+ export declare const HIGHLIGHT_FALLBACK_FRAC = 0.66;
30
+ /**
31
+ * Natural-underline morphology (BA.W-HANDMARK C-2). The procedural wobble is
32
+ * SCALE-RELATIVE: the amplitude is a fraction of the rendered word width (a long
33
+ * word and a short word wobble in proportion, not the viewBox-stretched-constant
34
+ * the fork's GlassUnderline shipped). The period count is IRREGULAR — a seeded
35
+ * pick in [PERIODS_MIN, PERIODS_MAX] — so two seeds differ in hump count, never
36
+ * identical twins.
37
+ */
38
+ export declare const PERIODS_MIN = 2;
39
+ export declare const PERIODS_MAX = 4;
@@ -12,21 +12,19 @@
12
12
  * - text mode (box == null): use the full viewBox (single-line underline/strike)
13
13
  * - positioned mode (box = {x,y,w,h}): map an explicit rect (circle a datum)
14
14
  *
15
- * The circle arm rides pencil-boil 0.4.0's `ellipsePoints` (the hand-circle
15
+ * The circle arm rides pencil-boil 0.4.x's `ellipsePoints` (the hand-circle
16
16
  * overshoot ring — the sole upstream geometry delta this component required).
17
+ *
18
+ * THE SEED RECONCILE (BA.W-HANDMARK [S2]): the wobble centerlines are seeded from
19
+ * the HOUSE prng leaf (`src/utils/prng.ts` mulberry32 + hashString — the AV.W14
20
+ * single-source). The family FEEDS pencil-boil a house-derived integer seed; glass-
21
+ * ui code imports ZERO `mulberry32` from pencil-boil (its internal mulberry32 stays
22
+ * inside its OWN perturb math). ONE seed leaf, the house identity.
17
23
  */
18
24
  import { type WobbleOptions } from "@mkbabb/pencil-boil";
25
+ import { UNDERLINE_GAP, VB_H, VB_W } from "./constants";
19
26
  import type { HandShape, MarkBox } from "./types";
20
- export declare const VB_W = 100;
21
- export declare const VB_H = 40;
22
- /**
23
- * The hairline gap, as a fraction of the `.hm` box, between the MEASURED text
24
- * baseline and the underline centerline. The underline rides just under the real
25
- * glyph bottoms — a hand mark sits a few % of cap-height below the baseline, never
26
- * through it (the E1 occlusion root: a constant `y=32` strikethroughs tight-leading
27
- * display type because 80% of a `line-height:1.02` box IS the baseline).
28
- */
29
- export declare const UNDERLINE_GAP = 0.06;
27
+ export { VB_W, VB_H, UNDERLINE_GAP };
30
28
  /** A shape maps to one or more centerlines (open polylines) or one closed ring. */
31
29
  export interface ShapeGeom {
32
30
  lines: [number, number][][];
@@ -42,8 +40,12 @@ export interface ShapeGeom {
42
40
  * box), which struck through tight-leading headings. `null` ⇒ not yet measured: fall
43
41
  * back to the legacy `VB_H − 8` constant so first paint (and jsdom/SSR) still renders
44
42
  * a line, replaced the instant the measure lands.
43
+ *
44
+ * `natural` (BA.W-HANDMARK C-2) routes the underline through the procedural
45
+ * `naturalUnderlinePoints` morphology instead of pencil-boil's `wobbleLinePoints`
46
+ * (the masthead `boil` voice); the default underline keeps the pencil-boil line.
45
47
  */
46
- export declare function shapeGeom(shape: HandShape, opts: WobbleOptions, box?: MarkBox | null, baselineFrac?: number | null): ShapeGeom;
48
+ export declare function shapeGeom(shape: HandShape, opts: WobbleOptions, box?: MarkBox | null, baselineFrac?: number | null, natural?: boolean): ShapeGeom;
47
49
  /** Boil one geometry: re-perturb the CACHED centerlines (anchored → no draw-on pop). */
48
50
  export declare function boilLines({ lines, closed }: ShapeGeom, amount: number, seed: number): [number, number][][];
49
51
  /** Serialize centerlines → one SVG `d` (multi-line shapes concat with a space). */
@@ -9,7 +9,13 @@
9
9
  *
10
10
  * The DEFAULT is `pen` (clean ink, grain:0 ⇒ no filter, zero extra dep). The
11
11
  * `@mkbabb/pencil-boil` geometry + `perfect-freehand` body are OPTIONAL PEERS;
12
- * only `ribbon:'hull'` touches the vendored pf core (treeshaken otherwise).
12
+ * only `ribbon:'hull'` (the highlighter) touches the vendored pf core (treeshaken
13
+ * otherwise).
14
+ *
15
+ * BA.W-HANDMARK: `GlassUnderline`/the `/underline` subpath RETIRED onto
16
+ * `HandMark shape="underline"` (DEC-8 outcome 1; clean break, no alias). The
17
+ * editorial draw-on underline is `<HandMark shape="underline" animation="draw-on">`;
18
+ * the natural pencil-boil morphology is the `boil` brush.
13
19
  */
14
20
  export { default as HandMark, default as InkMark } from "./HandMark.vue";
15
21
  export { BRUSHES, resolveBrush, lerpBrush, type Brush, type BrushName, type BlendMode, type TaperSpec, type StampFn, type InkPath, } from "./brush";
@@ -17,5 +23,5 @@ export { shapeGeom, serialize, boilLines, VB_W, VB_H, UNDERLINE_GAP, type ShapeG
17
23
  export { ink, type SVGFragment } from "./ink";
18
24
  export { grainFilter, hasGrain } from "./texture";
19
25
  export { getStroke, getStrokePoints, getSvgPathFromStroke, type StrokeOptions, type InputPoint, } from "./freehand";
20
- export { useHandMark, normalizeProps, type UseHandMarkInput, type HandMarkCore, type BoilClock, } from "./useHandMark";
26
+ export { useHandMark, normalizeProps, type UseHandMarkInput, type HandMarkCore, type BoilClock, } from "./composables/useHandMark";
21
27
  export type { HandMarkProps, HandShape, HandAnimation, MarkBox, } from "./types";
@@ -44,6 +44,15 @@ export interface HandMarkProps {
44
44
  segments?: number;
45
45
  /** angular kinks vs smooth bezier. default false. */
46
46
  jagged?: boolean;
47
+ /**
48
+ * NATURAL underline morphology (BA.W-HANDMARK C-2). When true (the masthead
49
+ * `boil` voice), the underline geometry goes PROCEDURAL — scale-relative
50
+ * amplitude, an IRREGULAR seeded period count, off the house prng leaf feeding
51
+ * pencil-boil — instead of pencil-boil's single `wobbleLinePoints` line. The
52
+ * `boil` brush auto-engages it; the default underline keeps the pencil-boil line.
53
+ * Ignored on non-underline shapes.
54
+ */
55
+ natural?: boolean;
47
56
  /** POSITIONED mode (circle a datum): explicit target rect. */
48
57
  box?: MarkBox;
49
58
  /** shape:'path' escape hatch — arbitrary SVG `d` (wins over shape). */
@@ -0,0 +1,4 @@
1
+ import type { IconChipProps } from "./types";
2
+ declare const __VLS_export: import("vue").DefineComponent<IconChipProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<IconChipProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
3
+ declare const _default: typeof __VLS_export;
4
+ export default _default;
@@ -0,0 +1,2 @@
1
+ export { default as IconChip } from "./IconChip.vue";
2
+ export type { IconChipProps, IconChipIcon, IconChipSection, IconChipTone, } from "./types";
@@ -0,0 +1,72 @@
1
+ import type { Component, FunctionalComponent, HTMLAttributes } from "vue";
2
+ /**
3
+ * Permissive icon type — Vue's `Component` ships across multiple structurally
4
+ * incompatible shapes (the @lucide/vue v1 functional-component form is one), so
5
+ * we accept the union a `<component :is>` render expression handles. Mirrors the
6
+ * `MetricCell` `IconLike` precedent (the AZ `isComponent` allowance).
7
+ */
8
+ export type IconChipIcon = Component | FunctionalComponent | object;
9
+ /** A 0..12 index into the `--section-color-N` 13-stop ramp. */
10
+ export type IconChipSection = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
11
+ /**
12
+ * A complete token colour for the chip event (e.g. `var(--chart-download)`,
13
+ * `var(--tier-featured)`) — the MetricCell-`iconColor` reconcile path. NEVER a
14
+ * demo-local literal hue (ppmycota purple stays out of the library — the chip
15
+ * `tone` arm takes a token).
16
+ */
17
+ export type IconChipTone = string;
18
+ export interface IconChipProps {
19
+ /**
20
+ * The lucide glyph (functional-component form per the AZ `isComponent`
21
+ * precedent). Rendered via `<component :is>`.
22
+ */
23
+ icon: IconChipIcon;
24
+ /**
25
+ * The `--section-color-N` ramp index (0..12) — the section arm. XOR `tone`.
26
+ * When both are set, `tone` wins (the explicit complete-token override).
27
+ * Typed `number` for data-driven consumers (a `v-for` over a descriptor list
28
+ * with a `section: number` field); the 0..12 canonical range is the
29
+ * `IconChipSection` union the discovery layer publishes.
30
+ */
31
+ section?: number;
32
+ /**
33
+ * A complete token colour (the tone arm — the MetricCell-`iconColor`
34
+ * reconcile). XOR `section`.
35
+ */
36
+ tone?: IconChipTone;
37
+ /**
38
+ * The chip diameter in px — the FLOOR is `glyphSize × --icon-chip-glyph-ratio`
39
+ * so the plate can never paint under the glyph (the d2 proportion, structural).
40
+ * Default `48` (the reference register, 48/22 ≈ 2.18).
41
+ */
42
+ size?: number;
43
+ /** The lucide glyph pixel size. Default `22` (the reference register). */
44
+ glyphSize?: number;
45
+ /** The lucide glyph stroke width. Default `1.75` (the reference register). */
46
+ strokeWidth?: number;
47
+ /**
48
+ * The NO-PLATE register — render the full-chroma glyph with NO backplate
49
+ * (the MetricCell leading-glyph tint). The chip≤glyph floor is moot (no plate).
50
+ */
51
+ bare?: boolean;
52
+ /**
53
+ * Duotone fill — a low-alpha fill of the same hue UNDER the full-chroma
54
+ * stroke (the iOS/Material "filled-tonal" move). Mono-hue (proportion-safe,
55
+ * never a second hue). Default `false`.
56
+ */
57
+ duotone?: boolean;
58
+ /**
59
+ * The chip's own smooth-glass hover register (the backplate mix lifts, a soft
60
+ * glow ring appears, the stroke firms) — on the §6 easing doctrine, PRM-gated,
61
+ * disco-FREE. Default `false`.
62
+ */
63
+ bloom?: boolean;
64
+ /**
65
+ * Entrance choreography — composes the shipped `vReveal` directive. A numeric
66
+ * value is the `--d` stagger index; `true` is index 0. PRM-gated by `vReveal`'s
67
+ * construction. Default `false`.
68
+ */
69
+ reveal?: boolean | number;
70
+ /** Pass-through class on the chip root. */
71
+ class?: HTMLAttributes["class"];
72
+ }
@@ -17,8 +17,19 @@ export type InstrumentChassisPhase = "ready" | "ping" | "download" | "upload" |
17
17
  * architectural underclaim. Consumed at quiet-content App-level
18
18
  * mounts (the inner card paints its own glass tier — the spine is
19
19
  * the housing that frames it).
20
+ *
21
+ * - `"structure"` (BA.W-ATLAS-RECONCILE C-3) — the SILVER structure-metal
22
+ * register. A cool polished-steel milled-panel read: the engraved bezel +
23
+ * the structural grooves re-point to the `--silver` quad (the gold quad's
24
+ * cool mirror) instead of the warm-cream `--surface-tint-*` default, so the
25
+ * chassis reads as an INDUSTRIAL precision-instrument housing — the cool-metal
26
+ * twin of the gold "complete"-phase affirmation. The phase cascade stays
27
+ * orthogonal (a `structure` chassis still retints on `data-phase`); only the
28
+ * structure-metal recipe forks. The silver is the W-NO-GRAY named cool-neutral
29
+ * exception. Consumer #2 of the silver quad (the atlas's structure surface is
30
+ * consumer #1).
20
31
  */
21
- export type InstrumentChassisVariant = "glass" | "spine";
32
+ export type InstrumentChassisVariant = "glass" | "spine" | "structure";
22
33
  /**
23
34
  * <InstrumentChassis> — single glass surface composing strip / dial / control
24
35
  * regions, glued together by twin-line hairline grooves.
@@ -28,8 +39,8 @@ export type InstrumentChassisVariant = "glass" | "spine";
28
39
  * the `<ChassisDivider>` adjacent to each — emit markup only when bound.
29
40
  * I gate `<header>`, `<footer>`, and the two dividers on `$slots.strip` /
30
41
  * `$slots.control` presence, so empty-slot consumers don't have to suppress
31
- * the markup with `display: none` overrides. Mirrors the `v-if="$slots.status"`
32
- * idiom InstrumentRail established.
42
+ * the markup with `display: none` overrides — the `v-if="$slots.status"`
43
+ * slot-gating idiom.
33
44
  *
34
45
  * The chassis owns the `--phase-color` cascade via `data-phase`; phase label,
35
46
  * hero number, and phase progress fill all read it through one CSS custom
@@ -56,7 +67,9 @@ type __VLS_Props = {
56
67
  * Surface register. Defaults to `"glass"` (the canonical chassis
57
68
  * plate). Pass `"spine"` at App-level mount paths to get the
58
69
  * housing register (polished sleeve, no backdrop-filter, interior
59
- * vignette + hairline outer stroke).
70
+ * vignette + hairline outer stroke). Pass `"structure"` for the
71
+ * silver milled-panel register (cool polished-steel bezel + grooves;
72
+ * BA.W-ATLAS-RECONCILE C-3).
60
73
  */
61
74
  variant?: InstrumentChassisVariant;
62
75
  class?: HTMLAttributes["class"];
@@ -16,6 +16,19 @@ import { type HTMLAttributes } from "vue";
16
16
  * cursor-help). The previous mixed `text-base` / `text-lg` literals
17
17
  * harmonise on a single body-size token.
18
18
  *
19
+ * AZ.W-BLOB-REDRESS — `hideLabel` VISUALLY hides the field's own label (it
20
+ * renders `sr-only` instead of `.labeled-field-label`) while KEEPING it in the
21
+ * DOM, so the `for`/`id`/`aria-labelledby` control↔label association — the
22
+ * Slider thumb's `aria-labelledby`, the Select trigger's `for` — stays intact
23
+ * and the control is still accessibly named. The visible human label is then
24
+ * supplied by an enclosing chrome row (a `<ConfiguratorRow label>`). This is
25
+ * the canonical fix for the double-label leak: a `<ConfiguratorRow label="X">`
26
+ * wrapping a `<LabeledSlider label="x">` rendered BOTH labels (the human one +
27
+ * the raw config key); the inner control passes `hide-label` so ONE visible
28
+ * human label remains, the raw key demotes to the row's mono `name` token, and
29
+ * a11y is preserved. The tooltip is suppressed when hidden (the row owns the
30
+ * affordance). NO effect on `LabeledField` used standalone (default `false`).
31
+ *
19
32
  * AQ.W4 §W4.5 — `required` threads a `aria-hidden` asterisk onto the label
20
33
  * (the `required` attr on the slotted control is the semantic carrier). The
21
34
  * `error` slot renders an error-message region that the W3.1c
@@ -24,12 +37,36 @@ import { type HTMLAttributes } from "vue";
24
37
  * default slot's `errorId` slot-prop so the slotted control can bind
25
38
  * `aria-errormessage="errorId"` (the four wrappers auto-wire it; a raw
26
39
  * `<LabeledField>` slot binds it manually).
40
+ *
41
+ * # LabeledField vs ConfiguratorRow — recorded divergence (AZ.W-METRIC-UNIFY §B)
42
+ *
43
+ * Both are "label (+ meta) above/beside a slotted control", but they are NOT
44
+ * interchangeable — they emphasize DIFFERENT features:
45
+ * - LabeledField (this) — for FORM fields. Carries the `for`/`id` label↔control
46
+ * a11y wiring (`controlId`/`labelId`/`errorId`), the `tooltip`, the `required`
47
+ * asterisk, and the `aria-live` `error` region.
48
+ * - ConfiguratorRow — for TOKEN / PRESET controls. Carries the token-`name`
49
+ * reference, the opt-in `reset` affordance (`canReset`), and the four-rung
50
+ * `density` axis. No a11y for/id wiring.
51
+ *
52
+ * Reach for LabeledField for accessible form inputs; reach for ConfiguratorRow
53
+ * inside a `<Configurator>` for token sliders/selects. The divergence is recorded
54
+ * (NOT a forced merge — no ≥2-consumer shared-chassis need surfaced) in
55
+ * `docs/precepts/design-idioms.md §9`, alongside the `cn`/`focus-ring` keeps.
27
56
  */
28
57
  type __VLS_Props = {
29
58
  label: string;
30
59
  tooltip?: string;
31
60
  labelClass?: HTMLAttributes["class"];
32
61
  required?: boolean;
62
+ /**
63
+ * AZ.W-BLOB-REDRESS — render the field's own label `sr-only` (kept in the
64
+ * DOM for the control↔label a11y association) instead of visibly. Use when
65
+ * an enclosing chrome row already supplies the visible human label (a
66
+ * `<ConfiguratorRow label>`), so the inner control does not leak a second
67
+ * (often raw-config-key) label. Default `false` (standalone behavior).
68
+ */
69
+ hideLabel?: boolean;
33
70
  };
34
71
  declare var __VLS_7: {
35
72
  errorId: string;
@@ -8,6 +8,12 @@ type __VLS_Props = {
8
8
  labelClass?: string;
9
9
  /** AQ.W4 §W4.5 — thread the required-field asterisk onto the label. */
10
10
  required?: boolean;
11
+ /**
12
+ * AZ.W-BLOB-REDRESS — render the label `sr-only` (kept for a11y, hidden
13
+ * visually) when an enclosing chrome row (a `<ConfiguratorRow>`) already
14
+ * supplies the visible human label. Avoids the double-label leak.
15
+ */
16
+ hideLabel?: boolean;
11
17
  };
12
18
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
13
19
  "update:modelValue": (value: string) => any;
@@ -8,6 +8,12 @@ type __VLS_Props = {
8
8
  step: number;
9
9
  /** AQ.W4 §W4.5 — thread the required-field asterisk onto the label. */
10
10
  required?: boolean;
11
+ /**
12
+ * AZ.W-BLOB-REDRESS — render the label `sr-only` (kept for a11y, hidden
13
+ * visually) when an enclosing chrome row (a `<ConfiguratorRow>`) already
14
+ * supplies the visible human label. Avoids the double-label leak.
15
+ */
16
+ hideLabel?: boolean;
11
17
  };
12
18
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
13
19
  "update:modelValue": (value: number) => any;
@@ -5,6 +5,12 @@ type __VLS_Props = {
5
5
  labelClass?: string;
6
6
  /** AQ.W4 §W4.5 — thread the required-field asterisk onto the label. */
7
7
  required?: boolean;
8
+ /**
9
+ * AZ.W-BLOB-REDRESS — render the label `sr-only` (kept for a11y, hidden
10
+ * visually) when an enclosing chrome row (a `<ConfiguratorRow>`) already
11
+ * supplies the visible human label. Avoids the double-label leak.
12
+ */
13
+ hideLabel?: boolean;
8
14
  };
9
15
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
10
16
  "update:checked": (value: boolean) => any;
@@ -1,9 +1,10 @@
1
1
  import type { HTMLAttributes } from 'vue';
2
- type MetricBadgeSize = 'sm' | 'md' | 'lg' | 'xl';
3
- type MetricBadgeLabelPosition = 'inline' | 'stacked';
4
- type MetricBadgeVariant = 'default' | 'record';
5
- type __VLS_Props = {
6
- amount: string | number | null | undefined;
2
+ import { type MetricValue } from '../../../utils';
3
+ export type MetricBadgeSize = 'sm' | 'md' | 'lg' | 'xl';
4
+ export type MetricBadgeLabelPosition = 'inline' | 'stacked';
5
+ export interface MetricBadgeProps {
6
+ /** The primary metric. A valid `0` renders `"0"`, never the placeholder. */
7
+ value: MetricValue;
7
8
  unit?: string;
8
9
  /** Full annotation slot, rendered as a sibling `<span>` with classnames
9
10
  * `metric-badge__label metric-badge__label--full`. Tracked uppercase,
@@ -21,27 +22,19 @@ type __VLS_Props = {
21
22
  * the label slot does not render even if `label`/`abbreviation` carry
22
23
  * values. */
23
24
  labelPosition?: MetricBadgeLabelPosition;
24
- /** Color applied to the amount when it's truthy. */
25
+ /** Color applied to the value when it's non-empty. */
25
26
  color?: string;
26
- /** Substitute glyph when amount is empty. */
27
+ /** Substitute glyph when value is empty (null / undefined / ""). */
27
28
  placeholder?: string;
28
29
  /** Typographic scale. Defaults to `md`. The ladder reads
29
30
  * sm 11px / md 12px / lg 14px / xl 18px; `xl` is the audacious-poster
30
- * rung (`text-mono-prose` amount, `text-prose` unit) for hero
31
+ * rung (`text-mono-prose` value, `text-prose` unit) for hero
31
32
  * placements that need to read at chassis distance. */
32
33
  size?: MetricBadgeSize;
33
- /** Surface register. `default` is the canonical 5-tier glass pill;
34
- * `record` is the GILT pill (D6.b) — a 1px `--gold-rim` tooled edge +
35
- * `--gold-ink` amount + a faint ≤8% gold wash (never opaque). Gold marks
36
- * the SUPERLATIVE, exactly one per view: the all-time-high / peak figure.
37
- * The medal reads as earned, not as a fourth data color. */
38
- variant?: MetricBadgeVariant;
39
34
  class?: HTMLAttributes['class'];
40
- };
41
- declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
35
+ }
36
+ declare const __VLS_export: import("vue").DefineComponent<MetricBadgeProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<MetricBadgeProps> & Readonly<{}>, {
42
37
  size: MetricBadgeSize;
43
- variant: MetricBadgeVariant;
44
- placeholder: string;
45
38
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
46
39
  declare const _default: typeof __VLS_export;
47
40
  export default _default;
@@ -1 +1,2 @@
1
1
  export { default as MetricBadge } from "./MetricBadge.vue";
2
+ export type { MetricBadgeProps, MetricBadgeSize, MetricBadgeLabelPosition, } from "./MetricBadge.vue";
@@ -1,4 +1,5 @@
1
1
  import type { Component, FunctionalComponent, HTMLAttributes } from "vue";
2
+ import { type MetricValue } from "../../../utils";
2
3
  /**
3
4
  * Permissive icon type — Vue's `Component` type ships across multiple
4
5
  * package boundaries (vue / @vue/runtime-core duplication when consumers
@@ -54,13 +55,24 @@ export interface MetricCellProps {
54
55
  iconStrokeWidth?: number;
55
56
  /** Icon pixel size — defaults to 14 (matches `text-micro` cap height). */
56
57
  iconSize?: number;
58
+ /**
59
+ * Optional accent colour for the LEADING GLYPH ONLY (e.g. a semantic
60
+ * `var(--chart-download)` viz colour). Tints the icon — the one
61
+ * deliberate colour event for the cell — while the label, value, and unit
62
+ * stay neutral ink (the one-color-event proportion rule, AZ.W-SUFFUSE D3).
63
+ * Unset (default) keeps the glyph the neutral `--muted-foreground` of the
64
+ * label row.
65
+ */
66
+ iconColor?: string;
57
67
  /** Label text — reads through the `label` slot when set. */
58
68
  label?: string;
59
- /** Value — primary metric. Reads through the `value` slot when set. */
60
- value?: string | number | null | undefined;
69
+ /** Value — primary metric. Reads through the `value` slot when set. A valid
70
+ * `0` renders `"0"`, never the placeholder. */
71
+ value?: MetricValue;
61
72
  /** Unit suffix appended after the value (e.g. "Mbps", "ms"). */
62
73
  unit?: string;
63
- /** Placeholder glyph when value is empty/null. Defaults to em-dash. */
74
+ /** Placeholder glyph when value is empty/null. Defaults to em-dash (the
75
+ * shared `coalesceMetric` default). */
64
76
  placeholder?: string;
65
77
  /**
66
78
  * Visual register.
@@ -82,7 +94,6 @@ type __VLS_Slots = {} & {
82
94
  value?: (props: typeof __VLS_10) => any;
83
95
  };
84
96
  declare const __VLS_base: import("vue").DefineComponent<MetricCellProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<MetricCellProps> & Readonly<{}>, {
85
- placeholder: string;
86
97
  appearance: MetricCellAppearance;
87
98
  iconStrokeWidth: number;
88
99
  iconSize: number;
@@ -1,4 +1,5 @@
1
1
  import type { HTMLAttributes, Component } from "vue";
2
+ import { type MetricValue } from "../../../utils";
2
3
  /**
3
4
  * MetricRow — a single row inside <MetricStack>.
4
5
  *
@@ -39,11 +40,13 @@ export interface MetricRowProps {
39
40
  iconSize?: number;
40
41
  /** Label text — reads through the label slot when set. */
41
42
  label?: string;
42
- /** Value text (the audacious-poster hero number). */
43
- value?: string | number | null | undefined;
43
+ /** Value text (the audacious-poster hero number). A valid `0` renders
44
+ * `"0"`, never the placeholder. */
45
+ value?: MetricValue;
44
46
  /** Unit suffix — reads through the unit slot when set. */
45
47
  unit?: string;
46
- /** Placeholder glyph when value is empty/null. Defaults to "—". */
48
+ /** Placeholder glyph when value is empty/null. Defaults to "—" (the shared
49
+ * `coalesceMetric` default). */
47
50
  placeholder?: string;
48
51
  /**
49
52
  * Per-row phase colour. Sets `--phase-color` inline so descendant
@@ -87,7 +90,6 @@ type __VLS_Slots = {} & {
87
90
  };
88
91
  declare const __VLS_base: import("vue").DefineComponent<MetricRowProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<MetricRowProps> & Readonly<{}>, {
89
92
  active: boolean;
90
- placeholder: string;
91
93
  iconStrokeWidth: number;
92
94
  iconSize: number;
93
95
  digitCount: number;
@@ -0,0 +1,39 @@
1
+ import type { HTMLAttributes } from "vue";
2
+ export interface PagerDotsProps {
3
+ /** Total dot count (the slide/snap count). */
4
+ count: number;
5
+ /** Rail layout axis. Default horizontal. */
6
+ orientation?: "horizontal" | "vertical";
7
+ /**
8
+ * When set, window the rail to `fit` dots centered on the active dot
9
+ * (the DeckPager dock-gutter overflow generalized). Off (undefined) →
10
+ * show every dot.
11
+ */
12
+ windowFit?: number;
13
+ /** Encapsulate the rail in the glass pager pill chassis. Default true. */
14
+ ring?: boolean;
15
+ /** Accessible name for the rail group. */
16
+ ariaLabel?: string;
17
+ /** Additional classes for the rail root. */
18
+ class?: HTMLAttributes["class"];
19
+ }
20
+ type __VLS_Props = PagerDotsProps;
21
+ type __VLS_ModelProps = {
22
+ /** v-model:active — the active 0-based index. */
23
+ "active"?: number;
24
+ };
25
+ type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
26
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
27
+ "update:active": (value: number) => any;
28
+ } & {
29
+ select: (index: number) => any;
30
+ }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
31
+ onSelect?: ((index: number) => any) | undefined;
32
+ "onUpdate:active"?: ((value: number) => any) | undefined;
33
+ }>, {
34
+ orientation: "horizontal" | "vertical";
35
+ ariaLabel: string;
36
+ ring: boolean;
37
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
38
+ declare const _default: typeof __VLS_export;
39
+ export default _default;
@@ -0,0 +1,2 @@
1
+ export { default as PagerDots } from "./PagerDots.vue";
2
+ export type { PagerDotsProps } from "./PagerDots.vue";
@@ -1,5 +1,5 @@
1
1
  import { type HTMLAttributes } from "vue";
2
- /** The canonical tab/option shape — one descriptor across all three variants. */
2
+ /** The canonical tab/option shape — one descriptor across both materials. */
3
3
  export interface SegmentedTabOption {
4
4
  label: string;
5
5
  value: string;
@@ -7,9 +7,13 @@ export interface SegmentedTabOption {
7
7
  disabled?: boolean;
8
8
  tooltip?: string;
9
9
  }
10
- /** The three indicator chromes. `segmented` (default) = the muted pill-slider;
11
- * `pill` = the solid `--foreground` pill; `underline` = the hairline rule. */
12
- export type SegmentedTabsVariant = "segmented" | "pill" | "underline";
10
+ /** The two materials. `pill` (DEFAULT) = the glass-track slider (absorbs the
11
+ * retired `segmented`); `underline` = the paper ink-hairline rule. */
12
+ export type SegmentedTabsVariant = "pill" | "underline";
13
+ /** The orientation axis — `horizontal` (default) lays children in a row + tracks
14
+ * the indicator on the inline axis; `vertical` stacks a column + tracks the
15
+ * block axis (the vertical underline is the leading-edge ink rail). */
16
+ export type SegmentedTabsOrientation = "horizontal" | "vertical";
13
17
  export interface SegmentedTabsResponsive {
14
18
  /**
15
19
  * CSS length consumed inside `(min-width: <breakpoint>)`. BELOW it the
@@ -30,34 +34,26 @@ export interface SegmentedTabsResponsive {
30
34
  export interface SegmentedTabsProps {
31
35
  options: SegmentedTabOption[];
32
36
  /**
33
- * Indicator chrome — `segmented` (DEFAULT, the pill-slider over a muted
34
- * track), `pill` (solid foreground pill), `underline` (the hairline rule).
37
+ * The material — `pill` (DEFAULT, the glass-track slider) or `underline`
38
+ * (the paper ink-hairline rule).
35
39
  */
36
40
  variant?: SegmentedTabsVariant;
37
41
  /**
38
- * Multi-select — when true the surface mutates as a ToggleGroup (N
39
- * simultaneous pressed buttons, `role="group"`). Only valid on the
40
- * `segmented`/`pill` variants; `underline` is panel-nav (single-select).
42
+ * Orientation — `horizontal` (default) or `vertical`. Axis-derived on the
43
+ * one indicator engine.
41
44
  */
42
- multiSelect?: boolean;
45
+ orientation?: SegmentedTabsOrientation;
43
46
  /**
44
- * Tab-row overflow handling.
45
- * - `"none"` (default) — inline-grid; tabs share width and clip.
46
- * - `"scroll"` — flex row with intrinsic widths + edge fades; never clips.
47
- * - `"auto"` — flex row with intrinsic widths + plain horizontal scroll.
48
- */
49
- overflow?: "none" | "scroll" | "auto";
50
- /**
51
- * Responsive collapse — below the breakpoint the strip becomes a `<Select>`
52
- * (subsumes the former standalone ResponsiveTabs). `true` uses defaults;
53
- * an object tunes the breakpoint / desktop subset / accessible name.
47
+ * Responsive collapse — below the breakpoint the strip becomes a `<Select>`.
48
+ * `true` uses defaults; an object tunes the breakpoint / desktop subset /
49
+ * accessible name.
54
50
  */
55
51
  responsive?: boolean | SegmentedTabsResponsive;
56
52
  class?: HTMLAttributes["class"];
57
53
  }
58
54
  type __VLS_Props = SegmentedTabsProps;
59
55
  type __VLS_ModelProps = {
60
- modelValue: string | string[];
56
+ modelValue: string;
61
57
  };
62
58
  type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
63
59
  declare var __VLS_50: {
@@ -73,14 +69,13 @@ type __VLS_Slots = {} & {
73
69
  option?: (props: typeof __VLS_58) => any;
74
70
  };
75
71
  declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
76
- "update:modelValue": (value: string | string[]) => any;
72
+ "update:modelValue": (value: string) => any;
77
73
  }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
78
- "onUpdate:modelValue"?: ((value: string | string[]) => any) | undefined;
74
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
79
75
  }>, {
80
- overflow: "none" | "scroll" | "auto";
76
+ orientation: SegmentedTabsOrientation;
81
77
  variant: SegmentedTabsVariant;
82
78
  responsive: boolean | SegmentedTabsResponsive;
83
- multiSelect: boolean;
84
79
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
85
80
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
86
81
  declare const _default: typeof __VLS_export;