@mkbabb/glass-ui 3.10.0 → 3.10.1

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 (269) hide show
  1. package/dist/{CardAction-DuArVky-.js → CardAction-DrAcAV4d.js} +2 -2
  2. package/dist/{CommandShortcut-CefCj5mt.js → CommandShortcut-mV2e1aG6.js} +2 -2
  3. package/dist/{DataTable-CUHMukiQ.js → DataTable-C3E6jZ5B.js} +2 -2
  4. package/dist/{DialogContent-BRkT1cjP.js → DialogContent-BxaaafFi.js} +1 -1
  5. package/dist/{HoverPopover-2LOIW34a.js → HoverPopover-CDA_SaCe.js} +1 -1
  6. package/dist/{MetricBadge-BZVWIxNy.js → MetricBadge-idgrkqoP.js} +5 -7
  7. package/dist/{Notification-DLMhblXR.js → Notification-Cu0nN17_.js} +1 -1
  8. package/dist/{NumberFieldContent-BbLOh8RU.js → NumberFieldContent-CHEWghnY.js} +2 -2
  9. package/dist/{PopoverContent-BId6ggf_.js → PopoverContent-DpUvdYY-.js} +1 -1
  10. package/dist/{Progress-iEuD9pxG.js → Progress-BW-StFw2.js} +1 -1
  11. package/dist/{ScrollingText-BPP84wKo.js → ScrollingText-DruYCni_.js} +1 -1
  12. package/dist/{SelectScrollDownButton-T32cVFeM.js → SelectScrollDownButton-pirzjm--.js} +3 -3
  13. package/dist/{Switch-Ch-k3Rv-.js → Switch-DeAqg6pi.js} +1 -1
  14. package/dist/{TabsList-B8CVOQPC.js → TabsList-BAVzOZpg.js} +2 -2
  15. package/dist/{Toaster-1rYWrmAm.js → Toaster-CvuuW_y9.js} +49 -46
  16. package/dist/{ToggleGroupItem-Cev4pOVK.js → ToggleGroupItem-DtD37b4G.js} +4 -4
  17. package/dist/animated-digit.js +2 -2
  18. package/dist/api/index.d.ts +3 -4
  19. package/dist/api.js +1 -1
  20. package/dist/aurora.js +66 -66
  21. package/dist/{badge-CaoFJzRb.js → badge-NdCQMvvB.js} +1 -1
  22. package/dist/badge.js +1 -1
  23. package/dist/{button-DN39cGqL.js → button-DyiWFAOE.js} +12 -12
  24. package/dist/button.js +1 -1
  25. package/dist/canvas.js +2 -2
  26. package/dist/card.js +1 -1
  27. package/dist/carousel.js +5 -5
  28. package/dist/collapsible.js +1 -1
  29. package/dist/{color-C5ls_QF7.js → color-B65wWyQz.js} +9 -7
  30. package/dist/color.js +1 -1
  31. package/dist/command.js +1 -1
  32. package/dist/components/custom/aurora/constants/shaders/mediums.glsl.d.ts +1 -1
  33. package/dist/components/custom/aurora/constants/shaders/vangogh-medium.glsl.d.ts +1 -0
  34. package/dist/components/custom/constellation/Constellation.vue.d.ts +12 -0
  35. package/dist/components/custom/constellation/composables/createConstellationField.d.ts +35 -0
  36. package/dist/components/custom/constellation/composables/useConstellationPointer.d.ts +35 -0
  37. package/dist/components/custom/constellation/constants.d.ts +36 -0
  38. package/dist/components/custom/constellation/constellationDraw.d.ts +18 -0
  39. package/dist/components/custom/constellation/constellationField.d.ts +10 -151
  40. package/dist/components/custom/constellation/constellationInteraction.d.ts +102 -0
  41. package/dist/components/custom/constellation/index.d.ts +3 -1
  42. package/dist/components/custom/controls/DarkModeToggle.vue.d.ts +11 -0
  43. package/dist/components/custom/dock/DockTabButton.vue.d.ts +3 -4
  44. package/dist/components/custom/dock/GlassDock.vue.d.ts +2 -110
  45. package/dist/components/custom/dock/composables/dockMorphContext.d.ts +36 -0
  46. package/dist/components/custom/dock/composables/useDockMorphWindow.d.ts +15 -0
  47. package/dist/components/custom/dock/composables/useDockShellProps.d.ts +131 -0
  48. package/dist/components/custom/dock/composables/useLayerTransition.d.ts +44 -0
  49. package/dist/components/custom/dock/constants.d.ts +23 -0
  50. package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +0 -29
  51. package/dist/components/custom/fourier-field/index.d.ts +1 -1
  52. package/dist/components/custom/fourier-field/math.d.ts +17 -0
  53. package/dist/components/custom/fourier-field/presets.d.ts +54 -0
  54. package/dist/components/custom/goo-blob/composables/buildMetaballProgram.d.ts +18 -0
  55. package/dist/components/custom/goo-blob/composables/uploadBlobUniforms.d.ts +41 -0
  56. package/dist/components/custom/goo-blob/composables/useBlobPointer.d.ts +4 -3
  57. package/dist/components/custom/goo-blob/composables/useMetaballRenderer.d.ts +11 -8
  58. package/dist/components/custom/goo-blob/constants.d.ts +52 -0
  59. package/dist/components/custom/goo-blob/shaders/metaball-uniforms.glsl.d.ts +1 -0
  60. package/dist/components/custom/instrument-chassis/InstrumentChassis.vue.d.ts +2 -2
  61. package/dist/components/custom/metric-badge/MetricBadge.vue.d.ts +0 -8
  62. package/dist/components/custom/tabs/constants.d.ts +12 -0
  63. package/dist/components/custom/underline/GlassUnderline.vue.d.ts +84 -0
  64. package/dist/components/custom/underline/index.d.ts +2 -0
  65. package/dist/components/custom/underline/types.d.ts +56 -0
  66. package/dist/components/ui/drawer/Drawer.vue.d.ts +1 -0
  67. package/dist/components/ui/dropdown-menu/DropdownMenuSubContent.vue.d.ts +2 -2
  68. package/dist/components/ui/slider/index.d.ts +22 -19
  69. package/dist/components/ui/toast/use-toast.d.ts +2 -2
  70. package/dist/composables/color/index.d.ts +12 -0
  71. package/dist/composables/glass/useSpecularTracking.d.ts +12 -3
  72. package/dist/composables/motion/core/index.d.ts +0 -1
  73. package/dist/composables/motion/curves.d.ts +48 -0
  74. package/dist/composables/motion/index.d.ts +2 -0
  75. package/dist/composables/motion/springPresets.d.ts +33 -0
  76. package/dist/composables/motion/suite.d.ts +2 -0
  77. package/dist/composables/motion/useSpringMount.d.ts +1 -1
  78. package/dist/configurator.js +1 -1
  79. package/dist/confirm-dialog.js +2 -2
  80. package/dist/constellation.js +260 -225
  81. package/dist/controls.js +48 -14
  82. package/dist/dark.js +1 -1
  83. package/dist/data-table.js +1 -1
  84. package/dist/dialog.js +2 -2
  85. package/dist/dock.js +339 -327
  86. package/dist/dockContext-bho8B1A4.js +17 -0
  87. package/dist/{dropdown-menu-D77jX6Df.js → dropdown-menu-DVnQcA0E.js} +7 -4
  88. package/dist/dropdown-menu.js +1 -1
  89. package/dist/expandable-container.js +38 -61
  90. package/dist/forms.js +2 -2
  91. package/dist/fourier-field.js +137 -102
  92. package/dist/fourier-math.js +2 -2
  93. package/dist/glass-ui.css +1 -1
  94. package/dist/glass-ui.js +287 -209
  95. package/dist/goo-blob.js +243 -212
  96. package/dist/hover-popover.js +1 -1
  97. package/dist/icon-tooltip.js +1 -1
  98. package/dist/index.d.ts +0 -3
  99. package/dist/keyboard.js +1 -1
  100. package/dist/labeled-field.js +5 -5
  101. package/dist/{math-DTpRVC0e.js → math-BUU9hHID.js} +18 -2
  102. package/dist/metric-badge.js +1 -1
  103. package/dist/metric-stack.js +1 -1
  104. package/dist/motion-core.js +69 -70
  105. package/dist/motion-curves.d.ts +1 -0
  106. package/dist/motion-curves.js +130 -0
  107. package/dist/motion.js +38 -37
  108. package/dist/notification.js +1 -1
  109. package/dist/number-field.js +1 -1
  110. package/dist/popover.js +1 -1
  111. package/dist/progress.js +1 -1
  112. package/dist/pulse.js +1 -1
  113. package/dist/reactive.js +1 -1
  114. package/dist/scrolling-text.js +1 -1
  115. package/dist/search.js +6 -6
  116. package/dist/select.js +1 -1
  117. package/dist/{sheet-VZEtNFvO.js → sheet-ChSXcJpU.js} +1 -1
  118. package/dist/sheet.js +1 -1
  119. package/dist/{slider-CyzcxBoh.js → slider-sfl8gFDD.js} +4 -4
  120. package/dist/slider.js +1 -1
  121. package/dist/sortable-list.js +2 -2
  122. package/dist/springPresets-aRSm-4_k.js +40 -0
  123. package/dist/stacked-icons.js +6 -6
  124. package/dist/styles/animations.css +18 -74
  125. package/dist/styles/components.css +1 -1
  126. package/dist/styles/dock/layer-group.css +22 -0
  127. package/dist/styles/dock/layers.css +11 -1
  128. package/dist/styles/dock/morph.css +95 -19
  129. package/dist/styles/dock/shell.css +12 -0
  130. package/dist/styles/dock-controls.css +28 -31
  131. package/dist/styles/drawer.css +2 -0
  132. package/dist/styles/floating-panel.css +2 -0
  133. package/dist/styles/glass/a11y-fallback.css +245 -0
  134. package/dist/styles/glass/ladder.css +304 -0
  135. package/dist/styles/glass/material.css +238 -0
  136. package/dist/styles/glass/progress-rail.css +78 -0
  137. package/dist/styles/glass/squircle.css +66 -0
  138. package/dist/styles/glass/surfaces.css +306 -0
  139. package/dist/styles/glass-refract.css +2 -0
  140. package/dist/styles/glass.css +31 -1188
  141. package/dist/styles/hover-popover.css +2 -0
  142. package/dist/styles/index.css +24 -6
  143. package/dist/styles/instrument-chassis.css +4 -0
  144. package/dist/styles/paper.css +2 -68
  145. package/dist/styles/theme.css +13 -20
  146. package/dist/styles/tokens/color-radius.css +250 -0
  147. package/dist/styles/tokens/dark-arm.css +194 -0
  148. package/dist/styles/tokens/glass.css +413 -0
  149. package/dist/styles/tokens/light-dark.css +158 -0
  150. package/dist/styles/tokens/offsets-sizing.css +406 -0
  151. package/dist/styles/tokens/property-regs.css +169 -0
  152. package/dist/styles/tokens/scale-paper.css +361 -0
  153. package/dist/styles/tokens/scheme-motion.css +334 -0
  154. package/dist/styles/tokens/shadow.css +132 -0
  155. package/dist/styles/tokens.css +22 -2355
  156. package/dist/styles/typography.css +18 -6
  157. package/dist/styles/utilities/a11y-overrides.css +140 -0
  158. package/dist/styles/utilities/animate.css +26 -0
  159. package/dist/styles/utilities/base.css +365 -0
  160. package/dist/styles/utilities/btn.css +399 -0
  161. package/dist/styles/utilities/components.css +317 -0
  162. package/dist/styles/utilities.css +19 -1260
  163. package/dist/styles/view-transition.css +0 -51
  164. package/dist/switch.js +1 -1
  165. package/dist/tabs.js +98 -98
  166. package/dist/timeline.js +2 -2
  167. package/dist/toast.js +1 -1
  168. package/dist/toggle-group.js +1 -1
  169. package/dist/typewriter.js +1 -1
  170. package/dist/underline.d.ts +1 -0
  171. package/dist/underline.js +85 -0
  172. package/dist/{useAnimatedNumber-Bcpy5Etf.js → useAnimatedNumber-DfVgP4te.js} +1 -1
  173. package/dist/{useConfiguratorState-DxAqksK6.js → useConfiguratorState-BdQXh9ie.js} +1 -1
  174. package/dist/useSpecularTracking-DFK_fhpG.js +32 -0
  175. package/dist/useSpringMount-DXUzxBjV.js +108 -0
  176. package/dist/vReveal-CqaCz_mC.js +44 -0
  177. package/dist/watercolor-dot.js +2 -2
  178. package/package.json +34 -52
  179. package/src/styles/animations.css +18 -74
  180. package/src/styles/dock/layer-group.css +22 -0
  181. package/src/styles/dock/layers.css +11 -1
  182. package/src/styles/dock/morph.css +95 -19
  183. package/src/styles/dock/shell.css +12 -0
  184. package/src/styles/dock-controls.css +28 -31
  185. package/src/styles/glass/a11y-fallback.css +245 -0
  186. package/src/styles/glass/ladder.css +304 -0
  187. package/src/styles/glass/material.css +238 -0
  188. package/src/styles/glass/progress-rail.css +78 -0
  189. package/src/styles/glass/squircle.css +66 -0
  190. package/src/styles/glass/surfaces.css +306 -0
  191. package/src/styles/glass.css +31 -1188
  192. package/src/styles/index.css +24 -6
  193. package/src/styles/paper.css +2 -68
  194. package/src/styles/theme.css +13 -20
  195. package/src/styles/tokens/color-radius.css +250 -0
  196. package/src/styles/tokens/dark-arm.css +194 -0
  197. package/src/styles/tokens/glass.css +413 -0
  198. package/src/styles/tokens/light-dark.css +158 -0
  199. package/src/styles/tokens/offsets-sizing.css +406 -0
  200. package/src/styles/tokens/property-regs.css +169 -0
  201. package/src/styles/tokens/scale-paper.css +361 -0
  202. package/src/styles/tokens/scheme-motion.css +334 -0
  203. package/src/styles/tokens/shadow.css +132 -0
  204. package/src/styles/tokens.css +22 -2355
  205. package/src/styles/typography.css +18 -6
  206. package/src/styles/utilities/a11y-overrides.css +140 -0
  207. package/src/styles/utilities/animate.css +26 -0
  208. package/src/styles/utilities/base.css +365 -0
  209. package/src/styles/utilities/btn.css +399 -0
  210. package/src/styles/utilities/components.css +317 -0
  211. package/src/styles/utilities.css +19 -1260
  212. package/src/styles/view-transition.css +0 -51
  213. package/dist/DeckProgress-Dmk4_AKN.js +0 -23
  214. package/dist/InstrumentRail-CUJ05YVG.js +0 -44
  215. package/dist/components/custom/deck-progress/DeckProgress.vue.d.ts +0 -27
  216. package/dist/components/custom/deck-progress/index.d.ts +0 -2
  217. package/dist/components/custom/dialog-native/GlassDialogNative.vue.d.ts +0 -57
  218. package/dist/components/custom/dialog-native/index.d.ts +0 -1
  219. package/dist/components/custom/glass-panel/GlassPanel.vue.d.ts +0 -41
  220. package/dist/components/custom/glass-panel/index.d.ts +0 -2
  221. package/dist/components/custom/handmark/HandMark.vue.d.ts +0 -29
  222. package/dist/components/custom/handmark/brush.d.ts +0 -219
  223. package/dist/components/custom/handmark/freehand.d.ts +0 -69
  224. package/dist/components/custom/handmark/geometry.d.ts +0 -32
  225. package/dist/components/custom/handmark/index.d.ts +0 -21
  226. package/dist/components/custom/handmark/ink.d.ts +0 -11
  227. package/dist/components/custom/handmark/texture.d.ts +0 -39
  228. package/dist/components/custom/handmark/types.d.ts +0 -53
  229. package/dist/components/custom/handmark/useHandMark.d.ts +0 -66
  230. package/dist/components/custom/header-ribbon/HeaderRibbon.vue.d.ts +0 -31
  231. package/dist/components/custom/header-ribbon/index.d.ts +0 -2
  232. package/dist/components/custom/header-ribbon/types.d.ts +0 -7
  233. package/dist/components/custom/instrument-rail/InstrumentRail.vue.d.ts +0 -91
  234. package/dist/components/custom/instrument-rail/index.d.ts +0 -2
  235. package/dist/composables/motion/useRouteTransition.d.ts +0 -42
  236. package/dist/deck-progress.d.ts +0 -1
  237. package/dist/deck-progress.js +0 -2
  238. package/dist/dockContext-BKeIMmNk.js +0 -9
  239. package/dist/glass-panel.d.ts +0 -1
  240. package/dist/glass-panel.js +0 -44
  241. package/dist/handmark.d.ts +0 -1
  242. package/dist/handmark.js +0 -609
  243. package/dist/header-ribbon.d.ts +0 -1
  244. package/dist/header-ribbon.js +0 -63
  245. package/dist/instrument-rail.d.ts +0 -1
  246. package/dist/instrument-rail.js +0 -2
  247. package/dist/useGlassRenderer-D7YGOYiM.js +0 -69
  248. package/dist/useSpecularTracking-BVRZsRHA.js +0 -26
  249. package/dist/useSpringMount-BJSHcLl3.js +0 -113
  250. package/dist/useViewTransition-DaN5Zrox.js +0 -21
  251. package/dist/vReveal-zUIQk-rJ.js +0 -53
  252. /package/dist/{CollapsibleContent-CP9qF1v4.js → CollapsibleContent-Drow5WkV.js} +0 -0
  253. /package/dist/{DialogFooter-Gprw8H_A.js → DialogFooter-DufLHi0y.js} +0 -0
  254. /package/dist/{IconTooltip-Cus0fvK0.js → IconTooltip-BrQ5p181.js} +0 -0
  255. /package/dist/{Input-xuDwALQR.js → Input-B-F818RU.js} +0 -0
  256. /package/dist/{_plugin-vue_export-helper-ok8pgSl5.js → _plugin-vue_export-helper-DWghtRt7.js} +0 -0
  257. /package/dist/{compile-BOXjLUxu.js → compile-Ce_V55zi.js} +0 -0
  258. /package/dist/{constants-yKeKnE84.js → constants-C8NMonuo.js} +0 -0
  259. /package/dist/{presets-Dkdv55Gt.js → presets-1OhFpaIC.js} +0 -0
  260. /package/dist/{prng-D27-B3tK.js → prng-CjVgzjQT.js} +0 -0
  261. /package/dist/{resolveCanvasColor-BBiYfp8g.js → resolveCanvasColor-CRvVzOvP.js} +0 -0
  262. /package/dist/{useCanvas2D-ClrQuZtp.js → useCanvas2D-CSeH8h16.js} +0 -0
  263. /package/dist/{useGlobalDark-d6waty-X.js → useGlobalDark-D7R9OypB.js} +0 -0
  264. /package/dist/{useIntersectionPause-Cck5Uxk8.js → useIntersectionPause-DAdVPVp4.js} +0 -0
  265. /package/dist/{useInterval-Dsmqwi03.js → useInterval-D3USn0yc.js} +0 -0
  266. /package/dist/{useKeyboardShortcuts-CyIYrndH.js → useKeyboardShortcuts-i8tHd5WO.js} +0 -0
  267. /package/dist/{useScrollProgress-CffFGLa5.js → useScrollProgress-CcgmgMQt.js} +0 -0
  268. /package/dist/{useSortable-C8ReQ50P.js → useSortable-DnyGXKKY.js} +0 -0
  269. /package/dist/{useTextHighlight-CWEi25hf.js → useTextHighlight-B3b10W6r.js} +0 -0
