@mkbabb/glass-ui 10.0.1 → 10.1.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 (44) hide show
  1. package/MIGRATION.md +25 -0
  2. package/dist/aurora.js +29 -29
  3. package/dist/{command-C-5xSEJ2.js → command-CTQCaHVA.js} +1 -1
  4. package/dist/command.js +1 -1
  5. package/dist/components/_shared/overlay/participation.d.ts +13 -1
  6. package/dist/components/configurator/Configurator.vue.d.ts +20 -0
  7. package/dist/components/configurator/ConfiguratorLayer.vue.d.ts +12 -2
  8. package/dist/components/configurator/index.d.ts +1 -1
  9. package/dist/components/configurator/styles.css +1 -1
  10. package/dist/components/dock/GlassDock.vue.d.ts +5 -5
  11. package/dist/components/dock/composables/dockContext.d.ts +16 -2
  12. package/dist/components/sheet/styles.css +1 -1
  13. package/dist/components/skeleton/Skeleton.vue.d.ts +6 -0
  14. package/dist/{configurator-DiwVN573.js → configurator-CPxIo3q2.js} +85 -71
  15. package/dist/configurator.js +1 -1
  16. package/dist/content-BhcJH1bI.js +22 -0
  17. package/dist/data-table-Cs93-uY7.js +511 -0
  18. package/dist/data-table.js +1 -1
  19. package/dist/dock.js +417 -409
  20. package/dist/easing.js +3 -3
  21. package/dist/glass-ui.css +1 -1
  22. package/dist/glass-ui.js +9 -9
  23. package/dist/index.d.ts +1 -1
  24. package/dist/labeled-field.js +1 -1
  25. package/dist/{menu-BnmCOa3y.js → menu-DN29N6KR.js} +6 -3
  26. package/dist/menu.js +1 -1
  27. package/dist/motion-core.js +11 -11
  28. package/dist/participation-Cs_UX_Dc.js +55 -0
  29. package/dist/{popover-DA87hFBx.js → popover-CJpvT2E6.js} +9 -4
  30. package/dist/popover.js +1 -1
  31. package/dist/{select-fy3vtArm.js → select-5QMeUAU6.js} +26 -24
  32. package/dist/select.js +1 -1
  33. package/dist/{sheet-BQJyER59.js → sheet-DmJxgAHc.js} +1 -1
  34. package/dist/sheet.js +1 -1
  35. package/dist/{slider-5ChjjWSR.js → slider-D1zkobtO.js} +1 -1
  36. package/dist/slider.js +1 -1
  37. package/dist/{tabs-rdRXKXxd.js → tabs-C0PYq3Tb.js} +1 -1
  38. package/dist/tabs.js +1 -1
  39. package/dist/{tooltip-DhTHhtJN.js → tooltip-D7j6TsE4.js} +3 -3
  40. package/dist/tooltip.js +1 -1
  41. package/package.json +1 -1
  42. package/dist/content-So3j6SOe.js +0 -18
  43. package/dist/data-table-Ba_uTfPc.js +0 -493
  44. package/dist/participation-Di4UHbzk.js +0 -42
@@ -4,28 +4,28 @@ import { t as n } from "./_plugin-vue_export-helper-B3ysoDQm.js";
4
4
  import { t as r } from "./label-CE03H1KL.js";
5
5
  import { t as i } from "./expandable-container-CZUj9BzY.js";
6
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";
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 ee, toDisplayString as w, toRaw as T, unref as E, useId as D, useModel as O, useSlots as k, withCtx as A, withModifiers as j } from "vue";
8
8
  import { ChevronDown as M, RotateCcw as N } from "@lucide/vue";
9
9
  //#region src/components/configurator/size.ts
10
10
  var P = t("configuratorSize"), F = P.KEY;
