@mkbabb/glass-ui 3.10.1 → 3.11.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 (279) hide show
  1. package/dist/{CardAction-DrAcAV4d.js → CardAction-DuArVky-.js} +2 -2
  2. package/dist/{CommandShortcut-mV2e1aG6.js → CommandShortcut-CefCj5mt.js} +2 -2
  3. package/dist/{DataTable-C3E6jZ5B.js → DataTable-CUHMukiQ.js} +2 -2
  4. package/dist/DeckProgress-Dmk4_AKN.js +23 -0
  5. package/dist/{DialogContent-BxaaafFi.js → DialogContent-BRkT1cjP.js} +1 -1
  6. package/dist/{HoverPopover-CDA_SaCe.js → HoverPopover-2LOIW34a.js} +1 -1
  7. package/dist/InstrumentRail-CUJ05YVG.js +44 -0
  8. package/dist/{MetricBadge-idgrkqoP.js → MetricBadge-BZVWIxNy.js} +7 -5
  9. package/dist/{Notification-Cu0nN17_.js → Notification-DLMhblXR.js} +1 -1
  10. package/dist/{NumberFieldContent-CHEWghnY.js → NumberFieldContent-BbLOh8RU.js} +2 -2
  11. package/dist/{PopoverContent-DpUvdYY-.js → PopoverContent-BId6ggf_.js} +1 -1
  12. package/dist/{Progress-BW-StFw2.js → Progress-iEuD9pxG.js} +1 -1
  13. package/dist/{ScrollingText-DruYCni_.js → ScrollingText-BPP84wKo.js} +1 -1
  14. package/dist/{SelectScrollDownButton-pirzjm--.js → SelectScrollDownButton-T32cVFeM.js} +3 -3
  15. package/dist/{Switch-DeAqg6pi.js → Switch-Ch-k3Rv-.js} +1 -1
  16. package/dist/{TabsList-BAVzOZpg.js → TabsList-B8CVOQPC.js} +2 -2
  17. package/dist/{Toaster-CvuuW_y9.js → Toaster-1rYWrmAm.js} +46 -49
  18. package/dist/{ToggleGroupItem-DtD37b4G.js → ToggleGroupItem-COu_4IW4.js} +21 -17
  19. package/dist/animated-digit.js +2 -2
  20. package/dist/api/index.d.ts +5 -4
  21. package/dist/api.js +2 -2
  22. package/dist/aurora.js +70 -70
  23. package/dist/{badge-NdCQMvvB.js → badge-CaoFJzRb.js} +1 -1
  24. package/dist/badge.js +1 -1
  25. package/dist/{button-DyiWFAOE.js → button-DN39cGqL.js} +12 -12
  26. package/dist/button.js +1 -1
  27. package/dist/canvas.js +2 -2
  28. package/dist/card.js +1 -1
  29. package/dist/carousel.js +5 -5
  30. package/dist/collapsible.js +1 -1
  31. package/dist/{color-B65wWyQz.js → color-C5ls_QF7.js} +7 -9
  32. package/dist/color.js +1 -1
  33. package/dist/command.js +1 -1
  34. package/dist/components/custom/aurora/constants/presets.d.ts +62 -5
  35. package/dist/components/custom/aurora/constants/shaders/mediums.glsl.d.ts +1 -1
  36. package/dist/components/custom/aurora/index.d.ts +1 -1
  37. package/dist/components/custom/constellation/Constellation.vue.d.ts +0 -12
  38. package/dist/components/custom/constellation/constellationField.d.ts +151 -10
  39. package/dist/components/custom/constellation/index.d.ts +1 -3
  40. package/dist/components/custom/controls/DarkModeToggle.vue.d.ts +0 -11
  41. package/dist/components/custom/deck-progress/DeckProgress.vue.d.ts +27 -0
  42. package/dist/components/custom/deck-progress/index.d.ts +2 -0
  43. package/dist/components/custom/dialog-native/GlassDialogNative.vue.d.ts +57 -0
  44. package/dist/components/custom/dialog-native/index.d.ts +1 -0
  45. package/dist/components/custom/dock/DockTabButton.vue.d.ts +4 -3
  46. package/dist/components/custom/dock/GlassDock.vue.d.ts +115 -3
  47. package/dist/components/custom/dock/composables/dockMorphContext.d.ts +0 -36
  48. package/dist/components/custom/dock/composables/useLayerTransition.d.ts +0 -44
  49. package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +37 -5
  50. package/dist/components/custom/fourier-field/index.d.ts +1 -1
  51. package/dist/components/custom/fourier-field/math.d.ts +0 -17
  52. package/dist/components/custom/glass-panel/GlassPanel.vue.d.ts +41 -0
  53. package/dist/components/custom/glass-panel/index.d.ts +2 -0
  54. package/dist/components/custom/goo-blob/composables/useBlobPointer.d.ts +3 -4
  55. package/dist/components/custom/goo-blob/composables/useMetaballRenderer.d.ts +8 -11
  56. package/dist/components/custom/handmark/HandMark.vue.d.ts +29 -0
  57. package/dist/components/custom/handmark/brush.d.ts +242 -0
  58. package/dist/components/custom/handmark/freehand.d.ts +69 -0
  59. package/dist/components/custom/handmark/geometry.d.ts +50 -0
  60. package/dist/components/custom/handmark/index.d.ts +21 -0
  61. package/dist/components/custom/handmark/ink.d.ts +11 -0
  62. package/dist/components/custom/handmark/texture.d.ts +39 -0
  63. package/dist/components/custom/handmark/types.d.ts +53 -0
  64. package/dist/components/custom/handmark/useHandMark.d.ts +87 -0
  65. package/dist/components/custom/header-ribbon/HeaderRibbon.vue.d.ts +31 -0
  66. package/dist/components/custom/header-ribbon/index.d.ts +2 -0
  67. package/dist/components/custom/header-ribbon/types.d.ts +7 -0
  68. package/dist/components/custom/instrument-chassis/InstrumentChassis.vue.d.ts +2 -2
  69. package/dist/components/custom/instrument-rail/InstrumentRail.vue.d.ts +91 -0
  70. package/dist/components/custom/instrument-rail/index.d.ts +2 -0
  71. package/dist/components/custom/metric-badge/MetricBadge.vue.d.ts +8 -0
  72. package/dist/components/ui/drawer/Drawer.vue.d.ts +0 -1
  73. package/dist/components/ui/dropdown-menu/DropdownMenuSubContent.vue.d.ts +2 -2
  74. package/dist/components/ui/slider/index.d.ts +19 -22
  75. package/dist/components/ui/toast/use-toast.d.ts +2 -2
  76. package/dist/components/ui/toggle/Toggle.vue.d.ts +1 -1
  77. package/dist/components/ui/toggle/index.d.ts +1 -1
  78. package/dist/components/ui/toggle-group/ToggleGroup.vue.d.ts +7 -1
  79. package/dist/components/ui/toggle-group/ToggleGroupItem.vue.d.ts +3 -1
  80. package/dist/components/ui/toggle-group/toggleGroupContext.d.ts +13 -0
  81. package/dist/composables/color/index.d.ts +0 -12
  82. package/dist/composables/dark/index.d.ts +1 -1
  83. package/dist/composables/dark/useGlobalDark.d.ts +21 -1
  84. package/dist/composables/glass/useSpecularTracking.d.ts +3 -12
  85. package/dist/composables/motion/core/index.d.ts +1 -0
  86. package/dist/composables/motion/index.d.ts +0 -2
  87. package/dist/composables/motion/useRouteTransition.d.ts +42 -0
  88. package/dist/composables/motion/useSpringMount.d.ts +1 -1
  89. package/dist/configurator.js +1 -1
  90. package/dist/confirm-dialog.js +2 -2
  91. package/dist/constellation.js +225 -260
  92. package/dist/controls.js +14 -48
  93. package/dist/dark.d.ts +1 -1
  94. package/dist/dark.js +1 -1
  95. package/dist/data-table.js +1 -1
  96. package/dist/deck-progress.d.ts +1 -0
  97. package/dist/deck-progress.js +2 -0
  98. package/dist/dialog.js +2 -2
  99. package/dist/dock.js +345 -340
  100. package/dist/dockContext-BKeIMmNk.js +9 -0
  101. package/dist/{dropdown-menu-DVnQcA0E.js → dropdown-menu-D77jX6Df.js} +4 -7
  102. package/dist/dropdown-menu.js +1 -1
  103. package/dist/expandable-container.js +79 -38
  104. package/dist/forms.js +2 -2
  105. package/dist/fourier-field.js +102 -137
  106. package/dist/fourier-math.js +2 -2
  107. package/dist/glass-panel.d.ts +1 -0
  108. package/dist/glass-panel.js +44 -0
  109. package/dist/glass-ui.css +1 -1
  110. package/dist/glass-ui.js +209 -287
  111. package/dist/goo-blob.js +212 -243
  112. package/dist/handmark.d.ts +1 -0
  113. package/dist/handmark.js +663 -0
  114. package/dist/header-ribbon.d.ts +1 -0
  115. package/dist/header-ribbon.js +63 -0
  116. package/dist/hover-popover.js +1 -1
  117. package/dist/icon-tooltip.js +1 -1
  118. package/dist/index.d.ts +3 -0
  119. package/dist/instrument-rail.d.ts +1 -0
  120. package/dist/instrument-rail.js +2 -0
  121. package/dist/keyboard.js +1 -1
  122. package/dist/labeled-field.js +5 -5
  123. package/dist/{math-BUU9hHID.js → math-DTpRVC0e.js} +2 -18
  124. package/dist/metric-badge.js +1 -1
  125. package/dist/metric-stack.js +1 -1
  126. package/dist/motion-core.js +70 -69
  127. package/dist/motion.js +37 -38
  128. package/dist/notification.js +1 -1
  129. package/dist/number-field.js +1 -1
  130. package/dist/popover.js +1 -1
  131. package/dist/{presets-1OhFpaIC.js → presets-BP_ALM0m.js} +14 -1
  132. package/dist/progress.js +1 -1
  133. package/dist/pulse.js +1 -1
  134. package/dist/reactive.js +1 -1
  135. package/dist/scrolling-text.js +1 -1
  136. package/dist/search.js +6 -6
  137. package/dist/select.js +1 -1
  138. package/dist/{sheet-ChSXcJpU.js → sheet-VZEtNFvO.js} +1 -1
  139. package/dist/sheet.js +1 -1
  140. package/dist/{slider-sfl8gFDD.js → slider-ClgpP7EB.js} +4 -4
  141. package/dist/slider.js +1 -1
  142. package/dist/sortable-list.js +2 -2
  143. package/dist/stacked-icons.js +6 -6
  144. package/dist/styles/animations.css +111 -15
  145. package/dist/styles/components.css +1 -1
  146. package/dist/styles/dock/layer-group.css +0 -22
  147. package/dist/styles/dock/layers.css +1 -11
  148. package/dist/styles/dock/morph.css +19 -95
  149. package/dist/styles/dock/shell.css +0 -12
  150. package/dist/styles/dock-controls.css +31 -28
  151. package/dist/styles/drawer.css +0 -2
  152. package/dist/styles/floating-panel.css +0 -2
  153. package/dist/styles/glass-refract.css +0 -2
  154. package/dist/styles/glass.css +1188 -31
  155. package/dist/styles/hover-popover.css +0 -2
  156. package/dist/styles/index.css +6 -24
  157. package/dist/styles/instrument-chassis.css +0 -4
  158. package/dist/styles/paper.css +68 -2
  159. package/dist/styles/theme.css +20 -13
  160. package/dist/styles/tokens.css +2360 -22
  161. package/dist/styles/typography.css +6 -18
  162. package/dist/styles/utilities.css +1291 -19
  163. package/dist/styles/view-transition.css +51 -0
  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/{useAnimatedNumber-DfVgP4te.js → useAnimatedNumber-Bcpy5Etf.js} +1 -1
  171. package/dist/{useConfiguratorState-BdQXh9ie.js → useConfiguratorState-DxAqksK6.js} +1 -1
  172. package/dist/useGlassRenderer-D7YGOYiM.js +69 -0
  173. package/dist/{useGlobalDark-D7R9OypB.js → useGlobalDark-D1wgEqfW.js} +21 -2
  174. package/dist/useSpecularTracking-BVRZsRHA.js +26 -0
  175. package/dist/useSpringMount-BJSHcLl3.js +113 -0
  176. package/dist/useViewTransition-DaN5Zrox.js +21 -0
  177. package/dist/vReveal-zUIQk-rJ.js +53 -0
  178. package/dist/watercolor-dot.js +2 -2
  179. package/package.json +57 -33
  180. package/src/styles/animations.css +111 -15
  181. package/src/styles/dock/layer-group.css +0 -22
  182. package/src/styles/dock/layers.css +1 -11
  183. package/src/styles/dock/morph.css +19 -95
  184. package/src/styles/dock/shell.css +0 -12
  185. package/src/styles/dock-controls.css +31 -28
  186. package/src/styles/glass.css +1188 -31
  187. package/src/styles/index.css +6 -24
  188. package/src/styles/paper.css +68 -2
  189. package/src/styles/theme.css +20 -13
  190. package/src/styles/tokens.css +2360 -22
  191. package/src/styles/typography.css +6 -18
  192. package/src/styles/utilities.css +1291 -19
  193. package/src/styles/view-transition.css +51 -0
  194. package/dist/components/custom/aurora/constants/shaders/vangogh-medium.glsl.d.ts +0 -1
  195. package/dist/components/custom/constellation/composables/createConstellationField.d.ts +0 -35
  196. package/dist/components/custom/constellation/composables/useConstellationPointer.d.ts +0 -35
  197. package/dist/components/custom/constellation/constants.d.ts +0 -36
  198. package/dist/components/custom/constellation/constellationDraw.d.ts +0 -18
  199. package/dist/components/custom/constellation/constellationInteraction.d.ts +0 -102
  200. package/dist/components/custom/dock/composables/useDockMorphWindow.d.ts +0 -15
  201. package/dist/components/custom/dock/composables/useDockShellProps.d.ts +0 -131
  202. package/dist/components/custom/dock/constants.d.ts +0 -23
  203. package/dist/components/custom/fourier-field/presets.d.ts +0 -54
  204. package/dist/components/custom/goo-blob/composables/buildMetaballProgram.d.ts +0 -18
  205. package/dist/components/custom/goo-blob/composables/uploadBlobUniforms.d.ts +0 -41
  206. package/dist/components/custom/goo-blob/constants.d.ts +0 -52
  207. package/dist/components/custom/goo-blob/shaders/metaball-uniforms.glsl.d.ts +0 -1
  208. package/dist/components/custom/tabs/constants.d.ts +0 -12
  209. package/dist/components/custom/underline/GlassUnderline.vue.d.ts +0 -84
  210. package/dist/components/custom/underline/index.d.ts +0 -2
  211. package/dist/components/custom/underline/types.d.ts +0 -56
  212. package/dist/composables/motion/curves.d.ts +0 -48
  213. package/dist/composables/motion/springPresets.d.ts +0 -33
  214. package/dist/composables/motion/suite.d.ts +0 -2
  215. package/dist/dockContext-bho8B1A4.js +0 -17
  216. package/dist/motion-curves.d.ts +0 -1
  217. package/dist/motion-curves.js +0 -130
  218. package/dist/springPresets-aRSm-4_k.js +0 -40
  219. package/dist/styles/glass/a11y-fallback.css +0 -245
  220. package/dist/styles/glass/ladder.css +0 -304
  221. package/dist/styles/glass/material.css +0 -238
  222. package/dist/styles/glass/progress-rail.css +0 -78
  223. package/dist/styles/glass/squircle.css +0 -66
  224. package/dist/styles/glass/surfaces.css +0 -306
  225. package/dist/styles/tokens/color-radius.css +0 -250
  226. package/dist/styles/tokens/dark-arm.css +0 -194
  227. package/dist/styles/tokens/glass.css +0 -413
  228. package/dist/styles/tokens/light-dark.css +0 -158
  229. package/dist/styles/tokens/offsets-sizing.css +0 -406
  230. package/dist/styles/tokens/property-regs.css +0 -169
  231. package/dist/styles/tokens/scale-paper.css +0 -361
  232. package/dist/styles/tokens/scheme-motion.css +0 -334
  233. package/dist/styles/tokens/shadow.css +0 -132
  234. package/dist/styles/utilities/a11y-overrides.css +0 -140
  235. package/dist/styles/utilities/animate.css +0 -26
  236. package/dist/styles/utilities/base.css +0 -365
  237. package/dist/styles/utilities/btn.css +0 -399
  238. package/dist/styles/utilities/components.css +0 -317
  239. package/dist/underline.d.ts +0 -1
  240. package/dist/underline.js +0 -85
  241. package/dist/useSpecularTracking-DFK_fhpG.js +0 -32
  242. package/dist/useSpringMount-DXUzxBjV.js +0 -108
  243. package/dist/vReveal-CqaCz_mC.js +0 -44
  244. package/src/styles/glass/a11y-fallback.css +0 -245
  245. package/src/styles/glass/ladder.css +0 -304
  246. package/src/styles/glass/material.css +0 -238
  247. package/src/styles/glass/progress-rail.css +0 -78
  248. package/src/styles/glass/squircle.css +0 -66
  249. package/src/styles/glass/surfaces.css +0 -306
  250. package/src/styles/tokens/color-radius.css +0 -250
  251. package/src/styles/tokens/dark-arm.css +0 -194
  252. package/src/styles/tokens/glass.css +0 -413
  253. package/src/styles/tokens/light-dark.css +0 -158
  254. package/src/styles/tokens/offsets-sizing.css +0 -406
  255. package/src/styles/tokens/property-regs.css +0 -169
  256. package/src/styles/tokens/scale-paper.css +0 -361
  257. package/src/styles/tokens/scheme-motion.css +0 -334
  258. package/src/styles/tokens/shadow.css +0 -132
  259. package/src/styles/utilities/a11y-overrides.css +0 -140
  260. package/src/styles/utilities/animate.css +0 -26
  261. package/src/styles/utilities/base.css +0 -365
  262. package/src/styles/utilities/btn.css +0 -399
  263. package/src/styles/utilities/components.css +0 -317
  264. /package/dist/{CollapsibleContent-Drow5WkV.js → CollapsibleContent-CP9qF1v4.js} +0 -0
  265. /package/dist/{DialogFooter-DufLHi0y.js → DialogFooter-Gprw8H_A.js} +0 -0
  266. /package/dist/{IconTooltip-BrQ5p181.js → IconTooltip-Cus0fvK0.js} +0 -0
  267. /package/dist/{Input-B-F818RU.js → Input-xuDwALQR.js} +0 -0
  268. /package/dist/{_plugin-vue_export-helper-DWghtRt7.js → _plugin-vue_export-helper-ok8pgSl5.js} +0 -0
  269. /package/dist/{compile-Ce_V55zi.js → compile-BOXjLUxu.js} +0 -0
  270. /package/dist/{constants-C8NMonuo.js → constants-yKeKnE84.js} +0 -0
  271. /package/dist/{prng-CjVgzjQT.js → prng-D27-B3tK.js} +0 -0
  272. /package/dist/{resolveCanvasColor-CRvVzOvP.js → resolveCanvasColor-BBiYfp8g.js} +0 -0
  273. /package/dist/{useCanvas2D-CSeH8h16.js → useCanvas2D-ClrQuZtp.js} +0 -0
  274. /package/dist/{useIntersectionPause-DAdVPVp4.js → useIntersectionPause-Cck5Uxk8.js} +0 -0
  275. /package/dist/{useInterval-D3USn0yc.js → useInterval-Dsmqwi03.js} +0 -0
  276. /package/dist/{useKeyboardShortcuts-i8tHd5WO.js → useKeyboardShortcuts-CyIYrndH.js} +0 -0
  277. /package/dist/{useScrollProgress-CcgmgMQt.js → useScrollProgress-CffFGLa5.js} +0 -0
  278. /package/dist/{useSortable-DnyGXKKY.js → useSortable-C8ReQ50P.js} +0 -0
  279. /package/dist/{useTextHighlight-B3b10W6r.js → useTextHighlight-CWEi25hf.js} +0 -0
