@glimstone/vue 4.0.0 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,14 +1,14 @@
1
1
  import { n as e, r as t, t as n } from "./TipWrap-rNAEgvb0.js";
2
- import { a as r, c as i, i as a, l as o, n as s, o as c, r as l, s as u, t as d, u as f } from "./glyphs-CvCRgBMU.js";
3
- import { Fragment as p, Teleport as m, computed as h, createBlock as g, createCommentVNode as _, createElementBlock as v, createElementVNode as y, createSlots as b, createTextVNode as x, createVNode as S, defineComponent as C, h as w, mergeModels as ee, mergeProps as T, normalizeClass as E, normalizeStyle as D, onBeforeUnmount as te, onMounted as ne, onScopeDispose as O, openBlock as k, ref as re, renderList as A, renderSlot as j, resolveDynamicComponent as M, shallowRef as N, toDisplayString as P, unref as F, useAttrs as ie, useId as ae, useModel as I, useSlots as oe, watch as L, withCtx as R, withKeys as se, withModifiers as z } from "vue";
4
- import { DEFAULT_MOTION as ce, DEFAULT_SHAPE as le, DESKTOP_QUERY as ue, GLIMSTONE_VERSION as de, MARKS as fe, TOAST_MARKS as pe, WIDE_QUERY as me, applyAccent as he, applyMotion as ge, applyRainbow as _e, applyShape as ve, attachNumberSteppers as ye, badgeClassName as be, buttonView as xe, countSelector as Se, focusedAsker as Ce, getLabelMode as B, hueVars as V, keepReadmeFit as we, labelModeChanged as Te, mailHref as Ee, mediaMatches as H, offersMail as De, openInBrowser as U, rainbowState as Oe, readmePartClass as ke, readmeSoon as Ae, readmeUnitClass as je, returnFocus as Me, roveSelector as Ne, rovedIndex as Pe, runUpdateCheck as Fe, segmentView as Ie, selectorAxis as Le, selectorFlex as Re, selectorTabId as ze, selectorTabId as Be, selectorView as Ve, setLabelMode as He, sidebarRowView as Ue, subscribeLabelMode as We, subscribeMedia as Ge, subscribeRainbow as Ke, syncNumberSteppers as qe, takePageHue as W, toggleSelection as Je, trapDialogKeys as Ye, updateFace as Xe, updateStage as Ze, versionLink as G, watchSelectorFit as Qe, watchSelectorRows as $e } from "@glimstone/core";
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
5
  // src/IconTipButton.vue?vue&type=script&setup=true&lang.ts