11
11
  function I(e) {
12
12
  P.provide(e);
13
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 = [
14
+ var L = P.use, R = [
15
+ "data-layout",
16
+ "data-aside-side",
17
+ "data-gallery"
18
+ ], z = [
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" }, U = { class: "flex flex-col" }, W = {
22
+ ], B = { class: "flex flex-col" }, V = {
23
23
  key: 1,
24
24
  class: "configurator-controls flex-1 min-h-0 overflow-visible"
25
- }, G = { class: "flex flex-col" }, K = {
25
+ }, H = { class: "flex flex-col" }, U = {
26
26
  key: 2,
27
27
  class: "configurator-footer shrink-0 border-t px-3 py-2"
28
- }, q = /* @__PURE__ */ m({
28
+ }, W = /* @__PURE__ */ m({
29
29
  __name: "Configurator",
30
30
  props: /*@__PURE__*/ h({
31
31
  presets: {},
@@ -36,6 +36,7 @@ var L = P.use, R = ["data-aside-side", "data-gallery"], z = {
36
36
  size: { default: "md" },
37
37
  asideSide: { default: "right" },
38
38
  galleryPlacement: { default: "aside" },
39
+ layout: { default: "attached" },
39
40
  asideWidth: {},
40
41
  expandable: {
41
42
  type: Boolean,
@@ -63,18 +64,18 @@ var L = P.use, R = ["data-aside-side", "data-gallery"], z = {
63
64
  "reset"
64
65
  ], ["update:expanded"]),
65
66
  setup(t, { emit: n }) {
66
- let r = t, f = k(t, "expanded");
67
+ let r = t, f = O(t, "expanded");
67
68
  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
+ let m = n, h = s(() => r.layout === "detached"), b = s(() => h.value ? "glass-floating rounded-card border border-border/60 overflow-hidden" : void 0), x = s(() => e("configurator-shell", !h.value && "glass-floating rounded-panel border border-border/60 overflow-hidden", r.class)), T = s(() => e("configurator", "grid", "min-h-0")), D = s(() => r.expandable ? i : "div"), k = s(() => r.expandable ? "configurator-expand-host" : "contents"), M = s(() => r.expandable ? {
69
70
  open: f.value,
70
71
  "onUpdate:open": (e) => {
71
72
  f.value = e;
72
73
  },
73
74
  expandLabel: r.expandLabel,
74
75
  collapseLabel: r.collapseLabel
75
- } : {}), M = s(() => r.expandable && f.value ? "top" : r.galleryPlacement), N = s(() => {
76
+ } : {}), N = s(() => r.expandable && f.value ? "top" : r.galleryPlacement), P = s(() => {
76
77
  let e = {
77
- "--radius-ctx": "var(--radius-panel)",
78
+ "--radius-ctx": h.value ? "var(--radius-card)" : "var(--radius-panel)",
78
79
  "--radius-inset": "var(--configurator-pad-inline)"
79
80
  };
80
81
  if (r.asideWidth != null) {
@@ -82,21 +83,26 @@ var L = P.use, R = ["data-aside-side", "data-gallery"], z = {
82
83
  e["--configurator-aside-min"] = t, e["--configurator-aside-max"] = n;
83
84
  }
84
85
  return e;
85
- }), P = s(() => r.scrollMode !== "never");
86
- return (n, r) => (y(), c(w(x.value), g(O.value, { class: E.value }), {
86
+ }), F = s(() => r.scrollMode !== "never");
87
+ return (n, r) => (y(), c(ee(D.value), g(M.value, { class: k.value }), {
87
88
  default: A(() => [d("div", {
88
- class: _(h.value),
89
- style: v(N.value)
89
+ class: _(x.value),
90
+ style: v(P.value)
90
91
  }, [d("section", {
91
92
  "data-slot": "configurator",
93
+ "data-layout": t.layout,
92
94
  "data-aside-side": t.asideSide,
93
- "data-gallery": M.value,
94
- class: _(b.value)
95
+ "data-gallery": N.value,
96
+ class: _(T.value)
95
97
  }, [
96
- n.$slots.presets || t.presets && t.presets.length > 0 ? (y(), u("div", z, [C(n.$slots, "presets", {
98
+ n.$slots.presets || t.presets && t.presets.length > 0 ? (y(), u("div", {
99
+ key: 0,
100
+ "data-gallery-dock": "",
101
+ class: _(E(e)("configurator-presets shrink-0 px-3", b.value))
102
+ }, [C(n.$slots, "presets", {
97
103
  presets: t.presets,
98
104
  activePreset: t.activePreset
99
- }, () => [p(D(a), {
105
+ }, () => [p(E(a), {
100
106
  axis: "x",
101
107
  class: "configurator-gallery-track flex scrollbar-hidden",
102
108
  role: "group",
@@ -108,13 +114,13 @@ var L = P.use, R = ["data-aside-side", "data-gallery"], z = {
108
114
  "data-preset-tile": "",
109
115
  "data-active": n.key === t.activePreset || void 0,
110
116
  "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")),
117
+ class: _(E(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
118
  onClick: j((e) => m("select-preset", n.key), ["stop"])
113
- }, T(n.label), 11, B))), 128))]),
119
+ }, w(n.label), 11, z))), 128))]),
114
120
  _: 1
115
- })])])) : l("", !0),
116
- d("div", V, [C(n.$slots, "stage")]),
117
- d("aside", H, [P.value ? (y(), c(D(a), {
121
+ })])], 2)) : l("", !0),
122
+ d("div", { class: _(E(e)("configurator-stage relative min-h-0 min-w-0 overflow-hidden", b.value)) }, [C(n.$slots, "stage")], 2),
123
+ d("aside", { class: _(E(e)("configurator-aside flex min-h-0 min-w-0 flex-col", b.value)) }, [F.value ? (y(), c(E(a), {
118
124
  key: 0,
119
125
  axis: "y",
120
126
  class: "configurator-controls flex-1 min-h-0 scrollbar-thin"
@@ -123,30 +129,37 @@ var L = P.use, R = ["data-aside-side", "data-gallery"], z = {
123
129
  layers: t.layers,
124
130
  activeLayer: t.activeLayer,
125
131
  selectLayer: (e) => m("select-layer", e)
126
- }, () => [d("div", U, [C(n.$slots, "default")])])]),
132
+ }, () => [d("div", B, [C(n.$slots, "default")])])]),
127
133
  _: 3
128
- })) : (y(), u("div", W, [C(n.$slots, "controls", {
134
+ })) : (y(), u("div", V, [C(n.$slots, "controls", {
129
135
  layers: t.layers,
130
136
  activeLayer: t.activeLayer,
131
137
  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)])
138
+ }, () => [d("div", H, [C(n.$slots, "default")])])])), n.$slots.footer ? (y(), u("div", U, [C(n.$slots, "footer", { reset: () => m("reset") })])) : l("", !0)], 2)
133
139
  ], 10, R)], 6)]),