@@ -0,0 +1,57 @@
1
+ /**
2
+ * <GlassDialogNative> — the native-`<dialog>` glass pilot (AQ.W6 §Design 5).
3
+ *
4
+ * A real `<dialog class="glass-top-layer">` top-layer surface. Entry/exit is
5
+ * PURE CSS from the `.glass-top-layer` grammar (`@starting-style` + `overlay` +
6
+ * `allow-discrete` + a glass `::backdrop`; animations.css §TOP-LAYER) — no
7
+ * per-frame JS, no `useSpringMount`. Light-dismiss is the native `closedby="any"`
8
+ * with a ≤ 12-LOC backdrop-click shim as the feature-detected fallback for
9
+ * engines without `HTMLDialogElement.closedBy`.
10
+ *
11
+ * DISPOSITION (W8 overfitting audit): this is the simple-confirm/settings PILOT
12
+ * only — one heading, optional short form, a close action. reka-ui `Dialog` is
13
+ * UNCHANGED and stays the default for every compound focus-trap case (nested
14
+ * focus zones, async content, the drag-dismiss `spring` opt-in). The pilot ships
15
+ * gated to a demo story (its consumer) pending the muster J.W6 ≥2-consumer
16
+ * adoption; it is NOT on the public barrel or a flat subpath yet (no overfit
17
+ * surface). `commandfor`/`command` (Baseline LIMITED) is the PREFERRED trigger
18
+ * wiring where supported; the JS `showModal()`/`close()` path (exposed below)
19
+ * is the kept default for non-supporting targets.
20
+ *
21
+ * Baseline: `<dialog>` + `showModal` = Widely; `dialog-closedby` = Newly
22
+ * (≤ 20-LOC shim fallback); `invoker-commands` (`commandfor`) = LIMITED
23
+ * (progressive — the JS open path stays default).
24
+ */
25
+ type __VLS_Props = {
26
+ /** Light-dismiss on backdrop/Esc — `closedby="any"`. Default true. */
27
+ lightDismiss?: boolean;
28
+ /** id so a sibling `<button commandfor=… command="show-modal">` can
29
+ * target this dialog (the declarative-open path). */
30
+ id?: string;
31
+ /** `aria-labelledby` target — the id of the consumer's heading. */
32
+ labelledby?: string;
33
+ /** Class merged onto the `<dialog>` surface. */
34
+ class?: string;
35
+ };
36
+ declare function showModal(): void;
37
+ declare function close(returnValue?: string): void;
38
+ declare var __VLS_1: {
39
+ close: typeof close;
40
+ };
41
+ type __VLS_Slots = {} & {
42
+ default?: (props: typeof __VLS_1) => any;
43
+ };
44
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
45
+ showModal: typeof showModal;
46
+ close: typeof close;
47
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
48
+ lightDismiss: boolean;
49
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
50
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
51
+ declare const _default: typeof __VLS_export;
52
+ export default _default;
53
+ type __VLS_WithSlots<T, S> = T & {
54
+ new (): {
55
+ $slots: S;
56
+ };
57
+ };
@@ -0,0 +1 @@
1
+ export { default as GlassDialogNative } from "./GlassDialogNative.vue";
@@ -12,9 +12,10 @@ import { type HTMLAttributes } from "vue";
12
12
  *
