@mkbabb/glass-ui 3.12.0 → 3.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (360) hide show
  1. package/dist/{CardAction-DuArVky-.js → CardAction-Cj2eycQ2.js} +2 -2
  2. package/dist/{CommandShortcut-CefCj5mt.js → CommandShortcut-RowNEO6i.js} +4 -4
  3. package/dist/{ContextMenuSubContent-Bhg4f5jX.js → ContextMenuSubContent-BQmxTAdw.js} +4 -4
  4. package/dist/{DataTable-CUHMukiQ.js → DataTable-BCddn3T3.js} +3 -3
  5. package/dist/{DialogContent-BRkT1cjP.js → DialogContent-Dl9WkAoS.js} +3 -3
  6. package/dist/{DialogFooter-Gprw8H_A.js → DialogFooter-Blu4t7tJ.js} +2 -2
  7. package/dist/{HoverPopover-2LOIW34a.js → HoverPopover-CISOJQuZ.js} +1 -1
  8. package/dist/{IconTooltip-Cus0fvK0.js → IconTooltip-DPzE09X9.js} +1 -1
  9. package/dist/MetricBadge-C9QMz1KT.js +79 -0
  10. package/dist/{Notification-DLMhblXR.js → Notification-DdwNxIrI.js} +2 -2
  11. package/dist/{NumberFieldContent-BbLOh8RU.js → NumberFieldContent-CqaN-SvN.js} +3 -3
  12. package/dist/{PopoverContent-BId6ggf_.js → PopoverContent-BYwt2-4x.js} +1 -1
  13. package/dist/{ScrollingText-BPP84wKo.js → ScrollingText-DfFrwSph.js} +1 -1
  14. package/dist/{SelectScrollDownButton-T32cVFeM.js → SelectScrollDownButton-CiDUxfEj.js} +6 -6
  15. package/dist/{Switch-Ch-k3Rv-.js → Switch-CsIuYP_e.js} +1 -1
  16. package/dist/{TabsList-B8CVOQPC.js → TabsList-Dttss653.js} +9 -5
  17. package/dist/{Toaster-1rYWrmAm.js → Toaster-D6q4HtXu.js} +50 -47
  18. package/dist/{ToggleGroupItem-COu_4IW4.js → ToggleGroupItem-D_AHlRw9.js} +18 -22
  19. package/dist/animated-digit.js +2 -2
  20. package/dist/api/index.d.ts +5 -2
  21. package/dist/api.js +2 -2
  22. package/dist/aurora.js +69 -69
  23. package/dist/{badge-CaoFJzRb.js → badge-UILT_3pZ.js} +1 -1
  24. package/dist/badge.js +1 -1
  25. package/dist/{button-DN39cGqL.js → button-ChXMfsud.js} +12 -12
  26. package/dist/button.js +1 -1
  27. package/dist/card.js +1 -1
  28. package/dist/carousel.js +8 -8
  29. package/dist/{check-BBKKKSTf.js → check-njhk-vfu.js} +1 -1
  30. package/dist/{chevron-down-BSkTP2aL.js → chevron-down-DKkxb4VV.js} +1 -1
  31. package/dist/{chevron-right-sDM0Yvrf.js → chevron-right-CPXbqQQz.js} +1 -1
  32. package/dist/{chevron-up-CCOD_FTz.js → chevron-up-n_24SqI-.js} +1 -1
  33. package/dist/coalesceMetric-5qIeZnTx.js +13 -0
  34. package/dist/{color-C5ls_QF7.js → color-CUYeFbgd.js} +9 -7
  35. package/dist/color.js +1 -1
  36. package/dist/command.js +1 -1
  37. package/dist/components/custom/animated-digit/AnimatedDigit.vue.d.ts +8 -0
  38. package/dist/components/custom/aurora/constants/presets.d.ts +5 -62
  39. package/dist/components/custom/aurora/constants/shaders/mediums.glsl.d.ts +1 -1
  40. package/dist/components/custom/aurora/constants/shaders/vangogh-medium.glsl.d.ts +1 -0
  41. package/dist/components/custom/aurora/index.d.ts +1 -1
  42. package/dist/components/custom/configurator/ConfiguratorRow.vue.d.ts +16 -0
  43. package/dist/components/custom/constellation/Constellation.vue.d.ts +74 -6
  44. package/dist/components/custom/constellation/composables/createConstellationField.d.ts +41 -0
  45. package/dist/components/custom/constellation/composables/useConstellationPointer.d.ts +35 -0
  46. package/dist/components/custom/constellation/constants.d.ts +61 -0
  47. package/dist/components/custom/constellation/constellationDraw.d.ts +30 -0
  48. package/dist/components/custom/constellation/constellationField.d.ts +116 -149
  49. package/dist/components/custom/constellation/constellationInteraction.d.ts +132 -0
  50. package/dist/components/custom/constellation/index.d.ts +5 -2
  51. package/dist/components/custom/controls/DarkModeToggle.vue.d.ts +11 -0
  52. package/dist/components/custom/dock/DockRail.vue.d.ts +88 -0
  53. package/dist/components/custom/dock/DockTabButton.vue.d.ts +3 -4
  54. package/dist/components/custom/dock/GlassDock.vue.d.ts +5 -118
  55. package/dist/components/custom/dock/composables/dockMorphContext.d.ts +36 -0
  56. package/dist/components/custom/dock/composables/index.d.ts +1 -0
  57. package/dist/components/custom/dock/composables/useDockClickIntegrity.d.ts +23 -0
  58. package/dist/components/custom/dock/composables/useDockMorphWindow.d.ts +15 -0
  59. package/dist/components/custom/dock/composables/useDockOrientationMorph.d.ts +44 -0
  60. package/dist/components/custom/dock/composables/useDockShellProps.d.ts +165 -0
  61. package/dist/components/custom/dock/composables/useLayerTransition.d.ts +44 -0
  62. package/dist/components/custom/dock/constants.d.ts +48 -0
  63. package/dist/components/custom/dock/index.d.ts +3 -0
  64. package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +5 -37
  65. package/dist/components/custom/fourier-field/index.d.ts +1 -1
  66. package/dist/components/custom/fourier-field/math.d.ts +17 -0
  67. package/dist/components/custom/fourier-field/presets.d.ts +54 -0
  68. package/dist/components/custom/goo-blob/composables/buildMetaballProgram.d.ts +18 -0
  69. package/dist/components/custom/goo-blob/composables/uploadBlobUniforms.d.ts +41 -0
  70. package/dist/components/custom/goo-blob/composables/useBlobPointer.d.ts +4 -3
  71. package/dist/components/custom/goo-blob/composables/useMetaballRenderer.d.ts +11 -8
  72. package/dist/components/custom/goo-blob/constants.d.ts +52 -0
  73. package/dist/components/custom/goo-blob/shaders/metaball-uniforms.glsl.d.ts +1 -0
  74. package/dist/components/custom/instrument-chassis/InstrumentChassis.vue.d.ts +2 -2
  75. package/dist/components/custom/labeled-field/LabeledField.vue.d.ts +37 -0
  76. package/dist/components/custom/labeled-field/LabeledSelect.vue.d.ts +6 -0
  77. package/dist/components/custom/labeled-field/LabeledSlider.vue.d.ts +6 -0
  78. package/dist/components/custom/labeled-field/LabeledSwitch.vue.d.ts +6 -0
  79. package/dist/components/custom/metric-badge/MetricBadge.vue.d.ts +11 -18
  80. package/dist/components/custom/metric-badge/index.d.ts +1 -0
  81. package/dist/components/custom/metric-cell/MetricCell.vue.d.ts +15 -4
  82. package/dist/components/custom/metric-stack/MetricRow.vue.d.ts +6 -4
  83. package/dist/components/custom/tabs/constants.d.ts +12 -0
  84. package/dist/components/custom/underline/GlassUnderline.vue.d.ts +84 -0
  85. package/dist/components/custom/underline/index.d.ts +2 -0
  86. package/dist/components/custom/underline/types.d.ts +56 -0
  87. package/dist/components/ui/card/Card.vue.d.ts +15 -3
  88. package/dist/components/ui/drawer/Drawer.vue.d.ts +1 -0
  89. package/dist/components/ui/dropdown-menu/DropdownMenuSubContent.vue.d.ts +2 -2
  90. package/dist/components/ui/metric-pill/MetricPill.vue.d.ts +6 -3
  91. package/dist/components/ui/slider/index.d.ts +22 -19
  92. package/dist/components/ui/tabs/TabsIndicator.vue.d.ts +4 -1
  93. package/dist/components/ui/toast/use-toast.d.ts +2 -2
  94. package/dist/components/ui/toggle/Toggle.vue.d.ts +1 -1
  95. package/dist/components/ui/toggle/index.d.ts +1 -1
  96. package/dist/components/ui/toggle-group/ToggleGroup.vue.d.ts +1 -7
  97. package/dist/components/ui/toggle-group/ToggleGroupItem.vue.d.ts +1 -3
  98. package/dist/components/ui/toggle-group/toggleGroupContext.d.ts +0 -13
  99. package/dist/composables/color/index.d.ts +12 -0
  100. package/dist/composables/dark/index.d.ts +1 -1
  101. package/dist/composables/dark/useGlobalDark.d.ts +1 -21
  102. package/dist/composables/glass/index.d.ts +0 -1
  103. package/dist/composables/glass/useGlassBackdropLuminance.d.ts +59 -0
  104. package/dist/composables/glass/useSpecularTracking.d.ts +12 -3
  105. package/dist/composables/motion/core/index.d.ts +1 -1
  106. package/dist/composables/motion/curves.d.ts +48 -0
  107. package/dist/composables/motion/index.d.ts +2 -0
  108. package/dist/composables/motion/springPresets.d.ts +33 -0
  109. package/dist/composables/motion/suite.d.ts +2 -0
  110. package/dist/composables/motion/useLiquidFlex.d.ts +85 -0
  111. package/dist/composables/motion/useSpringMount.d.ts +1 -1
  112. package/dist/configurator.js +1 -1
  113. package/dist/confirm-dialog.js +2 -2
  114. package/dist/constellation.js +336 -222
  115. package/dist/context-menu.js +2 -2
  116. package/dist/controls.js +48 -20
  117. package/dist/dark.d.ts +1 -1
  118. package/dist/dark.js +1 -1
  119. package/dist/data-table.js +1 -1
  120. package/dist/dialog.js +2 -2
  121. package/dist/dock.js +705 -365
  122. package/dist/dockContext-BegmJVmx.js +17 -0
  123. package/dist/dom.js +5 -5
  124. package/dist/{dropdown-menu-D77jX6Df.js → dropdown-menu-DzkkyBwX.js} +11 -8
  125. package/dist/dropdown-menu.js +1 -1
  126. package/dist/expandable-container.js +39 -80
  127. package/dist/forms.js +5 -5
  128. package/dist/fourier-field.js +134 -99
  129. package/dist/fourier-math.js +2 -2
  130. package/dist/glass-panel.js +86 -20
  131. package/dist/glass-ui.css +1 -1
  132. package/dist/glass-ui.js +222 -212
  133. package/dist/goo-blob.js +243 -212
  134. package/dist/hover-card.js +1 -1
  135. package/dist/hover-popover.js +1 -1
  136. package/dist/icon-tooltip.js +1 -1
  137. package/dist/index.d.ts +1 -3
  138. package/dist/instrument-chassis.js +1 -1
  139. package/dist/keyboard.js +1 -1
  140. package/dist/label.js +1 -1
  141. package/dist/labeled-field.js +28 -18
  142. package/dist/{math-DTpRVC0e.js → math-U6-RrLmV.js} +18 -2
  143. package/dist/metric-badge.js +1 -1
  144. package/dist/metric-cell.js +25 -21
  145. package/dist/metric-stack.js +35 -34
  146. package/dist/{minimize-2-lcXOuc6V.js → minimize-2-BV31Ob_h.js} +1 -1
  147. package/dist/motion-core.js +32 -137
  148. package/dist/motion-curves.d.ts +1 -0
  149. package/dist/motion-curves.js +130 -0
  150. package/dist/motion.js +38 -37
  151. package/dist/notification.js +1 -1
  152. package/dist/number-field.js +1 -1
  153. package/dist/paper-backdrop.js +1 -1
  154. package/dist/popover.js +1 -1
  155. package/dist/{presets-BP_ALM0m.js → presets-BKVyQfbt.js} +1 -14
  156. package/dist/progress.js +1 -1
  157. package/dist/reactive.js +2 -2
  158. package/dist/scrolling-text.js +1 -1
  159. package/dist/{search-nbkvr2dC.js → search-BSGrf2Sk.js} +1 -1
  160. package/dist/search.js +9 -9
  161. package/dist/select.js +3 -3
  162. package/dist/separator.js +1 -1
  163. package/dist/{sheet-VZEtNFvO.js → sheet-1fChZjtw.js} +3 -3
  164. package/dist/sheet.js +1 -1
  165. package/dist/{slider-ClgpP7EB.js → slider-B-JP2JlI.js} +4 -4
  166. package/dist/slider.js +1 -1
  167. package/dist/sortable-list.js +2 -2
  168. package/dist/springPresets--YdWTHtm.js +40 -0
  169. package/dist/stacked-icons.js +6 -6
  170. package/dist/styles/animations.css +29 -114
  171. package/dist/styles/cards.css +55 -0
  172. package/dist/styles/components.css +4 -1
  173. package/dist/styles/configurator.css +42 -0
  174. package/dist/styles/dock/layer-group.css +83 -25
  175. package/dist/styles/dock/layers.css +23 -1
  176. package/dist/styles/dock/morph-bridge.css +123 -0
  177. package/dist/styles/dock/morph.css +175 -45
  178. package/dist/styles/dock/overflow.css +51 -1
  179. package/dist/styles/dock/rail-extend.css +300 -0
  180. package/dist/styles/dock/shell.css +63 -105
  181. package/dist/styles/dock-controls/dark-mode-toggle.css +109 -0
  182. package/dist/styles/dock-controls/icon-button.css +133 -0
  183. package/dist/styles/dock-controls/tab-button.css +202 -0
  184. package/dist/styles/dock-controls/touch-floor.css +94 -0
  185. package/dist/styles/dock-controls/triggers.css +128 -0
  186. package/dist/styles/dock-controls.css +30 -595
  187. package/dist/styles/dock.css +2 -0
  188. package/dist/styles/drawer.css +2 -0
  189. package/dist/styles/floating-panel.css +17 -0
  190. package/dist/styles/glass/a11y-fallback.css +245 -0
  191. package/dist/styles/glass/ladder.css +337 -0
  192. package/dist/styles/glass/material.css +238 -0
  193. package/dist/styles/glass/progress-rail.css +78 -0
  194. package/dist/styles/glass/squircle.css +66 -0
  195. package/dist/styles/glass/surfaces.css +306 -0
  196. package/dist/styles/glass-refract.css +2 -0
  197. package/dist/styles/glass.css +31 -1188
  198. package/dist/styles/hover-popover.css +2 -0
  199. package/dist/styles/index.css +28 -14
  200. package/dist/styles/instrument-chassis.css +4 -0
  201. package/dist/styles/paper.css +2 -68
  202. package/dist/styles/segmented-tabs.css +275 -0
  203. package/dist/styles/theme/bridges.css +337 -0
  204. package/dist/styles/theme/dark.css +7 -0
  205. package/dist/styles/theme/literals.css +94 -0
  206. package/dist/styles/theme/radius.css +95 -0
  207. package/dist/styles/theme.css +26 -529
  208. package/dist/styles/tokens/color-radius.css +260 -0
  209. package/dist/styles/tokens/dark-arm.css +200 -0
  210. package/dist/styles/tokens/glass.css +440 -0
  211. package/dist/styles/tokens/light-dark.css +158 -0
  212. package/dist/styles/tokens/offsets-sizing.css +500 -0
  213. package/dist/styles/tokens/property-regs.css +169 -0
  214. package/dist/styles/tokens/scale-paper.css +366 -0
  215. package/dist/styles/tokens/scheme-motion.css +334 -0
  216. package/dist/styles/tokens/shadow.css +166 -0
  217. package/dist/styles/tokens.css +22 -2360
  218. package/dist/styles/typography.css +75 -21
  219. package/dist/styles/utilities/a11y-overrides.css +140 -0
  220. package/dist/styles/utilities/animate.css +26 -0
  221. package/dist/styles/utilities/base.css +365 -0
  222. package/dist/styles/utilities/btn.css +401 -0
  223. package/dist/styles/utilities/components.css +317 -0
  224. package/dist/styles/utilities.css +19 -1318
  225. package/dist/styles/view-transition.css +0 -51
  226. package/dist/switch.js +1 -1
  227. package/dist/tabs.js +91 -82
  228. package/dist/timeline.js +1 -1
  229. package/dist/toast.js +1 -1
  230. package/dist/toggle-group.js +1 -1
  231. package/dist/tooltip.js +1 -1
  232. package/dist/underline.d.ts +1 -0
  233. package/dist/underline.js +85 -0
  234. package/dist/{useAnimatedNumber-Bcpy5Etf.js → useAnimatedNumber-C5I3wWd8.js} +1 -1
  235. package/dist/{useConfiguratorState-DxAqksK6.js → useConfiguratorState-DAoeHVue.js} +8 -8
  236. package/dist/{useGlobalDark-CAhOXNLO.js → useGlobalDark-yhL4Wp-s.js} +3 -22
  237. package/dist/useLiquidFlex-BL0lLLN2.js +30 -0
  238. package/dist/useRAFLoop-Bxv0o6L5.js +109 -0
  239. package/dist/{useScrollProgress-CffFGLa5.js → useScrollProgress-Dlvx-L3v.js} +1 -1
  240. package/dist/useSpecularTracking-Bo5su68i.js +32 -0
  241. package/dist/useSpringMount-CI2jOstM.js +108 -0
  242. package/dist/{useTouchGate-WFyJYsth.js → useTouchGate-Dg7MQI1G.js} +1 -1
  243. package/dist/utils/coalesceMetric.d.ts +29 -0
  244. package/dist/utils/index.d.ts +1 -0
  245. package/dist/vReveal-CqaCz_mC.js +44 -0
  246. package/dist/watercolor-dot.js +11 -9
  247. package/dist/{x-Dfsegz9Y.js → x-BUwTKe50.js} +1 -1
  248. package/package.json +78 -58
  249. package/src/styles/animations.css +29 -114
  250. package/src/styles/cards.css +53 -0
  251. package/src/styles/configurator.css +42 -0
  252. package/src/styles/dock/layer-group.css +83 -25
  253. package/src/styles/dock/layers.css +23 -1
  254. package/src/styles/dock/morph-bridge.css +123 -0
  255. package/src/styles/dock/morph.css +175 -45
  256. package/src/styles/dock/overflow.css +51 -1
  257. package/src/styles/dock/rail-extend.css +300 -0
  258. package/src/styles/dock/shell.css +63 -105
  259. package/src/styles/dock-controls/dark-mode-toggle.css +109 -0
  260. package/src/styles/dock-controls/icon-button.css +133 -0
  261. package/src/styles/dock-controls/tab-button.css +202 -0
  262. package/src/styles/dock-controls/touch-floor.css +94 -0
  263. package/src/styles/dock-controls/triggers.css +128 -0
  264. package/src/styles/dock-controls.css +30 -595
  265. package/src/styles/dock.css +2 -0
  266. package/src/styles/floating-panel.css +15 -0
  267. package/src/styles/glass/a11y-fallback.css +245 -0
  268. package/src/styles/glass/ladder.css +337 -0
  269. package/src/styles/glass/material.css +238 -0
  270. package/src/styles/glass/progress-rail.css +78 -0
  271. package/src/styles/glass/squircle.css +66 -0
  272. package/src/styles/glass/surfaces.css +306 -0
  273. package/src/styles/glass.css +31 -1188
  274. package/src/styles/index.css +28 -14
  275. package/src/styles/paper.css +2 -68
  276. package/src/styles/segmented-tabs.css +271 -0
  277. package/src/styles/theme/bridges.css +337 -0
  278. package/src/styles/theme/dark.css +7 -0
  279. package/src/styles/theme/literals.css +94 -0
  280. package/src/styles/theme/radius.css +95 -0
  281. package/src/styles/theme.css +26 -529
  282. package/src/styles/tokens/color-radius.css +260 -0
  283. package/src/styles/tokens/dark-arm.css +200 -0
  284. package/src/styles/tokens/glass.css +440 -0
  285. package/src/styles/tokens/light-dark.css +158 -0
  286. package/src/styles/tokens/offsets-sizing.css +500 -0
  287. package/src/styles/tokens/property-regs.css +169 -0
  288. package/src/styles/tokens/scale-paper.css +366 -0
  289. package/src/styles/tokens/scheme-motion.css +334 -0
  290. package/src/styles/tokens/shadow.css +166 -0
  291. package/src/styles/tokens.css +22 -2360
  292. package/src/styles/typography.css +75 -21
  293. package/src/styles/utilities/a11y-overrides.css +140 -0
  294. package/src/styles/utilities/animate.css +26 -0
  295. package/src/styles/utilities/base.css +365 -0
  296. package/src/styles/utilities/btn.css +401 -0
  297. package/src/styles/utilities/components.css +317 -0
  298. package/src/styles/utilities.css +19 -1318
  299. package/src/styles/view-transition.css +0 -51
  300. package/dist/DeckProgress-Dmk4_AKN.js +0 -23
  301. package/dist/InstrumentRail-CUJ05YVG.js +0 -44
  302. package/dist/MetricBadge-BZVWIxNy.js +0 -80
  303. package/dist/components/custom/deck-progress/DeckProgress.vue.d.ts +0 -27
  304. package/dist/components/custom/deck-progress/index.d.ts +0 -2
  305. package/dist/components/custom/dialog-native/GlassDialogNative.vue.d.ts +0 -57
  306. package/dist/components/custom/dialog-native/index.d.ts +0 -1
  307. package/dist/components/custom/handmark/HandMark.vue.d.ts +0 -29
  308. package/dist/components/custom/handmark/brush.d.ts +0 -242
  309. package/dist/components/custom/handmark/freehand.d.ts +0 -69
  310. package/dist/components/custom/handmark/geometry.d.ts +0 -50
  311. package/dist/components/custom/handmark/index.d.ts +0 -21
  312. package/dist/components/custom/handmark/ink.d.ts +0 -11
  313. package/dist/components/custom/handmark/texture.d.ts +0 -39
  314. package/dist/components/custom/handmark/types.d.ts +0 -53
  315. package/dist/components/custom/handmark/useHandMark.d.ts +0 -87
  316. package/dist/components/custom/instrument-rail/InstrumentRail.vue.d.ts +0 -91
  317. package/dist/components/custom/instrument-rail/index.d.ts +0 -2
  318. package/dist/composables/motion/useRouteTransition.d.ts +0 -42
  319. package/dist/deck-progress.d.ts +0 -1
  320. package/dist/deck-progress.js +0 -2
  321. package/dist/dockContext-BKeIMmNk.js +0 -9
  322. package/dist/handmark.d.ts +0 -1
  323. package/dist/handmark.js +0 -663
  324. package/dist/instrument-rail.d.ts +0 -1
  325. package/dist/instrument-rail.js +0 -2
  326. package/dist/styles/instrument-rail.css +0 -127
  327. package/dist/useGlassRenderer-D7YGOYiM.js +0 -69
  328. package/dist/useSpecularTracking-BVRZsRHA.js +0 -26
  329. package/dist/useSpringMount-BJSHcLl3.js +0 -113
  330. package/dist/useViewTransition-DaN5Zrox.js +0 -21
  331. package/dist/vReveal-zUIQk-rJ.js +0 -53
  332. package/src/styles/instrument-rail.css +0 -127
  333. /package/dist/{ContextMenuContent-DDa0v27s.js → ContextMenuContent-CT3AS1WX.js} +0 -0
  334. /package/dist/{HoverCardContent-B6CcQ8He.js → HoverCardContent-Csywg3YF.js} +0 -0
  335. /package/dist/{Input-xuDwALQR.js → Input-DWQQIOC4.js} +0 -0
  336. /package/dist/{InstrumentChassis-C2f6cBaQ.js → InstrumentChassis-UUJX0-mW.js} +0 -0
  337. /package/dist/{Label-zRfbQdCn.js → Label-r3WzWrsj.js} +0 -0
  338. /package/dist/{ModalOverlay-B1GkAjNb.js → ModalOverlay-DVLI2VRr.js} +0 -0
  339. /package/dist/{PaperBackdrop-CqwjnfLv.js → PaperBackdrop-DIXTtVq6.js} +0 -0
  340. /package/dist/{Progress-iEuD9pxG.js → Progress-DwlUKGbr.js} +0 -0
  341. /package/dist/{SelectGroup-BFiod7X2.js → SelectGroup-aumMgWLs.js} +0 -0
  342. /package/dist/{SelectSeparator-C4Ql0gzV.js → SelectSeparator-BQ_1Fcbp.js} +0 -0
  343. /package/dist/{Separator-D7sD7RKj.js → Separator-0JE6LtNu.js} +0 -0
  344. /package/dist/{TooltipProvider-CmZzCuaG.js → TooltipProvider-B3MkB_8P.js} +0 -0
  345. /package/dist/{compile-BOXjLUxu.js → compile-B7NGOBcP.js} +0 -0
  346. /package/dist/{constants-yKeKnE84.js → constants-CS75AWHG.js} +0 -0
  347. /package/dist/{createContext-B44Sah_H.js → createContext-BM46COQ-.js} +0 -0
  348. /package/dist/{createLucideIcon-B6uNAU9G.js → createLucideIcon-DydS2qgk.js} +0 -0
  349. /package/dist/{menuItemVariants-CCoBNkU5.js → menuItemVariants-DPiEarb0.js} +0 -0
  350. /package/dist/{supportsCssTimeline-C5oe0lnD.js → supportsCssTimeline-BWenxvHU.js} +0 -0
  351. /package/dist/{useIntersectionPause-Cck5Uxk8.js → useIntersectionPause-Cc-H9ees.js} +0 -0
  352. /package/dist/{useInterval-Dsmqwi03.js → useInterval-iHludrxk.js} +0 -0
  353. /package/dist/{useKeyboardShortcuts-CyIYrndH.js → useKeyboardShortcuts-Be3w_Rwk.js} +0 -0
  354. /package/dist/{useResizeObserver-CWCbk5Px.js → useResizeObserver-BhgdhOIj.js} +0 -0
  355. /package/dist/{useResolveTokenColor-r9pnNjqK.js → useResolveTokenColor-Dvn2RZJW.js} +0 -0
  356. /package/dist/{useSortable-C8ReQ50P.js → useSortable-muI29agz.js} +0 -0
  357. /package/dist/{useTextHighlight-CWEi25hf.js → useTextHighlight-DmRYkOBx.js} +0 -0
  358. /package/dist/{useTimer-3xqf_54b.js → useTimer-Dzarvzuk.js} +0 -0
  359. /package/dist/{useUserInvalidAria-DoJKMZ3s.js → useUserInvalidAria-B2h6jAM_.js} +0 -0
  360. /package/dist/{useViewportReady-RIr5Wgkh.js → useViewportReady-B40FK4Pa.js} +0 -0