@@ -0,0 +1,84 @@
1
+ import type { TimingFunction } from "@mkbabb/keyframes.js";
2
+ import type { GlassUnderlinePaths } from "./types";
3
+ type __VLS_Props = {
4
+ /**
5
+ * Which clock drives the draw. `load` (default) — the draw is a
6
+ * `NumericAnimation` the parent's load `Sequence` fires once via `play()`.
7
+ * `scroll` — native `view()` keyframes, bidirectional, no JS. `static` —
8
+ * set drawn, no clock.
9
+ */
10
+ clock?: "load" | "scroll" | "static";
11
+ /**
12
+ * The render variant. `pen` is the only PROVEN, filter-free render.
13
+ * pencil | crayon | boil are UNPROVEN headroom — the API seam for a future
14
+ * wave, NOT shipped here (they render pen today).
15
+ */
16
+ variant?: "pen" | "pencil" | "crayon" | "boil";
17
+ /** The stroke colour. Defaults to `var(--primary)` (re-resolves under .dark). */
18
+ color?: string;
19
+ /** The load-clock draw duration (ms). Default 700. */
20
+ drawMs?: number;
21
+ /**
22
+ * The load-clock easing. Default `easeOutCubic` — doctrine-compliant (DEC-6):
23
+ * ink is an irreversible additive reveal, so an overshooting spring would lay
24
+ * ink past the end then retract it (the "never overshoot past gone" logic).
25
+ * The value.js `TimingFunction` type (already a peer) serves a consumer's own
26
+ * decelerating register (e.g. an expo).
27
+ */
28
+ easing?: TimingFunction;
29
+ /**
30
+ * The scroll-clock timeline name (DEC-5). Default the element's own `view()`.
31
+ * Bound as `--gu-timeline`; the CSS reads `animation-timeline:
32
+ * var(--gu-timeline, view())`. A consumer (`--beat-tl`, a named scroll
33
+ * timeline) passes its own.
34
+ */
35
+ timeline?: string;
36
+ /**
37
+ * The declarative third clock (DEC-2). A thin overlay ON the load clock:
38
+ * `undefined` (default) = source parity (seeds undrawn, parent fires
39
+ * `play()`); bound: rising edge → play() (under PRM → snap()), falling edge
40
+ * → reset to undrawn so re-activation REPLAYS, mount with `true` → plays.
41
+ * Only meaningful with `clock="load"` (the other clocks rest drawn).
42
+ */
43
+ active?: boolean;
44
+ /**
45
+ * The geometry escape (DEC-7). The FULL geometry tuple
46
+ * `{ stroke, ghost?, viewBox?, len? }` — a bare `d`-string escape silently
47
+ * breaks the dash model when the consumer geometry's viewBox/length differ.
48
+ * Defaults to the canonical pen + ghost.
49
+ */
50
+ paths?: GlassUnderlinePaths;
51
+ };
52
+ /**
53
+ * CLOCK A — draw the underline ONCE. The awaitable a parent's load `Sequence` fires
54
+ * as a causal link. Resolves a Promise so the Sequence can `await` it; under PRM it
55
+ * snaps to drawn in one paint and resolves immediately. A no-op for scroll/static.
56
+ */
57
+ declare function play(): Promise<void>;
58
+ /** Snap to terminal (drawn) — the PRM / interrupt path. */
59
+ declare function snap(): void;
60
+ declare var __VLS_1: {};
61
+ type __VLS_Slots = {} & {
62
+ default?: (props: typeof __VLS_1) => any;
63
+ };
64
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
65
+ play: typeof play;
66
+ snap: typeof snap;
67
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
68
+ active: boolean;
69
+ variant: "pen" | "pencil" | "crayon" | "boil";
70
+ color: string;
71
+ clock: "load" | "scroll" | "static";
72
+ drawMs: number;
73
+ easing: TimingFunction;
74
+ timeline: string;
75
+ paths: GlassUnderlinePaths;
76
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
77
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
78
+ declare const _default: typeof __VLS_export;
79
+ export default _default;
80
+ type __VLS_WithSlots<T, S> = T & {
81
+ new (): {
82
+ $slots: S;
83
+ };
84
+ };
@@ -0,0 +1,2 @@
1
+ export { default as GlassUnderline } from "./GlassUnderline.vue";
2
+ export type { GlassUnderlineClock, GlassUnderlineVariant, GlassUnderlinePaths, GlassUnderlineProps, GlassUnderlineExpose, } from "./types";
@@ -0,0 +1,56 @@
1
+ import type { TimingFunction } from "@mkbabb/keyframes.js";
2
+ /** Which clock drives the draw. */
3
+ export type GlassUnderlineClock = "load" | "scroll" | "static";
4
+ /**
5
+ * The render variant. `pen` is the only PROVEN, filter-free render (the masthead
6
+ * invariant). pencil | crayon | boil are UNPROVEN headroom — the API seam for a
7
+ * future wave, NOT shipped (they render pen today).
8
+ */
9
+ export type GlassUnderlineVariant = "pen" | "pencil" | "crayon" | "boil";
10
+ /**
11
+ * The geometry escape tuple (DEC-7). Carries the FULL geometry so an escaped path
12
+ * stays dash-coherent — a bare `d`-string escape silently breaks the dash model when
13
+ * the consumer geometry's viewBox/length differ from the canonical
14
+ * (`0 0 100 10` + `len` 120).
15
+ */
16
+ export interface GlassUnderlinePaths {
17
+ /** The primary pen stroke `d`. */
18
+ readonly stroke: string;
19
+ /** The faint ghost overdraw `d`. Omit for a single-path (no overdraw) render. */
20
+ readonly ghost?: string;
21
+ /** The SVG viewBox. Default `0 0 100 10`. */
22
+ readonly viewBox?: string;
23
+ /** The dasharray length (the over-long fixed dash). Default `120`. */
24
+ readonly len?: number;
25
+ }
26
+ /** GlassUnderline props (the public prop surface). */
27
+ export interface GlassUnderlineProps {
28
+ /** Which clock drives the draw. Default `load`. */
29
+ clock?: GlassUnderlineClock;
30
+ /** The render variant. Default `pen` (the only proven render). */
31
+ variant?: GlassUnderlineVariant;
32
+ /** The stroke colour. Default `var(--primary)` (re-resolves under `.dark`). */
33
+ color?: string;
34
+ /** The load-clock draw duration (ms). Default `700`. */
35
+ drawMs?: number;
36
+ /** The load-clock easing (value.js `TimingFunction`). Default `easeOutCubic`. */
37
+ easing?: TimingFunction;
38
+ /** The scroll-clock timeline name. Default the element's own `view()`. */
39
+ timeline?: string;
40
+ /**
41
+ * The declarative third clock — a thin overlay ON the load clock. `undefined`
42
+ * (default) = source parity (parent fires `play()`); rising edge → play, falling
43
+ * edge → reset-to-undrawn (re-rise REPLAYS), mount-`true` → plays. Only
44
+ * meaningful with `clock="load"`.
45
+ */
46
+ active?: boolean;
47
+ /** The geometry escape tuple. Defaults to the canonical pen + ghost. */
48
+ paths?: GlassUnderlinePaths;
49
+ }
50
+ /** The imperative handle exposed via `defineExpose` / a template ref. */
51
+ export interface GlassUnderlineExpose {
52
+ /** Draw the load-clock underline once (the awaitable a Sequence chains). */
53
+ play: () => Promise<void>;
54
+ /** Snap to terminal (drawn) — the PRM / interrupt path. */
55
+ snap: () => void;
56
+ }
@@ -39,6 +39,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
39
39
  "onUpdate:activeSnapPoint"?: ((val: string | number) => any) | undefined;
