@glimstone/vue 4.1.0 → 4.1.2

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 (46) hide show
  1. package/dist/Button.vue.d.ts +23 -2
  2. package/dist/Card.vue.d.ts +2 -0
  3. package/dist/Combobox.js +32 -31
  4. package/dist/Combobox.vue.d.ts +1 -1
  5. package/dist/ContextMenu.vue.d.ts +2 -0
  6. package/dist/CopyField.vue.d.ts +4 -2
  7. package/dist/FieldRow.vue.d.ts +32 -0
  8. package/dist/FieldRowGroup.vue.d.ts +19 -0
  9. package/dist/GlyphField.vue.d.ts +35 -0
  10. package/dist/GlyphTile.vue.d.ts +13 -0
  11. package/dist/IconButton.vue.d.ts +18 -0
  12. package/dist/IconTipButton.vue.d.ts +2 -0
  13. package/dist/ListRow.vue.d.ts +26 -0
  14. package/dist/ListSelect.vue.d.ts +4 -1
  15. package/dist/MenuChoice.vue.d.ts +2 -1
  16. package/dist/MenuSelect.vue.d.ts +4 -1
  17. package/dist/MenuSubmenu.vue.d.ts +2 -1
  18. package/dist/Meter.vue.d.ts +1 -1
  19. package/dist/PasswordField.vue.d.ts +7 -1
  20. package/dist/PathField.vue.d.ts +40 -0
  21. package/dist/RowMark.vue.d.ts +6 -0
  22. package/dist/Select.js +241 -218
  23. package/dist/Select.vue.d.ts +10 -4
  24. package/dist/Selector.vue.d.ts +48 -50
  25. package/dist/SelectorSegment.vue.d.ts +1 -1
  26. package/dist/SidebarRow.vue.d.ts +19 -2
  27. package/dist/SidebarRowLink.vue.d.ts +17 -0
  28. package/dist/Slider.js +19 -18
  29. package/dist/Slider.vue.d.ts +1 -1
  30. package/dist/SubCard.vue.d.ts +1 -1
  31. package/dist/Table.vue.d.ts +32 -0
  32. package/dist/TextArea.vue.d.ts +21 -0
  33. package/dist/TextField.vue.d.ts +21 -0
  34. package/dist/ToastViewport.vue.d.ts +2 -1
  35. package/dist/Toggle.vue.d.ts +2 -1
  36. package/dist/Tree.vue.d.ts +23 -0
  37. package/dist/Window.vue.d.ts +5 -1
  38. package/dist/fieldName-DBygJJfe.js +8 -0
  39. package/dist/fieldName.d.ts +5 -0
  40. package/dist/{glyphs-Cgknt-k1.js → glyphs-CYhs4mrY.js} +2 -2
  41. package/dist/glyphs.d.ts +1 -0
  42. package/dist/index.d.ts +15 -2
  43. package/dist/index.js +1238 -657
  44. package/dist/selectorItem.d.ts +5 -3
  45. package/dist/windowParts.d.ts +6 -1
  46. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -1,14 +1,10 @@
1
1
  import { n as e, r as t, t as n } from "./TipWrap-rNAEgvb0.js";
