@mkbabb/glass-ui 3.9.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 (265) 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-lTc002u2.js → MetricBadge-idgrkqoP.js} +1 -1
  7. package/dist/{Notification-BxK8LZMw.js → Notification-Cu0nN17_.js} +3 -3
  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-LDKLmmgx.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 +4 -4
  19. package/dist/api.js +1 -1
  20. package/dist/aurora.js +238 -547
  21. package/dist/{badge-BvwvT50i.js → badge-NdCQMvvB.js} +2 -2
  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-8jBjWiJ6.js → color-B65wWyQz.js} +9 -7
  30. package/dist/color.js +1 -1
  31. package/dist/command.js +1 -1
  32. package/dist/{compile-DAjIoEy2.js → compile-Ce_V55zi.js} +23 -23
  33. package/dist/components/custom/aurora/composables/atoms.d.ts +21 -4
  34. package/dist/components/custom/aurora/composables/runtime.d.ts +0 -9
  35. package/dist/components/custom/aurora/composables/uniformBridge.d.ts +0 -11
  36. package/dist/components/custom/aurora/constants/renderMode.d.ts +0 -32
  37. package/dist/components/custom/aurora/constants/shaders/brush.glsl.d.ts +1 -1
  38. package/dist/components/custom/aurora/constants/shaders/mediums.glsl.d.ts +2 -2
  39. package/dist/components/custom/aurora/constants/shaders/tonemap.glsl.d.ts +1 -1
  40. package/dist/components/custom/aurora/constants/shaders/vangogh-medium.glsl.d.ts +1 -0
  41. package/dist/components/custom/aurora/index.d.ts +1 -1
  42. package/dist/components/custom/constellation/Constellation.vue.d.ts +85 -1
  43. package/dist/components/custom/constellation/composables/createConstellationField.d.ts +35 -0
  44. package/dist/components/custom/constellation/composables/useConstellationPointer.d.ts +35 -0
  45. package/dist/components/custom/constellation/constants.d.ts +36 -0
  46. package/dist/components/custom/constellation/constellationDraw.d.ts +18 -0
  47. package/dist/components/custom/constellation/constellationField.d.ts +174 -63
  48. package/dist/components/custom/constellation/constellationInteraction.d.ts +102 -0
  49. package/dist/components/custom/constellation/index.d.ts +4 -2
  50. package/dist/components/custom/controls/DarkModeToggle.vue.d.ts +11 -0
  51. package/dist/components/custom/dock/GlassDock.vue.d.ts +2 -110
  52. package/dist/components/custom/dock/composables/dockMorphContext.d.ts +36 -0
  53. package/dist/components/custom/dock/composables/useDockMorphWindow.d.ts +15 -0
  54. package/dist/components/custom/dock/composables/useDockShellProps.d.ts +131 -0
  55. package/dist/components/custom/dock/composables/useLayerTransition.d.ts +44 -0
  56. package/dist/components/custom/dock/constants.d.ts +23 -0
  57. package/dist/components/custom/fourier-field/FourierField.vue.d.ts +6 -0
  58. package/dist/components/custom/fourier-field/index.d.ts +25 -1
  59. package/dist/components/custom/fourier-field/math.d.ts +20 -8
  60. package/dist/components/custom/fourier-field/presets.d.ts +54 -0
  61. package/dist/components/custom/goo-blob/GooBlob.vue.d.ts +8 -10
  62. package/dist/components/custom/goo-blob/composables/buildMetaballProgram.d.ts +18 -0
  63. package/dist/components/custom/goo-blob/composables/uploadBlobUniforms.d.ts +41 -0
  64. package/dist/components/custom/goo-blob/composables/useBlobPointer.d.ts +4 -3
  65. package/dist/components/custom/goo-blob/composables/useMetaballRenderer.d.ts +16 -21
  66. package/dist/components/custom/goo-blob/constants.d.ts +52 -0
  67. package/dist/components/custom/goo-blob/index.d.ts +1 -1
  68. package/dist/components/custom/goo-blob/shaders/metaball-uniforms.glsl.d.ts +1 -0
  69. package/dist/components/custom/goo-blob/types.d.ts +59 -25
  70. package/dist/components/custom/instrument-chassis/InstrumentChassis.vue.d.ts +2 -2
  71. package/dist/components/custom/tabs/constants.d.ts +12 -0
  72. package/dist/components/custom/underline/GlassUnderline.vue.d.ts +84 -0
  73. package/dist/components/custom/underline/index.d.ts +2 -0
  74. package/dist/components/custom/underline/types.d.ts +56 -0
  75. package/dist/components/ui/drawer/Drawer.vue.d.ts +1 -0
  76. package/dist/components/ui/dropdown-menu/DropdownMenuSubContent.vue.d.ts +2 -2
  77. package/dist/components/ui/slider/index.d.ts +25 -18
  78. package/dist/components/ui/toast/use-toast.d.ts +2 -2
  79. package/dist/composables/color/index.d.ts +24 -7
  80. package/dist/composables/glass/useSpecularTracking.d.ts +12 -3
  81. package/dist/composables/glass/webgl/shaders/procedural-color.glsl.d.ts +1 -6
  82. package/dist/composables/motion/curves.d.ts +48 -0
  83. package/dist/composables/motion/index.d.ts +2 -0
  84. package/dist/composables/motion/springPresets.d.ts +33 -0
  85. package/dist/composables/motion/suite.d.ts +2 -0
  86. package/dist/composables/motion/useSpringMount.d.ts +1 -1
  87. package/dist/configurator.js +1 -1
  88. package/dist/confirm-dialog.js +2 -2
  89. package/dist/constellation.js +322 -147
  90. package/dist/controls.js +48 -14
  91. package/dist/dark.js +1 -1
  92. package/dist/data-table.js +1 -1
  93. package/dist/dialog.js +2 -2
  94. package/dist/dock.js +340 -327
  95. package/dist/dockContext-bho8B1A4.js +17 -0
  96. package/dist/{dropdown-menu-D77jX6Df.js → dropdown-menu-DVnQcA0E.js} +7 -4
  97. package/dist/dropdown-menu.js +1 -1
  98. package/dist/expandable-container.js +1 -1
  99. package/dist/forms.js +2 -2
  100. package/dist/fourier-field.js +147 -120
  101. package/dist/fourier-math.d.ts +1 -0
  102. package/dist/fourier-math.js +2 -0
  103. package/dist/glass-ui.css +1 -1
  104. package/dist/glass-ui.js +286 -207
  105. package/dist/goo-blob.js +368 -322
  106. package/dist/hover-popover.js +1 -1
  107. package/dist/icon-tooltip.js +1 -1
  108. package/dist/index.d.ts +0 -2
  109. package/dist/keyboard.js +1 -1
  110. package/dist/labeled-field.js +5 -5
  111. package/dist/math-BUU9hHID.js +43 -0
  112. package/dist/metric-badge.js +1 -1
  113. package/dist/metric-stack.js +2 -2
  114. package/dist/motion-core.js +4 -4
  115. package/dist/motion-curves.d.ts +1 -0
  116. package/dist/motion-curves.js +130 -0
  117. package/dist/motion.js +38 -37
  118. package/dist/notification.js +1 -1
  119. package/dist/number-field.js +1 -1
  120. package/dist/popover.js +1 -1
  121. package/dist/progress.js +1 -1
  122. package/dist/pulse.js +1 -1
  123. package/dist/reactive.js +1 -1
  124. package/dist/scrolling-text.js +1 -1
  125. package/dist/search.js +6 -6
  126. package/dist/select.js +1 -1
  127. package/dist/{sheet-VZEtNFvO.js → sheet-ChSXcJpU.js} +1 -1
  128. package/dist/sheet.js +1 -1
  129. package/dist/{slider-DC2mwuoe.js → slider-sfl8gFDD.js} +8 -8
  130. package/dist/slider.js +1 -1
  131. package/dist/sortable-list.js +2 -2
  132. package/dist/springPresets-aRSm-4_k.js +40 -0
  133. package/dist/stacked-icons.js +6 -6
  134. package/dist/styles/cards.css +2 -2
  135. package/dist/styles/components.css +1 -1
  136. package/dist/styles/dock/layer-group.css +38 -4
  137. package/dist/styles/dock/layers.css +11 -1
  138. package/dist/styles/dock/morph.css +95 -19
  139. package/dist/styles/dock/shell.css +12 -0
  140. package/dist/styles/dock-controls.css +25 -12
  141. package/dist/styles/drawer.css +14 -4
  142. package/dist/styles/floating-panel.css +2 -0
  143. package/dist/styles/glass/a11y-fallback.css +245 -0
  144. package/dist/styles/glass/ladder.css +304 -0
  145. package/dist/styles/glass/material.css +238 -0
  146. package/dist/styles/glass/progress-rail.css +78 -0
  147. package/dist/styles/glass/squircle.css +66 -0
  148. package/dist/styles/glass/surfaces.css +306 -0
  149. package/dist/styles/glass-refract.css +2 -0
  150. package/dist/styles/glass.css +31 -1052
  151. package/dist/styles/hover-popover.css +2 -0
  152. package/dist/styles/index.css +24 -6
  153. package/dist/styles/instrument-chassis.css +4 -0
  154. package/dist/styles/theme.css +14 -14
  155. package/dist/styles/tokens/color-radius.css +250 -0
  156. package/dist/styles/tokens/dark-arm.css +194 -0
  157. package/dist/styles/tokens/glass.css +413 -0
  158. package/dist/styles/tokens/light-dark.css +158 -0
  159. package/dist/styles/tokens/offsets-sizing.css +406 -0
  160. package/dist/styles/tokens/property-regs.css +169 -0
  161. package/dist/styles/tokens/scale-paper.css +361 -0
  162. package/dist/styles/tokens/scheme-motion.css +334 -0
  163. package/dist/styles/tokens/shadow.css +132 -0
  164. package/dist/styles/tokens.css +22 -2269
  165. package/dist/styles/transitions.css +20 -2
  166. package/dist/styles/typography.css +18 -6
  167. package/dist/styles/utilities/a11y-overrides.css +140 -0
  168. package/dist/styles/utilities/animate.css +26 -0
  169. package/dist/styles/utilities/base.css +365 -0
  170. package/dist/styles/utilities/btn.css +399 -0
  171. package/dist/styles/utilities/components.css +317 -0
  172. package/dist/styles/utilities.css +19 -1170
  173. package/dist/switch.js +1 -1
  174. package/dist/tabs.js +98 -98
  175. package/dist/timeline.js +2 -2
  176. package/dist/toast.js +1 -1
  177. package/dist/toggle-group.js +1 -1
  178. package/dist/typewriter.js +1 -1
  179. package/dist/underline.d.ts +1 -0
  180. package/dist/underline.js +85 -0
  181. package/dist/{useAnimatedNumber-C5I3wWd8.js → useAnimatedNumber-DfVgP4te.js} +1 -1
  182. package/dist/{useConfiguratorState-DxAqksK6.js → useConfiguratorState-BdQXh9ie.js} +1 -1
  183. package/dist/useSpecularTracking-DFK_fhpG.js +32 -0
  184. package/dist/useSpringMount-DXUzxBjV.js +108 -0
  185. package/dist/watercolor-dot.js +2 -2
  186. package/package.json +62 -38
  187. package/src/styles/cards.css +2 -2
  188. package/src/styles/dock/layer-group.css +38 -4
  189. package/src/styles/dock/layers.css +11 -1
  190. package/src/styles/dock/morph.css +95 -19
  191. package/src/styles/dock/shell.css +12 -0
  192. package/src/styles/dock-controls.css +25 -12
  193. package/src/styles/drawer.css +12 -4
  194. package/src/styles/glass/a11y-fallback.css +245 -0
  195. package/src/styles/glass/ladder.css +304 -0
  196. package/src/styles/glass/material.css +238 -0
  197. package/src/styles/glass/progress-rail.css +78 -0
  198. package/src/styles/glass/squircle.css +66 -0
  199. package/src/styles/glass/surfaces.css +306 -0
  200. package/src/styles/glass.css +31 -1052
  201. package/src/styles/index.css +24 -6
  202. package/src/styles/theme.css +14 -14
  203. package/src/styles/tokens/color-radius.css +250 -0
  204. package/src/styles/tokens/dark-arm.css +194 -0
  205. package/src/styles/tokens/glass.css +413 -0
  206. package/src/styles/tokens/light-dark.css +158 -0
  207. package/src/styles/tokens/offsets-sizing.css +406 -0
  208. package/src/styles/tokens/property-regs.css +169 -0
  209. package/src/styles/tokens/scale-paper.css +361 -0
  210. package/src/styles/tokens/scheme-motion.css +334 -0
  211. package/src/styles/tokens/shadow.css +132 -0
  212. package/src/styles/tokens.css +22 -2269
  213. package/src/styles/transitions.css +20 -2
  214. package/src/styles/typography.css +18 -6
  215. package/src/styles/utilities/a11y-overrides.css +140 -0
  216. package/src/styles/utilities/animate.css +26 -0
  217. package/src/styles/utilities/base.css +365 -0
  218. package/src/styles/utilities/btn.css +399 -0
  219. package/src/styles/utilities/components.css +317 -0
  220. package/src/styles/utilities.css +19 -1170
  221. package/dist/DeckProgress-Dmk4_AKN.js +0 -23
  222. package/dist/InstrumentRail-CUJ05YVG.js +0 -44
  223. package/dist/components/custom/aurora/composables/gpuRuntime.d.ts +0 -16
  224. package/dist/components/custom/aurora/constants/shaders/aurora.wgsl.d.ts +0 -7
  225. package/dist/components/custom/deck-progress/DeckProgress.vue.d.ts +0 -27
  226. package/dist/components/custom/deck-progress/index.d.ts +0 -2
  227. package/dist/components/custom/dialog-native/GlassDialogNative.vue.d.ts +0 -57
  228. package/dist/components/custom/dialog-native/index.d.ts +0 -1
  229. package/dist/components/custom/glass-panel/GlassPanel.vue.d.ts +0 -41
  230. package/dist/components/custom/glass-panel/index.d.ts +0 -2
  231. package/dist/components/custom/header-ribbon/HeaderRibbon.vue.d.ts +0 -31
  232. package/dist/components/custom/header-ribbon/index.d.ts +0 -2
  233. package/dist/components/custom/header-ribbon/types.d.ts +0 -7
  234. package/dist/components/custom/instrument-rail/InstrumentRail.vue.d.ts +0 -91
  235. package/dist/components/custom/instrument-rail/index.d.ts +0 -2
  236. package/dist/composables/glass/createGPUCanvas.d.ts +0 -40
  237. package/dist/deck-progress.d.ts +0 -1
  238. package/dist/deck-progress.js +0 -2
  239. package/dist/dockContext-BKeIMmNk.js +0 -9
  240. package/dist/glass-panel.d.ts +0 -1
  241. package/dist/glass-panel.js +0 -44
  242. package/dist/header-ribbon.d.ts +0 -1
  243. package/dist/header-ribbon.js +0 -63
  244. package/dist/instrument-rail.d.ts +0 -1
  245. package/dist/instrument-rail.js +0 -2
  246. package/dist/useGlassRenderer-5I0YkI4t.js +0 -69
  247. package/dist/useSpecularTracking-BVRZsRHA.js +0 -26
  248. package/dist/useSpringMount-BJSHcLl3.js +0 -113
  249. /package/dist/{CollapsibleContent-CP9qF1v4.js → CollapsibleContent-Drow5WkV.js} +0 -0
  250. /package/dist/{DialogFooter-Gprw8H_A.js → DialogFooter-DufLHi0y.js} +0 -0
  251. /package/dist/{IconTooltip-yefK7cJc.js → IconTooltip-BrQ5p181.js} +0 -0
  252. /package/dist/{Input-DWQQIOC4.js → Input-B-F818RU.js} +0 -0
  253. /package/dist/{_plugin-vue_export-helper-ok8pgSl5.js → _plugin-vue_export-helper-DWghtRt7.js} +0 -0
  254. /package/dist/{constants-CS75AWHG.js → constants-C8NMonuo.js} +0 -0
  255. /package/dist/{presets-BKVyQfbt.js → presets-1OhFpaIC.js} +0 -0
  256. /package/dist/{prng-wHuHlNHE.js → prng-CjVgzjQT.js} +0 -0
  257. /package/dist/{resolveCanvasColor-BBiYfp8g.js → resolveCanvasColor-CRvVzOvP.js} +0 -0
  258. /package/dist/{useCanvas2D-ClrQuZtp.js → useCanvas2D-CSeH8h16.js} +0 -0
  259. /package/dist/{useGlobalDark-yhL4Wp-s.js → useGlobalDark-D7R9OypB.js} +0 -0
  260. /package/dist/{useIntersectionPause-Cc-H9ees.js → useIntersectionPause-DAdVPVp4.js} +0 -0
  261. /package/dist/{useInterval-Dsmqwi03.js → useInterval-D3USn0yc.js} +0 -0
  262. /package/dist/{useKeyboardShortcuts-Be3w_Rwk.js → useKeyboardShortcuts-i8tHd5WO.js} +0 -0
  263. /package/dist/{useScrollProgress-CAH8Ofwt.js → useScrollProgress-CcgmgMQt.js} +0 -0
  264. /package/dist/{useSortable-C8ReQ50P.js → useSortable-DnyGXKKY.js} +0 -0
  265. /package/dist/{useTextHighlight-DON84L8w.js → useTextHighlight-B3b10W6r.js} +0 -0