13
13
  * K.W6 Lane B — when the consumer attaches `data-tier="primary"`, the
14
14
  * button composes the canonical `btn-audacious` utility (the lifted
15
- * disco-grain + sparkle-sweep + specular-highlight recipe at
16
- * `utilities.css`). `dock.css` retains the dock-local phase-tinting +
17
- * structural shell on top of the canonical recipe.
15
+ * disco-grain + specular-highlight recipe at `utilities.css`; the
16
+ * sparkle-sweep star was excised at D6 — the gold identity now rides the
17
+ * `--gold-rim` gilt edge). `dock.css` retains the dock-local
18
+ * phase-tinting + structural shell on top of the canonical recipe.
18
19
  */
19
20
  type __VLS_Props = {
20
21
  as?: string;
@@ -1,4 +1,112 @@
1
- declare var __VLS_1: {}, __VLS_3: {}, __VLS_5: {}, __VLS_7: {}, __VLS_14: {};
1
+ type DockDensity = "compact" | "comfortable" | "spacious" | "audacious";
2
+ interface DockCommonProps {
3
+ fitContent?: boolean;
4
+ position?: "fixed" | "inline" | "sticky";
5
+ alwaysExpanded?: boolean;
6
+ /**
7
+ * Corner treatment.
8
+ * `"pill"` — the stadium silhouette (default).
9
+ * `"rounded"` — a finite rounded radius (`--radius-xl`).
10
+ * `"card"` — the AW.W3b big-dock card shell: a finite concentric
11
+ * radius (`--dock-card-radius`, default `--radius-3xl`)
12
+ * ABOVE 2xl, below pill — does NOT collapse to a stadium.
13
+ * Collapsed it returns to a pill; the pill↔card swap
14
+ * morphs on the `--dock-motion-resize` spring. AX.W56's
15
+ * squircle policy applies `corner-shape:
16
+ * var(--corner-shape-bigdock)` here under `@supports
17
+ * (corner-shape: superellipse(2))` — the big-dock is the ONE
18
+ * surface where the superellipse reads (cards/pills stay
19
+ * round); the border-radius arc is the cross-engine contract.
20
+ *
21
+ * `"pill"`/`"rounded"` previously bound ONLY under the vertical rail
22
+ * variant — on a horizontal dock the prop silently no-op'd. AW.W3b adds
23
+ * the horizontal-root shape rules (closing that documented-but-dead prop),
24
+ * so `shape` now paints on a horizontal dock too.
25
+ */
26
+ shape?: "pill" | "rounded" | "card";
27
+ /**
28
+ * Layout axis of the dock. `"horizontal"` (default) lays items out
29
+ * left-to-right and animates `width`; `"vertical"` lays items out
30
+ * top-to-bottom and animates `height`. IGNORED under `variant="rail"` /
31
+ * `"instrument-strip"` (those force vertical by construction).
32
+ */
33
+ orientation?: "horizontal" | "vertical";
34
+ /**
35
+ * Density controls dock padding, gaps, layer height, and inherited
36
+ * dock control sizing. Root CSS variables can override each density.
37
+ */
38
+ density?: DockDensity;
39
+ /**
40
+ * Overflow strategy when the expanded content exceeds the dock's
41
+ * axis cap (`--dock-max-inline-size` horizontally,
42
+ * `--dock-max-block-size` vertically). The ONE knob governing every
43
+ * overflow behaviour (AT.W7-dock-a clean break — collapsed from the
44
+ * prior `wrap` boolean + `overflow` pair + `containerName` clip-lift,
45
+ * which all touched overflow divergently).
46
+ * `"grow"` — content grows to fit then overflows visibly past
47
+ * the cap (the default; nothing clips or scrolls).
48
+ * `"wrap"` — expanded content wraps to multiple rows via CONTENT-DRIVEN
49
+ * intrinsic flex-wrap (the `.dock-overflow-wrap` recipe). The
50
+ * dock shrink-wraps to content and caps that intrinsic width
51
+ * at `max-inline-size: var(--dock-max-inline-size)`, so the row
52
+ * reflows to N rows EXACTLY when its intrinsic width exceeds
53
+ * the cap — at ANY viewport width — and collapses to one row
54
+ * when it fits (no viewport breakpoint). The wrapped multi-row silhouette lifts
55
+ * onto the card/floating shadow tier as the dock expands.
56
+ * HORIZONTAL-ONLY: a vertical rail grows-to-fit + clamps via
57
+ * `--dock-max-block-size` (its own overflow story), so the
58
+ * `.dock-overflow-wrap` class is not emitted for a vertical
59
+ * orientation.
60
+ * `"scroll"` — the dock becomes the scroll port. Horizontal docks
61
+ * scroll the active layer on the inline axis
62
+ * (`.dock-scroll-x`); vertical rails scroll on the
63
+ * block axis (`.dock-scroll-y`), keeping the
64
+ * `max-block-size` cap. The rounded pill masks the
65
+ * scroll edge; the scrollbar is hidden. The axis is
66
+ * chosen automatically from `orientation`.
67
+ */
68
+ overflow?: "grow" | "wrap" | "scroll";
69
+ /**
70
+ * When set, the dock root establishes an inline-size container query
71
+ * subject (`container-type: inline-size; container-name: <value>`) so
72
+ * descendants can query the named container via `@container <value>
73
+ * (...)` rules. ORTHOGONAL to the `overflow` clip: opting into a
74
+ * container subject does NOT silently change the dock's clip shell
75
+ * (AT.W7-dock-a — the prior clip-lift was folded out; use
76
+ * `overflow="wrap"` to allow multi-line content).
77
+ *
78
+ * T.B audit §1.3 cornerstone: the cluster's container subject must
79
+ * live on the dock primitive, never on a descendant whose intrinsic
80
+ * size the dock relies on.
81
+ */
82
+ containerName?: string;
83
+ }
84
+ interface DockVariantProps extends DockCommonProps {
85
+ variant?: "dock";
86
+ /** Idle-collapse delay in ms (default 2000). DOCK-ONLY — a rail never collapses. */
87
+ collapseDelay?: number;
88
+ /** Start in the collapsed state (default true). DOCK-ONLY — a rail is always expanded. */
89
+ startCollapsed?: boolean;
90
+ /**
91
+ * In-cap arrangement. `"linear"` (default) lays the active layer out as a
92
+ * linear row/column. `"grid"` makes the active layer a self-wrapping tile
93
+ * grid (Launchpad/Stage-Manager track symmetry — `auto-fill` columns of
94
+ * `--dock-tile-min`). ORTHOGONAL to `overflow` (the OVER-cap strategy):
95
+ * `layout` is the IN-cap arrangement.
96
+ *
97
+ * Hard contract: a `layout="grid"` dock is `alwaysExpanded` (a 2D panel
98
+ * does not read as a collapsible pill, and no width morph means no
99
+ * per-frame grid reflow). The canonical pairing is
100
+ * `shape="card" layout="grid"` (the props stay independent — no
101
+ * auto-implication of `shape`). DOCK-ONLY — the grid is a horizontal big-dock
102
+ * arrangement, never a rail's.
103
+ */
104
+ layout?: "linear" | "grid";
105
+ }
106
+ interface DockRailProps extends DockCommonProps {
107
+ variant: "rail" | "instrument-strip";
108
+ }
109
+ declare var __VLS_1: {}, __VLS_3: {}, __VLS_5: {}, __VLS_7: {}, __VLS_14: {}, __VLS_16: {}, __VLS_18: {};
2
110
  type __VLS_Slots = {} & {
3
111
  persistent?: (props: typeof __VLS_1) => any;
4
112
  } & {
@@ -9,8 +117,12 @@ type __VLS_Slots = {} & {
9
117
  default?: (props: typeof __VLS_7) => any;
10
118
  } & {
11
119
  collapsed?: (props: typeof __VLS_14) => any;
120
+ } & {
121
+ default?: (props: typeof __VLS_16) => any;
122
+ } & {
123
+ collapsed?: (props: typeof __VLS_18) => any;
12
124
  };
13
- declare const __VLS_base: import("vue").DefineComponent<import("./composables/useDockShellProps").DockVariantProps | import("./composables/useDockShellProps").DockRailProps, {
125
+ declare const __VLS_base: import("vue").DefineComponent<DockVariantProps | DockRailProps, {
14
126
  expanded: import("vue").Ref<boolean, boolean>;
15
127
  isPinned: import("vue").Ref<boolean, boolean>;
16
128
  isHeld: import("vue").ComputedRef<boolean>;
@@ -19,7 +131,7 @@ declare const __VLS_base: import("vue").DefineComponent<import("./composables/us
19
131
  collapse: () => void;
20
132
  keepOpen: () => void;
21
133
  release: () => void;
22
- }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("./composables/useDockShellProps").DockVariantProps | import("./composables/useDockShellProps").DockRailProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
134
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<DockVariantProps | DockRailProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
23
135
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
24
136
  declare const _default: typeof __VLS_export;
25
137
  export default _default;
@@ -1,40 +1,4 @@
1
1
  import type { Ref } from "vue";
2
- /**
3
- * AX.W02 — ONE morph orchestrator per dock. The dock is a single morph stack
4
- * whose active "layer" is `(expandedState × activePane)`: the outer
5
- * collapse↔expand swap and the inner `<DockLayerGroup>` pane swaps are
6
- * transitions in the SAME group — ONE spring, ONE scalar (`--dock-morph-t`,
7
- * established by W01), ONE clock. No second engine.
8
- *
9
- * Re-derived from first principles on W01's settled single-scalar substrate:
10
- * - `--dock-morph-t` is written to the `.glass-dock` root and INHERITS to every
11
- * descendant (dock.css `@property … inherits:true`), so ONE spring writing
12
- * that one scalar drives EVERY registered container's size calc at once.
13
- * - Each morphing container carries its OWN `--dock-morph-from`/`--dock-morph-to`
14
- * px span (the allowed one-time FLIP measurement) and interpolates it against
15
- * the shared scalar — `from + (to − from) · t`. So a simultaneous
16
- * collapse + pane-swap reads as one continuous spring: the box, the nested
17
- * stack, and every child stagger ramp on the same `t`.
18
- *
19
- * The orchestrator OWNS one `SpringProgress`. The OUTER collapse↔expand pair
20
- * registers as a target; a NESTED `<DockLayerGroup>` registers a SECOND target
21
- * instead of minting its own `useLayerTransition` engine. A re-toggle mid-flight
22
- * re-bases the live solver onto the new span from its current velocity (the iOS
23
- * interruptible-physics contract W01 keeps), so even an interrupted morph stays
24
- * one continuous trajectory.
25
- *
26
- * This is the dock-flavored first instance of the general `MorphGroup` /
27
- * `GlassEffectContainer` facility (the iOS-26 Liquid-Glass corpus, facet 26 —
28
- * the `provideMorphGroup` two-part seam: a per-element driver + a provide/inject
29
- * orchestrator). AX.W42 generalizes it; W02 establishes the seam it builds on.
30
- *
31
- * LIGHT-surface only: `SpringProgress` owns its own rAF via `.play(onFrame)` and
32
- * carries no static value.js edge — never import `AnimationGroup` / `./engine`
33
- * (that pulls value.js into the dock bundle).
34
- *
35
- * The `DOCK_SPRING` tuning this orchestrator drives is the ONE authority shared with
36
- * `useLayerTransition` — it lives in `../constants` (the feature-dir constants home).
37
- */
38
2
  export interface DockMorphGroupRegistration {
39
3
  /** The container element owning this group's grid-stacked panes. */
40
4
  containerEl: Ref<HTMLElement | null>;
@@ -1,48 +1,4 @@
1
1
  import type { Ref } from "vue";
2
- /**
3
- * AX.W01 — the dock single-scalar morph: ONE spring, ONE clock, the whole box.
4
- *
5
- * Re-derived from first principles (the e8380d7 single-clock high-water; the
6
- * 479-line VT-fork accretion is gone). The collapse↔expand (and inner pane-swap)
7
- * morph runs off ONE normalized analytic spring whose progress scalar (0→1) is
8
- * written once per frame to `--dock-morph-t` on the `.glass-dock` root. EVERY
9
- * animated axis — inline-size, padding, border-radius, scale, background / border
10
- * color, AND the child stagger — is a pure `calc()` read off that one scalar in
11
- * `dock.css`. NO CSS `transition` on the root morph props; NO View-Transitions
12
- * fork: the live `SpringProgress` ODE is the single authority on every engine, so
13
- * iOS interruptible-physics + velocity-continuity retarget are universal, not
14
- * capability-gated.
15
- *
16
- * The morph is a FLIP — the from→to size is measured ONCE per swap (the allowed
17
- * one-time measurement primitive, never a co-driver), written as `--dock-morph-from`
18
- * / `--dock-morph-to` px vars on the morphing element, and the live scalar
19
- * interpolates between them in CSS. Content lays out once at natural size;
20
- * `overflow:clip` on the morph axis (dock.css, gated on `data-morphing`) makes the
21
- * box the reveal aperture; the spring-keyed stagger fades the children in-step.
22
- *
23
- * Velocity-continuity (the ONE load-bearing iOS piece): a re-toggle mid-flight
24
- * re-bases the live solver onto the new span from its current velocity (the
25
- * analytic re-seat keyframes.js owns) — inertia carries, no snap-from-rest. The
26
- * spring constant is the published `--spring-dock` (response 0.32, ζ 0.7, ~+4.6%
27
- * overshoot), the SAME analytic ODE the build-time linear() token samples.
28
- *
29
- * LIGHT-surface only: `SpringProgress` owns its own rAF via `.play(onFrame)` and
30
- * carries no static value.js edge. NEVER import `AnimationGroup` / the `./engine`
31
- * boundary — that pulls value.js into the dock bundle.
32
- *
33
- * BOOKED: AY.W-GOD1 — the FLIP-engine FOLD. This standalone engine is a
34
- * near-duplicate of the orchestrator's FLIP-pin-measure-arm dance
35
- * (`dockMorphContext.ts:onSwap`), which is the SUPERSET (it carries sibling-rebase
36
- * this copy lacks). W-DOCK2 found the duplication (H-dock §D3) and BOOKED the fold
37
- * to W-GOD1 (the GlassDock.vue carve touches the same FLIP code, so the carve is
38
- * cleaner over ONE engine; folding now would also break the `/dock` `useLayerTransition`
39
- * public re-export an external consumer reads). Until W-GOD1 lands, `proof:dock-orchestrator-single`'s
40
- * FLIP DRIFT-GUARD asserts this engine and the orchestrator stay byte-faithful on
41
- * the load-bearing pin-measure-arm markers, so a divergence in the shared dance REDs.
42
- * The CANONICAL `DOCK_SPRING` authority is `dock/constants.ts` (the colocation home
43
- * BOTH this engine and the orchestrator import); `proof:spring-tokens-synced` reads
44
- * it there, NOT a per-composable copy (W-COLOCATE — the dead-witness fix, continued).
45
- */
46
2
  export interface UseLayerTransitionOptions {
47
3
  /** The container element that owns the stacked layer panes. */
48
4
  containerEl: Ref<HTMLElement | null>;
@@ -6,6 +6,20 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
6
6
  expandLabel?: string;
7
7
  /** Accessible name for the collapse (exit fullscreen) button. */
8
8
  collapseLabel?: string;
9
+ /**
10
+ * Opt into the `gl-expand` plate → fullscreen MORPH (D6.c M7). When set,
11
+ * the inline anchor and the teleported fullscreen surface share ONE
12
+ * `view-transition-name` (this prop, suffixed by an app-unique `useId()`
13
+ * so two ExpandableContainers on a page never collide their groups — the
14
+ * proof:vt-names mandate), and the open/close toggle is wrapped in
15
+ * `startViewTransition` so the plate's rect MORPHS to the fullscreen rect
16
+ * (and back) instead of jump-cutting. A passed string namespaces the pair
17
+ * (e.g. `"chart"`); pass an empty string for a bare `useId()` name.
18
+ * Omitted (default) ⇒ NO view-transition-name, the legacy instant toggle —
19
+ * byte-identical to the pre-M7 behaviour. PRM + unsupported engines take
20
+ * `startViewTransition`'s instant fallback (the open/close still runs).
21
+ */
22
+ viewTransitionName?: string;
9
23
  } & {
10
24
  /**
11
25
  * Two-way `open` model so consumers can drive fullscreen externally
@@ -13,7 +27,13 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
13
27
  * buttons continue to operate without parent wiring.
14
28
  */
15
29
  open?: boolean;
16
- }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
30
+ }, {
31
+ anchorEl: Readonly<import("vue").ShallowRef<HTMLElement | null>>;
32
+ surfaceEl: Readonly<import("vue").ShallowRef<HTMLElement | null>>;
33
+ expand: () => void;
34
+ collapse: () => void;
35
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
36
+ settle: (fullscreen: boolean) => any;
17
37
  "update:open": (value: boolean) => any;
18
38
  }, string, import("vue").PublicProps, Readonly<{
19
39
  buttonPosition?: "left" | "right";
@@ -21,6 +41,20 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
21
41
  expandLabel?: string;
22
42
  /** Accessible name for the collapse (exit fullscreen) button. */
23
43
  collapseLabel?: string;
44
+ /**
45
+ * Opt into the `gl-expand` plate → fullscreen MORPH (D6.c M7). When set,
46
+ * the inline anchor and the teleported fullscreen surface share ONE
47
+ * `view-transition-name` (this prop, suffixed by an app-unique `useId()`
48
+ * so two ExpandableContainers on a page never collide their groups — the
49
+ * proof:vt-names mandate), and the open/close toggle is wrapped in
50
+ * `startViewTransition` so the plate's rect MORPHS to the fullscreen rect
51
+ * (and back) instead of jump-cutting. A passed string namespaces the pair
52
+ * (e.g. `"chart"`); pass an empty string for a bare `useId()` name.
53
+ * Omitted (default) ⇒ NO view-transition-name, the legacy instant toggle —
54
+ * byte-identical to the pre-M7 behaviour. PRM + unsupported engines take
55
+ * `startViewTransition`'s instant fallback (the open/close still runs).
56
+ */
57
+ viewTransitionName?: string;
24
58
  } & {
25
59
  /**
26
60
  * Two-way `open` model so consumers can drive fullscreen externally
@@ -29,8 +63,10 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
29
63
  */
30
64
  open?: boolean;
31
65
  }> & Readonly<{
66
+ onSettle?: ((fullscreen: boolean) => any) | undefined;
32
67
  "onUpdate:open"?: ((value: boolean) => any) | undefined;
33
68
  }>, {
69
+ viewTransitionName: string;
34
70
  buttonPosition: "left" | "right";
35
71
  expandLabel: string;
36
72
  collapseLabel: string;
@@ -38,10 +74,6 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
38
74
  default?: (props: {
39
75
  fullscreen: boolean;
40
76
  }) => any;
41
- } & {
42
- default?: (props: {
43
- fullscreen: boolean;
44
- }) => any;
45
77
  }>;
46
78
  type __VLS_WithSlots<T, S> = T & {
47
79
  new (): {
@@ -1,6 +1,6 @@
1
1
  import type { ColorResolver } from "../../../composables/color";
2
2
  export { default as FourierField } from "./FourierField.vue";
3
- export { comp, positionsAt, dftFromPoints, makeEllipticSpectrum, type BasisComponent, type EllipticSpectrumOptions, } from "./math";
3
+ export { comp, positionsAt, makeEllipticSpectrum, type BasisComponent, type EllipticSpectrumOptions, } from "./math";
4
4
  /** The configuration-BUNDLE axis — `hero` (epicycles on, fewer harmonics) vs
5
5
  * `final` (epicycles off, denser). Not a recolour of one curve; one engine,
6
6
  * two presets. */
@@ -23,23 +23,6 @@ export declare function comp(index: number, re: number, im: number): BasisCompon
23
23
  * carries).
24
24
  */
25
25
  export declare function positionsAt(components: BasisComponent[], t: number, maxCircles?: number): [number, number][];
26
- /**
27
- * The forward DFT — the inverse of {@link positionsAt}. Takes a closed sequence
28
- * of `[x, y]` samples around a curve (treated as the complex signal `x + i·y`,
29
- * uniformly spaced in the parameter `t ∈ [0, 1)`) and returns the
30
- * {@link BasisComponent} spectrum that {@link positionsAt} reconstructs.
31
- *
32
- * Frequencies run symmetrically around 0 — `0, +1, -1, +2, -2, …` up to the
33
- * Nyquist limit — which is the index ordering the epicycle chain wants (the big
34
- * low-order phasors first). The DC term (`index 0`) is the curve's centroid; the
35
- * caller can subtract it (draw the chain centered) or keep it (draw at the
36
- * sampled position).
37
- *
38
- * General: any point set drives it (a glyph outline, a hand-traced path, a
39
- * digitized signature). It is NOT a special case — it is the literal forward
40
- * transform whose inverse already ships as `positionsAt`.
41
- */
42
- export declare function dftFromPoints(points: [number, number][]): BasisComponent[];
43
26
  /** Tuning for {@link makeEllipticSpectrum}. */
44
27
  export interface EllipticSpectrumOptions {
45
28
  /**
@@ -0,0 +1,41 @@
1
+ import { type GlassTier } from "../../../composables/glass/useGlassRenderer";
2
+ /**
3
+ * Surface-tier vocabulary for the CSS rendering branch. Mirrors the v0.8
4
+ * five-rung ladder declared in `tokens.css §8` and consumed by the
5
+ * `.glass-{wash,quiet,resting,floating,overlay}` utility classes.
6
+ *
7
+ * v0.8.6 — `default | medium | elevated` retired (per audit U.W0.C-b §21).
8
+ */
9
+ export type GlassPanelVariant = "wash" | "quiet" | "resting" | "floating" | "overlay";
10
+ export interface GlassPanelProps {
11
+ /** Force a specific rendering tier */
12
+ tier?: GlassTier;
13
+ /** Blur radius (default: 16) */
14
+ blur?: number;
15
+ /** Refraction strength 0-1 (default: 0.3) */
16
+ refraction?: number;
17
+ /** Chromatic aberration strength 0-1 (default: 0) */
18
+ chromaticAberration?: boolean;
19
+ /** Glass surface tier for the CSS rendering branch (v0.8 5-rung ladder). */
20
+ variant?: GlassPanelVariant;
21
+ /** Additional classes */
22
+ class?: string;
23
+ }
24
+ declare var __VLS_1: {};
25
+ type __VLS_Slots = {} & {
26
+ default?: (props: typeof __VLS_1) => any;
27
+ };
28
+ declare const __VLS_base: import("vue").DefineComponent<GlassPanelProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<GlassPanelProps> & Readonly<{}>, {
29
+ variant: GlassPanelVariant;
30
+ blur: number;
31
+ refraction: number;
32
+ chromaticAberration: boolean;
33
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
34
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
35
+ declare const _default: typeof __VLS_export;
36
+ export default _default;
37
+ type __VLS_WithSlots<T, S> = T & {
38
+ new (): {
39
+ $slots: S;
40
+ };
41
+ };
@@ -0,0 +1,2 @@
1
+ export { default as GlassPanel } from "./GlassPanel.vue";
2
+ export type { GlassPanelProps, GlassPanelVariant } from "./GlassPanel.vue";
@@ -1,7 +1,6 @@
1
1
  import { type Ref } from "vue";
2
- import { TRAIL_N } from "../constants";
3
- /** Compile-time trail length — re-exported from the co-located shape budget (`../constants`). */
4
- export { TRAIL_N };
2
+ /** Compile-time trail length — mirrors `TRAIL_N` in metaball.frag.ts. */
3
+ export declare const TRAIL_N = 15;
5
4
  /** A single trail sample — a decaying-radius metaball source the shader smin-merges. */
6
5
  export interface TrailSample {
7
6
  x: number;
@@ -14,7 +13,7 @@ export interface TrailSample {
14
13
  * FRAME-RATE-INDEPENDENT critically-damped spring fed the renderer's per-frame
15
14
  * `dtMs` (NOT a fixed-α lerp — the prior `SMOOTH_FACTOR = 0.12` was framerate
16
15
  * dependent). The spring is `@mkbabb/keyframes.js` `SpringProgress` driven through
17
- * its `tickDt(dtMs)` seam by the SUBSTRATE's single rAF — it does NOT call
16
+ * its `tick(dt)` seam by the SUBSTRATE's single rAF — it does NOT call
18
17
  * `SpringProgress.play()` (that would start a parallel rAF, the
19
18
  * single-substrate-loop violation `proof:blob-interaction-prm` forbids).
20
19
  *
@@ -24,20 +24,14 @@ export interface UseMetaballRendererOptions {
24
24
  satellites: BlobSatelliteSystem;
25
25
  config: BlobConfig;
26
26
  }
27
- /** The renderer's public control surface — pause/resume the demand loop. */
28
- export interface UseMetaballRendererReturn {
29
- pause: () => void;
30
- resume: () => void;
31
- }
32
27
  /**
33
28
  * The GooBlob WebGL renderer — composes the `useWebGLCanvas` substrate (AU.W6).
34
29
  *
35
30
  * This module owns ONLY the metaball-specific concerns: compiling the shader,
36
- * building the quad + uniform cache (the `buildMetaballProgram` leaf), and
37
- * uploading the per-frame uniforms (the `uploadBlobUniforms` leaf) derived from the
38
- * mood / pointer / satellite systems and the resolved base color. The generic
39
- * WebGL2 lifecycle — context creation, the suspend/resume model, the demand-driven
40
- * rAF loop, the tab-visibility owner, the ResizeObserver, and the
31
+ * building the quad + uniform cache, and uploading the per-frame uniforms derived
32
+ * from the mood / pointer / satellite systems and the resolved base color. The
33
+ * generic WebGL2 lifecycle — context creation, the suspend/resume model, the
34
+ * demand-driven rAF loop, the tab-visibility owner, the ResizeObserver, and the
41
35
  * webglcontextlost/restored robustness — lives in the substrate; this renderer
42
36
  * threads its behaviour through the substrate's
43
37
  * `setup`/`frame`/`shouldContinue`/`resize`/`teardown` callbacks. It does NOT call
@@ -49,4 +43,7 @@ export interface UseMetaballRendererReturn {
49
43
  * a `var(--token)` — the SFC's `resolveTokenColor` leaf does that BEFORE handing
50
44
  * concrete strings here (inv-K-3 seam); the value.js 1×1-canvas DOM probe is gone.
51
45
  */
52
- export declare function useMetaballRenderer(options: UseMetaballRendererOptions): UseMetaballRendererReturn;
46
+ export declare function useMetaballRenderer(options: UseMetaballRendererOptions): {
47
+ pause: () => void;
48
+ resume: () => void;
49
+ };
@@ -0,0 +1,29 @@
1
+ import type { HandMarkProps } from "./types";
2
+ declare function play(): void;
3
+ declare var __VLS_1: {};
4
+ type __VLS_Slots = {} & {
5
+ default?: (props: typeof __VLS_1) => any;
6
+ };
7
+ declare const __VLS_base: import("vue").DefineComponent<HandMarkProps, {
8
+ play: typeof play;
9
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<HandMarkProps> & Readonly<{}>, {
10
+ color: string;
11
+ seed: number;
12
+ shape: import("./types").HandShape;
13
+ animation: import("./types").HandAnimation;
14
+ appear: "mount" | "visible" | "manual";
15
+ jagged: boolean;
16
+ brush: import("./brush").BrushName | Partial<import("./brush").Brush>;
17
+ drawMs: number;
18
+ drawDelayMs: number;
19
+ boilFps: number;
20
+ boilFrames: number;
21
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
22
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
23
+ declare const _default: typeof __VLS_export;
24
+ export default _default;
25
+ type __VLS_WithSlots<T, S> = T & {
26
+ new (): {
27
+ $slots: S;
28
+ };
29
+ };