@@ -0,0 +1,169 @@
1
+ /* tokens/property-regs.css
2
+ §18 Houdini @property registrations (progress/phase/ripple/specular/glass-level/ui-scale) + §11b the pointer-anchored moving-specular :root/.dark magnitude cohort. LAST — registrations + the magnitude cohort that reads them.
3
+ Carved from the tokens.css cascade root; @import-ed by tokens.css in
4
+ cascade order. Same :root cascade context as its siblings. */
5
+ /* ═══════════════════════════════════════════════
6
+ §18 TYPED CSS PROPERTIES — Houdini @property registrations
7
+ (AI.W4 grammar — adjacent to §2.C tokens above)
8
+
9
+ Three typed custom properties register with the CSS Houdini @property
10
+ API so transitions interpolate VALUES (percentage / length) rather
11
+ than the textual representation. Unregistered fallback is safe — the
12
+ `initial-value` provides a sensible default for any consumer that
13
+ imports this stylesheet on a browser that doesn't yet support the
14
+ typed @property registration (the cross-fade collapses to the
15
+ initial value, then re-paints at the new state).
16
+
17
+ Browser support: Chromium 85+, Safari 16.4+, Firefox 128+. The
18
+ speedtest deployment target sits well within the floor.
19
+
20
+ • --progress-crescendo (percentage) — the leading-edge brightness
21
+ ramp on `<Progress variant="gradient">` past 85% modelValue.
22
+ `inherits: false` because the value is consumed at one
23
+ declaration only (the gradient stop calculation); inheriting
24
+ would let an unrelated ancestor accidentally drive a sibling
25
+ progress bar.
26
+
27
+ • --phase-tint-amount (percentage) — the chassis depth-of-tint
28
+ companion to `--phase-color`. `inherits: true` because the
29
+ value cascades from the chassis root through every region
30
+ wrapper that reads it for a sympathetic tint (matches the
31
+ `--phase-color` inheritance pattern).
32
+
33
+ • --ripple-radius (length) — the `btn-audacious` press ripple
34
+ radial. `inherits: false` because each button owns its own
35
+ ripple state (a hovered parent must not push a ripple-radius
36
+ onto a non-pressed child).
37
+ ═══════════════════════════════════════════════ */
38
+
39
+ @property --progress-crescendo {
40
+ syntax: "<percentage>";
41
+ inherits: false;
42
+ initial-value: 0%;
43
+ }
44
+
45
+ @property --phase-tint-amount {
46
+ syntax: "<percentage>";
47
+ inherits: true;
48
+ initial-value: 0%;
49
+ }
50
+
51
+ @property --ripple-radius {
52
+ syntax: "<length>";
53
+ inherits: false;
54
+ initial-value: 0px;
55
+ }
56
+
57
+ /* ═══════════════════════════════════════════════
58
+ §11b POINTER-ANCHORED MOVING SPECULAR (AV.W15)
59
+
60
+ The iOS-26 Liquid Glass "light travels around the material /
61
+ illuminate under your fingertip" behaviour. A masked radial-gradient
62
+ catch-light rides the surface at (--specular-x, --specular-y), driven
63
+ by the consumer's pointer-tracked --mouse-x/--mouse-y write. Registered
64
+ as typed custom properties so the position INTERPOLATES smoothly between
65
+ pointer samples (a bare unregistered var() snaps; the @property reg lets
66
+ the engine animate the percentage stop).
67
+
68
+ • --specular-x / --specular-y (percentage) — the catch-light centre.
69
+ `inherits: false` because each glass surface owns its own pointer
70
+ position (a hovered parent must not push its specular onto a child —
71
+ the no-glass-on-glass discipline made mechanical).
72
+
73
+ • --specular-intensity (number) — the catch-light alpha multiplier.
74
+ `inherits: false` for the same per-surface-ownership reason; rises on
75
+ hover/active, settles to its rest floor on leave.
76
+
77
+ @property crosses Baseline 2024-07-09. The consumption (the masked
78
+ radial + the reduced-motion static bracket + the var() fallback) lives
79
+ in glass-specular-track.css; the registrations live here alongside the
80
+ other three regs so the typed-property tier has one home.
81
+ ═══════════════════════════════════════════════ */
82
+
83
+ @property --specular-x {
84
+ syntax: "<percentage>";
85
+ inherits: false;
86
+ initial-value: 50%;
87
+ }
88
+
89
+ @property --specular-y {
90
+ syntax: "<percentage>";
91
+ inherits: false;
92
+ initial-value: 50%;
93
+ }
94
+
95
+ @property --specular-intensity {
96
+ syntax: "<number>";
97
+ inherits: false;
98
+ initial-value: 0;
99
+ }
100
+
101
+ /* AX.W54 — the GLASS-FIRST single knob. `--glass-level` is the ONE clarity
102
+ scalar threaded through BOTH glass ladders at their single sites (the
103
+ `--glass-bg-*` opacity recipe + the `--glass-blur-*` radii). It is a typed,
104
+ INHERITING <number> so a host setting it on any ancestor retunes every
105
+ descendant glass surface (the @container-free cascade path) — and so it
106
+ animates smoothly rather than snapping. The level acts as a clarity multiplier
107
+ that PRESERVES level=1 (byte-identical to the hand-tuned ladder):
108
+ • level 1 — the calibrated glass (today's surfaces, unchanged).
109
+ • level 0 — the OPAQUE escape: solid `--card` + `blur(0)` through the SAME
110
+ machinery (the `.glass-opaque` rung + the a11y brackets ride it).
111
+ • level >1 — clearer (more transparent + more diffuse) in lockstep.
112
+ Glass is the DEFAULT surface register for EVERY band (USER-DECIDED MAXIMAL);
113
+ the opaque level-0 rung is the explicit opt-out. W55 carries the over-light
114
+ legibility on the SEPARATE `--glass-tint-*` axis (the `--glass-backdrop` probe
115
+ lifts the tint toward ink — level = opacity+blur, tint = darken-over-light, the
116
+ two axes coordinate but never collapse: the a11y Clear↔Tinted escape rides
117
+ level-up here AND tint-toward-ink under `prefers-contrast: more`). */
118
+ @property --glass-level {
119
+ syntax: "<number>";
120
+ inherits: true;
121
+ initial-value: 1;
122
+ }
123
+
124
+ /* AX.W51 D18 — the master comfortable-sizing scalar registered typed. The
125
+ `<number>` syntax guarantees `calc(<base> * var(--ui-scale))` is always valid (a
126
+ malformed override CLAMPS to the initial value 1, not an invalidated calc — the
127
+ fail-safe); `inherits: true` (unlike the per-element specular @property cohort)
128
+ so a SCOPED override (a dense data-table region) cascades to every descendant
129
+ control without a per-element set; the type makes it animatable (a density
130
+ toggle COULD spring it). Mirrors the `--glass-level` registration above (the
131
+ cascading-scalar idiom), distinct from the per-element specular @property cohort
132
+ (those are `inherits: false`). */
133
+ @property --ui-scale {
134
+ syntax: "<number>";
135
+ inherits: true;
136
+ initial-value: 1;
137
+ }
138
+
139
+ /* ── The specular-intensity magnitude cohort (AX.W09) ──────────────────────
140
+ The catch-light alpha multiplier at each interaction state, as a SINGLE
141
+ overridable token cohort (was three buried literals across glass.css —
142
+ `0.35` rest floor / `0.6` hover / `0.85` active — and the `.dark` arm's
143
+ `0.22`). `glass.css`'s `.glass-material::before` rest/hover/active rules READ
144
+ these, so the subtle-vs-extreme magnitude is a knob a consumer (or the dark
145
+ arm) retunes ON THE CASCADE — never a re-buried literal. Override on `:root`
146
+ to retune library-wide; the cartoon-shadow override contract is the precedent.
147
+
148
+ Re-baselined AGAIN at AX.W52 D19 — with the central screen-disc replaced by a
149
+ BOUNDED plus-lighter edge gleam (glass.css), the gleam is a whisper at every
150
+ rung, so the cohort drops further (the W09 0.22/0.32 ceiling still lifted the
151
+ whole-tile disc on hover):
152
+ • rest 0 — static, unwired surfaces are CLEAN; the gleam wakes only on
153
+ hover/active or on a pointer-wired surface. Aligns the painted
154
+ rest with the @property `--specular-intensity { initial-value:
155
+ 0 }` dormancy.
156
+ • hover 0.10 — a whisper edge gleam, not a bloom.
157
+ • active 0.16 — the press whisper. */
158
+ :root {
159
+ --glass-specular-intensity-rest: 0;
160
+ --glass-specular-intensity-hover: 0.1;
161
+ --glass-specular-intensity-active: 0.16;
162
+ }
163
+
164
+ /* Over the deep canvas `plus-lighter` still lifts, so the dark arm runs a touch
165
+ softer on the interaction rungs (rest already 0). */
166
+ .dark {
167
+ --glass-specular-intensity-hover: 0.08;
168
+ --glass-specular-intensity-active: 0.12;
169
+ }
@@ -0,0 +1,366 @@
1
+ /* tokens/scale-paper.css
2
+ §11 interactive scales & focus · §12 paper textures · §13 gold · §14 rainbow · §16 timeline · §17 metric · §19 table density · §20 platform motion.
3
+ Carved from the tokens.css cascade root; @import-ed by tokens.css in
4
+ cascade order. Same :root cascade context as its siblings. */
5
+ :root {
6
+ /* ═══════════════════════════════════════════════
7
+ §11 INTERACTIVE SCALES & FOCUS
8
+ ═══════════════════════════════════════════════ */
9
+ --scale-hover: 1.08;
10
+ /* AX.W52 — the restrained BUTTON hover lift. `--scale-hover` (1.08) is an
11
+ 8% jump — emphatic for a marquee CTA, jarring as the general hover. The
12
+ button family (the audacious CTAs + `btn-interactive`) lifts on the
13
+ smaller `--scale-hover-btn` routed through `--spring-smooth` (the
14
+ sub-perceptual settle, not the snappy bounce), so the hover reads as ONE
15
+ coherent glide with the surface-leg cross-fade rather than a mechanical
16
+ pop. The dock keeps its proportionally-larger `--scale-hover-dock` (small
17
+ icon, bigger lift reads smaller).
18
+ AX.W54 Q3 — lifted 1.035 → 1.05: the 1.035 overshot DOWN (W52 tamed the
19
+ 1.08 snap so hard the lift read as nothing), so the glass hover now reads
20
+ as THREE legs together on hover — the specular gleam waking, a perceptible
21
+ scale, and the bg/border cross-fade — distinguishable from rest BEFORE the
22
+ click. Still sub-perceptual-bounce on `--spring-smooth`; the magnitude
23
+ moved, the easing register did not. */
24
+ --scale-hover-btn: 1.05;
25
+ --scale-hover-dock: 1.1;
26
+ --scale-press: 0.96;
27
+
28
+ /* Press-scale rungs. `--scale-press` (0.96) is the canonical iOS Liquid
29
+ Glass press value every primitive reaches for unless it has a documented
30
+ reason (DESIGN.md §L3); `--scale-press-btn` aliases the slightly-softer
31
+ `--scale-press-sm` (0.97) the button + slider recipes consume.
32
+
33
+ AT.W7-dock-b — press canon. `--scale-press-dock` previously hard-coded a
34
+ deeper 0.92 (a second magic press value with no documented rationale),
35
+ so a dock control pressed visibly harder than every other primitive. It
36
+ now references the canonical `--scale-press` (0.96) — ONE source for the
37
+ press scale across the system. A consumer wanting the dock's old deeper
38
+ press overrides `--scale-press-dock` on the dock instance. */
39
+ --scale-press-dock: var(--scale-press);
40
+ --scale-press-sm: 0.97;
41
+ --scale-press-btn: var(--scale-press-sm);
42
+
43
+ /* AX.W53 — the SegmentedTabs travel-squish cap. The active indicator
44
+ (segmented/pill slider OR the underline rule) STRETCHES along its travel
45
+ axis as it glides between tabs, then settles to fit — the Material 3
46
+ ELASTIC / Apple Liquid-Glass "controls insist on animating themselves"
47
+ register, kept RESTRAINED. The deform is volume-preserving (stretch X,
48
+ compress Y in lockstep: `scale: var(--stretch) calc(1 / var(--stretch))`)
49
+ so it reads as an elastic warp, never a size pump. The cap holds the peak
50
+ LOW (1.08 ≈ +8%) — iOS 26.2 dialed motion DOWN; a high-frequency control
51
+ wants a whisper of squish, not a bounce. A consumer dials the elasticity
52
+ (or to 1 for none) without touching source. */
53
+ --tab-indicator-max-stretch: 1.08;
54
+ --opacity-disabled: 0.5;
55
+ --opacity-icon-muted: 0.8;
56
+
57
+ --focus-ring-width: 2px;
58
+ --focus-ring-shadow: 0 0 0 var(--focus-ring-width) color-mix(in srgb, var(--ring) 30%, transparent),
59
+ 0 0 8px color-mix(in srgb, var(--ring) 15%, transparent);
60
+ --focus-ring: var(--focus-ring-shadow);
61
+
62
+ /* ═══════════════════════════════════════════════
63
+ §12 PAPER TEXTURES
64
+ ═══════════════════════════════════════════════ */
65
+ /* Canonical subtle paper-texture opacity — restored from fourier-original
66
+ (`4df1a06:web/src/style.css:53-54`) after A.W3.5.ab confirmed the
67
+ heretofore `opacity='1'` URI rendered as an overt grain field in every
68
+ downstream consumer of `.paper-texture`. The SVG `opacity` attribute is
69
+ baked at parse-time and cannot read a CSS var, so the subtle value must
70
+ be inlined; if a consumer needs a heavier overlay, they should layer
71
+ a wrapper element with its own `opacity:`/`mix-blend-mode:` atop. */
72
+ --paper-clean-texture: url("data:image/svg+xml,%3Csvg width='200' height='200' viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
73
+ --paper-aged-texture: url("data:image/svg+xml,%3Csvg width='200' height='200' viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.5' numOctaves='5' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.06'/%3E%3C/svg%3E");
74
+
75
+ /* ═══════════════════════════════════════════════
76
+ §13 GOLD (accent family kept for consumers using it)
77
+ ═══════════════════════════════════════════════ */
78
+ --gold: oklch(0.751 0.147 84.2);
79
+ --gold-light: oklch(0.890 0.183 96.1);
80
+ --gold-dark: oklch(0.599 0.132 64.2);
81
+ /* AY.W-PRIM-POLISH D1 — the saturated CTA plate the AW.W13 gold-CTA contract
82
+ names. A FIXED deep gold (mode-INVARIANT — the gold-CTA hover backplate must
83
+ be dark in BOTH modes so the white label clears ≥4.5:1; deepening toward the
84
+ mode-flipping `--foreground` brightened the dark plate to a cream-gold and
85
+ broke dark). ~`--gold-dark` deepened toward warm-ink → ~rgb(120,87,45),
86
+ 6.5:1 white in light / 5.5:1 in dark. The opaque base of `btn-audacious-gold`
87
+ :hover. */
88
+ --gold-deep: oklch(0.487 0.103 63.0);
89
+
90
+ --color-gold: var(--gold);
91
+ --color-gold-light: var(--gold-light);
92
+ --color-gold-dark: var(--gold-dark);
93
+ --color-gold-deep: var(--gold-deep);
94
+
95
+ /* ═══════════════════════════════════════════════
96
+ §14 RAINBOW PALETTE — oklch (AV.W16 TW2; mode-independent, no .dark
97
+ mirror; hue preserved from the prior hsl() cadence)
98
+ ═══════════════════════════════════════════════ */
99
+ --rainbow-red: oklch(0.636 0.210 25.5);
100
+ --rainbow-orange: oklch(0.737 0.163 58.9);
101
+ --rainbow-yellow: oklch(0.900 0.183 103.7);
102
+ --rainbow-green: oklch(0.772 0.233 144.8);
103
+ --rainbow-blue: oklch(0.633 0.162 252.1);
104
+ --rainbow-indigo: oklch(0.566 0.206 294.1);
105
+ --rainbow-violet: oklch(0.684 0.250 327.9);
106
+
107
+ --rainbow-pastel-red: oklch(0.793 0.066 18.7);
108
+ --rainbow-pastel-orange: oklch(0.823 0.059 57.3);
109
+ --rainbow-pastel-yellow: oklch(0.889 0.068 98.1);
110
+ --rainbow-pastel-green: oklch(0.826 0.072 149.5);
111
+ --rainbow-pastel-blue: oklch(0.783 0.056 264.2);
112
+ --rainbow-pastel-indigo: oklch(0.772 0.062 300.2);
113
+ --rainbow-pastel-violet: oklch(0.799 0.070 314.4);
114
+
115
+ /* ═══════════════════════════════════════════════
116
+ §16 TIMELINE
117
+ Timeline primitive tokens. All three variants (scrubber +
118
+ segmented + continuous) compose these. Both segmented + continuous
119
+ arrays carry the same `TimelineSegment[]` data shape; only the
120
+ rendering geometry differs. See DESIGN.md `## Timeline Primitive`.
121
+ ═══════════════════════════════════════════════ */
122
+
123
+ /* Heights — per-variant rail thickness */
124
+ --timeline-scrubber-height: 0.5rem; /* 8px — single-track scrubber */
125
+ --timeline-segmented-height: 0.625rem; /* 10px — N adjacent bands */
126
+ --timeline-continuous-height: 0.75rem; /* 12px — ONE pill, N regions */
127
+
128
+ /* Geometry — shared across all variants */
129
+ --timeline-dot-size: 0.875rem; /* 14px — boundary dot diameter (pointer: fine) */
130
+ --timeline-dot-size-touch: 1.25rem; /* 20px — boundary dot diameter (pointer: coarse) */
131
+ --timeline-touch-target: 44px; /* AC.W6d F2.I-04 — WCAG 2.5.5 target-size floor.
132
+ The `::before` halo around each dot extends to
133
+ this dimension so finger-precision users meet
134
+ the (target-size: 44×44 minimum) clause without
135
+ the visible dot growing to that footprint at
136
+ pointer: fine. */
137
+ --timeline-segment-flex: 1 1 0; /* per-cell flex distribution (segmented) */
138
+
139
+ /* Boundary-dot glass knobs (Q.W4 Lane B — promoted from
140
+ ContinuousTimeline.vue SFC fallbacks; `3cb70db` minted these as a
141
+ private dialect). The continuous-variant dot is a GLASS primitive:
142
+ a translucent tinted fill over a backdrop blur with a hairline
143
+ ring. These knobs let consumers retune the resting glass + the
144
+ per-state tints without a `:deep()` reach.
145
+ fill — resting translucent fill
146
+ blur — backdrop blur tier behind the dot
147
+ ring — hairline glass ring (border-color)
148
+ tint-current — wash colour for the active-phase dot
149
+ tint-completed — wash colour for the completed-phase dot
150
+ check-color — completion-tick stroke (defaults to the
151
+ completed tint) */
152
+ --timeline-dot-fill: var(--surface-tint-12);
153
+ --timeline-dot-blur: var(--glass-blur-quiet);
154
+ --timeline-dot-ring: var(--glass-border-floating);
155
+ --timeline-dot-tint-current: var(--accent, var(--foreground));
156
+ --timeline-dot-tint-completed: var(--success, var(--foreground));
157
+ --timeline-dot-check-color: var(--timeline-dot-tint-completed);
158
+
159
+ /* Continuous-variant specific — seam dividers between regions.
160
+ Set `--timeline-continuous-seam-opacity: 0` to suppress the
161
+ inter-region 1px dividers entirely. Default `0.25` reads as a
162
+ subtle hairline; the `--timeline-continuous-seam-color` knob lets
163
+ consumers override the seam tint independently of opacity. */
164
+ --timeline-continuous-seam-opacity: 0.25;
165
+ --timeline-continuous-seam-color: color-mix(
166
+ in srgb,
167
+ var(--foreground) calc(var(--timeline-continuous-seam-opacity) * 100%),
168
+ transparent
169
+ );
170
+
171
+ /* Per-segment default gradient fallback — applied when a segment
172
+ omits its `gradient` field. Consumers can override per-phase via
173
+ the `--timeline-segment-gradient-{key}` knobs below. */
174
+ --timeline-segment-default-gradient: linear-gradient(
175
+ 90deg,
176
+ var(--surface-tint-15),
177
+ var(--surface-tint-25)
178
+ );
179
+
180
+ /* Per-phase gradient defaults — paint the canonical chart palette
181
+ at the gradient leading edge, fading to a 60%-opacity tail. The
182
+ speedtest consumer wires these via `gradient: "var(--timeline-segment-gradient-ping)"`
183
+ per segment; the same names work for any consumer who follows the
184
+ ping/download/upload/jitter taxonomy. */
185
+ --timeline-segment-gradient-ping: linear-gradient(
186
+ 90deg,
187
+ var(--chart-ping),
188
+ color-mix(in srgb, var(--chart-ping) 60%, transparent)
189
+ );
190
+ --timeline-segment-gradient-download: linear-gradient(
191
+ 90deg,
192
+ var(--chart-download),
193
+ color-mix(in srgb, var(--chart-download) 60%, transparent)
194
+ );
195
+ --timeline-segment-gradient-upload: linear-gradient(
196
+ 90deg,
197
+ var(--chart-upload),
198
+ color-mix(in srgb, var(--chart-upload) 60%, transparent)
199
+ );
200
+ --timeline-segment-gradient-jitter: linear-gradient(
201
+ 90deg,
202
+ var(--chart-jitter),
203
+ color-mix(in srgb, var(--chart-jitter) 60%, transparent)
204
+ );
205
+
206
+ /* ═══════════════════════════════════════════════
207
+ §17 METRIC
208
+
209
+ MetricRow / MetricStack value-clamp dialect. The declared values are the
210
+ `audacious` poster register — the hero-scale clamp for a single giant
211
+ number; MetricStack's `[data-register="result"]` selector overrides it
212
+ locally for the compact multi-row ledger. Three clamp arms each: `min`
213
+ (floor), `cqi` (the binding container-query middle term), `max`
214
+ (ceiling); unit carries min/max only (its cqi is a fixed 6cqi).
215
+ ═══════════════════════════════════════════════ */
216
+
217
+ /* Value register — audacious-poster hero clamp */
218
+ --metric-row-value-clamp-min: 4.5rem;
219
+ --metric-row-value-clamp-cqi: 34cqi;
220
+ --metric-row-value-clamp-max: var(--type-display-hero);
221
+
222
+ /* Unit register — one tier below the value it qualifies */
223
+ --metric-row-unit-clamp-min: 1.5rem;
224
+ --metric-row-unit-clamp-max: 3.25rem;
225
+
226
+ /* Label register — uppercase, the binding row-height term in the
227
+ compact `result` register */
228
+ --metric-row-label-clamp-min: 1.125rem;
229
+ --metric-row-label-clamp-cqi: 5cqi;
230
+ --metric-row-label-clamp-max: 2.75rem;
231
+
232
+ /* ═══════════════════════════════════════════════
233
+ §2.D INSTRUMENT-CLUSTER COMPOSITION RHYTHM
234
+
235
+ The instrument-chassis family owns the under-meter / progress-cluster
236
+ grammar.
237
+
238
+ • `--meter-progress-inset` — the negative-margin inset that pulls the
239
+ under-meter bar INTO the unpainted ring lane around the dial canvas
240
+ (~4% of meter-size). Consumed at `.phase-progress` via
241
+ `margin-block-start: calc(-1 * var(--meter-progress-inset))`. The
242
+ `--meter-size` reference resolves against the consumer's own
243
+ declaration; the 200px fallback keeps the calc well-defined.
244
+ • `--progress-stack-gap` — vertical rhythm between any two stacked
245
+ progress rails inside one cluster.
246
+ ═══════════════════════════════════════════════ */
247
+ --meter-progress-inset: calc(var(--meter-size, 200px) * 0.04);
248
+ --progress-stack-gap: clamp(0.1875rem, 0.4cqi, 0.375rem);
249
+
250
+ /* ═══════════════════════════════════════════════
251
+ §2.E CELEBRATION-TIER REGISTER
252
+
253
+ Shared peak for any "completion" / "thank-you" surface.
254
+
255
+ • `--celebration-row-rhythm` — gap between the cluster's rows (cqi-axis).
256
+ • `--text-celebration-headline-size` — the single designed peak both
257
+ celebration surfaces clamp toward (cqi-axis).
258
+ • `--complete-headline-size` — the per-consumer font-size hook a consumer
259
+ assigns the canon clamp to so its headline pegs at the shared peak;
260
+ the default falls back to a smaller hero-rung clamp.
261
+ ═══════════════════════════════════════════════ */
262
+ --celebration-row-rhythm: clamp(0.5rem, 1.6cqi, 1rem);
263
+ --text-celebration-headline-size: clamp(2.5rem, 12cqi, 9rem);
264
+ --complete-headline-size: clamp(2.25rem, 11cqi, 4rem);
265
+
266
+ /* ═══════════════════════════════════════════════
267
+ §19 TABLE DENSITY
268
+
269
+ A single unitless knob `--table-density` scales the cell padding +
270
+ header row height of the Table / DataTable primitive. Default `1`
271
+ resolves to 1rem cell padding + 3rem header height; 0.75 is a compact
272
+ admin table, 1.25 is comfortable/touch-friendly. The derived tokens are
273
+ read by the `table-cell` / `table-head` utilities; changing the knob
274
+ cascades instantly via CSS inheritance — no JS prop needed.
275
+ ═══════════════════════════════════════════════ */
276
+ --table-density: 1;
277
+ --table-cell-px: calc(1rem * var(--table-density));
278
+ --table-cell-py: calc(1rem * var(--table-density));
279
+ --table-head-h: calc(3rem * var(--table-density));
280
+ --table-head-px: calc(1rem * var(--table-density));
281
+
282
+ /* ═══════════════════════════════════════════════
283
+ §20 PLATFORM MOTION (AQ.W5)
284
+
285
+ The native-platform motion substrate axes. Three families, each read
286
+ by a `@supports`-gated CSS recipe in `scroll-driven.css`,
287
+ `animations.css` (§TOP-LAYER), and `view-transition.css` — every visual
288
+ knob a token so a consumer retunes without editing library source.
289
+
290
+ SCROLL-DRIVEN (scroll-driven.css). Values mirror the JS-fallback
291
+ composable defaults (`useScrollProgress` / `useStaggerReveal`) so the
292
+ native CSS path and the fallback path read identically — no visual seam
293
+ at the `@supports` boundary.
294
+
295
+ TOP-LAYER (animations.css §TOP-LAYER). The `@starting-style` entry/exit
296
+ grammar for native `<dialog>` / `[popover]` glass surfaces. The backdrop dim
297
+ uses the house alpha-derivative `color-mix(in srgb, var(--background) Npct,
298
+ transparent)` (AZ.W-ADAPTIVE-AUTO A5-1). It is NOT the `hsl(var(--background)
299
+ / α)` channel form: `--background` is a COMPLETE `hsl()` color
300
+ (`= hsl(48 12% 98%)`), so `hsl(var(--background) / α)` double-wraps to
301
+ `hsl(hsl(…) / α)` — invalid, never paints (the modal dim was silently dead).
302
+ The genuine channel form would require `--background` declared as a bare
303
+ `H S% L%` triple, which it never is — hence the alpha-derivative mix.
304
+
305
+ VIEW-TRANSITION (view-transition.css). The shared `.gl-list-item` group
306
+ recipe + the `--vt-*` axes the `useViewTransition` substrate consumers
307
+ (dock layer swap, muster J's verdict re-rank) tune their swap against.
308
+ ═══════════════════════════════════════════════ */
309
+ --scroll-progress-scroller: root;
310
+ --scroll-reveal-rise: 6px;
311
+ --scroll-reveal-range-end: 60%;
312
+
313
+ --top-layer-enter-scale: 0.96;
314
+ --top-layer-backdrop-blur: 8px;
315
+ --top-layer-backdrop-dim: 0.5;
316
+
317
+ --vt-duration: var(--duration-normal);
318
+ /* AX.W05 — ONE iOS-spring vocabulary: every spring-flavored transition reads
319
+ a governed `--spring-*` register. The legacy apple-spring cubic-bezier
320
+ (+27.5% overshoot) was a SECOND authority beside the regen `--spring-*`
321
+ cohort; it is EXCISED. Its emphatic-overshoot register maps to the playful
322
+ `--spring-bouncy` (the closest `linear()` overshoot stop-set), so the VT
323
+ default + the cards/top-layer transitions share one spring primitive
324
+ (CPU + GPU sample the same curve). No cubic-bezier fallback seed survives —
325
+ the `linear()` spring degrades to `ease` where `linear()` is unsupported. */
326
+ --vt-ease: var(--spring-bouncy);
327
+ --vt-rise: 8px;
328
+
329
+ /* AT.W6-dock-c / AU.W8 — the dock layer-swap morph timing, minted ONCE so
330
+ both engine paths are timing-IDENTICAL: the FLIP fallback (via
331
+ `--dock-motion-resize`), the native View-Transition group (its
332
+ `animation-timing-function`), AND the runtime SpringProgress driver
333
+ (AU.W8.3) consume this same `(0.32, 0.7)` source curve. Retires the AQ.W6
334
+ fork where the VT path ran `--vt-ease` (apple-spring, +27.5% overshoot)
335
+ while the FLIP ran the snappy spring. `--vt-ease` still defaults the
336
+ other VT recipes (`.gl-list-item`).
337
+
338
+ AU.W8 — RETARGET snappy → dock. `--spring-snappy` (ζ=0.65, +6.8%) read as
339
+ mechanical: a stiff plateau at ~48% with too little overshoot to feel
340
+ alive ("not iOS-smooth"). AW.W2 then retuned the dock spring to the
341
+ iOS-control register: `--spring-dock` ((0.32, 0.7), ~+4.6%) settles snappy
342
+ with a restrained overshoot — the felt iOS dock morph, off the prior
343
+ playful +18.5% register. The runtime driver's DOCK_SPRING const MIRRORS the
344
+ (0.32, 0.7) PRESETS row, so the CSS token and the JS-driven morph are
345
+ bit-identical. */
346
+ --dock-resize-spring: var(--spring-dock);
347
+
348
+ /* AT.W7-dock-b — dock-control press micro-feedback spring. A TRANSFORM-ONLY
349
+ spring (`scale`/`rotate`) the dock controls apply to their hover/press
350
+ activation so the squish reads with a touch of spring-back rather than a
351
+ flat ease. STRICTLY transform-scoped: it must never touch the surface-tier
352
+ `[data-held]` fades (background/border/box-shadow), which stay on
353
+ `--duration-fast var(--ease-standard)`. The duration pairs with
354
+ `--duration-fast`; consumers retune the whole feel via this one token.
355
+
356
+ AY.W-DOCK2 (D6) — the register is `--spring-smooth`, the §6 easing-doctrine
357
+ transform-press register (tokens.css §2: transform hover/press/active →
358
+ `--spring-smooth`/`--spring-snappy`, NEVER `--spring-bouncy`; a press must
359
+ settle, never overshoot into a visible bounce). The prior `--spring-bouncy`
360
+ ROOT default was off-doctrine, shadowed for the four named controls by a
361
+ per-surface re-point in dock-controls.css — the exact per-surface fork the
362
+ doctrine kills. The re-point is now a DEAD byte-identical redeclaration and is
363
+ DELETED; the ROOT token IS the doctrine register, so any other consumer of
364
+ `--dock-press-spring` inherits the correct smooth register. */
365
+ --dock-press-spring: var(--duration-fast) var(--spring-smooth);
366
+ }