2
- import { a as r, c as i, d as a, f 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 } from "./glyphs-Cgknt-k1.js";
3
- import { Fragment as _, Teleport as v, computed as y, createBlock as b, createCommentVNode as x, createElementBlock as S, createElementVNode as C, createSlots as w, createTextVNode as T, createVNode as E, defineComponent as D, h as ee, mergeModels as O, mergeProps as k, normalizeClass as A, normalizeStyle as j, onBeforeUnmount as te, onMounted as M, onScopeDispose as N, onUnmounted as ne, openBlock as P, ref as F, renderList as I, renderSlot as L, resolveDynamicComponent as R, shallowRef as z, toDisplayString as B, unref as V, useAttrs as re, useId as ie, useModel as H, useSlots as ae, vModelDynamic as oe, watch as U, withCtx as W, withDirectives as se, withKeys as ce, withModifiers as G } from "vue";
4
- import { COLOR_NAMES_DE as le, COLOR_PICKER_TEXT as ue, COPIED_MS as de, DEFAULT_MOTION as fe, DEFAULT_SHAPE as pe, DESKTOP_QUERY as me, GLIMSTONE_VERSION as he, MARKS as ge, TOAST_MARKS as _e, WIDE_QUERY as ve, applyAccent as ye, applyMotion as be, applyRainbow as xe, applyShape as Se, attachNumberSteppers as Ce, badgeClassName as we, buttonView as Te, claimMenu as Ee, closeMenuOutside as De, colorPicker as Oe, copyText as ke, countSelector as Ae, floatColorPicker as je, focusFirstMenuRow as Me, focusMenuRow as Ne, focusedAsker as Pe, getLabelMode as Fe, hueVars as Ie, isMenuHead as K, keepReadmeFit as Le, labelModeChanged as Re, mailHref as ze, mediaMatches as Be, menuIsOpen as Ve, menuMove as He, menuRowView as Ue, meterView as We, nearestColorName as Ge, normalizeHex as Ke, offersMail as qe, openInBrowser as Je, pillClassName as Ye, placeMenu as Xe, placeSubmenu as Ze, progressView as Qe, rainbowState as $e, readmePartClass as et, readmeSoon as tt, readmeUnitClass as nt, returnFocus as rt, roveSelector as it, rovedIndex as at, runUpdateCheck as ot, segmentView as st, selectorAxis as ct, selectorFlex as lt, selectorTabId as ut, selectorTabId as dt, selectorView as ft, setLabelMode as pt, sidebarRowView as mt, stackWindow as ht, subscribeLabelMode as gt, subscribeMedia as _t, subscribeRainbow as vt, syncNumberSteppers as yt, takePageHue as bt, tidyMenu as xt, toggleSelection as St, trapDialogKeys as Ct, updateFace as wt, updateStage as Tt, versionLink as q, watchSelectorFit as Et, watchSelectorRows as Dt, windowFocusTarget as Ot, windowFoot as kt } from "@glimstone/core";
5
- // src/IconTipButton.vue?vue&type=script&setup=true&lang.ts
6
- var At = [
7
- "type",
8
- "disabled",
9
- "aria-label",
10
- "aria-describedby"
11
- ], J = /* @__PURE__ */ D({
2
+ import { a as r, c as i, d as a, f as o, h as s, i as c, l, m as u, n as d, o as f, p, r as m, s as h, t as g, u as _ } from "./glyphs-CYhs4mrY.js";
3
+ import { n as v, r as y, t as ee } from "./fieldName-DBygJJfe.js";
4
+ import { Fragment as b, Teleport as x, computed as S, createBlock as C, createCommentVNode as w, createElementBlock as T, createElementVNode as E, createSlots as D, createTextVNode as O, createVNode as k, defineComponent as A, h as te, inject as ne, mergeModels as j, mergeProps as M, normalizeClass as N, normalizeStyle as P, onBeforeUnmount as re, onMounted as F, onScopeDispose as I, onUnmounted as ie, openBlock as L, provide as ae, ref as R, renderList as z, renderSlot as B, resolveDynamicComponent as V, shallowReactive as oe, shallowRef as H, toDisplayString as U, unref as W, useAttrs as se, useId as ce, useModel as G, useSlots as le, vModelDynamic as ue, vModelText as de, watch as K, watchEffect as fe, withCtx as q, withDirectives as J, withKeys as pe, withModifiers as Y } from "vue";
5
+ import { COLOR_NAMES_DE as me, COLOR_PICKER_TEXT as he, COPIED_MS as ge, DEFAULT_MOTION as _e, DEFAULT_SHAPE as ve, DESKTOP_QUERY as ye, GLIMSTONE_VERSION as be, MARKS as xe, PATH_ROOM_PX as Se, TOAST_MARKS as Ce, WIDE_QUERY as we, applyAccent as Te, applyMotion as Ee, applyRainbow as De, applyShape as Oe, attachNumberSteppers as ke, badgeClassName as Ae, buttonView as je, claimMenu as Me, closeMenuOutside as Ne, colorPicker as Pe, copyText as Fe, countSelector as Ie, fieldWidthClass as Le, floatColorPicker as Re, focusFirstMenuRow as ze, focusMenuRow as Be, focusTreeRow as Ve, focusedAsker as He, getLabelMode as Ue, hueVars as We, isMenuHead as Ge, keepReadmeFit as Ke, labelModeChanged as qe, mailHref as Je, mediaMatches as Ye, menuIsOpen as Xe, menuMove as Ze, menuRowView as Qe, meterView as $e, narrowerThan as et, nearestColorName as tt, normalizeHex as nt, offersMail as rt, openInBrowser as it, pillClassName as at, placeMenu as ot, placeSubmenu as st, pressRowControl as ct, progressView as lt, rainbowState as ut, readmePartClass as dt, readmeSoon as ft, readmeUnitClass as pt, returnFocus as mt, roveSelector as ht, rovedIndex as gt, runUpdateCheck as _t, segmentView as vt, selectorAxis as yt, selectorFlex as bt, selectorTabId as xt, selectorTabId as St, selectorView as Ct, setLabelMode as wt, sidebarRowView as Tt, softBreaks as Et, stackWindow as Dt, subscribeLabelMode as Ot, subscribeMedia as kt, subscribeRainbow as At, syncNumberSteppers as jt, tableCellClass as Mt, takePageHue as Nt, textFieldClass as Pt, tidyMenu as Ft, toggleSelection as It, trapDialogKeys as Lt, treeRows as Rt, treeStep as zt, updateFace as Bt, updateStage as Vt, versionLink as X, watchSelectorFit as Ht, watchSelectorRows as Ut, windowFocusTarget as Wt, windowFoot as Gt } from "@glimstone/core";
6
+ // src/IconTipButton.vue
7
+ var Kt = /* @__PURE__ */ A({
12
8
  inheritAttrs: !1,
13
9
  __name: "IconTipButton",
14
10
  props: {
@@ -17,34 +13,49 @@ var At = [
17
13
  type: Boolean,
18
14
  default: !1
19
15
  },
16
+ href: {},
20
17
  type: { default: "button" }
21
18
  },
22
19
  setup(r) {
23
20
  let i = r, a = t(() => i.tip, () => i.disabled);
24
- return (t, i) => (P(), S(_, null, [E(V(n), {
21
+ return (t, i) => (L(), T(b, null, [k(W(n), {
25
22
  on: r.disabled,
26
- show: V(a).show,
27
- hide: V(a).hide
23
+ show: W(a).show,
24
+ hide: W(a).hide
28
25
  }, {
29
- default: W(() => [C("button", k(t.$attrs, {
30
- ref: (e) => V(a).trigger.value = e,
31
- type: r.type,
32
- disabled: r.disabled,
26
+ default: q(() => [(L(), C(V(r.href && !r.disabled ? "a" : "button"), M(t.$attrs, {
27
+ ref: (e) => W(a).trigger.value = e,
28
+ href: r.disabled ? void 0 : r.href,
29
+ type: r.href && !r.disabled ? void 0 : r.type,
30
+ disabled: r.href && !r.disabled ? void 0 : r.disabled,
33
31
  "aria-label": r.tip,
34
- "aria-describedby": V(a).describedBy.value,
35
- onMouseenter: i[0] ||= (...e) => V(a).show && V(a).show(...e),
36
- onMouseleave: i[1] ||= (...e) => V(a).hide && V(a).hide(...e),
37
- onFocus: i[2] ||= (...e) => V(a).showOnFocus && V(a).showOnFocus(...e),
38
- onBlur: i[3] ||= (...e) => V(a).hide && V(a).hide(...e)
39
- }), [L(t.$slots, "default")], 16, At)]),
32
+ "aria-describedby": W(a).describedBy.value,
33
+ onMouseenter: W(a).show,
34
+ onMouseleave: W(a).hide,
35
+ onFocus: W(a).showOnFocus,
36
+ onBlur: W(a).hide
37
+ }), {
38
+ default: q(() => [B(t.$slots, "default")]),
39
+ _: 3
40
+ }, 16, [
41
+ "href",
42
+ "type",
43
+ "disabled",
44
+ "aria-label",
45
+ "aria-describedby",
46
+ "onMouseenter",
47
+ "onMouseleave",
48
+ "onFocus",
49
+ "onBlur"
50
+ ]))]),
40
51
  _: 3
41
52
  }, 8, [
42
53
  "on",
43
54
  "show",
44
55
  "hide"
45
- ]), E(e, { state: V(a) }, null, 8, ["state"])], 64));
56
+ ]), k(e, { state: W(a) }, null, 8, ["state"])], 64));
46
57
  }
47
- }), jt = ["disabled"], Y = /* @__PURE__ */ D({
58
+ }), qt = ["disabled"], Jt = /* @__PURE__ */ A({
48
59
  __name: "Badge",
49
60
  props: {
50
61
  tone: { default: "neutral" },
@@ -68,10 +79,10 @@ var At = [
68
79
  }
69
80
  },
70
81
  setup(e) {
71
- let t = e, n = y(() => t.hueIndex !== void 0 && (t.tone === "heading" || t.tone === "active")), r = y(() => [
82
+ let t = e, n = S(() => t.hueIndex !== void 0 && (t.tone === "heading" || t.tone === "active")), r = S(() => [
72
83
  n.value && "glim-hue",
73
84
  n.value && t.size === "heading" && "glim-notch-hue",
74
- we({
85
+ Ae({
75
86
  tone: t.tone,
76
87
  size: t.size,
77
88
  shape: t.shape,
@@ -81,112 +92,107 @@ var At = [
81
92
  insetStart: t.insetStart,
82
93
  action: t.as !== "span"
83
94
  })
84
- ].filter(Boolean)), i = y(() => n.value ? Ie(t.hueIndex) : void 0);
85
- return (t, n) => e.as === "button" && e.tip !== void 0 ? (P(), b(J, {
95
+ ].filter(Boolean)), i = S(() => n.value ? We(t.hueIndex) : void 0);
96
+ return (t, n) => e.as === "button" && e.tip !== void 0 ? (L(), C(Kt, {
86
97
  key: 0,
87
98
  tip: e.tip,
88
99
  disabled: e.disabled,
89
- class: A(r.value),
90
- style: j(i.value)
100
+ class: N(r.value),
101
+ style: P(i.value)
91
102
  }, {
92
- default: W(() => [L(t.$slots, "default")]),
103
+ default: q(() => [B(t.$slots, "default")]),
93
104
  _: 3
94
105
  }, 8, [
95
106
  "tip",
96
107
  "disabled",
97
108
  "class",
98
109
  "style"
99
- ])) : e.as === "button" ? (P(), S("button", {
110
+ ])) : e.as === "button" ? (L(), T("button", {
100
111
  key: 1,
101
112
  type: "button",
102
113
  disabled: e.disabled,
103
- class: A(r.value),
104
- style: j(i.value)
105
- }, [L(t.$slots, "default")], 14, jt)) : e.as === "a" ? (P(), S("a", {
114
+ class: N(r.value),
115
+ style: P(i.value)
116
+ }, [B(t.$slots, "default")], 14, qt)) : e.as === "a" ? (L(), T("a", {
106
117
  key: 2,
107
- class: A(r.value),
108
- style: j(i.value)
109
- }, [L(t.$slots, "default")], 6)) : (P(), S("span", {
118
+ class: N(r.value),
119
+ style: P(i.value)
120
+ }, [B(t.$slots, "default")], 6)) : (L(), T("span", {
110
121
  key: 3,
111
- class: A(r.value),
112
- style: j(i.value)
113
- }, [L(t.$slots, "default")], 6));
122
+ class: N(r.value),
123
+ style: P(i.value)
124
+ }, [B(t.$slots, "default")], 6));
114
125
  }
115
- }), Mt = ["innerHTML"], Nt = /* @__PURE__ */ D({
126
+ }), Yt = ["innerHTML"], Xt = /* @__PURE__ */ A({
116
127
  __name: "BrandMark",
117
128
  props: { svg: {} },
118
129
  setup(e) {
119
- return (t, n) => (P(), S("span", {
130
+ return (t, n) => (L(), T("span", {
120
131
  class: "glim-brand-svg",
121
132
  "aria-hidden": "true",
122
133
  innerHTML: e.svg
123
- }, null, 8, Mt));
134
+ }, null, 8, Yt));
124
135
  }
125
136
  });
126
137
  // src/engines.ts
127
- function X(e) {
128
- let t = z(Fe(e));
129
- return N(gt(() => t.value = Fe(e))), y({
138
+ function Zt(e) {
139
+ let t = H(Ue(e));
140
+ return I(Ot(() => t.value = Ue(e))), S({
130
141
  get: () => t.value,
131
142
  set: (t) => {
132
- pt(e, t), Re();
143
+ wt(e, t), qe();
133
144
  }
134
145
  });
135
146
  }
136
- function Pt() {
137
- let e = z($e());
138
- return N(vt(() => e.value = $e())), y({
147
+ function Qt() {
148
+ let e = H(ut());
149
+ return I(At(() => e.value = ut())), S({
139
150
  get: () => e.value,
140
- set: (e) => xe(e)
151
+ set: (e) => De(e)
141
152
  });
142
153
  }
143
- function Ft(e) {
144
- return y(() => {
154
+ function $t(e) {
155
+ return S(() => {
145
156
  let t = e();
146
- return t === void 0 ? void 0 : Ie(t);
157
+ return t === void 0 ? void 0 : We(t);
147
158
  });
148
159
  }
149
- function It(e, t) {
150
- let n = z(t()), r = new MutationObserver(() => n.value = t());
160
+ function en(e, t) {
161
+ let n = H(t()), r = new MutationObserver(() => n.value = t());
151
162
  return r.observe(document.documentElement, {
152
163
  attributes: !0,
153
164
  attributeFilter: [e]
154
- }), N(() => r.disconnect()), n;
165
+ }), I(() => r.disconnect()), n;
155
166
  }
156
- function Lt() {
157
- let e = It("data-shape", () => document.documentElement.getAttribute("data-shape") ?? pe);
158
- return y({
167
+ function tn() {
168
+ let e = en("data-shape", () => document.documentElement.getAttribute("data-shape") ?? ve);
169
+ return S({
159
170
  get: () => e.value,
160
- set: Se
171
+ set: Oe
161
172
  });
162
173
  }
163
- function Rt() {
164
- let e = It("data-motion", () => document.documentElement.getAttribute("data-motion") ?? fe);
165
- return y({
174
+ function nn() {
175
+ let e = en("data-motion", () => document.documentElement.getAttribute("data-motion") ?? _e);
176
+ return S({
166
177
  get: () => e.value,
167
- set: be
178
+ set: Ee
168
179
  });
169
180
  }
170
- function zt() {
171
- let e = It("style", () => document.documentElement.style.getPropertyValue("--accent"));
172
- return y({
181
+ function rn() {
182
+ let e = en("style", () => document.documentElement.style.getPropertyValue("--accent"));
183
+ return S({
173
184
  get: () => e.value,
174
- set: (e) => ye(e || void 0)
185
+ set: (e) => Te(e || void 0)
175
186
  });
176
187
  }
177
188
  // src/Button.vue?vue&type=script&setup=true&lang.ts
178
- var Bt = [
179
- "type",
180
- "disabled",
181
- "aria-busy",
182
- "aria-describedby"
183
- ], Vt = {
189
+ var an = {
184
190
  key: 0,
185
191
  class: "glim-btn-glyph"
186
- }, Ht = {
192
+ }, on = {
187
193
  key: 0,
188
194
  class: "glim-spinner"
189
- }, Z = /* @__PURE__ */ D({
195
+ }, Z = /* @__PURE__ */ A({
190
196
  inheritAttrs: !1,
191
197
  __name: "Button",
192
198
  props: {
@@ -199,6 +205,7 @@ var Bt = [
199
205
  type: Boolean,
200
206
  default: !1
201
207
  },
208
+ href: {},
202
209
  type: { default: "button" },
203
210
  title: {},
204
211
  hueIndex: {},
@@ -210,56 +217,86 @@ var Bt = [
210
217
  keepLabel: {
211
218
  type: Boolean,
212
219
  default: !1
213
- }
220
+ },
221
+ compact: { type: Boolean },
222
+ compactBelow: {},
223
+ size: {}
214
224
  },
215
225
  setup(r, { expose: i }) {
216
- let a = r, o = X("buttons"), s = y(() => a.glyph ?? (a.labelKey ? f(a.labelKey) : void 0) ?? (a.variant === "chip" ? p : void 0)), c = y(() => Te({
226
+ let a = r, o = Zt("buttons"), s = H(!1);
227
+ fe((e) => {
228
+ if (a.compactBelow === void 0) return void (s.value = !1);
229
+ let t = et(a.compactBelow), n = () => s.value = Ye(t);
230
+ n(), e(kt(t, n));
231
+ });
232
+ let c = S(() => a.glyph ?? (a.labelKey ? u(a.labelKey) : void 0) ?? (a.variant === "chip" ? m : void 0)), l = S(() => je({
217
233
  mode: o.value,
218
234
  label: a.label,
219
- hasGlyph: !!s.value || a.busy,
235
+ hasGlyph: !!c.value || a.busy,
220
236
  tone: a.tone,
221
237
  variant: a.variant,
222
238
  disabled: a.disabled,
223
239
  keepLabel: a.keepLabel,
240
+ compact: a.compact || s.value,
241
+ size: a.size,
224
242
  title: a.title,
225
243
  hueIndex: a.hueIndex,
226
244
  stage: a.stage
227
- })), l = t(() => c.value.tip, () => a.disabled), u = z(null);
228
- function d(e) {
229
- u.value = e, l.trigger.value = u.value;
245
+ })), d = S(() => !!a.href && !a.disabled), f = t(() => l.value.tip, () => a.disabled), p = H(null);
246
+ function h(e) {
247
+ p.value = e, f.trigger.value = p.value;
230
248
  }
231
- function m(e) {
232
- c.value.pageHue && bt(e.currentTarget), l.show();
249
+ function g(e) {
250
+ l.value.pageHue && Nt(e.currentTarget), f.show();
233
251
  }
234
- function h(e) {
235
- c.value.pageHue && bt(e.currentTarget), l.showOnFocus();
252
+ function _(e) {
253
+ l.value.pageHue && Nt(e.currentTarget), f.showOnFocus();
236
254
  }
237
- return i({ el: u }), (t, i) => (P(), S(_, null, [E(V(n), {
238
- on: r.disabled && !!c.value.tip,
239
- show: V(l).show,
240
- hide: V(l).hide
255
+ return i({ el: p }), (t, i) => (L(), T(b, null, [k(W(n), {
256
+ on: r.disabled && !!l.value.tip,
257
+ show: W(f).show,
258
+ hide: W(f).hide
241
259
  }, {
242
- default: W(() => [C("button", k(t.$attrs, {
243
- ref: d,
244
- type: r.type,
245
- disabled: r.disabled,
260
+ default: q(() => [(L(), C(V(d.value ? "a" : "button"), M(t.$attrs, {
261
+ ref: h,
262
+ href: d.value ? r.href : void 0,
263
+ type: d.value ? void 0 : r.type,
264
+ disabled: d.value ? void 0 : r.disabled,
246
265
  "aria-busy": r.busy || void 0,
247
- "aria-describedby": V(l).describedBy.value,
248
- style: c.value.style,
249
- class: c.value.className,
250
- onMouseenter: m,
251
- onMouseleave: i[0] ||= (...e) => V(l).hide && V(l).hide(...e),
252
- onFocus: h,
253
- onBlur: i[1] ||= (...e) => V(l).hide && V(l).hide(...e)
254
- }), [c.value.showGlyph ? (P(), S("span", Vt, [r.busy ? (P(), S("span", Ht)) : (P(), b(R(s.value), { key: 1 }))])) : x("", !0), C("span", { class: A(c.value.labelClass) }, B(r.label), 3)], 16, Bt)]),
255
- _: 1
266
+ "aria-describedby": W(f).describedBy.value,
267
+ style: l.value.style,
268
+ class: l.value.className,
269
+ onMouseenter: g,
270
+ onMouseleave: W(f).hide,
271
+ onFocus: _,
272
+ onBlur: W(f).hide
273
+ }), {
274
+ default: q(() => [
275
+ B(t.$slots, "before"),
276
+ l.value.showGlyph ? (L(), T("span", an, [r.busy ? (L(), T("span", on)) : (L(), C(V(c.value), { key: 1 }))])) : w("", !0),
277
+ E("span", { class: N(l.value.labelClass) }, U(r.label), 3),
278
+ B(t.$slots, "after")
279
+ ]),
280
+ _: 3
281
+ }, 16, [
282
+ "href",
283
+ "type",
284
+ "disabled",
285
+ "aria-busy",
286
+ "aria-describedby",
287
+ "style",
288
+ "class",
289
+ "onMouseleave",
290
+ "onBlur"
291
+ ]))]),
292
+ _: 3
256
293
  }, 8, [
257
294
  "on",
258
295
  "show",
259
296
  "hide"
260
- ]), E(e, { state: V(l) }, null, 8, ["state"])], 64));
297
+ ]), k(e, { state: W(f) }, null, 8, ["state"])], 64));
261
298
  }
262
- }), Ut = ["aria-label", "aria-describedby"], Q = /* @__PURE__ */ D({
299
+ }), sn = ["aria-label", "aria-describedby"], Q = /* @__PURE__ */ A({
263
300
  __name: "InfoBubble",
264
301
  props: {
265
302
  tip: {},
@@ -270,49 +307,49 @@ var Bt = [
270
307
  },
271
308
  setup(n) {
272
309
  let r = n, i = t(() => r.tip);
273
- return (t, r) => (P(), S(_, null, [C("span", {
274
- ref: (e) => V(i).trigger.value = e,
310
+ return (t, r) => (L(), T(b, null, [E("span", {
311
+ ref: (e) => W(i).trigger.value = e,
275
312
  "aria-label": n.tip,
276
- "aria-describedby": V(i).describedBy.value,
313
+ "aria-describedby": W(i).describedBy.value,
277
314
  tabindex: "0",
278
- class: A(n.onAccent ? "glim-info-icon glim-info-icon--on-accent" : "glim-info-icon"),
279
- onMouseenter: r[0] ||= (...e) => V(i).show && V(i).show(...e),
280
- onMouseleave: r[1] ||= (...e) => V(i).hide && V(i).hide(...e),
281
- onFocus: r[2] ||= (...e) => V(i).showOnFocus && V(i).showOnFocus(...e),
282
- onBlur: r[3] ||= (...e) => V(i).hide && V(i).hide(...e),
283
- onClick: r[4] ||= G(() => {}, ["prevent"])
284
- }, [...r[5] ||= [C("svg", {
315
+ class: N(n.onAccent ? "glim-info-icon glim-info-icon--on-accent" : "glim-info-icon"),
316
+ onMouseenter: r[0] ||= (...e) => W(i).show && W(i).show(...e),
317
+ onMouseleave: r[1] ||= (...e) => W(i).hide && W(i).hide(...e),
318
+ onFocus: r[2] ||= (...e) => W(i).showOnFocus && W(i).showOnFocus(...e),
319
+ onBlur: r[3] ||= (...e) => W(i).hide && W(i).hide(...e),
320
+ onClick: r[4] ||= Y(() => {}, ["prevent"])
321
+ }, [...r[5] ||= [E("svg", {
285
322
  viewBox: "0 0 16 16",
286
323
  width: "15",
287
324
  height: "15",
288
325
  fill: "none",
289
326
  "aria-hidden": "true"
290
327
  }, [
291
- C("circle", {
328
+ E("circle", {
292
329
  cx: "8",
293
330
  cy: "8",
294
331
  r: "7",
295
332
  stroke: "currentColor",
296
333
  "stroke-width": "1.3"
297
334
  }),
298
- C("circle", {
335
+ E("circle", {
299
336
  cx: "8",
300
337
  cy: "4.6",
301
338
  r: "0.9",
302
339
  fill: "currentColor"
303
340
  }),
304
- C("path", {
341
+ E("path", {
305
342
  d: "M8 7v4.4",
306
343
  stroke: "currentColor",
307
344
  "stroke-width": "1.3",
308
345
  "stroke-linecap": "round"
309
346
  })
310
- ], -1)]], 42, Ut), E(e, { state: V(i) }, null, 8, ["state"])], 64));
347
+ ], -1)]], 42, sn), k(e, { state: W(i) }, null, 8, ["state"])], 64));
311
348
  }
312
- }), Wt = {
349
+ }), cn = {
313
350
  key: 0,
314
351
  class: "glim-panel-heading"
315
- }, Gt = /* @__PURE__ */ D({
352
+ }, ln = /* @__PURE__ */ A({
316
353
  __name: "Card",
317
354
  props: {
318
355
  title: {},
@@ -321,9 +358,9 @@ var Bt = [
321
358
  nested: { type: Boolean }
322
359
  },
323
360
  setup(e) {
324
- let t = e, n = y(() => t.hueIndex === void 0 ? void 0 : Ie(t.hueIndex));
325
- return (t, r) => (P(), S("div", {
326
- class: A([
361
+ let t = e, n = S(() => t.hueIndex === void 0 ? void 0 : We(t.hueIndex));
362
+ return (t, r) => (L(), T("div", {
363
+ class: N([
327
364
  "glim-panel",
328
365
  "glim-notch-card",
329
366
  {
@@ -331,31 +368,31 @@ var Bt = [
331
368
  "glim-hue": e.hueIndex !== void 0
332
369
  }
333
370
  ]),
334
- style: j(n.value)
335
- }, [e.title || e.hint ? (P(), S("h2", Wt, [E(Y, {
371
+ style: P(n.value)
372
+ }, [e.title || e.hint || t.$slots.title ? (L(), T("h2", cn, [k(Jt, {
336
373
  tone: "heading",
337
374
  size: "heading",
338
375
  wrap: "",
339
376
  "hue-index": e.hueIndex
340
377
  }, {
341
- default: W(() => [T(B(e.title) + " ", 1), e.hint ? (P(), b(Q, {
378
+ default: q(() => [B(t.$slots, "title", {}, () => [O(U(e.title), 1)]), e.hint ? (L(), C(Q, {
342
379
  key: 0,
343
380
  tip: e.hint,
344
381
  "on-accent": ""
345
- }, null, 8, ["tip"])) : x("", !0)]),
346
- _: 1
347
- }, 8, ["hue-index"])])) : x("", !0), L(t.$slots, "default")], 6));
382
+ }, null, 8, ["tip"])) : w("", !0)]),
383
+ _: 3
384
+ }, 8, ["hue-index"])])) : w("", !0), B(t.$slots, "default")], 6));
348
385
  }
349
- }), Kt = [
386
+ }), un = [
350
387
  "aria-checked",
351
388
  "aria-label",
352
389
  "disabled"
353
- ], qt = {
390
+ ], dn = {
354
391
  class: "glim-checkbox-box",
355
392
  "aria-hidden": "true"
356
- }, Jt = { key: 0 }, Yt = /* @__PURE__ */ D({
393
+ }, fn = { key: 0 }, pn = /* @__PURE__ */ A({
357
394
  __name: "Checkbox",
358
- props: /*@__PURE__*/ O({
395
+ props: /*@__PURE__*/ j({
359
396
  label: {},
360
397
  hideLabel: {
361
398
  type: Boolean,
@@ -378,111 +415,111 @@ var Bt = [
378
415
  }),
379
416
  emits: ["update:modelValue"],
380
417
  setup(e) {
381
- let t = e, n = y(() => t.hideLabel || t.slim), r = H(e, "modelValue");
382
- return (t, i) => (P(), S("button", {
418
+ let t = e, n = S(() => t.hideLabel || t.slim), r = G(e, "modelValue");
419
+ return (t, i) => (L(), T("button", {
383
420
  type: "button",
384
421
  role: "checkbox",
385
422
  "aria-checked": r.value,
386
423
  "aria-label": n.value ? e.label : void 0,
387
424
  disabled: e.disabled,
388
- class: A(["glim-checkbox", { "glim-checkbox--slim": e.slim }]),
425
+ class: N(["glim-checkbox", { "glim-checkbox--slim": e.slim }]),
389
426
  onClick: i[0] ||= (e) => r.value = !r.value
390
- }, [C("span", qt, [E(V(u))]), n.value ? x("", !0) : (P(), S("span", Jt, B(e.label), 1))], 10, Kt));
427
+ }, [E("span", dn, [k(W(d))]), n.value ? w("", !0) : (L(), T("span", fn, U(e.label), 1))], 10, un));
391
428
  }
392
- }), Xt = { class: "glim-picker-foot" }, Zt = {
429
+ }), mn = { class: "glim-picker-foot" }, hn = {
393
430
  key: 0,
394
431
  class: "glim-picker-name"
395
- }, Qt = ["value", "aria-label"], $t = { class: "glim-picker-actions" }, en = /* @__PURE__ */ D({
432
+ }, gn = ["value", "aria-label"], _n = { class: "glim-picker-actions" }, vn = /* @__PURE__ */ A({
396
433
  __name: "ColorPicker",
397
- props: /*@__PURE__*/ O({
434
+ props: /*@__PURE__*/ j({
398
435
  anchor: { default: null },
399
436
  names: {
400
437
  type: [Array, Boolean],
401
- default: () => le
438
+ default: () => me
402
439
  },
403
440
  text: {}
404
441
  }, {
405
442
  modelValue: { required: !0 },
406
443
  modelModifiers: {}
407
444
  }),
408
- emits: /*@__PURE__*/ O([
445
+ emits: /*@__PURE__*/ j([
409
446
  "apply",
410
447
  "input",
411
448
  "close"
412
449
  ], ["update:modelValue"]),
413
450
  setup(e, { emit: t }) {
414
- let n = e, r = H(e, "modelValue"), i = t, a = {
415
- ...ue,
451
+ let n = e, r = G(e, "modelValue"), i = t, a = {
452
+ ...he,
416
453
  ...n.text
417
- }, o = z(null), s = z(null), c = F(Ke(r.value) ?? "#000000"), l = F(c.value), d = y(() => n.names === !1 ? null : Ge(c.value, n.names)), f = Oe(c.value, (e) => {
454
+ }, o = H(null), s = H(null), c = R(nt(r.value) ?? "#000000"), l = R(c.value), u = S(() => n.names === !1 ? null : tt(c.value, n.names)), f = Pe(c.value, (e) => {
418
455
  c.value = e, l.value = e, i("input", e);
419
456
  }, { text: a }), p;
420
- M(() => {
421
- s.value.appendChild(f.el), n.anchor && o.value && (p = je(o.value, n.anchor, () => i("close")), f.focus());
422
- }), te(() => p?.()), U(r, (e) => {
423
- let t = Ke(e);
457
+ F(() => {
458
+ s.value.appendChild(f.el), n.anchor && o.value && (p = Re(o.value, n.anchor, () => i("close")), f.focus());
459
+ }), re(() => p?.()), K(r, (e) => {
460
+ let t = nt(e);
424
461
  t && (c.value = t, l.value = t, f.setValue(t));
425
462
  });
426
463
  function m(e) {
427
464
  l.value = e.target.value;
428
- let t = Ke(l.value);
465
+ let t = nt(l.value);
429
466
  t && (c.value = t, f.setValue(t), i("input", t));
430
467
  }
431
468
  function h() {
432
- r.value = c.value, i("apply", c.value, d.value), n.anchor && (n.anchor.focus(), i("close"));
469
+ r.value = c.value, i("apply", c.value, u.value), n.anchor && (n.anchor.focus(), i("close"));
433
470
  }
434
471
  function g(e) {
435
472
  e.key === "Enter" && !(e.target instanceof HTMLButtonElement) && (e.preventDefault(), h());
436
473
  }
437
- return (t, n) => (P(), b(v, {
474
+ return (t, n) => (L(), C(x, {
438
475
  to: "body",
439
476
  disabled: !e.anchor
440
- }, [C("div", {
477
+ }, [E("div", {
441
478
  ref_key: "panel",
442
479
  ref: o,
443
- class: A(["glim-picker-panel", e.anchor && "glim-picker-panel--float"]),
444
- style: j({ "--glim-picker-colour": c.value }),
480
+ class: N(["glim-picker-panel", e.anchor && "glim-picker-panel--float"]),
481
+ style: P({ "--glim-picker-colour": c.value }),
445
482
  onKeydown: g
446
483
  }, [
447
- C("div", {
484
+ E("div", {
448
485
  ref_key: "host",
449
486
  ref: s,
450
487
  style: { display: "contents" }
451
488
  }, null, 512),
452
- C("div", Xt, [
453
- n[0] ||= C("span", {
489
+ E("div", mn, [
490
+ n[0] ||= E("span", {
454
491
  class: "glim-picker-swatch",
455
492
  "aria-hidden": "true"
456
493
  }, null, -1),
457
- d.value === null ? x("", !0) : (P(), S("span", Zt, B(d.value), 1)),
458
- C("input", {
494
+ u.value === null ? w("", !0) : (L(), T("span", hn, U(u.value), 1)),
495
+ E("input", {
459
496
  class: "glim-picker-hex",
460
497
  value: l.value,
461
498
  maxlength: "7",
462
499
  spellcheck: "false",
463
500
  "aria-label": a.hex,
464
501
  onInput: m
465
- }, null, 40, Qt)
502
+ }, null, 40, gn)
466
503
  ]),
467
- C("div", $t, [E(Z, {
504
+ E("div", _n, [k(Z, {
468
505
  label: a.apply,
469
506
  "label-key": "apply",
470
- glyph: V(u),
507
+ glyph: W(d),
471
508
  tone: "accent",
472
509
  onClick: h
473
510
  }, null, 8, ["label", "glyph"])])
474
511
  ], 38)], 8, ["disabled"]));
475
512
  }
476
- }), tn = { class: "glim-modal-head" }, nn = {
513
+ }), yn = { class: "glim-modal-head" }, bn = {
477
514
  id: "confirmdialog-title",
478
515
  class: "glim-modal-title"
479
- }, rn = { class: "glim-modal-body" }, an = {
516
+ }, xn = { class: "glim-modal-body" }, Sn = {
480
517
  id: "confirmdialog-message",
481
518
  class: "glim-modal-text"
482
- }, on = {
519
+ }, Cn = {
483
520
  key: 0,
484
521
  class: "glim-modal-extra"
485
- }, sn = { class: "glim-modal-foot" }, cn = /* @__PURE__ */ D({
522
+ }, wn = { class: "glim-modal-foot" }, Tn = /* @__PURE__ */ A({
486
523
  __name: "ConfirmDialog",
487
524
  props: {
488
525
  title: {},
@@ -495,11 +532,11 @@ var Bt = [
495
532
  },
496
533
  emits: ["confirm", "cancel"],
497
534
  setup(e, { expose: t, emit: n }) {
498
- let r = n, i = z(null), a = z(null);
499
- return M(() => a.value?.el?.focus()), t({ card: i }), (t, n) => (P(), S("div", {
535
+ let r = n, i = H(null), a = H(null);
536
+ return F(() => a.value?.el?.focus()), t({ card: i }), (t, n) => (L(), T("div", {
500
537
  class: "glim-modal-backdrop",
501
- onClick: n[3] ||= G((e) => r("cancel"), ["self"])
502
- }, [C("div", {
538
+ onClick: n[3] ||= Y((e) => r("cancel"), ["self"])
539
+ }, [E("div", {
503
540
  ref_key: "card",
504
541
  ref: i,
505
542
  role: "dialog",
@@ -508,30 +545,30 @@ var Bt = [
508
545
  "aria-describedby": "confirmdialog-message",
509
546
  class: "glim-modal-card"
510
547
  }, [
511
- C("div", tn, [C("h2", nn, [E(Y, {
548
+ E("div", yn, [E("h2", bn, [k(Jt, {
512
549
  tone: "heading",
513
550
  size: "heading",
514
551
  wrap: ""
515
552
  }, {
516
- default: W(() => [T(B(e.title), 1)]),
553
+ default: q(() => [O(U(e.title), 1)]),
517
554
  _: 1
518
- })]), e.closeLabel === void 0 ? x("", !0) : (P(), b(Z, {
555
+ })]), e.closeLabel === void 0 ? w("", !0) : (L(), C(Z, {
519
556
  key: 0,
520
557
  label: e.closeLabel,
521
558
  "label-key": "common.close",
522
- glyph: V(p),
559
+ glyph: W(m),
523
560
  class: "glim-modal-close",
524
561
  onClick: n[0] ||= (e) => r("cancel")
525
562
  }, null, 8, ["label", "glyph"]))]),
526
- C("div", rn, [C("p", an, B(e.message), 1), t.$slots.extra ? (P(), S("div", on, [L(t.$slots, "extra")])) : x("", !0)]),
527
- C("div", sn, [E(Z, {
563
+ E("div", xn, [E("p", Sn, U(e.message), 1), t.$slots.extra ? (L(), T("div", Cn, [B(t.$slots, "extra")])) : w("", !0)]),
564
+ E("div", wn, [k(Z, {
528
565
  ref_key: "cancel",
529
566
  ref: a,
530
567
  label: e.cancelLabel,
531
568
  "label-key": "common.cancel",
532
- glyph: V(h),
569
+ glyph: W(g),
533
570
  onClick: n[1] ||= (e) => r("cancel")
534
- }, null, 8, ["label", "glyph"]), E(Z, {
571
+ }, null, 8, ["label", "glyph"]), k(Z, {
535
572
  label: e.confirmLabel,
536
573
  "label-key": e.confirmLabelKey ?? null,
537
574
  glyph: e.confirmGlyph,
@@ -543,20 +580,20 @@ var Bt = [
543
580
  ])])
544
581
  ], 512)]));
545
582
  }
546
- }), ln = { class: "glim-kbd" }, un = /* @__PURE__ */ D({
583
+ }), En = { class: "glim-kbd" }, Dn = /* @__PURE__ */ A({
547
584
  __name: "Kbd",
548
585
  setup(e) {
549
- return (e, t) => (P(), S("kbd", ln, [L(e.$slots, "default")]));
586
+ return (e, t) => (L(), T("kbd", En, [B(e.$slots, "default")]));
550
587
  }
551
- }), dn = {
588
+ }), On = {
552
589
  key: 0,
553
590
  class: "glim-menu-sep",
554
591
  role: "separator"
555
- }, fn = {
592
+ }, kn = {
556
593
  key: 1,
557
594
  class: "glim-menu-head",
558
595
  role: "presentation"
559
- }, pn = [
596
+ }, An = [
560
597
  "role",
561
598
  "aria-checked",
562
599
  "aria-haspopup",
@@ -564,26 +601,26 @@ var Bt = [
564
601
  "disabled",
565
602
  "data-row",
566
603
  "onClick"
567
- ], mn = {
604
+ ], jn = {
568
605
  key: 0,
569
606
  class: "glim-checkbox-box",
570
607
  "aria-hidden": "true"
571
- }, hn = {
608
+ }, Mn = {
572
609
  key: 2,
573
610
  class: "glim-menu-glyph",
574
611
  "aria-hidden": "true"
575
- }, gn = { class: "glim-menu-label" }, _n = {
612
+ }, Nn = { class: "glim-menu-label" }, Pn = {
576
613
  key: 3,
577
614
  class: "glim-menu-end glim-menu-caret",
578
615
  "aria-hidden": "true"
579
- }, vn = {
616
+ }, Fn = {
580
617
  key: 4,
581
618
  class: "glim-menu-end glim-menu-tick",
582
619
  "aria-hidden": "true"
583
- }, yn = {
620
+ }, In = {
584
621
  key: 6,
585
622
  class: "glim-menu-end glim-menu-count glim-num"
586
- }, bn = /* @__PURE__ */ D({
623
+ }, Ln = /* @__PURE__ */ A({
587
624
  __name: "MenuRows",
588
625
  props: {
589
626
  entries: {},
@@ -591,30 +628,30 @@ var Bt = [
591
628
  },
592
629
  emits: ["pick"],
593
630
  setup(e, { emit: t }) {
594
- let n = e, a = t, o = y(() => n.entries.map((e) => e === "-" ? { kind: "sep" } : K(e) ? {
631
+ let n = e, i = t, a = S(() => n.entries.map((e) => e === "-" ? { kind: "sep" } : Ge(e) ? {
595
632
  kind: "head",
596
633
  head: e
597
634
  } : {
598
635
  kind: "item",
599
636
  item: e,
600
- view: Ue(e)
637
+ view: Qe(e)
601
638
  }));
602
- return (t, n) => (P(!0), S(_, null, I(o.value, (t, n) => (P(), S(_, { key: n }, [t.kind === "sep" ? (P(), S("div", dn)) : t.kind === "head" ? (P(), S("div", fn, [C("span", null, B(t.head.head), 1), t.head.edit ? (P(), b(J, {
639
+ return (t, n) => (L(!0), T(b, null, z(a.value, (t, n) => (L(), T(b, { key: n }, [t.kind === "sep" ? (L(), T("div", On)) : t.kind === "head" ? (L(), T("div", kn, [E("span", null, U(t.head.head), 1), t.head.edit ? (L(), C(Kt, {
603
640
  key: 0,
604
641
  tip: t.head.edit.tip,
605
642
  role: "menuitem",
606
643
  tabindex: "-1",
607
644
  class: "glim-menu-head-edit",
608
645
  "data-row": n,
609
- onClick: (e) => a("pick", n)
646
+ onClick: (e) => i("pick", n)
610
647
  }, {
611
- default: W(() => [(P(), b(R(t.head.edit.glyph ?? V(i))))]),
648
+ default: q(() => [(L(), C(V(t.head.edit.glyph ?? W(l))))]),
612
649
  _: 2
613
650
  }, 1032, [
614
651
  "tip",
615
652
  "data-row",
616
653
  "onClick"
617
- ])) : x("", !0)])) : (P(), S("button", {
654
+ ])) : w("", !0)])) : (L(), T("button", {
618
655
  key: 2,
619
656
  type: "button",
620
657
  role: t.view.role,
@@ -623,27 +660,27 @@ var Bt = [
623
660
  "aria-haspopup": t.item.sub ? "menu" : void 0,
624
661
  "aria-expanded": t.item.sub ? e.openAt === n : void 0,
625
662
  disabled: t.item.disabled,
626
- class: A(["glim-menu-item", { "glim-menu-item--current": t.view.current }]),
663
+ class: N(["glim-menu-item", { "glim-menu-item--current": t.view.current }]),
627
664
  "data-row": n,
628
- onClick: (e) => a("pick", n)
665
+ onClick: (e) => i("pick", n)
629
666
  }, [
630
- t.view.lead === "box" ? (P(), S("span", mn, [E(V(u))])) : t.view.lead === "dot" ? (P(), S("span", {
667
+ t.view.lead === "box" ? (L(), T("span", jn, [k(W(d))])) : t.view.lead === "dot" ? (L(), T("span", {
631
668
  key: 1,
632
669
  class: "glim-menu-dot",
633
- style: j({ backgroundColor: t.item.color }),
670
+ style: P({ backgroundColor: t.item.color }),
634
671
  "aria-hidden": "true"
635
- }, null, 4)) : (P(), S("span", hn, [t.view.lead === "glyph" ? (P(), b(R(t.item.glyph), { key: 0 })) : x("", !0)])),
636
- C("span", gn, B(t.item.label), 1),
637
- t.view.end === "submenu" ? (P(), S("span", _n, [E(V(r))])) : t.view.end === "tick" ? (P(), S("span", vn, [E(V(u))])) : t.view.end === "shortcut" ? (P(), b(un, {
672
+ }, null, 4)) : (L(), T("span", Mn, [t.view.lead === "glyph" ? (L(), C(V(t.item.glyph), { key: 0 })) : w("", !0)])),
673
+ E("span", Nn, U(t.item.label), 1),
674
+ t.view.end === "submenu" ? (L(), T("span", Pn, [k(W(r))])) : t.view.end === "tick" ? (L(), T("span", Fn, [k(W(d))])) : t.view.end === "shortcut" ? (L(), C(Dn, {
638
675
  key: 5,
639
676
  class: "glim-menu-end"
640
677
  }, {
641
- default: W(() => [T(B(t.item.shortcut), 1)]),
678
+ default: q(() => [O(U(t.item.shortcut), 1)]),
642
679
  _: 2
643
- }, 1024)) : t.view.end === "count" ? (P(), S("span", yn, B(t.item.count), 1)) : x("", !0)
644
- ], 10, pn))], 64))), 128));
680
+ }, 1024)) : t.view.end === "count" ? (L(), T("span", In, U(t.item.count), 1)) : w("", !0)
681
+ ], 10, An))], 64))), 128));
645
682
  }
646
- }), xn = ["aria-label"], Sn = ["aria-label"], Cn = /* @__PURE__ */ D({
683
+ }), Rn = ["id", "aria-label"], zn = ["id", "aria-label"], Bn = /* @__PURE__ */ A({
647
684
  __name: "ContextMenu",
648
685
  props: {
649
686
  x: {},
@@ -654,128 +691,132 @@ var Bt = [
654
691
  default: !1
655
692
  },
656
693
  label: { default: void 0 },
694
+ id: {},
657
695
  opener: { default: null }
658
696
  },
659
697
  emits: ["close", "step"],
660
698
  setup(e, { emit: t }) {
661
- let n = e, r = t, i = z(null), a = z(null), o = Pe(), s = F({
699
+ let n = e, r = t, i = H(null), a = H(null), o = He(), s = R({
662
700
  left: n.x,
663
701
  top: n.y
664
- }), c = z(null), l = F(null), u = y(() => xt(n.items)), d = y(() => {
702
+ }), c = H(null), l = R(null), u = S(() => Ft(n.items)), d = S(() => {
665
703
  let e = c.value ? u.value[c.value.at] : void 0;
666
- return e && e !== "-" && !K(e) && e.sub ? e : null;
667
- }), f = y(() => d.value?.sub ? xt(d.value.sub) : null), p = () => ({
704
+ return e && e !== "-" && !Ge(e) && e.sub ? e : null;
705
+ }), f = S(() => d.value?.sub ? Ft(d.value.sub) : null), p = () => ({
668
706
  width: innerWidth,
669
707
  height: innerHeight
670
708
  });
671
709
  function m(e) {
672
- r("close"), e && rt(n.opener ?? o);
710
+ r("close"), e && mt(n.opener ?? o);
673
711
  }
674
712
  function h() {
675
713
  let e = i.value;
676
- e && (s.value = Xe(n.x, n.y, {
714
+ e && (s.value = ot(n.x, n.y, {
677
715
  width: e.offsetWidth,
678
716
  height: e.offsetHeight
679
717
  }, p(), n.above));
680
718
  }
681
- U(() => [
719
+ K(() => [
682
720
  n.x,
683
721
  n.y,
684
722
  n.above
685
723
  ], h, { flush: "post" });
686
724
  let g, _;
687
- M(() => {
688
- h(), g = Ee(m), _ = De(() => [
725
+ F(() => {
726
+ h(), g = Me(m), _ = Ne(() => [
689
727
  i.value,
690
728
  a.value,
691
729
  n.opener
692
- ], () => m(!1)), i.value && Me(i.value);
693
- }), ne(() => {
730
+ ], () => m(!1)), i.value && ze(i.value);
731
+ }), ie(() => {
694
732
  g?.(), _?.();
695
- }), U(c, (e) => {
733
+ }), K(c, (e) => {
696
734
  l.value = null;
697
735
  let t = e && i.value?.querySelector(`[data-row="${e.at}"]`), n = a.value;
698
736
  if (!e || !t || !n) return;
699
737
  let r = getComputedStyle(i.value).direction === "rtl";
700
- l.value = Ze(t.getBoundingClientRect(), {
738
+ l.value = st(t.getBoundingClientRect(), {
701
739
  width: n.offsetWidth,
702
740
  height: n.offsetHeight
703
- }, p(), r), e.focus && Me(n);
741
+ }, p(), r), e.focus && ze(n);
704
742
  }, { flush: "post" });
705
- function w(e, t) {
743
+ function v(e, t) {
706
744
  let n = e[t];
707
- n !== "-" && (K(n) ? (m(!0), n.edit?.onSelect()) : n.sub && e === u.value ? c.value = {
745
+ n !== "-" && (Ge(n) ? (m(!0), n.edit?.onSelect()) : n.sub && e === u.value ? c.value = {
708
746
  at: t,
709
747
  focus: !0
710
- } : (Ue(n).staysOpen || m(!0), n.onSelect?.()));
748
+ } : (Qe(n).staysOpen || m(!0), n.onSelect?.()));
711
749
  }
712
- function T(e, t) {
750
+ function y(e, t) {
713
751
  if (e.key === "Tab") return m(!1);
714
- let n = e.currentTarget, a = He(e.key, getComputedStyle(n).direction === "rtl");
752
+ let n = e.currentTarget, a = Ze(e.key, getComputedStyle(n).direction === "rtl");
715
753
  if (!a) return;
716
- if (e.preventDefault(), a !== "in" && a !== "out") return Ne(n, a);
754
+ if (e.preventDefault(), a !== "in" && a !== "out") return Be(n, a);
717
755
  if (t) {
718
756
  a === "out" && c.value && (i.value?.querySelector(`[data-row="${c.value.at}"]`)?.focus(), c.value = null);
719
757
  return;
720
758
  }
721
759
  let o = Number(document.activeElement?.dataset.row), s = u.value[o];
722
- a === "in" && s && s !== "-" && !K(s) && s.sub && !s.disabled ? c.value = {
760
+ a === "in" && s && s !== "-" && !Ge(s) && s.sub && !s.disabled ? c.value = {
723
761
  at: o,
724
762
  focus: !0
725
763
  } : r("step", a === "in" ? 1 : -1);
726
764
  }
727
- function D(e) {
765
+ function ee(e) {
728
766
  let t = e.target.closest("[data-row]");
729
767
  if (!t) return;
730
- let n = Number(t.dataset.row), r = u.value[n], i = r !== "-" && !K(r) && !!r.sub && !r.disabled;
768
+ let n = Number(t.dataset.row), r = u.value[n], i = r !== "-" && !Ge(r) && !!r.sub && !r.disabled;
731
769
  i && c.value?.at !== n ? c.value = {
732
770
  at: n,
733
771
  focus: !1
734
772
  } : !i && c.value && (c.value = null);
735
773
  }
736
- return (t, n) => (P(), b(v, { to: "body" }, [C("div", {
774
+ return (t, n) => (L(), C(x, { to: "body" }, [E("div", {
775
+ id: e.id,
737
776
  ref_key: "menu",
738
777
  ref: i,
739
778
  role: "menu",
740
779
  "aria-label": e.label,
741
780
  class: "glim-menu",
742
- style: j({
781
+ style: P({
743
782
  left: `${s.value.left}px`,
744
783
  top: `${s.value.top}px`
745
784
  }),
746
- onKeydown: n[1] ||= (e) => T(e, !1),
747
- onMouseover: D,
748
- onContextmenu: n[2] ||= G(() => {}, ["prevent"])
749
- }, [E(bn, {
785
+ onKeydown: n[1] ||= (e) => y(e, !1),
786
+ onMouseover: ee,
787
+ onContextmenu: n[2] ||= Y(() => {}, ["prevent"])
788
+ }, [k(Ln, {
750
789
  entries: u.value,
751
790
  "open-at": c.value?.at,
752
- onPick: n[0] ||= (e) => w(u.value, e)
753
- }, null, 8, ["entries", "open-at"])], 44, xn), f.value ? (P(), S("div", {
791
+ onPick: n[0] ||= (e) => v(u.value, e)
792
+ }, null, 8, ["entries", "open-at"])], 44, Rn), f.value ? (L(), T("div", {
754
793
  key: 0,
794
+ id: d.value?.subId,
755
795
  ref_key: "subMenu",
756
796
  ref: a,
757
797
  role: "menu",
758
798
  "aria-label": d.value?.label,
759
799
  class: "glim-menu",
760
- style: j({
800
+ style: P({
761
801
  left: `${l.value?.left ?? 0}px`,
762
802
  top: `${l.value?.top ?? 0}px`
763
803
  }),
764
- onKeydown: n[4] ||= (e) => T(e, !0),
765
- onContextmenu: n[5] ||= G(() => {}, ["prevent"])
766
- }, [E(bn, {
804
+ onKeydown: n[4] ||= (e) => y(e, !0),
805
+ onContextmenu: n[5] ||= Y(() => {}, ["prevent"])
806
+ }, [k(Ln, {
767
807
  entries: f.value,
768
- onPick: n[3] ||= (e) => w(f.value, e)
769
- }, null, 8, ["entries"])], 44, Sn)) : x("", !0)]));
808
+ onPick: n[3] ||= (e) => v(f.value, e)
809
+ }, null, 8, ["entries"])], 44, zn)) : w("", !0)]));
770
810
  }
771
- }), wn = { class: "glim-copy" }, Tn = ["value", "aria-label"], En = {
811
+ }), Vn = ["value", "aria-label"], Hn = {
772
812
  role: "status",
773
813
  class: "glim-sr-only"
774
- }, Dn = /* @__PURE__ */ D({
814
+ }, Un = /* @__PURE__ */ A({
775
815
  __name: "CopyField",
776
816
  props: {
777
817
  value: {},
778
818
  label: {},
819
+ width: {},
779
820
  text: { default: () => ({
780
821
  copy: "Copy",
781
822
  copied: "Copied"
@@ -783,44 +824,44 @@ var Bt = [
783
824
  },
784
825
  emits: ["copy"],
785
826
  setup(e, { emit: t }) {
786
- let n = e, r = t, i = F(!1), a = z(null), o;
787
- te(() => clearTimeout(o));
788
- async function c() {
789
- let e = await ke(n.value);
790
- r("copy", e), e ? (i.value = !0, clearTimeout(o), o = window.setTimeout(() => i.value = !1, de)) : (a.value?.focus(), a.value?.select());
827
+ let n = e, r = t, i = y(() => n.label), a = R(!1), o = H(null), s;
828
+ re(() => clearTimeout(s));
829
+ async function l() {
830
+ let e = await Fe(n.value);
831
+ r("copy", e), e ? (a.value = !0, clearTimeout(s), s = window.setTimeout(() => a.value = !1, ge)) : (o.value?.focus(), o.value?.select());
791
832
  }
792
- return (t, n) => (P(), S("span", wn, [
793
- C("input", {
833
+ return (t, n) => (L(), T("span", { class: N(["glim-copy", W(Le)(e.width)]) }, [
834
+ E("input", {
794
835
  ref_key: "field",
795
- ref: a,
836
+ ref: o,
796
837
  readonly: "",
797
838
  value: e.value,
798
- "aria-label": e.label,
839
+ "aria-label": W(i),
799
840
  spellcheck: "false",
800
841
  class: "glim-input glim-input--mono"
801
- }, null, 8, Tn),
802
- E(Z, {
803
- label: i.value ? e.text.copied : e.text.copy,
804
- "label-key": i.value ? "copied" : "copy",
805
- glyph: i.value ? V(u) : V(s),
842
+ }, null, 8, Vn),
843
+ k(Z, {
844
+ label: a.value ? e.text.copied : e.text.copy,
845
+ "label-key": a.value ? "copied" : "copy",
846
+ glyph: a.value ? W(d) : W(c),
806
847
  variant: "icon",
807
- onClick: c
848
+ onClick: l
808
849
  }, null, 8, [
809
850
  "label",
810
851
  "label-key",
811
852
  "glyph"
812
853
  ]),
813
- C("span", En, B(i.value ? e.text.copied : ""), 1)
814
- ]));
854
+ E("span", Hn, U(a.value ? e.text.copied : ""), 1)
855
+ ], 2));
815
856
  }
816
- }), On = {
857
+ }), Wn = {
817
858
  key: 0,
818
859
  class: "glim-empty-glyph",
819
860
  "aria-hidden": "true"
820
- }, kn = { class: "glim-empty-title" }, An = {
861
+ }, Gn = { class: "glim-empty-title" }, Kn = {
821
862
  key: 1,
822
863
  class: "glim-empty-hint"
823
- }, jn = /* @__PURE__ */ D({
864
+ }, qn = /* @__PURE__ */ A({
824
865
  __name: "EmptyState",
825
866
  props: {
826
867
  glyph: {},
@@ -832,28 +873,187 @@ var Bt = [
832
873
  }
833
874
  },
834
875
  setup(e) {
835
- return (t, n) => (P(), S("div", { class: A(e.nested ? "glim-empty" : "glim-card glim-empty") }, [
836
- e.glyph ? (P(), S("span", On, [(P(), b(R(e.glyph)))])) : x("", !0),
837
- C("p", kn, B(e.title), 1),
838
- e.hint ? (P(), S("p", An, B(e.hint), 1)) : x("", !0),
839
- L(t.$slots, "default")
876
+ return (t, n) => (L(), T("div", { class: N(e.nested ? "glim-empty" : "glim-card glim-empty") }, [
877
+ e.glyph ? (L(), T("span", Wn, [(L(), C(V(e.glyph)))])) : w("", !0),
878
+ E("p", Gn, U(e.title), 1),
879
+ e.hint ? (L(), T("p", Kn, U(e.hint), 1)) : w("", !0),
880
+ B(t.$slots, "default")
840
881
  ], 2));
841
882
  }
842
- }), Mn = {
883
+ }), Jn = /* @__PURE__ */ A({
884
+ __name: "Pill",
885
+ props: { tone: { default: "neutral" } },
886
+ setup(e) {
887
+ let t = e, n = S(() => at(t.tone));
888
+ return (e, t) => (L(), T("span", { class: N(n.value) }, [B(e.$slots, "default")], 2));
889
+ }
890
+ }), Yn = { class: "glim-field-row-name" }, Xn = {
891
+ key: 0,
892
+ class: "glim-field-row-controls"
893
+ }, Zn = /* @__PURE__ */ A({
894
+ __name: "FieldRow",
895
+ props: {
896
+ label: {},
897
+ hint: {},
898
+ value: {},
899
+ tone: {},
900
+ wide: { type: Boolean }
901
+ },
902
+ setup(e) {
903
+ let t = e;
904
+ ae(ee, S(() => t.label));
905
+ let n = ne(v, !1), r = H(null);
906
+ return (t, i) => (L(), T("div", {
907
+ ref_key: "row",
908
+ ref: r,
909
+ class: N(["glim-field-row", { "glim-field-row--wide": e.wide }])
910
+ }, [E("span", Yn, [E("span", {
911
+ class: "glim-field-row-label",
912
+ onClick: i[0] ||= (e) => W(ct)(r.value)
913
+ }, [B(t.$slots, "label", {}, () => [O(U(e.label), 1)])]), e.hint ? (L(), C(Q, {
914
+ key: 0,
915
+ tip: e.hint
916
+ }, null, 8, ["tip"])) : w("", !0)]), W(n) ? (L(), T("span", Xn, [B(t.$slots, "default", {}, () => [e.value === void 0 ? w("", !0) : (L(), C(Jn, {
917
+ key: 0,
918
+ class: "glim-num",
919
+ tone: e.tone
920
+ }, {
921
+ default: q(() => [O(U(e.value), 1)]),
922
+ _: 1
923
+ }, 8, ["tone"]))])])) : B(t.$slots, "default", {}, () => [e.value === void 0 ? w("", !0) : (L(), C(Jn, {
924
+ key: 0,
925
+ class: "glim-num",
926
+ tone: e.tone
927
+ }, {
928
+ default: q(() => [O(U(e.value), 1)]),
929
+ _: 1
930
+ }, 8, ["tone"]))], void 0, 1)], 2));
931
+ }
932
+ }), Qn = /* @__PURE__ */ A({
933
+ __name: "FieldRowGroup",
934
+ props: { columns: {} },
935
+ setup(e) {
936
+ return ae(v, !0), (t, n) => (L(), T("div", {
937
+ class: "glim-field-row-group",
938
+ style: P(e.columns ? { "--field-columns": e.columns } : void 0)
939
+ }, [B(t.$slots, "default")], 4));
940
+ }
941
+ }), $n = {
942
+ class: "glim-glyph-field-glyph",
943
+ "aria-hidden": "true"
944
+ }, er = ["aria-label"], tr = /* @__PURE__ */ A({
945
+ inheritAttrs: !1,
946
+ __name: "GlyphField",
947
+ props: /*@__PURE__*/ j({
948
+ glyph: {},
949
+ label: {},
950
+ mono: { type: Boolean },
951
+ width: {}
952
+ }, {
953
+ modelValue: { default: "" },
954
+ modelModifiers: {}
955
+ }),
956
+ emits: ["update:modelValue"],
957
+ setup(e, { expose: t }) {
958
+ let n = e, r = G(e, "modelValue"), i = y(() => n.label), a = S(() => Le(n.width)), o = H(null);
959
+ return t({ input: o }), (t, n) => (L(), T("label", {
960
+ class: N([
961
+ "glim-input",
962
+ "glim-glyph-field",
963
+ a.value,
964
+ { "glim-input--mono": e.mono },
965
+ t.$attrs.class
966
+ ]),
967
+ style: P(t.$attrs.style)
968
+ }, [
969
+ E("span", $n, [(L(), C(V(e.glyph)))]),
970
+ J(E("input", M({
971
+ ref_key: "input",
972
+ ref: o,
973
+ "onUpdate:modelValue": n[0] ||= (e) => r.value = e,
974
+ type: "text",
975
+ "aria-label": W(i)
976
+ }, {
977
+ ...t.$attrs,
978
+ class: void 0,
979
+ style: void 0
980
+ }, { class: "glim-glyph-field-input" }), null, 16, er), [[de, r.value]]),
981
+ B(t.$slots, "after")
982
+ ], 6));
983
+ }
984
+ }), nr = /* @__PURE__ */ A({
985
+ __name: "GlyphTile",
986
+ props: {
987
+ glyph: {},
988
+ quiet: { type: Boolean },
989
+ ground: { type: Boolean },
990
+ active: { type: Boolean }
991
+ },
992
+ setup(e) {
993
+ return (t, n) => (L(), T("span", {
994
+ class: N(["glim-tile", {
995
+ "glim-tile--quiet": e.quiet,
996
+ "glim-tile--ground": e.ground,
997
+ "glim-tile--active": e.active
998
+ }]),
999
+ "aria-hidden": "true"
1000
+ }, [(L(), C(V(e.glyph)))], 2));
1001
+ }
1002
+ }), rr = {
1003
+ key: 0,
1004
+ class: "glim-icon-btn-gap",
1005
+ "aria-hidden": "true"
1006
+ }, ir = /* @__PURE__ */ A({
1007
+ __name: "IconButton",
1008
+ props: {
1009
+ tip: {},
1010
+ glyph: {},
1011
+ href: {},
1012
+ pressed: {
1013
+ type: Boolean,
1014
+ default: void 0
1015
+ },
1016
+ absent: { type: Boolean },
1017
+ disabled: { type: Boolean }
1018
+ },
1019
+ setup(e) {
1020
+ function t(e) {
1021
+ Nt(e.currentTarget);
1022
+ }
1023
+ return (n, r) => e.absent ? (L(), T("span", rr)) : (L(), C(Kt, {
1024
+ key: 1,
1025
+ tip: e.tip,
1026
+ href: e.href,
1027
+ "aria-pressed": e.pressed,
1028
+ disabled: e.disabled,
1029
+ class: "glim-btn-bare glim-icon-btn",
1030
+ onPointerenter: t,
1031
+ onFocusin: t
1032
+ }, {
1033
+ default: q(() => [(L(), C(V(e.glyph)))]),
1034
+ _: 1
1035
+ }, 8, [
1036
+ "tip",
1037
+ "href",
1038
+ "aria-pressed",
1039
+ "disabled"
1040
+ ]));
1041
+ }
1042
+ }), ar = {
843
1043
  key: 0,
844
1044
  class: "glim-readme-btn-art",
845
1045
  "aria-hidden": "true"
846
- }, Nn = { class: "glim-readme-btn-text" }, Pn = { class: "glim-readme-btn-name" }, Fn = {
1046
+ }, or = { class: "glim-readme-btn-text" }, sr = { class: "glim-readme-btn-name" }, cr = {
847
1047
  key: 0,
848
1048
  class: "glim-readme-btn-sub"
849
- }, In = {
1049
+ }, lr = {
850
1050
  key: 0,
851
1051
  class: "glim-readme-btn-sheen",
852
1052
  "aria-hidden": "true"
853
- }, Ln = {
1053
+ }, ur = {
854
1054
  key: 1,
855
1055
  class: "glim-readme-btn-hint"
856
- }, $ = /* @__PURE__ */ D({
1056
+ }, $ = /* @__PURE__ */ A({
857
1057
  __name: "ReadmeButton",
858
1058
  props: {
859
1059
  brand: {},
@@ -868,10 +1068,10 @@ var Bt = [
868
1068
  },
869
1069
  emits: ["linkClick"],
870
1070
  setup(e, { emit: t }) {
871
- let n = e, r = t, i = y(() => tt(n.parts)), a = z(null), o = y(() => n.parts.map((e) => `${e.name}\n${e.sub ?? ""}`).join("\n") + (i.value ? n.soonLabel : "")), s;
872
- U([a, o], () => {
873
- s?.(), s = a.value ? Le(a.value) : void 0;
874
- }, { flush: "post" }), N(() => s?.());
1071
+ let n = e, r = t, i = S(() => ft(n.parts)), a = H(null), o = S(() => n.parts.map((e) => `${e.name}\n${e.sub ?? ""}`).join("\n") + (i.value ? n.soonLabel : "")), s;
1072
+ K([a, o], () => {
1073
+ s?.(), s = a.value ? Ke(a.value) : void 0;
1074
+ }, { flush: "post" }), I(() => s?.());
875
1075
  let c = (e) => i.value ? n.soonLabel : e.sub, l = (e) => c(e) ? `${e.name} ${c(e)}` : e.name, u = (e) => i.value ? "span" : e.href ? "a" : "button", d = (e) => i.value ? { "aria-disabled": !0 } : e.href ? {
876
1076
  href: e.href,
877
1077
  target: "_blank",
@@ -881,27 +1081,27 @@ var Bt = [
881
1081
  type: "button",
882
1082
  onClick: e.onClick
883
1083
  };
884
- return (t, n) => (P(), S("div", {
1084
+ return (t, n) => (L(), T("div", {
885
1085
  ref_key: "root",
886
1086
  ref: a,
887
- class: A(V(nt)(e.brand, e.parts.length, e.note, i.value))
1087
+ class: N(W(pt)(e.brand, e.parts.length, e.note, i.value))
888
1088
  }, [
889
- (P(!0), S(_, null, I(e.parts, (n, r) => (P(), b(R(u(n)), k({ key: r }, { ref_for: !0 }, d(n), {
1089
+ (L(!0), T(b, null, z(e.parts, (n, r) => (L(), C(V(u(n)), M({ key: r }, { ref_for: !0 }, d(n), {
890
1090
  "aria-label": l(n),
891
- class: V(et)(r, i.value)
1091
+ class: W(dt)(r, i.value)
892
1092
  }), {
893
- default: W(() => [r === 0 && t.$slots.art ? (P(), S("span", Mn, [L(t.$slots, "art")])) : (P(), S(_, { key: 1 }, [r === 0 && t.$slots.mark ? (P(), S("span", {
1093
+ default: q(() => [r === 0 && t.$slots.art ? (L(), T("span", ar, [B(t.$slots, "art")])) : (L(), T(b, { key: 1 }, [r === 0 && t.$slots.mark ? (L(), T("span", {
894
1094
  key: 0,
895
- class: A(`glim-readme-btn-mark ${e.markClass ?? ""}`),
1095
+ class: N(`glim-readme-btn-mark ${e.markClass ?? ""}`),
896
1096
  "aria-hidden": "true"
897
- }, [L(t.$slots, "mark")], 2)) : x("", !0), C("span", Nn, [C("span", Pn, B(n.name), 1), c(n) ? (P(), S("span", Fn, B(c(n)), 1)) : x("", !0)])], 64))]),
1097
+ }, [B(t.$slots, "mark")], 2)) : w("", !0), E("span", or, [E("span", sr, U(n.name), 1), c(n) ? (L(), T("span", cr, U(c(n)), 1)) : w("", !0)])], 64))]),
898
1098
  _: 2
899
1099
  }, 1040, ["aria-label", "class"]))), 128)),
900
- i.value ? x("", !0) : (P(), S("span", In)),
901
- e.hint ? (P(), S("span", Ln, [E(Q, { tip: e.hint }, null, 8, ["tip"])])) : x("", !0)
1100
+ i.value ? w("", !0) : (L(), T("span", lr)),
1101
+ e.hint ? (L(), T("span", ur, [k(Q, { tip: e.hint }, null, 8, ["tip"])])) : w("", !0)
902
1102
  ], 2));
903
1103
  }
904
- }), Rn = { class: "glim-info-text" }, zn = { class: "glim-info-text" }, Bn = { class: "glim-readme-btn-rows glim-about-give" }, Vn = /* @__PURE__ */ D({
1104
+ }), dr = { class: "glim-info-text" }, fr = { class: "glim-info-text" }, pr = { class: "glim-readme-btn-rows glim-about-give" }, mr = /* @__PURE__ */ A({
905
1105
  __name: "InfoAboutCard",
906
1106
  props: {
907
1107
  text: {},
@@ -914,25 +1114,25 @@ var Bt = [
914
1114
  hueIndex: {}
915
1115
  },
916
1116
  setup(e) {
917
- return (t, n) => (P(), b(Gt, {
1117
+ return (t, n) => (L(), C(ln, {
918
1118
  title: e.text.title,
919
1119
  "hue-index": e.hueIndex
920
1120
  }, {
921
- default: W(() => [
922
- C("p", Rn, B(e.text.body), 1),
923
- C("p", zn, B(e.text.coffee), 1),
924
- C("div", Bn, [
925
- E($, {
1121
+ default: q(() => [
1122
+ E("p", dr, U(e.text.body), 1),
1123
+ E("p", fr, U(e.text.coffee), 1),
1124
+ E("div", pr, [
1125
+ k($, {
926
1126
  brand: "coffee",
927
1127
  parts: [{
928
1128
  name: e.text.coffeeButton,
929
1129
  onClick: e.onCoffee
930
1130
  }]
931
1131
  }, {
932
- art: W(() => [(P(), b(R(e.coffeeArt)))]),
1132
+ art: q(() => [(L(), C(V(e.coffeeArt)))]),
933
1133
  _: 1
934
1134
  }, 8, ["parts"]),
935
- e.onPaypal && e.text.paypalButton ? (P(), b($, {
1135
+ e.onPaypal && e.text.paypalButton ? (L(), C($, {
936
1136
  key: 0,
937
1137
  brand: "paypal",
938
1138
  parts: [{
@@ -940,12 +1140,12 @@ var Bt = [
940
1140
  onClick: e.onPaypal
941
1141
  }],
942
1142
  "mark-class": "glim-paypal-mark"
943
- }, w({ _: 2 }, [e.paypalGlyph ? {
1143
+ }, D({ _: 2 }, [e.paypalGlyph ? {
944
1144
  name: "mark",
945
- fn: W(() => [(P(), b(R(e.paypalGlyph)))]),
1145
+ fn: q(() => [(L(), C(V(e.paypalGlyph)))]),
946
1146
  key: "0"
947
- } : void 0]), 1032, ["parts"])) : x("", !0),
948
- e.onCrypto && e.text.cryptoButton ? (P(), b($, {
1147
+ } : void 0]), 1032, ["parts"])) : w("", !0),
1148
+ e.onCrypto && e.text.cryptoButton ? (L(), C($, {
949
1149
  key: 1,
950
1150
  brand: "bitcoin",
951
1151
  parts: [{
@@ -953,17 +1153,17 @@ var Bt = [
953
1153
  onClick: e.onCrypto
954
1154
  }],
955
1155
  "mark-class": "glim-bitcoin-mark"
956
- }, w({ _: 2 }, [e.cryptoGlyph ? {
1156
+ }, D({ _: 2 }, [e.cryptoGlyph ? {
957
1157
  name: "mark",
958
- fn: W(() => [(P(), b(R(e.cryptoGlyph)))]),
1158
+ fn: q(() => [(L(), C(V(e.cryptoGlyph)))]),
959
1159
  key: "0"
960
- } : void 0]), 1032, ["parts"])) : x("", !0)
1160
+ } : void 0]), 1032, ["parts"])) : w("", !0)
961
1161
  ])
962
1162
  ]),
963
1163
  _: 1
964
1164
  }, 8, ["title", "hue-index"]));
965
1165
  }
966
- }), Hn = { class: "glim-info-text" }, Un = { class: "glim-readme-btn-rows" }, Wn = /* @__PURE__ */ D({
1166
+ }), hr = { class: "glim-info-text" }, gr = { class: "glim-readme-btn-rows" }, _r = /* @__PURE__ */ A({
967
1167
  __name: "InfoHelpCard",
968
1168
  props: {
969
1169
  text: {},
@@ -975,43 +1175,43 @@ var Bt = [
975
1175
  manualGlyph: {},
976
1176
  onBugReport: {},
977
1177
  bugGlyph: {},
978
- openUrl: { default: Je },
1178
+ openUrl: { default: it },
979
1179
  hueIndex: {}
980
1180
  },
981
1181
  setup(e) {
982
- let t = e, n = y(() => qe(t.text.report, t.mailAddress));
983
- return (t, r) => (P(), b(Gt, {
1182
+ let t = e, n = S(() => rt(t.text.report, t.mailAddress));
1183
+ return (t, r) => (L(), C(ln, {
984
1184
  title: e.text.title,
985
1185
  hint: e.text.hint,
986
1186
  "hue-index": e.hueIndex
987
1187
  }, {
988
- default: W(() => [C("p", Hn, B(e.text.report), 1), C("div", Un, [
989
- E($, {
1188
+ default: q(() => [E("p", hr, U(e.text.report), 1), E("div", gr, [
1189
+ k($, {
990
1190
  brand: "github",
991
1191
  parts: [{
992
1192
  name: e.text.repoButton,
993
1193
  onClick: () => e.openUrl(e.repoUrl)
994
1194
  }],
995
1195
  "mark-class": "glim-github-mark"
996
- }, w({ _: 2 }, [e.repoGlyph ? {
1196
+ }, D({ _: 2 }, [e.repoGlyph ? {
997
1197
  name: "mark",
998
- fn: W(() => [(P(), b(R(e.repoGlyph)))]),
1198
+ fn: q(() => [(L(), C(V(e.repoGlyph)))]),
999
1199
  key: "0"
1000
1200
  } : void 0]), 1032, ["parts"]),
1001
- n.value ? (P(), b($, {
1201
+ n.value ? (L(), C($, {
1002
1202
  key: 0,
1003
1203
  brand: "house",
1004
1204
  parts: [{
1005
1205
  name: e.text.mailButton,
1006
- onClick: () => e.openUrl(V(ze)(e.mailAddress, e.text.mailSubject))
1206
+ onClick: () => e.openUrl(W(Je)(e.mailAddress, e.text.mailSubject))
1007
1207
  }],
1008
1208
  "mark-class": "glim-house-mark"
1009
- }, w({ _: 2 }, [e.mailGlyph ? {
1209
+ }, D({ _: 2 }, [e.mailGlyph ? {
1010
1210
  name: "mark",
1011
- fn: W(() => [(P(), b(R(e.mailGlyph)))]),
1211
+ fn: q(() => [(L(), C(V(e.mailGlyph)))]),
1012
1212
  key: "0"
1013
- } : void 0]), 1032, ["parts"])) : x("", !0),
1014
- e.manualUrl && e.text.manual ? (P(), b($, {
1213
+ } : void 0]), 1032, ["parts"])) : w("", !0),
1214
+ e.manualUrl && e.text.manual ? (L(), C($, {
1015
1215
  key: 1,
1016
1216
  brand: "docs",
1017
1217
  parts: [{
@@ -1020,12 +1220,12 @@ var Bt = [
1020
1220
  onClick: () => e.openUrl(e.manualUrl)
1021
1221
  }],
1022
1222
  "mark-class": "glim-docs-mark"
1023
- }, w({ _: 2 }, [e.manualGlyph ? {
1223
+ }, D({ _: 2 }, [e.manualGlyph ? {
1024
1224
  name: "mark",
1025
- fn: W(() => [(P(), b(R(e.manualGlyph)))]),
1225
+ fn: q(() => [(L(), C(V(e.manualGlyph)))]),
1026
1226
  key: "0"
1027
- } : void 0]), 1032, ["parts"])) : x("", !0),
1028
- e.onBugReport && e.text.bugReport ? (P(), b($, {
1227
+ } : void 0]), 1032, ["parts"])) : w("", !0),
1228
+ e.onBugReport && e.text.bugReport ? (L(), C($, {
1029
1229
  key: 2,
1030
1230
  brand: "github",
1031
1231
  parts: [{
@@ -1033,11 +1233,11 @@ var Bt = [
1033
1233
  sub: e.text.bugReportSub,
1034
1234
  onClick: e.onBugReport
1035
1235
  }]
1036
- }, w({ _: 2 }, [e.bugGlyph ? {
1236
+ }, D({ _: 2 }, [e.bugGlyph ? {
1037
1237
  name: "mark",
1038
- fn: W(() => [(P(), b(R(e.bugGlyph)))]),
1238
+ fn: q(() => [(L(), C(V(e.bugGlyph)))]),
1039
1239
  key: "0"
1040
- } : void 0]), 1032, ["parts"])) : x("", !0)
1240
+ } : void 0]), 1032, ["parts"])) : w("", !0)
1041
1241
  ])]),
1042
1242
  _: 1
1043
1243
  }, 8, [
@@ -1046,69 +1246,69 @@ var Bt = [
1046
1246
  "hue-index"
1047
1247
  ]));
1048
1248
  }
1049
- }), Gn = { class: "glim-version-rows" }, Kn = { class: "glim-version-name" }, qn = { class: "glim-version-part" }, Jn = {
1249
+ }), vr = { class: "glim-version-rows" }, yr = { class: "glim-version-name" }, br = { class: "glim-version-part" }, xr = {
1050
1250
  key: 0,
1051
1251
  class: "glim-version-sub"
1052
- }, Yn = ["href", "onClick"], Xn = {
1252
+ }, Sr = ["href", "onClick"], Cr = {
1053
1253
  key: 1,
1054
1254
  class: "glim-num glim-version-number"
1055
- }, Zn = {
1255
+ }, wr = {
1056
1256
  key: 0,
1057
1257
  class: "glim-version-actions"
1058
- }, Qn = {
1258
+ }, Tr = {
1059
1259
  role: "status",
1060
1260
  class: "glim-sr-only"
1061
- }, $n = /* @__PURE__ */ D({
1261
+ }, Er = /* @__PURE__ */ A({
1062
1262
  __name: "InfoVersionCard",
1063
1263
  props: {
1064
1264
  text: {},
1065
1265
  rows: {},
1066
1266
  updateCheck: {},
1067
1267
  onReleaseNotes: {},
1068
- openUrl: { default: Je },
1268
+ openUrl: { default: it },
1069
1269
  hueIndex: {}
1070
1270
  },
1071
1271
  setup(e) {
1072
- let t = e, n = ae(), r = y(() => !n["whats-new"] && t.onReleaseNotes && t.text.releaseNotes), i = z({ kind: "idle" }), a = z(0), o = y(() => t.updateCheck && wt(i.value, t.updateCheck.text));
1272
+ let t = e, n = le(), r = S(() => !n["whats-new"] && t.onReleaseNotes && t.text.releaseNotes), i = H({ kind: "idle" }), a = H(0), o = S(() => t.updateCheck && Bt(i.value, t.updateCheck.text));
1073
1273
  function s() {
1074
- ot(t.updateCheck, i.value, (e) => {
1274
+ _t(t.updateCheck, i.value, (e) => {
1075
1275
  i.value = e, e.kind === "failed" && a.value++;
1076
1276
  });
1077
1277
  }
1078
1278
  function c(e, n) {
1079
1279
  e.preventDefault(), t.openUrl(n);
1080
1280
  }
1081
- return (t, n) => (P(), b(Gt, {
1281
+ return (t, n) => (L(), C(ln, {
1082
1282
  title: e.text.title,
1083
1283
  hint: e.text.hint,
1084
1284
  "hue-index": e.hueIndex
1085
1285
  }, {
1086
- default: W(() => [C("ul", Gn, [(P(!0), S(_, null, I(e.rows, (t) => (P(), S("li", {
1286
+ default: q(() => [E("ul", vr, [(L(!0), T(b, null, z(e.rows, (t) => (L(), T("li", {
1087
1287
  key: t.name,
1088
1288
  class: "glim-version-row"
1089
- }, [C("span", Kn, [C("span", qn, B(t.name), 1), t.sub ? (P(), S("span", Jn, B(t.sub), 1)) : x("", !0)]), V(q)(t).href ? (P(), S("a", {
1289
+ }, [E("span", yr, [E("span", br, U(t.name), 1), t.sub ? (L(), T("span", xr, U(t.sub), 1)) : w("", !0)]), W(X)(t).href ? (L(), T("a", {
1090
1290
  key: 0,
1091
- href: V(q)(t).href,
1291
+ href: W(X)(t).href,
1092
1292
  target: "_blank",
1093
1293
  rel: "noopener noreferrer",
1094
1294
  class: "glim-num glim-version-number",
1095
- onClick: (e) => c(e, V(q)(t).href)
1096
- }, B(V(q)(t).shown), 9, Yn)) : (P(), S("span", Xn, B(V(q)(t).released ? V(q)(t).shown : e.text.unreleased(V(q)(t).shown)), 1))]))), 128))]), r.value || t.$slots["whats-new"] || e.updateCheck ? (P(), S("div", Zn, [
1097
- r.value ? (P(), b(Z, {
1295
+ onClick: (e) => c(e, W(X)(t).href)
1296
+ }, U(W(X)(t).shown), 9, Sr)) : (L(), T("span", Cr, U(W(X)(t).released ? W(X)(t).shown : e.text.unreleased(W(X)(t).shown)), 1))]))), 128))]), r.value || t.$slots["whats-new"] || e.updateCheck ? (L(), T("div", wr, [
1297
+ r.value ? (L(), C(Z, {
1098
1298
  key: 0,
1099
1299
  label: e.text.releaseNotes,
1100
1300
  "label-key": "about.releaseNotes",
1101
1301
  onClick: n[0] ||= (t) => e.onReleaseNotes()
1102
- }, null, 8, ["label"])) : x("", !0),
1103
- L(t.$slots, "whats-new"),
1104
- e.updateCheck && o.value ? (P(), S(_, { key: 1 }, [(P(), b(Z, {
1302
+ }, null, 8, ["label"])) : w("", !0),
1303
+ B(t.$slots, "whats-new"),
1304
+ e.updateCheck && o.value ? (L(), T(b, { key: 1 }, [(L(), C(Z, {
1105
1305
  key: a.value,
1106
1306
  label: o.value.label,
1107
1307
  "label-key": o.value.labelKey,
1108
1308
  tone: o.value.tone,
1109
- stage: V(Tt)(e.updateCheck.text, o.value.label),
1309
+ stage: W(Vt)(e.updateCheck.text, o.value.label),
1110
1310
  busy: i.value.kind === "busy",
1111
- class: A(a.value > 0 ? "glim-shake" : ""),
1311
+ class: N(a.value > 0 ? "glim-shake" : ""),
1112
1312
  onClick: s
1113
1313
  }, null, 8, [
1114
1314
  "label",
@@ -1117,8 +1317,8 @@ var Bt = [
1117
1317
  "stage",
1118
1318
  "busy",
1119
1319
  "class"
1120
- ])), C("span", Qn, B(o.value.announced), 1)], 64)) : x("", !0)
1121
- ])) : x("", !0)]),
1320
+ ])), E("span", Tr, U(o.value.announced), 1)], 64)) : w("", !0)
1321
+ ])) : w("", !0)]),
1122
1322
  _: 3
1123
1323
  }, 8, [
1124
1324
  "title",
@@ -1126,7 +1326,7 @@ var Bt = [
1126
1326
  "hue-index"
1127
1327
  ]));
1128
1328
  }
1129
- }), er = /* @__PURE__ */ D({
1329
+ }), Dr = /* @__PURE__ */ A({
1130
1330
  __name: "InfoTile",
1131
1331
  props: {
1132
1332
  version: {},
@@ -1136,31 +1336,74 @@ var Bt = [
1136
1336
  },
1137
1337
  setup(e) {
1138
1338
  let t = e, n = (e) => t.hueIndex === void 0 ? void 0 : t.hueIndex + e;
1139
- return (t, r) => (P(), S(_, null, [
1140
- E($n, k(e.version, { "hue-index": n(0) }), w({ _: 2 }, [t.$slots["whats-new"] ? {
1339
+ return (t, r) => (L(), T(b, null, [
1340
+ k(Er, M(e.version, { "hue-index": n(0) }), D({ _: 2 }, [t.$slots["whats-new"] ? {
1141
1341
  name: "whats-new",
1142
- fn: W(() => [L(t.$slots, "whats-new")]),
1342
+ fn: q(() => [B(t.$slots, "whats-new")]),
1143
1343
  key: "0"
1144
1344
  } : void 0]), 1040, ["hue-index"]),
1145
- E(Wn, k(e.help, { "hue-index": n(1) }), null, 16, ["hue-index"]),
1146
- E(Vn, k(e.about, { "hue-index": n(2) }), null, 16, ["hue-index"])
1345
+ k(_r, M(e.help, { "hue-index": n(1) }), null, 16, ["hue-index"]),
1346
+ k(mr, M(e.about, { "hue-index": n(2) }), null, 16, ["hue-index"])
1147
1347
  ], 64));
1148
1348
  }
1149
- }), tr = ["aria-label"], nr = [
1349
+ }), Or = [
1350
+ "aria-label",
1351
+ "tabindex",
1352
+ "onKeydown"
1353
+ ], kr = {
1354
+ key: 0,
1355
+ class: "glim-list-row-tile"
1356
+ }, Ar = { class: "glim-list-row-title" }, jr = {
1357
+ key: 1,
1358
+ class: "glim-list-row-badges"
1359
+ }, Mr = /* @__PURE__ */ A({
1360
+ __name: "ListRow",
1361
+ props: {
1362
+ name: {},
1363
+ tip: {},
1364
+ mono: { type: Boolean }
1365
+ },
1366
+ setup(e) {
1367
+ let t = e, n = se(), r = S(() => !!n.onClick), i = S(() => ["glim-list-row-name", { "glim-list-row-name--mono": t.mono }]);
1368
+ function a(e) {
1369
+ e.preventDefault(), e.currentTarget.click();
1370
+ }
1371
+ return (t, n) => (L(), T("div", {
1372
+ role: "group",
1373
+ "aria-label": e.name,
1374
+ tabindex: r.value ? 0 : void 0,
1375
+ class: N(["glim-list-row", { "glim-list-row--opens": r.value }]),
1376
+ onKeydown: [pe(Y(a, ["self"]), ["enter"]), pe(Y(a, ["self"]), ["space"])]
1377
+ }, [
1378
+ t.$slots.tile ? (L(), T("span", kr, [B(t.$slots, "tile")])) : w("", !0),
1379
+ E("span", { class: N(i.value) }, [E("span", Ar, U(e.name), 1), e.tip ? (L(), T("span", {
1380
+ key: 0,
1381
+ class: "glim-list-row-tip",
1382
+ onClick: n[0] ||= Y(() => {}, ["stop"])
1383
+ }, [k(Q, { tip: e.tip }, null, 8, ["tip"])])) : w("", !0)], 2),
1384
+ t.$slots.badges ? (L(), T("span", jr, [B(t.$slots, "badges")])) : w("", !0),
1385
+ t.$slots.actions ? (L(), T("span", {
1386
+ key: 2,
1387
+ class: "glim-list-row-actions",
1388
+ onClick: n[1] ||= Y(() => {}, ["stop"])
1389
+ }, [B(t.$slots, "actions")])) : w("", !0)
1390
+ ], 42, Or));
1391
+ }
1392
+ }), Nr = ["aria-label"], Pr = [
1150
1393
  "aria-expanded",
1151
1394
  "tabindex",
1152
1395
  "onClick",
1153
1396
  "onMouseenter",
1154
1397
  "onKeydown",
1155
1398
  "onFocus"
1156
- ], rr = /* @__PURE__ */ D({
1399
+ ], Fr = /* @__PURE__ */ A({
1157
1400
  __name: "MenuBar",
1158
1401
  props: {
1159
1402
  label: {},
1160
1403
  menus: {}
1161
1404
  },
1162
1405
  setup(e, { expose: t }) {
1163
- let n = e, r = [], i = z(null), a = z(0);
1406
+ let n = e, r = [], i = H(null), a = H(0);
1164
1407
  function o(e) {
1165
1408
  let t = r[e];
1166
1409
  if (!t) return;
@@ -1184,11 +1427,11 @@ var Bt = [
1184
1427
  }[e.key];
1185
1428
  i === void 0 ? e.key === "ArrowDown" && (e.preventDefault(), o(t)) : (e.preventDefault(), a.value = s(t + i), r[a.value]?.focus());
1186
1429
  }
1187
- return (t, n) => (P(), S("div", {
1430
+ return (t, n) => (L(), T("div", {
1188
1431
  role: "menubar",
1189
1432
  "aria-label": e.label,
1190
1433
  class: "glim-menubar"
1191
- }, [(P(!0), S(_, null, I(e.menus, (e, t) => (P(), S("button", {
1434
+ }, [(L(!0), T(b, null, z(e.menus, (e, t) => (L(), T("button", {
1192
1435
  key: t,
1193
1436
  ref_for: !0,
1194
1437
  ref: (e) => r[t] = e,
@@ -1202,12 +1445,13 @@ var Bt = [
1202
1445
  onMouseenter: (e) => i.value && i.value.at !== t && o(t),
1203
1446
  onKeydown: (e) => l(e, t),
1204
1447
  onFocus: (e) => a.value = t
1205
- }, B(e.label), 41, nr))), 128)), i.value && e.menus[i.value.at] ? (P(), b(Cn, {
1448
+ }, U(e.label), 41, Pr))), 128)), i.value && e.menus[i.value.at] ? (L(), C(Bn, {
1206
1449
  key: i.value.at,
1207
1450
  x: i.value.x,
1208
1451
  y: i.value.y,
1209
1452
  items: e.menus[i.value.at].items,
1210
1453
  label: e.menus[i.value.at].label,
1454
+ id: e.menus[i.value.at].id,
1211
1455
  opener: r[i.value.at],
1212
1456
  onClose: n[0] ||= (e) => i.value = null,
1213
1457
  onStep: n[1] ||= (e) => i.value && o(s(i.value.at + e))
@@ -1216,10 +1460,11 @@ var Bt = [
1216
1460
  "y",
1217
1461
  "items",
1218
1462
  "label",
1463
+ "id",
1219
1464
  "opener"
1220
- ])) : x("", !0)], 8, tr));
1465
+ ])) : w("", !0)], 8, Nr));
1221
1466
  }
1222
- }), ir = [
1467
+ }), Ir = [
1223
1468
  "role",
1224
1469
  "aria-label",
1225
1470
  "aria-valuemin",
@@ -1227,7 +1472,7 @@ var Bt = [
1227
1472
  "aria-valuenow",
1228
1473
  "aria-valuetext",
1229
1474
  "aria-busy"
1230
- ], ar = /* @__PURE__ */ D({
1475
+ ], Lr = /* @__PURE__ */ A({
1231
1476
  inheritAttrs: !1,
1232
1477
  __name: "Meter",
1233
1478
  props: {
@@ -1242,13 +1487,13 @@ var Bt = [
1242
1487
  valueText: {}
1243
1488
  },
1244
1489
  setup(n) {
1245
- let r = n, i = y(() => We(r.value, {
1490
+ let r = n, i = S(() => $e(r.value, {
1246
1491
  size: r.size,
1247
1492
  threshold: r.threshold,
1248
1493
  quiet: r.quiet
1249
- })), a = y(() => i.value.percent === null), o = t(() => r.valueText);
1250
- return (t, r) => (P(), S(_, null, [C("span", k(t.$attrs, {
1251
- ref: (e) => V(o).trigger.value = e,
1494
+ })), a = S(() => i.value.percent === null), o = t(() => r.valueText);
1495
+ return (t, r) => (L(), T(b, null, [E("span", M(t.$attrs, {
1496
+ ref: (e) => W(o).trigger.value = e,
1252
1497
  role: a.value ? "progressbar" : "meter",
1253
1498
  "aria-label": n.label,
1254
1499
  "aria-valuemin": a.value ? void 0 : 0,
@@ -1257,14 +1502,14 @@ var Bt = [
1257
1502
  "aria-valuetext": n.valueText,
1258
1503
  "aria-busy": a.value || void 0,
1259
1504
  class: i.value.className,
1260
- onMouseenter: r[0] ||= (...e) => V(o).show && V(o).show(...e),
1261
- onMouseleave: r[1] ||= (...e) => V(o).hide && V(o).hide(...e)
1262
- }), [C("span", {
1505
+ onMouseenter: r[0] ||= (...e) => W(o).show && W(o).show(...e),
1506
+ onMouseleave: r[1] ||= (...e) => W(o).hide && W(o).hide(...e)
1507
+ }), [E("span", {
1263
1508
  class: "glim-meter-fill",
1264
- style: j(i.value.width ? { width: i.value.width } : void 0)
1265
- }, null, 4)], 16, ir), E(e, { state: V(o) }, null, 8, ["state"])], 64));
1509
+ style: P(i.value.width ? { width: i.value.width } : void 0)
1510
+ }, null, 4)], 16, Ir), k(e, { state: W(o) }, null, 8, ["state"])], 64));
1266
1511
  }
1267
- }), or = { class: "glim-num-wrap" }, sr = /* @__PURE__ */ D({
1512
+ }), Rr = { class: "glim-num-wrap" }, zr = ["aria-label"], Br = /* @__PURE__ */ A({
1268
1513
  inheritAttrs: !1,
1269
1514
  __name: "NumberField",
1270
1515
  props: {
@@ -1273,15 +1518,15 @@ var Bt = [
1273
1518
  },
1274
1519
  emits: ["update:modelValue"],
1275
1520
  setup(e) {
1276
- let t = H(e, "modelValue"), n = re(), r = z(null), i;
1277
- M(() => {
1278
- a(t.value), i = Ce(r.value);
1279
- }), te(() => i?.());
1280
- function a(e) {
1281
- let t = r.value;
1521
+ let t = G(e, "modelValue"), n = se(), r = y(() => n["aria-label"]), i = H(null), a;
1522
+ F(() => {
1523
+ o(t.value), a = ke(i.value);
1524
+ }), re(() => a?.());
1525
+ function o(e) {
1526
+ let t = i.value;
1282
1527
  t && (t.value === "" ? null : t.valueAsNumber) !== e && (t.value = e === null ? "" : String(e));
1283
1528
  }
1284
- U([
1529
+ K([
1285
1530
  t,
1286
1531
  () => n.min,
1287
1532
  () => n.max,
@@ -1289,24 +1534,31 @@ var Bt = [
1289
1534
  () => n.disabled,
1290
1535
  () => n.readonly
1291
1536
  ], () => {
1292
- a(t.value), r.value && yt(r.value);
1537
+ o(t.value), i.value && jt(i.value);
1293
1538
  }, { flush: "post" });
1294
- function o(e) {
1539
+ function s(e) {
1295
1540
  let n = e.target;
1296
1541
  t.value = n.value === "" ? null : n.valueAsNumber;
1297
1542
  }
1298
- return (e, t) => (P(), S("span", or, [C("input", k(e.$attrs, {
1543
+ return (e, t) => (L(), T("span", Rr, [E("input", M(e.$attrs, {
1299
1544
  ref_key: "input",
1300
- ref: r,
1545
+ ref: i,
1546
+ "aria-label": W(r),
1301
1547
  type: "number",
1302
1548
  class: "glim-num-input glim-num-field glim-num",
1303
- onInput: o
1304
- }), null, 16)]));
1549
+ onInput: s
1550
+ }), null, 16, zr)]));
1305
1551
  }
1306
- }), cr = ["disabled", "type"], lr = /* @__PURE__ */ D({
1552
+ }), Vr = [
1553
+ "aria-label",
1554
+ "disabled",
1555
+ "type"
1556
+ ], Hr = /* @__PURE__ */ A({
1307
1557
  inheritAttrs: !1,
1308
1558
  __name: "PasswordField",
1309
- props: /*@__PURE__*/ O({
1559
+ props: /*@__PURE__*/ j({
1560
+ width: {},
1561
+ eyeAttrs: {},
1310
1562
  text: { default: () => ({
1311
1563
  show: "Show",
1312
1564
  hide: "Hide"
@@ -1320,47 +1572,115 @@ var Bt = [
1320
1572
  modelModifiers: {}
1321
1573
  }),
1322
1574
  emits: ["update:modelValue"],
1323
- setup(e) {
1324
- let t = H(e, "modelValue"), n = F(!1);
1325
- return (r, i) => (P(), S("span", {
1326
- class: A(["glim-secret", r.$attrs.class]),
1327
- style: j(r.$attrs.style)
1328
- }, [se(C("input", k({
1329
- "onUpdate:modelValue": i[0] ||= (e) => t.value = e,
1575
+ setup(e, { expose: t }) {
1576
+ let n = e, r = G(e, "modelValue"), i = R(!1), a = se(), o = y(() => a["aria-label"]), s = S(() => Le(n.width)), c = H(null);
1577
+ return t({ input: c }), (t, n) => (L(), T("span", {
1578
+ class: N([
1579
+ "glim-secret",
1580
+ s.value,
1581
+ t.$attrs.class
1582
+ ]),
1583
+ style: P(t.$attrs.style)
1584
+ }, [J(E("input", M({
1585
+ ref_key: "input",
1586
+ ref: c,
1587
+ "onUpdate:modelValue": n[0] ||= (e) => r.value = e,
1330
1588
  autocomplete: "current-password",
1331
1589
  spellcheck: "false"
1332
1590
  }, {
1333
- ...r.$attrs,
1591
+ ...t.$attrs,
1334
1592
  class: void 0,
1335
1593
  style: void 0
1336
1594
  }, {
1595
+ "aria-label": W(o),
1337
1596
  disabled: e.disabled,
1338
- type: n.value ? "text" : "password",
1597
+ type: i.value ? "text" : "password",
1339
1598
  class: "glim-input"
1340
- }), null, 16, cr), [[oe, t.value]]), E(J, {
1341
- tip: n.value ? e.text.hide : e.text.show,
1599
+ }), null, 16, Vr), [[ue, r.value]]), k(Kt, M(e.eyeAttrs, {
1600
+ tip: i.value ? e.text.hide : e.text.show,
1342
1601
  class: "glim-secret-eye",
1343
1602
  disabled: e.disabled,
1344
- onClick: i[1] ||= (e) => n.value = !n.value
1345
- }, {
1346
- default: W(() => [(P(), b(R(n.value ? V(m) : V(d))))]),
1603
+ onClick: n[1] ||= (e) => i.value = !i.value
1604
+ }), {
1605
+ default: q(() => [(L(), C(V(i.value ? W(h) : W(f))))]),
1347
1606
  _: 1
1348
- }, 8, ["tip", "disabled"])], 6));
1607
+ }, 16, ["tip", "disabled"])], 6));
1349
1608
  }
1350
- }), ur = /* @__PURE__ */ D({
1351
- __name: "Pill",
1352
- props: { tone: { default: "neutral" } },
1353
- setup(e) {
1354
- let t = e, n = y(() => Ye(t.tone));
1355
- return (e, t) => (P(), S("span", { class: A(n.value) }, [L(e.$slots, "default")], 2));
1609
+ }), Ur = ["aria-label", "disabled"], Wr = /* @__PURE__ */ A({
1610
+ inheritAttrs: !1,
1611
+ __name: "PathField",
1612
+ props: /*@__PURE__*/ j({
1613
+ pick: {},
1614
+ label: {},
1615
+ width: {},
1616
+ text: { default: () => ({ pick: "Choose" }) },
1617
+ glyph: {},
1618
+ compact: { type: Boolean },
1619
+ buttonAttrs: {},
1620
+ disabled: {
1621
+ type: Boolean,
1622
+ default: !1
1623
+ }
1624
+ }, {
1625
+ modelValue: { default: "" },
1626
+ modelModifiers: {}
1627
+ }),
1628
+ emits: /*@__PURE__*/ j(["picked"], ["update:modelValue"]),
1629
+ setup(e, { expose: t, emit: n }) {
1630
+ let r = e, a = G(e, "modelValue"), o = n, s = y(() => r.label), c = H(null);
1631
+ t({ input: c });
1632
+ let l = H(null), u = R(!1), d = new ResizeObserver(([e]) => u.value = e.contentRect.width < Se);
1633
+ F(() => d.observe(l.value)), re(() => d.disconnect());
1634
+ async function f() {
1635
+ let e = await r.pick(a.value);
1636
+ c.value?.focus(), e && (a.value = e, o("picked", e));
1637
+ }
1638
+ return (t, n) => (L(), T("span", {
1639
+ ref_key: "box",
1640
+ ref: l,
1641
+ class: N([
1642
+ "glim-path",
1643
+ W(Le)(e.width),
1644
+ t.$attrs.class
1645
+ ]),
1646
+ style: P(t.$attrs.style)
1647
+ }, [J(E("input", M({
1648
+ ref_key: "input",
1649
+ ref: c,
1650
+ "onUpdate:modelValue": n[0] ||= (e) => a.value = e,
1651
+ type: "text",
1652
+ spellcheck: "false",
1653
+ autocomplete: "off",
1654
+ "aria-label": W(s)
1655
+ }, {
1656
+ ...t.$attrs,
1657
+ class: void 0,
1658
+ style: void 0
1659
+ }, {
1660
+ disabled: e.disabled,
1661
+ class: "glim-input glim-input--mono"
1662
+ }), null, 16, Ur), [[de, a.value]]), k(Z, M(e.buttonAttrs, {
1663
+ variant: "icon",
1664
+ label: e.text.pick,
1665
+ "label-key": null,
1666
+ glyph: e.glyph ?? W(i),
1667
+ compact: e.compact || u.value,
1668
+ disabled: e.disabled,
1669
+ onClick: f
1670
+ }), null, 16, [
1671
+ "label",
1672
+ "glyph",
1673
+ "compact",
1674
+ "disabled"
1675
+ ])], 6));
1356
1676
  }
1357
- }), dr = [
1677
+ }), Gr = [
1358
1678
  "aria-label",
1359
1679
  "aria-valuemin",
1360
1680
  "aria-valuemax",
1361
1681
  "aria-valuenow",
1362
1682
  "aria-valuetext"
1363
- ], fr = /* @__PURE__ */ D({
1683
+ ], Kr = /* @__PURE__ */ A({
1364
1684
  __name: "ProgressBar",
1365
1685
  props: {
1366
1686
  value: { default: null },
@@ -1376,31 +1696,40 @@ var Bt = [
1376
1696
  valueText: {}
1377
1697
  },
1378
1698
  setup(e) {
1379
- let t = e, n = y(() => Qe(t.value, {
1699
+ let t = e, n = S(() => lt(t.value, {
1380
1700
  paused: t.paused,
1381
1701
  failed: t.failed
1382
1702
  }));
1383
- return (t, r) => (P(), S("span", {
1703
+ return (t, r) => (L(), T("span", {
1384
1704
  role: "progressbar",
1385
1705
  "aria-label": e.label,
1386
1706
  "aria-valuemin": n.value.percent === null ? void 0 : 0,
1387
1707
  "aria-valuemax": n.value.percent === null ? void 0 : 100,
1388
1708
  "aria-valuenow": n.value.percent ?? void 0,
1389
1709
  "aria-valuetext": e.valueText,
1390
- class: A(n.value.className)
1391
- }, [C("span", {
1710
+ class: N(n.value.className)
1711
+ }, [E("span", {
1392
1712
  class: "glim-progress-fill",
1393
- style: j(n.value.width ? { width: n.value.width } : void 0)
1394
- }, null, 4)], 10, dr));
1713
+ style: P(n.value.width ? { width: n.value.width } : void 0)
1714
+ }, null, 4)], 10, Gr));
1715
+ }
1716
+ }), qr = /* @__PURE__ */ A({
1717
+ __name: "RowMark",
1718
+ props: { on: { type: Boolean } },
1719
+ setup(e) {
1720
+ return (t, n) => (L(), T("span", {
1721
+ class: N(["glim-rowmark", { "glim-rowmark--on": e.on }]),
1722
+ "aria-hidden": "true"
1723
+ }, [k(W(d))], 2));
1395
1724
  }
1396
- }), pr = [
1725
+ }), Jr = [
1397
1726
  "href",
1398
1727
  "data-sel-id",
1399
1728
  "aria-selected",
1400
1729
  "aria-current",
1401
1730
  "aria-describedby",
1402
1731
  "tabindex"
1403
- ], mr = [
1732
+ ], Yr = [
1404
1733
  "data-sel-id",
1405
1734
  "id",
1406
1735
  "role",
@@ -1412,7 +1741,7 @@ var Bt = [
1412
1741
  "aria-describedby",
1413
1742
  "disabled",
1414
1743
  "tabindex"
1415
- ], hr = ["id"], gr = /* @__PURE__ */ D({
1744
+ ], Xr = ["id"], Zr = /* @__PURE__ */ A({
1416
1745
  __name: "SelectorSegment",
1417
1746
  props: {
1418
1747
  item: {},
@@ -1435,7 +1764,7 @@ var Bt = [
1435
1764
  },
1436
1765
  emits: ["select"],
1437
1766
  setup(r, { emit: i }) {
1438
- let a = r, o = i, s = y(() => st({
1767
+ let a = r, o = i, s = S(() => vt({
1439
1768
  strip: a.strip,
1440
1769
  orientation: a.orientation,
1441
1770
  size: a.size,
@@ -1455,7 +1784,7 @@ var Bt = [
1455
1784
  disabled: a.disabled,
1456
1785
  dim: a.item.dim,
1457
1786
  squeezed: a.squeezed
1458
- })), c = t(() => s.value.tip, () => a.disabled), l = ie(), u = y(() => a.disabled && !!s.value.tip), d = y(() => u.value ? l : c.describedBy.value), f = y(() => a.strip.kind === "tab"), p = y(() => ({
1787
+ })), c = t(() => s.value.tip, () => a.disabled), l = ce(), u = S(() => a.disabled && !!s.value.tip), d = S(() => u.value ? l : c.describedBy.value), f = S(() => a.strip.kind === "tab"), p = S(() => ({
1459
1788
  ...s.value.style,
1460
1789
  ...a.share
1461
1790
  }));
@@ -1465,8 +1794,7 @@ var Bt = [
1465
1794
  function h(e) {
1466
1795
  e.ctrlKey || e.metaKey || e.shiftKey || e.altKey || e.button !== 0 || (e.preventDefault(), o("select"));
1467
1796
  }
1468
- return (t, i) => (P(), S(_, null, [r.orientation === "vertical" ? (P(), S("a", {
1469
- key: 0,
1797
+ return (t, i) => (L(), T(b, null, [r.orientation === "vertical" ? (L(), T("a", M({ key: 0 }, r.item.attrs, {
1470
1798
  ref: m,
1471
1799
  href: r.item.href,
1472
1800
  "data-sel-id": r.item.id,
@@ -1475,27 +1803,27 @@ var Bt = [
1475
1803
  "aria-current": r.on ? "page" : void 0,
1476
1804
  "aria-describedby": d.value,
1477
1805
  tabindex: r.roved ? 0 : -1,
1478
- class: A(s.value.className),
1479
- style: j(p.value),
1806
+ class: s.value.className,
1807
+ style: p.value,
1480
1808
  onClick: h,
1481
- onMouseenter: i[0] ||= (...e) => V(c).show && V(c).show(...e),
1482
- onMouseleave: i[1] ||= (...e) => V(c).hide && V(c).hide(...e),
1483
- onFocus: i[2] ||= (...e) => V(c).showOnFocus && V(c).showOnFocus(...e),
1484
- onBlur: i[3] ||= (...e) => V(c).hide && V(c).hide(...e)
1485
- }, [s.value.showGlyph && r.item.glyph ? (P(), b(R(r.item.glyph), { key: 0 })) : x("", !0), s.value.labelClass === null ? x("", !0) : (P(), S("span", {
1809
+ onMouseenter: i[0] ||= (...e) => W(c).show && W(c).show(...e),
1810
+ onMouseleave: i[1] ||= (...e) => W(c).hide && W(c).hide(...e),
1811
+ onFocus: i[2] ||= (...e) => W(c).showOnFocus && W(c).showOnFocus(...e),
1812
+ onBlur: i[3] ||= (...e) => W(c).hide && W(c).hide(...e)
1813
+ }), [s.value.showGlyph && r.item.glyph ? (L(), C(V(r.item.glyph), { key: 0 })) : w("", !0), s.value.labelClass === null ? w("", !0) : (L(), T("span", {
1486
1814
  key: 1,
1487
1815
  "data-sel-label": "",
1488
- class: A(s.value.labelClass)
1489
- }, B(r.item.label), 3))], 46, pr)) : (P(), S(_, { key: 1 }, [E(V(n), k({
1816
+ class: N(s.value.labelClass)
1817
+ }, U(r.item.label), 3))], 16, Jr)) : (L(), T(b, { key: 1 }, [k(W(n), M({
1490
1818
  on: u.value,
1491
- show: V(c).show,
1492
- hide: V(c).hide
1819
+ show: W(c).show,
1820
+ hide: W(c).hide
1493
1821
  }, u.value ? { style: r.share } : {}), {
1494
- default: W(() => [C("button", {
1822
+ default: q(() => [E("button", M(r.item.attrs, {
1495
1823
  ref: m,
1496
1824
  type: "button",
1497
1825
  "data-sel-id": r.item.id,
1498
- id: r.panelId && f.value ? V(dt)(r.panelId, r.item.id) : void 0,
1826
+ id: r.panelId && f.value ? W(St)(r.panelId, r.item.id) : void 0,
1499
1827
  role: r.strip.kind === "toggle" ? void 0 : r.strip.kind,
1500
1828
  "aria-selected": f.value ? r.on : void 0,
1501
1829
  "aria-controls": r.panelId && f.value && r.on ? r.panelId : void 0,
@@ -1505,39 +1833,40 @@ var Bt = [
1505
1833
  "aria-describedby": d.value,
1506
1834
  disabled: r.disabled,
1507
1835
  tabindex: r.roved ? 0 : -1,
1508
- class: A(s.value.className),
1509
- style: j(p.value),
1836
+ class: s.value.className,
1837
+ style: p.value,
1510
1838
  onClick: i[4] ||= (e) => o("select"),
1511
- onMouseenter: i[5] ||= (...e) => V(c).show && V(c).show(...e),
1512
- onMouseleave: i[6] ||= (...e) => V(c).hide && V(c).hide(...e),
1513
- onFocus: i[7] ||= (...e) => V(c).showOnFocus && V(c).showOnFocus(...e),
1514
- onBlur: i[8] ||= (...e) => V(c).hide && V(c).hide(...e)
1515
- }, [s.value.showGlyph && r.item.glyph ? (P(), b(R(r.item.glyph), { key: 0 })) : x("", !0), s.value.labelClass === null ? x("", !0) : (P(), S("span", {
1839
+ onMouseenter: i[5] ||= (...e) => W(c).show && W(c).show(...e),
1840
+ onMouseleave: i[6] ||= (...e) => W(c).hide && W(c).hide(...e),
1841
+ onFocus: i[7] ||= (...e) => W(c).showOnFocus && W(c).showOnFocus(...e),
1842
+ onBlur: i[8] ||= (...e) => W(c).hide && W(c).hide(...e)
1843
+ }), [s.value.showGlyph && r.item.glyph ? (L(), C(V(r.item.glyph), { key: 0 })) : w("", !0), s.value.labelClass === null ? w("", !0) : (L(), T("span", {
1516
1844
  key: 1,
1517
1845
  "data-sel-label": "",
1518
- class: A(s.value.labelClass)
1519
- }, B(r.item.label), 3))], 46, mr)]),
1846
+ class: N(s.value.labelClass)
1847
+ }, U(r.item.label), 3))], 16, Yr)]),
1520
1848
  _: 1
1521
1849
  }, 16, [
1522
1850
  "on",
1523
1851
  "show",
1524
1852
  "hide"
1525
- ]), u.value ? (P(), S("span", {
1853
+ ]), u.value ? (L(), T("span", {
1526
1854
  key: 0,
1527
- id: V(l),
1855
+ id: W(l),
1528
1856
  hidden: ""
1529
- }, B(s.value.tip), 9, hr)) : x("", !0)], 64)), E(e, { state: V(c) }, null, 8, ["state"])], 64));
1857
+ }, U(s.value.tip), 9, Xr)) : w("", !0)], 64)), k(e, { state: W(c) }, null, 8, ["state"])], 64));
1530
1858
  }
1531
- }), _r = [
1859
+ }), Qr = [
1532
1860
  "role",
1533
1861
  "aria-label",
1534
1862
  "aria-orientation"
1535
- ], vr = /* @__PURE__ */ D({
1863
+ ], $r = /* @__PURE__ */ A({
1536
1864
  __name: "Selector",
1537
- props: /*@__PURE__*/ O({
1865
+ props: {
1538
1866
  items: {},
1539
1867
  label: {},
1540
- select: { default: "one" },
1868
+ modelValue: {},
1869
+ select: {},
1541
1870
  orientation: { default: "horizontal" },
1542
1871
  size: { default: "md" },
1543
1872
  variant: { default: "well" },
@@ -1572,106 +1901,108 @@ var Bt = [
1572
1901
  default: !1
1573
1902
  },
1574
1903
  panelId: {}
1575
- }, {
1576
- modelValue: { required: !0 },
1577
- modelModifiers: {}
1578
- }),
1579
- emits: ["update:modelValue"],
1580
- setup(e) {
1581
- let t = e, n = H(e, "modelValue");
1582
- function r(e) {
1583
- let t = z(Be(e));
1584
- return N(_t(e, () => t.value = Be(e))), t;
1904
+ },
1905
+ emits: ["update:modelValue", "press"],
1906
+ setup(e, { emit: t }) {
1907
+ let n = e, r = t, i = S(() => n.modelValue);
1908
+ function a(e) {
1909
+ let t = H(Ye(e));
1910
+ return I(kt(e, () => t.value = Ye(e))), t;
1585
1911
  }
1586
- let i = X(ct(t.size, t.orientation)), a = r(me), o = r(ve), s = y(() => ft({
1587
- mode: i.value,
1588
- select: t.select,
1589
- activation: t.activation,
1590
- orientation: t.orientation,
1591
- size: t.size,
1592
- variant: t.variant,
1593
- equalWidth: t.equalWidth,
1594
- inline: t.inline,
1595
- fit: t.fit,
1596
- pairsOnPhone: t.pairsOnPhone,
1597
- hue: t.hue,
1598
- hueOffset: t.hueOffset,
1599
- desktop: a.value,
1600
- wide: o.value,
1601
- items: t.items.map((e) => ({
1912
+ let o = y(() => n.label), s = S(() => n.inline || n.label === void 0 && o.value !== void 0), c = Zt(yt(n.size, n.orientation)), l = a(ye), u = a(we), d = S(() => Ct({
1913
+ mode: c.value,
1914
+ select: n.select === "many" ? "many" : "one",
1915
+ activation: n.activation,
1916
+ orientation: n.orientation,
1917
+ size: n.size,
1918
+ variant: n.variant,
1919
+ equalWidth: n.equalWidth,
1920
+ inline: s.value,
1921
+ fit: n.fit,
1922
+ pairsOnPhone: n.pairsOnPhone,
1923
+ hue: n.hue,
1924
+ hueOffset: n.hueOffset,
1925
+ desktop: l.value,
1926
+ wide: u.value,
1927
+ items: n.items.map((e) => ({
1602
1928
  hasGlyph: !!e.glyph,
1603
1929
  iconOnly: !!e.iconOnly
1604
1930
  }))
1605
- })), c = z(null), l = z(null), u = F("even"), d = y(() => t.items.map((e) => e.label).join("\n")), f = y(() => t.items.map((e) => t.disabled || e.disabled ? "1" : "0").join(""));
1606
- function p(e, t) {
1607
- U([c, e], (e, n, r) => {
1608
- if (!c.value) return;
1609
- let i = t(c.value);
1931
+ })), f = H(null), p = H(null), m = R("even"), h = S(() => n.items.map((e) => e.label).join("\n")), g = S(() => n.items.map((e) => n.disabled || e.disabled ? "1" : "0").join(""));
1932
+ function _(e, t) {
1933
+ K([f, e], (e, n, r) => {
1934
+ if (!f.value) return;
1935
+ let i = t(f.value);
1610
1936
  i && r(i);
1611
1937
  }, { flush: "post" });
1612
1938
  }
1613
- p(() => s.value.counted, (e) => s.value.counted ? Ae(e) : void 0), p(() => [
1614
- s.value.pinWidth,
1615
- t.equalWidth,
1616
- t.inline,
1617
- d.value,
1618
- f.value,
1619
- t.size,
1620
- s.value.mode
1939
+ _(() => d.value.counted, (e) => d.value.counted ? Ie(e) : void 0), _(() => [
1940
+ d.value.pinWidth,
1941
+ n.equalWidth,
1942
+ s.value,
1943
+ h.value,
1944
+ g.value,
1945
+ n.size,
1946
+ d.value.mode
1621
1947
  ].join("|"), (e) => {
1622
- if (!s.value.pinWidth) l.value = null;
1623
- else return Dt(e, {
1624
- inline: t.inline,
1625
- equalWidth: t.equalWidth
1626
- }, (e) => l.value = e);
1627
- }), p(() => [
1628
- s.value.canSqueeze,
1629
- d.value,
1630
- f.value,
1631
- t.size
1948
+ if (!d.value.pinWidth) p.value = null;
1949
+ else return Ut(e, {
1950
+ inline: s.value,
1951
+ equalWidth: n.equalWidth
1952
+ }, (e) => p.value = e);
1953
+ }), _(() => [
1954
+ d.value.canSqueeze,
1955
+ h.value,
1956
+ g.value,
1957
+ n.size
1632
1958
  ].join("|"), (e) => {
1633
- if (!s.value.canSqueeze) u.value = "even";
1634
- else return Et(e, (e) => u.value = e);
1959
+ if (!d.value.canSqueeze) m.value = "even";
1960
+ else return Ht(e, (e) => m.value = e);
1635
1961
  });
1636
- let m = y(() => lt({
1637
- rows: l.value,
1638
- pinWidth: s.value.pinWidth,
1639
- inline: t.inline,
1640
- fit: t.fit,
1641
- fitMode: u.value,
1642
- pairsOnPhone: t.pairsOnPhone
1643
- })), h = y(() => t.select === "many"), g = (e) => h.value ? (n.value ?? []).includes(e) : n.value === e, v = y(() => t.items.map((e) => t.disabled || !!e.disabled)), x = y(() => at(v.value, t.items.findIndex((e) => g(e.id))));
1644
- function C(e) {
1645
- n.value = h.value ? St(n.value ?? [], e, t.items.map((e) => e.id)) : e;
1962
+ let v = S(() => bt({
1963
+ rows: p.value,
1964
+ pinWidth: d.value.pinWidth,
1965
+ inline: s.value,
1966
+ fit: n.fit,
1967
+ fitMode: m.value,
1968
+ pairsOnPhone: n.pairsOnPhone
1969
+ })), ee = S(() => n.select === "many"), x = (e) => ee.value ? (i.value ?? []).includes(e) : i.value === e, w = S(() => n.items.map((e) => n.disabled || !!e.disabled)), E = S(() => gt(w.value, n.items.findIndex((e) => x(e.id))));
1970
+ function D(e) {
1971
+ r("press", e);
1972
+ let t = ee.value ? It(i.value ?? [], e, n.items.map((e) => e.id)) : e;
1973
+ t !== i.value && r("update:modelValue", t);
1646
1974
  }
1647
- function w(e) {
1648
- let n = e.target;
1649
- if (t.orientation === "vertical" && e.key === " " && n.dataset.selId) {
1650
- e.preventDefault(), n.click();
1975
+ function O(e) {
1976
+ let t = e.target;
1977
+ if (n.orientation === "vertical" && e.key === " " && t.dataset.selId) {
1978
+ e.preventDefault(), t.click();
1651
1979
  return;
1652
1980
  }
1653
- let r = it(c.value, e.key, t.orientation);
1654
- r && (e.preventDefault(), s.value.autoSelect && r.dataset.selId && C(r.dataset.selId));
1981
+ let r = ht(f.value, e.key, n.orientation);
1982
+ if (!r) return;
1983
+ e.preventDefault();
1984
+ let i = n.items.find((e) => String(e.id) === r.dataset.selId);
1985
+ d.value.autoSelect && i && D(i.id);
1655
1986
  }
1656
- return (t, n) => (P(), S("div", {
1987
+ return (t, n) => (L(), T("div", {
1657
1988
  ref_key: "track",
1658
- ref: c,
1659
- role: s.value.role,
1660
- "aria-label": e.label,
1661
- "aria-orientation": s.value.role === "group" ? void 0 : e.orientation,
1662
- class: A(s.value.className),
1663
- style: j(m.value.track),
1664
- onKeydown: w
1665
- }, [(P(!0), S(_, null, I(e.items, (t, n) => (P(), b(gr, {
1989
+ ref: f,
1990
+ role: d.value.role,
1991
+ "aria-label": W(o),
1992
+ "aria-orientation": d.value.role === "group" ? void 0 : e.orientation,
1993
+ class: N(d.value.className),
1994
+ style: P(v.value.track),
1995
+ onKeydown: O
1996
+ }, [(L(!0), T(b, null, z(e.items, (t, n) => (L(), C(Zr, {
1666
1997
  key: t.id,
1667
1998
  item: t,
1668
1999
  index: n,
1669
- strip: s.value,
1670
- on: g(t.id),
1671
- disabled: v.value[n],
1672
- roved: n === x.value,
1673
- share: e.orientation === "vertical" ? {} : m.value.segment,
1674
- squeezed: s.value.canSqueeze && u.value === "squeezed",
2000
+ strip: d.value,
2001
+ on: x(t.id),
2002
+ disabled: w.value[n],
2003
+ roved: n === E.value,
2004
+ share: e.orientation === "vertical" ? {} : v.value.segment,
2005
+ squeezed: d.value.canSqueeze && m.value === "squeezed",
1675
2006
  orientation: e.orientation,
1676
2007
  size: e.size,
1677
2008
  variant: e.variant,
@@ -1681,7 +2012,7 @@ var Bt = [
1681
2012
  hue: e.hue,
1682
2013
  "hue-offset": e.hueOffset,
1683
2014
  "panel-id": e.panelId,
1684
- onSelect: (e) => C(t.id)
2015
+ onSelect: (e) => D(t.id)
1685
2016
  }, null, 8, [
1686
2017
  "item",
1687
2018
  "index",
@@ -1701,13 +2032,65 @@ var Bt = [
1701
2032
  "hue-offset",
1702
2033
  "panel-id",
1703
2034
  "onSelect"
1704
- ]))), 128))], 46, _r));
2035
+ ]))), 128))], 46, Qr));
1705
2036
  }
1706
- }), yr = [
1707
- "href",
1708
- "aria-current",
1709
- "aria-describedby"
1710
- ], br = { class: "glim-sr-only" }, xr = /* @__PURE__ */ D({
2037
+ }), ei = { class: "glim-sr-only" }, ti = /* @__PURE__ */ A({
2038
+ inheritAttrs: !1,
2039
+ __name: "SidebarRowLink",
2040
+ props: {
2041
+ view: {},
2042
+ className: {},
2043
+ label: {},
2044
+ glyph: {},
2045
+ href: {},
2046
+ active: { type: Boolean },
2047
+ count: {}
2048
+ },
2049
+ setup(n) {
2050
+ let r = n, i = t(() => r.view.tip);
2051
+ function a(e) {
2052
+ i.trigger.value = e;
2053
+ }
2054
+ return (t, r) => (L(), T(b, null, [(L(), C(V(n.href ? "a" : "button"), M(t.$attrs, {
2055
+ ref: a,
2056
+ href: n.href,
2057
+ type: n.href ? void 0 : "button",
2058
+ "aria-current": n.active ? "page" : void 0,
2059
+ "aria-describedby": W(i).describedBy.value,
2060
+ class: n.className,
2061
+ onMouseenter: W(i).show,
2062
+ onMouseleave: W(i).hide,
2063
+ onFocus: W(i).showOnFocus,
2064
+ onBlur: W(i).hide
2065
+ }), {
2066
+ default: q(() => [
2067
+ n.view.showGlyph && n.glyph ? (L(), C(V(n.glyph), { key: 0 })) : w("", !0),
2068
+ E("span", { class: N(n.view.labelClass) }, U(n.label), 3),
2069
+ n.view.countClass && n.count ? (L(), T(b, { key: 1 }, [E("span", {
2070
+ class: N(n.view.countClass),
2071
+ "aria-hidden": "true"
2072
+ }, U(n.count.value), 3), E("span", ei, U(n.count.label), 1)], 64)) : w("", !0)
2073
+ ]),
2074
+ _: 1
2075
+ }, 16, [
2076
+ "href",
2077
+ "type",
2078
+ "aria-current",
2079
+ "aria-describedby",
2080
+ "class",
2081
+ "onMouseenter",
2082
+ "onMouseleave",
2083
+ "onFocus",
2084
+ "onBlur"
2085
+ ])), k(e, { state: W(i) }, null, 8, ["state"])], 64));
2086
+ }
2087
+ }), ni = {
2088
+ key: 0,
2089
+ class: "glim-nav-row-slot"
2090
+ }, ri = {
2091
+ key: 1,
2092
+ class: "glim-nav-row-slot"
2093
+ }, ii = /* @__PURE__ */ A({
1711
2094
  inheritAttrs: !1,
1712
2095
  __name: "SidebarRow",
1713
2096
  props: {
@@ -1719,64 +2102,164 @@ var Bt = [
1719
2102
  default: !1
1720
2103
  },
1721
2104
  hueIndex: {},
1722
- count: {}
2105
+ count: {},
2106
+ depth: {}
1723
2107
  },
1724
- setup(n) {
1725
- let r = n, i = X("sidebar"), a = y(() => mt({
1726
- mode: i.value,
1727
- label: r.label,
1728
- hasGlyph: !!r.glyph,
1729
- active: r.active,
1730
- hueIndex: r.hueIndex,
1731
- count: r.count?.value
1732
- })), o = t(() => a.value.tip);
1733
- function s(e) {
1734
- o.trigger.value = e;
1735
- }
1736
- return (t, r) => (P(), S(_, null, [C("a", k(t.$attrs, {
1737
- ref: s,
1738
- href: n.href,
1739
- "aria-current": n.active ? "page" : void 0,
1740
- "aria-describedby": V(o).describedBy.value,
1741
- class: a.value.className,
1742
- style: a.value.style,
1743
- onMouseenter: r[0] ||= (...e) => V(o).show && V(o).show(...e),
1744
- onMouseleave: r[1] ||= (...e) => V(o).hide && V(o).hide(...e),
1745
- onFocus: r[2] ||= (...e) => V(o).showOnFocus && V(o).showOnFocus(...e),
1746
- onBlur: r[3] ||= (...e) => V(o).hide && V(o).hide(...e)
1747
- }), [
1748
- a.value.showGlyph && n.glyph ? (P(), b(R(n.glyph), { key: 0 })) : x("", !0),
1749
- C("span", { class: A(a.value.labelClass) }, B(n.label), 3),
1750
- a.value.countClass && n.count ? (P(), S(_, { key: 1 }, [C("span", {
1751
- class: A(a.value.countClass),
1752
- "aria-hidden": "true"
1753
- }, B(n.count.value), 3), C("span", br, B(n.count.label), 1)], 64)) : x("", !0)
1754
- ], 16, yr), E(e, { state: V(o) }, null, 8, ["state"])], 64));
2108
+ setup(e) {
2109
+ let t = e, n = Zt("sidebar"), r = le(), i = S(() => Tt({
2110
+ mode: n.value,
2111
+ label: t.label,
2112
+ hasGlyph: !!t.glyph,
2113
+ active: t.active,
2114
+ hueIndex: t.hueIndex,
2115
+ count: t.count?.value,
2116
+ framed: !!(r.before || r.after),
2117
+ depth: t.depth
2118
+ })), a = S(() => ({
2119
+ view: i.value,
2120
+ label: t.label,
2121
+ glyph: t.glyph,
2122
+ href: t.href,
2123
+ active: t.active,
2124
+ count: t.count
2125
+ }));
2126
+ return (e, t) => e.$slots.before || e.$slots.after ? (L(), T("div", {
2127
+ key: 0,
2128
+ class: N([
2129
+ i.value.className,
2130
+ "glim-nav-row--slots",
2131
+ e.$attrs.class
2132
+ ]),
2133
+ style: P([i.value.style, e.$attrs.style])
2134
+ }, [
2135
+ e.$slots.before ? (L(), T("span", ni, [B(e.$slots, "before")])) : w("", !0),
2136
+ k(ti, M({
2137
+ ...e.$attrs,
2138
+ ...a.value,
2139
+ class: void 0,
2140
+ style: void 0
2141
+ }, { "class-name": "glim-nav-row-main" }), null, 16),
2142
+ e.$slots.after ? (L(), T("span", ri, [B(e.$slots, "after")])) : w("", !0)
2143
+ ], 6)) : (L(), C(ti, M({ key: 1 }, {
2144
+ ...e.$attrs,
2145
+ ...a.value,
2146
+ class: void 0
2147
+ }, {
2148
+ "class-name": i.value.className,
2149
+ class: e.$attrs.class,
2150
+ style: i.value.style
2151
+ }), null, 16, [
2152
+ "class-name",
2153
+ "class",
2154
+ "style"
2155
+ ]));
1755
2156
  }
1756
- }), Sr = ["aria-labelledby"], Cr = { class: "glim-subcard-title" }, wr = ["id"], Tr = /* @__PURE__ */ D({
2157
+ }), ai = ["aria-labelledby"], oi = {
2158
+ key: 0,
2159
+ class: "glim-subcard-title"
2160
+ }, si = ["id"], ci = /* @__PURE__ */ A({
1757
2161
  __name: "SubCard",
1758
2162
  props: {
1759
2163
  title: {},
1760
2164
  hint: {}
1761
2165
  },
1762
2166
  setup(e) {
1763
- let t = ie();
1764
- return (n, r) => (P(), S("section", {
2167
+ let t = ce();
2168
+ return (n, r) => (L(), T("section", {
1765
2169
  class: "glim-subcard",
1766
- "aria-labelledby": V(t)
1767
- }, [C("h3", Cr, [C("span", { id: V(t) }, B(e.title), 9, wr), e.hint ? (P(), b(Q, {
2170
+ "aria-labelledby": e.title ? W(t) : void 0
2171
+ }, [e.title ? (L(), T("h3", oi, [E("span", { id: W(t) }, U(e.title), 9, si), e.hint ? (L(), C(Q, {
1768
2172
  key: 0,
1769
2173
  tip: e.hint
1770
- }, null, 8, ["tip"])) : x("", !0)]), L(n.$slots, "default")], 8, Sr));
2174
+ }, null, 8, ["tip"])) : w("", !0)])) : w("", !0), B(n.$slots, "default")], 8, ai));
2175
+ }
2176
+ }), li = ["aria-label"], ui = { key: 0 }, di = { key: 0 }, fi = ["colspan"], pi = /* @__PURE__ */ A({
2177
+ __name: "Table",
2178
+ props: {
2179
+ label: {},
2180
+ columns: {},
2181
+ rows: {},
2182
+ more: {}
2183
+ },
2184
+ setup(e) {
2185
+ let t = e, n = S(() => t.columns.some((e) => e.label)), r = (e, t) => e[t.key];
2186
+ return (t, i) => (L(), T("table", {
2187
+ class: "glim-table",
2188
+ "aria-label": e.label
2189
+ }, [n.value ? (L(), T("thead", ui, [E("tr", null, [(L(!0), T(b, null, z(e.columns, (e) => (L(), T("th", {
2190
+ key: e.key,
2191
+ scope: "col",
2192
+ class: N({ "glim-table-end": e.end })
2193
+ }, U(e.label), 3))), 128))])])) : w("", !0), E("tbody", null, [(L(!0), T(b, null, z(e.rows, (n, i) => (L(), T("tr", { key: i }, [(L(!0), T(b, null, z(e.columns, (e) => (L(), T("td", {
2194
+ key: e.key,
2195
+ class: N(W(Mt)(e))
2196
+ }, [B(t.$slots, "cell", {
2197
+ row: n,
2198
+ column: e,
2199
+ value: r(n, e)
2200
+ }, () => [O(U(r(n, e)), 1)])], 2))), 128))]))), 128)), e.more ? (L(), T("tr", di, [E("td", {
2201
+ colspan: e.columns.length,
2202
+ class: "glim-table-muted"
2203
+ }, U(e.more), 9, fi)])) : w("", !0)])], 8, li));
2204
+ }
2205
+ }), mi = ["aria-label"], hi = /* @__PURE__ */ A({
2206
+ __name: "TextArea",
2207
+ props: /*@__PURE__*/ j({
2208
+ label: {},
2209
+ mono: { type: Boolean },
2210
+ width: {}
2211
+ }, {
2212
+ modelValue: { default: "" },
2213
+ modelModifiers: {}
2214
+ }),
2215
+ emits: ["update:modelValue"],
2216
+ setup(e, { expose: t }) {
2217
+ let n = e, r = G(e, "modelValue"), i = y(() => n.label), a = S(() => Pt({
2218
+ width: n.width,
2219
+ mono: n.mono,
2220
+ area: !0
2221
+ })), o = H(null);
2222
+ return t({ input: o }), (e, t) => J((L(), T("textarea", {
2223
+ ref_key: "input",
2224
+ ref: o,
2225
+ "onUpdate:modelValue": t[0] ||= (e) => r.value = e,
2226
+ "aria-label": W(i),
2227
+ class: N(a.value)
2228
+ }, null, 10, mi)), [[de, r.value]]);
1771
2229
  }
1772
- }), Er = { class: "glim-toast-stack" }, Dr = [
2230
+ }), gi = ["aria-label"], _i = /* @__PURE__ */ A({
2231
+ __name: "TextField",
2232
+ props: /*@__PURE__*/ j({
2233
+ label: {},
2234
+ mono: { type: Boolean },
2235
+ width: {}
2236
+ }, {
2237
+ modelValue: { default: "" },
2238
+ modelModifiers: {}
2239
+ }),
2240
+ emits: ["update:modelValue"],
2241
+ setup(e, { expose: t }) {
2242
+ let n = e, r = G(e, "modelValue"), i = y(() => n.label), a = S(() => Pt({
2243
+ width: n.width,
2244
+ mono: n.mono
2245
+ })), o = H(null);
2246
+ return t({ input: o }), (e, t) => J((L(), T("input", {
2247
+ ref_key: "input",
2248
+ ref: o,
2249
+ "onUpdate:modelValue": t[0] ||= (e) => r.value = e,
2250
+ type: "text",
2251
+ "aria-label": W(i),
2252
+ class: N(a.value)
2253
+ }, null, 10, gi)), [[de, r.value]]);
2254
+ }
2255
+ }), vi = { class: "glim-toast-stack" }, yi = [
1773
2256
  "role",
1774
2257
  "onMouseenter",
1775
2258
  "onMouseleave",
1776
2259
  "onFocusin",
1777
2260
  "onFocusout",
1778
2261
  "onKeydown"
1779
- ], Or = { class: "glim-toast-message" }, kr = ["aria-label", "onClick"], Ar = /* @__PURE__ */ D({
2262
+ ], bi = { class: "glim-toast-body" }, xi = { class: "glim-toast-message" }, Si = { key: 0 }, Ci = ["aria-label", "onClick"], wi = /* @__PURE__ */ A({
1780
2263
  __name: "ToastViewport",
1781
2264
  props: {
1782
2265
  toasts: {},
@@ -1791,7 +2274,10 @@ var Bt = [
1791
2274
  ],
1792
2275
  setup(e, { emit: t }) {
1793
2276
  let n = t, r = (e) => e === "success" ? "status" : "alert";
1794
- return (t, i) => (P(), S("div", Er, [(P(!0), S(_, null, I(e.toasts, (t) => (P(), S("div", {
2277
+ function i(e, t) {
2278
+ t.onClick(), n("dismiss", e);
2279
+ }
2280
+ return (t, a) => (L(), T("div", vi, [(L(!0), T(b, null, z(e.toasts, (t) => (L(), T("div", {
1795
2281
  key: t.id,
1796
2282
  role: r(t.severity),
1797
2283
  class: "glim-toast glim-toast-card",
@@ -1799,31 +2285,39 @@ var Bt = [
1799
2285
  onMouseleave: (e) => n("leave", t.id),
1800
2286
  onFocusin: (e) => n("focusin", t.id),
1801
2287
  onFocusout: (e) => n("focusout", t.id),
1802
- onKeydown: ce(G((e) => n("dismiss", t.id), ["stop"]), ["esc"])
2288
+ onKeydown: pe(Y((e) => n("dismiss", t.id), ["stop"]), ["esc"])
1803
2289
  }, [
1804
- E(V(o), {
1805
- mark: V(_e)[t.severity],
1806
- class: A(`glim-toast-glyph glim-toast-glyph--${t.severity}`)
2290
+ k(W(p), {
2291
+ mark: W(Ce)[t.severity],
2292
+ class: N(`glim-toast-glyph glim-toast-glyph--${t.severity}`)
1807
2293
  }, null, 8, ["mark", "class"]),
1808
- C("p", Or, B(t.message), 1),
1809
- C("button", {
2294
+ E("div", bi, [E("p", xi, [(L(!0), T(b, null, z(W(Et)(t.message), (e, t) => (L(), T(b, { key: t }, [t > 0 ? (L(), T("wbr", Si)) : w("", !0), O(U(e), 1)], 64))), 128))]), t.action ? (L(), C(Z, {
2295
+ key: 0,
2296
+ class: "glim-toast-action",
2297
+ tone: "subtle",
2298
+ label: t.action.label,
2299
+ "label-key": null,
2300
+ onClick: (e) => i(t.id, t.action)
2301
+ }, null, 8, ["label", "onClick"])) : w("", !0)]),
2302
+ E("button", {
1810
2303
  type: "button",
1811
2304
  "aria-label": e.dismissLabel,
1812
2305
  class: "glim-btn-bare glim-toast-dismiss",
1813
2306
  onClick: (e) => n("dismiss", t.id)
1814
- }, [E(V(o), { mark: V(ge).dismiss }, null, 8, ["mark"])], 8, kr)
1815
- ], 40, Dr))), 128))]));
2307
+ }, [k(W(p), { mark: W(xe).dismiss }, null, 8, ["mark"])], 8, Ci)
2308
+ ], 40, yi))), 128))]));
1816
2309
  }
1817
- }), jr = { class: "glim-toggle" }, Mr = {
2310
+ }), Ti = {
1818
2311
  key: 0,
1819
2312
  class: "glim-toggle-label"
1820
- }, Nr = [
2313
+ }, Ei = [
1821
2314
  "aria-checked",
1822
2315
  "aria-label",
1823
2316
  "disabled"
1824
- ], Pr = /* @__PURE__ */ D({
2317
+ ], Di = /* @__PURE__ */ A({
2318
+ inheritAttrs: !1,
1825
2319
  __name: "Toggle",
1826
- props: /*@__PURE__*/ O({
2320
+ props: /*@__PURE__*/ j({
1827
2321
  label: {},
1828
2322
  hideLabel: {
1829
2323
  type: Boolean,
@@ -1842,37 +2336,123 @@ var Bt = [
1842
2336
  }),
1843
2337
  emits: ["update:modelValue"],
1844
2338
  setup(e) {
1845
- let t = H(e, "modelValue");
1846
- return (n, r) => (P(), S("span", jr, [e.hideLabel ? x("", !0) : (P(), S("span", Mr, B(e.label), 1)), C("button", {
2339
+ let t = e, n = G(e, "modelValue"), r = y(() => t.label), i = S(() => t.label !== void 0 && !t.hideLabel);
2340
+ return (t, a) => (L(), T("span", {
2341
+ class: N(["glim-toggle", t.$attrs.class]),
2342
+ style: P(t.$attrs.style)
2343
+ }, [i.value ? (L(), T("span", Ti, U(e.label), 1)) : w("", !0), E("button", M({
2344
+ ...t.$attrs,
2345
+ class: void 0,
2346
+ style: void 0
2347
+ }, {
1847
2348
  type: "button",
1848
2349
  role: "switch",
1849
- "aria-checked": t.value,
1850
- "aria-label": e.label,
2350
+ "aria-checked": n.value,
2351
+ "aria-label": W(r),
1851
2352
  disabled: e.disabled,
1852
2353
  class: "glim-toggle-track",
1853
- onClick: r[0] ||= (e) => t.value = !t.value
1854
- }, [...r[1] ||= [C("span", { class: "glim-toggle-thumb" }, null, -1)]], 8, Nr)]));
2354
+ onClick: a[0] ||= (e) => n.value = !n.value
2355
+ }), [...a[1] ||= [E("span", { class: "glim-toggle-thumb" }, null, -1)]], 16, Ei)], 6));
1855
2356
  }
1856
- }), Fr = { class: "glim-notice" }, Ir = { class: "glim-notice-title" }, Lr = { class: "glim-notice-reason" }, Rr = {
2357
+ }), Oi = ["aria-label"], ki = [
2358
+ "aria-level",
2359
+ "aria-posinset",
2360
+ "aria-setsize",
2361
+ "aria-expanded",
2362
+ "aria-selected",
2363
+ "tabindex",
2364
+ "data-tree-id",
2365
+ "onClick",
2366
+ "onDblclick",
2367
+ "onKeydown"
2368
+ ], Ai = ["onClick"], ji = {
2369
+ key: 0,
2370
+ class: "glim-tree-glyph",
2371
+ "aria-hidden": "true"
2372
+ }, Mi = { class: "glim-tree-label" }, Ni = /* @__PURE__ */ A({
2373
+ __name: "Tree",
2374
+ props: /*@__PURE__*/ j({
2375
+ label: {},
2376
+ load: { type: Function }
2377
+ }, {
2378
+ modelValue: { default: null },
2379
+ modelModifiers: {},
2380
+ open: { default: () => [] },
2381
+ openModifiers: {}
2382
+ }),
2383
+ emits: /*@__PURE__*/ j(["activate"], ["update:modelValue", "update:open"]),
2384
+ setup(e, { emit: t }) {
2385
+ let n = e, i = G(e, "modelValue"), a = G(e, "open"), o = t, s = oe(/* @__PURE__ */ new Map()), c = /* @__PURE__ */ new Set(), l = H(null);
2386
+ function u(e) {
2387
+ c.has(e) || (c.add(e), Promise.resolve(n.load(e)).then((t) => s.set(e, t), () => c.delete(e)));
2388
+ }
2389
+ K(a, (e) => [null, ...e].forEach(u), { immediate: !0 });
2390
+ let d = S(() => Rt(s, a.value)), f = S(() => Math.max(d.value.findIndex((e) => e.node.id === i.value), 0));
2391
+ function p(e) {
2392
+ a.value = a.value.includes(e) ? a.value.filter((t) => t !== e) : [...a.value, e];
2393
+ }
2394
+ function m(e, t) {
2395
+ if (e.ctrlKey || e.metaKey || e.altKey) return;
2396
+ let n = d.value[t].node.id;
2397
+ if (e.key === " " || e.key === "Enter") {
2398
+ e.preventDefault(), i.value = n, e.key === "Enter" && o("activate", n);
2399
+ return;
2400
+ }
2401
+ let r = zt(d.value, t, e.key, getComputedStyle(l.value).direction === "rtl");
2402
+ r && (e.preventDefault(), "focus" in r ? (i.value = r.focus, Ve(l.value, r.focus)) : p("open" in r ? r.open : r.close));
2403
+ }
2404
+ return (t, n) => (L(), T("div", {
2405
+ ref_key: "tree",
2406
+ ref: l,
2407
+ role: "tree",
2408
+ "aria-label": e.label,
2409
+ class: "glim-tree"
2410
+ }, [(L(!0), T(b, null, z(d.value, (e, t) => (L(), T("div", M({ ref_for: !0 }, e.node.attrs, {
2411
+ key: e.node.id,
2412
+ role: "treeitem",
2413
+ "aria-level": e.level,
2414
+ "aria-posinset": e.position,
2415
+ "aria-setsize": e.siblings,
2416
+ "aria-expanded": e.node.hasChildren ? e.open : void 0,
2417
+ "aria-selected": e.node.id === i.value,
2418
+ tabindex: t === f.value ? 0 : -1,
2419
+ "data-tree-id": e.node.id,
2420
+ class: "glim-tree-row",
2421
+ style: { "--tree-level": e.level - 1 },
2422
+ onClick: (t) => i.value = e.node.id,
2423
+ onDblclick: (t) => o("activate", e.node.id),
2424
+ onKeydown: (e) => m(e, t)
2425
+ }), [
2426
+ E("span", {
2427
+ class: "glim-tree-toggle",
2428
+ "aria-hidden": "true",
2429
+ onClick: Y((t) => e.node.hasChildren && p(e.node.id), ["stop"]),
2430
+ onDblclick: n[0] ||= Y(() => {}, ["stop"])
2431
+ }, [e.node.hasChildren ? (L(), C(W(r), { key: 0 })) : w("", !0)], 40, Ai),
2432
+ e.node.glyph ? (L(), T("span", ji, [(L(), C(V(e.open && e.node.openGlyph || e.node.glyph)))])) : w("", !0),
2433
+ E("span", Mi, U(e.node.label), 1)
2434
+ ], 16, ki))), 128))], 8, Oi));
2435
+ }
2436
+ }), Pi = { class: "glim-notice" }, Fi = { class: "glim-notice-title" }, Ii = { class: "glim-notice-reason" }, Li = {
1857
2437
  key: 0,
1858
2438
  class: "glim-notice-action"
1859
- }, zr = /* @__PURE__ */ D({
2439
+ }, Ri = /* @__PURE__ */ A({
1860
2440
  __name: "UnavailableNotice",
1861
2441
  props: { title: {} },
1862
2442
  setup(e) {
1863
- return (t, n) => (P(), S("div", Fr, [
1864
- C("p", Ir, B(e.title), 1),
1865
- C("p", Lr, [L(t.$slots, "default")]),
1866
- t.$slots.action ? (P(), S("div", Rr, [L(t.$slots, "action")])) : x("", !0)
2443
+ return (t, n) => (L(), T("div", Pi, [
2444
+ E("p", Fi, U(e.title), 1),
2445
+ E("p", Ii, [B(t.$slots, "default")]),
2446
+ t.$slots.action ? (L(), T("div", Li, [B(t.$slots, "action")])) : w("", !0)
1867
2447
  ]));
1868
2448
  }
1869
- }), Br = ["aria-labelledby"], Vr = ["id"], Hr = { class: "glim-modal-body glim-window-body" }, Ur = {
2449
+ }), zi = ["aria-labelledby", "aria-label"], Bi = ["id"], Vi = { class: "glim-modal-body glim-window-body" }, Hi = {
1870
2450
  key: 0,
1871
2451
  class: "glim-modal-foot"
1872
- }, Wr = {
2452
+ }, Ui = {
1873
2453
  key: 0,
1874
2454
  class: "glim-window-start"
1875
- }, Gr = /* @__PURE__ */ D({
2455
+ }, Wi = /* @__PURE__ */ A({
1876
2456
  inheritAttrs: !1,
1877
2457
  __name: "Window",
1878
2458
  props: {
@@ -1883,84 +2463,85 @@ var Bt = [
1883
2463
  text: {}
1884
2464
  },
1885
2465
  emits: ["close"],
1886
- setup(e, { emit: t }) {
1887
- let n = e, r = t, i = ae(), a = z(null), o = ie(), s = Pe(), c = y(() => n.start !== void 0 || !!i.start), l = y(() => kt(n.actions, c.value, {
2466
+ setup(e, { expose: t, emit: n }) {
2467
+ let r = e, i = n, a = le(), o = H(null), s = ce(), c = He(), l = S(() => r.start !== void 0 || !!a.start), u = S(() => Gt(r.actions, l.value, {
1888
2468
  cancel: {
1889
- label: n.text.cancel,
2469
+ label: r.text.cancel,
1890
2470
  labelKey: "common.cancel",
1891
- glyph: h,
2471
+ glyph: g,
1892
2472
  wayOut: !0
1893
2473
  },
1894
2474
  close: {
1895
- label: n.text.close,
2475
+ label: r.text.close,
1896
2476
  labelKey: "common.close",
1897
- glyph: p,
2477
+ glyph: m,
1898
2478
  wayOut: !0
1899
2479
  }
1900
- })), u;
1901
- M(() => {
1902
- u = ht(() => a.value, () => r("close")), a.value && Ot(a.value)?.focus();
1903
- }), ne(() => {
1904
- u?.(), rt(s);
1905
- });
1906
- function d(e) {
1907
- e.onClick?.() !== !1 && r("close");
2480
+ })), d;
2481
+ F(() => {
2482
+ d = Dt(() => o.value, () => i("close")), o.value && Wt(o.value)?.focus();
2483
+ }), ie(() => {
2484
+ d?.(), mt(c);
2485
+ }), t({ card: o });
2486
+ function f(e) {
2487
+ e.onClick?.() !== !1 && i("close");
1908
2488
  }
1909
- function f() {
1910
- Ve() || r("close");
2489
+ function p() {
2490
+ Xe() || i("close");
1911
2491
  }
1912
- return (t, n) => (P(), b(v, { to: "body" }, [C("div", {
2492
+ return (t, n) => (L(), C(x, { to: "body" }, [E("div", {
1913
2493
  class: "glim-modal-backdrop",
1914
- onMousedown: G(f, ["self"])
1915
- }, [C("div", k(t.$attrs, {
2494
+ onMousedown: Y(p, ["self"])
2495
+ }, [E("div", M(t.$attrs, {
1916
2496
  ref_key: "card",
1917
- ref: a,
2497
+ ref: o,
1918
2498
  role: "dialog",
1919
2499
  "aria-modal": "true",
1920
- "aria-labelledby": V(o),
2500
+ "aria-labelledby": t.$slots.title ? void 0 : W(s),
2501
+ "aria-label": t.$slots.title ? e.title : void 0,
1921
2502
  class: [
1922
2503
  "glim-modal-card",
1923
2504
  "glim-window",
1924
2505
  e.size !== "normal" && `glim-window--${e.size}`
1925
2506
  ]
1926
2507
  }), [
1927
- C("h2", {
1928
- id: V(o),
2508
+ E("h2", {
2509
+ id: W(s),
1929
2510
  class: "glim-window-title"
1930
- }, [E(Y, {
2511
+ }, [k(Jt, {
1931
2512
  tone: "heading",
1932
2513
  size: "heading",
1933
2514
  wrap: "",
1934
2515
  "inset-start": 5
1935
2516
  }, {
1936
- default: W(() => [T(B(e.title), 1)]),
1937
- _: 1
1938
- })], 8, Vr),
1939
- C("div", Hr, [L(t.$slots, "default")]),
1940
- l.value.length ? (P(), S("div", Ur, [c.value ? (P(), S("span", Wr, [L(t.$slots, "start", {}, () => [T(B(e.start), 1)])])) : x("", !0), (P(!0), S(_, null, I(l.value, (e, t) => (P(), b(Z, {
2517
+ default: q(() => [B(t.$slots, "title", {}, () => [O(U(e.title), 1)])]),
2518
+ _: 3
2519
+ })], 8, Bi),
2520
+ E("div", Vi, [B(t.$slots, "default")]),
2521
+ u.value.length ? (L(), T("div", Hi, [l.value ? (L(), T("span", Ui, [B(t.$slots, "start", {}, () => [O(U(e.start), 1)])])) : w("", !0), (L(!0), T(b, null, z(u.value, (e, t) => (L(), C(Z, M({ ref_for: !0 }, e.attrs, {
1941
2522
  key: t,
1942
2523
  label: e.label,
1943
2524
  "label-key": e.labelKey,
1944
2525
  glyph: e.glyph,
1945
2526
  tone: e.primary ? "accent" : "neutral",
1946
2527
  disabled: e.disabled,
1947
- onClick: (t) => d(e)
1948
- }, null, 8, [
2528
+ onClick: (t) => f(e)
2529
+ }), null, 16, [
1949
2530
  "label",
1950
2531
  "label-key",
1951
2532
  "glyph",
1952
2533
  "tone",
1953
2534
  "disabled",
1954
2535
  "onClick"
1955
- ]))), 128))])) : x("", !0)
1956
- ], 16, Br)], 32)]));
2536
+ ]))), 128))])) : w("", !0)
2537
+ ], 16, zi)], 32)]));
1957
2538
  }
1958
2539
  });
1959
2540
  // src/confirm.ts
1960
- function Kr(e) {
1961
- let t = z(null), n = z(null), r = null, i = null;
2541
+ function Gi(e) {
2542
+ let t = H(null), n = H(null), r = null, i = null;
1962
2543
  function a(e, n) {
1963
- return i = Pe(), new Promise((i) => {
2544
+ return i = He(), new Promise((i) => {
1964
2545
  r = i, t.value = {
1965
2546
  message: e,
1966
2547
  ...n
@@ -1968,17 +2549,17 @@ function Kr(e) {
1968
2549
  });
1969
2550
  }
1970
2551
  function o(e) {
1971
- r?.(e), r = null, t.value = null, rt(i), i = null;
2552
+ r?.(e), r = null, t.value = null, mt(i), i = null;
1972
2553
  }
1973
2554
  let s = () => o(!1);
1974
- return U(t, (e, t, r) => {
1975
- e && r(Ct(() => n.value, s));
2555
+ return K(t, (e, t, r) => {
2556
+ e && r(Lt(() => n.value, s));
1976
2557
  }), {
1977
2558
  confirm: a,
1978
2559
  dismiss: s,
1979
- ConfirmHost: D(() => () => {
2560
+ ConfirmHost: A(() => () => {
1980
2561
  let r = t.value;
1981
- return r ? ee(v, { to: "body" }, [ee(cn, {
2562
+ return r ? te(x, { to: "body" }, [te(Tn, {
1982
2563
  ref: (e) => n.value = e?.card ?? null,
1983
2564
  title: e.title,
1984
2565
  message: r.message,
@@ -1988,8 +2569,8 @@ function Kr(e) {
1988
2569
  cancelLabel: e.cancel,
1989
2570
  onConfirm: () => o(!0),
1990
2571
  onCancel: () => o(!1)
1991
- }, r.extra ? { extra: () => ee(r.extra) } : void 0)]) : null;
2572
+ }, r.extra ? { extra: () => te(r.extra) } : void 0)]) : null;
1992
2573
  })
1993
2574
  };
1994
2575
  }
1995
- export { Y as Badge, Nt as BrandMark, Z as Button, Gt as Card, Yt as Checkbox, en as ColorPicker, cn as ConfirmDialog, Cn as ContextMenu, Dn as CopyField, jn as EmptyState, he as GLIMSTONE_VERSION, h as IconCancel, u as IconCheck, p as IconClose, s as IconCopy, r as IconExpand, d as IconEye, m as IconEyeOff, i as IconPencil, J as IconTipButton, c as IconWindowMaximise, g as IconWindowMinimise, a as IconWindowRestore, Vn as InfoAboutCard, Q as InfoBubble, Wn as InfoHelpCard, er as InfoTile, $n as InfoVersionCard, un as Kbd, o as MarkSvg, rr as MenuBar, ar as Meter, sr as NumberField, lr as PasswordField, ur as Pill, fr as ProgressBar, $ as ReadmeButton, vr as Selector, xr as SidebarRow, Tr as SubCard, Ar as ToastViewport, Pr as Toggle, zr as UnavailableNotice, Gr as Window, f as glyphFor, ut as selectorTabId, l as setGlyphResolver, zt as useAccent, Kr as useConfirm, Ft as useHue, X as useLabelMode, Rt as useMotion, Pt as useRainbow, Lt as useShape, t as useTipBubble };
2576
+ export { Jt as Badge, Xt as BrandMark, Z as Button, ln as Card, pn as Checkbox, vn as ColorPicker, Tn as ConfirmDialog, Bn as ContextMenu, Un as CopyField, qn as EmptyState, Zn as FieldRow, Qn as FieldRowGroup, be as GLIMSTONE_VERSION, tr as GlyphField, nr as GlyphTile, ir as IconButton, g as IconCancel, d as IconCheck, m as IconClose, c as IconCopy, r as IconExpand, f as IconEye, h as IconEyeOff, i as IconFolderOpen, l as IconPencil, Kt as IconTipButton, _ as IconWindowMaximise, a as IconWindowMinimise, o as IconWindowRestore, mr as InfoAboutCard, Q as InfoBubble, _r as InfoHelpCard, Dr as InfoTile, Er as InfoVersionCard, Dn as Kbd, Mr as ListRow, p as MarkSvg, Fr as MenuBar, Lr as Meter, Br as NumberField, Hr as PasswordField, Wr as PathField, Jn as Pill, Kr as ProgressBar, $ as ReadmeButton, qr as RowMark, $r as Selector, ii as SidebarRow, ci as SubCard, pi as Table, hi as TextArea, _i as TextField, wi as ToastViewport, Di as Toggle, Ni as Tree, Ri as UnavailableNotice, Wi as Window, u as glyphFor, xt as selectorTabId, s as setGlyphResolver, rn as useAccent, Gi as useConfirm, y as useFieldName, $t as useHue, Zt as useLabelMode, nn as useMotion, Qt as useRainbow, tn as useShape, t as useTipBubble };