134
140
  _: 3
135
141
  }, 16, ["class"]));
136
142
  }
137
- }), J = ["data-state"], Y = [
143
+ }), G = ["data-state"], K = {
144
+ "data-slot": "configurator-layer-header",
145
+ class: "configurator-layer-header"
146
+ }, q = [
138
147
  "aria-expanded",
139
148
  "aria-controls",
140
149
  "data-state"
141
- ], X = { class: "flex min-w-0 items-baseline gap-2" }, ee = { class: "configurator-section-label truncate" }, Z = {
150
+ ], J = { class: "configurator-layer-heading flex min-w-0 items-baseline gap-2" }, Y = { class: "configurator-section-label truncate" }, X = {
142
151
  key: 0,
143
152
  class: "truncate text-micro font-mono text-muted-foreground"
153
+ }, Z = {
154
+ key: 0,
155
+ "data-slot": "configurator-layer-actions",
156
+ class: "configurator-layer-actions flex items-center gap-1"
144
157
  }, Q = [
145
158
  "id",
146
159
  "aria-hidden",
147
160
  "inert",
148
161
  "data-state"
149
- ], $ = { class: "min-h-0 overflow-hidden" }, te = ["data-dividers"], ne = /*#__PURE__*/ n(/* @__PURE__ */ m({
162
+ ], te = { class: "min-h-0 overflow-hidden" }, ne = ["data-dividers"], re = /*#__PURE__*/ n(/* @__PURE__ */ m({
150
163
  __name: "ConfiguratorLayer",
151
164
  props: /*@__PURE__*/ h({
152
165
  label: {},
@@ -157,6 +170,7 @@ var L = P.use, R = ["data-aside-side", "data-gallery"], z = {
157
170
  default: !0
158
171
  },
159
172
  dividers: { type: Boolean },
173
+ actionsWhen: { default: "open" },
160
174
  class: { type: [
161
175
  Boolean,
162
176
  null,
@@ -180,42 +194,42 @@ var L = P.use, R = ["data-aside-side", "data-gallery"], z = {
180
194
  }),
181
195
  emits: ["update:open"],
182
196
  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;
197
+ let n = t, r = k(), i = O(t, "open");
198
+ i.value === void 0 && (i.value = n.defaultOpen);
199
+ let a = `configurator-layer-body-${D()}`, o = s(() => n.id ?? a);
200
+ function c() {
201
+ i.value = !i.value;
188
202
  }
189
- let c = s(() => r.value ? "open" : "closed");
190
- return (i, s) => (y(), u("div", {
203
+ let f = s(() => i.value ? "open" : "closed"), m = s(() => !!r.actions && (n.actionsWhen === "always" || !!i.value));
204
+ return (r, a) => (y(), u("div", {
191
205
  "data-slot": "configurator-layer",
192
- class: _(D(e)("configurator-layer", n.class)),
193
- "data-state": c.value
194
- }, [d("button", {
206
+ class: _(E(e)("configurator-layer", n.class)),
207
+ "data-state": f.value
208
+ }, [d("div", K, [d("button", {
195
209
  type: "button",
196
210
  "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",
211
+ class: _(E(e)("configurator-layer-trigger", "group w-full py-2", "tap-squish transition-control text-left focus-ring")),
212
+ "aria-expanded": i.value,
213
+ "aria-controls": o.value,
214
+ "data-state": f.value,
215
+ onClick: c
216
+ }, [d("div", J, [d("span", Y, w(t.label), 1), t.sub ? (y(), u("span", X, w(t.sub), 1)) : l("", !0)]), p(E(M), {
217
+ class: "configurator-layer-chevron h-4 w-4 shrink-0 text-muted-foreground group-data-[state=open]:rotate-180 transition-disclosure",
204
218
  "aria-hidden": "true"
205
- })], 10, Y), d("div", {
206
- id: a.value,
219
+ })], 10, q), m.value ? (y(), u("div", Z, [C(r.$slots, "actions", { open: i.value }, void 0, !0)])) : l("", !0)]), d("div", {
220
+ id: o.value,
207
221
  role: "region",
208
- "aria-hidden": !r.value,
209
- inert: !r.value || void 0,
210
- "data-state": c.value,
222
+ "aria-hidden": !i.value,
223
+ inert: !i.value || void 0,
224
+ "data-state": f.value,
211
225
  class: "configurator-layer-region grid motion-reduce:transition-none",
212
- style: v({ gridTemplateRows: r.value ? "1fr" : "0fr" })
213
- }, [d("div", $, [d("div", {
226
+ style: v({ gridTemplateRows: i.value ? "1fr" : "0fr" })
227
+ }, [d("div", te, [d("div", {
214
228
  "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));
229
+ class: _(E(e)("configurator-layer-body py-2 space-y-2", n.dividers && "[&>*+*]:border-t [&>*+*]:pt-2", n.bodyClass))
230
+ }, [C(r.$slots, "default", {}, void 0, !0)], 10, ne)])], 12, Q)], 10, G));
217
231
  }
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 = {
232
+ }), [["__scopeId", "data-v-2f76a595"]]), ie = ["data-size"], ae = { class: "flex items-baseline justify-between gap-3" }, oe = { class: "flex min-w-0 items-baseline gap-2" }, $ = {
219
233
  key: 0,
220
234
  class: "truncate text-small font-normal text-muted-foreground"
221
235
  }, se = {
@@ -243,22 +257,22 @@ var L = P.use, R = ["data-aside-side", "data-gallery"], z = {
243
257
  },
244
258
  emits: ["reset"],
245
259
  setup(t, { emit: n }) {
246
- let i = t, a = n, o = `${O()}-label`, c = L(), m = s(() => i.size ?? c?.value ?? void 0);
260
+ let i = t, a = n, o = `${D()}-label`, c = L(), m = s(() => i.size ?? c?.value ?? void 0);
247
261
  return (n, s) => (y(), u("div", {
248
262
  "data-slot": "configurator-row",
249
- class: _(D(e)("configurator-row flex flex-col gap-1.5 py-2", i.class)),
263
+ class: _(E(e)("configurator-row flex flex-col gap-1.5 py-2", i.class)),
250
264
  "data-size": m.value
251
265
  }, [
252
- d("div", ie, [d("div", ae, [
253
- p(D(r), {
266
+ d("div", ae, [d("div", oe, [
267
+ p(E(r), {
254
268
  id: o,
255
269
  class: "truncate"
256
270
  }, {
257
- default: A(() => [f(T(t.label), 1)]),
271
+ default: A(() => [f(w(t.label), 1)]),
258
272
  _: 1
259
273
  }),
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)
274
+ t.sub ? (y(), u("span", $, w(t.sub), 1)) : l("", !0),
275
+ t.name ? (y(), u("span", se, w(t.name), 1)) : l("", !0)
262
276
  ]), t.canReset ? (y(), u("button", {
263
277
  key: 0,
264
278
  type: "button",
@@ -266,19 +280,19 @@ var L = P.use, R = ["data-aside-side", "data-gallery"], z = {
266
280
  class: "tap-squish transition-control focus-ring inline-flex h-6 w-6 items-center justify-center rounded-pill text-muted-foreground/60",
267
281
  "aria-label": `Reset ${t.label}`,
268
282
  onClick: s[0] ||= (e) => a("reset")
269
- }, [p(D(N), {
283
+ }, [p(E(N), {
270
284
  class: "h-3 w-3",
271
285
  "aria-hidden": "true"
272
286
  })], 8, ce)) : l("", !0)]),
273
287
  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));
288
+ t.description ? (y(), u("p", ue, w(t.description), 1)) : l("", !0)
289
+ ], 10, ie));
276
290
  }
277
291
  }), [["__scopeId", "data-v-ed1debd3"]]);
278
292
  //#endregion
279
293
  //#region src/components/configurator/useConfiguratorState.ts
280
294
  function fe(e) {
281
- let t = E(e);
295
+ let t = T(e);
282
296
  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
297
  try {
284
298
  return structuredClone(t);
@@ -336,4 +350,4 @@ function me(e) {
336
350
  };
337
351
  }
338
352
  //#endregion
339
- export { F as a, q as i, de as n, I as o, ne as r, L as s, me as t };
353
+ export { F as a, W as i, de as n, I as o, re 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-DiwVN573.js";
1
+ import { a as e, i as t, n, o as r, r as i, s as a, t as o } from "./configurator-CPxIo3q2.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 };
@@ -0,0 +1,22 @@
1
+ import { t as e } from "./class-names-FlXcvRRT.js";
2
+ import { t } from "./resolve-DdrNvBby.js";
3
+ //#region src/components/_shared/overlay/content.ts
4
+ var n = {
5
+ hint: "tooltip",
6
+ menu: "menu",
7
+ panel: "overlay"
8
+ }, r = {
9
+ hint: "z-tooltip",
10
+ menu: "z-popover",
11
+ panel: "z-popover"
12
+ };
13
+ function i(i) {
14
+ return {
15
+ class: e(t("floating"), "glass-overlay-plate glass-reveal", r[i.role], i.class),
16
+ "data-slot": i.slot,
17
+ "data-reveal": n[i.role],
18
+ ...i.dock
19
+ };
20
+ }
21
+ //#endregion
22
+ export { i as t };