@mkbabb/glass-ui 8.0.0 → 10.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (264) hide show
  1. package/MIGRATION.md +4768 -0
  2. package/README.md +57 -13
  3. package/dist/DialogContent-CwIBvou_.js +157 -0
  4. package/dist/{DropdownMenuTrigger-8UZsBtZ8.js → DropdownMenuTrigger-CKRnhDSQ.js} +1 -1
  5. package/dist/{Surface-i1tWC-Ga.js → Surface-1nPoabc3.js} +1 -1
  6. package/dist/{accent-tone-solve-Cw7WkRD9.js → accent-tone-solve-5H6FY2QO.js} +1 -1
  7. package/dist/aurora.js +386 -355
  8. package/dist/{badge-owUOaaba.js → badge-BO6BC4G5.js} +1 -1
  9. package/dist/badge.js +1 -1
  10. package/dist/blob.js +44 -44
  11. package/dist/{button-yvGPb0Bx.js → button-BOFTUPyU.js} +1 -1
  12. package/dist/button.js +1 -1
  13. package/dist/{card-3HFFpC7_.js → card-ByyqRBvK.js} +2 -2
  14. package/dist/card.js +1 -1
  15. package/dist/carousel.js +3 -3
  16. package/dist/{checkbox-BnXuGgJ3.js → checkbox-B1qn65se.js} +1 -1
  17. package/dist/checkbox.js +1 -1
  18. package/dist/chip.js +8 -3
  19. package/dist/{class-names-q-UGOkHH.js → class-names-FlXcvRRT.js} +65 -18
  20. package/dist/{collapsible-B7O6m-Ch.js → collapsible-DFzK29Oh.js} +5 -2
  21. package/dist/collapsible.js +1 -1
  22. package/dist/color.glsl-DTJhdekG.js +34 -0
  23. package/dist/color.js +11 -11
  24. package/dist/color.wgsl-BTszLY39.js +398 -0
  25. package/dist/{command-BuBnYpxF.js → command-C-5xSEJ2.js} +8 -8
  26. package/dist/command.js +1 -1
  27. package/dist/component-styles.css +1 -0
  28. package/dist/components/_shared/class-names.d.ts +10 -1
  29. package/dist/components/_shared/control.d.ts +0 -1
  30. package/dist/components/_shared/index.d.ts +0 -1
  31. package/dist/components/_shared/menu/menu.css +1 -1
  32. package/dist/components/_shared/overlay/index.d.ts +1 -0
  33. package/dist/components/_shared/overlay/shortcuts.d.ts +12 -0
  34. package/dist/components/aurora/Aurora.vue.d.ts +1 -0
  35. package/dist/components/aurora/composables/atoms.d.ts +22 -6
  36. package/dist/components/aurora/composables/frameLoop.d.ts +6 -5
  37. package/dist/components/aurora/composables/runtime.d.ts +28 -1
  38. package/dist/components/aurora/composables/useAurora.d.ts +28 -0
  39. package/dist/components/aurora/composables/wgpuSetup.d.ts +1 -1
  40. package/dist/components/aurora/constants/presets.d.ts +62 -5
  41. package/dist/components/aurora/index.d.ts +1 -1
  42. package/dist/components/blob/Blob.vue.d.ts +3 -3
  43. package/dist/components/card/Card.vue.d.ts +8 -2
  44. package/dist/components/chip/Chip.vue.d.ts +1 -7
  45. package/dist/components/chip/chipVariants.d.ts +1 -0
  46. package/dist/components/collapsible/Collapsible.vue.d.ts +1 -0
  47. package/dist/components/command/CommandDialog.vue.d.ts +1 -1
  48. package/dist/components/configurator/Configurator.vue.d.ts +25 -2
  49. package/dist/components/configurator/ConfiguratorRow.vue.d.ts +4 -2
  50. package/dist/components/configurator/styles.css +1 -1
  51. package/dist/components/dark-mode-toggle/dark-mode-toggle.css +1 -1
  52. package/dist/components/deck/styles/capture.css +1 -1
  53. package/dist/components/dialog/styles.css +1 -1
  54. package/dist/components/dock/DockSeparator.vue.d.ts +2 -3
  55. package/dist/components/dock/GlassDock.vue.d.ts +1 -0
  56. package/dist/components/dock/composables/dockContext.d.ts +1 -8
  57. package/dist/components/dock/composables/dockCrossfadeContext.d.ts +0 -2
  58. package/dist/components/dock/composables/index.d.ts +1 -1
  59. package/dist/components/dock/composables/useDockHold.d.ts +16 -12
  60. package/dist/components/dock/composables/useDockRun.d.ts +20 -0
  61. package/dist/components/dock/composables/useDockSearch.d.ts +1 -1
  62. package/dist/components/dock/composables/useDockShellProps.d.ts +18 -101
  63. package/dist/components/dock/composables/useDockState.d.ts +2 -9
  64. package/dist/components/dock/constants.d.ts +15 -0
  65. package/dist/components/dock/index.d.ts +2 -2
  66. package/dist/components/dock/styles/controls/icon-button.css +1 -1
  67. package/dist/components/dock/styles/controls/tab-button.css +1 -1
  68. package/dist/components/dock/styles/controls/triggers.css +1 -1
  69. package/dist/components/dock/styles/controls.css +1 -1
  70. package/dist/components/dock/styles/density.css +1 -1
  71. package/dist/components/dock/styles/index.css +1 -1
  72. package/dist/components/dock/styles/layer-group.css +1 -1
  73. package/dist/components/dock/styles/layers.css +1 -1
  74. package/dist/components/dock/styles/morph.css +1 -1
  75. package/dist/components/dock/styles/run.css +1 -0
  76. package/dist/components/dock/styles/search.css +1 -1
  77. package/dist/components/dock/styles/shape.css +1 -1
  78. package/dist/components/dock/styles/shell-regions.css +1 -1
  79. package/dist/components/dock/styles/shell.css +1 -1
  80. package/dist/components/fourier-field/FourierField.vue.d.ts +29 -26
  81. package/dist/components/fourier-field/clock.d.ts +35 -0
  82. package/dist/components/fourier-field/constants.d.ts +80 -104
  83. package/dist/components/fourier-field/index.d.ts +3 -28
  84. package/dist/components/fourier-field/math.d.ts +69 -77
  85. package/dist/components/fourier-field/renderer/mint.d.ts +50 -0
  86. package/dist/components/fourier-field/renderer/uniforms.d.ts +84 -0
  87. package/dist/components/fourier-field/renderer/wgpu.d.ts +28 -0
  88. package/dist/components/fourier-field/shaders/compute.wgsl.d.ts +1 -0
  89. package/dist/components/fourier-field/shaders/render.wgsl.d.ts +1 -0
  90. package/dist/components/fourier-field/useFourierField.d.ts +49 -0
  91. package/dist/components/handmark/HandMark.vue.d.ts +18 -14
  92. package/dist/components/handmark/index.d.ts +4 -23
  93. package/dist/components/handmark/stroke.d.ts +92 -0
  94. package/dist/components/labeled-field/LabeledSwitch.vue.d.ts +3 -1
  95. package/dist/components/labeled-field/types.d.ts +1 -1
  96. package/dist/components/menu/DropdownMenu.vue.d.ts +1 -1
  97. package/dist/components/metric/coalesce-metric.d.ts +6 -1
  98. package/dist/components/metric/styles.css +1 -1
  99. package/dist/components/popover/Popover.vue.d.ts +1 -1
  100. package/dist/components/scroll-progress-rim/styles.css +1 -1
  101. package/dist/components/sheet/styles.css +1 -1
  102. package/dist/components/slider/styles.css +1 -1
  103. package/dist/components/tabs/SegmentedTabs.vue.d.ts +25 -112
  104. package/dist/components/tabs/composables/useTabDragMorph.d.ts +1 -1
  105. package/dist/components/tabs/composables/useTabResponsive.d.ts +11 -11
  106. package/dist/components/tabs/index.d.ts +1 -1
  107. package/dist/components/tabs/styles/drag.css +1 -1
  108. package/dist/components/tabs/styles/segmented.css +1 -1
  109. package/dist/components/tabs/types.d.ts +85 -0
  110. package/dist/components/timeline/index.d.ts +2 -0
  111. package/dist/components/toast/Toast.vue.d.ts +2 -2
  112. package/dist/composables/color/index.d.ts +0 -15
  113. package/dist/composables/dark/darkModeSyncScript.d.ts +42 -0
  114. package/dist/composables/dom/useResolveTokenColor.d.ts +1 -1
  115. package/dist/composables/glass/index.d.ts +2 -0
  116. package/dist/composables/keyboard/useKeyboardShortcuts.d.ts +47 -1
  117. package/dist/composables/motion/pointer/pointerFieldMappings.d.ts +0 -41
  118. package/dist/{components/search/composables → composables/search}/index.d.ts +2 -2
  119. package/dist/{components/search/composables/fuzzySearchIndex.d.ts → composables/search/match.d.ts} +8 -3
  120. package/dist/composables/sidebar/types.d.ts +5 -1
  121. package/dist/configurator-DiwVN573.js +339 -0
  122. package/dist/configurator.js +1 -1
  123. package/dist/constellation.js +5 -5
  124. package/dist/{content-CWO-XL7o.js → content-So3j6SOe.js} +1 -1
  125. package/dist/control-DJp15L4U.js +7 -0
  126. package/dist/dark-mode-toggle.js +2 -2
  127. package/dist/{dark-z_P5QwqI.js → dark-pONY3x93.js} +2 -2
  128. package/dist/dark.js +1 -1
  129. package/dist/{data-table-_RrOEdiw.js → data-table-Ba_uTfPc.js} +3 -3
  130. package/dist/data-table.js +1 -1
  131. package/dist/{deck-Ci6YjB5e.js → deck-Cm_VmyNL.js} +1 -1
  132. package/dist/deck.js +1 -1
  133. package/dist/{dialog-CbRnTRtg.js → dialog-BZoFG0j8.js} +1 -1
  134. package/dist/dialog.js +2 -2
  135. package/dist/dock.js +718 -496
  136. package/dist/dom.js +90 -8
  137. package/dist/easing.js +5 -5
  138. package/dist/expandable-container-CZUj9BzY.js +142 -0
  139. package/dist/expandable-container.js +2 -142
  140. package/dist/fourier-field.js +638 -855
  141. package/dist/fourier-math.js +6 -6
  142. package/dist/glass-ui.css +1 -1
  143. package/dist/glass-ui.js +88 -75
  144. package/dist/handmark.js +330 -718
  145. package/dist/index.d.ts +2 -2
  146. package/dist/infinite-scroll.js +16 -17
  147. package/dist/{input-Bls2A4Tt.js → input-eLZ_AU7l.js} +1 -1
  148. package/dist/input.js +1 -1
  149. package/dist/keyboard.js +64 -21
  150. package/dist/{label-BQEZhnK_.js → label-CE03H1KL.js} +2 -2
  151. package/dist/label.js +1 -1
  152. package/dist/labeled-field.js +9 -6
  153. package/dist/{menu-wLu1XGKn.js → menu-BnmCOa3y.js} +93 -90
  154. package/dist/menu.js +2 -2
  155. package/dist/metric.js +12 -7
  156. package/dist/{motion-D4uYE0UM.js → motion-BvV1_24p.js} +1 -1
  157. package/dist/motion-core.js +35 -35
  158. package/dist/{number-field-NFAwQ0HK.js → number-field-RP89046a.js} +2 -2
  159. package/dist/number-field.js +1 -1
  160. package/dist/pager-dots.js +3 -3
  161. package/dist/{participation-B0hdsIRo.js → participation-Di4UHbzk.js} +8 -8
  162. package/dist/{pointerFieldMappings-DP5tla5z.js → pointerFieldMappings-DXwlU5uj.js} +7 -23
  163. package/dist/popover-DA87hFBx.js +184 -0
  164. package/dist/popover.js +1 -1
  165. package/dist/{progress-DF8dWZIX.js → progress-eVa-mc7J.js} +1 -1
  166. package/dist/progress.js +1 -1
  167. package/dist/{radio-group-Ci8o-pDx.js → radio-group-B58Bz16F.js} +2 -2
  168. package/dist/radio-group.js +1 -1
  169. package/dist/{select-CDgwGH_P.js → select-fy3vtArm.js} +13 -13
  170. package/dist/select.js +1 -1
  171. package/dist/{separator-CN11t406.js → separator-D4EZM10u.js} +2 -2
  172. package/dist/separator.js +1 -1
  173. package/dist/{sheet-BEFvnO_u.js → sheet-BQJyER59.js} +120 -115
  174. package/dist/sheet.js +2 -2
  175. package/dist/shortcuts-DGGWNRNe.js +13 -0
  176. package/dist/sidebar.js +4 -4
  177. package/dist/{slider-gsc8jDIo.js → slider-5ChjjWSR.js} +1 -1
  178. package/dist/slider.js +1 -1
  179. package/dist/{status-dot-BpnqOP5N.js → status-dot-W4LFiJps.js} +2 -2
  180. package/dist/status-dot.js +1 -1
  181. package/dist/styles/accessibility.css +1 -1
  182. package/dist/styles/animations.css +1 -1
  183. package/dist/styles/components.css +1 -1
  184. package/dist/styles/glass/a11y-fallback.css +1 -1
  185. package/dist/styles/glass/dissolve.css +1 -1
  186. package/dist/styles/glass/focus-veil.css +1 -1
  187. package/dist/styles/glass/ladder.css +1 -1
  188. package/dist/styles/glass/material.css +1 -1
  189. package/dist/styles/glass/overlay-plate.css +1 -1
  190. package/dist/styles/glass/reveal.css +1 -1
  191. package/dist/styles/glass-specular-track.css +1 -1
  192. package/dist/styles/paper.css +1 -1
  193. package/dist/styles/scroll-choreography.css +1 -1
  194. package/dist/styles/scroll-chrome.css +1 -1
  195. package/dist/styles/scroll-driven.css +1 -1
  196. package/dist/styles/theme/literals.css +1 -1
  197. package/dist/styles/tokens/color-radius.css +1 -1
  198. package/dist/styles/tokens/dark-arm-glass.css +1 -1
  199. package/dist/styles/tokens/light-dark.css +1 -1
  200. package/dist/styles/tokens/offsets.css +1 -1
  201. package/dist/styles/tokens/scheme-motion.css +1 -1
  202. package/dist/styles/tokens/sizing.css +1 -1
  203. package/dist/styles/typography/semantic.css +1 -1
  204. package/dist/styles/typography/utilities.css +1 -1
  205. package/dist/styles/utilities/a11y-overrides.css +1 -1
  206. package/dist/styles/utilities/responsive.css +1 -1
  207. package/dist/styles/view-transition.css +1 -1
  208. package/dist/styles/viz-reveal.css +1 -1
  209. package/dist/surface.js +1 -1
  210. package/dist/{switch-DxZzDrmV.js → switch-BYUZ6g9G.js} +2 -2
  211. package/dist/switch.js +1 -1
  212. package/dist/{tabs-CYscnq5H.js → tabs-rdRXKXxd.js} +4 -3
  213. package/dist/tabs.js +1 -1
  214. package/dist/textarea.js +1 -1
  215. package/dist/timeline.js +44 -42
  216. package/dist/{toast-9c6Kp58L.js → toast-DVOwo6GB.js} +1 -1
  217. package/dist/toast.js +1 -1
  218. package/dist/{toggle-group-11aPGMfE.js → toggle-group-CC5b3o1R.js} +2 -2
  219. package/dist/toggle-group.js +1 -1
  220. package/dist/{tooltip-DqKMZ4dn.js → tooltip-DhTHhtJN.js} +2 -2
  221. package/dist/tooltip.js +1 -1
  222. package/dist/typewriter.js +1 -1
  223. package/dist/{useAccentTone-DFAh1osB.js → useAccentTone-DitmKfGL.js} +1 -1
  224. package/dist/{resolveCanvasColor-6MCrswTB.js → useCanvas2D-CQRElMyE.js} +1 -11
  225. package/dist/{usePointerVelocityField-DsIf7yyq.js → usePointerVelocityField-Lx26_Yap.js} +1 -1
  226. package/dist/useResolveTokenColor-B2FfJnd9.js +24 -0
  227. package/package.json +5 -21
  228. package/dist/DialogContent-4hzLiaCQ.js +0 -152
  229. package/dist/canvas.d.ts +0 -1
  230. package/dist/canvas.js +0 -2
  231. package/dist/color.wgsl-B0N3mKMb.js +0 -412
  232. package/dist/compile-D7VYG3gi.js +0 -19
  233. package/dist/components/dock/composables/useDockOverflowFit.d.ts +0 -20
  234. package/dist/components/dock/composables/useDockTouchGate.d.ts +0 -42
  235. package/dist/components/dock/styles/overflow.css +0 -1
  236. package/dist/components/fourier-field/composables/fourierFieldGLSetup.d.ts +0 -24
  237. package/dist/components/fourier-field/composables/fourierFieldWGPUSetup.d.ts +0 -31
  238. package/dist/components/fourier-field/composables/uniformBridgeWGPU.d.ts +0 -39
  239. package/dist/components/fourier-field/composables/useFourierField.d.ts +0 -56
  240. package/dist/components/fourier-field/shaders/fourier-field.compute.wgsl.d.ts +0 -1
  241. package/dist/components/fourier-field/shaders/fourier-field.glsl.d.ts +0 -4
  242. package/dist/components/fourier-field/shaders/fourier-field.render.wgsl.d.ts +0 -1
  243. package/dist/components/fourier-field/shaders/fourier-field.ribbon.d.ts +0 -51
  244. package/dist/components/handmark/brush.d.ts +0 -269
  245. package/dist/components/handmark/composables/useHandMark.d.ts +0 -99
  246. package/dist/components/handmark/constants.d.ts +0 -69
  247. package/dist/components/handmark/freehand.d.ts +0 -69
  248. package/dist/components/handmark/geometry.d.ts +0 -62
  249. package/dist/components/handmark/ink.d.ts +0 -11
  250. package/dist/components/handmark/noise.d.ts +0 -30
  251. package/dist/components/handmark/texture.d.ts +0 -39
  252. package/dist/components/handmark/types.d.ts +0 -70
  253. package/dist/components/search/SearchBar.vue.d.ts +0 -38
  254. package/dist/components/search/index.d.ts +0 -8
  255. package/dist/components/search/searchVariants.d.ts +0 -16
  256. package/dist/configurator-BoeScnDL.js +0 -311
  257. package/dist/control-Da4XeT43.js +0 -11
  258. package/dist/popover-DBMKTPkL.js +0 -181
  259. package/dist/search.d.ts +0 -1
  260. package/dist/search.js +0 -61
  261. package/dist/useFuzzySearch-CUnZknpm.js +0 -177
  262. package/dist/useResolveTokenColor-CspQv_ik.js +0 -107
  263. /package/dist/{components/search/composables → composables/search}/types.d.ts +0 -0
  264. /package/dist/{components/search/composables → composables/search}/useFuzzySearch.d.ts +0 -0
