@mkbabb/glass-ui 9.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 (170) 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 +22 -13
  8. package/dist/{badge-owUOaaba.js → badge-BO6BC4G5.js} +1 -1
  9. package/dist/badge.js +1 -1
  10. package/dist/blob.js +2 -2
  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/chip.js +8 -3
  17. package/dist/{class-names-q-UGOkHH.js → class-names-FlXcvRRT.js} +65 -18
  18. package/dist/{collapsible-B7O6m-Ch.js → collapsible-DFzK29Oh.js} +5 -2
  19. package/dist/collapsible.js +1 -1
  20. package/dist/color.js +11 -11
  21. package/dist/{command-tEzAaVY_.js → command-C-5xSEJ2.js} +8 -8
  22. package/dist/command.js +1 -1
  23. package/dist/component-styles.css +1 -0
  24. package/dist/components/_shared/class-names.d.ts +10 -1
  25. package/dist/components/_shared/menu/menu.css +1 -1
  26. package/dist/components/_shared/overlay/index.d.ts +1 -0
  27. package/dist/components/_shared/overlay/shortcuts.d.ts +12 -0
  28. package/dist/components/aurora/composables/atoms.d.ts +22 -6
  29. package/dist/components/aurora/composables/runtime.d.ts +6 -4
  30. package/dist/components/aurora/constants/presets.d.ts +19 -1
  31. package/dist/components/blob/Blob.vue.d.ts +3 -3
  32. package/dist/components/card/Card.vue.d.ts +8 -2
  33. package/dist/components/chip/Chip.vue.d.ts +1 -7
  34. package/dist/components/chip/chipVariants.d.ts +1 -0
  35. package/dist/components/collapsible/Collapsible.vue.d.ts +1 -0
  36. package/dist/components/command/CommandDialog.vue.d.ts +1 -1
  37. package/dist/components/configurator/styles.css +1 -1
  38. package/dist/components/dark-mode-toggle/dark-mode-toggle.css +1 -1
  39. package/dist/components/deck/styles/capture.css +1 -1
  40. package/dist/components/dialog/styles.css +1 -1
  41. package/dist/components/dock/composables/dockCrossfadeContext.d.ts +0 -2
  42. package/dist/components/dock/composables/index.d.ts +1 -1
  43. package/dist/components/dock/composables/useDockHold.d.ts +16 -12
  44. package/dist/components/dock/styles/layers.css +1 -1
  45. package/dist/components/fourier-field/FourierField.vue.d.ts +1 -1
  46. package/dist/components/fourier-field/constants.d.ts +8 -7
  47. package/dist/components/fourier-field/index.d.ts +2 -2
  48. package/dist/components/labeled-field/LabeledSwitch.vue.d.ts +3 -1
  49. package/dist/components/labeled-field/types.d.ts +1 -1
  50. package/dist/components/menu/DropdownMenu.vue.d.ts +1 -1
  51. package/dist/components/metric/coalesce-metric.d.ts +6 -1
  52. package/dist/components/metric/styles.css +1 -1
  53. package/dist/components/popover/Popover.vue.d.ts +1 -1
  54. package/dist/components/scroll-progress-rim/styles.css +1 -1
  55. package/dist/components/sheet/styles.css +1 -1
  56. package/dist/components/slider/styles.css +1 -1
  57. package/dist/components/tabs/SegmentedTabs.vue.d.ts +25 -112
  58. package/dist/components/tabs/composables/useTabDragMorph.d.ts +1 -1
  59. package/dist/components/tabs/composables/useTabResponsive.d.ts +11 -11
  60. package/dist/components/tabs/index.d.ts +1 -1
  61. package/dist/components/tabs/styles/drag.css +1 -1
  62. package/dist/components/tabs/styles/segmented.css +1 -1
  63. package/dist/components/tabs/types.d.ts +85 -0
  64. package/dist/components/timeline/index.d.ts +2 -0
  65. package/dist/components/toast/Toast.vue.d.ts +2 -2
  66. package/dist/composables/color/index.d.ts +0 -15
  67. package/dist/composables/dark/darkModeSyncScript.d.ts +24 -1
  68. package/dist/composables/dom/useResolveTokenColor.d.ts +1 -1
  69. package/dist/composables/glass/index.d.ts +2 -0
  70. package/dist/composables/keyboard/useKeyboardShortcuts.d.ts +47 -1
  71. package/dist/composables/sidebar/types.d.ts +5 -1
  72. package/dist/{configurator-BHJymdrF.js → configurator-DiwVN573.js} +16 -16
  73. package/dist/configurator.js +1 -1
  74. package/dist/constellation.js +3 -3
  75. package/dist/{content-CWO-XL7o.js → content-So3j6SOe.js} +1 -1
  76. package/dist/dark-mode-toggle.js +2 -2
  77. package/dist/{dark-CLlmo7dD.js → dark-pONY3x93.js} +2 -2
  78. package/dist/dark.js +1 -1
  79. package/dist/{data-table-_RrOEdiw.js → data-table-Ba_uTfPc.js} +3 -3
  80. package/dist/data-table.js +1 -1
  81. package/dist/{deck-Ci6YjB5e.js → deck-Cm_VmyNL.js} +1 -1
  82. package/dist/deck.js +1 -1
  83. package/dist/{dialog-CbRnTRtg.js → dialog-BZoFG0j8.js} +1 -1
  84. package/dist/dialog.js +2 -2
  85. package/dist/dock.js +9 -13
  86. package/dist/easing.js +4 -4
  87. package/dist/{expandable-container-BY1hQXi4.js → expandable-container-CZUj9BzY.js} +9 -9
  88. package/dist/expandable-container.js +1 -1
  89. package/dist/fourier-field.js +53 -58
  90. package/dist/glass-ui.css +1 -1
  91. package/dist/glass-ui.js +27 -27
  92. package/dist/handmark.js +1 -1
  93. package/dist/index.d.ts +1 -1
  94. package/dist/infinite-scroll.js +16 -17
  95. package/dist/{input-Bls2A4Tt.js → input-eLZ_AU7l.js} +1 -1
  96. package/dist/input.js +1 -1
  97. package/dist/keyboard.js +64 -21
  98. package/dist/{label-BQEZhnK_.js → label-CE03H1KL.js} +2 -2
  99. package/dist/label.js +1 -1
  100. package/dist/labeled-field.js +8 -5
  101. package/dist/{menu-TDMNtZjG.js → menu-BnmCOa3y.js} +92 -89
  102. package/dist/menu.js +2 -2
  103. package/dist/metric.js +12 -7
  104. package/dist/{motion-D4uYE0UM.js → motion-BvV1_24p.js} +1 -1
  105. package/dist/motion-core.js +1 -1
  106. package/dist/{number-field-NFAwQ0HK.js → number-field-RP89046a.js} +2 -2
  107. package/dist/number-field.js +1 -1
  108. package/dist/pager-dots.js +3 -3
  109. package/dist/popover-DA87hFBx.js +184 -0
  110. package/dist/popover.js +1 -1
  111. package/dist/{progress-DF8dWZIX.js → progress-eVa-mc7J.js} +1 -1
  112. package/dist/progress.js +1 -1
  113. package/dist/{radio-group-BNV7PN1O.js → radio-group-B58Bz16F.js} +1 -1
  114. package/dist/radio-group.js +1 -1
  115. package/dist/{select-COox45Kv.js → select-fy3vtArm.js} +13 -13
  116. package/dist/select.js +1 -1
  117. package/dist/{separator-CN11t406.js → separator-D4EZM10u.js} +2 -2
  118. package/dist/separator.js +1 -1
  119. package/dist/{sheet-BEFvnO_u.js → sheet-BQJyER59.js} +120 -115
  120. package/dist/sheet.js +2 -2
  121. package/dist/shortcuts-DGGWNRNe.js +13 -0
  122. package/dist/sidebar.js +4 -4
  123. package/dist/{status-dot-BpnqOP5N.js → status-dot-W4LFiJps.js} +2 -2
  124. package/dist/status-dot.js +1 -1
  125. package/dist/styles/accessibility.css +1 -1
  126. package/dist/styles/animations.css +1 -1
  127. package/dist/styles/components.css +1 -1
  128. package/dist/styles/glass/a11y-fallback.css +1 -1
  129. package/dist/styles/glass/dissolve.css +1 -1
  130. package/dist/styles/glass/focus-veil.css +1 -1
  131. package/dist/styles/glass/ladder.css +1 -1
  132. package/dist/styles/glass/overlay-plate.css +1 -1
  133. package/dist/styles/glass/reveal.css +1 -1
  134. package/dist/styles/glass-specular-track.css +1 -1
  135. package/dist/styles/paper.css +1 -1
  136. package/dist/styles/scroll-choreography.css +1 -1
  137. package/dist/styles/scroll-chrome.css +1 -1
  138. package/dist/styles/scroll-driven.css +1 -1
  139. package/dist/styles/theme/literals.css +1 -1
  140. package/dist/styles/tokens/color-radius.css +1 -1
  141. package/dist/styles/tokens/dark-arm-glass.css +1 -1
  142. package/dist/styles/tokens/light-dark.css +1 -1
  143. package/dist/styles/tokens/offsets.css +1 -1
  144. package/dist/styles/tokens/scheme-motion.css +1 -1
  145. package/dist/styles/tokens/sizing.css +1 -1
  146. package/dist/styles/typography/semantic.css +1 -1
  147. package/dist/styles/typography/utilities.css +1 -1
  148. package/dist/styles/utilities/a11y-overrides.css +1 -1
  149. package/dist/styles/utilities/responsive.css +1 -1
  150. package/dist/styles/view-transition.css +1 -1
  151. package/dist/styles/viz-reveal.css +1 -1
  152. package/dist/surface.js +1 -1
  153. package/dist/{switch-lLkbREB-.js → switch-BYUZ6g9G.js} +1 -1
  154. package/dist/switch.js +1 -1
  155. package/dist/{tabs-DSJMd1Et.js → tabs-rdRXKXxd.js} +4 -3
  156. package/dist/tabs.js +1 -1
  157. package/dist/textarea.js +1 -1
  158. package/dist/timeline.js +44 -42
  159. package/dist/{toast-9c6Kp58L.js → toast-DVOwo6GB.js} +1 -1
  160. package/dist/toast.js +1 -1
  161. package/dist/{toggle-group-DUcmKnDw.js → toggle-group-CC5b3o1R.js} +1 -1
  162. package/dist/toggle-group.js +1 -1
  163. package/dist/{tooltip-BKk2qVDn.js → tooltip-DhTHhtJN.js} +1 -1
  164. package/dist/tooltip.js +1 -1
  165. package/dist/typewriter.js +1 -1
  166. package/dist/{useAccentTone-DFAh1osB.js → useAccentTone-DitmKfGL.js} +1 -1
  167. package/dist/{usePointerVelocityField-DsIf7yyq.js → usePointerVelocityField-Lx26_Yap.js} +1 -1
  168. package/package.json +4 -2
  169. package/dist/DialogContent-4hzLiaCQ.js +0 -152
  170. package/dist/popover-C04Rrdcz.js +0 -181
