@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,352 @@
1
+ /* tokens/scheme-motion.css
2
+ §-1 color-scheme · §0 font · §1 duration · §2 easing (spring linear()) · §2.A ambient-motion · §2.B/§2.C · §3 z-index.
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
+ §-1 COLOR-SCHEME (AQ.W2 §1)
8
+
9
+ Lets native UI (scrollbars, spinbuttons, form-control chrome, the
10
+ default focus ring) honor the OS preference when the consumer has
11
+ NOT pinned a `.dark` class. glass-ui's dark mode is class-driven
12
+ (`.dark`, theme.css `@variant dark`), so `.dark` overrides to a hard
13
+ `dark` regardless of OS — but absent the class, native chrome should
14
+ still track `prefers-color-scheme`. `light dark` (not `only light`)
15
+ on `:root` delivers that; `.dark` hard-pins `dark`.
16
+
17
+ Baseline Widely Available → adopt natively, no `@supports` guard
18
+ (older engines ignore the property and keep default-light chrome).
19
+ `accent-color` (AQ.W2 §4) is the companion native-control brand;
20
+ both are inherited built-in <color>/keyword properties re-specified
21
+ inside `.dark`. The `--accent-color` token is defined in the §5
22
+ color block below (custom properties resolve order-independently).
23
+ ═══════════════════════════════════════════════ */
24
+ color-scheme: light dark;
25
+ accent-color: var(--accent-color);
26
+
27
+ /* ═══════════════════════════════════════════════
28
+ §0 FONT TOKEN SOURCE-OF-TRUTH
29
+
30
+ The single authoritative declaration of the library's font register.
31
+ theme.css bridges each --font-stack-* to its Tailwind --font-* namespace
32
+ var; typography.css consumes the bridged --font-* names. The public
33
+ runtime knobs remain --font-*, --leading-*, --tracking-*.
34
+
35
+ ONE brand register: Plus Jakarta Sans (text + display) + Fira Code (mono).
36
+ --font-stack-text drives the body/heading/prose/display register — the
37
+ library DEFAULT is the register every live surface paints (the demo +
38
+ speedtest render Plus Jakarta everywhere). The calibrated "Plus Jakarta
39
+ Sans Fallback" / "Fira Code Fallback" faces (declared in typography.css)
40
+ wrap the system stacks with Capsize metric overrides so the swap window
41
+ is geometry-neutral (zero CLS). --font-stack-display aliases the text
42
+ register: there is no separate display-serif voice. */
43
+ --font-stack-text: "Plus Jakarta Sans", "Plus Jakarta Sans Fallback", system-ui, sans-serif;
44
+ --font-stack-display: var(--font-stack-text);
45
+ --font-stack-sans: var(--font-stack-text);
46
+ --font-stack-mono: "Fira Code", "Fira Code Fallback", "Fira Mono", monospace;
47
+
48
+ --type-leading-micro: 1.2;
49
+ --type-leading-caption: 1.3;
50
+ --type-leading-small: 1.4;
51
+ --type-leading-body: 1.5;
52
+ --type-leading-prose: 1.618;
53
+ --type-leading-heading: 1.2;
54
+ --type-leading-display: 1.1;
55
+
56
+ --type-tracking-tight: -0.025em;
57
+ --type-tracking-snug: -0.01em;
58
+ --type-tracking-normal: 0;
59
+ --type-tracking-wide: 0.025em;
60
+ --type-tracking-wider: 0.05em;
61
+ --type-tracking-caps: 0.1em;
62
+
63
+ /* ═══════════════════════════════════════════════
64
+ §1 DURATION
65
+ ═══════════════════════════════════════════════ */
66
+ --duration-instant: 0.1s;
67
+ --duration-fast: 0.2s;
68
+ --duration-normal: 0.3s;
69
+ --duration-slow: 0.45s;
70
+ --duration-panel: 0.55s;
71
+ --duration-xl: 1s;
72
+ --duration-xxl: 1.5s;
73
+ --duration-shimmer-fast: 3s;
74
+ --duration-shimmer: 5s;
75
+ /* BA.W-GLASS-CAL (H2a) — `--duration-sparkle` (600ms) DELETED with the disco
76
+ recipe retirement: the sparkle-sweep keyframe + its sole `btn-audacious`
77
+ consumer are gone. */
78
+
79
+ /* AH.W5-e (FA-8 §4d) — motion-duration + staged-reveal canon.
80
+
81
+ Six duration tokens + three delay tokens promoted from raw literals
82
+ at speedtest's celebratory-reveal SFCs (SpeedtestResults, ThankYou,
83
+ ResultStack, CompleteBadge). Unified under the `--motion-*`
84
+ namespace (parallel to `--motion-ease-*`) so all motion tokens
85
+ cluster at one canon — duration + easing arm together. */
86
+
87
+ /* Staged-entrance pairing — opacity + transform Vue <Transition> arms
88
+ in the celebratory headline + result-row reveals. Partners with
89
+ `--motion-ease-staged-entrance` / `--motion-ease-overshoot`. */
90
+ --motion-duration-staged: 320ms;
91
+
92
+ /* One-shot celebratory shimmer — gold-headline shimmer animation
93
+ duration + staging delay. Shared canon so the speedtest results
94
+ headline and the thank-you headline stay in lockstep. */
95
+ --motion-duration-complete-shimmer: 2.4s;
96
+ --motion-delay-complete-shimmer: 220ms;
97
+ /* The gold-headline shimmer reads these two tokens under a one-shot
98
+ animation: at 2.4s + 220ms delay the bright band traverses the headline
99
+ glyphs cleanly. Load-bearing — zeroing either collapses the shimmer to
100
+ an imperceptible blow-through. */
101
+
102
+ /* CompleteBadge staged-reveal cluster — the disc / ring / check curve
103
+ fires at three asymmetric durations + delays per the A4-AF staged-
104
+ variety design intent. Promoting the magic numbers makes the
105
+ staged-variety visible at the canon. */
106
+ --motion-duration-badge-disc: 420ms;
107
+ --motion-duration-badge-ring: 560ms;
108
+ --motion-duration-badge-check: 380ms;
109
+ --motion-delay-badge-disc: 80ms;
110
+ --motion-delay-badge-ring: 220ms;
111
+ --motion-delay-badge-check: 460ms;
112
+
113
+ /* Staggered-reveal increment canon — three perceptually-distinct tiers for
114
+ per-row/per-cell/per-bar cascades:
115
+ • tight (40ms) — dense row cascades, sub-perceptual gap
116
+ • default (80ms) — the canonical row-stagger rhythm (matches
117
+ `useStagger`'s built-in fallback)
118
+ • relaxed (120ms) — wider cascades where each reveal carries its own
119
+ attention budget
120
+ Adjacent tiers keep cross-beats quiet (80 is the LCM of 40 and 2/3 of
121
+ 120). Consumers read these via inline-style calc() or `getComputedStyle`
122
+ at runtime. */
123
+ --motion-stagger-tight: 40ms;
124
+ --motion-stagger-default: 80ms;
125
+ --motion-stagger-relaxed: 120ms;
126
+
127
+ /* ═══════════════════════════════════════════════
128
+ §2 EASING — Spring curves via linear()
129
+
130
+ Generated from `scripts/regen-spring-tokens.mjs` — DO NOT hand-edit.
131
+ To tune a spring: edit the PRESETS table in the script and re-run
132
+ `node scripts/regen-spring-tokens.mjs`. The script invokes
133
+ `springLinearStops()` from `@mkbabb/keyframes.js` which solves the
134
+ analytic second-order damped harmonic oscillator and emits CSS
135
+ `linear()` stops; this is the single source of truth tying each
136
+ (response, ζ) pair to its serialized curve.
137
+
138
+ iOS-canonical (response, dampingFraction) per AL-X4 §3:
139
+ smooth: (0.50s, ζ=0.86) — gentle settle, sub-perceptual overshoot ~0.5%
140
+ snappy: (0.35s, ζ=0.65) — quick crisp, overshoot ~+6.8%
141
+ bouncy: (0.50s, ζ=0.45) — emphatic overshoot ~+20.5%
142
+ gentle: (0.70s, ζ=1.00) — patient critically-damped
143
+ dock: (0.32s, ζ=0.70) — dock expand/collapse morph, overshoot ~+4.6%
144
+
145
+ Note on `smooth`: at ζ=0.86 the analytic solver produces a peak
146
+ of 1.00498 (+0.5%) at the 24% slot — mathematically present but
147
+ sub-perceptual. I keep ζ=0.86 rather than promoting to ζ=1.0
148
+ because true critical damping is `gentle`'s register, and
149
+ `smooth` wants a slightly faster visual settle than `gentle`'s
150
+ patient curve. The 0.5% peak does not read as overshoot to the
151
+ eye but does narrowly distinguish `smooth` from `gentle`.
152
+
153
+ ── EASING DOCTRINE (AX.W52 §6 — which easing fits which job) ──
154
+ ONE recorded rule so the animation easing stops forking live. This
155
+ FORMALIZES the already-correct `transitions.css` idiom (enter=spring,
156
+ exit=bezier) as the house rule every recipe reaches for:
157
+
158
+ | Transition kind | Easing |
159
+ |--------------------------------------------------|-------------------------------------|
160
+ | Surface props (bg, border, color, box-shadow, | `--ease-standard` (bezier — a |
161
+ | opacity) | colour cross-fade reads as a |
162
+ | | wobble on a spring) |
163
+ | Transform — hover/press/active (scale, translate,| `--spring-smooth` (the ONE button/ |
164
+ | rotate) | interactive scale register) or |
165
+ | | `--spring-snappy` (crisp press) |
166
+ | Enter (mount, popover open, dialog in) | `--spring-bouncy` / `--spring-snappy`|
167
+ | Exit (unmount, close) | `--ease-out` / `--ease-standard` |
168
+ | | (bezier, NO overshoot — an exit |
169
+ | | must never overshoot past gone) |
170
+ | Position-tracked (specular pointer follow) | `--ease-standard` |
171
+
172
+ The BUTTON family (`.btn-pill` / `.tap-squish` / `.glass-btn` /
173
+ `btn-interactive`) UNIFIES its `scale` transform leg onto ONE register —
174
+ `--spring-smooth` — so hover + press read as one motion language (the
175
+ hover lift is the restrained `--scale-hover-btn` = 1.05, not the 1.08
176
+ `--scale-hover`). Springs read alive on TRANSFORM and ENTER (overshoot =
177
+ physicality); a spring on a COLOR or an EXIT reads as a wobble/hesitation.
178
+ `--ease-apple` is the ambient-only register (consumed solely by the Pulse
179
+ aura `--animate-ambient-pulse-easing` — NOT a second smooth-ease authority
180
+ for interactive transforms; those use `--spring-smooth`).
181
+ ═══════════════════════════════════════════════ */
182
+ --spring-smooth: linear(0, 0.09804 2.041%, 0.29288 4.082%, 0.49447 6.122%, 0.66436 8.163%, 0.79208 10.204%, 0.88050 12.245%, 0.93754 14.286%, 0.97182 16.327%, 0.99083 18.367%, 1.00027 20.408%, 1.00413 22.449%, 1.00502 24.490%, 1.00453 26.531%, 1.00355 28.571%, 1.00254 30.612%, 1.00169 32.653%, 1.00105 34.694%, 1.00060 36.735%, 1.00031 38.776%, 1.00014 40.816%, 1.00005 42.857%, 1.00000 44.898%, 1.00000 46.939%, 1.00000 48.980%, 1.00000 51.020%, 1.00000 53.061%, 1.00000 55.102%, 1.00000 57.143%, 1.00000 59.184%, 1.00000 61.224%, 1.00000 63.265%, 1.00000 65.306%, 1.00000 67.347%, 1.00000 69.388%, 1.00000 71.429%, 1.00000 73.469%, 1.00000 75.510%, 1.00000 77.551%, 1.00000 79.592%, 1.00000 81.633%, 1.00000 83.673%, 1.00000 85.714%, 1.00000 87.755%, 1.00000 89.796%, 1.00000 91.837%, 1.00000 93.878%, 1.00000 95.918%, 1.00000 97.959%, 1);
183
+ --spring-snappy: linear(0, 0.10438 2.041%, 0.32622 4.082%, 0.56668 6.122%, 0.77153 8.163%, 0.91961 10.204%, 1.01073 12.245%, 1.05549 14.286%, 1.06804 16.327%, 1.06171 18.367%, 1.04686 20.408%, 1.03044 22.449%, 1.01629 24.490%, 1.00596 26.531%, 0.99954 28.571%, 0.99633 30.612%, 0.99537 32.653%, 0.99575 34.694%, 0.99674 36.735%, 0.99786 38.776%, 0.99884 40.816%, 0.99956 42.857%, 1.00001 44.898%, 1.00024 46.939%, 1.00000 48.980%, 1.00000 51.020%, 1.00000 53.061%, 1.00000 55.102%, 1.00000 57.143%, 1.00000 59.184%, 1.00000 61.224%, 1.00000 63.265%, 1.00000 65.306%, 1.00000 67.347%, 1.00000 69.388%, 1.00000 71.429%, 1.00000 73.469%, 1.00000 75.510%, 1.00000 77.551%, 1.00000 79.592%, 1.00000 81.633%, 1.00000 83.673%, 1.00000 85.714%, 1.00000 87.755%, 1.00000 89.796%, 1.00000 91.837%, 1.00000 93.878%, 1.00000 95.918%, 1.00000 97.959%, 1);
184
+ --spring-bouncy: linear(0, 0.11105 2.041%, 0.36430 4.082%, 0.65496 6.122%, 0.90929 8.163%, 1.08828 10.204%, 1.18289 12.245%, 1.20482 14.286%, 1.17641 16.327%, 1.12214 18.367%, 1.06276 20.408%, 1.01239 22.449%, 0.97809 24.490%, 0.96099 26.531%, 0.95826 28.571%, 0.96514 30.612%, 0.97666 32.653%, 0.98873 34.694%, 0.99867 36.735%, 1.00520 38.776%, 1.00825 40.816%, 1.00847 42.857%, 1.00686 44.898%, 1.00443 46.939%, 1.00199 48.980%, 1.00004 51.020%, 0.99880 53.061%, 0.99827 55.102%, 0.99829 57.143%, 0.99866 59.184%, 0.99916 61.224%, 0.99966 63.265%, 1.00004 65.306%, 1.00027 67.347%, 1.00000 69.388%, 1.00000 71.429%, 1.00000 73.469%, 1.00000 75.510%, 1.00000 77.551%, 1.00000 79.592%, 1.00000 81.633%, 1.00000 83.673%, 1.00000 85.714%, 1.00000 87.755%, 1.00000 89.796%, 1.00000 91.837%, 1.00000 93.878%, 1.00000 95.918%, 1.00000 97.959%, 1);
185
+ --spring-gentle: linear(0, 0.09415 2.041%, 0.27374 4.082%, 0.45506 6.122%, 0.60779 8.163%, 0.72570 10.204%, 0.81213 12.245%, 0.87336 14.286%, 0.91570 16.327%, 0.94445 18.367%, 0.96371 20.408%, 0.97645 22.449%, 0.98481 24.490%, 0.99025 26.531%, 0.99377 28.571%, 0.99604 30.612%, 0.99749 32.653%, 0.99841 34.694%, 0.99900 36.735%, 0.99937 38.776%, 0.99961 40.816%, 0.99975 42.857%, 0.99985 44.898%, 1.00000 46.939%, 1.00000 48.980%, 1.00000 51.020%, 1.00000 53.061%, 1.00000 55.102%, 1.00000 57.143%, 1.00000 59.184%, 1.00000 61.224%, 1.00000 63.265%, 1.00000 65.306%, 1.00000 67.347%, 1.00000 69.388%, 1.00000 71.429%, 1.00000 73.469%, 1.00000 75.510%, 1.00000 77.551%, 1.00000 79.592%, 1.00000 81.633%, 1.00000 83.673%, 1.00000 85.714%, 1.00000 87.755%, 1.00000 89.796%, 1.00000 91.837%, 1.00000 93.878%, 1.00000 95.918%, 1.00000 97.959%, 1);
186
+ --spring-dock: linear(0, 0.10282 2.041%, 0.31773 4.082%, 0.54783 6.122%, 0.74309 8.163%, 0.88550 10.204%, 0.97598 12.245%, 1.02452 14.286%, 1.04368 16.327%, 1.04501 18.367%, 1.03739 20.408%, 1.02681 22.449%, 1.01672 24.490%, 1.00873 26.531%, 1.00323 28.571%, 0.99996 30.612%, 0.99837 32.653%, 0.99789 34.694%, 0.99805 36.735%, 0.99848 38.776%, 0.99897 40.816%, 0.99940 42.857%, 0.99972 44.898%, 0.99993 46.939%, 1.00004 48.980%, 1.00000 51.020%, 1.00000 53.061%, 1.00000 55.102%, 1.00000 57.143%, 1.00000 59.184%, 1.00000 61.224%, 1.00000 63.265%, 1.00000 65.306%, 1.00000 67.347%, 1.00000 69.388%, 1.00000 71.429%, 1.00000 73.469%, 1.00000 75.510%, 1.00000 77.551%, 1.00000 79.592%, 1.00000 81.633%, 1.00000 83.673%, 1.00000 85.714%, 1.00000 87.755%, 1.00000 89.796%, 1.00000 91.837%, 1.00000 93.878%, 1.00000 95.918%, 1.00000 97.959%, 1);
187
+
188
+ /* ── PER-SPRING DURATION CLOCK (BA.W-GLASS-CAL Unit 3) ──
189
+ Generated from `scripts/regen-spring-tokens.mjs` — DO NOT hand-edit.
190
+ Each `--spring-<name>-duration` is the spring's OWN 2%-band envelope-settle
191
+ time `t_s = -ln(0.02) / (ζ·ωₙ)` (ωₙ = 2π/response), derived from the SAME
192
+ (response, ζ) PRESETS table the `--spring-*` `linear()` curves above
193
+ derive from — never a hand value.
194
+
195
+ WHY: the `--spring-<name>` curve is NORMALIZED to 0..1 and discards the
196
+ spring's settle time. Pairing it with a generic `--duration-*` clock
197
+ (0.2/0.3/0.45s) re-timed EVERY spring to the same wall clock — snappy
198
+ (response 0.35s) and smooth (0.5s) both ran 300ms, so the crisp snappy
199
+ register dragged a dead sub-pixel tail (the R10-2 read: within-1px at
200
+ ~109ms but the transition ran 300ms). These clocks re-time UNDER each
201
+ register to its own settle WITHOUT touching the §6 register canon (which
202
+ spring fits which job): a `transition` pairs `--spring-<name>` with the
203
+ matching `--spring-<name>-duration`. */
204
+ --spring-smooth-duration: 0.36s;
205
+ --spring-snappy-duration: 0.34s;
206
+ --spring-bouncy-duration: 0.69s;
207
+ --spring-gentle-duration: 0.44s;
208
+ --spring-dock-duration: 0.28s;
209
+
210
+ /* Core cubic-bezier (exits, fallbacks, non-spring uses) */
211
+ --motion-ease-standard: cubic-bezier(0.4, 0, 0.2, 1);
212
+ --motion-ease-out: cubic-bezier(0, 0, 0.2, 1);
213
+ --motion-ease-in: cubic-bezier(0.4, 0, 1, 1);
214
+ --motion-ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
215
+
216
+ --ease-standard: var(--motion-ease-standard);
217
+ --ease-out: var(--motion-ease-out);
218
+ --ease-in: var(--motion-ease-in);
219
+ --ease-out-expo: var(--motion-ease-out-expo);
220
+
221
+ /* Apple-inspired — micro-interactions, switches, dock hover */
222
+ --motion-ease-apple: cubic-bezier(0.25, 0.1, 0.25, 1);
223
+
224
+ --ease-apple: var(--motion-ease-apple);
225
+ --ease-spring: var(--spring-snappy);
226
+ --ease-decelerate: var(--ease-out);
227
+ --ease-accelerate: var(--ease-in);
228
+
229
+ /* ═══════════════════════════════════════════════
230
+ §2.A AMBIENT MOTION — Pulse aura tokens
231
+
232
+ Breathing rhythm for `<Pulse variant="aura">`. The 6s duration is the
233
+ canon ambient-pulse rate; scale 1.0 ↔ 1.15 reads as a quiet halo at
234
+ intensity="normal" (Pulse remaps min/max from its `intensity` prop).
235
+ Reduced motion: Pulse.vue parks at the min stop, breath cycle disabled.
236
+
237
+ AX.W57 (P6) — the aura re-baselined from a glowing DISC to an AMBIENT
238
+ halo. The egregiousness was doubly-stacked: a 0.55-density currentColor
239
+ radial multiplied by an element opacity the `ambient-pulse` keyframe
240
+ drove up to 0.95 mid-breath (so a saturated viz hue read as a near-
241
+ opaque throbbing blob). The fix is two decoupled, single-source knobs:
242
+ · `--pulse-aura-strength` (0..1) — the ONE gradient-density scalar
243
+ both color-mix stops derive via calc() (replaces the
244
+ `--pulse-aura-opacity-pct` / `-pct-num` twin desync trap — the
245
+ percent and the raw number had to be hand-kept in sync).
246
+ · `--pulse-aura-breath-{min,max}` — the aura's OWN element-opacity
247
+ range, decoupled from the shared `--pulse-aura-opacity-*` shimmer
248
+ tokens (those stay 0.55/0.95 for the neutral skeleton-breath, where
249
+ a grey shimmer at that range is the correct soft swell).
250
+ The loud old read is the explicit `intensity="vivid"` opt-in. */
251
+ --animate-ambient-pulse-duration: 6s;
252
+ --animate-ambient-pulse-scale-min: 1.0;
253
+ --animate-ambient-pulse-scale-max: 1.15;
254
+ --animate-ambient-pulse-easing: var(--ease-apple);
255
+
256
+ /* Aura gradient density — ONE scalar (0..1). The center stop paints at
257
+ `strength`, the mid stop at `strength * 0.35` (both via calc() in
258
+ Pulse.vue). 0.22 reads as an ambient wash, not a glowing disc. */
259
+ --pulse-aura-strength: 0.22;
260
+
261
+ /* Aura element-opacity breath range (the `ambient-pulse` keyframe stops).
262
+ Quiet: the halo stays a wash at every phase of the 6s cycle. */
263
+ --pulse-aura-breath-min: 0.28;
264
+ --pulse-aura-breath-max: 0.42;
265
+
266
+ /* Skeleton-breath shimmer range — the SHARED neutral-shimmer stops
267
+ (`.skeleton-breath` reads these; a grey shimmer at 0.55↔0.95 is the
268
+ correct soft swell, distinct from the aura's calmer breath above). */
269
+ --pulse-aura-opacity-min: 0.55;
270
+ --pulse-aura-opacity-max: 0.95;
271
+
272
+ /* ═══════════════════════════════════════════════
273
+ §2.B SECTIONED PROGRESS — phase-bus rail (AB.W3.T2)
274
+
275
+ The sectioned `<Progress variant="sectioned">` exposes one
276
+ height knob + one track tint knob. Defaults size the rail at
277
+ 0.875rem (14px) — the W3 spec minimum (≥ 14px mobile, ≥ 18px
278
+ desktop). Consumers override the height per breakpoint via the
279
+ same token name on the consumer-side surface.
280
+
281
+ The bar reads as a recessed glass channel: inner top
282
+ catch-light + lower inner shadow + small outer drop. The
283
+ depth lives entirely in the Progress.vue scoped block; this
284
+ token only parameterises the rail BACKGROUND and HEIGHT —
285
+ depth shadows compose from the existing --shadow-color rung.
286
+ ═══════════════════════════════════════════════ */
287
+ --progress-sectioned-height: 0.875rem;
288
+ --progress-sectioned-track: var(--secondary);
289
+
290
+ /* ═══════════════════════════════════════════════
291
+ §2.C ANIMATION EXPRESSIVENESS
292
+
293
+ Two idiom families (the audacious press-ripple RETIRED at BA.W-GLASS-CAL):
294
+ • Progress lifecycle — the progress bar rides an intake pulse on
295
+ rising-edge, a crescendo brightening at ≥85%, and a one-shot discharge
296
+ flash at 100% (the crescendo is the typed `@property --progress-crescendo`).
297
+ • Chassis phase-tint companion — `@property --phase-tint-amount` so the
298
+ chassis backdrop warms toward the active phase, interpolating with
299
+ `--phase-color` across the consumer's phase-handoff window (600ms default).
300
+ ═══════════════════════════════════════════════ */
301
+
302
+ /* Progress lifecycle — typed crescendo + segment-local durations */
303
+ --motion-duration-progress-intake: 220ms; /* rising-edge pulse */
304
+ --motion-duration-progress-crescendo: 240ms; /* leading-edge brighten */
305
+ --motion-duration-progress-indeterminate: 4s; /* indeterminate sweep period */
306
+
307
+ /* Chassis depth-of-tint peak — the amount `--phase-tint-amount`
308
+ interpolates toward when a phase is active. Subtle by intent;
309
+ a 6% color-mix reads as "warmth toward the phase" without
310
+ overwhelming the chassis chrome's resting register. */
311
+ --phase-tint-peak: 6%;
312
+
313
+ /* BA.W-GLASS-CAL (H2a) — the `btn-audacious` press-ripple knobs
314
+ (`--ripple-radius-max` 12rem, `--motion-duration-ripple` 340ms) DELETED
315
+ with the disco recipe retirement: the ripple was btn-audacious-private and
316
+ has no surviving consumer (the calm CTA register's press is the §6
317
+ `--scale-press-btn` scale beat). The `@property --ripple-radius`
318
+ registration retires with it (property-regs.css). */
319
+
320
+ /* Skeleton breath variant — the M.3 "known-imminent" loading
321
+ register. 6s cycle (the canon ambient rate) so a known-imminent
322
+ skeleton breathes in lockstep with the dial and the Pulse aura.
323
+ Coexists with the 1.5s shimmer (sliding gradient) and the
324
+ Tailwind animate-pulse (2s, short-wait) variants — distinct
325
+ temporal registers per use-case. */
326
+ --skeleton-breath-duration: 6s;
327
+
328
+ /* ═══════════════════════════════════════════════
329
+ §3 Z-INDEX SCALE
330
+ ═══════════════════════════════════════════════ */
331
+ /* V.W2 T12 — Aurora background tier (sits behind --z-background).
332
+ Consumed by `<Aurora>` in speedtest's App.vue (`-z-10` literal today). */
333
+ --z-behind: -10;
334
+ --z-background: 0;
335
+ --z-content: 10;
336
+ --z-controls: 20;
337
+ --z-bar: 30;
338
+ --z-header: 35;
339
+ --z-dock: 40;
340
+ --z-panel: 45;
341
+ --z-overlay: 50;
342
+ --z-hovercard: 120;
343
+ --z-tooltip: 120;
344
+ --z-popover: 130;
345
+ --z-modal: 140;
346
+ --z-fullscreen: 150;
347
+ --z-toast: 160;
348
+ --z-toggle: 999;
349
+ --z-max: 9999;
350
+ --z-debug: 99999;
351
+
352
+ }
@@ -0,0 +1,166 @@
1
+ /* tokens/shadow.css
2
+ §7 shadows — the cartoon offset-stamp signature + the shadow-color base.
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
+ §7 SHADOWS — cartoon offset is the signature
8
+ ═══════════════════════════════════════════════ */
9
+ --shadow-cartoon: 3px 3px 0px 0px color-mix(in srgb, var(--foreground) 8%, transparent);
10
+ --shadow-cartoon-hover: 4px 4px 0px 0px color-mix(in srgb, var(--foreground) 10%, transparent);
11
+ --shadow-soft: 0 4px 12px rgba(0, 0, 0, 0.1);
12
+ --shadow-elevated: 0 8px 24px rgba(0, 0, 0, 0.12);
13
+ --shadow-modal:
14
+ 4px 4px 0px 0px color-mix(in srgb, var(--foreground) 8%, transparent),
15
+ 0 24px 64px color-mix(in srgb, var(--foreground) 12%, transparent);
16
+
17
+ --cartoon-shadow: var(--shadow-cartoon);
18
+ --cartoon-shadow-hover: var(--shadow-cartoon-hover);
19
+ --soft-shadow: var(--shadow-soft);
20
+ --elevated-shadow: var(--shadow-elevated);
21
+ --modal-shadow: var(--shadow-modal);
22
+
23
+ /* Elevation scale */
24
+ --shadow-xs: 0 1px 3px color-mix(in srgb, var(--shadow-color) 4%, transparent),
25
+ 0 1px 2px color-mix(in srgb, var(--shadow-color) 6%, transparent);
26
+ --shadow-sm: 0 2px 8px color-mix(in srgb, var(--shadow-color) 6%, transparent);
27
+ --shadow-md: 0 4px 16px color-mix(in srgb, var(--shadow-color) 8%, transparent);
28
+ --shadow-lg: 0 4px 20px color-mix(in srgb, var(--shadow-color) 12%, transparent);
29
+ --shadow-xl: 0 8px 24px color-mix(in srgb, var(--shadow-color) 14%, transparent);
30
+ --shadow-2xl: 0 25px 50px -12px color-mix(in srgb, var(--shadow-color) 25%, transparent);
31
+
32
+ /* Z.W2.T3a — uniform-cast shadow rung. Offset 0 / 0, no directional
33
+ Y bias. Use case: dock-hosted icons (e.g. the speedtest settings
34
+ gear) where the surrounding dock shadow's downward cast reads as
35
+ a per-icon right-edge halo on the rightmost child (A2 §B7). The
36
+ uniform variant carries the same color-mix recipe family as the
37
+ sized rungs (`--shadow-md`, `--shadow-lg`) so the perceived
38
+ elevation is a peer, not a sibling. Consumers compose via
39
+ `--shadow-dock-override: var(--shadow-uniform)` per-instance, or
40
+ attach to per-icon-button stacks where directional cast is wrong-
41
+ shape. Documented in DESIGN.md token table. */
42
+ --shadow-uniform: 0 0 12px color-mix(in srgb, var(--shadow-color) 8%, transparent);
43
+
44
+ /* Card = soft drop plate by default. The cartoon offset is a brand-flavoured
45
+ decoration (a sticker look), not the canonical card shape. Consumers
46
+ wanting the cartoon look pass <Card surface="cartoon">, which composes the
47
+ `.cartoon-surface` utility (it reads --shadow-cartoon directly). R3-spec
48
+ §F.1, S.W4; Q.W3 Lane H. */
49
+ --shadow-card: var(--shadow-md);
50
+ --card-shadow: var(--shadow-card);
51
+
52
+ /* AI.W1-α — sticky CardHeader background. Parameterises the
53
+ `bg-card/60` literal value.js's PaneHeader.vue carried so the
54
+ glass-ui canon owns the recipe. The scroll-driven `<CardHeader
55
+ shrink>` choreography reads this token for its sticky-header
56
+ backdrop tint; consumers retune per-app by overriding the
57
+ variable at any ancestor. Auto-dark via `--card`. */
58
+ --card-header-bg: color-mix(in srgb, var(--card) 60%, transparent);
59
+
60
+ /* Dock shadows — a single omnidirectional glow in the
61
+ `--shadow-md`/`--shadow-lg` family (a directional drop concentrated on
62
+ the pill's rounded right cap as a right-edge halo; the dock's own
63
+ border already defines the silhouette). Per-instance directional drop
64
+ reinstates via `--shadow-dock-override` (consumed by every `.glass-dock`
65
+ state selector — see dock.css). */
66
+ --shadow-dock: 0 0 20px color-mix(in srgb, var(--shadow-color) 14%, transparent);
67
+ --shadow-dock-collapsed: 0 0 12px color-mix(in srgb, var(--shadow-color) 12%, transparent);
68
+ --dock-shadow: var(--shadow-dock);
69
+ --dock-shadow-collapsed: var(--shadow-dock-collapsed);
70
+
71
+ /* AX.W04 F1 — the wrap/card-tier dock shadow. A wrapped multi-row dock (and
72
+ any finite-radius card silhouette) is a THICKER material than a flat thin
73
+ pill — WWDC25 §219 "material thickens as glass flexes larger". So when the
74
+ wrap dock expands it lifts its elevation onto the FLOATING-tier shadow
75
+ stack (the `--glass-shadow-floating` family — `--shadow-xl` + the
76
+ `--glass-material-rim` hairline + the `--glass-under-shadow-vivid` under-cast)
77
+ rather than carrying the flat `--shadow-dock` glow of a 40px pill. Composed
78
+ on `:root` as ONE consumer-overridable token (per the cartoon-shadow
79
+ override contract — override on the cascade, never a dead local). The dock
80
+ reads it via `calc()`-on-`--dock-expand-t` so the lift glides in lockstep
81
+ with the pill→card radius morph (ONE clock, ONE register). */
82
+ --glass-material-rim: 0 0 0 0.5px color-mix(in srgb, var(--shadow-color) 5%, transparent);
83
+ --shadow-dock-wrap: var(--shadow-xl),
84
+ var(--glass-material-rim),
85
+ var(--glass-under-shadow-vivid);
86
+
87
+ /* Cartoon shadow color primitives (kept for tiered cartoon utilities) */
88
+ --shadow-cartoon-color: rgb(0 0 0 / 0.12);
89
+ --shadow-cartoon-color-soft: rgb(0 0 0 / 0.06);
90
+
91
+ /* Tiered cartoon shadows */
92
+ --shadow-cartoon-sm: -3px 2px 1px color-mix(in srgb, var(--shadow-color) 10%, transparent),
93
+ 0 3px 1px color-mix(in srgb, var(--shadow-color) 10%, transparent),
94
+ -3px 3px 1px color-mix(in srgb, var(--shadow-color) 6%, transparent);
95
+ --shadow-cartoon-md: -4px 3px 1px color-mix(in srgb, var(--shadow-color) 12%, transparent),
96
+ 0 4px 1px color-mix(in srgb, var(--shadow-color) 12%, transparent),
97
+ -4px 4px 2px color-mix(in srgb, var(--shadow-color) 8%, transparent);
98
+ --shadow-cartoon-lg: -6px 4px 1px color-mix(in srgb, var(--shadow-color) 12%, transparent),
99
+ 0 6px 1px color-mix(in srgb, var(--shadow-color) 12%, transparent),
100
+ -6px 6px 2px color-mix(in srgb, var(--shadow-color) 8%, transparent);
101
+ --cartoon-shadow-sm: var(--shadow-cartoon-sm);
102
+ --cartoon-shadow-md: var(--shadow-cartoon-md);
103
+ --cartoon-shadow-lg: var(--shadow-cartoon-lg);
104
+
105
+ /* AY.W-COHERE E2 — the gel-bead ambient contact shadow (the GooBlob lit dome).
106
+ The metaball bead is NOT a Memphis sticker — it is a lit gel dome sitting IN
107
+ a scene, so it casts a SOFT, NEAR-CENTERED, low-offset ambient contact
108
+ shadow (small downward offset, a large soft blur, ambient-tinted), in the
109
+ same soft-ambient-light register the constellation / fourier / aurora
110
+ substrates speak — NOT the hard `5px 5px` near-black offset-stamp the
111
+ cartoon family carries (that stamp stays the identity of
112
+ <Card surface="cartoon">; it is removed ONLY from the gel bead, a different
113
+ lighting language). The shadow color is ambient: the bead's own
114
+ `--blob-color` mixed toward `--shadow-color` at a LOW strength, so the dome
115
+ casts a faint tinted contact shade. Adaptive-by-construction: `--shadow-color`
116
+ is `var(--foreground)`, which flips light→dark, so the contact shadow
117
+ re-resolves under `.dark` with NO hardcoded `.dark` re-declaration (the house
118
+ cartoon-shadow contract's pattern, applied to the ambient shadow). A consumer
119
+ retunes the bead's lighting by overriding `--blob-shadow` (or the
120
+ `--blob-shadow-*` sub-axes) on the cascade. */
121
+ --blob-shadow-offset: 0 4px;
122
+ --blob-shadow-blur: 14px;
123
+ --blob-shadow-color: color-mix(in srgb,
124
+ var(--blob-color, var(--shadow-color)) 22%, var(--shadow-color));
125
+ --blob-shadow-strength: 20%;
126
+ /* The AMBIENT cast (the soft diffuse drop) — the dome floats a little above its
127
+ surface. This is the first drop-shadow rung. */
128
+ --blob-shadow-ambient: var(--blob-shadow-offset) var(--blob-shadow-blur)
129
+ color-mix(in srgb, var(--blob-shadow-color) var(--blob-shadow-strength), transparent);
130
+
131
+ /* AZ.W-BLOB-STUDIO D4 — the GROUNDED gel-dome read. A single soft ambient cast
132
+ reads as a swatch FLOATING — there is no contact, no AO, nothing that says the
133
+ dome SITS on a surface. The grounded read is a TWO-RUNG drop-shadow composite
134
+ (drop-shadow filters chain, and EACH follows the irregular metaball silhouette —
135
+ a box-shadow would stamp a rectangle, missing the necking satellites): the soft
136
+ AMBIENT cast above PLUS a TIGHT, LOW-OFFSET, DARKER CONTACT band hugging the dome
137
+ base. The contact rung is the gravity cue — a near-zero blur, a small downward
138
+ offset, and ~2× the ambient strength, so the silhouette base READS pressed against
139
+ the surface (the contact-darkening AO the satellites pick up where they merge into
140
+ the body, since the drop-shadow hugs the WHOLE necked silhouette including the
141
+ satellite bulges). Both rungs ride the SAME `--blob-shadow-color` (the ambient
142
+ `--shadow-color`/`--foreground` base), so the grounded read re-resolves under
143
+ `.dark` with no hardcoded dark block (the house cartoon-shadow adaptive pattern).
144
+ A consumer retunes grounding by overriding `--blob-shadow-contact-*` or the whole
145
+ `--blob-shadow` composite on the cascade. */
146
+ --blob-shadow-contact-offset: 0 1px;
147
+ --blob-shadow-contact-blur: 3px;
148
+ --blob-shadow-contact-strength: 38%;
149
+ --blob-shadow-contact: var(--blob-shadow-contact-offset) var(--blob-shadow-contact-blur)
150
+ color-mix(in srgb, var(--blob-shadow-color) var(--blob-shadow-contact-strength), transparent);
151
+
152
+ /* The grounded composite is consumed by GooBlob.vue as TWO chained drop-shadow()
153
+ filters: drop-shadow(ambient) drop-shadow(contact). `--blob-shadow` keeps the
154
+ single-rung ambient value (back-compat: a consumer reading the old token still
155
+ gets the soft cast); the grounded read is the explicit two-rung pair. */
156
+ --blob-shadow: var(--blob-shadow-ambient);
157
+
158
+ /* The hover lift — the ambient cast deepens + softens (the dome rises) AND the
159
+ contact band TIGHTENS toward the lifted base (a touch of extra grounding-darken
160
+ as the dome presses on its surface on the rise). */
161
+ --blob-shadow-hover: 0 6px 20px
162
+ color-mix(in srgb, var(--blob-shadow-color) 26%, transparent);
163
+ --blob-shadow-contact-hover: 0 1px 4px
164
+ color-mix(in srgb, var(--blob-shadow-color) 44%, transparent);
165
+
166
+ }