@@ -0,0 +1,339 @@
1
+ import { t as e } from "./class-names-FlXcvRRT.js";
2
+ import { t } from "./createContext-BhkE9mLH.js";
3
+ import { t as n } from "./_plugin-vue_export-helper-B3ysoDQm.js";
4
+ import { t as r } from "./label-CE03H1KL.js";
5
+ import { t as i } from "./expandable-container-CZUj9BzY.js";
6
+ import { t as a } from "./fading-scroll-CTeW3KNS.js";
7
+ import { Fragment as o, computed as s, createBlock as c, createCommentVNode as l, createElementBlock as u, createElementVNode as d, createTextVNode as f, createVNode as p, defineComponent as m, mergeModels as h, mergeProps as g, normalizeClass as _, normalizeStyle as v, openBlock as y, reactive as b, ref as x, renderList as S, renderSlot as C, resolveDynamicComponent as w, toDisplayString as T, toRaw as E, unref as D, useId as O, useModel as k, withCtx as A, withModifiers as j } from "vue";
8
+ import { ChevronDown as M, RotateCcw as N } from "@lucide/vue";
9
+ //#region src/components/configurator/size.ts
10
+ var P = t("configuratorSize"), F = P.KEY;
11
+ function I(e) {
12
+ P.provide(e);
13
+ }
14
+ var L = P.use, R = ["data-aside-side", "data-gallery"], z = {
15
+ key: 0,
16
+ "data-gallery-dock": "",
17
+ class: "configurator-presets shrink-0 px-3"
18
+ }, B = [
19
+ "data-active",
20
+ "aria-pressed",
21
+ "onClick"
22
+ ], V = { class: "configurator-stage relative min-h-0 min-w-0 overflow-hidden" }, H = { class: "configurator-aside flex min-h-0 min-w-0 flex-col" }, U = { class: "flex flex-col" }, W = {
23
+ key: 1,
24
+ class: "configurator-controls flex-1 min-h-0 overflow-visible"
25
+ }, G = { class: "flex flex-col" }, K = {
26
+ key: 2,
27
+ class: "configurator-footer shrink-0 border-t px-3 py-2"
28
+ }, q = /* @__PURE__ */ m({
29
+ __name: "Configurator",
30
+ props: /*@__PURE__*/ h({
31
+ presets: {},
32
+ activePreset: {},
33
+ layers: {},
34
+ activeLayer: {},
35
+ scrollMode: { default: "auto" },
36
+ size: { default: "md" },
37
+ asideSide: { default: "right" },
38
+ galleryPlacement: { default: "aside" },
39
+ asideWidth: {},
40
+ expandable: {
41
+ type: Boolean,
42
+ default: !1
43
+ },
44
+ expandLabel: { default: "Expand configurator" },
45
+ collapseLabel: { default: "Collapse configurator" },
46
+ class: { type: [
47
+ Boolean,
48
+ null,
49
+ String,
50
+ Object,
51
+ Array
52
+ ] }
53
+ }, {
54
+ expanded: {
55
+ type: Boolean,
56
+ default: !1
57
+ },
58
+ expandedModifiers: {}
59
+ }),
60
+ emits: /*@__PURE__*/ h([
61
+ "select-preset",
62
+ "select-layer",
63
+ "reset"
64
+ ], ["update:expanded"]),
65
+ setup(t, { emit: n }) {
66
+ let r = t, f = k(t, "expanded");
67
+ I(s(() => r.size));
68
+ let m = n, h = s(() => e("configurator-shell glass-floating rounded-panel border border-border/60 overflow-hidden", r.class)), b = s(() => e("configurator", "grid", "min-h-0")), x = s(() => r.expandable ? i : "div"), E = s(() => r.expandable ? "configurator-expand-host" : "contents"), O = s(() => r.expandable ? {
69
+ open: f.value,
70
+ "onUpdate:open": (e) => {
71
+ f.value = e;
72
+ },
73
+ expandLabel: r.expandLabel,
74
+ collapseLabel: r.collapseLabel
75
+ } : {}), M = s(() => r.expandable && f.value ? "top" : r.galleryPlacement), N = s(() => {
76
+ let e = {
77
+ "--radius-ctx": "var(--radius-panel)",
78
+ "--radius-inset": "var(--configurator-pad-inline)"
79
+ };
80
+ if (r.asideWidth != null) {
81
+ let [t, n] = Array.isArray(r.asideWidth) ? r.asideWidth : [r.asideWidth, r.asideWidth];
82
+ e["--configurator-aside-min"] = t, e["--configurator-aside-max"] = n;
83
+ }
84
+ return e;
85
+ }), P = s(() => r.scrollMode !== "never");
86
+ return (n, r) => (y(), c(w(x.value), g(O.value, { class: E.value }), {
87
+ default: A(() => [d("div", {
88
+ class: _(h.value),
89
+ style: v(N.value)
90
+ }, [d("section", {
91
+ "data-slot": "configurator",
92
+ "data-aside-side": t.asideSide,
93
+ "data-gallery": M.value,
94
+ class: _(b.value)
95
+ }, [
96
+ n.$slots.presets || t.presets && t.presets.length > 0 ? (y(), u("div", z, [C(n.$slots, "presets", {
97
+ presets: t.presets,
98
+ activePreset: t.activePreset
99
+ }, () => [p(D(a), {
100
+ axis: "x",
101
+ class: "configurator-gallery-track flex scrollbar-hidden",
102
+ role: "group",
103
+ "aria-label": "Presets"
104
+ }, {
105
+ default: A(() => [(y(!0), u(o, null, S(t.presets, (n) => (y(), u("button", {
106
+ key: n.key,
107
+ type: "button",
108
+ "data-preset-tile": "",
109
+ "data-active": n.key === t.activePreset || void 0,
110
+ "aria-pressed": n.key === t.activePreset,
111
+ class: _(D(e)("configurator-preset-chip glass-capsule glass-capsule-hover shadow-cartoon focus-ring shrink-0 px-3 py-1 text-micro font-medium text-foreground", n.key === t.activePreset && "is-active")),
112
+ onClick: j((e) => m("select-preset", n.key), ["stop"])
113
+ }, T(n.label), 11, B))), 128))]),
114
+ _: 1
115
+ })])])) : l("", !0),
116
+ d("div", V, [C(n.$slots, "stage")]),
117
+ d("aside", H, [P.value ? (y(), c(D(a), {
118
+ key: 0,
119
+ axis: "y",
120
+ class: "configurator-controls flex-1 min-h-0 scrollbar-thin"
121
+ }, {
122
+ default: A(() => [C(n.$slots, "controls", {
123
+ layers: t.layers,
124
+ activeLayer: t.activeLayer,
125
+ selectLayer: (e) => m("select-layer", e)
126
+ }, () => [d("div", U, [C(n.$slots, "default")])])]),
127
+ _: 3
128
+ })) : (y(), u("div", W, [C(n.$slots, "controls", {
129
+ layers: t.layers,
130
+ activeLayer: t.activeLayer,
131
+ selectLayer: (e) => m("select-layer", e)
132
+ }, () => [d("div", G, [C(n.$slots, "default")])])])), n.$slots.footer ? (y(), u("div", K, [C(n.$slots, "footer", { reset: () => m("reset") })])) : l("", !0)])
133
+ ], 10, R)], 6)]),
134
+ _: 3
135
+ }, 16, ["class"]));
136
+ }
137
+ }), J = ["data-state"], Y = [
138
+ "aria-expanded",
139
+ "aria-controls",
140
+ "data-state"
141
+ ], X = { class: "flex min-w-0 items-baseline gap-2" }, ee = { class: "configurator-section-label truncate" }, Z = {
142
+ key: 0,
143
+ class: "truncate text-micro font-mono text-muted-foreground"
144
+ }, Q = [
145
+ "id",
146
+ "aria-hidden",
147
+ "inert",
148
+ "data-state"
149
+ ], $ = { class: "min-h-0 overflow-hidden" }, te = ["data-dividers"], ne = /*#__PURE__*/ n(/* @__PURE__ */ m({
150
+ __name: "ConfiguratorLayer",
151
+ props: /*@__PURE__*/ h({
152
+ label: {},
153
+ sub: {},
154
+ id: {},
155
+ defaultOpen: {
156
+ type: Boolean,
157
+ default: !0
158
+ },
159
+ dividers: { type: Boolean },
160
+ class: { type: [
161
+ Boolean,
162
+ null,
163
+ String,
164
+ Object,
165
+ Array
166
+ ] },
167
+ bodyClass: { type: [
168
+ Boolean,
169
+ null,
170
+ String,
171
+ Object,
172
+ Array
173
+ ] }
174
+ }, {
175
+ open: {
176
+ type: Boolean,
177
+ default: void 0
178
+ },
179
+ openModifiers: {}
180
+ }),
181
+ emits: ["update:open"],
182
+ setup(t) {
183
+ let n = t, r = k(t, "open");
184
+ r.value === void 0 && (r.value = n.defaultOpen);
185
+ let i = `configurator-layer-body-${O()}`, a = s(() => n.id ?? i);
186
+ function o() {
187
+ r.value = !r.value;
188
+ }
189
+ let c = s(() => r.value ? "open" : "closed");
190
+ return (i, s) => (y(), u("div", {
191
+ "data-slot": "configurator-layer",
192
+ class: _(D(e)("configurator-layer", n.class)),
193
+ "data-state": c.value
194
+ }, [d("button", {
195
+ type: "button",
196
+ "data-slot": "configurator-layer-trigger",
197
+ class: _(D(e)("configurator-layer-trigger", "group flex w-full items-center justify-between gap-2 py-2", "tap-squish transition-control text-left focus-ring")),
198
+ "aria-expanded": r.value,
199
+ "aria-controls": a.value,
200
+ "data-state": c.value,
201
+ onClick: o
202
+ }, [d("div", X, [d("span", ee, T(t.label), 1), t.sub ? (y(), u("span", Z, T(t.sub), 1)) : l("", !0)]), p(D(M), {
203
+ class: "h-4 w-4 shrink-0 text-muted-foreground group-data-[state=open]:rotate-180 transition-disclosure",
204
+ "aria-hidden": "true"
205
+ })], 10, Y), d("div", {
206
+ id: a.value,
207
+ role: "region",
208
+ "aria-hidden": !r.value,
209
+ inert: !r.value || void 0,
210
+ "data-state": c.value,
211
+ class: "configurator-layer-region grid motion-reduce:transition-none",
212
+ style: v({ gridTemplateRows: r.value ? "1fr" : "0fr" })
213
+ }, [d("div", $, [d("div", {
214
+ "data-dividers": n.dividers || void 0,
215
+ class: _(D(e)("configurator-layer-body py-2 space-y-2", n.dividers && "[&>*+*]:border-t [&>*+*]:pt-2", n.bodyClass))
216
+ }, [C(i.$slots, "default", {}, void 0, !0)], 10, te)])], 12, Q)], 10, J));
217
+ }
218
+ }), [["__scopeId", "data-v-6fa47df1"]]), re = ["data-size"], ie = { class: "flex items-baseline justify-between gap-3" }, ae = { class: "flex min-w-0 items-baseline gap-2" }, oe = {
219
+ key: 0,
220
+ class: "truncate text-small font-normal text-muted-foreground"
221
+ }, se = {
222
+ key: 1,
223
+ class: "truncate text-micro font-mono text-muted-foreground"
224
+ }, ce = ["aria-label"], le = { class: "flex w-full min-w-0 items-center [&>*]:min-w-0 [&>*]:w-full [&>*]:flex-1" }, ue = {
225
+ key: 0,
226
+ class: "text-micro leading-snug text-muted-foreground"
227
+ }, de = /*#__PURE__*/ n(/* @__PURE__ */ m({
228
+ __name: "ConfiguratorRow",
229
+ props: {
230
+ label: {},
231
+ sub: {},
232
+ name: {},
233
+ description: {},
234
+ canReset: { type: Boolean },
235
+ size: {},
236
+ class: { type: [
237
+ Boolean,
238
+ null,
239
+ String,
240
+ Object,
241
+ Array
242
+ ] }
243
+ },
244
+ emits: ["reset"],
245
+ setup(t, { emit: n }) {
246
+ let i = t, a = n, o = `${O()}-label`, c = L(), m = s(() => i.size ?? c?.value ?? void 0);
247
+ return (n, s) => (y(), u("div", {
248
+ "data-slot": "configurator-row",
249
+ class: _(D(e)("configurator-row flex flex-col gap-1.5 py-2", i.class)),
250
+ "data-size": m.value
251
+ }, [
252
+ d("div", ie, [d("div", ae, [
253
+ p(D(r), {
254
+ id: o,
255
+ class: "truncate"
256
+ }, {
257
+ default: A(() => [f(T(t.label), 1)]),
258
+ _: 1
259
+ }),
260
+ t.sub ? (y(), u("span", oe, T(t.sub), 1)) : l("", !0),
261
+ t.name ? (y(), u("span", se, T(t.name), 1)) : l("", !0)
262
+ ]), t.canReset ? (y(), u("button", {
263
+ key: 0,
264
+ type: "button",
265
+ "data-slot": "configurator-reset",
266
+ class: "tap-squish transition-control focus-ring inline-flex h-6 w-6 items-center justify-center rounded-pill text-muted-foreground/60",
267
+ "aria-label": `Reset ${t.label}`,
268
+ onClick: s[0] ||= (e) => a("reset")
269
+ }, [p(D(N), {
270
+ class: "h-3 w-3",
271
+ "aria-hidden": "true"
272
+ })], 8, ce)) : l("", !0)]),
273
+ d("div", le, [C(n.$slots, "default", { labelledBy: o }, void 0, !0)]),
274
+ t.description ? (y(), u("p", ue, T(t.description), 1)) : l("", !0)
275
+ ], 10, re));
276
+ }
277
+ }), [["__scopeId", "data-v-ed1debd3"]]);
278
+ //#endregion
279
+ //#region src/components/configurator/useConfiguratorState.ts
280
+ function fe(e) {
281
+ let t = E(e);
282
+ if (typeof structuredClone != "function") throw Error("[glass-ui:configurator] structuredClone is unavailable in this runtime. Pass a custom clone via ConfiguratorStateOptions.clone for environments without structured-clone support.");
283
+ try {
284
+ return structuredClone(t);
285
+ } catch (e) {
286
+ throw Error("[glass-ui:configurator] structuredClone failed: " + (e instanceof Error ? e.message : String(e)) + ". Preset values must be structured-cloneable (no functions, symbols, DOM nodes, or class instances). Pass a custom clone via ConfiguratorStateOptions.clone if the data shape requires it.");
287
+ }
288
+ }
289
+ function pe(e, t) {
290
+ return JSON.stringify(e) === JSON.stringify(t);
291
+ }
292
+ function me(e) {
293
+ let t = e.clone ?? fe, n = e.equals ?? pe, r = e.presets, i = e.cloneMode ?? "commit-on-write", a = e.initialPreset ?? (r.length > 0 ? r[0].key : void 0), o = a ? r.find((e) => e.key === a) : void 0, c = b(o ? t(o.config) : {}), l = x(a), u = i === "per-preset" ? Object.fromEntries(r.map((e) => [e.key, t(e.config)])) : null, d = s(() => l.value), f = s(() => {
294
+ let e = l.value;
295
+ if (!e) return !1;
296
+ let t = r.find((t) => t.key === e);
297
+ return t ? !n(c, t.config) : !1;
298
+ });
299
+ function p(e) {
300
+ return r.find((t) => t.key === e);
301
+ }
302
+ function m(e) {
303
+ let t = c, n = e;
304
+ for (let e of Object.keys(t)) e in n || delete t[e];
305
+ for (let e of Object.keys(n)) t[e] = n[e];
306
+ }
307
+ function h(e) {
308
+ u && (u[e] = t(c));
309
+ }
310
+ function g(e) {
311
+ let n = p(e);
312
+ if (n) if (i === "per-preset" && u) {
313
+ let t = l.value;
314
+ t && t !== e && t in u && h(t), l.value = e, m(u[e]);
315
+ } else l.value = e, m(t(n.config));
316
+ }
317
+ function _() {
318
+ let e = l.value;
319
+ if (!e) return;
320
+ let n = p(e);
321
+ n && (i === "per-preset" && u ? (u[e] = t(n.config), m(u[e])) : m(t(n.config)));
322
+ }
323
+ function v(e = 1) {
324
+ if (r.length === 0) return;
325
+ let t = l.value, n = t ? r.findIndex((e) => e.key === t) : -1, i = r.length, a = r[(n + e + i) % i];
326
+ g(a.key);
327
+ }
328
+ return {
329
+ config: c,
330
+ activePreset: d,
331
+ isDirty: f,
332
+ selectPreset: g,
333
+ resetCurrent: _,
334
+ cyclePreset: v,
335
+ getPreset: p
336
+ };
337
+ }
338
+ //#endregion
339
+ export { F as a, q as i, de as n, I as o, ne as r, L as s, me as t };
@@ -1,2 +1,2 @@
1
- import { a as e, i as t, n, o as r, r as i, s as a, t as o } from "./configurator-BoeScnDL.js";
1
+ import { a as e, i as t, n, o as r, r as i, s as a, t as o } from "./configurator-DiwVN573.js";
2
2
  export { e as CONFIGURATOR_SIZE_KEY, t as Configurator, i as ConfiguratorLayer, n as ConfiguratorRow, r as provideConfiguratorSize, o as useConfiguratorState, a as useOptionalConfiguratorSize };
