@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
@@ -60,56 +60,5 @@
60
60
  @keyframes gl-vt-slide-in { from { opacity: 0; translate: 0 var(--vt-rise, 8px); } }
61
61
  @keyframes gl-vt-slide-out { to { opacity: 0; translate: 0 var(--vt-rise, 8px); } }
62
62
 
63
- /* ── gl-shared-element — the named-pair MORPH group (D6.c M6) ──────────────────
64
- * Distinct from `.gl-list-item` (a cross-fade of MANY members in a re-rank): a
65
- * shared-element morph is ONE element that exists in BOTH the old and new states
66
- * under the SAME `view-transition-name`, so the browser MORPHS it in place — the
67
- * group interpolates its size+position (transform) while old/new cross-fade. The
68
- * editorial case: the gallery card's title IS the dashboard masthead's title, so
69
- * the name you clicked GROWS into the name you read (the card → masthead route
70
- * morph). The consumer adds `view-transition-class: gl-shared-element` plus a
71
- * MATCHED `view-transition-name: <id>` on BOTH the source and destination element
72
- * (the MANDATORY runtime rule — ≤1 element per name per state, else the morph is
73
- * skipped silently), and wraps the navigation in `useRouteTransition` /
74
- * `startViewTransition`.
75
- *
76
- * The morph rides the SMOOTH register (the 700ms-class spring, C-ANIM-VIZ-MAP T1
77
- * §7) — a longer, gentler curve than the list-item cross-fade, because a morph
78
- * that travels across the viewport wants room to read. The old/new cross-fade is
79
- * softened so the morphing GROUP is the figure and the rest recedes. */
80
- ::view-transition-group(.gl-shared-element) {
81
- animation-duration: var(--vt-morph-duration, var(--duration-slow, 500ms));
82
- animation-timing-function: var(--vt-morph-ease, var(--spring-smooth, ease-in-out));
83
- }
84
- ::view-transition-old(.gl-shared-element),
85
- ::view-transition-new(.gl-shared-element) {
86
- /* The image pair cross-fades UNDER the group's size/position morph — softer
87
- than the group curve so the morph (the size/position travel) is the figure
88
- and the pixel cross-fade is the recessive fill. */
89
- animation-duration: var(--vt-morph-duration, var(--duration-slow, 500ms));
90
- animation-timing-function: var(--vt-ease, var(--spring-smooth, ease-in-out));
91
- }
92
-
93
- /* ── gl-expand — the plate → fullscreen MORPH recipe (D6.c M7) ─────────────────
94
- * The expand verb (a plate growing to fullscreen) is a SHARED-ELEMENT morph, not
95
- * an opacity jump-cut: the plate IS the fullscreen surface, growing. It is a
96
- * specialization of `gl-shared-element` — the SAME named-pair morph, with the
97
- * expand register (a touch snappier than a route morph, because the surface stays
98
- * in place and only the rect grows, so it wants less travel-room). `ExpandableContainer`
99
- * wires the `view-transition-name` plumbing on its plate↔fullscreen surfaces (an
100
- * opt-in `viewTransitionName` prop), so a consumer opts in and the open/close
101
- * mutation — wrapped in `startViewTransition` — morphs the plate's rect to the
102
- * fullscreen rect and back. The named pair is the SAME element across states
103
- * (the slot content), so the browser captures one group and grows it. */
104
- ::view-transition-group(.gl-expand) {
105
- animation-duration: var(--vt-expand-duration, var(--duration-normal, 240ms));
106
- animation-timing-function: var(--vt-expand-ease, var(--spring-bouncy, ease-out));
107
- }
108
- ::view-transition-old(.gl-expand),
109
- ::view-transition-new(.gl-expand) {
110
- animation-duration: var(--vt-expand-duration, var(--duration-normal, 240ms));
111
- animation-timing-function: var(--vt-ease, var(--spring-bouncy, ease-out));
112
- }
113
-
114
63
  /* Keep the non-transitioned UI interactive while the snapshot animates. */
115
64
  ::view-transition { pointer-events: none; }