40
40
  }>, {
41
41
  mode: DrawerMode;
42
+ open: boolean;
42
43
  modal: boolean;
43
44
  shouldScaleBackground: boolean;
44
45
  snapPoints: (number | string)[];
@@ -3,9 +3,9 @@ import { type DropdownMenuSubContentProps } from 'reka-ui';
3
3
  type __VLS_Props = DropdownMenuSubContentProps & {
4
4
  class?: HTMLAttributes['class'];
5
5
  };
6
- declare var __VLS_8: {};
6
+ declare var __VLS_14: {};
7
7
  type __VLS_Slots = {} & {
8
- default?: (props: typeof __VLS_8) => any;
8
+ default?: (props: typeof __VLS_14) => any;
9
9
  };
10
10
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
11
11
  escapeKeyDown: (event: KeyboardEvent) => any;
@@ -10,31 +10,34 @@ export { default as Slider } from './Slider.vue';
10
10
  * (`--slider-track-height`, `--slider-thumb-size`) the SFC defaults read.
11
11
  *
12
12
  * Exactly two canonical recipes ship:
13
- * standard — the CONTINUOUS ROUNDED CYLINDER: a THICK glass capsule track with
14
- * the round knob INSCRIBED inside it (knob diameter = track height −
15
- * 2×inset, inset 2px) so the whole reads as ONE continuous piece — a
16
- * ball-bearing seated in the cylinder, never a floating disc on a
17
- * wire. The fill is the W52 liquid-glass material (backdrop + edge
18
- * rim, tinted to `--primary`) pulled along the capsule; the knob
19
- * rides ON it with zero protrusion (`thumbAlignment: 'contain'`).
20
- * The reka SliderThumb stays mounted (a11y/keyboard/focus) and
21
- * carries a faint specular grip. Halo-on-state + the iOS press
22
- * spring. This is the general-purpose glass scrubber and the default.
13
+ * standard — the CONTINUOUS GLASS CYLINDER with NO VISIBLE THUMB AT ALL (the
14
+ * user's binding bar, USER-AUDIT-2026-06-10 §B3): you pull the TRACK
15
+ * itself. A THICK glass capsule track; the filled `.slider-range`
16
+ * glass cylinder (the W52 liquid-glass material — backdrop + edge rim,
17
+ * tinted to `--primary`) is pulled along it, and its leading EDGE IS
18
+ * the handle — the only affordance is the fill edge + the cursor/touch
19
+ * response. The reka `<SliderThumb>` STAYS MOUNTED (a11y/keyboard/drag/
20
+ * value-follow native on it) but paints INVISIBLE: width 0, opacity 0,
21
+ * transparent — no distinct disc/cap/ring over the continuous
22
+ * cylinder. Keyboard focus rings the TRACK (the W-PRIM-POLISH focus
23
+ * register), not the invisible thumb; hover/held lift the track FILL's
24
+ * edge rim; the iOS press spring gives the whole fill a felt squish.
25
+ * This is the general-purpose glass scrubber and the default.
23
26
  * spectrum — the value.js gradient-track color slider: a tall capsule whose
24
27
  * background is a consumer-supplied `--slider-track-bg`
25
28
  * linear-gradient (the LCH/hue ramp), a transparent range, and a
26
- * SQUIRCLE thumb the HEIGHT of the track (the iOS color-picker
27
- * idiom — `corner-shape: superellipse()` via `--corner-shape-thumb`,
29
+ * THIN VISIBLE squircle thumb the HEIGHT of the track (the iOS/value.js
30
+ * color-picker idiom — a slim vertical bar, `w-3`-thin per the value.js
31
+ * reference; `corner-shape: superellipse()` via `--corner-shape-thumb`,
28
32
  * @supports-gated over a generous proportional round fallback that
29
33
  * reads squircle-adjacent cross-engine). This is the aurora/blob
30
- * color-picking surface. The spectrum already obeys the containment
31
- * law the standard cylinder now matches (thumb inscribed, protrusion 0).
34
+ * color-picking surface — its thumb IS visible (it is the handle).
32
35
  *
33
- * Sizes — the standard cylinder inscribes the knob: track height = thumb + 4px
34
- * (a 2px inset reveal each side), thumb diameter ≤ track height at every rung:
35
- * sm — 12px track / 8px thumb
36
- * md — 20px track / 16px thumb (default)
37
- * lg — 28px track / 24px thumb
36
+ * Sizes — the standard cylinder is the thick glass capsule (the invisible thumb's
37
+ * value-follow inset still rides the size token for the 44px coarse hit-halo):
38
+ * sm — 12px track
39
+ * md — 20px track (default)
40
+ * lg — 28px track
38
41
  */
39
42
  export declare const sliderVariants: (props?: ({
40
43
  variant?: "standard" | "spectrum" | null | undefined;
@@ -19,7 +19,7 @@ type ToasterToast = Toast & {
19
19
  description?: string;
20
20
  action?: Component | VNode;
21
21
  open?: boolean;
22
- onOpenChange?: (open: boolean) => void;
22
+ 'onUpdate:open'?: (open: boolean) => void;
23
23
  };
24
24
  type ToastOptions = Omit<ToasterToast, 'id'>;
25
25
  declare function toast(props: ToastOptions): {
@@ -160,7 +160,7 @@ declare function useToast(): {
160
160
  | undefined;
161
161
  duration?: number | undefined;
162
162
  open?: boolean | undefined;
163
- onOpenChange?: ((open: boolean) => void) | undefined;
163
+ 'onUpdate:open'?: ((open: boolean) => void) | undefined;
164
164
  }[]>;
165
165
  toast: typeof toast;
166
166
  dismiss: (toastId?: string) => void;
@@ -109,6 +109,18 @@ export interface DeriveBlobPaletteOptions {
109
109
  hueSpread?: number;
110
110
  /** Midpoint chroma-bump (keeps a vivid pair off the grey midpoint). Default ~0.03. */
111
111
  chromaBump?: number;
112
+ /**
113
+ * AY.W-COHERE E1 — the OKLCh-chroma CEILING on every derived stop (OKLCh C
114
+ * units). When set, each stop's chroma is clamped to AT MOST this value AFTER
115
+ * the midpoint bump and BEFORE the gamut-map — so the seed→palette derivation
116
+ * can never amplify a vivid seed into the neon register the shader's
117
+ * SSS/iridescence then over-drives. This is a CHROMA CAP, not a hue re-map: a
118
+ * blue seed stays blue, just bounded to the non-neon chroma. `undefined` (the
119
+ * default) leaves the derivation byte-identical to HEAD. The blob substrate
120
+ * caps the MOOD/seed path into the warm-register band the FourierField comet +
121
+ * the constellation focal share (the set-cohesion accent identity).
122
+ */
123
+ chromaCeiling?: number;
112
124
  }
113
125
  /**
114
126
  * Seed ONE color into a harmonious, gamut-safe 2-4-stop OKLCh palette for the blob
@@ -21,13 +21,22 @@ import { ref, type CSSProperties } from "vue";
21
21
  *
22
22
  * PRM-aware: under `prefers-reduced-motion: reduce` the seam DOES NOT write the
23
23
  * position (the CSS half pins the catch-light static at the centred `50%`
24
- * fallback). The write is style-only — no reflow, no re-render — and inert until
25
- * the user actually moves the pointer over a wired host.
24
+ * fallback). The PRM signal is read from a SINGLE cached `matchMedia` listener
25
+ * minted once at composable setup (NOT a fresh `matchMedia` per pointer event) —
26
+ * the AV.W7 `useWebGLCanvas` substrate pattern.
27
+ *
28
+ * AY.W-A11Y-PERF O-3 — the pointer write is rAF-COALESCED: `onPointerMove` only
29
+ * stashes the raw event + schedules ONE `requestAnimationFrame`; the rAF callback
30
+ * does the single `getBoundingClientRect()` + style write, so a 120–1000 Hz pointer
31
+ * collapses to ONE batched layout read + ONE style write per animation frame (under
32
+ * W54 maximal-glass every blurred-surface repaint is amortized to the frame, not the
33
+ * event). The composable cancels the pending rAF + removes the matchMedia listener on
34
+ * scope dispose (cleanup discipline).
26
35
  */
27
36
  export interface UseSpecularTracking {
28
37
  /** Bind to the host element's `:style`. Carries the `--mouse-x/--mouse-y` write. */
29
38
  specularStyle: ReturnType<typeof ref<CSSProperties>>;
30
- /** Bind to the host's `@pointermove`. Writes the cursor position (PRM-gated). */
39
+ /** Bind to the host's `@pointermove`. Schedules the rAF-coalesced position write (PRM-gated). */
31
40
  onPointerMove: (event: PointerEvent) => void;
32
41
  }
33
42
  export declare function useSpecularTracking(): UseSpecularTracking;
@@ -7,6 +7,5 @@ export * from "../useIntersectionPause";
7
7
  export * from "../useYieldToMain";
8
8
  export * from "../usePrioritizedTask";
9
9
  export * from "../useViewTransition";
10
- export * from "../useRouteTransition";
11
10
  export * from "../vReveal";
12
11
  export * from "../useTextHighlight";
@@ -0,0 +1,48 @@
1
+ import { type easeInQuad } from "@mkbabb/value.js";
2
+ import { type Easing, type TimingFunction } from "@mkbabb/keyframes.js";
3
+ /** A value.js easing callable `(t: number) => number` (the family's shape). */
4
+ export type CurveFn = typeof easeInQuad;
5
+ /** The kind of a `MOTION_CURVES` row — a spring `linear()` or a cubic-bezier. */
6
+ export type MotionCurveKind = "spring" | "bezier";
7
+ /**
8
+ * One row of the CSS↔JS curve table. CANONICAL rows carry their own JS twin;
9
+ * ALIAS rows resolve through a `canonical` target (no duplicated twin).
10
+ */
11
+ export interface MotionCurve {
12
+ /** The CSS token name, including the leading `--`. */
13
+ readonly token: `--${string}`;
14
+ /** `spring` (a solved `linear()` token) or `bezier` (a cubic-bezier token). */
15
+ readonly kind: MotionCurveKind;
16
+ /**
17
+ * The JS twin — a callable `Easing` (springs, via `springTimingFunction`) or a
18
+ * `TimingFunction` (`(t) => number`, beziers via `CSSCubicBezier`). For ALIAS
19
+ * rows this is the canonical row's twin (resolve-through, not a copy).
20
+ */
21
+ readonly js: Easing | TimingFunction;
22
+ /**
23
+ * For an ALIAS row: the canonical `--token` this resolves through. `undefined`
24
+ * on a canonical row.
25
+ */
26
+ readonly canonical?: `--${string}`;
27
+ /** The register doc (springs lift it from the shared preset table). */
28
+ readonly note: string;
29
+ }
30
+ /**
31
+ * The CSS↔JS curve table, keyed by CSS token name. Covers EVERY `--ease-*` /
32
+ * `--spring-*` token declared in `tokens.css §2` + `theme.css` (CURVE-TABLE-BOUND
33
+ * gate §3.2). Spring rows carry a keyframes.js `Easing`; bezier rows a value.js
34
+ * `TimingFunction`; alias rows resolve through their `canonical` target.
35
+ *
36
+ * @example
37
+ * import { MOTION_CURVES } from "@mkbabb/glass-ui/motion";
38
+ * const easing = MOTION_CURVES["--spring-snappy"].js; // the iOS-control twin
39
+ * new NumericAnimation(frames, { timingFunction: easing });
40
+ */
41
+ export declare const MOTION_CURVES: Readonly<Record<string, MotionCurve>>;
42
+ /** The canonical (non-alias) curve rows, in declaration order. */
43
+ export declare const MOTION_CURVES_CANONICAL: readonly MotionCurve[];
44
+ /** Look up a curve's JS twin by CSS token name (throws on an unknown token). */
45
+ export declare function motionCurve(token: string): MotionCurve;
46
+ export { linear, easeInQuad, easeOutQuad, easeInOutQuad, easeInCubic, easeOutCubic, easeInOutCubic, easeInSine, easeOutSine, easeInOutSine, easeInCirc, easeOutCirc, easeInOutCirc, easeInExpo, easeOutExpo, easeInOutExpo, easeInBounce, CSSCubicBezier, } from "@mkbabb/value.js";
47
+ export { SPRING_PRESETS, springPreset } from "./springPresets";
48
+ export type { SpringPresetRow, SpringPresetName } from "./springPresets";
@@ -6,3 +6,5 @@ export * from "./useNumericTransition";
6
6
  export * from "./useAnimatedNumber";
7
7
  export * from "./useAnimatedNumberMap";
8
8
  export * from "./useCountup";
9
+ export * from "./suite";
10
+ export { SPRING_PRESETS, springPreset, type SpringPresetRow, type SpringPresetName, } from "./springPresets";
@@ -0,0 +1,33 @@
1
+ /** A glass-ui named-spring preset name. */
2
+ export type SpringPresetName = "smooth" | "snappy" | "bouncy" | "gentle" | "dock";
3
+ /** One named-spring row: the analytic (response, dampingFraction) pair + its register doc. */
4
+ export interface SpringPresetRow {
5
+ /** The token suffix — `--spring-<name>` (CSS) and the `MOTION_CURVES` key. */
6
+ readonly name: SpringPresetName;
7
+ /** Response time in seconds (the spring's `response` solver input). */
8
+ readonly response: number;
9
+ /** Damping fraction ζ (1 = critical; <1 overshoots). */
10
+ readonly dampingFraction: number;
11
+ /** The register this curve serves (the doc-table derives from this one string). */
12
+ readonly comment: string;
13
+ }
14
+ /**
15
+ * iOS-canonical (response, dampingFraction) pairs per AL-X4 §3. The names match
16
+ * the `--spring-*` CSS tokens AND the speedtest CSS consumers that read
17
+ * `var(--spring-smooth)` etc. directly, so they MUST stay stable across retunes —
18
+ * only the `(response, ζ)` pair and the emitted curves change.
19
+ *
20
+ * GOVERNED iOS-SPRING VOCABULARY (AX.W05) — the SINGLE source of the register
21
+ * vocabulary. Each row's `comment` names the surface-class that rides it:
22
+ *
23
+ * SETTLE → smooth — patient entrances, fades, scale-ins (no overshoot read).
24
+ * CONTROL → snappy — crisp position morphs: tab underline glide, progress fill,
25
+ * the continuous-marker pop, the generic crisp settle.
26
+ * PLAYFUL → bouncy — deliberate emphatic one-shots ONLY: the bouncy toggle press,
27
+ * dialog/success entrances, the VT default. Largest overshoot.
28
+ * GENTLE → gentle — critically-damped slow settles (the patient end of the ladder).
29
+ * DOCK → dock — the dock expand/collapse morph AND everything inside it.
30
+ */
31
+ export declare const SPRING_PRESETS: readonly SpringPresetRow[];
32
+ /** Lookup one preset row by name (used by `MOTION_CURVES` spring rows). */
33
+ export declare function springPreset(name: SpringPresetName): SpringPresetRow;
@@ -0,0 +1,2 @@
1
+ export { NumericAnimation, SpringProgress, SmoothProgress, Sequence, Timeline, ManualTimeline, RAFPlayback, ScrollTimeline, createNativeTimeline, flip, flipShared, ElementMorph, drag, Draggable, decay, decayRest, stagger, springTimingFunction, springLinearStops, toEasing, resolveEasing, AnimationOptionError, UnknownEasingError, loadAnimationEngine, } from "@mkbabb/keyframes.js";
2
+ export type { Easing, TimingFunction, TimingFunctionNames, SpringProgressOptions, SpringFrameCallback, SpringSubscriber, SpringLinearStopsOptions, SpringTimingFunctionOptions, SmoothProgressOptions, NumericAnimationOptions, NumericFrameCallback, SequenceEntry, SequenceOptions, SequencePosition, TimelineOptions, NativeTimelineSpec, RAFPlaybackOptions, Tickable, FlipOptions, ElementMorphOptions, MorphRect, DragOptions, DragAxis, DragSubscriber, DecayOptions, DecaySample, StaggerFn, StaggerOptions, StaggerOrigin, AnimationEngine, AnimationOptions, AnimationFrame, AnimateOptions, InputAnimationOptions, ResolvedKeyframes, Vars, } from "@mkbabb/keyframes.js";
@@ -1,6 +1,6 @@
1
1
  import { type Ref } from "vue";
2
2
  import { type SpringRef } from "./useSpring";
3
- /** Named iOS spring presets (mirrors X1 §2.3 / tokens.css §2). */
3
+ /** Named iOS spring presets the mount register exposes (the dock register is not a mount enter). */
4
4
  export type SpringPreset = "smooth" | "snappy" | "bouncy" | "gentle";
5
5
  export interface UseSpringMountOptions {
6
6
  /**
@@ -1,2 +1,2 @@
1
- import { a as e, i as t, n, o as r, r as i, s as a, t as o } from "./useConfiguratorState-DxAqksK6.js";
1
+ import { a as e, i as t, n, o as r, r as i, s as a, t as o } from "./useConfiguratorState-BdQXh9ie.js";
2
2
  export { e as CONFIGURATOR_DENSITY_KEY, t as Configurator, i as ConfiguratorLayer, n as ConfiguratorRow, r as provideConfiguratorDensity, o as useConfiguratorState, a as useOptionalConfiguratorDensity };
@@ -1,6 +1,6 @@
1
1
  import { t as e } from "./createLucideIcon-B6uNAU9G.js";
2
- import { n as t } from "./button-DN39cGqL.js";
3
- import { t as n } from "./_plugin-vue_export-helper-ok8pgSl5.js";
2
+ import { n as t } from "./button-DyiWFAOE.js";
3
+ import { t as n } from "./_plugin-vue_export-helper-DWghtRt7.js";
4
4
  import { Transition as r, createBlock as i, createCommentVNode as a, createElementBlock as o, createElementVNode as s, createTextVNode as c, createVNode as l, defineComponent as u, mergeModels as d, openBlock as f, renderSlot as p, toDisplayString as m, unref as h, useModel as g, withCtx as _, withKeys as v, withModifiers as y } from "vue";
5
5
  var b = e("loader-circle", [["path", {
6
6
  d: "M21 12a9 9 0 1 1-6.219-8.56",