@@ -1,10 +1,10 @@
1
- import { t as e } from "./class-names-q-UGOkHH.js";
1
+ import { t as e } from "./class-names-FlXcvRRT.js";
2
2
  import { t } from "./useReducedMotion-vCXA_vyM.js";
3
- import { n } from "./resolveCanvasColor-6MCrswTB.js";
3
+ import { t as n } from "./useCanvas2D-CQRElMyE.js";
4
4
  import { t as r } from "./_plugin-vue_export-helper-B3ysoDQm.js";
5
- import { t as i } from "./usePointerVelocityField-DsIf7yyq.js";
5
+ import { t as i } from "./usePointerVelocityField-Lx26_Yap.js";
6
6
  import { t as a } from "./useRoutePointer-B8itM7Ka.js";
7
- import { d as o, l as s } from "./pointerFieldMappings-DP5tla5z.js";
7
+ import { c as o, s } from "./pointerFieldMappings-DXwlU5uj.js";
8
8
  import { a as c, t as l } from "./rendererStatus-BxUlBLVy.js";
9
9
  import { n as u, t as d } from "./prng-2uS6J_A1.js";
10
10
  import { computed as f, createElementBlock as p, createElementVNode as m, defineComponent as h, getCurrentInstance as g, normalizeClass as _, onMounted as v, onUnmounted as y, openBlock as b, readonly as x, ref as S, shallowRef as C, unref as w, useTemplateRef as T, watch as E } from "vue";