@@ -1,23 +0,0 @@
1
- import { t as e } from "./cn-DJXf4yaB.js";
2
- import { t } from "./Progress-iEuD9pxG.js";
3
- import { createBlock as n, defineComponent as r, normalizeClass as i, openBlock as a, unref as o } from "vue";
4
- //#endregion
5
- //#region src/components/custom/deck-progress/DeckProgress.vue
6
- var s = /* @__PURE__ */ r({
7
- __name: "DeckProgress",
8
- props: {
9
- value: {},
10
- class: {}
11
- },
12
- setup(r) {
13
- let s = r;
14
- return (r, c) => (a(), n(o(t), {
15
- variant: "default",
16
- "model-value": s.value,
17
- class: i(o(e)("glass-progress-rail", s.class)),
18
- "aria-label": "Deck position"
19
- }, null, 8, ["model-value", "class"]));
20
- }
21
- });
22
- //#endregion
23
- export { s as t };
@@ -1,44 +0,0 @@
1
- import { t as e } from "./cn-DJXf4yaB.js";
2
- import { computed as t, createCommentVNode as n, createElementBlock as r, defineComponent as i, normalizeClass as a, normalizeStyle as o, openBlock as s, renderSlot as c } from "vue";
3
- //#region src/components/custom/instrument-rail/InstrumentRail.vue?vue&type=script&setup=true&lang.ts
4
- var l = [
5
- "data-variant",
6
- "data-bezel-hairlines",
7
- "data-divider-rule"
8
- ], u = {
9
- key: 0,
10
- class: "instrument-rail-status"
11
- }, d = /* @__PURE__ */ i({
12
- __name: "InstrumentRail",
13
- props: {
14
- variant: { default: "vertical" },
15
- ratio: { default: .382 },
16
- bezelHairlines: {
17
- type: Boolean,
18
- default: !0
19
- },
20
- dividerRule: {
21
- type: Boolean,
22
- default: !0
23
- },
24
- class: { type: [
25
- Boolean,
26
- null,
27
- String,
28
- Object,
29
- Array
30
- ] }
31
- },
32
- setup(i) {
33
- let d = i, f = t(() => e("instrument-rail", d.class)), p = t(() => ({ "--instrument-rail-ratio": String(d.ratio) }));
34
- return (e, t) => (s(), r("aside", {
35
- class: a(f.value),
36
- "data-variant": i.variant,
37
- "data-bezel-hairlines": i.bezelHairlines ? "" : null,
38
- "data-divider-rule": i.dividerRule ? "" : null,
39
- style: o(p.value)
40
- }, [e.$slots.status ? (s(), r("header", u, [c(e.$slots, "status")])) : n("", !0), c(e.$slots, "default")], 14, l));
41
- }
42
- });
43
- //#endregion
44
- export { d as t };
@@ -1,27 +0,0 @@
1
- /**
2
- * DeckProgress — a thin `:value`-only wrapper that renders the shipped
3
- * `<Progress variant="default">` styled as the `.glass-progress-rail`
4
- * deck-position rail (AW.W16).
5
- *
6
- * It owns the rail LOOK and NOTHING ELSE. The CONSUMER owns:
7
- * - the position math — `value` is a pre-computed 0..100 percentage
8
- * (`100·(k+1)/N` is a one-liner every consumer already keeps);
9
- * - the viewport-pinned chrome — `position: fixed`,
10
- * `bottom: env(safe-area-inset-bottom)`, the z-index — supplied via the
11
- * forwarded `class` (a consumer pins it; this wrapper declares no
12
- * positioning).
13
- *
14
- * NO `:index`/`:total` convenience path, NO `deckProgress()` math import, NO
15
- * `/deck` subpath (the `/deck` name is reserved for the slides deck-engine
16
- * lift). The wrapper ships on the root barrel like the other cherry-picked
17
- * custom composites.
18
- */
19
- export interface DeckProgressProps {
20
- /** Pre-computed deck-position percentage (0..100) the consumer supplies. */
21
- value: number;
22
- /** Forwarded class — the consumer pins the rail's viewport chrome here. */
23
- class?: string;
24
- }
25
- declare const __VLS_export: import("vue").DefineComponent<DeckProgressProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<DeckProgressProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
26
- declare const _default: typeof __VLS_export;
27
- export default _default;
@@ -1,2 +0,0 @@
1
- export { default as DeckProgress } from "./DeckProgress.vue";
2
- export type { DeckProgressProps } from "./DeckProgress.vue";
@@ -1,57 +0,0 @@
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
- };
@@ -1 +0,0 @@
1
- export { default as GlassDialogNative } from "./GlassDialogNative.vue";
@@ -1,41 +0,0 @@
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
- };
@@ -1,2 +0,0 @@
1
- export { default as GlassPanel } from "./GlassPanel.vue";
2
- export type { GlassPanelProps, GlassPanelVariant } from "./GlassPanel.vue";
@@ -1,29 +0,0 @@
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
- };
@@ -1,219 +0,0 @@
1
- /**
2
- * brush.ts — the flat Brush DATA model (the keystone; SPEC §2). Pure data, 0 deps.
3
- * ─────────────────────────────────────────────────────────────────────────────
4
- * A `Brush` is a plain JSON-serialisable record — twelve scalars, four enums, and
5
- * one optional `stamp` function. Every built-in medium is a frozen literal: a
6
- * POINT in one continuous parameter space, NOT a class in a taxonomy. The renderer
7
- * (`ink.ts`) reads fields — it NEVER branches on instrument name (SPEC §12 acc-1).
8
- * Adding a medium = adding one row here; an in-between medium = a spread/lerp.
9
- *
10
- * Field-count discipline (SPEC §2): resist a 13th scalar per new instrument —
11
- * `blend` earned its place only because highlighter genuinely needed `multiply`.
12
- *
13
- * The shipped register: PEN is the default (clean ink, grain:0 ⇒ no filter); the
14
- * CRAYON ships as the proven STROKE-crayon (constant-width offset passes + the
15
- * seeded static feTurbulence grain — `ds-crayon-handmark` verdict), i.e.
16
- * `ribbon:'stroke'` (the `ribbon:'hull'` perfect-freehand width-variance upgrade
17
- * is wired but unconsumed — a later field-delta, never a code branch).
18
- */
19
- export type BlendMode = "source-over" | "multiply" | "darken" | "screen";
20
- export interface TaperSpec {
21
- /** px the width ramps 0→full at the start (lift-on). */
22
- start: number;
23
- /** px the width ramps full→0 at the end (lift-off / dry run-out). */
24
- end: number;
25
- /** out-cubic = the lazy pencil run-out. */
26
- ease: "linear" | "out-cubic";
27
- }
28
- export interface Brush {
29
- /** base stroke diameter, in viewBox units. */
30
- weight: number;
31
- /** 0..1.4 seeded ±width variance along arc-length. */
32
- weightJitter: number;
33
- /** -1..1 pressure→width gain (pf `thinning`). */
34
- thinning: number;
35
- /** lift-on / lift-off ramp. */
36
- taper: TaperSpec;
37
- /** L2 body strategy: plain stroked <path> | pf filled hull. DEFAULT 'stroke'. */
38
- ribbon: "stroke" | "hull";
39
- /** 0..1 base alpha. */
40
- opacity: number;
41
- /** 'source-over' ink | 'multiply' highlighter-behind-text. */
42
- blend: BlendMode;
43
- /** overdraw count (pen 1 · crayon 2-3). */
44
- passes: number;
45
- /** 0..1 per-pass alpha falloff (heavy core, light fringe). */
46
- passOpacity: number;
47
- /** 0..1 paper-through depth — THE master pen↔crayon knob. 0 ⇒ NO filter. */
48
- grain: number;
49
- /** feTurbulence baseFrequency (high=pencil tooth · low=crayon wax). */
50
- grainFreq: number;
51
- /** feDisplacementMap edge-fray scale, px. */
52
- grainScale: number;
53
- /** feTurbulence numOctaves (grain richness). */
54
- octaves: number;
55
- /** macro tremor → wobbleLinePoints({ roughness }). */
56
- roughness: number;
57
- /** micro displacement scale (boil amplitude + warp filter). */
58
- wobble: number;
59
- /** wobble centerline resolution. */
60
- segments: number;
61
- cap: "round" | "square" | "butt";
62
- /** when present, OVERRIDES the built-in ink stage only. */
63
- stamp?: StampFn;
64
- }
65
- /** SPEC §5 — the arbitrary-brush escape hatch (one optional field, not a framework). */
66
- export type StampFn = (ctx: {
67
- centerline: [number, number][];
68
- brush: Brush;
69
- rng: () => number;
70
- seed: number;
71
- length: number;
72
- color: string;
73
- }) => {
74
- paths: InkPath[];
75
- filterId?: string | null;
76
- defs?: string[];
77
- };
78
- /** One ink path the renderer emits (shared with ink.ts; declared here to avoid a cycle). */
79
- export interface InkPath {
80
- d: string;
81
- fill?: string;
82
- stroke?: string;
83
- opacity: number;
84
- blend: BlendMode;
85
- }
86
- /**
87
- * The named points in the continuum. `pen` is the DEFAULT (clean ink, grain:0).
88
- * `crayon` is the SHIPPED stroke-crayon (ribbon:'stroke', the static grain filter);
89
- * `pencil`/`marker`/`highlighter` round out the spanning set.
90
- */
91
- export declare const BRUSHES: {
92
- readonly pen: {
93
- readonly weight: 6;
94
- readonly weightJitter: 0.1;
95
- readonly thinning: 0.15;
96
- readonly taper: {
97
- readonly start: 14;
98
- readonly end: 14;
99
- readonly ease: "out-cubic";
100
- };
101
- readonly ribbon: "stroke";
102
- readonly opacity: 1;
103
- readonly blend: "source-over";
104
- readonly passes: 1;
105
- readonly passOpacity: 0;
106
- readonly grain: 0;
107
- readonly grainFreq: 0.1;
108
- readonly grainScale: 0;
109
- readonly octaves: 2;
110
- readonly roughness: 0.7;
111
- readonly wobble: 1.2;
112
- readonly segments: 9;
113
- readonly cap: "round";
114
- };
115
- readonly pencil: {
116
- readonly weight: 3;
117
- readonly weightJitter: 0.3;
118
- readonly thinning: 0.4;
119
- readonly taper: {
120
- readonly start: 8;
121
- readonly end: 18;
122
- readonly ease: "out-cubic";
123
- };
124
- readonly ribbon: "stroke";
125
- readonly opacity: 0.6;
126
- readonly blend: "source-over";
127
- readonly passes: 1;
128
- readonly passOpacity: 0;
129
- readonly grain: 0.5;
130
- readonly grainFreq: 0.42;
131
- readonly grainScale: 1.5;
132
- readonly octaves: 3;
133
- readonly roughness: 1;
134
- readonly wobble: 1.6;
135
- readonly segments: 11;
136
- readonly cap: "round";
137
- };
138
- readonly crayon: {
139
- readonly weight: 16;
140
- readonly weightJitter: 1;
141
- readonly thinning: 0.25;
142
- readonly taper: {
143
- readonly start: 6;
144
- readonly end: 6;
145
- readonly ease: "linear";
146
- };
147
- readonly ribbon: "stroke";
148
- readonly opacity: 0.8;
149
- readonly blend: "source-over";
150
- readonly passes: 2;
151
- readonly passOpacity: 0.18;
152
- readonly grain: 0.85;
153
- readonly grainFreq: 0.16;
154
- readonly grainScale: 2.6;
155
- readonly octaves: 4;
156
- readonly roughness: 1.5;
157
- readonly wobble: 3;
158
- readonly segments: 13;
159
- readonly cap: "round";
160
- };
161
- readonly marker: {
162
- readonly weight: 12;
163
- readonly weightJitter: 0.2;
164
- readonly thinning: 0.1;
165
- readonly taper: {
166
- readonly start: 4;
167
- readonly end: 10;
168
- readonly ease: "out-cubic";
169
- };
170
- readonly ribbon: "stroke";
171
- readonly opacity: 0.92;
172
- readonly blend: "source-over";
173
- readonly passes: 1;
174
- readonly passOpacity: 0;
175
- readonly grain: 0.22;
176
- readonly grainFreq: 0.09;
177
- readonly grainScale: 1;
178
- readonly octaves: 3;
179
- readonly roughness: 1;
180
- readonly wobble: 2.2;
181
- readonly segments: 9;
182
- readonly cap: "square";
183
- };
184
- readonly highlighter: {
185
- readonly weight: 26;
186
- readonly weightJitter: 0.05;
187
- readonly thinning: 0;
188
- readonly taper: {
189
- readonly start: 0;
190
- readonly end: 0;
191
- readonly ease: "linear";
192
- };
193
- readonly ribbon: "stroke";
194
- readonly opacity: 0.38;
195
- readonly blend: "multiply";
196
- readonly passes: 1;
197
- readonly passOpacity: 0;
198
- readonly grain: 0.12;
199
- readonly grainFreq: 0.2;
200
- readonly grainScale: 1.5;
201
- readonly octaves: 2;
202
- readonly roughness: 0.5;
203
- readonly wobble: 1.4;
204
- readonly segments: 9;
205
- readonly cap: "square";
206
- };
207
- };
208
- export type BrushName = keyof typeof BRUSHES;
209
- /**
210
- * Resolution order (KISS, deterministic): preset → object overrides → extra `o`.
211
- * A string selects a preset; an object spreads over `pen`. Later wins.
212
- */
213
- export declare const resolveBrush: (b: BrushName | Partial<Brush>, o?: Partial<Brush>) => Brush;
214
- /**
215
- * lerpBrush — the continuum proof (SPEC §12 acc-2). Linearly interpolate the
216
- * scalar fields of two brushes; enums/taper/ribbon snap from `a` below 0.5, `b`
217
- * at/above. Yields a sensible in-between ("inky crayon"), no NaN.
218
- */
219
- export declare const lerpBrush: (a: Brush, b: Brush, t: number) => Brush;
@@ -1,69 +0,0 @@
1
- /**
2
- * freehand.ts — the VENDORED perfect-freehand geometry core (MIT, tldraw).
3
- * ─────────────────────────────────────────────────────────────────────────────
4
- * SPEC §1.1 / §11: glass-ui ships ZERO hard deps. `perfect-freehand` is an
5
- * OPTIONAL peer; its `getStroke` is the only one of the four engines that
6
- * produces TRUE variable width (the swelling/tapering crayon nib). We vendor only
7
- * its *geometry* core (a few hundred LOC, MIT) behind this L2 seam so:
8
- *
9
- * - the default pen/crayon presets (`ribbon: 'stroke'`) NEVER import it — the
10
- * bundle treeshakes it away (the shipped stroke-crayon, `ds-crayon-handmark`),
11
- * - the `ribbon: 'hull'` opt-in (the future width-variance upgrade) has a
12
- * dependency-free, deterministic body engine already in place,
13
- * - the pointer-capture half of the library (dead weight to us) never ships.
14
- *
15
- * This is the `getStroke` + `getStrokeOutlinePoints` + `getStrokePoints` core
16
- * from perfect-freehand@1.2.3 (Steve Ruiz, MIT), transcribed to TypeScript with
17
- * the `getSvgPathFromStroke` median-quad serialiser the references use. The
18
- * algorithm is verbatim; only the module shape (named exports, vendored vec math)
19
- * is glass-ui-local.
20
- *
21
- * @license MIT — perfect-freehand © Stephen Ruiz Ltd. https://github.com/steveruizok/perfect-freehand
22
- */
23
- /** A point: [x, y] or [x, y, pressure]. */
24
- export type InputPoint = [number, number] | [number, number, number];
25
- export interface StrokeOptions {
26
- size?: number;
27
- thinning?: number;
28
- smoothing?: number;
29
- streamline?: number;
30
- easing?: (t: number) => number;
31
- simulatePressure?: boolean;
32
- start?: {
33
- cap?: boolean;
34
- taper?: number | boolean;
35
- easing?: (t: number) => number;
36
- };
37
- end?: {
38
- cap?: boolean;
39
- taper?: number | boolean;
40
- easing?: (t: number) => number;
41
- };
42
- last?: boolean;
43
- }
44
- interface StrokePoint {
45
- point: number[];
46
- pressure: number;
47
- distance: number;
48
- vector: number[];
49
- runningLength: number;
50
- }
51
- /**
52
- * getStrokePoints — resample the raw input into smoothed StrokePoints with
53
- * running length + per-segment unit vectors (the streamline low-pass).
54
- */
55
- export declare function getStrokePoints(points: InputPoint[], options?: StrokeOptions): StrokePoint[];
56
- /**
57
- * getStrokeOutlinePoints — walk the StrokePoints, emit left/right offset points
58
- * (the variable-width hull), with tapered caps.
59
- */
60
- export declare function getStrokeOutlinePoints(points: StrokePoint[], options?: StrokeOptions): number[][];
61
- /** getStroke — the public entry: raw input → variable-width hull outline points. */
62
- export declare function getStroke(points: InputPoint[], options?: StrokeOptions): number[][];
63
- /**
64
- * getSvgPathFromStroke — the canonical median-quad serialiser the references use:
65
- * each segment's control point is the midpoint of two consecutive outline points,
66
- * yielding a smooth closed fill `d`-string.
67
- */
68
- export declare function getSvgPathFromStroke(stroke: number[][], closed?: boolean): string;
69
- export {};
@@ -1,32 +0,0 @@
1
- /**
2
- * geometry.ts — SEMANTIC shape → pencil-boil centerlines (L1, pure; SPEC §3).
3
- * ─────────────────────────────────────────────────────────────────────────────
4
- * A shape is a pure mapper: (semantic target) → L1 geometry. The renderer never
5
- * knows what it drew — it sees only `Point[]`. Adding a shape = adding one switch
6
- * arm; nothing downstream changes (texture + animation are shape-blind). This is
7
- * the generality lever (Brush ⟂ Path).
8
- *
9
- * The marking coordinate space is 0..100 × 0..40, with `preserveAspectRatio="none"`
10
- * so the <svg> stretches to the slotted word box (the SPEC §6.2 width-invariance
11
- * contract). Two usage modes:
12
- * - text mode (box == null): use the full viewBox (single-line underline/strike)
13
- * - positioned mode (box = {x,y,w,h}): map an explicit rect (circle a datum)
14
- *
15
- * The circle arm rides pencil-boil 0.4.0's `ellipsePoints` (the hand-circle
16
- * overshoot ring — the sole upstream geometry delta this component required).
17
- */
18
- import { type WobbleOptions } from "@mkbabb/pencil-boil";
19
- import type { HandShape, MarkBox } from "./types";
20
- export declare const VB_W = 100;
21
- export declare const VB_H = 40;
22
- /** A shape maps to one or more centerlines (open polylines) or one closed ring. */
23
- export interface ShapeGeom {
24
- lines: [number, number][][];
25
- closed: boolean;
26
- }
27
- /** Semantic shape → { lines, closed } in the marking space (or a positioned box). */
28
- export declare function shapeGeom(shape: HandShape, opts: WobbleOptions, box?: MarkBox | null): ShapeGeom;
29
- /** Boil one geometry: re-perturb the CACHED centerlines (anchored → no draw-on pop). */
30
- export declare function boilLines({ lines, closed }: ShapeGeom, amount: number, seed: number): [number, number][][];
31
- /** Serialize centerlines → one SVG `d` (multi-line shapes concat with a space). */
32
- export declare function serialize(lines: [number, number][][], jagged?: boolean): string;
@@ -1,21 +0,0 @@
1
- /**
2
- * handmark — the ./handmark barrel (SPEC §11).
3
- * ─────────────────────────────────────────────────────────────────────────────
4
- * `HandMark` is the generic export; `InkMark` is the prose alias the atlas/slides
5
- * import so call sites read as prose (one implementation, zero divergence). The
6
- * pure L1–L3 functions ship too — they are framework-free, directly usable in
7
- * slides decks, D3 charts (call `shapeGeom`/`ellipsePoints` to ink a path), even
8
- * canvas.
9
- *
10
- * The DEFAULT is `pen` (clean ink, grain:0 ⇒ no filter, zero extra dep). The
11
- * `@mkbabb/pencil-boil` geometry + `perfect-freehand` body are OPTIONAL PEERS;
12
- * only `ribbon:'hull'` touches the vendored pf core (treeshaken otherwise).
13
- */
14
- export { default as HandMark, default as InkMark } from "./HandMark.vue";
15
- export { BRUSHES, resolveBrush, lerpBrush, type Brush, type BrushName, type BlendMode, type TaperSpec, type StampFn, type InkPath, } from "./brush";
16
- export { shapeGeom, serialize, boilLines, VB_W, VB_H, type ShapeGeom, } from "./geometry";
17
- export { ink, type SVGFragment } from "./ink";
18
- export { grainFilter, hasGrain } from "./texture";
19
- export { getStroke, getStrokePoints, getSvgPathFromStroke, type StrokeOptions, type InputPoint, } from "./freehand";
20
- export { useHandMark, normalizeProps, type UseHandMarkInput, type HandMarkCore, } from "./useHandMark";
21
- export type { HandMarkProps, HandShape, HandAnimation, MarkBox, } from "./types";
@@ -1,11 +0,0 @@
1
- import type { Brush, InkPath } from "./brush";
2
- export interface SVGFragment {
3
- paths: InkPath[];
4
- filterId: string | null;
5
- defs: string[];
6
- }
7
- /**
8
- * ink — the only stage the brush fully drives. `jagged` serialises the stroke body
9
- * with angular kinks (pointsToLinear) instead of the smooth Catmull-Rom bezier.
10
- */
11
- export declare function ink(centerline: [number, number][], b: Brush, seed: number, color: string, filterId: string, jagged?: boolean): SVGFragment;