@@ -18,6 +18,17 @@ export interface RegisteredShortcut {
18
18
  handler: (e: KeyboardEvent) => void;
19
19
  options: ShortcutOptions;
20
20
  }
21
+ /**
22
+ * A registration the help UI can render: the element type of
23
+ * `useRegisteredShortcuts()`, which filters on the label the registrar supplied.
24
+ * Type-only narrowing — `options.label` is the field the runtime guarantees, so
25
+ * that is the field the type promises.
26
+ */
27
+ export interface LabeledShortcut extends RegisteredShortcut {
28
+ options: ShortcutOptions & {
29
+ label: string;
30
+ };
31
+ }
21
32
  export interface ShortcutCombo {
22
33
  key: string;
23
34
  ctrl: boolean;
@@ -29,5 +40,40 @@ export interface ShortcutCombo {
29
40
  export declare const isMac: boolean;
30
41
  export declare function formatComboParts(raw: string): string[];
31
42
  export declare function formatCombo(raw: string): string;
43
+ /**
44
+ * The spoken form of a combo, for an `aria-label` beside the `<kbd>` glyphs.
45
+ * `"mod+shift+z"` → "Control Shift Z" (or "Command Shift Z" on a Mac);
46
+ * `"delete"` → "Delete or Backspace".
47
+ */
48
+ export declare function formatComboLabel(raw: string): string;
32
49
  export declare function registerShortcut(combo: string, handler: (e: KeyboardEvent) => void, options?: ShortcutOptions): () => void;
33
- export declare function useRegisteredShortcuts(): ComputedRef<RegisteredShortcut[]>;
50
+ /**
51
+ * Quiet every shortcut registered SO FAR for non-Escape keys, and return the
52
+ * release. A modal owns the keyboard while it is open: the nineteen app-level
53
+ * accelerators behind it must not fire, and nothing but the modal's own bindings
54
+ * should answer a keystroke aimed at it.
55
+ *
56
+ * ORDERING — call this BEFORE the modal registers its own bindings. The barrier is
57
+ * `seq > topBarrier`, so anything registered after the call is still live and
58
+ * anything registered before is not; suspending afterwards would silence the modal
59
+ * along with the app. The in-house overlays wire it in that order.
60
+ *
61
+ * Content that stays mounted across a close (`force-mount`, `unmount-on-hide="false"`,
62
+ * a reopen inside the exit spring) keeps the registration seq it took at mount and
63
+ * so falls BELOW the next barrier. Register on open and release on close, as the
64
+ * in-house overlays do — ExpandableContainer registers its Escape inside its open
65
+ * watch, not at mount.
66
+ *
67
+ * Escape is exempt by design and keeps its reversed LIFO walk, so the top-most
68
+ * overlay is always dismissable. Within a layer the forward first-registered-wins
69
+ * order is untouched, so a late registrant cannot shadow a destructive binding.
70
+ *
71
+ * `useRegisteredShortcuts()` is NOT barrier-filtered, deliberately: it is the
72
+ * reference list of what the app answers to, not a live capability probe. A help
73
+ * overlay is itself a modal, and filtering would hand it an empty list.
74
+ *
75
+ * The returned release is idempotent and order-free — it splices out its own
76
+ * barrier by identity, so nested suspensions can resume in any order.
77
+ */
78
+ export declare function suspendShortcuts(): () => void;
79
+ export declare function useRegisteredShortcuts(): ComputedRef<LabeledShortcut[]>;
@@ -14,7 +14,11 @@ export interface SectionHierarchy {
14
14
  depth: number;
15
15
  /** ID of the root-level ancestor (self.id when depth === 0). */
16
16
  rootId: string;
17
- /** Direct parent ID (self.id for root nodes). */
17
+ /**
18
+ * Direct parent ID (null for root nodes). [2026-09-22 · O-32 §3.4: the index used
19
+ * to write self.id for roots and the root id at every depth; read `rootId` for the
20
+ * root-level ancestor.]
21
+ */
18
22
  parentId: string | null;
19
23
  /** Index within root-level nodes. */
20
24
  rootIndex: number;
@@ -1,8 +1,8 @@
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 "./createContext-BhkE9mLH.js";
3
3
  import { t as n } from "./_plugin-vue_export-helper-B3ysoDQm.js";
4
- import { t as r } from "./label-BQEZhnK_.js";
5
- import { t as i } from "./expandable-container-BY1hQXi4.js";
4
+ import { t as r } from "./label-CE03H1KL.js";
5
+ import { t as i } from "./expandable-container-CZUj9BzY.js";
6
6
  import { t as a } from "./fading-scroll-CTeW3KNS.js";
7
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
8
  import { ChevronDown as M, RotateCcw as N } from "@lucide/vue";
@@ -14,12 +14,12 @@ function I(e) {
14
14
  var L = P.use, R = ["data-aside-side", "data-gallery"], z = {
15
15
  key: 0,
16
16
  "data-gallery-dock": "",
17
- class: "configurator-presets shrink-0 px-3 py-2"
17
+ class: "configurator-presets shrink-0 px-3"
18
18
  }, B = [
19
19
  "data-active",
20
20
  "aria-pressed",
21
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 border-t" }, U = { class: "flex flex-col" }, W = {
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
23
  key: 1,
24
24
  class: "configurator-controls flex-1 min-h-0 overflow-visible"
25
25
  }, G = { class: "flex flex-col" }, K = {
@@ -65,7 +65,7 @@ var L = P.use, R = ["data-aside-side", "data-gallery"], z = {
65
65
  setup(t, { emit: n }) {
66
66
  let r = t, f = k(t, "expanded");
67
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 grid-cols-1", "grid-rows-[auto_minmax(var(--configurator-stage-min,18rem),auto)_minmax(0,1fr)]", "min-h-0")), x = s(() => r.expandable ? i : "div"), E = s(() => r.expandable ? "configurator-expand-host" : "contents"), O = s(() => r.expandable ? {
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
69
  open: f.value,
70
70
  "onUpdate:open": (e) => {
71
71
  f.value = e;
@@ -98,7 +98,7 @@ var L = P.use, R = ["data-aside-side", "data-gallery"], z = {
98
98
  activePreset: t.activePreset
99
99
  }, () => [p(D(a), {
100
100
  axis: "x",
101
- class: "configurator-gallery-track flex gap-2 scrollbar-hidden",
101
+ class: "configurator-gallery-track flex scrollbar-hidden",
102
102
  role: "group",
103
103
  "aria-label": "Presets"
104
104
  }, {
@@ -140,7 +140,7 @@ var L = P.use, R = ["data-aside-side", "data-gallery"], z = {
140
140
  "data-state"
141
141
  ], X = { class: "flex min-w-0 items-baseline gap-2" }, ee = { class: "configurator-section-label truncate" }, Z = {
142
142
  key: 0,
143
- class: "truncate text-micro font-mono text-muted-foreground/70"
143
+ class: "truncate text-micro font-mono text-muted-foreground"
144
144
  }, Q = [
145
145
  "id",
146
146
  "aria-hidden",
@@ -189,12 +189,12 @@ var L = P.use, R = ["data-aside-side", "data-gallery"], z = {
189
189
  let c = s(() => r.value ? "open" : "closed");
190
190
  return (i, s) => (y(), u("div", {
191
191
  "data-slot": "configurator-layer",
192
- class: _(D(e)("configurator-layer border", n.class)),
192
+ class: _(D(e)("configurator-layer", n.class)),
193
193
  "data-state": c.value
194
194
  }, [d("button", {
195
195
  type: "button",
196
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 hover:bg-foreground/5 focus-ring")),
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
198
  "aria-expanded": r.value,
199
199
  "aria-controls": a.value,
200
200
  "data-state": c.value,
@@ -215,15 +215,15 @@ var L = P.use, R = ["data-aside-side", "data-gallery"], z = {
215
215
  class: _(D(e)("configurator-layer-body py-2 space-y-2", n.dividers && "[&>*+*]:border-t [&>*+*]:pt-2", n.bodyClass))
216
216
  }, [C(i.$slots, "default", {}, void 0, !0)], 10, te)])], 12, Q)], 10, J));
217
217
  }
218
- }), [["__scopeId", "data-v-22ad90dd"]]), re = ["data-size"], ie = { class: "flex items-baseline justify-between gap-3" }, ae = { class: "flex min-w-0 items-baseline gap-2" }, oe = {
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
219
  key: 0,
220
220
  class: "truncate text-small font-normal text-muted-foreground"
221
221
  }, se = {
222
222
  key: 1,
223
- class: "truncate text-micro font-mono text-muted-foreground/70"
223
+ class: "truncate text-micro font-mono text-muted-foreground"
224
224
  }, ce = ["aria-label"], le = { class: "flex w-full min-w-0 items-center [&>*]:min-w-0 [&>*]:w-full [&>*]:flex-1" }, ue = {
225
225
  key: 0,
226
- class: "text-micro leading-snug text-muted-foreground/80"
226
+ class: "text-micro leading-snug text-muted-foreground"
227
227
  }, de = /*#__PURE__*/ n(/* @__PURE__ */ m({
228
228
  __name: "ConfiguratorRow",
229
229
  props: {
@@ -252,7 +252,7 @@ var L = P.use, R = ["data-aside-side", "data-gallery"], z = {
252
252
  d("div", ie, [d("div", ae, [
253
253
  p(D(r), {
254
254
  id: o,
255
- class: "truncate text-small font-medium text-foreground"
255
+ class: "truncate"
256
256
  }, {
257
257
  default: A(() => [f(T(t.label), 1)]),
258
258
  _: 1
@@ -263,7 +263,7 @@ var L = P.use, R = ["data-aside-side", "data-gallery"], z = {
263
263
  key: 0,
264
264
  type: "button",
265
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 hover:bg-foreground/5 hover:text-foreground",
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
267
  "aria-label": `Reset ${t.label}`,
268
268
  onClick: s[0] ||= (e) => a("reset")
269
269
  }, [p(D(N), {
@@ -274,7 +274,7 @@ var L = P.use, R = ["data-aside-side", "data-gallery"], z = {
274
274
  t.description ? (y(), u("p", ue, T(t.description), 1)) : l("", !0)
275
275
  ], 10, re));
276
276
  }
277
- }), [["__scopeId", "data-v-5d0a0dea"]]);
277
+ }), [["__scopeId", "data-v-ed1debd3"]]);
278
278
  //#endregion
279
279
  //#region src/components/configurator/useConfiguratorState.ts
280
280
  function fe(e) {
@@ -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-BHJymdrF.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,8 +1,8 @@
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
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
7
  import { c as o, s } from "./pointerFieldMappings-DXwlU5uj.js";
8
8
  import { a as c, t as l } from "./rendererStatus-BxUlBLVy.js";
@@ -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 = {
@@ -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-CLlmo7dD.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", n = e.defaultDark ?? "os", r = n === "os" ? "window.matchMedia&&window.matchMedia(\"(prefers-color-scheme: dark)\").matches" : String(n), i = e.queryOverride ? "var q=new URLSearchParams(location.search);if(q.has(\"dark\")){d=true;}else if(q.has(\"light\")){d=false;}" : "", a = e.normalize ? `localStorage.setItem(${JSON.stringify(t)},d?"dark":"light");` : "";
67
- return `(function(){try{var m=localStorage.getItem(${JSON.stringify(t)});var d=m==="${d}"||((m===null||m==="auto")&&${r});${i}${a}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-CLlmo7dD.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 };
package/dist/dock.js CHANGED
@@ -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 { n as t } from "./useReducedMotion-vCXA_vyM.js";
3
3
  import { t as n } from "./vSpecular-DMJo8pfD.js";
4
4
  import { t as r } from "./motionTempo-tscp92Nm.js";
@@ -10,7 +10,7 @@ import { a as l, c as u, i as d, l as f, n as p, o as m, r as h, s as g, u as _
10
10
  import { t as v } from "./useResizeObserver-CdUlm2QZ.js";
11
11
  import { n as y } from "./useResolveTokenColor-B2FfJnd9.js";
12
12
  import { t as b } from "./focus-Duf7EpUu.js";
13
- import { t as x } from "./DropdownMenuTrigger-8UZsBtZ8.js";
13
+ import { t as x } from "./DropdownMenuTrigger-CKRnhDSQ.js";
14
14
  import { t as S } from "./useSelectionGroup-zsEwitF6.js";
15
15
  import { t as C } from "./useDragMorph-B363RUbF.js";
16
16
  import { n as w } from "./useDockCtaReceive-BSSgD6mu.js";
@@ -562,13 +562,13 @@ function Re(e) {
562
562
  r = null;
563
563
  return;
564
564
  }
565
- if (!(!r && !t)) {
566
- if (!t && y(e.target)) {
567
- r = null;
568
- return;
569
- }
570
- e.stopPropagation(), e.preventDefault(), r = null;
565
+ if (!r && !t) return;
566
+ let n = r instanceof Element && r.closest(".dock-persistent") !== null;
567
+ if ((!t || n) && y(e.target)) {
568
+ r = null;
569
+ return;
571
570
  }
571
+ e.stopPropagation(), e.preventDefault(), r = null;
572
572
  }
573
573
  return V(() => {
574
574
  f(), u();
@@ -917,11 +917,7 @@ var nt = $e.use, rt = s(u, "[glass-ui:dock] <DockLayer> must be used inside <Doc
917
917
  function at(e) {
918
918
  rt.provide(e);
919
919
  }
920
- var ot = rt.use;
921
- rt.useOptional;
922
- //#endregion
923
- //#region src/components/dock/DockCrossfade.vue
924
- var st = /* @__PURE__ */ F({
920
+ var ot = rt.use, st = /* @__PURE__ */ F({
925
921
  __name: "DockCrossfade",
926
922
  props: {
927
923
  active: {},
package/dist/easing.js CHANGED
@@ -1,11 +1,11 @@
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 "./DotRing-Blh4Mc3Q.js";
3
3
  import { n } from "./useReducedMotion-vCXA_vyM.js";
4
- import { t as r } from "./button-yvGPb0Bx.js";
4
+ import { t as r } from "./button-BOFTUPyU.js";
5
5
  import { t as i } from "./useClipboard-D36OTaeT.js";
6
- import { a, c as o, l as s, r as c, s as l } from "./select-COox45Kv.js";
6
+ import { a, c as o, l as s, r as c, s as l } from "./select-fy3vtArm.js";
7
7
  import { t as u } from "./slider-5ChjjWSR.js";
8
- import { t as d } from "./tabs-DSJMd1Et.js";
8
+ import { t as d } from "./tabs-rdRXKXxd.js";
9
9
  import { Fragment as f, computed as p, createBlock as m, createCommentVNode as h, createElementBlock as g, createElementVNode as _, createTextVNode as v, createVNode as y, defineComponent as b, mergeModels as x, normalizeClass as S, onScopeDispose as C, onUnmounted as ee, openBlock as w, ref as T, renderList as E, toDisplayString as D, unref as O, useId as k, useModel as te, useTemplateRef as A, watch as ne, withCtx as j } from "vue";
10
10
  import { Check as re, Copy as ie, Play as ae, RotateCcw as oe, Square as se } from "@lucide/vue";
11
11
  import { parseTimingFunction as M } from "@mkbabb/value.js/css";
@@ -1,5 +1,5 @@
1
- import { t as e } from "./focus-Duf7EpUu.js";
2
- import { registerShortcut as t } from "./keyboard.js";
1
+ import { registerShortcut as e } from "./keyboard.js";
2
+ import { t } from "./focus-Duf7EpUu.js";
3
3
  import { Teleport as n, createBlock as r, createElementVNode as i, createVNode as a, defineComponent as o, mergeModels as s, mergeProps as c, nextTick as l, onUnmounted as u, openBlock as d, ref as f, renderSlot as p, unref as m, useModel as h, watch as g, withCtx as _ } from "vue";
4
4
  import { FocusScope as v } from "reka-ui";
5
5
  import { Maximize2 as y, Minimize2 as b } from "@lucide/vue";
@@ -52,12 +52,12 @@ var j = /* @__PURE__ */ o({
52
52
  e && !N ? N = k() : !e && N && (A(), N = !1);
53
53
  }
54
54
  function L() {
55
- (O()?.querySelector("[autofocus]") ?? O()?.querySelector("[data-mode=\"collapse\"]") ?? O()?.querySelector(e) ?? O())?.focus();
55
+ (O()?.querySelector("[autofocus]") ?? O()?.querySelector("[data-mode=\"collapse\"]") ?? O()?.querySelector(t) ?? O())?.focus();
56
56
  }
57
57
  async function R() {
58
58
  await l(), await l(), L();
59
59
  }
60
- let z = ["[data-mode=\"expand\"]", ...e.split(", ").map((e) => `.expandable-container__chrome:not([hidden]) ${e}`)].join(", ");
60
+ let z = ["[data-mode=\"expand\"]", ...t.split(", ").map((e) => `.expandable-container__chrome:not([hidden]) ${e}`)].join(", ");
61
61
  function B() {
62
62
  let e = F?.isConnected ? F : O()?.querySelector(z);
63
63
  F = null, e?.focus();
@@ -65,15 +65,15 @@ var j = /* @__PURE__ */ o({
65
65
  function V(e) {
66
66
  e.preventDefault();
67
67
  }
68
- return g(s, (e, n) => {
69
- if (I(e), e && !n) {
70
- let e = typeof document < "u" ? document.activeElement : null;
71
- F = e instanceof HTMLElement ? e : null, P = t("Escape", M, {
68
+ return g(s, (t, n) => {
69
+ if (I(t), t && !n) {
70
+ let t = typeof document < "u" ? document.activeElement : null;
71
+ F = t instanceof HTMLElement ? t : null, P = e("Escape", M, {
72
72
  label: "Exit fullscreen",
73
73
  group: "UI",
74
74
  allowInInput: !0
75
75
  }), R();
76
- } else !e && n && (P?.(), P = null, l(B));
76
+ } else !t && n && (P?.(), P = null, l(B));
77
77
  }, { immediate: !0 }), u(() => {
78
78
  P?.(), P = null, I(!1);
79
79
  }), (e, t) => (d(), r(n, {
@@ -1,2 +1,2 @@
1
- import { t as e } from "./expandable-container-BY1hQXi4.js";
1
+ import { t as e } from "./expandable-container-CZUj9BzY.js";
2
2
  export { e as ExpandableContainer };