@@ -601,6 +601,6 @@ var Oe = [
601
601
  "aria-hidden": "true"
602
602
  }, null, 512)], 10, Oe));
603
603
  }
604
- }), [["__scopeId", "data-v-3790eb30"]]);
604
+ }), [["__scopeId", "data-v-18aad161"]]);
605
605
  //#endregion
606
606
  export { D as BASE_WIDTH, ae as BURST_FIRE_THRESHOLD, ke as Constellation, L as DEFAULT_K_FLOOR, O as DEFAULT_PALETTE, B as DEFAULT_PARALLAX, ee as DEFAULT_PINNED_DRIFT_DUR, P as DEFAULT_PINNED_DRIFT_FRAC, F as DEFAULT_PINNED_DRIFT_IDLE, I as DEFAULT_PINNED_DRIFT_JITTER, M as DEFAULT_WANDER_IDLE, N as DEFAULT_WANDER_JITTER, j as DEFAULT_WELL_CONFIG, z as E_MAX, R as MAX_DEGREE, te as MAX_NODES, k as WARP_RESPONSE, A as WARP_ZETA, ge as appendPointerWeb, he as buildEdges, oe as fireBurst, $ as kVisOf, Z as makePinnedDrift, G as nearestNode, _e as parallaxNodePos, X as pickWanderTarget, U as readInteractionConfig, ve as readPalette, pe as refitField, fe as seedField, q as setWarpTarget, me as stepField, ie as stepPinnedDrift, de as stepWell, Y as warpSettled, K as warpStep, J as warpTo };