6
- var et = [
6
+ var At = [
7
7
  "type",
8
8
  "disabled",
9
9
  "aria-label",
10
10
  "aria-describedby"
11
- ], tt = /* @__PURE__ */ C({
11
+ ], J = /* @__PURE__ */ D({
12
12
  inheritAttrs: !1,
13
13
  __name: "IconTipButton",
14
14
  props: {
@@ -21,30 +21,30 @@ var et = [
21
21
  },
22
22
  setup(r) {
23
23
  let i = r, a = t(() => i.tip, () => i.disabled);
24
- return (t, i) => (k(), v(p, null, [S(F(n), {
24
+ return (t, i) => (P(), S(_, null, [E(V(n), {
25
25
  on: r.disabled,
26
- show: F(a).show,
27
- hide: F(a).hide
26
+ show: V(a).show,
27
+ hide: V(a).hide
28
28
  }, {
29
- default: R(() => [y("button", T(t.$attrs, {
30
- ref: (e) => F(a).trigger.value = e,
29
+ default: W(() => [C("button", k(t.$attrs, {
30
+ ref: (e) => V(a).trigger.value = e,
31
31
  type: r.type,
32
32
  disabled: r.disabled,
33
33
  "aria-label": r.tip,
34
- "aria-describedby": F(a).describedBy.value,
35
- onMouseenter: i[0] ||= (...e) => F(a).show && F(a).show(...e),
36
- onMouseleave: i[1] ||= (...e) => F(a).hide && F(a).hide(...e),
37
- onFocus: i[2] ||= (...e) => F(a).showOnFocus && F(a).showOnFocus(...e),
38
- onBlur: i[3] ||= (...e) => F(a).hide && F(a).hide(...e)
39
- }), [j(t.$slots, "default")], 16, et)]),
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)]),
40
40
  _: 3
41
41
  }, 8, [
42
42
  "on",
43
43
  "show",
44
44
  "hide"
45
- ]), S(e, { state: F(a) }, null, 8, ["state"])], 64));
45
+ ]), E(e, { state: V(a) }, null, 8, ["state"])], 64));
46
46
  }
47
- }), nt = ["disabled"], K = /* @__PURE__ */ C({
47
+ }), jt = ["disabled"], Y = /* @__PURE__ */ D({
48
48
  __name: "Badge",
49
49
  props: {
50
50
  tone: { default: "neutral" },
@@ -68,10 +68,10 @@ var et = [
68
68
  }
69
69
  },
70
70
  setup(e) {
71
- let t = e, n = h(() => t.hueIndex !== void 0 && (t.tone === "heading" || t.tone === "active")), r = h(() => [
71
+ let t = e, n = y(() => t.hueIndex !== void 0 && (t.tone === "heading" || t.tone === "active")), r = y(() => [
72
72
  n.value && "glim-hue",
73
73
  n.value && t.size === "heading" && "glim-notch-hue",
74
- be({
74
+ we({
75
75
  tone: t.tone,
76
76
  size: t.size,
77
77
  shape: t.shape,
@@ -81,112 +81,112 @@ var et = [
81
81
  insetStart: t.insetStart,
82
82
  action: t.as !== "span"
83
83
  })
84
- ].filter(Boolean)), i = h(() => n.value ? V(t.hueIndex) : void 0);
85
- return (t, n) => e.as === "button" && e.tip !== void 0 ? (k(), g(tt, {
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, {
86
86
  key: 0,
87
87
  tip: e.tip,
88
88
  disabled: e.disabled,
89
- class: E(r.value),
90
- style: D(i.value)
89
+ class: A(r.value),
90
+ style: j(i.value)
91
91
  }, {
92
- default: R(() => [j(t.$slots, "default")]),
92
+ default: W(() => [L(t.$slots, "default")]),
93
93
  _: 3
94
94
  }, 8, [
95
95
  "tip",
96
96
  "disabled",
97
97
  "class",
98
98
  "style"
99
- ])) : e.as === "button" ? (k(), v("button", {
99
+ ])) : e.as === "button" ? (P(), S("button", {
100
100
  key: 1,
101
101
  type: "button",
102
102
  disabled: e.disabled,
103
- class: E(r.value),
104
- style: D(i.value)
105
- }, [j(t.$slots, "default")], 14, nt)) : e.as === "a" ? (k(), v("a", {
103
+ class: A(r.value),
104
+ style: j(i.value)
105
+ }, [L(t.$slots, "default")], 14, jt)) : e.as === "a" ? (P(), S("a", {
106
106
  key: 2,
107
- class: E(r.value),
108
- style: D(i.value)
109
- }, [j(t.$slots, "default")], 6)) : (k(), v("span", {
107
+ class: A(r.value),
108
+ style: j(i.value)
109
+ }, [L(t.$slots, "default")], 6)) : (P(), S("span", {
110
110
  key: 3,
111
- class: E(r.value),
112
- style: D(i.value)
113
- }, [j(t.$slots, "default")], 6));
111
+ class: A(r.value),
112
+ style: j(i.value)
113
+ }, [L(t.$slots, "default")], 6));
114
114
  }
115
- }), rt = ["innerHTML"], it = /* @__PURE__ */ C({
115
+ }), Mt = ["innerHTML"], Nt = /* @__PURE__ */ D({
116
116
  __name: "BrandMark",
117
117
  props: { svg: {} },
118
118
  setup(e) {
119
- return (t, n) => (k(), v("span", {
119
+ return (t, n) => (P(), S("span", {
120
120
  class: "glim-brand-svg",
121
121
  "aria-hidden": "true",
122
122
  innerHTML: e.svg
123
- }, null, 8, rt));
123
+ }, null, 8, Mt));
124
124
  }
125
125
  });
126
126
  // src/engines.ts
127
- function q(e) {
128
- let t = N(B(e));
129
- return O(We(() => t.value = B(e))), h({
127
+ function X(e) {
128
+ let t = z(Fe(e));
129
+ return N(gt(() => t.value = Fe(e))), y({
130
130
  get: () => t.value,
131
131
  set: (t) => {
132
- He(e, t), Te();
132
+ pt(e, t), Re();
133
133
  }
134
134
  });
135
135
  }
136
- function at() {
137
- let e = N(Oe());
138
- return O(Ke(() => e.value = Oe())), h({
136
+ function Pt() {
137
+ let e = z($e());
138
+ return N(vt(() => e.value = $e())), y({
139
139
  get: () => e.value,
140
- set: (e) => _e(e)
140
+ set: (e) => xe(e)
141
141
  });
142
142
  }
143
- function ot(e) {
144
- return h(() => {
143
+ function Ft(e) {
144
+ return y(() => {
145
145
  let t = e();
146
- return t === void 0 ? void 0 : V(t);
146
+ return t === void 0 ? void 0 : Ie(t);
147
147
  });
148
148
  }
149
- function J(e, t) {
150
- let n = N(t()), r = new MutationObserver(() => n.value = t());
149
+ function It(e, t) {
150
+ let n = z(t()), r = new MutationObserver(() => n.value = t());
151
151
  return r.observe(document.documentElement, {
152
152
  attributes: !0,
153
153
  attributeFilter: [e]
154
- }), O(() => r.disconnect()), n;
154
+ }), N(() => r.disconnect()), n;
155
155
  }
156
- function st() {
157
- let e = J("data-shape", () => document.documentElement.getAttribute("data-shape") ?? le);
158
- return h({
156
+ function Lt() {
157
+ let e = It("data-shape", () => document.documentElement.getAttribute("data-shape") ?? pe);
158
+ return y({
159
159
  get: () => e.value,
160
- set: ve
160
+ set: Se
161
161
  });
162
162
  }
163
- function ct() {
164
- let e = J("data-motion", () => document.documentElement.getAttribute("data-motion") ?? ce);
165
- return h({
163
+ function Rt() {
164
+ let e = It("data-motion", () => document.documentElement.getAttribute("data-motion") ?? fe);
165
+ return y({
166
166
  get: () => e.value,
167
- set: ge
167
+ set: be
168
168
  });
169
169
  }
170
- function lt() {
171
- let e = J("style", () => document.documentElement.style.getPropertyValue("--accent"));
172
- return h({
170
+ function zt() {
171
+ let e = It("style", () => document.documentElement.style.getPropertyValue("--accent"));
172
+ return y({
173
173
  get: () => e.value,
174
- set: (e) => he(e || void 0)
174
+ set: (e) => ye(e || void 0)
175
175
  });
176
176
  }
177
177
  // src/Button.vue?vue&type=script&setup=true&lang.ts
178
- var ut = [
178
+ var Bt = [
179
179
  "type",
180
180
  "disabled",
181
181
  "aria-busy",
182
182
  "aria-describedby"
183
- ], dt = {
183
+ ], Vt = {
184
184
  key: 0,
185
185
  class: "glim-btn-glyph"
186
- }, ft = {
186
+ }, Ht = {
187
187
  key: 0,
188
188
  class: "glim-spinner"
189
- }, Y = /* @__PURE__ */ C({
189
+ }, Z = /* @__PURE__ */ D({
190
190
  inheritAttrs: !1,
191
191
  __name: "Button",
192
192
  props: {
@@ -213,10 +213,10 @@ var ut = [
213
213
  }
214
214
  },
215
215
  setup(r, { expose: i }) {
216
- let a = r, s = q("buttons"), c = h(() => a.glyph ?? (a.labelKey ? o(a.labelKey) : void 0) ?? (a.variant === "chip" ? l : void 0)), u = h(() => xe({
217
- mode: s.value,
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({
217
+ mode: o.value,
218
218
  label: a.label,
219
- hasGlyph: !!c.value || a.busy,
219
+ hasGlyph: !!s.value || a.busy,
220
220
  tone: a.tone,
221
221
  variant: a.variant,
222
222
  disabled: a.disabled,
@@ -224,42 +224,42 @@ var ut = [
224
224
  title: a.title,
225
225
  hueIndex: a.hueIndex,
226
226
  stage: a.stage
227
- })), d = t(() => u.value.tip, () => a.disabled), f = N(null);
228
- function m(e) {
229
- f.value = e, d.trigger.value = f.value;
227
+ })), l = t(() => c.value.tip, () => a.disabled), u = z(null);
228
+ function d(e) {
229
+ u.value = e, l.trigger.value = u.value;
230
230
  }
231
- function b(e) {
232
- u.value.pageHue && W(e.currentTarget), d.show();
231
+ function m(e) {
232
+ c.value.pageHue && bt(e.currentTarget), l.show();
233
233
  }
234
- function x(e) {
235
- u.value.pageHue && W(e.currentTarget), d.showOnFocus();
234
+ function h(e) {
235
+ c.value.pageHue && bt(e.currentTarget), l.showOnFocus();
236
236
  }
237
- return i({ el: f }), (t, i) => (k(), v(p, null, [S(F(n), {
238
- on: r.disabled && !!u.value.tip,
239
- show: F(d).show,
240
- hide: F(d).hide
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
241
241
  }, {
242
- default: R(() => [y("button", T(t.$attrs, {
243
- ref: m,
242
+ default: W(() => [C("button", k(t.$attrs, {
243
+ ref: d,
244
244
  type: r.type,
245
245
  disabled: r.disabled,
246
246
  "aria-busy": r.busy || void 0,
247
- "aria-describedby": F(d).describedBy.value,
248
- style: u.value.style,
249
- class: u.value.className,
250
- onMouseenter: b,
251
- onMouseleave: i[0] ||= (...e) => F(d).hide && F(d).hide(...e),
252
- onFocus: x,
253
- onBlur: i[1] ||= (...e) => F(d).hide && F(d).hide(...e)
254
- }), [u.value.showGlyph ? (k(), v("span", dt, [r.busy ? (k(), v("span", ft)) : (k(), g(M(c.value), { key: 1 }))])) : _("", !0), y("span", { class: E(u.value.labelClass) }, P(r.label), 3)], 16, ut)]),
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
255
  _: 1
256
256
  }, 8, [
257
257
  "on",
258
258
  "show",
259
259
  "hide"
260
- ]), S(e, { state: F(d) }, null, 8, ["state"])], 64));
260
+ ]), E(e, { state: V(l) }, null, 8, ["state"])], 64));
261
261
  }
262
- }), pt = ["aria-label", "aria-describedby"], X = /* @__PURE__ */ C({
262
+ }), Ut = ["aria-label", "aria-describedby"], Q = /* @__PURE__ */ D({
263
263
  __name: "InfoBubble",
264
264
  props: {
265
265
  tip: {},
@@ -270,49 +270,49 @@ var ut = [
270
270
  },
271
271
  setup(n) {
272
272
  let r = n, i = t(() => r.tip);
273
- return (t, r) => (k(), v(p, null, [y("span", {
274
- ref: (e) => F(i).trigger.value = e,
273
+ return (t, r) => (P(), S(_, null, [C("span", {
274
+ ref: (e) => V(i).trigger.value = e,
275
275
  "aria-label": n.tip,
276
- "aria-describedby": F(i).describedBy.value,
276
+ "aria-describedby": V(i).describedBy.value,
277
277
  tabindex: "0",
278
- class: E(n.onAccent ? "glim-info-icon glim-info-icon--on-accent" : "glim-info-icon"),
279
- onMouseenter: r[0] ||= (...e) => F(i).show && F(i).show(...e),
280
- onMouseleave: r[1] ||= (...e) => F(i).hide && F(i).hide(...e),
281
- onFocus: r[2] ||= (...e) => F(i).showOnFocus && F(i).showOnFocus(...e),
282
- onBlur: r[3] ||= (...e) => F(i).hide && F(i).hide(...e),
283
- onClick: r[4] ||= z(() => {}, ["prevent"])
284
- }, [...r[5] ||= [y("svg", {
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", {
285
285
  viewBox: "0 0 16 16",
286
286
  width: "15",
287
287
  height: "15",
288
288
  fill: "none",
289
289
  "aria-hidden": "true"
290
290
  }, [
291
- y("circle", {
291
+ C("circle", {
292
292
  cx: "8",
293
293
  cy: "8",
294
294
  r: "7",
295
295
  stroke: "currentColor",
296
296
  "stroke-width": "1.3"
297
297
  }),
298
- y("circle", {
298
+ C("circle", {
299
299
  cx: "8",
300
300
  cy: "4.6",
301
301
  r: "0.9",
302
302
  fill: "currentColor"
303
303
  }),
304
- y("path", {
304
+ C("path", {
305
305
  d: "M8 7v4.4",
306
306
  stroke: "currentColor",
307
307
  "stroke-width": "1.3",
308
308
  "stroke-linecap": "round"
309
309
  })
310
- ], -1)]], 42, pt), S(e, { state: F(i) }, null, 8, ["state"])], 64));
310
+ ], -1)]], 42, Ut), E(e, { state: V(i) }, null, 8, ["state"])], 64));
311
311
  }
312
- }), mt = {
312
+ }), Wt = {
313
313
  key: 0,
314
314
  class: "glim-panel-heading"
315
- }, Z = /* @__PURE__ */ C({
315
+ }, Gt = /* @__PURE__ */ D({
316
316
  __name: "Card",
317
317
  props: {
318
318
  title: {},
@@ -321,9 +321,9 @@ var ut = [
321
321
  nested: { type: Boolean }
322
322
  },
323
323
  setup(e) {
324
- let t = e, n = h(() => t.hueIndex === void 0 ? void 0 : V(t.hueIndex));
325
- return (t, r) => (k(), v("div", {
326
- class: 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([
327
327
  "glim-panel",
328
328
  "glim-notch-card",
329
329
  {
@@ -331,31 +331,158 @@ var ut = [
331
331
  "glim-hue": e.hueIndex !== void 0
332
332
  }
333
333
  ]),
334
- style: D(n.value)
335
- }, [e.title || e.hint ? (k(), v("h2", mt, [S(K, {
334
+ style: j(n.value)
335
+ }, [e.title || e.hint ? (P(), S("h2", Wt, [E(Y, {
336
336
  tone: "heading",
337
337
  size: "heading",
338
338
  wrap: "",
339
339
  "hue-index": e.hueIndex
340
340
  }, {
341
- default: R(() => [x(P(e.title) + " ", 1), e.hint ? (k(), g(X, {
341
+ default: W(() => [T(B(e.title) + " ", 1), e.hint ? (P(), b(Q, {
342
342
  key: 0,
343
343
  tip: e.hint,
344
344
  "on-accent": ""
345
- }, null, 8, ["tip"])) : _("", !0)]),
345
+ }, null, 8, ["tip"])) : x("", !0)]),
346
346
  _: 1
347
- }, 8, ["hue-index"])])) : _("", !0), j(t.$slots, "default")], 6));
347
+ }, 8, ["hue-index"])])) : x("", !0), L(t.$slots, "default")], 6));
348
+ }
349
+ }), Kt = [
350
+ "aria-checked",
351
+ "aria-label",
352
+ "disabled"
353
+ ], qt = {
354
+ class: "glim-checkbox-box",
355
+ "aria-hidden": "true"
356
+ }, Jt = { key: 0 }, Yt = /* @__PURE__ */ D({
357
+ __name: "Checkbox",
358
+ props: /*@__PURE__*/ O({
359
+ label: {},
360
+ hideLabel: {
361
+ type: Boolean,
362
+ default: !1
363
+ },
364
+ slim: {
365
+ type: Boolean,
366
+ default: !1
367
+ },
368
+ disabled: {
369
+ type: Boolean,
370
+ default: !1
371
+ }
372
+ }, {
373
+ modelValue: {
374
+ type: Boolean,
375
+ required: !0
376
+ },
377
+ modelModifiers: {}
378
+ }),
379
+ emits: ["update:modelValue"],
380
+ setup(e) {
381
+ let t = e, n = y(() => t.hideLabel || t.slim), r = H(e, "modelValue");
382
+ return (t, i) => (P(), S("button", {
383
+ type: "button",
384
+ role: "checkbox",
385
+ "aria-checked": r.value,
386
+ "aria-label": n.value ? e.label : void 0,
387
+ disabled: e.disabled,
388
+ class: A(["glim-checkbox", { "glim-checkbox--slim": e.slim }]),
389
+ 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));
348
391
  }
349
- }), ht = { class: "glim-modal-head" }, gt = {
392
+ }), Xt = { class: "glim-picker-foot" }, Zt = {
393
+ key: 0,
394
+ class: "glim-picker-name"
395
+ }, Qt = ["value", "aria-label"], $t = { class: "glim-picker-actions" }, en = /* @__PURE__ */ D({
396
+ __name: "ColorPicker",
397
+ props: /*@__PURE__*/ O({
398
+ anchor: { default: null },
399
+ names: {
400
+ type: [Array, Boolean],
401
+ default: () => le
402
+ },
403
+ text: {}
404
+ }, {
405
+ modelValue: { required: !0 },
406
+ modelModifiers: {}
407
+ }),
408
+ emits: /*@__PURE__*/ O([
409
+ "apply",
410
+ "input",
411
+ "close"
412
+ ], ["update:modelValue"]),
413
+ setup(e, { emit: t }) {
414
+ let n = e, r = H(e, "modelValue"), i = t, a = {
415
+ ...ue,
416
+ ...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) => {
418
+ c.value = e, l.value = e, i("input", e);
419
+ }, { 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);
424
+ t && (c.value = t, l.value = t, f.setValue(t));
425
+ });
426
+ function m(e) {
427
+ l.value = e.target.value;
428
+ let t = Ke(l.value);
429
+ t && (c.value = t, f.setValue(t), i("input", t));
430
+ }
431
+ function h() {
432
+ r.value = c.value, i("apply", c.value, d.value), n.anchor && (n.anchor.focus(), i("close"));
433
+ }
434
+ function g(e) {
435
+ e.key === "Enter" && !(e.target instanceof HTMLButtonElement) && (e.preventDefault(), h());
436
+ }
437
+ return (t, n) => (P(), b(v, {
438
+ to: "body",
439
+ disabled: !e.anchor
440
+ }, [C("div", {
441
+ ref_key: "panel",
442
+ ref: o,
443
+ class: A(["glim-picker-panel", e.anchor && "glim-picker-panel--float"]),
444
+ style: j({ "--glim-picker-colour": c.value }),
445
+ onKeydown: g
446
+ }, [
447
+ C("div", {
448
+ ref_key: "host",
449
+ ref: s,
450
+ style: { display: "contents" }
451
+ }, null, 512),
452
+ C("div", Xt, [
453
+ n[0] ||= C("span", {
454
+ class: "glim-picker-swatch",
455
+ "aria-hidden": "true"
456
+ }, null, -1),
457
+ d.value === null ? x("", !0) : (P(), S("span", Zt, B(d.value), 1)),
458
+ C("input", {
459
+ class: "glim-picker-hex",
460
+ value: l.value,
461
+ maxlength: "7",
462
+ spellcheck: "false",
463
+ "aria-label": a.hex,
464
+ onInput: m
465
+ }, null, 40, Qt)
466
+ ]),
467
+ C("div", $t, [E(Z, {
468
+ label: a.apply,
469
+ "label-key": "apply",
470
+ glyph: V(u),
471
+ tone: "accent",
472
+ onClick: h
473
+ }, null, 8, ["label", "glyph"])])
474
+ ], 38)], 8, ["disabled"]));
475
+ }
476
+ }), tn = { class: "glim-modal-head" }, nn = {
350
477
  id: "confirmdialog-title",
351
478
  class: "glim-modal-title"
352
- }, _t = { class: "glim-modal-body" }, vt = {
479
+ }, rn = { class: "glim-modal-body" }, an = {
353
480
  id: "confirmdialog-message",
354
481
  class: "glim-modal-text"
355
- }, yt = {
482
+ }, on = {
356
483
  key: 0,
357
484
  class: "glim-modal-extra"
358
- }, bt = { class: "glim-modal-foot" }, xt = /* @__PURE__ */ C({
485
+ }, sn = { class: "glim-modal-foot" }, cn = /* @__PURE__ */ D({
359
486
  __name: "ConfirmDialog",
360
487
  props: {
361
488
  title: {},
@@ -368,11 +495,11 @@ var ut = [
368
495
  },
369
496
  emits: ["confirm", "cancel"],
370
497
  setup(e, { expose: t, emit: n }) {
371
- let r = n, i = N(null), a = N(null);
372
- return ne(() => a.value?.el?.focus()), t({ card: i }), (t, n) => (k(), v("div", {
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", {
373
500
  class: "glim-modal-backdrop",
374
- onClick: n[3] ||= z((e) => r("cancel"), ["self"])
375
- }, [y("div", {
501
+ onClick: n[3] ||= G((e) => r("cancel"), ["self"])
502
+ }, [C("div", {
376
503
  ref_key: "card",
377
504
  ref: i,
378
505
  role: "dialog",
@@ -381,30 +508,30 @@ var ut = [
381
508
  "aria-describedby": "confirmdialog-message",
382
509
  class: "glim-modal-card"
383
510
  }, [
384
- y("div", ht, [y("h2", gt, [S(K, {
511
+ C("div", tn, [C("h2", nn, [E(Y, {
385
512
  tone: "heading",
386
513
  size: "heading",
387
514
  wrap: ""
388
515
  }, {
389
- default: R(() => [x(P(e.title), 1)]),
516
+ default: W(() => [T(B(e.title), 1)]),
390
517
  _: 1
391
- })]), e.closeLabel === void 0 ? _("", !0) : (k(), g(Y, {
518
+ })]), e.closeLabel === void 0 ? x("", !0) : (P(), b(Z, {
392
519
  key: 0,
393
520
  label: e.closeLabel,
394
521
  "label-key": "common.close",
395
- glyph: F(l),
522
+ glyph: V(p),
396
523
  class: "glim-modal-close",
397
524
  onClick: n[0] ||= (e) => r("cancel")
398
525
  }, null, 8, ["label", "glyph"]))]),
399
- y("div", _t, [y("p", vt, P(e.message), 1), t.$slots.extra ? (k(), v("div", yt, [j(t.$slots, "extra")])) : _("", !0)]),
400
- y("div", bt, [S(Y, {
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, {
401
528
  ref_key: "cancel",
402
529
  ref: a,
403
530
  label: e.cancelLabel,
404
531
  "label-key": "common.cancel",
405
- glyph: F(d),
532
+ glyph: V(h),
406
533
  onClick: n[1] ||= (e) => r("cancel")
407
- }, null, 8, ["label", "glyph"]), S(Y, {
534
+ }, null, 8, ["label", "glyph"]), E(Z, {
408
535
  label: e.confirmLabel,
409
536
  "label-key": e.confirmLabelKey ?? null,
410
537
  glyph: e.confirmGlyph,
@@ -416,14 +543,284 @@ var ut = [
416
543
  ])])
417
544
  ], 512)]));
418
545
  }
419
- }), St = {
546
+ }), ln = { class: "glim-kbd" }, un = /* @__PURE__ */ D({
547
+ __name: "Kbd",
548
+ setup(e) {
549
+ return (e, t) => (P(), S("kbd", ln, [L(e.$slots, "default")]));
550
+ }
551
+ }), dn = {
552
+ key: 0,
553
+ class: "glim-menu-sep",
554
+ role: "separator"
555
+ }, fn = {
556
+ key: 1,
557
+ class: "glim-menu-head",
558
+ role: "presentation"
559
+ }, pn = [
560
+ "role",
561
+ "aria-checked",
562
+ "aria-haspopup",
563
+ "aria-expanded",
564
+ "disabled",
565
+ "data-row",
566
+ "onClick"
567
+ ], mn = {
568
+ key: 0,
569
+ class: "glim-checkbox-box",
570
+ "aria-hidden": "true"
571
+ }, hn = {
572
+ key: 2,
573
+ class: "glim-menu-glyph",
574
+ "aria-hidden": "true"
575
+ }, gn = { class: "glim-menu-label" }, _n = {
576
+ key: 3,
577
+ class: "glim-menu-end glim-menu-caret",
578
+ "aria-hidden": "true"
579
+ }, vn = {
580
+ key: 4,
581
+ class: "glim-menu-end glim-menu-tick",
582
+ "aria-hidden": "true"
583
+ }, yn = {
584
+ key: 6,
585
+ class: "glim-menu-end glim-menu-count glim-num"
586
+ }, bn = /* @__PURE__ */ D({
587
+ __name: "MenuRows",
588
+ props: {
589
+ entries: {},
590
+ openAt: {}
591
+ },
592
+ emits: ["pick"],
593
+ setup(e, { emit: t }) {
594
+ let n = e, a = t, o = y(() => n.entries.map((e) => e === "-" ? { kind: "sep" } : K(e) ? {
595
+ kind: "head",
596
+ head: e
597
+ } : {
598
+ kind: "item",
599
+ item: e,
600
+ view: Ue(e)
601
+ }));
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, {
603
+ key: 0,
604
+ tip: t.head.edit.tip,
605
+ role: "menuitem",
606
+ tabindex: "-1",
607
+ class: "glim-menu-head-edit",
608
+ "data-row": n,
609
+ onClick: (e) => a("pick", n)
610
+ }, {
611
+ default: W(() => [(P(), b(R(t.head.edit.glyph ?? V(i))))]),
612
+ _: 2
613
+ }, 1032, [
614
+ "tip",
615
+ "data-row",
616
+ "onClick"
617
+ ])) : x("", !0)])) : (P(), S("button", {
618
+ key: 2,
619
+ type: "button",
620
+ role: t.view.role,
621
+ tabindex: "-1",
622
+ "aria-checked": t.view.role === "menuitem" ? void 0 : t.item.checked,
623
+ "aria-haspopup": t.item.sub ? "menu" : void 0,
624
+ "aria-expanded": t.item.sub ? e.openAt === n : void 0,
625
+ disabled: t.item.disabled,
626
+ class: A(["glim-menu-item", { "glim-menu-item--current": t.view.current }]),
627
+ "data-row": n,
628
+ onClick: (e) => a("pick", n)
629
+ }, [
630
+ t.view.lead === "box" ? (P(), S("span", mn, [E(V(u))])) : t.view.lead === "dot" ? (P(), S("span", {
631
+ key: 1,
632
+ class: "glim-menu-dot",
633
+ style: j({ backgroundColor: t.item.color }),
634
+ "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, {
638
+ key: 5,
639
+ class: "glim-menu-end"
640
+ }, {
641
+ default: W(() => [T(B(t.item.shortcut), 1)]),
642
+ _: 2
643
+ }, 1024)) : t.view.end === "count" ? (P(), S("span", yn, B(t.item.count), 1)) : x("", !0)
644
+ ], 10, pn))], 64))), 128));
645
+ }
646
+ }), xn = ["aria-label"], Sn = ["aria-label"], Cn = /* @__PURE__ */ D({
647
+ __name: "ContextMenu",
648
+ props: {
649
+ x: {},
650
+ y: {},
651
+ items: {},
652
+ above: {
653
+ type: Boolean,
654
+ default: !1
655
+ },
656
+ label: { default: void 0 },
657
+ opener: { default: null }
658
+ },
659
+ emits: ["close", "step"],
660
+ setup(e, { emit: t }) {
661
+ let n = e, r = t, i = z(null), a = z(null), o = Pe(), s = F({
662
+ left: n.x,
663
+ top: n.y
664
+ }), c = z(null), l = F(null), u = y(() => xt(n.items)), d = y(() => {
665
+ 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 = () => ({
668
+ width: innerWidth,
669
+ height: innerHeight
670
+ });
671
+ function m(e) {
672
+ r("close"), e && rt(n.opener ?? o);
673
+ }
674
+ function h() {
675
+ let e = i.value;
676
+ e && (s.value = Xe(n.x, n.y, {
677
+ width: e.offsetWidth,
678
+ height: e.offsetHeight
679
+ }, p(), n.above));
680
+ }
681
+ U(() => [
682
+ n.x,
683
+ n.y,
684
+ n.above
685
+ ], h, { flush: "post" });
686
+ let g, _;
687
+ M(() => {
688
+ h(), g = Ee(m), _ = De(() => [
689
+ i.value,
690
+ a.value,
691
+ n.opener
692
+ ], () => m(!1)), i.value && Me(i.value);
693
+ }), ne(() => {
694
+ g?.(), _?.();
695
+ }), U(c, (e) => {
696
+ l.value = null;
697
+ let t = e && i.value?.querySelector(`[data-row="${e.at}"]`), n = a.value;
698
+ if (!e || !t || !n) return;
699
+ let r = getComputedStyle(i.value).direction === "rtl";
700
+ l.value = Ze(t.getBoundingClientRect(), {
701
+ width: n.offsetWidth,
702
+ height: n.offsetHeight
703
+ }, p(), r), e.focus && Me(n);
704
+ }, { flush: "post" });
705
+ function w(e, t) {
706
+ let n = e[t];
707
+ n !== "-" && (K(n) ? (m(!0), n.edit?.onSelect()) : n.sub && e === u.value ? c.value = {
708
+ at: t,
709
+ focus: !0
710
+ } : (Ue(n).staysOpen || m(!0), n.onSelect?.()));
711
+ }
712
+ function T(e, t) {
713
+ if (e.key === "Tab") return m(!1);
714
+ let n = e.currentTarget, a = He(e.key, getComputedStyle(n).direction === "rtl");
715
+ if (!a) return;
716
+ if (e.preventDefault(), a !== "in" && a !== "out") return Ne(n, a);
717
+ if (t) {
718
+ a === "out" && c.value && (i.value?.querySelector(`[data-row="${c.value.at}"]`)?.focus(), c.value = null);
719
+ return;
720
+ }
721
+ let o = Number(document.activeElement?.dataset.row), s = u.value[o];
722
+ a === "in" && s && s !== "-" && !K(s) && s.sub && !s.disabled ? c.value = {
723
+ at: o,
724
+ focus: !0
725
+ } : r("step", a === "in" ? 1 : -1);
726
+ }
727
+ function D(e) {
728
+ let t = e.target.closest("[data-row]");
729
+ if (!t) return;
730
+ let n = Number(t.dataset.row), r = u.value[n], i = r !== "-" && !K(r) && !!r.sub && !r.disabled;
731
+ i && c.value?.at !== n ? c.value = {
732
+ at: n,
733
+ focus: !1
734
+ } : !i && c.value && (c.value = null);
735
+ }
736
+ return (t, n) => (P(), b(v, { to: "body" }, [C("div", {
737
+ ref_key: "menu",
738
+ ref: i,
739
+ role: "menu",
740
+ "aria-label": e.label,
741
+ class: "glim-menu",
742
+ style: j({
743
+ left: `${s.value.left}px`,
744
+ top: `${s.value.top}px`
745
+ }),
746
+ onKeydown: n[1] ||= (e) => T(e, !1),
747
+ onMouseover: D,
748
+ onContextmenu: n[2] ||= G(() => {}, ["prevent"])
749
+ }, [E(bn, {
750
+ entries: u.value,
751
+ "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", {
754
+ key: 0,
755
+ ref_key: "subMenu",
756
+ ref: a,
757
+ role: "menu",
758
+ "aria-label": d.value?.label,
759
+ class: "glim-menu",
760
+ style: j({
761
+ left: `${l.value?.left ?? 0}px`,
762
+ top: `${l.value?.top ?? 0}px`
763
+ }),
764
+ onKeydown: n[4] ||= (e) => T(e, !0),
765
+ onContextmenu: n[5] ||= G(() => {}, ["prevent"])
766
+ }, [E(bn, {
767
+ entries: f.value,
768
+ onPick: n[3] ||= (e) => w(f.value, e)
769
+ }, null, 8, ["entries"])], 44, Sn)) : x("", !0)]));
770
+ }
771
+ }), wn = { class: "glim-copy" }, Tn = ["value", "aria-label"], En = {
772
+ role: "status",
773
+ class: "glim-sr-only"
774
+ }, Dn = /* @__PURE__ */ D({
775
+ __name: "CopyField",
776
+ props: {
777
+ value: {},
778
+ label: {},
779
+ text: { default: () => ({
780
+ copy: "Copy",
781
+ copied: "Copied"
782
+ }) }
783
+ },
784
+ emits: ["copy"],
785
+ 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());
791
+ }
792
+ return (t, n) => (P(), S("span", wn, [
793
+ C("input", {
794
+ ref_key: "field",
795
+ ref: a,
796
+ readonly: "",
797
+ value: e.value,
798
+ "aria-label": e.label,
799
+ spellcheck: "false",
800
+ 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),
806
+ variant: "icon",
807
+ onClick: c
808
+ }, null, 8, [
809
+ "label",
810
+ "label-key",
811
+ "glyph"
812
+ ]),
813
+ C("span", En, B(i.value ? e.text.copied : ""), 1)
814
+ ]));
815
+ }
816
+ }), On = {
420
817
  key: 0,
421
818
  class: "glim-empty-glyph",
422
819
  "aria-hidden": "true"
423
- }, Ct = { class: "glim-empty-title" }, wt = {
820
+ }, kn = { class: "glim-empty-title" }, An = {
424
821
  key: 1,
425
822
  class: "glim-empty-hint"
426
- }, Tt = /* @__PURE__ */ C({
823
+ }, jn = /* @__PURE__ */ D({
427
824
  __name: "EmptyState",
428
825
  props: {
429
826
  glyph: {},
@@ -435,28 +832,28 @@ var ut = [
435
832
  }
436
833
  },
437
834
  setup(e) {
438
- return (t, n) => (k(), v("div", { class: E(e.nested ? "glim-empty" : "glim-card glim-empty") }, [
439
- e.glyph ? (k(), v("span", St, [(k(), g(M(e.glyph)))])) : _("", !0),
440
- y("p", Ct, P(e.title), 1),
441
- e.hint ? (k(), v("p", wt, P(e.hint), 1)) : _("", !0),
442
- j(t.$slots, "default")
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")
443
840
  ], 2));
444
841
  }
445
- }), Et = {
842
+ }), Mn = {
446
843
  key: 0,
447
844
  class: "glim-readme-btn-art",
448
845
  "aria-hidden": "true"
449
- }, Dt = { class: "glim-readme-btn-text" }, Ot = { class: "glim-readme-btn-name" }, kt = {
846
+ }, Nn = { class: "glim-readme-btn-text" }, Pn = { class: "glim-readme-btn-name" }, Fn = {
450
847
  key: 0,
451
848
  class: "glim-readme-btn-sub"
452
- }, At = {
849
+ }, In = {
453
850
  key: 0,
454
851
  class: "glim-readme-btn-sheen",
455
852
  "aria-hidden": "true"
456
- }, jt = {
853
+ }, Ln = {
457
854
  key: 1,
458
855
  class: "glim-readme-btn-hint"
459
- }, Q = /* @__PURE__ */ C({
856
+ }, $ = /* @__PURE__ */ D({
460
857
  __name: "ReadmeButton",
461
858
  props: {
462
859
  brand: {},
@@ -471,10 +868,10 @@ var ut = [
471
868
  },
472
869
  emits: ["linkClick"],
473
870
  setup(e, { emit: t }) {
474
- let n = e, r = t, i = h(() => Ae(n.parts)), a = N(null), o = h(() => n.parts.map((e) => `${e.name}\n${e.sub ?? ""}`).join("\n") + (i.value ? n.soonLabel : "")), s;
475
- L([a, o], () => {
476
- s?.(), s = a.value ? we(a.value) : void 0;
477
- }, { flush: "post" }), O(() => s?.());
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?.());
478
875
  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 ? {
479
876
  href: e.href,
480
877
  target: "_blank",
@@ -484,27 +881,27 @@ var ut = [
484
881
  type: "button",
485
882
  onClick: e.onClick
486
883
  };
487
- return (t, n) => (k(), v("div", {
884
+ return (t, n) => (P(), S("div", {
488
885
  ref_key: "root",
489
886
  ref: a,
490
- class: E(F(je)(e.brand, e.parts.length, e.note, i.value))
887
+ class: A(V(nt)(e.brand, e.parts.length, e.note, i.value))
491
888
  }, [
492
- (k(!0), v(p, null, A(e.parts, (n, r) => (k(), g(M(u(n)), T({ key: r }, { ref_for: !0 }, d(n), {
889
+ (P(!0), S(_, null, I(e.parts, (n, r) => (P(), b(R(u(n)), k({ key: r }, { ref_for: !0 }, d(n), {
493
890
  "aria-label": l(n),
494
- class: F(ke)(r, i.value)
891
+ class: V(et)(r, i.value)
495
892
  }), {
496
- default: R(() => [r === 0 && t.$slots.art ? (k(), v("span", Et, [j(t.$slots, "art")])) : (k(), v(p, { key: 1 }, [r === 0 && t.$slots.mark ? (k(), v("span", {
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", {
497
894
  key: 0,
498
- class: E(`glim-readme-btn-mark ${e.markClass ?? ""}`),
895
+ class: A(`glim-readme-btn-mark ${e.markClass ?? ""}`),
499
896
  "aria-hidden": "true"
500
- }, [j(t.$slots, "mark")], 2)) : _("", !0), y("span", Dt, [y("span", Ot, P(n.name), 1), c(n) ? (k(), v("span", kt, P(c(n)), 1)) : _("", !0)])], 64))]),
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))]),
501
898
  _: 2
502
899
  }, 1040, ["aria-label", "class"]))), 128)),
503
- i.value ? _("", !0) : (k(), v("span", At)),
504
- e.hint ? (k(), v("span", jt, [S(X, { tip: e.hint }, null, 8, ["tip"])])) : _("", !0)
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)
505
902
  ], 2));
506
903
  }
507
- }), Mt = { class: "glim-info-text" }, Nt = { class: "glim-info-text" }, Pt = { class: "glim-readme-btn-rows glim-about-give" }, Ft = /* @__PURE__ */ C({
904
+ }), Rn = { class: "glim-info-text" }, zn = { class: "glim-info-text" }, Bn = { class: "glim-readme-btn-rows glim-about-give" }, Vn = /* @__PURE__ */ D({
508
905
  __name: "InfoAboutCard",
509
906
  props: {
510
907
  text: {},
@@ -517,25 +914,25 @@ var ut = [
517
914
  hueIndex: {}
518
915
  },
519
916
  setup(e) {
520
- return (t, n) => (k(), g(Z, {
917
+ return (t, n) => (P(), b(Gt, {
521
918
  title: e.text.title,
522
919
  "hue-index": e.hueIndex
523
920
  }, {
524
- default: R(() => [
525
- y("p", Mt, P(e.text.body), 1),
526
- y("p", Nt, P(e.text.coffee), 1),
527
- y("div", Pt, [
528
- S(Q, {
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($, {
529
926
  brand: "coffee",
530
927
  parts: [{
531
928
  name: e.text.coffeeButton,
532
929
  onClick: e.onCoffee
533
930
  }]
534
931
  }, {
535
- art: R(() => [(k(), g(M(e.coffeeArt)))]),
932
+ art: W(() => [(P(), b(R(e.coffeeArt)))]),
536
933
  _: 1
537
934
  }, 8, ["parts"]),
538
- e.onPaypal && e.text.paypalButton ? (k(), g(Q, {
935
+ e.onPaypal && e.text.paypalButton ? (P(), b($, {
539
936
  key: 0,
540
937
  brand: "paypal",
541
938
  parts: [{
@@ -543,12 +940,12 @@ var ut = [
543
940
  onClick: e.onPaypal
544
941
  }],
545
942
  "mark-class": "glim-paypal-mark"
546
- }, b({ _: 2 }, [e.paypalGlyph ? {
943
+ }, w({ _: 2 }, [e.paypalGlyph ? {
547
944
  name: "mark",
548
- fn: R(() => [(k(), g(M(e.paypalGlyph)))]),
945
+ fn: W(() => [(P(), b(R(e.paypalGlyph)))]),
549
946
  key: "0"
550
- } : void 0]), 1032, ["parts"])) : _("", !0),
551
- e.onCrypto && e.text.cryptoButton ? (k(), g(Q, {
947
+ } : void 0]), 1032, ["parts"])) : x("", !0),
948
+ e.onCrypto && e.text.cryptoButton ? (P(), b($, {
552
949
  key: 1,
553
950
  brand: "bitcoin",
554
951
  parts: [{
@@ -556,17 +953,17 @@ var ut = [
556
953
  onClick: e.onCrypto
557
954
  }],
558
955
  "mark-class": "glim-bitcoin-mark"
559
- }, b({ _: 2 }, [e.cryptoGlyph ? {
956
+ }, w({ _: 2 }, [e.cryptoGlyph ? {
560
957
  name: "mark",
561
- fn: R(() => [(k(), g(M(e.cryptoGlyph)))]),
958
+ fn: W(() => [(P(), b(R(e.cryptoGlyph)))]),
562
959
  key: "0"
563
- } : void 0]), 1032, ["parts"])) : _("", !0)
960
+ } : void 0]), 1032, ["parts"])) : x("", !0)
564
961
  ])
565
962
  ]),
566
963
  _: 1
567
964
  }, 8, ["title", "hue-index"]));
568
965
  }
569
- }), It = { class: "glim-info-text" }, Lt = { class: "glim-readme-btn-rows" }, Rt = /* @__PURE__ */ C({
966
+ }), Hn = { class: "glim-info-text" }, Un = { class: "glim-readme-btn-rows" }, Wn = /* @__PURE__ */ D({
570
967
  __name: "InfoHelpCard",
571
968
  props: {
572
969
  text: {},
@@ -578,43 +975,43 @@ var ut = [
578
975
  manualGlyph: {},
579
976
  onBugReport: {},
580
977
  bugGlyph: {},
581
- openUrl: { default: U },
978
+ openUrl: { default: Je },
582
979
  hueIndex: {}
583
980
  },
584
981
  setup(e) {
585
- let t = e, n = h(() => De(t.text.report, t.mailAddress));
586
- return (t, r) => (k(), g(Z, {
982
+ let t = e, n = y(() => qe(t.text.report, t.mailAddress));
983
+ return (t, r) => (P(), b(Gt, {
587
984
  title: e.text.title,
588
985
  hint: e.text.hint,
589
986
  "hue-index": e.hueIndex
590
987
  }, {
591
- default: R(() => [y("p", It, P(e.text.report), 1), y("div", Lt, [
592
- S(Q, {
988
+ default: W(() => [C("p", Hn, B(e.text.report), 1), C("div", Un, [
989
+ E($, {
593
990
  brand: "github",
594
991
  parts: [{
595
992
  name: e.text.repoButton,
596
993
  onClick: () => e.openUrl(e.repoUrl)
597
994
  }],
598
995
  "mark-class": "glim-github-mark"
599
- }, b({ _: 2 }, [e.repoGlyph ? {
996
+ }, w({ _: 2 }, [e.repoGlyph ? {
600
997
  name: "mark",
601
- fn: R(() => [(k(), g(M(e.repoGlyph)))]),
998
+ fn: W(() => [(P(), b(R(e.repoGlyph)))]),
602
999
  key: "0"
603
1000
  } : void 0]), 1032, ["parts"]),
604
- n.value ? (k(), g(Q, {
1001
+ n.value ? (P(), b($, {
605
1002
  key: 0,
606
1003
  brand: "house",
607
1004
  parts: [{
608
1005
  name: e.text.mailButton,
609
- onClick: () => e.openUrl(F(Ee)(e.mailAddress, e.text.mailSubject))
1006
+ onClick: () => e.openUrl(V(ze)(e.mailAddress, e.text.mailSubject))
610
1007
  }],
611
1008
  "mark-class": "glim-house-mark"
612
- }, b({ _: 2 }, [e.mailGlyph ? {
1009
+ }, w({ _: 2 }, [e.mailGlyph ? {
613
1010
  name: "mark",
614
- fn: R(() => [(k(), g(M(e.mailGlyph)))]),
1011
+ fn: W(() => [(P(), b(R(e.mailGlyph)))]),
615
1012
  key: "0"
616
- } : void 0]), 1032, ["parts"])) : _("", !0),
617
- e.manualUrl && e.text.manual ? (k(), g(Q, {
1013
+ } : void 0]), 1032, ["parts"])) : x("", !0),
1014
+ e.manualUrl && e.text.manual ? (P(), b($, {
618
1015
  key: 1,
619
1016
  brand: "docs",
620
1017
  parts: [{
@@ -623,12 +1020,12 @@ var ut = [
623
1020
  onClick: () => e.openUrl(e.manualUrl)
624
1021
  }],
625
1022
  "mark-class": "glim-docs-mark"
626
- }, b({ _: 2 }, [e.manualGlyph ? {
1023
+ }, w({ _: 2 }, [e.manualGlyph ? {
627
1024
  name: "mark",
628
- fn: R(() => [(k(), g(M(e.manualGlyph)))]),
1025
+ fn: W(() => [(P(), b(R(e.manualGlyph)))]),
629
1026
  key: "0"
630
- } : void 0]), 1032, ["parts"])) : _("", !0),
631
- e.onBugReport && e.text.bugReport ? (k(), g(Q, {
1027
+ } : void 0]), 1032, ["parts"])) : x("", !0),
1028
+ e.onBugReport && e.text.bugReport ? (P(), b($, {
632
1029
  key: 2,
633
1030
  brand: "github",
634
1031
  parts: [{
@@ -636,11 +1033,11 @@ var ut = [
636
1033
  sub: e.text.bugReportSub,
637
1034
  onClick: e.onBugReport
638
1035
  }]
639
- }, b({ _: 2 }, [e.bugGlyph ? {
1036
+ }, w({ _: 2 }, [e.bugGlyph ? {
640
1037
  name: "mark",
641
- fn: R(() => [(k(), g(M(e.bugGlyph)))]),
1038
+ fn: W(() => [(P(), b(R(e.bugGlyph)))]),
642
1039
  key: "0"
643
- } : void 0]), 1032, ["parts"])) : _("", !0)
1040
+ } : void 0]), 1032, ["parts"])) : x("", !0)
644
1041
  ])]),
645
1042
  _: 1
646
1043
  }, 8, [
@@ -649,69 +1046,69 @@ var ut = [
649
1046
  "hue-index"
650
1047
  ]));
651
1048
  }
652
- }), zt = { class: "glim-version-rows" }, Bt = { class: "glim-version-name" }, Vt = { class: "glim-version-part" }, Ht = {
1049
+ }), Gn = { class: "glim-version-rows" }, Kn = { class: "glim-version-name" }, qn = { class: "glim-version-part" }, Jn = {
653
1050
  key: 0,
654
1051
  class: "glim-version-sub"
655
- }, Ut = ["href", "onClick"], Wt = {
1052
+ }, Yn = ["href", "onClick"], Xn = {
656
1053
  key: 1,
657
1054
  class: "glim-num glim-version-number"
658
- }, Gt = {
1055
+ }, Zn = {
659
1056
  key: 0,
660
1057
  class: "glim-version-actions"
661
- }, Kt = {
1058
+ }, Qn = {
662
1059
  role: "status",
663
1060
  class: "glim-sr-only"
664
- }, $ = /* @__PURE__ */ C({
1061
+ }, $n = /* @__PURE__ */ D({
665
1062
  __name: "InfoVersionCard",
666
1063
  props: {
667
1064
  text: {},
668
1065
  rows: {},
669
1066
  updateCheck: {},
670
1067
  onReleaseNotes: {},
671
- openUrl: { default: U },
1068
+ openUrl: { default: Je },
672
1069
  hueIndex: {}
673
1070
  },
674
1071
  setup(e) {
675
- let t = e, n = oe(), r = h(() => !n["whats-new"] && t.onReleaseNotes && t.text.releaseNotes), i = N({ kind: "idle" }), a = N(0), o = h(() => t.updateCheck && Xe(i.value, t.updateCheck.text));
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));
676
1073
  function s() {
677
- Fe(t.updateCheck, i.value, (e) => {
1074
+ ot(t.updateCheck, i.value, (e) => {
678
1075
  i.value = e, e.kind === "failed" && a.value++;
679
1076
  });
680
1077
  }
681
1078
  function c(e, n) {
682
1079
  e.preventDefault(), t.openUrl(n);
683
1080
  }
684
- return (t, n) => (k(), g(Z, {
1081
+ return (t, n) => (P(), b(Gt, {
685
1082
  title: e.text.title,
686
1083
  hint: e.text.hint,
687
1084
  "hue-index": e.hueIndex
688
1085
  }, {
689
- default: R(() => [y("ul", zt, [(k(!0), v(p, null, A(e.rows, (t) => (k(), v("li", {
1086
+ default: W(() => [C("ul", Gn, [(P(!0), S(_, null, I(e.rows, (t) => (P(), S("li", {
690
1087
  key: t.name,
691
1088
  class: "glim-version-row"
692
- }, [y("span", Bt, [y("span", Vt, P(t.name), 1), t.sub ? (k(), v("span", Ht, P(t.sub), 1)) : _("", !0)]), F(G)(t).href ? (k(), v("a", {
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", {
693
1090
  key: 0,
694
- href: F(G)(t).href,
1091
+ href: V(q)(t).href,
695
1092
  target: "_blank",
696
1093
  rel: "noopener noreferrer",
697
1094
  class: "glim-num glim-version-number",
698
- onClick: (e) => c(e, F(G)(t).href)
699
- }, P(F(G)(t).shown), 9, Ut)) : (k(), v("span", Wt, P(F(G)(t).released ? F(G)(t).shown : e.text.unreleased(F(G)(t).shown)), 1))]))), 128))]), r.value || t.$slots["whats-new"] || e.updateCheck ? (k(), v("div", Gt, [
700
- r.value ? (k(), g(Y, {
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, {
701
1098
  key: 0,
702
1099
  label: e.text.releaseNotes,
703
1100
  "label-key": "about.releaseNotes",
704
1101
  onClick: n[0] ||= (t) => e.onReleaseNotes()
705
- }, null, 8, ["label"])) : _("", !0),
706
- j(t.$slots, "whats-new"),
707
- e.updateCheck && o.value ? (k(), v(p, { key: 1 }, [(k(), g(Y, {
1102
+ }, null, 8, ["label"])) : x("", !0),
1103
+ L(t.$slots, "whats-new"),
1104
+ e.updateCheck && o.value ? (P(), S(_, { key: 1 }, [(P(), b(Z, {
708
1105
  key: a.value,
709
1106
  label: o.value.label,
710
1107
  "label-key": o.value.labelKey,
711
1108
  tone: o.value.tone,
712
- stage: F(Ze)(e.updateCheck.text, o.value.label),
1109
+ stage: V(Tt)(e.updateCheck.text, o.value.label),
713
1110
  busy: i.value.kind === "busy",
714
- class: E(a.value > 0 ? "glim-shake" : ""),
1111
+ class: A(a.value > 0 ? "glim-shake" : ""),
715
1112
  onClick: s
716
1113
  }, null, 8, [
717
1114
  "label",
@@ -720,8 +1117,8 @@ var ut = [
720
1117
  "stage",
721
1118
  "busy",
722
1119
  "class"
723
- ])), y("span", Kt, P(o.value.announced), 1)], 64)) : _("", !0)
724
- ])) : _("", !0)]),
1120
+ ])), C("span", Qn, B(o.value.announced), 1)], 64)) : x("", !0)
1121
+ ])) : x("", !0)]),
725
1122
  _: 3
726
1123
  }, 8, [
727
1124
  "title",
@@ -729,7 +1126,7 @@ var ut = [
729
1126
  "hue-index"
730
1127
  ]));
731
1128
  }
732
- }), qt = /* @__PURE__ */ C({
1129
+ }), er = /* @__PURE__ */ D({
733
1130
  __name: "InfoTile",
734
1131
  props: {
735
1132
  version: {},
@@ -739,17 +1136,135 @@ var ut = [
739
1136
  },
740
1137
  setup(e) {
741
1138
  let t = e, n = (e) => t.hueIndex === void 0 ? void 0 : t.hueIndex + e;
742
- return (t, r) => (k(), v(p, null, [
743
- S($, T(e.version, { "hue-index": n(0) }), b({ _: 2 }, [t.$slots["whats-new"] ? {
1139
+ return (t, r) => (P(), S(_, null, [
1140
+ E($n, k(e.version, { "hue-index": n(0) }), w({ _: 2 }, [t.$slots["whats-new"] ? {
744
1141
  name: "whats-new",
745
- fn: R(() => [j(t.$slots, "whats-new")]),
1142
+ fn: W(() => [L(t.$slots, "whats-new")]),
746
1143
  key: "0"
747
1144
  } : void 0]), 1040, ["hue-index"]),
748
- S(Rt, T(e.help, { "hue-index": n(1) }), null, 16, ["hue-index"]),
749
- S(Ft, T(e.about, { "hue-index": n(2) }), null, 16, ["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"])
750
1147
  ], 64));
751
1148
  }
752
- }), Jt = { class: "glim-num-wrap" }, Yt = /* @__PURE__ */ C({
1149
+ }), tr = ["aria-label"], nr = [
1150
+ "aria-expanded",
1151
+ "tabindex",
1152
+ "onClick",
1153
+ "onMouseenter",
1154
+ "onKeydown",
1155
+ "onFocus"
1156
+ ], rr = /* @__PURE__ */ D({
1157
+ __name: "MenuBar",
1158
+ props: {
1159
+ label: {},
1160
+ menus: {}
1161
+ },
1162
+ setup(e, { expose: t }) {
1163
+ let n = e, r = [], i = z(null), a = z(0);
1164
+ function o(e) {
1165
+ let t = r[e];
1166
+ if (!t) return;
1167
+ t.focus(), a.value = e;
1168
+ let n = t.getBoundingClientRect();
1169
+ i.value = {
1170
+ at: e,
1171
+ x: n.left,
1172
+ y: n.bottom + 6
1173
+ };
1174
+ }
1175
+ t({ open: o });
1176
+ let s = (e) => (e + n.menus.length) % n.menus.length;
1177
+ function c(e) {
1178
+ i.value?.at === e ? i.value = null : o(e);
1179
+ }
1180
+ function l(e, t) {
1181
+ let n = getComputedStyle(e.currentTarget).direction === "rtl", i = {
1182
+ ArrowRight: n ? -1 : 1,
1183
+ ArrowLeft: n ? 1 : -1
1184
+ }[e.key];
1185
+ i === void 0 ? e.key === "ArrowDown" && (e.preventDefault(), o(t)) : (e.preventDefault(), a.value = s(t + i), r[a.value]?.focus());
1186
+ }
1187
+ return (t, n) => (P(), S("div", {
1188
+ role: "menubar",
1189
+ "aria-label": e.label,
1190
+ class: "glim-menubar"
1191
+ }, [(P(!0), S(_, null, I(e.menus, (e, t) => (P(), S("button", {
1192
+ key: t,
1193
+ ref_for: !0,
1194
+ ref: (e) => r[t] = e,
1195
+ type: "button",
1196
+ role: "menuitem",
1197
+ "aria-haspopup": "menu",
1198
+ "aria-expanded": i.value?.at === t,
1199
+ tabindex: t === a.value ? 0 : -1,
1200
+ class: "glim-menubar-item",
1201
+ onClick: (e) => c(t),
1202
+ onMouseenter: (e) => i.value && i.value.at !== t && o(t),
1203
+ onKeydown: (e) => l(e, t),
1204
+ onFocus: (e) => a.value = t
1205
+ }, B(e.label), 41, nr))), 128)), i.value && e.menus[i.value.at] ? (P(), b(Cn, {
1206
+ key: i.value.at,
1207
+ x: i.value.x,
1208
+ y: i.value.y,
1209
+ items: e.menus[i.value.at].items,
1210
+ label: e.menus[i.value.at].label,
1211
+ opener: r[i.value.at],
1212
+ onClose: n[0] ||= (e) => i.value = null,
1213
+ onStep: n[1] ||= (e) => i.value && o(s(i.value.at + e))
1214
+ }, null, 8, [
1215
+ "x",
1216
+ "y",
1217
+ "items",
1218
+ "label",
1219
+ "opener"
1220
+ ])) : x("", !0)], 8, tr));
1221
+ }
1222
+ }), ir = [
1223
+ "role",
1224
+ "aria-label",
1225
+ "aria-valuemin",
1226
+ "aria-valuemax",
1227
+ "aria-valuenow",
1228
+ "aria-valuetext",
1229
+ "aria-busy"
1230
+ ], ar = /* @__PURE__ */ D({
1231
+ inheritAttrs: !1,
1232
+ __name: "Meter",
1233
+ props: {
1234
+ value: { default: null },
1235
+ label: {},
1236
+ size: { default: "medium" },
1237
+ threshold: { default: .9 },
1238
+ quiet: {
1239
+ type: Boolean,
1240
+ default: !1
1241
+ },
1242
+ valueText: {}
1243
+ },
1244
+ setup(n) {
1245
+ let r = n, i = y(() => We(r.value, {
1246
+ size: r.size,
1247
+ threshold: r.threshold,
1248
+ 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,
1252
+ role: a.value ? "progressbar" : "meter",
1253
+ "aria-label": n.label,
1254
+ "aria-valuemin": a.value ? void 0 : 0,
1255
+ "aria-valuemax": a.value ? void 0 : 100,
1256
+ "aria-valuenow": i.value.percent ?? void 0,
1257
+ "aria-valuetext": n.valueText,
1258
+ "aria-busy": a.value || void 0,
1259
+ 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", {
1263
+ 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));
1266
+ }
1267
+ }), or = { class: "glim-num-wrap" }, sr = /* @__PURE__ */ D({
753
1268
  inheritAttrs: !1,
754
1269
  __name: "NumberField",
755
1270
  props: {
@@ -758,15 +1273,15 @@ var ut = [
758
1273
  },
759
1274
  emits: ["update:modelValue"],
760
1275
  setup(e) {
761
- let t = I(e, "modelValue"), n = ie(), r = N(null), i;
762
- ne(() => {
763
- a(t.value), i = ye(r.value);
1276
+ let t = H(e, "modelValue"), n = re(), r = z(null), i;
1277
+ M(() => {
1278
+ a(t.value), i = Ce(r.value);
764
1279
  }), te(() => i?.());
765
1280
  function a(e) {
766
1281
  let t = r.value;
767
1282
  t && (t.value === "" ? null : t.valueAsNumber) !== e && (t.value = e === null ? "" : String(e));
768
1283
  }
769
- L([
1284
+ U([
770
1285
  t,
771
1286
  () => n.min,
772
1287
  () => n.max,
@@ -774,13 +1289,13 @@ var ut = [
774
1289
  () => n.disabled,
775
1290
  () => n.readonly
776
1291
  ], () => {
777
- a(t.value), r.value && qe(r.value);
1292
+ a(t.value), r.value && yt(r.value);
778
1293
  }, { flush: "post" });
779
1294
  function o(e) {
780
1295
  let n = e.target;
781
1296
  t.value = n.value === "" ? null : n.valueAsNumber;
782
1297
  }
783
- return (e, t) => (k(), v("span", Jt, [y("input", T(e.$attrs, {
1298
+ return (e, t) => (P(), S("span", or, [C("input", k(e.$attrs, {
784
1299
  ref_key: "input",
785
1300
  ref: r,
786
1301
  type: "number",
@@ -788,14 +1303,104 @@ var ut = [
788
1303
  onInput: o
789
1304
  }), null, 16)]));
790
1305
  }
791
- }), Xt = [
1306
+ }), cr = ["disabled", "type"], lr = /* @__PURE__ */ D({
1307
+ inheritAttrs: !1,
1308
+ __name: "PasswordField",
1309
+ props: /*@__PURE__*/ O({
1310
+ text: { default: () => ({
1311
+ show: "Show",
1312
+ hide: "Hide"
1313
+ }) },
1314
+ disabled: {
1315
+ type: Boolean,
1316
+ default: !1
1317
+ }
1318
+ }, {
1319
+ modelValue: { default: "" },
1320
+ modelModifiers: {}
1321
+ }),
1322
+ 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,
1330
+ autocomplete: "current-password",
1331
+ spellcheck: "false"
1332
+ }, {
1333
+ ...r.$attrs,
1334
+ class: void 0,
1335
+ style: void 0
1336
+ }, {
1337
+ disabled: e.disabled,
1338
+ type: n.value ? "text" : "password",
1339
+ class: "glim-input"
1340
+ }), null, 16, cr), [[oe, t.value]]), E(J, {
1341
+ tip: n.value ? e.text.hide : e.text.show,
1342
+ class: "glim-secret-eye",
1343
+ 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))))]),
1347
+ _: 1
1348
+ }, 8, ["tip", "disabled"])], 6));
1349
+ }
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));
1356
+ }
1357
+ }), dr = [
1358
+ "aria-label",
1359
+ "aria-valuemin",
1360
+ "aria-valuemax",
1361
+ "aria-valuenow",
1362
+ "aria-valuetext"
1363
+ ], fr = /* @__PURE__ */ D({
1364
+ __name: "ProgressBar",
1365
+ props: {
1366
+ value: { default: null },
1367
+ label: {},
1368
+ paused: {
1369
+ type: Boolean,
1370
+ default: !1
1371
+ },
1372
+ failed: {
1373
+ type: Boolean,
1374
+ default: !1
1375
+ },
1376
+ valueText: {}
1377
+ },
1378
+ setup(e) {
1379
+ let t = e, n = y(() => Qe(t.value, {
1380
+ paused: t.paused,
1381
+ failed: t.failed
1382
+ }));
1383
+ return (t, r) => (P(), S("span", {
1384
+ role: "progressbar",
1385
+ "aria-label": e.label,
1386
+ "aria-valuemin": n.value.percent === null ? void 0 : 0,
1387
+ "aria-valuemax": n.value.percent === null ? void 0 : 100,
1388
+ "aria-valuenow": n.value.percent ?? void 0,
1389
+ "aria-valuetext": e.valueText,
1390
+ class: A(n.value.className)
1391
+ }, [C("span", {
1392
+ class: "glim-progress-fill",
1393
+ style: j(n.value.width ? { width: n.value.width } : void 0)
1394
+ }, null, 4)], 10, dr));
1395
+ }
1396
+ }), pr = [
792
1397
  "href",
793
1398
  "data-sel-id",
794
1399
  "aria-selected",
795
1400
  "aria-current",
796
1401
  "aria-describedby",
797
1402
  "tabindex"
798
- ], Zt = [
1403
+ ], mr = [
799
1404
  "data-sel-id",
800
1405
  "id",
801
1406
  "role",
@@ -807,7 +1412,7 @@ var ut = [
807
1412
  "aria-describedby",
808
1413
  "disabled",
809
1414
  "tabindex"
810
- ], Qt = ["id"], $t = /* @__PURE__ */ C({
1415
+ ], hr = ["id"], gr = /* @__PURE__ */ D({
811
1416
  __name: "SelectorSegment",
812
1417
  props: {
813
1418
  item: {},
@@ -830,7 +1435,7 @@ var ut = [
830
1435
  },
831
1436
  emits: ["select"],
832
1437
  setup(r, { emit: i }) {
833
- let a = r, o = i, s = h(() => Ie({
1438
+ let a = r, o = i, s = y(() => st({
834
1439
  strip: a.strip,
835
1440
  orientation: a.orientation,
836
1441
  size: a.size,
@@ -850,19 +1455,19 @@ var ut = [
850
1455
  disabled: a.disabled,
851
1456
  dim: a.item.dim,
852
1457
  squeezed: a.squeezed
853
- })), c = t(() => s.value.tip, () => a.disabled), l = ae(), u = h(() => a.disabled && !!s.value.tip), d = h(() => u.value ? l : c.describedBy.value), f = h(() => a.strip.kind === "tab"), m = h(() => ({
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(() => ({
854
1459
  ...s.value.style,
855
1460
  ...a.share
856
1461
  }));
857
- function b(e) {
1462
+ function m(e) {
858
1463
  c.trigger.value = e;
859
1464
  }
860
- function x(e) {
1465
+ function h(e) {
861
1466
  e.ctrlKey || e.metaKey || e.shiftKey || e.altKey || e.button !== 0 || (e.preventDefault(), o("select"));
862
1467
  }
863
- return (t, i) => (k(), v(p, null, [r.orientation === "vertical" ? (k(), v("a", {
1468
+ return (t, i) => (P(), S(_, null, [r.orientation === "vertical" ? (P(), S("a", {
864
1469
  key: 0,
865
- ref: b,
1470
+ ref: m,
866
1471
  href: r.item.href,
867
1472
  "data-sel-id": r.item.id,
868
1473
  role: "tab",
@@ -870,27 +1475,27 @@ var ut = [
870
1475
  "aria-current": r.on ? "page" : void 0,
871
1476
  "aria-describedby": d.value,
872
1477
  tabindex: r.roved ? 0 : -1,
873
- class: E(s.value.className),
874
- style: D(m.value),
875
- onClick: x,
876
- onMouseenter: i[0] ||= (...e) => F(c).show && F(c).show(...e),
877
- onMouseleave: i[1] ||= (...e) => F(c).hide && F(c).hide(...e),
878
- onFocus: i[2] ||= (...e) => F(c).showOnFocus && F(c).showOnFocus(...e),
879
- onBlur: i[3] ||= (...e) => F(c).hide && F(c).hide(...e)
880
- }, [s.value.showGlyph && r.item.glyph ? (k(), g(M(r.item.glyph), { key: 0 })) : _("", !0), s.value.labelClass === null ? _("", !0) : (k(), v("span", {
1478
+ class: A(s.value.className),
1479
+ style: j(p.value),
1480
+ 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", {
881
1486
  key: 1,
882
1487
  "data-sel-label": "",
883
- class: E(s.value.labelClass)
884
- }, P(r.item.label), 3))], 46, Xt)) : (k(), v(p, { key: 1 }, [S(F(n), T({
1488
+ class: A(s.value.labelClass)
1489
+ }, B(r.item.label), 3))], 46, pr)) : (P(), S(_, { key: 1 }, [E(V(n), k({
885
1490
  on: u.value,
886
- show: F(c).show,
887
- hide: F(c).hide
1491
+ show: V(c).show,
1492
+ hide: V(c).hide
888
1493
  }, u.value ? { style: r.share } : {}), {
889
- default: R(() => [y("button", {
890
- ref: b,
1494
+ default: W(() => [C("button", {
1495
+ ref: m,
891
1496
  type: "button",
892
1497
  "data-sel-id": r.item.id,
893
- id: r.panelId && f.value ? F(Be)(r.panelId, r.item.id) : void 0,
1498
+ id: r.panelId && f.value ? V(dt)(r.panelId, r.item.id) : void 0,
894
1499
  role: r.strip.kind === "toggle" ? void 0 : r.strip.kind,
895
1500
  "aria-selected": f.value ? r.on : void 0,
896
1501
  "aria-controls": r.panelId && f.value && r.on ? r.panelId : void 0,
@@ -900,36 +1505,36 @@ var ut = [
900
1505
  "aria-describedby": d.value,
901
1506
  disabled: r.disabled,
902
1507
  tabindex: r.roved ? 0 : -1,
903
- class: E(s.value.className),
904
- style: D(m.value),
1508
+ class: A(s.value.className),
1509
+ style: j(p.value),
905
1510
  onClick: i[4] ||= (e) => o("select"),
906
- onMouseenter: i[5] ||= (...e) => F(c).show && F(c).show(...e),
907
- onMouseleave: i[6] ||= (...e) => F(c).hide && F(c).hide(...e),
908
- onFocus: i[7] ||= (...e) => F(c).showOnFocus && F(c).showOnFocus(...e),
909
- onBlur: i[8] ||= (...e) => F(c).hide && F(c).hide(...e)
910
- }, [s.value.showGlyph && r.item.glyph ? (k(), g(M(r.item.glyph), { key: 0 })) : _("", !0), s.value.labelClass === null ? _("", !0) : (k(), v("span", {
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", {
911
1516
  key: 1,
912
1517
  "data-sel-label": "",
913
- class: E(s.value.labelClass)
914
- }, P(r.item.label), 3))], 46, Zt)]),
1518
+ class: A(s.value.labelClass)
1519
+ }, B(r.item.label), 3))], 46, mr)]),
915
1520
  _: 1
916
1521
  }, 16, [
917
1522
  "on",
918
1523
  "show",
919
1524
  "hide"
920
- ]), u.value ? (k(), v("span", {
1525
+ ]), u.value ? (P(), S("span", {
921
1526
  key: 0,
922
- id: F(l),
1527
+ id: V(l),
923
1528
  hidden: ""
924
- }, P(s.value.tip), 9, Qt)) : _("", !0)], 64)), S(e, { state: F(c) }, null, 8, ["state"])], 64));
1529
+ }, B(s.value.tip), 9, hr)) : x("", !0)], 64)), E(e, { state: V(c) }, null, 8, ["state"])], 64));
925
1530
  }
926
- }), en = [
1531
+ }), _r = [
927
1532
  "role",
928
1533
  "aria-label",
929
1534
  "aria-orientation"
930
- ], tn = /* @__PURE__ */ C({
1535
+ ], vr = /* @__PURE__ */ D({
931
1536
  __name: "Selector",
932
- props: /*@__PURE__*/ ee({
1537
+ props: /*@__PURE__*/ O({
933
1538
  items: {},
934
1539
  label: {},
935
1540
  select: { default: "one" },
@@ -973,12 +1578,12 @@ var ut = [
973
1578
  }),
974
1579
  emits: ["update:modelValue"],
975
1580
  setup(e) {
976
- let t = e, n = I(e, "modelValue");
1581
+ let t = e, n = H(e, "modelValue");
977
1582
  function r(e) {
978
- let t = N(H(e));
979
- return O(Ge(e, () => t.value = H(e))), t;
1583
+ let t = z(Be(e));
1584
+ return N(_t(e, () => t.value = Be(e))), t;
980
1585
  }
981
- let i = q(Le(t.size, t.orientation)), a = r(ue), o = r(me), s = h(() => Ve({
1586
+ let i = X(ct(t.size, t.orientation)), a = r(me), o = r(ve), s = y(() => ft({
982
1587
  mode: i.value,
983
1588
  select: t.select,
984
1589
  activation: t.activation,
@@ -997,15 +1602,15 @@ var ut = [
997
1602
  hasGlyph: !!e.glyph,
998
1603
  iconOnly: !!e.iconOnly
999
1604
  }))
1000
- })), c = N(null), l = N(null), u = re("even"), d = h(() => t.items.map((e) => e.label).join("\n")), f = h(() => t.items.map((e) => t.disabled || e.disabled ? "1" : "0").join(""));
1001
- function m(e, t) {
1002
- L([c, e], (e, n, r) => {
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) => {
1003
1608
  if (!c.value) return;
1004
1609
  let i = t(c.value);
1005
1610
  i && r(i);
1006
1611
  }, { flush: "post" });
1007
1612
  }
1008
- m(() => s.value.counted, (e) => s.value.counted ? Se(e) : void 0), m(() => [
1613
+ p(() => s.value.counted, (e) => s.value.counted ? Ae(e) : void 0), p(() => [
1009
1614
  s.value.pinWidth,
1010
1615
  t.equalWidth,
1011
1616
  t.inline,
@@ -1015,29 +1620,29 @@ var ut = [
1015
1620
  s.value.mode
1016
1621
  ].join("|"), (e) => {
1017
1622
  if (!s.value.pinWidth) l.value = null;
1018
- else return $e(e, {
1623
+ else return Dt(e, {
1019
1624
  inline: t.inline,
1020
1625
  equalWidth: t.equalWidth
1021
1626
  }, (e) => l.value = e);
1022
- }), m(() => [
1627
+ }), p(() => [
1023
1628
  s.value.canSqueeze,
1024
1629
  d.value,
1025
1630
  f.value,
1026
1631
  t.size
1027
1632
  ].join("|"), (e) => {
1028
1633
  if (!s.value.canSqueeze) u.value = "even";
1029
- else return Qe(e, (e) => u.value = e);
1634
+ else return Et(e, (e) => u.value = e);
1030
1635
  });
1031
- let _ = h(() => Re({
1636
+ let m = y(() => lt({
1032
1637
  rows: l.value,
1033
1638
  pinWidth: s.value.pinWidth,
1034
1639
  inline: t.inline,
1035
1640
  fit: t.fit,
1036
1641
  fitMode: u.value,
1037
1642
  pairsOnPhone: t.pairsOnPhone
1038
- })), y = h(() => t.select === "many"), b = (e) => y.value ? (n.value ?? []).includes(e) : n.value === e, x = h(() => t.items.map((e) => t.disabled || !!e.disabled)), S = h(() => Pe(x.value, t.items.findIndex((e) => b(e.id))));
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))));
1039
1644
  function C(e) {
1040
- n.value = y.value ? Je(n.value ?? [], e, t.items.map((e) => e.id)) : e;
1645
+ n.value = h.value ? St(n.value ?? [], e, t.items.map((e) => e.id)) : e;
1041
1646
  }
1042
1647
  function w(e) {
1043
1648
  let n = e.target;
@@ -1045,27 +1650,27 @@ var ut = [
1045
1650
  e.preventDefault(), n.click();
1046
1651
  return;
1047
1652
  }
1048
- let r = Ne(c.value, e.key, t.orientation);
1653
+ let r = it(c.value, e.key, t.orientation);
1049
1654
  r && (e.preventDefault(), s.value.autoSelect && r.dataset.selId && C(r.dataset.selId));
1050
1655
  }
1051
- return (t, n) => (k(), v("div", {
1656
+ return (t, n) => (P(), S("div", {
1052
1657
  ref_key: "track",
1053
1658
  ref: c,
1054
1659
  role: s.value.role,
1055
1660
  "aria-label": e.label,
1056
1661
  "aria-orientation": s.value.role === "group" ? void 0 : e.orientation,
1057
- class: E(s.value.className),
1058
- style: D(_.value.track),
1662
+ class: A(s.value.className),
1663
+ style: j(m.value.track),
1059
1664
  onKeydown: w
1060
- }, [(k(!0), v(p, null, A(e.items, (t, n) => (k(), g($t, {
1665
+ }, [(P(!0), S(_, null, I(e.items, (t, n) => (P(), b(gr, {
1061
1666
  key: t.id,
1062
1667
  item: t,
1063
1668
  index: n,
1064
1669
  strip: s.value,
1065
- on: b(t.id),
1066
- disabled: x.value[n],
1067
- roved: n === S.value,
1068
- share: e.orientation === "vertical" ? {} : _.value.segment,
1670
+ on: g(t.id),
1671
+ disabled: v.value[n],
1672
+ roved: n === x.value,
1673
+ share: e.orientation === "vertical" ? {} : m.value.segment,
1069
1674
  squeezed: s.value.canSqueeze && u.value === "squeezed",
1070
1675
  orientation: e.orientation,
1071
1676
  size: e.size,
@@ -1096,13 +1701,13 @@ var ut = [
1096
1701
  "hue-offset",
1097
1702
  "panel-id",
1098
1703
  "onSelect"
1099
- ]))), 128))], 46, en));
1704
+ ]))), 128))], 46, _r));
1100
1705
  }
1101
- }), nn = [
1706
+ }), yr = [
1102
1707
  "href",
1103
1708
  "aria-current",
1104
1709
  "aria-describedby"
1105
- ], rn = { class: "glim-sr-only" }, an = /* @__PURE__ */ C({
1710
+ ], br = { class: "glim-sr-only" }, xr = /* @__PURE__ */ D({
1106
1711
  inheritAttrs: !1,
1107
1712
  __name: "SidebarRow",
1108
1713
  props: {
@@ -1117,7 +1722,7 @@ var ut = [
1117
1722
  count: {}
1118
1723
  },
1119
1724
  setup(n) {
1120
- let r = n, i = q("sidebar"), a = h(() => Ue({
1725
+ let r = n, i = X("sidebar"), a = y(() => mt({
1121
1726
  mode: i.value,
1122
1727
  label: r.label,
1123
1728
  hasGlyph: !!r.glyph,
@@ -1128,50 +1733,50 @@ var ut = [
1128
1733
  function s(e) {
1129
1734
  o.trigger.value = e;
1130
1735
  }
1131
- return (t, r) => (k(), v(p, null, [y("a", T(t.$attrs, {
1736
+ return (t, r) => (P(), S(_, null, [C("a", k(t.$attrs, {
1132
1737
  ref: s,
1133
1738
  href: n.href,
1134
1739
  "aria-current": n.active ? "page" : void 0,
1135
- "aria-describedby": F(o).describedBy.value,
1740
+ "aria-describedby": V(o).describedBy.value,
1136
1741
  class: a.value.className,
1137
1742
  style: a.value.style,
1138
- onMouseenter: r[0] ||= (...e) => F(o).show && F(o).show(...e),
1139
- onMouseleave: r[1] ||= (...e) => F(o).hide && F(o).hide(...e),
1140
- onFocus: r[2] ||= (...e) => F(o).showOnFocus && F(o).showOnFocus(...e),
1141
- onBlur: r[3] ||= (...e) => F(o).hide && F(o).hide(...e)
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)
1142
1747
  }), [
1143
- a.value.showGlyph && n.glyph ? (k(), g(M(n.glyph), { key: 0 })) : _("", !0),
1144
- y("span", { class: E(a.value.labelClass) }, P(n.label), 3),
1145
- a.value.countClass && n.count ? (k(), v(p, { key: 1 }, [y("span", {
1146
- class: E(a.value.countClass),
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),
1147
1752
  "aria-hidden": "true"
1148
- }, P(n.count.value), 3), y("span", rn, P(n.count.label), 1)], 64)) : _("", !0)
1149
- ], 16, nn), S(e, { state: F(o) }, null, 8, ["state"])], 64));
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));
1150
1755
  }
1151
- }), on = ["aria-labelledby"], sn = { class: "glim-subcard-title" }, cn = ["id"], ln = /* @__PURE__ */ C({
1756
+ }), Sr = ["aria-labelledby"], Cr = { class: "glim-subcard-title" }, wr = ["id"], Tr = /* @__PURE__ */ D({
1152
1757
  __name: "SubCard",
1153
1758
  props: {
1154
1759
  title: {},
1155
1760
  hint: {}
1156
1761
  },
1157
1762
  setup(e) {
1158
- let t = ae();
1159
- return (n, r) => (k(), v("section", {
1763
+ let t = ie();
1764
+ return (n, r) => (P(), S("section", {
1160
1765
  class: "glim-subcard",
1161
- "aria-labelledby": F(t)
1162
- }, [y("h3", sn, [y("span", { id: F(t) }, P(e.title), 9, cn), e.hint ? (k(), g(X, {
1766
+ "aria-labelledby": V(t)
1767
+ }, [C("h3", Cr, [C("span", { id: V(t) }, B(e.title), 9, wr), e.hint ? (P(), b(Q, {
1163
1768
  key: 0,
1164
1769
  tip: e.hint
1165
- }, null, 8, ["tip"])) : _("", !0)]), j(n.$slots, "default")], 8, on));
1770
+ }, null, 8, ["tip"])) : x("", !0)]), L(n.$slots, "default")], 8, Sr));
1166
1771
  }
1167
- }), un = { class: "glim-toast-stack" }, dn = [
1772
+ }), Er = { class: "glim-toast-stack" }, Dr = [
1168
1773
  "role",
1169
1774
  "onMouseenter",
1170
1775
  "onMouseleave",
1171
1776
  "onFocusin",
1172
1777
  "onFocusout",
1173
1778
  "onKeydown"
1174
- ], fn = { class: "glim-toast-message" }, pn = ["aria-label", "onClick"], mn = /* @__PURE__ */ C({
1779
+ ], Or = { class: "glim-toast-message" }, kr = ["aria-label", "onClick"], Ar = /* @__PURE__ */ D({
1175
1780
  __name: "ToastViewport",
1176
1781
  props: {
1177
1782
  toasts: {},
@@ -1186,7 +1791,7 @@ var ut = [
1186
1791
  ],
1187
1792
  setup(e, { emit: t }) {
1188
1793
  let n = t, r = (e) => e === "success" ? "status" : "alert";
1189
- return (t, a) => (k(), v("div", un, [(k(!0), v(p, null, A(e.toasts, (t) => (k(), v("div", {
1794
+ return (t, i) => (P(), S("div", Er, [(P(!0), S(_, null, I(e.toasts, (t) => (P(), S("div", {
1190
1795
  key: t.id,
1191
1796
  role: r(t.severity),
1192
1797
  class: "glim-toast glim-toast-card",
@@ -1194,31 +1799,31 @@ var ut = [
1194
1799
  onMouseleave: (e) => n("leave", t.id),
1195
1800
  onFocusin: (e) => n("focusin", t.id),
1196
1801
  onFocusout: (e) => n("focusout", t.id),
1197
- onKeydown: se(z((e) => n("dismiss", t.id), ["stop"]), ["esc"])
1802
+ onKeydown: ce(G((e) => n("dismiss", t.id), ["stop"]), ["esc"])
1198
1803
  }, [
1199
- S(F(i), {
1200
- mark: F(pe)[t.severity],
1201
- class: E(`glim-toast-glyph glim-toast-glyph--${t.severity}`)
1804
+ E(V(o), {
1805
+ mark: V(_e)[t.severity],
1806
+ class: A(`glim-toast-glyph glim-toast-glyph--${t.severity}`)
1202
1807
  }, null, 8, ["mark", "class"]),
1203
- y("p", fn, P(t.message), 1),
1204
- y("button", {
1808
+ C("p", Or, B(t.message), 1),
1809
+ C("button", {
1205
1810
  type: "button",
1206
1811
  "aria-label": e.dismissLabel,
1207
1812
  class: "glim-btn-bare glim-toast-dismiss",
1208
1813
  onClick: (e) => n("dismiss", t.id)
1209
- }, [S(F(i), { mark: F(fe).dismiss }, null, 8, ["mark"])], 8, pn)
1210
- ], 40, dn))), 128))]));
1814
+ }, [E(V(o), { mark: V(ge).dismiss }, null, 8, ["mark"])], 8, kr)
1815
+ ], 40, Dr))), 128))]));
1211
1816
  }
1212
- }), hn = { class: "glim-toggle" }, gn = {
1817
+ }), jr = { class: "glim-toggle" }, Mr = {
1213
1818
  key: 0,
1214
1819
  class: "glim-toggle-label"
1215
- }, _n = [
1820
+ }, Nr = [
1216
1821
  "aria-checked",
1217
1822
  "aria-label",
1218
1823
  "disabled"
1219
- ], vn = /* @__PURE__ */ C({
1824
+ ], Pr = /* @__PURE__ */ D({
1220
1825
  __name: "Toggle",
1221
- props: /*@__PURE__*/ ee({
1826
+ props: /*@__PURE__*/ O({
1222
1827
  label: {},
1223
1828
  hideLabel: {
1224
1829
  type: Boolean,
@@ -1237,8 +1842,8 @@ var ut = [
1237
1842
  }),
1238
1843
  emits: ["update:modelValue"],
1239
1844
  setup(e) {
1240
- let t = I(e, "modelValue");
1241
- return (n, r) => (k(), v("span", hn, [e.hideLabel ? _("", !0) : (k(), v("span", gn, P(e.label), 1)), y("button", {
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", {
1242
1847
  type: "button",
1243
1848
  role: "switch",
1244
1849
  "aria-checked": t.value,
@@ -1246,27 +1851,116 @@ var ut = [
1246
1851
  disabled: e.disabled,
1247
1852
  class: "glim-toggle-track",
1248
1853
  onClick: r[0] ||= (e) => t.value = !t.value
1249
- }, [...r[1] ||= [y("span", { class: "glim-toggle-thumb" }, null, -1)]], 8, _n)]));
1854
+ }, [...r[1] ||= [C("span", { class: "glim-toggle-thumb" }, null, -1)]], 8, Nr)]));
1250
1855
  }
1251
- }), yn = { class: "glim-notice" }, bn = { class: "glim-notice-title" }, xn = { class: "glim-notice-reason" }, Sn = {
1856
+ }), Fr = { class: "glim-notice" }, Ir = { class: "glim-notice-title" }, Lr = { class: "glim-notice-reason" }, Rr = {
1252
1857
  key: 0,
1253
1858
  class: "glim-notice-action"
1254
- }, Cn = /* @__PURE__ */ C({
1859
+ }, zr = /* @__PURE__ */ D({
1255
1860
  __name: "UnavailableNotice",
1256
1861
  props: { title: {} },
1257
1862
  setup(e) {
1258
- return (t, n) => (k(), v("div", yn, [
1259
- y("p", bn, P(e.title), 1),
1260
- y("p", xn, [j(t.$slots, "default")]),
1261
- t.$slots.action ? (k(), v("div", Sn, [j(t.$slots, "action")])) : _("", !0)
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)
1262
1867
  ]));
1263
1868
  }
1869
+ }), Br = ["aria-labelledby"], Vr = ["id"], Hr = { class: "glim-modal-body glim-window-body" }, Ur = {
1870
+ key: 0,
1871
+ class: "glim-modal-foot"
1872
+ }, Wr = {
1873
+ key: 0,
1874
+ class: "glim-window-start"
1875
+ }, Gr = /* @__PURE__ */ D({
1876
+ inheritAttrs: !1,
1877
+ __name: "Window",
1878
+ props: {
1879
+ title: {},
1880
+ actions: { default: () => [] },
1881
+ start: {},
1882
+ size: { default: "normal" },
1883
+ text: {}
1884
+ },
1885
+ 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, {
1888
+ cancel: {
1889
+ label: n.text.cancel,
1890
+ labelKey: "common.cancel",
1891
+ glyph: h,
1892
+ wayOut: !0
1893
+ },
1894
+ close: {
1895
+ label: n.text.close,
1896
+ labelKey: "common.close",
1897
+ glyph: p,
1898
+ wayOut: !0
1899
+ }
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");
1908
+ }
1909
+ function f() {
1910
+ Ve() || r("close");
1911
+ }
1912
+ return (t, n) => (P(), b(v, { to: "body" }, [C("div", {
1913
+ class: "glim-modal-backdrop",
1914
+ onMousedown: G(f, ["self"])
1915
+ }, [C("div", k(t.$attrs, {
1916
+ ref_key: "card",
1917
+ ref: a,
1918
+ role: "dialog",
1919
+ "aria-modal": "true",
1920
+ "aria-labelledby": V(o),
1921
+ class: [
1922
+ "glim-modal-card",
1923
+ "glim-window",
1924
+ e.size !== "normal" && `glim-window--${e.size}`
1925
+ ]
1926
+ }), [
1927
+ C("h2", {
1928
+ id: V(o),
1929
+ class: "glim-window-title"
1930
+ }, [E(Y, {
1931
+ tone: "heading",
1932
+ size: "heading",
1933
+ wrap: "",
1934
+ "inset-start": 5
1935
+ }, {
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, {
1941
+ key: t,
1942
+ label: e.label,
1943
+ "label-key": e.labelKey,
1944
+ glyph: e.glyph,
1945
+ tone: e.primary ? "accent" : "neutral",
1946
+ disabled: e.disabled,
1947
+ onClick: (t) => d(e)
1948
+ }, null, 8, [
1949
+ "label",
1950
+ "label-key",
1951
+ "glyph",
1952
+ "tone",
1953
+ "disabled",
1954
+ "onClick"
1955
+ ]))), 128))])) : x("", !0)
1956
+ ], 16, Br)], 32)]));
1957
+ }
1264
1958
  });
1265
1959
  // src/confirm.ts
1266
- function wn(e) {
1267
- let t = N(null), n = N(null), r = null, i = null;
1960
+ function Kr(e) {
1961
+ let t = z(null), n = z(null), r = null, i = null;
1268
1962
  function a(e, n) {
1269
- return i = Ce(), new Promise((i) => {
1963
+ return i = Pe(), new Promise((i) => {
1270
1964
  r = i, t.value = {
1271
1965
  message: e,
1272
1966
  ...n
@@ -1274,17 +1968,17 @@ function wn(e) {
1274
1968
  });
1275
1969
  }
1276
1970
  function o(e) {
1277
- r?.(e), r = null, t.value = null, Me(i), i = null;
1971
+ r?.(e), r = null, t.value = null, rt(i), i = null;
1278
1972
  }
1279
1973
  let s = () => o(!1);
1280
- return L(t, (e, t, r) => {
1281
- e && r(Ye(() => n.value, s));
1974
+ return U(t, (e, t, r) => {
1975
+ e && r(Ct(() => n.value, s));
1282
1976
  }), {
1283
1977
  confirm: a,
1284
1978
  dismiss: s,
1285
- ConfirmHost: C(() => () => {
1979
+ ConfirmHost: D(() => () => {
1286
1980
  let r = t.value;
1287
- return r ? w(m, { to: "body" }, [w(xt, {
1981
+ return r ? ee(v, { to: "body" }, [ee(cn, {
1288
1982
  ref: (e) => n.value = e?.card ?? null,
1289
1983
  title: e.title,
1290
1984
  message: r.message,
@@ -1294,8 +1988,8 @@ function wn(e) {
1294
1988
  cancelLabel: e.cancel,
1295
1989
  onConfirm: () => o(!0),
1296
1990
  onCancel: () => o(!1)
1297
- }, r.extra ? { extra: () => w(r.extra) } : void 0)]) : null;
1991
+ }, r.extra ? { extra: () => ee(r.extra) } : void 0)]) : null;
1298
1992
  })
1299
1993
  };
1300
1994
  }
1301
- export { K as Badge, it as BrandMark, Y as Button, Z as Card, xt as ConfirmDialog, Tt as EmptyState, de as GLIMSTONE_VERSION, d as IconCancel, s as IconCheck, l as IconClose, a as IconExpand, tt as IconTipButton, r as IconWindowMaximise, c as IconWindowMinimise, u as IconWindowRestore, Ft as InfoAboutCard, X as InfoBubble, Rt as InfoHelpCard, qt as InfoTile, $ as InfoVersionCard, i as MarkSvg, Yt as NumberField, Q as ReadmeButton, tn as Selector, an as SidebarRow, ln as SubCard, mn as ToastViewport, vn as Toggle, Cn as UnavailableNotice, o as glyphFor, ze as selectorTabId, f as setGlyphResolver, lt as useAccent, wn as useConfirm, ot as useHue, q as useLabelMode, ct as useMotion, at as useRainbow, st as useShape, t as useTipBubble };
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 };