@@ -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,16 +0,0 @@
1
- import type { GPUCanvasFrame, GPUCanvasSetupArgs } from "../../../../composables/glass/createGPUCanvas";
2
- import type { CursorState } from "./cursorModel";
3
- import type { AuroraConfig } from "../constants/presets";
4
- export interface GPUAuroraDeps {
5
- canvas: HTMLCanvasElement;
6
- getConfig: () => AuroraConfig;
7
- cursor: CursorState;
8
- getReducedMotion: () => boolean;
9
- /** The frozen frame-time offset under reduced motion (matches the WebGL2 path). */
10
- frozenOffset: number;
11
- }
12
- /**
13
- * The `setup` callback for `createGPUCanvas`. Builds the pipeline once on the device,
14
- * returns the frame hooks. The single render pass draws the WGSL aurora base field.
15
- */
16
- export declare function createGPUAuroraSetup(deps: GPUAuroraDeps): ({ device, context, format }: GPUCanvasSetupArgs) => GPUCanvasFrame;
@@ -1,7 +0,0 @@
1
- declare const WGSL_MAX_NUCLEI = 6;
2
- declare const WGSL_MAX_STOPS = 8;
3
- export declare const AURORA_VERTEX_WGSL = "\nstruct VSOut {\n @builtin(position) pos: vec4f,\n @location(0) uv: vec2f,\n};\n\n@vertex\nfn vs_main(@builtin(vertex_index) vi: u32) -> VSOut {\n // Full-screen triangle (matches the WebGL2 [-1,-1, 3,-1, -1,3] quad).\n var p = array<vec2f, 3>(vec2f(-1.0, -1.0), vec2f(3.0, -1.0), vec2f(-1.0, 3.0));\n var out: VSOut;\n let xy = p[vi];\n out.pos = vec4f(xy, 0.0, 1.0);\n out.uv = 0.5 * (xy + vec2f(1.0));\n return out;\n}";
4
- export declare const AURORA_FRAGMENT_WGSL = "\nconst PI: f32 = 3.141592653589793;\nconst W_LUMA: vec3f = vec3f(0.2126, 0.7152, 0.0722);\nconst MAX_NUCLEI: u32 = 6u;\nconst MAX_STOPS: u32 = 8u;\n\n// The uniform struct \u2014 ONLY constant-indexed scalars (safe in the uniform address\n// space). The five count/enum fields are f32 (AX.W07 1a): the WebGPU write path packs\n// them as floats and the shader i32-casts at each use, so WGSL never reads a float\n// bit-pattern as a raw i32. The dynamically-indexed arrays moved OUT to struct Field\n// below (AX.W07 1b).\nstruct Uniforms {\n time: f32,\n stopCount: f32,\n nucleiCount: f32,\n softmaxBeta: f32,\n valueVariance: f32,\n warpAmount: f32,\n warpScale: f32,\n warpDrift: f32,\n warpMode: f32,\n noiseOctaves: f32,\n medium: f32,\n breathDepth: f32,\n breathPeriod: f32,\n saturation: f32,\n paperGrain: f32,\n alpha: f32,\n // AX.W11 \u2014 the huePath enum (f32-packed, i32()-cast in samplePalette) carries the\n // shared ramp's OKLab-rectangular-vs-OKLCh-hue-arc dispatch into the WebGPU twin so\n // a huePath:'increasing' rainbow config arcs identically to the WebGL2 oracle. The\n // CPU pad keeps the buffer vec4-aligned (WGPU_UNIFORM_FLOATS rounds to 20).\n huePath: f32,\n};\n\n// The dynamically-indexed arrays \u2014 bound var<storage, read> (AX.W07 1b). A runtime\n// palette/nuclei index into a var<uniform> array<vec4f> returns [0,0,0,0] on Metal\n// (MSL forbids dynamic indexing of constant); storage is always-legal. The vec4 stride\n// is std140-identical to the uniform layout, so the move is byte-exact.\nstruct Field {\n palette: array<vec4f, 8>, // .xyz = linear-sRGB stop\n nucleiPos: array<vec4f, 6>, // .xy pos, .z radius, .w paletteBias\n nucleiMod: array<vec4f, 6>, // .x valueBias, .y elong, .z angle, .w driftRadius\n};\n\n@group(0) @binding(0) var<uniform> U: Uniforms;\n@group(0) @binding(1) var<storage, read> F: Field;\n\n\nfn srgbToLinearCh(c: f32) -> f32 {\n return select(pow((c + 0.055) / 1.055, 2.4), c / 12.92, c <= 0.04045);\n}\nfn srgbToLinear(c: vec3f) -> vec3f {\n return vec3f(srgbToLinearCh(c.r), srgbToLinearCh(c.g), srgbToLinearCh(c.b));\n}\nfn linearToSrgbCh(c: f32) -> f32 {\n return select(1.055 * pow(c, 1.0 / 2.4) - 0.055, c * 12.92, c <= 0.0031308);\n}\nfn linearToSrgb(c: vec3f) -> vec3f {\n return vec3f(linearToSrgbCh(c.r), linearToSrgbCh(c.g), linearToSrgbCh(c.b));\n}\nconst FBM_ROT: mat2x2f = mat2x2f(0.8, 0.6, -0.6, 0.8);\n\nconst LINEAR_SRGB_TO_LMS: mat3x3f = mat3x3f(\n 0.4122214708, 0.2119034982, 0.0883024619,\n 0.5363325363, 0.6806995451, 0.2817188376,\n 0.0514459929, 0.1073969566, 0.6299787005\n);\nconst LMS_TO_OKLAB: mat3x3f = mat3x3f(\n 0.2104542553, 1.9779984951, 0.0259040371,\n 0.7936177850, -2.4285922050, 0.7827717662,\n -0.0040720468, 0.4505937099, -0.8086757660\n);\nconst OKLAB_TO_LMS: mat3x3f = mat3x3f(\n 1.0, 1.0, 1.0,\n 0.3963377774, -0.1055613458, -0.0894841775,\n 0.2158037573, -0.0638541728, -1.2914855480\n);\nconst LMS_TO_LINEAR_SRGB: mat3x3f = mat3x3f(\n 4.0767416621, -1.2684380046, -0.0041960863,\n -3.3077115913, 2.6097574011, -0.7034186147,\n 0.2309699292, -0.3413193965, 1.7076147010\n);\n\nfn srgbToOklab(c: vec3f) -> vec3f {\n let lin = srgbToLinear(c);\n let lms = LINEAR_SRGB_TO_LMS * lin;\n let lmsCbrt = sign(lms) * pow(abs(lms), vec3f(1.0 / 3.0));\n return LMS_TO_OKLAB * lmsCbrt;\n}\nfn oklabToLinearSrgb(lab: vec3f) -> vec3f {\n let lms_ = OKLAB_TO_LMS * lab;\n let lms = lms_ * lms_ * lms_;\n return LMS_TO_LINEAR_SRGB * lms;\n}\nfn oklabToOklch(lab: vec3f) -> vec3f {\n let C = length(lab.yz);\n var H = atan2(lab.z, lab.y);\n if (H < 0.0) { H = H + 2.0 * PI; }\n return vec3f(lab.x, C, H);\n}\nfn oklchToOklab(lch: vec3f) -> vec3f {\n return vec3f(lch.x, lch.y * cos(lch.z), lch.y * sin(lch.z));\n}\n\nfn interpolateHueTurns(h0: f32, h1: f32, t: f32, method: i32) -> f32 {\n let TAU = 2.0 * PI;\n var a = h0 / TAU;\n var b = h1 / TAU;\n let i = b - a;\n if (method == 0) { // shorter\n if (i > 0.5) { a = a + 1.0; } else if (i < -0.5) { b = b + 1.0; }\n } else if (method == 1) { // longer\n if (i > 0.0 && i < 0.5) { a = a + 1.0; } else if (i > -0.5 && i <= 0.0) { b = b + 1.0; }\n } else if (method == 2) { // increasing\n if (i < 0.0) { b = b + 1.0; }\n } else { // decreasing\n if (i > 0.0) { a = a + 1.0; }\n }\n let r = fract(a + t * (b - a));\n return r * TAU;\n}\n\nfn mixPaletteOklab(linA: vec3f, linB: vec3f, t: f32) -> vec3f {\n let labA = LMS_TO_OKLAB * (sign(LINEAR_SRGB_TO_LMS * linA) * pow(abs(LINEAR_SRGB_TO_LMS * linA), vec3f(1.0 / 3.0)));\n let labB = LMS_TO_OKLAB * (sign(LINEAR_SRGB_TO_LMS * linB) * pow(abs(LINEAR_SRGB_TO_LMS * linB), vec3f(1.0 / 3.0)));\n let lab = mix(labA, labB, vec3f(t));\n return oklabToLinearSrgb(lab);\n}\n\nfn mixPaletteOklchArc(linA: vec3f, linB: vec3f, t: f32, method: i32) -> vec3f {\n let labA = LMS_TO_OKLAB * (sign(LINEAR_SRGB_TO_LMS * linA) * pow(abs(LINEAR_SRGB_TO_LMS * linA), vec3f(1.0 / 3.0)));\n let labB = LMS_TO_OKLAB * (sign(LINEAR_SRGB_TO_LMS * linB) * pow(abs(LINEAR_SRGB_TO_LMS * linB), vec3f(1.0 / 3.0)));\n let lchA = oklabToOklch(labA);\n let lchB = oklabToOklch(labB);\n let L = mix(lchA.x, lchB.x, t);\n let C = mix(lchA.y, lchB.y, t);\n let H = interpolateHueTurns(lchA.z, lchB.z, t, method);\n return oklabToLinearSrgb(oklchToOklab(vec3f(L, C, H)));\n}\n\nfn samplePaletteRamp(a: vec3f, b: vec3f, tRaw: f32, huePath: i32) -> vec3f {\n let t = smoothstep(0.0, 1.0, tRaw);\n if (huePath == 2 || huePath == 3) {\n return mixPaletteOklchArc(a, b, t, huePath);\n }\n return mixPaletteOklab(a, b, t);\n}\n\n// AX.W12 \u2014 the painterly-medium organic noise basis (PCG2D integer-bit hash + 2D\n// simplex gradient noise), SPLICED from the shared procedural-color chunk \u2014 the EXACT\n// twin of the GLSL leaf aurora.frag.ts splices, so the hash can NEVER drift between\n// backends (proof:aurora-noise-hash-equivalence locks the twins to 1e-6). The WebGPU\n// single-pass fs_main below stays the smooth pole (it runs no medium body \u2014 the\n// painterly mediums are the W7c/W14 multi-pass), so the leaf is single-sourced HERE for\n// the twin-equivalence contract; the W14 painterly passes consume it.\n\nfn pcg2d(v0: vec2u) -> vec2u {\n var v = v0 * 1664525u + vec2u(1013904223u);\n v.x = v.x + v.y * 1664525u;\n v.y = v.y + v.x * 1664525u;\n v = v ^ (v >> vec2u(16u));\n v.x = v.x + v.y * 1664525u;\n v.y = v.y + v.x * 1664525u;\n v = v ^ (v >> vec2u(16u));\n return v;\n}\n\nfn pcgHash2(p: vec2f) -> f32 {\n let u = bitcast<vec2u>(p);\n return f32(pcg2d(u).x) * (1.0 / 4294967296.0);\n}\n\nfn pcgGrad2(cell: vec2i) -> vec2f {\n let h = pcg2d(bitcast<vec2u>(cell));\n let ang = f32(h.x) * (1.0 / 4294967296.0) * 6.28318530717958647692;\n return vec2f(cos(ang), sin(ang));\n}\n\nfn gnoise(p: vec2f) -> f32 {\n let F2 = 0.36602540378443864676;\n let G2 = 0.21132486540518711775;\n let s = (p.x + p.y) * F2;\n let i = floor(p + vec2f(s));\n let tt = (i.x + i.y) * G2;\n let x0 = p - (i - vec2f(tt));\n var i1 = vec2i(0, 1);\n if (x0.x > x0.y) { i1 = vec2i(1, 0); }\n let x1 = x0 - vec2f(i1) + vec2f(G2);\n let x2 = x0 - vec2f(1.0) + vec2f(2.0 * G2);\n let ii = vec2i(i);\n var n = 0.0;\n var t0 = 0.5 - dot(x0, x0);\n if (t0 > 0.0) { t0 = t0 * t0; n = n + t0 * t0 * dot(pcgGrad2(ii), x0); }\n var t1 = 0.5 - dot(x1, x1);\n if (t1 > 0.0) { t1 = t1 * t1; n = n + t1 * t1 * dot(pcgGrad2(ii + i1), x1); }\n var t2 = 0.5 - dot(x2, x2);\n if (t2 > 0.0) { t2 = t2 * t2; n = n + t2 * t2 * dot(pcgGrad2(ii + vec2i(1, 1)), x2); }\n return 70.0 * n;\n}\n\nfn hash21(p0: vec2f) -> f32 {\n var p = fract(p0 * vec2f(123.34, 456.21));\n p = p + dot(p, p + 45.32);\n return fract(p.x * p.y);\n}\nfn vnoise(p: vec2f) -> f32 {\n let i = floor(p);\n let f = fract(p);\n let u = f * f * (3.0 - 2.0 * f);\n let a = hash21(i);\n let b = hash21(i + vec2f(1.0, 0.0));\n let c = hash21(i + vec2f(0.0, 1.0));\n let d = hash21(i + vec2f(1.0, 1.0));\n return mix(mix(a, b, u.x), mix(c, d, u.x), u.y);\n}\nfn fbm(p0: vec2f) -> f32 {\n var v = 0.0;\n var a = 0.5;\n var p = p0;\n let octaves = i32(U.noiseOctaves); // AX.W07 1a \u2014 i32()-cast the f32-packed count.\n for (var i = 0; i < 5; i = i + 1) {\n if (i >= octaves) { break; }\n v = v + a * vnoise(p);\n p = FBM_ROT * p * 2.02;\n a = a * 0.5;\n }\n return v;\n}\n\nfn samplePalette(id: f32) -> vec3f {\n // AX.W11 \u2014 splice the SHARED samplePaletteRamp (the smoothstep ease + the OKLab-\n // rectangular-vs-OKLCh-hue-arc huePath dispatch), the EXACT twin the GLSL oracle\n // splices. The body here only selects the bracketing stop pair + the raw inter-stop\n // t (the W07 storage-Field dynamic index), then hands them to the shared ramp.\n let n = i32(U.stopCount); // AX.W07 1a \u2014 i32()-cast the f32-packed count.\n if (n <= 1) { return F.palette[0].xyz; }\n let t = clamp(id, 0.0, 1.0) * f32(n - 1);\n let i0 = i32(floor(t));\n let i1 = min(i0 + 1, n - 1);\n let f = t - f32(i0);\n // AX.W07 1b \u2014 read the palette from the storage Field (dynamic i0/i1 index);\n // AX.W11 \u2014 i32()-cast the f32-packed huePath enum (parity with the count casts).\n return samplePaletteRamp(F.palette[i0].xyz, F.palette[i1].xyz, f, i32(U.huePath));\n}\n\nfn domainWarp(p: vec2f, t: f32) -> vec2f {\n let drift = t * U.warpDrift * 5.0;\n let q = vec2f(\n fbm(p * U.warpScale + vec2f(drift, 0.0)),\n fbm(p * U.warpScale + vec2f(5.2, 1.3 + drift))\n );\n let r = vec2f(\n fbm(p * U.warpScale + 4.0 * q + vec2f(1.7, 9.2)),\n fbm(p * U.warpScale + 4.0 * q + vec2f(8.3, 2.8))\n );\n return p + U.warpAmount * r;\n}\n\nfn nucleiField(p: vec2f, t: f32) -> vec2f {\n // Returns (paletteId, valueMod) \u2014 softmax over the nuclei (isotropic; the WebGPU\n // twin keeps the parity-floor isotropic Gaussian).\n var accumId = 0.0;\n var accumVal = 0.0;\n var w = 0.0;\n let n = i32(U.nucleiCount); // AX.W07 1a \u2014 i32()-cast the f32-packed count.\n for (var i = 0; i < 6; i = i + 1) {\n if (i >= n) { break; }\n // AX.W07 1b \u2014 read the nuclei from the storage Field (dynamic i index).\n let pos = F.nucleiPos[i].xy;\n let rad = max(F.nucleiPos[i].z, 0.01);\n let d2 = dot(p - pos, p - pos);\n let wi = exp((-U.softmaxBeta * d2) / (rad * rad));\n accumId = accumId + wi * F.nucleiPos[i].w;\n accumVal = accumVal + wi * F.nucleiMod[i].x;\n w = w + wi;\n }\n if (w < 1e-4) { return vec2f(0.5, 0.0); }\n return vec2f(accumId / w, accumVal / w);\n}\n\n// ACES (Narkowicz) \u2014 matches the GLSL tonemap.\nfn aces(x: vec3f) -> vec3f {\n let a = 2.51; let b = 0.03; let c = 2.43; let d = 0.59; let e = 0.14;\n return clamp((x * (a * x + b)) / (x * (c * x + d) + e), vec3f(0.0), vec3f(1.0));\n}\n\n@fragment\nfn fs_main(@location(0) uv: vec2f) -> @location(0) vec4f {\n let t = U.time;\n let pw = domainWarp(uv, t);\n let nf = nucleiField(pw, t);\n var col = samplePalette(nf.x);\n col = col * (1.0 + U.valueVariance * nf.y);\n\n // Breath.\n let breath = sin(t * 6.2831 / max(U.breathPeriod, 1.0));\n col = col * (1.0 + U.breathDepth * breath * 0.5);\n\n // (The WebGPU smooth pole; the painterly mediums run the W7c multi-pass passes.)\n col = aces(col);\n col = linearToSrgb(col); // the mandatory OETF (linear \u2192 display).\n return vec4f(col * U.alpha, U.alpha); // premultiply AFTER the OETF (parity).\n}";
5
- /** The assembled WGSL module string (vertex + fragment) for createGPUCanvas. */
6
- export declare const AURORA_WGSL: string;
7
- export { WGSL_MAX_NUCLEI, WGSL_MAX_STOPS };
@@ -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,31 +0,0 @@
1
- import type { HeaderRibbonProps } from "./types";
2
- declare var __VLS_1: {}, __VLS_3: {}, __VLS_5: {
3
- pinned: boolean;
4
- toggled: boolean;
5
- }, __VLS_7: {};
6
- type __VLS_Slots = {} & {
7
- left?: (props: typeof __VLS_1) => any;
8
- } & {
9
- items?: (props: typeof __VLS_3) => any;
10
- } & {
11
- anchor?: (props: typeof __VLS_5) => any;
12
- } & {
13
- items?: (props: typeof __VLS_7) => any;
14
- };
15
- declare const __VLS_base: import("vue").DefineComponent<HeaderRibbonProps, {
16
- isPinned: import("vue").Ref<boolean, boolean>;
17
- isExpanded: import("vue").Ref<boolean, boolean>;
18
- isVisible: import("vue").ComputedRef<boolean>;
19
- isToggled: import("vue").Ref<boolean, boolean>;
20
- }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<HeaderRibbonProps> & Readonly<{}>, {
21
- position: import("./types").HeaderRibbonPosition;
22
- hideTimeoutMs: number;
23
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
24
- declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
25
- declare const _default: typeof __VLS_export;
26
- export default _default;
27
- type __VLS_WithSlots<T, S> = T & {
28
- new (): {
29
- $slots: S;
30
- };
31
- };
@@ -1,2 +0,0 @@
1
- export { default as HeaderRibbon } from "./HeaderRibbon.vue";
2
- export type { HeaderRibbonPosition, HeaderRibbonProps } from "./types";
@@ -1,7 +0,0 @@
1
- export type HeaderRibbonPosition = "left" | "right";
2
- export interface HeaderRibbonProps {
3
- /** Side of the viewport the ribbon anchors against. Defaults to `"left"`. */
4
- position?: HeaderRibbonPosition;
5
- /** Milliseconds after the pointer leaves the ribbon before items collapse. Defaults to `2000`. */
6
- hideTimeoutMs?: number;
7
- }
@@ -1,91 +0,0 @@
1
- import type { HTMLAttributes } from "vue";
2
- /**
3
- * <InstrumentRail> — flex-basis cockpit-ratio rail with bezel hairlines
4
- * and an internal twin-line divider rule between children.
5
- *
6
- * Resolves A3 D-4 (cockpit ratio 0.222 → 0.382, the 1/φ² golden gestalt)
7
- * by carrying the ratio as a typed flex-basis term with min/max clamp
8
- * safety. Composes inside <InstrumentChassis> alongside a primary panel,
9
- * or stands alone as the sidekick column of any cockpit composition.
10
- *
11
- * Geometry:
12
- * - `variant="vertical"` (default) — rail is a column; flex-basis binds
13
- * against the parent's main-axis width. min-width 15rem, max-width 28rem.
14
- * - `variant="horizontal"` — rail is a row; flex-basis binds against the
15
- * parent's main-axis height. min-height 15rem, max-height 28rem.
16
- *
17
- * Bezel character:
18
- * - `bezelHairlines="true"` (default) draws the engraved-bezel ::before
19
- * inner stroke, the same twin-pixel signature that <InstrumentChassis>
20
- * carries (catch-light + under-shadow). Resolves FD1 TRANSPOSITION 3's
21
- * internal-divider concern by giving the rail its own bezel edge so
22
- * it reads as a chassis-internal module, not an unbordered slot.
23
- * - `dividerRule="true"` (default) renders a twin-line hairline groove
24
- * above every child after the first via the bezel-line idiom (same
25
- * `rgb(255 255 255 / α)` + `rgb(0 0 0 / α)` pair the chassis-divider
26
- * primitive uses). Sibling-CSS — no slotted dividers needed.
27
- *
28
- * Slots:
29
- * - default — rail children, stacked along the variant axis.
30
- * - `status` — bezel-edge status-light region; pinned to the rail's
31
- * opening edge (top for vertical, leading for horizontal). Optional;
32
- * omitted slots emit no markup.
33
- *
34
- * a11y: layout primitive; emits no ARIA role by default. Consumers compose
35
- * semantic landmarks (<aside>, <nav>) by wrapping or by passing `as`.
36
- *
37
- * PRM: no animation — the primitive is purely geometric. PRM cascades
38
- * through children (they own their own animation contracts).
39
- *
40
- * AK-W2-α — see A3 §8.T-1 + FD1 TRANSPOSITION 6 + G-AK-D9.
41
- */
42
- export interface InstrumentRailProps {
43
- /**
44
- * Rail axis. `"vertical"` (default) stacks children top-to-bottom and
45
- * binds flex-basis on the inline axis (column rail of a row cockpit).
46
- * `"horizontal"` stacks left-to-right and binds flex-basis on the
47
- * block axis (row rail of a column cockpit).
48
- */
49
- variant?: "vertical" | "horizontal";
50
- /**
51
- * Cockpit ratio — flex-basis fraction of the parent flex container.
52
- * Defaults to 0.382 (1/φ², the golden-gestalt cockpit ratio per A3
53
- * §8.T-1). Consumers may pass any ratio in (0, 1); the rail clamps
54
- * the realised width via `min-width`/`max-width` so a degenerate
55
- * value still hits a readable register.
56
- */
57
- ratio?: number;
58
- /**
59
- * Toggle the engraved-bezel ::before inner stroke. Default `true`.
60
- * Disable when the rail is composed inside another bezel-bearing
61
- * surface that already carries the stroke (avoid double bezels).
62
- */
63
- bezelHairlines?: boolean;
64
- /**
65
- * Toggle the internal twin-line divider rule between sibling
66
- * children. Default `true`. Disable when children carry their own
67
- * dividers or when a flush composition is desired.
68
- */
69
- dividerRule?: boolean;
70
- class?: HTMLAttributes["class"];
71
- }
72
- declare var __VLS_1: {}, __VLS_3: {};
73
- type __VLS_Slots = {} & {
74
- status?: (props: typeof __VLS_1) => any;
75
- } & {
76
- default?: (props: typeof __VLS_3) => any;
77
- };
78
- declare const __VLS_base: import("vue").DefineComponent<InstrumentRailProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<InstrumentRailProps> & Readonly<{}>, {
79
- variant: "vertical" | "horizontal";
80
- ratio: number;
81
- bezelHairlines: boolean;
82
- dividerRule: boolean;
83
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
84
- declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
85
- declare const _default: typeof __VLS_export;
86
- export default _default;
87
- type __VLS_WithSlots<T, S> = T & {
88
- new (): {
89
- $slots: S;
90
- };
91
- };
@@ -1,2 +0,0 @@
1
- export { default as InstrumentRail } from "./InstrumentRail.vue";
2
- export type { InstrumentRailProps } from "./InstrumentRail.vue";
@@ -1,40 +0,0 @@
1
- /** The per-frame hooks a consumer's WebGPU `setup` returns (mirrors WebGLCanvasFrame). */
2
- export interface GPUCanvasFrame {
3
- frame: (timeSec: number) => void;
4
- shouldContinue: () => boolean;
5
- resize: () => void;
6
- time?: (elapsedSec: number) => number;
7
- teardown?: () => void;
8
- }
9
- export interface GPUCanvasSetupArgs {
10
- device: GPUDevice;
11
- context: GPUCanvasContext;
12
- /** The swapchain format (`navigator.gpu.getPreferredCanvasFormat()`). */
13
- format: GPUTextureFormat;
14
- }
15
- export interface GPUCanvasOptions {
16
- /** The pre-acquired `GPUDevice` (from `resolveRenderModeAsync`'s adapter→device). */
17
- device: GPUDevice;
18
- /** Alpha mode for the swapchain (premultiplied to match the WebGL2 premultiply). */
19
- alphaMode?: GPUCanvasAlphaMode;
20
- mode?: "live" | "capture";
21
- respectReducedMotion?: boolean;
22
- /** Build the pipeline + bind group on the configured context. Returns frame hooks. */
23
- setup: (args: GPUCanvasSetupArgs) => GPUCanvasFrame;
24
- }
25
- export interface GPUCanvasHandle {
26
- arm: () => void;
27
- suspend: (reason?: "tab-hidden" | "off-screen" | "manual") => void;
28
- resume: (reason?: "tab-hidden" | "off-screen" | "manual") => void;
29
- wake: () => void;
30
- renderAt: (timeSec: number) => void;
31
- dispose: () => void;
32
- readonly device: GPUDevice | null;
33
- readonly reducedMotion: boolean;
34
- }
35
- /**
36
- * Build a WebGPU canvas over the shared lifecycle core. The `GPUDevice` is acquired
37
- * by `resolveRenderModeAsync` (the probe) and passed in — `createGPUCanvas` configures
38
- * the canvas context + threads the consumer `setup` through the agnostic schedule.
39
- */
40
- export declare function createGPUCanvas(canvas: HTMLCanvasElement, options: GPUCanvasOptions): GPUCanvasHandle;
@@ -1 +0,0 @@
1
- export * from "./components/custom/deck-progress";
@@ -1,2 +0,0 @@
1
- import { t as e } from "./DeckProgress-Dmk4_AKN.js";
2
- export { e as DeckProgress };
@@ -1,9 +0,0 @@
1
- import { n as e } from "./createContext-B44Sah_H.js";
2
- //#region src/components/custom/dock/composables/dockContext.ts
3
- var t = e("glass-ui:dock-context", "[glass-ui:dock] useDockContext() called outside <GlassDock>; use useOptionalDockContext() if the primitive may render outside a dock."), n = t.KEY;
4
- function r(e) {
5
- t.provide(e);
6
- }
7
- var i = t.use, a = t.useOptional;
8
- //#endregion
9
- export { a as i, r as n, i as r, n as t };
@@ -1 +0,0 @@
1
- export * from "./components/custom/glass-panel";
@@ -1,44 +0,0 @@
1
- import { t as e } from "./cn-DJXf4yaB.js";
2
- import { n as t, r as n, t as r } from "./useGlassRenderer-5I0YkI4t.js";
3
- import { t as i } from "./_plugin-vue_export-helper-ok8pgSl5.js";
4
- import { computed as a, createElementBlock as o, defineComponent as s, normalizeClass as c, onBeforeUnmount as l, onMounted as u, openBlock as d, ref as f, renderSlot as p } from "vue";
5
- //#region src/components/custom/glass-panel/GlassPanel.vue?vue&type=script&setup=true&lang.ts
6
- var m = ["data-variant"], h = /* @__PURE__ */ i(/* @__PURE__ */ s({
7
- __name: "GlassPanel",
8
- props: {
9
- tier: {},
10
- blur: { default: 16 },
11
- refraction: { default: .3 },
12
- chromaticAberration: {
13
- type: Boolean,
14
- default: !1
15
- },
16
- variant: { default: "resting" },
17
- class: {}
18
- },
19
- setup(i) {
20
- let s = {
21
- wash: "glass-wash",
22
- quiet: "glass-quiet",
23
- resting: "glass-resting",
24
- floating: "glass-floating",
25
- overlay: "glass-overlay"
26
- }, h = i, g = f(null), _ = n({ preferredTier: h.tier }), v = a(() => h.tier ?? _.tier.value), y = a(() => v.value === "svg-filter" ? e("glass-panel glass-panel--svg", h.class) : v.value === "fallback" ? e("glass-panel glass-panel--fallback", h.class) : e("glass-panel", s[h.variant], h.class)), b = null;
27
- return u(() => {
28
- g.value && v.value === "svg-filter" && (b = r(g.value, {
29
- blur: h.blur,
30
- refraction: h.refraction,
31
- chromaticAberration: h.chromaticAberration ? .5 : 0
32
- }));
33
- }), l(() => {
34
- b && t(b);
35
- }), (e, t) => (d(), o("div", {
36
- ref_key: "panelRef",
37
- ref: g,
38
- class: c(y.value),
39
- "data-variant": h.variant
40
- }, [p(e.$slots, "default", {}, void 0, !0)], 10, m));
41
- }
42
- }), [["__scopeId", "data-v-a674fae3"]]);
43
- //#endregion
44
- export { h as GlassPanel };
@@ -1 +0,0 @@
1
- export * from "./components/custom/header-ribbon";
@@ -1,63 +0,0 @@
1
- import { t as e } from "./_plugin-vue_export-helper-ok8pgSl5.js";
2
- import { computed as t, createCommentVNode as n, createElementBlock as r, createElementVNode as i, defineComponent as a, normalizeClass as o, onBeforeUnmount as s, openBlock as c, ref as l, renderSlot as u } from "vue";
3
- //#region src/components/custom/header-ribbon/HeaderRibbon.vue?vue&type=script&setup=true&lang.ts
4
- var d = {
5
- key: 0,
6
- class: "pointer-events-auto shrink-0 mr-2"
7
- }, f = /* @__PURE__ */ e(/* @__PURE__ */ a({
8
- __name: "HeaderRibbon",
9
- props: {
10
- position: { default: "left" },
11
- hideTimeoutMs: { default: 2e3 }
12
- },
13
- setup(e, { expose: a }) {
14
- let f = e, p = l(!1), m = l(!1), h = l(!1), g = l(!1), _, v = t(() => p.value || m.value);
15
- function y() {
16
- _ != null && (clearTimeout(_), _ = void 0);
17
- }
18
- function b() {
19
- g.value || (y(), _ = setTimeout(() => {
20
- p.value = !1;
21
- }, f.hideTimeoutMs));
22
- }
23
- function x() {
24
- g.value = !0, y(), p.value = !0;
25
- }
26
- function S() {
27
- g.value = !1, m.value || b();
28
- }
29
- function C() {
30
- m.value ? (m.value = !1, h.value = !1, b()) : (m.value = !0, p.value = !0, h.value = !0, y());
31
- }
32
- return s(y), a({
33
- isPinned: m,
34
- isExpanded: p,
35
- isVisible: v,
36
- isToggled: h
37
- }), (t, a) => (c(), r("div", {
38
- class: o(["fixed z-dock pointer-events-none w-fit flex items-center px-4 pt-4 pb-2", e.position === "left" ? "top-0 left-0" : "top-0 right-0"]),
39
- onMouseleave: S
40
- }, [t.$slots.left ? (c(), r("div", d, [u(t.$slots, "left", {}, void 0, !0)])) : n("", !0), i("div", {
41
- class: "pointer-events-auto flex items-center h-6",
42
- onMouseenter: x
43
- }, [
44
- e.position === "right" ? (c(), r("div", {
45
- key: 0,
46
- class: o(["header-items-wrapper header-items-right flex items-center gap-3", v.value ? "" : "header-collapsed-right"])
47
- }, [u(t.$slots, "items", {}, void 0, !0)], 2)) : n("", !0),
48
- i("div", {
49
- class: "shrink-0",
50
- onClick: C
51
- }, [u(t.$slots, "anchor", {
52
- pinned: m.value,
53
- toggled: h.value
54
- }, void 0, !0)]),
55
- e.position === "left" ? (c(), r("div", {
56
- key: 1,
57
- class: o(["header-items-wrapper header-items-left flex items-center gap-3", v.value ? "" : "header-collapsed-left"])
58
- }, [u(t.$slots, "items", {}, void 0, !0)], 2)) : n("", !0)
59
- ], 32)], 34));
60
- }
61
- }), [["__scopeId", "data-v-7f77154a"]]);
62
- //#endregion
63
- export { f as HeaderRibbon };
@@ -1 +0,0 @@
1
- export * from "./components/custom/instrument-rail";
@@ -1,2 +0,0 @@
1
- import { t as e } from "./InstrumentRail-CUJ05YVG.js";
2
- export { e as InstrumentRail };