@@ -1,4 +1,4 @@
1
- import { t as e } from "./class-names-q-UGOkHH.js";
1
+ import { t as e } from "./class-names-FlXcvRRT.js";
2
2
  import { t } from "./resolve-DdrNvBby.js";
3
3
  //#region src/components/_shared/overlay/content.ts
4
4
  var n = {
@@ -0,0 +1,7 @@
1
+ //#region src/components/_shared/control.ts
2
+ var e = (e) => ({
3
+ "data-invalid": e || void 0,
4
+ "aria-invalid": e || void 0
5
+ });
6
+ //#endregion
7
+ export { e as t };
@@ -1,6 +1,6 @@
1
- import { t as e } from "./class-names-q-UGOkHH.js";
1
+ import { t as e } from "./class-names-FlXcvRRT.js";
2
2
  import { t } from "./useLiquidPress-h1scrPtP.js";
3
- import { i as n } from "./dark-z_P5QwqI.js";
3
+ import { i as n } from "./dark-pONY3x93.js";
4
4
  import { computed as r, createElementBlock as i, createStaticVNode as a, defineComponent as o, mergeProps as s, openBlock as c, ref as l, unref as u, useAttrs as d, watchEffect as f } from "vue";
5
5
  //#region src/components/dark-mode-toggle/DarkModeToggle.vue?vue&type=script&setup=true&lang.ts
6
6
  var p = ["data-size", "data-press-armed"], m = /* @__PURE__ */ o({
@@ -63,8 +63,8 @@ function l(t) {
63
63
  //#region src/composables/dark/darkModeSyncScript.ts
64
64
  var u = "vueuse-color-scheme", d = "dark";
65
65
  function f(e = {}) {
66
- let t = e.storageKey ?? "vueuse-color-scheme";
67
- return `(function(){try{var m=localStorage.getItem(${JSON.stringify(t)});var d=m==="${d}"||((m===null||m==="auto")&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches);var e=document.documentElement;e.classList.toggle("${d}",d);e.style.colorScheme=d?"dark":"light";}catch(_){}})();`;
66
+ let t = e.storageKey ?? "vueuse-color-scheme", n = e.defaultDark ?? "os", r = (e) => e === "os" ? "window.matchMedia&&window.matchMedia(\"(prefers-color-scheme: dark)\").matches" : String(e), i = typeof n == "object" ? `(m==null&&${r(n.absent)})||(m==="auto"&&${r(n.auto)})` : `(m==null||m==="auto")&&${r(n)}`, a = e.queryOverride ? "var q=new URLSearchParams(location.search);if(q.has(\"dark\")){d=true;}else if(q.has(\"light\")){d=false;}" : "", o = e.normalize ? `localStorage.setItem(${JSON.stringify(t)},d?"dark":"light");` : "";
67
+ return `(function(){try{try{var m=localStorage.getItem(${JSON.stringify(t)})}catch(_){}var d=m==="${d}"||(${i});${a}var e=document.documentElement;e.classList.toggle("${d}",d);e.style.colorScheme=d?"dark":"light";${o}}catch(_){}})();`;
68
68
  }
69
69
  //#endregion
70
70
  export { c as i, f as n, l as r, u as t };
package/dist/dark.js CHANGED
@@ -1,2 +1,2 @@
1
- import { i as e, n as t, r as n, t as r } from "./dark-z_P5QwqI.js";
1
+ import { i as e, n as t, r as n, t as r } from "./dark-pONY3x93.js";
2
2
  export { r as DARK_MODE_STORAGE_KEY, t as darkModeSyncScript, n as installDarkModeSync, e as useGlobalDark };
@@ -1,4 +1,4 @@
1
- import { t as e } from "./class-names-q-UGOkHH.js";
1
+ import { t as e } from "./class-names-FlXcvRRT.js";
2
2
  import { t } from "./primitive-B2t2jdqM.js";
3
3
  import { t as n } from "./useResizeObserver-CdUlm2QZ.js";
4
4
  import { t as r } from "./_plugin-vue_export-helper-B3ysoDQm.js";
@@ -77,7 +77,7 @@ var O = {
77
77
  ] } },
78
78
  setup(t) {
79
79
  let n = t;
80
- return (t, r) => (_(), l("th", { class: g(w(e)("table-head text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0", n.class)) }, [b(t.$slots, "default")], 2));
80
+ return (t, r) => (_(), l("th", { class: g(w(e)("table-head text-left data-[align=center]:text-center data-[align=right]:text-right align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0", n.class)) }, [b(t.$slots, "default")], 2));
81
81
  }
82
82
  }), P = /* @__PURE__ */ p({
83
83
  __name: "TableHeader",
@@ -148,7 +148,7 @@ var O = {
148
148
  class: w(e)("skeleton", r.class)
149
149
  }), null, 16));
150
150
  }
151
- }), [["__scopeId", "data-v-78641cf9"]]);
151
+ }), [["__scopeId", "data-v-0d5ebb1f"]]);
152
152
  //#endregion
153
153
  //#region src/components/data-table/composables/useDataTableRowIdentity.ts
154
154
  function z(e, t) {
@@ -1,2 +1,2 @@
1
- import { t as e } from "./data-table-_RrOEdiw.js";
1
+ import { t as e } from "./data-table-Ba_uTfPc.js";
2
2
  export { e as DataTable };
@@ -1,4 +1,4 @@
1
- import { t as e } from "./class-names-q-UGOkHH.js";
1
+ import { t as e } from "./class-names-FlXcvRRT.js";
2
2
  import { computed as t, createElementBlock as n, createElementVNode as r, defineComponent as i, inject as a, normalizeClass as o, normalizeStyle as s, onBeforeUnmount as c, onMounted as l, openBlock as u, provide as d, readonly as f, ref as p, renderSlot as m, toDisplayString as h, toValue as g, unref as _, watch as v } from "vue";
3
3
  //#region src/components/deck/composables/useDeck.ts
4
4
  function y(e, n = {}) {
package/dist/deck.js CHANGED
@@ -1,2 +1,2 @@
1
- import { _ as e, a as t, c as n, d as r, f as i, g as a, h as o, i as s, l as c, m as l, n as u, o as d, p as f, r as p, s as m, t as h, u as g, v as _, y as v } from "./deck-Ci6YjB5e.js";
1
+ import { _ as e, a as t, c as n, d as r, f as i, g as a, h as o, i as s, l as c, m as l, n as u, o as d, p as f, r as p, s as m, t as h, u as g, v as _, y as v } from "./deck-Cm_VmyNL.js";
2
2
  export { _ as CONTROL_SELECTOR, n as DECK_SETTLED_ATTR, i as DECK_SWIPE_THRESHOLD_PX, h as DeckSlide, u as DeckStage, c as deckCaptureMode, a as handleDeckKey, p as provideDeck, s as provideSlideContext, m as sequenceWindow, v as useDeck, g as useDeckCapture, l as useDeckHashSync, e as useDeckKeyboard, o as useDeckSnap, t as useDeckStage, f as useDeckSwipe, r as useEdgeZones, d as useSlideContext };
@@ -1,4 +1,4 @@
1
- import { t as e } from "./class-names-q-UGOkHH.js";
1
+ import { t as e } from "./class-names-FlXcvRRT.js";
2
2
  import { createBlock as t, createElementBlock as n, defineComponent as r, normalizeClass as i, openBlock as a, renderSlot as o, unref as s, withCtx as c } from "vue";
3
3
  import { DialogClose as l, DialogDescription as u, DialogTitle as d, DialogTrigger as f } from "reka-ui";
4
4
  //#endregion
package/dist/dialog.js CHANGED
@@ -1,3 +1,3 @@
1
- import { n as e, t } from "./DialogContent-4hzLiaCQ.js";
2
- import { a as n, i as r, n as i, o as a, r as o, t as s } from "./dialog-CbRnTRtg.js";
1
+ import { n as e, t } from "./DialogContent-CwIBvou_.js";
2
+ import { a as n, i as r, n as i, o as a, r as o, t as s } from "./dialog-BZoFG0j8.js";
3
3
  export { e as Dialog, s as DialogClose, t as DialogContent, r as DialogDescription, o as DialogFooter, a as DialogHeader, n as DialogTitle, i as DialogTrigger };