@dillingerstaffing/strand-vue 0.14.0 → 0.15.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,9 +1,9 @@
1
- import { defineComponent as h, computed as c, openBlock as l, createElementBlock as r, normalizeClass as b, createCommentVNode as g, createElementVNode as f, normalizeStyle as S, renderSlot as y, useSlots as D, ref as w, watch as I, onMounted as E, toDisplayString as _, Fragment as B, renderList as C, createTextVNode as R, mergeProps as k, onUnmounted as j, inject as A, provide as F, nextTick as M } from "vue";
2
- const K = ["type", "disabled", "aria-disabled", "aria-busy"], P = {
1
+ import { defineComponent as h, computed as c, openBlock as l, createElementBlock as o, normalizeClass as b, createCommentVNode as y, createElementVNode as f, normalizeStyle as S, renderSlot as g, useSlots as L, ref as w, watch as I, onMounted as E, toDisplayString as _, Fragment as B, renderList as C, createTextVNode as R, mergeProps as k, onBeforeUnmount as M, onUnmounted as j, inject as A, provide as F, nextTick as K } from "vue";
2
+ const P = ["type", "disabled", "aria-disabled", "aria-busy"], U = {
3
3
  key: 0,
4
4
  class: "strand-btn__spinner",
5
5
  "aria-hidden": "true"
6
- }, da = /* @__PURE__ */ h({
6
+ }, va = /* @__PURE__ */ h({
7
7
  __name: "Button",
8
8
  props: {
9
9
  variant: { default: "primary" },
@@ -26,10 +26,10 @@ const K = ["type", "disabled", "aria-disabled", "aria-busy"], P = {
26
26
  a.loading && "strand-btn--loading"
27
27
  ].filter(Boolean).join(" ")
28
28
  );
29
- function d(o) {
30
- s.value || n("click", o);
29
+ function d(r) {
30
+ s.value || n("click", r);
31
31
  }
32
- return (o, m) => (l(), r("button", {
32
+ return (r, m) => (l(), o("button", {
33
33
  type: e.type,
34
34
  class: b(i.value),
35
35
  disabled: s.value,
@@ -37,24 +37,24 @@ const K = ["type", "disabled", "aria-disabled", "aria-busy"], P = {
37
37
  "aria-busy": e.loading ? "true" : void 0,
38
38
  onClick: d
39
39
  }, [
40
- e.loading ? (l(), r("span", P)) : g("", !0),
40
+ e.loading ? (l(), o("span", U)) : y("", !0),
41
41
  f("span", {
42
42
  class: "strand-btn__content",
43
43
  style: S(e.loading ? { visibility: "hidden" } : void 0)
44
44
  }, [
45
- y(o.$slots, "default")
45
+ g(r.$slots, "default")
46
46
  ], 4)
47
- ], 10, K));
47
+ ], 10, P));
48
48
  }
49
- }), U = {
49
+ }), q = {
50
50
  key: 0,
51
51
  class: "strand-input__leading",
52
52
  "aria-hidden": "true"
53
- }, q = ["type", "disabled", "aria-invalid", "value"], G = {
53
+ }, G = ["type", "disabled", "aria-invalid", "value"], W = {
54
54
  key: 1,
55
55
  class: "strand-input__trailing",
56
56
  "aria-hidden": "true"
57
- }, ca = /* @__PURE__ */ h({
57
+ }, ma = /* @__PURE__ */ h({
58
58
  __name: "Input",
59
59
  props: {
60
60
  type: { default: "text" },
@@ -64,7 +64,7 @@ const K = ["type", "disabled", "aria-disabled", "aria-busy"], P = {
64
64
  },
65
65
  emits: ["update:modelValue"],
66
66
  setup(e, { emit: t }) {
67
- const a = e, n = t, s = D(), i = c(
67
+ const a = e, n = t, s = L(), i = c(
68
68
  () => [
69
69
  "strand-input",
70
70
  a.error && "strand-input--error",
@@ -73,16 +73,16 @@ const K = ["type", "disabled", "aria-disabled", "aria-busy"], P = {
73
73
  !!s.trailing && "strand-input--has-trailing"
74
74
  ].filter(Boolean).join(" ")
75
75
  );
76
- function d(o) {
77
- const m = o.target;
76
+ function d(r) {
77
+ const m = r.target;
78
78
  n("update:modelValue", m.value);
79
79
  }
80
- return (o, m) => (l(), r("div", {
80
+ return (r, m) => (l(), o("div", {
81
81
  class: b(i.value)
82
82
  }, [
83
- o.$slots.leading ? (l(), r("span", U, [
84
- y(o.$slots, "leading")
85
- ])) : g("", !0),
83
+ r.$slots.leading ? (l(), o("span", q, [
84
+ g(r.$slots, "leading")
85
+ ])) : y("", !0),
86
86
  f("input", {
87
87
  type: e.type,
88
88
  class: "strand-input__field",
@@ -90,17 +90,17 @@ const K = ["type", "disabled", "aria-disabled", "aria-busy"], P = {
90
90
  "aria-invalid": e.error ? "true" : void 0,
91
91
  value: e.modelValue,
92
92
  onInput: d
93
- }, null, 40, q),
94
- o.$slots.trailing ? (l(), r("span", G, [
95
- y(o.$slots, "trailing")
96
- ])) : g("", !0)
93
+ }, null, 40, G),
94
+ r.$slots.trailing ? (l(), o("span", W, [
95
+ g(r.$slots, "trailing")
96
+ ])) : y("", !0)
97
97
  ], 2));
98
98
  }
99
- }), W = ["disabled", "aria-invalid", "maxlength", "value"], H = {
99
+ }), H = ["disabled", "aria-invalid", "maxlength", "value"], Z = {
100
100
  key: 0,
101
101
  class: "strand-textarea__count",
102
102
  "aria-live": "polite"
103
- }, ua = /* @__PURE__ */ h({
103
+ }, ha = /* @__PURE__ */ h({
104
104
  __name: "Textarea",
105
105
  props: {
106
106
  autoResize: { type: Boolean, default: !1 },
@@ -122,18 +122,18 @@ const K = ["type", "disabled", "aria-disabled", "aria-busy"], P = {
122
122
  ), d = c(
123
123
  () => typeof a.modelValue == "string" ? a.modelValue.length : 0
124
124
  );
125
- function o() {
125
+ function r() {
126
126
  a.autoResize && s.value && (s.value.style.height = "auto", s.value.style.height = `${s.value.scrollHeight}px`);
127
127
  }
128
128
  function m(v) {
129
129
  const u = v.target;
130
- n("update:modelValue", u.value), o();
130
+ n("update:modelValue", u.value), r();
131
131
  }
132
132
  return I(() => a.modelValue, () => {
133
- o();
133
+ r();
134
134
  }), E(() => {
135
- o();
136
- }), (v, u) => (l(), r("div", {
135
+ r();
136
+ }), (v, u) => (l(), o("div", {
137
137
  class: b(i.value)
138
138
  }, [
139
139
  f("textarea", {
@@ -145,15 +145,15 @@ const K = ["type", "disabled", "aria-disabled", "aria-busy"], P = {
145
145
  maxlength: e.maxLength,
146
146
  value: e.modelValue,
147
147
  onInput: m
148
- }, null, 40, W),
149
- e.showCount && e.maxLength != null ? (l(), r("span", H, _(d.value) + "/" + _(e.maxLength), 1)) : g("", !0)
148
+ }, null, 40, H),
149
+ e.showCount && e.maxLength != null ? (l(), o("span", Z, _(d.value) + "/" + _(e.maxLength), 1)) : y("", !0)
150
150
  ], 2));
151
151
  }
152
- }), Z = ["value", "disabled", "aria-invalid"], J = {
152
+ }), J = ["value", "disabled", "aria-invalid"], Q = {
153
153
  key: 0,
154
154
  value: "",
155
155
  disabled: ""
156
- }, Q = ["value"], fa = /* @__PURE__ */ h({
156
+ }, X = ["value"], _a = /* @__PURE__ */ h({
157
157
  __name: "Select",
158
158
  props: {
159
159
  options: {},
@@ -172,10 +172,10 @@ const K = ["type", "disabled", "aria-disabled", "aria-busy"], P = {
172
172
  ].filter(Boolean).join(" ")
173
173
  );
174
174
  function i(d) {
175
- const o = d.target;
176
- n("update:modelValue", o.value);
175
+ const r = d.target;
176
+ n("update:modelValue", r.value);
177
177
  }
178
- return (d, o) => (l(), r("div", {
178
+ return (d, r) => (l(), o("div", {
179
179
  class: b(s.value)
180
180
  }, [
181
181
  f("select", {
@@ -185,35 +185,35 @@ const K = ["type", "disabled", "aria-disabled", "aria-busy"], P = {
185
185
  "aria-invalid": e.error ? "true" : void 0,
186
186
  onChange: i
187
187
  }, [
188
- e.placeholder ? (l(), r("option", J, _(e.placeholder), 1)) : g("", !0),
189
- (l(!0), r(B, null, C(e.options, (m) => (l(), r("option", {
188
+ e.placeholder ? (l(), o("option", Q, _(e.placeholder), 1)) : y("", !0),
189
+ (l(!0), o(B, null, C(e.options, (m) => (l(), o("option", {
190
190
  key: m.value,
191
191
  value: m.value
192
- }, _(m.label), 9, Q))), 128))
193
- ], 40, Z),
194
- o[0] || (o[0] = f("span", {
192
+ }, _(m.label), 9, X))), 128))
193
+ ], 40, J),
194
+ r[0] || (r[0] = f("span", {
195
195
  class: "strand-select__arrow",
196
196
  "aria-hidden": "true"
197
197
  }, null, -1))
198
198
  ], 2));
199
199
  }
200
- }), X = ["checked", "disabled", "aria-checked"], Y = {
200
+ }), Y = ["checked", "disabled", "aria-checked"], ee = {
201
201
  class: "strand-checkbox__control",
202
202
  "aria-hidden": "true"
203
- }, ee = {
203
+ }, ae = {
204
204
  key: 0,
205
205
  class: "strand-checkbox__icon",
206
206
  viewBox: "0 0 16 16",
207
207
  fill: "none"
208
- }, ae = {
208
+ }, te = {
209
209
  key: 1,
210
210
  class: "strand-checkbox__icon",
211
211
  viewBox: "0 0 16 16",
212
212
  fill: "none"
213
- }, te = {
213
+ }, se = {
214
214
  key: 0,
215
215
  class: "strand-checkbox__label"
216
- }, va = /* @__PURE__ */ h({
216
+ }, ba = /* @__PURE__ */ h({
217
217
  __name: "Checkbox",
218
218
  props: {
219
219
  checked: { type: Boolean, default: !1 },
@@ -239,13 +239,13 @@ const K = ["type", "disabled", "aria-disabled", "aria-busy"], P = {
239
239
  ), d = c(
240
240
  () => a.indeterminate ? "mixed" : a.checked ? "true" : "false"
241
241
  );
242
- function o(v) {
242
+ function r(v) {
243
243
  a.disabled || n("change", v);
244
244
  }
245
245
  function m(v) {
246
246
  v.key === " " && !a.disabled && (v.preventDefault(), s.value && s.value.click());
247
247
  }
248
- return (v, u) => (l(), r("label", {
248
+ return (v, u) => (l(), o("label", {
249
249
  class: b(i.value),
250
250
  onKeydown: m
251
251
  }, [
@@ -258,10 +258,10 @@ const K = ["type", "disabled", "aria-disabled", "aria-busy"], P = {
258
258
  disabled: e.disabled,
259
259
  "aria-checked": d.value,
260
260
  role: "checkbox",
261
- onChange: o
262
- }, null, 40, X),
263
- f("span", Y, [
264
- e.indeterminate ? (l(), r("svg", ee, [...u[0] || (u[0] = [
261
+ onChange: r
262
+ }, null, 40, Y),
263
+ f("span", ee, [
264
+ e.indeterminate ? (l(), o("svg", ae, [...u[0] || (u[0] = [
265
265
  f("line", {
266
266
  x1: "4",
267
267
  y1: "8",
@@ -271,7 +271,7 @@ const K = ["type", "disabled", "aria-disabled", "aria-busy"], P = {
271
271
  "stroke-width": "2",
272
272
  "stroke-linecap": "round"
273
273
  }, null, -1)
274
- ])])) : e.checked ? (l(), r("svg", ae, [...u[1] || (u[1] = [
274
+ ])])) : e.checked ? (l(), o("svg", te, [...u[1] || (u[1] = [
275
275
  f("path", {
276
276
  d: "M3.5 8L6.5 11L12.5 5",
277
277
  stroke: "currentColor",
@@ -279,15 +279,15 @@ const K = ["type", "disabled", "aria-disabled", "aria-busy"], P = {
279
279
  "stroke-linecap": "round",
280
280
  "stroke-linejoin": "round"
281
281
  }, null, -1)
282
- ])])) : g("", !0)
282
+ ])])) : y("", !0)
283
283
  ]),
284
- e.label ? (l(), r("span", te, _(e.label), 1)) : g("", !0)
284
+ e.label ? (l(), o("span", se, _(e.label), 1)) : y("", !0)
285
285
  ], 34));
286
286
  }
287
- }), se = ["checked", "disabled", "name", "value"], ne = {
287
+ }), ne = ["checked", "disabled", "name", "value"], le = {
288
288
  key: 0,
289
289
  class: "strand-radio__label"
290
- }, ma = /* @__PURE__ */ h({
290
+ }, pa = /* @__PURE__ */ h({
291
291
  __name: "Radio",
292
292
  props: {
293
293
  checked: { type: Boolean, default: !1 },
@@ -308,7 +308,7 @@ const K = ["type", "disabled", "aria-disabled", "aria-busy"], P = {
308
308
  function i(d) {
309
309
  a.disabled || n("change", d);
310
310
  }
311
- return (d, o) => (l(), r("label", {
311
+ return (d, r) => (l(), o("label", {
312
312
  class: b(s.value)
313
313
  }, [
314
314
  f("input", {
@@ -319,20 +319,20 @@ const K = ["type", "disabled", "aria-disabled", "aria-busy"], P = {
319
319
  name: e.name,
320
320
  value: e.value,
321
321
  onChange: i
322
- }, null, 40, se),
323
- o[0] || (o[0] = f("span", {
322
+ }, null, 40, ne),
323
+ r[0] || (r[0] = f("span", {
324
324
  class: "strand-radio__control",
325
325
  "aria-hidden": "true"
326
326
  }, [
327
327
  f("span", { class: "strand-radio__dot" })
328
328
  ], -1)),
329
- e.label ? (l(), r("span", ne, _(e.label), 1)) : g("", !0)
329
+ e.label ? (l(), o("span", le, _(e.label), 1)) : y("", !0)
330
330
  ], 2));
331
331
  }
332
- }), le = ["aria-checked", "disabled"], re = {
332
+ }), oe = ["aria-checked", "disabled"], re = {
333
333
  key: 0,
334
334
  class: "strand-switch__label"
335
- }, ha = /* @__PURE__ */ h({
335
+ }, ya = /* @__PURE__ */ h({
336
336
  __name: "Switch",
337
337
  props: {
338
338
  checked: { type: Boolean, default: !1 },
@@ -351,10 +351,10 @@ const K = ["type", "disabled", "aria-disabled", "aria-busy"], P = {
351
351
  function i() {
352
352
  a.disabled || n("change", !a.checked);
353
353
  }
354
- function d(o) {
355
- (o.key === " " || o.key === "Enter") && !a.disabled && (o.preventDefault(), n("change", !a.checked));
354
+ function d(r) {
355
+ (r.key === " " || r.key === "Enter") && !a.disabled && (r.preventDefault(), n("change", !a.checked));
356
356
  }
357
- return (o, m) => (l(), r("label", {
357
+ return (r, m) => (l(), o("label", {
358
358
  class: b(s.value)
359
359
  }, [
360
360
  f("button", {
@@ -370,11 +370,11 @@ const K = ["type", "disabled", "aria-disabled", "aria-busy"], P = {
370
370
  class: "strand-switch__thumb",
371
371
  "aria-hidden": "true"
372
372
  }, null, -1)
373
- ])], 40, le),
374
- e.label ? (l(), r("span", re, _(e.label), 1)) : g("", !0)
373
+ ])], 40, oe),
374
+ e.label ? (l(), o("span", re, _(e.label), 1)) : y("", !0)
375
375
  ], 2));
376
376
  }
377
- }), oe = ["min", "max", "step", "value", "disabled", "aria-valuemin", "aria-valuemax", "aria-valuenow"], _a = /* @__PURE__ */ h({
377
+ }), ie = ["min", "max", "step", "value", "disabled", "aria-valuemin", "aria-valuemax", "aria-valuenow"], $a = /* @__PURE__ */ h({
378
378
  __name: "Slider",
379
379
  props: {
380
380
  min: { default: 0 },
@@ -392,10 +392,10 @@ const K = ["type", "disabled", "aria-disabled", "aria-busy"], P = {
392
392
  ].filter(Boolean).join(" ")
393
393
  );
394
394
  function i(d) {
395
- const o = d.target;
396
- n("update:modelValue", Number(o.value));
395
+ const r = d.target;
396
+ n("update:modelValue", Number(r.value));
397
397
  }
398
- return (d, o) => (l(), r("div", {
398
+ return (d, r) => (l(), o("div", {
399
399
  class: b(s.value)
400
400
  }, [
401
401
  f("input", {
@@ -410,14 +410,14 @@ const K = ["type", "disabled", "aria-disabled", "aria-busy"], P = {
410
410
  "aria-valuemax": e.max,
411
411
  "aria-valuenow": e.modelValue,
412
412
  onInput: i
413
- }, null, 40, oe)
413
+ }, null, 40, ie)
414
414
  ], 2));
415
415
  }
416
- }), ie = ["for"], de = {
416
+ }), de = ["for"], ce = {
417
417
  key: 0,
418
418
  class: "strand-form-field__required",
419
419
  "aria-hidden": "true"
420
- }, ce = { class: "strand-form-field__control" }, ue = ["id"], fe = ["id"], ba = /* @__PURE__ */ h({
420
+ }, ue = { class: "strand-form-field__control" }, fe = ["id"], ve = ["id"], ga = /* @__PURE__ */ h({
421
421
  __name: "FormField",
422
422
  props: {
423
423
  label: {},
@@ -433,7 +433,7 @@ const K = ["type", "disabled", "aria-disabled", "aria-busy"], P = {
433
433
  t.error && "strand-form-field--error"
434
434
  ].filter(Boolean).join(" ")
435
435
  );
436
- return (n, s) => (l(), r("div", {
436
+ return (n, s) => (l(), o("div", {
437
437
  class: b(a.value)
438
438
  }, [
439
439
  f("label", {
@@ -441,24 +441,24 @@ const K = ["type", "disabled", "aria-disabled", "aria-busy"], P = {
441
441
  for: e.htmlFor
442
442
  }, [
443
443
  R(_(e.label) + " ", 1),
444
- e.required ? (l(), r("span", de, " * ")) : g("", !0)
445
- ], 8, ie),
446
- f("div", ce, [
447
- y(n.$slots, "default")
444
+ e.required ? (l(), o("span", ce, " * ")) : y("", !0)
445
+ ], 8, de),
446
+ f("div", ue, [
447
+ g(n.$slots, "default")
448
448
  ]),
449
- e.error ? (l(), r("p", {
449
+ e.error ? (l(), o("p", {
450
450
  key: 0,
451
451
  class: "strand-form-field__error",
452
452
  id: `${e.htmlFor}-error`,
453
453
  role: "alert"
454
- }, _(e.error), 9, ue)) : e.hint ? (l(), r("p", {
454
+ }, _(e.error), 9, fe)) : e.hint ? (l(), o("p", {
455
455
  key: 1,
456
456
  class: "strand-form-field__hint",
457
457
  id: `${e.htmlFor}-hint`
458
- }, _(e.hint), 9, fe)) : g("", !0)
458
+ }, _(e.hint), 9, ve)) : y("", !0)
459
459
  ], 2));
460
460
  }
461
- }), pa = /* @__PURE__ */ h({
461
+ }), ka = /* @__PURE__ */ h({
462
462
  __name: "Card",
463
463
  props: {
464
464
  variant: { default: "elevated" },
@@ -474,11 +474,11 @@ const K = ["type", "disabled", "aria-disabled", "aria-busy"], P = {
474
474
  t.className
475
475
  ].filter(Boolean).join(" ")
476
476
  );
477
- return (n, s) => (l(), r("div", k({ class: a.value }, n.$attrs), [
478
- y(n.$slots, "default")
477
+ return (n, s) => (l(), o("div", k({ class: a.value }, n.$attrs), [
478
+ g(n.$slots, "default")
479
479
  ], 16));
480
480
  }
481
- }), ve = ["aria-label"], $a = /* @__PURE__ */ h({
481
+ }), me = ["aria-label"], wa = /* @__PURE__ */ h({
482
482
  __name: "Badge",
483
483
  props: {
484
484
  variant: { default: "count" },
@@ -488,7 +488,7 @@ const K = ["type", "disabled", "aria-disabled", "aria-busy"], P = {
488
488
  className: { default: "" }
489
489
  },
490
490
  setup(e) {
491
- const t = e, a = D(), n = c(() => !!a.default), s = c(() => t.variant === "count" ? t.count != null && t.count > t.maxCount ? `${t.maxCount}+` : t.count : null), i = c(() => {
491
+ const t = e, a = L(), n = c(() => !!a.default), s = c(() => t.variant === "count" ? t.count != null && t.count > t.maxCount ? `${t.maxCount}+` : t.count : null), i = c(() => {
492
492
  if (t.variant === "dot") return "Status indicator";
493
493
  if (t.count != null) return `${t.count} notifications`;
494
494
  }), d = c(
@@ -497,23 +497,23 @@ const K = ["type", "disabled", "aria-disabled", "aria-busy"], P = {
497
497
  `strand-badge--${t.variant}`,
498
498
  `strand-badge--${t.status}`
499
499
  ].filter(Boolean).join(" ")
500
- ), o = c(
500
+ ), r = c(
501
501
  () => n.value ? ["strand-badge", t.className].filter(Boolean).join(" ") : ["strand-badge", "strand-badge--inline", t.className].filter(Boolean).join(" ")
502
502
  );
503
- return (m, v) => (l(), r("span", k({ class: o.value }, m.$attrs), [
504
- y(m.$slots, "default"),
503
+ return (m, v) => (l(), o("span", k({ class: r.value }, m.$attrs), [
504
+ g(m.$slots, "default"),
505
505
  f("span", {
506
506
  class: b(d.value),
507
507
  "aria-label": i.value,
508
508
  role: "status"
509
- }, _(s.value), 11, ve)
509
+ }, _(s.value), 11, me)
510
510
  ], 16));
511
511
  }
512
- }), me = ["aria-label"], he = ["src", "alt"], _e = {
512
+ }), he = ["aria-label"], _e = ["src", "alt"], be = {
513
513
  key: 1,
514
514
  class: "strand-avatar__initials",
515
515
  "aria-hidden": "true"
516
- }, ga = /* @__PURE__ */ h({
516
+ }, Ba = /* @__PURE__ */ h({
517
517
  __name: "Avatar",
518
518
  props: {
519
519
  src: {},
@@ -532,21 +532,21 @@ const K = ["type", "disabled", "aria-disabled", "aria-busy"], P = {
532
532
  t.className
533
533
  ].filter(Boolean).join(" ")
534
534
  );
535
- return (o, m) => (l(), r("div", k({
535
+ return (r, m) => (l(), o("div", k({
536
536
  class: d.value,
537
537
  role: "img",
538
538
  "aria-label": e.alt || i.value
539
- }, o.$attrs), [
540
- s.value ? (l(), r("img", {
539
+ }, r.$attrs), [
540
+ s.value ? (l(), o("img", {
541
541
  key: 0,
542
542
  class: "strand-avatar__img",
543
543
  src: e.src,
544
544
  alt: e.alt,
545
545
  onError: n
546
- }, null, 40, he)) : (l(), r("span", _e, _(i.value), 1))
547
- ], 16, me));
546
+ }, null, 40, _e)) : (l(), o("span", be, _(i.value), 1))
547
+ ], 16, he));
548
548
  }
549
- }), be = { class: "strand-tag__text" }, ya = /* @__PURE__ */ h({
549
+ }), pe = { class: "strand-tag__text" }, Ca = /* @__PURE__ */ h({
550
550
  __name: "Tag",
551
551
  props: {
552
552
  variant: { default: "solid" },
@@ -564,16 +564,16 @@ const K = ["type", "disabled", "aria-disabled", "aria-busy"], P = {
564
564
  a.className
565
565
  ].filter(Boolean).join(" ")
566
566
  );
567
- return (i, d) => (l(), r("span", k({ class: s.value }, i.$attrs), [
568
- f("span", be, [
569
- y(i.$slots, "default")
567
+ return (i, d) => (l(), o("span", k({ class: s.value }, i.$attrs), [
568
+ f("span", pe, [
569
+ g(i.$slots, "default")
570
570
  ]),
571
- e.removable ? (l(), r("button", {
571
+ e.removable ? (l(), o("button", {
572
572
  key: 0,
573
573
  type: "button",
574
574
  class: "strand-tag__remove",
575
575
  "aria-label": "Remove",
576
- onClick: d[0] || (d[0] = (o) => n("remove"))
576
+ onClick: d[0] || (d[0] = (r) => n("remove"))
577
577
  }, [...d[1] || (d[1] = [
578
578
  f("svg", {
579
579
  width: "12",
@@ -589,13 +589,13 @@ const K = ["type", "disabled", "aria-disabled", "aria-busy"], P = {
589
589
  "stroke-linecap": "round"
590
590
  })
591
591
  ], -1)
592
- ])])) : g("", !0)
592
+ ])])) : y("", !0)
593
593
  ], 16));
594
594
  }
595
- }), pe = { class: "strand-table" }, $e = { class: "strand-table__head" }, ge = ["aria-label", "onClick"], ye = {
595
+ }), ye = { class: "strand-table" }, $e = { class: "strand-table__head" }, ge = ["aria-label", "onClick"], ke = {
596
596
  class: "strand-table__sort-indicator",
597
597
  "aria-hidden": "true"
598
- }, ke = { class: "strand-table__body" }, ka = /* @__PURE__ */ h({
598
+ }, we = { class: "strand-table__body" }, xa = /* @__PURE__ */ h({
599
599
  __name: "Table",
600
600
  props: {
601
601
  columns: {},
@@ -610,21 +610,21 @@ const K = ["type", "disabled", "aria-disabled", "aria-busy"], P = {
610
610
  const v = n.value === m && s.value === "asc" ? "desc" : "asc";
611
611
  n.value = m, s.value = v, a("sort", m, v);
612
612
  }
613
- function o(m) {
613
+ function r(m) {
614
614
  return n.value === m ? s.value === "asc" ? "↑" : "↓" : "↕";
615
615
  }
616
- return (m, v) => (l(), r("div", {
616
+ return (m, v) => (l(), o("div", {
617
617
  class: b(i.value)
618
618
  }, [
619
- f("table", pe, [
619
+ f("table", ye, [
620
620
  f("thead", $e, [
621
621
  f("tr", null, [
622
- (l(!0), r(B, null, C(e.columns, (u) => (l(), r("th", {
622
+ (l(!0), o(B, null, C(e.columns, (u) => (l(), o("th", {
623
623
  key: u.key,
624
624
  class: "strand-table__th",
625
625
  style: S(u.width ? { width: u.width } : void 0)
626
626
  }, [
627
- u.sortable ? (l(), r("button", {
627
+ u.sortable ? (l(), o("button", {
628
628
  key: 0,
629
629
  type: "button",
630
630
  class: "strand-table__sort-btn",
@@ -632,19 +632,19 @@ const K = ["type", "disabled", "aria-disabled", "aria-busy"], P = {
632
632
  onClick: (p) => d(u.key)
633
633
  }, [
634
634
  R(_(u.header) + " ", 1),
635
- f("span", ye, _(o(u.key)), 1)
636
- ], 8, ge)) : (l(), r(B, { key: 1 }, [
635
+ f("span", ke, _(r(u.key)), 1)
636
+ ], 8, ge)) : (l(), o(B, { key: 1 }, [
637
637
  R(_(u.header), 1)
638
638
  ], 64))
639
639
  ], 4))), 128))
640
640
  ])
641
641
  ]),
642
- f("tbody", ke, [
643
- (l(!0), r(B, null, C(e.data, (u, p) => (l(), r("tr", {
642
+ f("tbody", we, [
643
+ (l(!0), o(B, null, C(e.data, (u, p) => (l(), o("tr", {
644
644
  key: p,
645
645
  class: "strand-table__row"
646
646
  }, [
647
- (l(!0), r(B, null, C(e.columns, ($) => (l(), r("td", {
647
+ (l(!0), o(B, null, C(e.columns, ($) => (l(), o("td", {
648
648
  key: $.key,
649
649
  class: "strand-table__td"
650
650
  }, _(u[$.key]), 1))), 128))
@@ -653,7 +653,7 @@ const K = ["type", "disabled", "aria-disabled", "aria-busy"], P = {
653
653
  ])
654
654
  ], 2));
655
655
  }
656
- }), Be = { class: "strand-data-readout__label" }, we = { class: "strand-data-readout__value" }, Ba = /* @__PURE__ */ h({
656
+ }), Be = { class: "strand-data-readout__label" }, Ce = { class: "strand-data-readout__value" }, Na = /* @__PURE__ */ h({
657
657
  __name: "DataReadout",
658
658
  props: {
659
659
  label: {},
@@ -669,33 +669,90 @@ const K = ["type", "disabled", "aria-disabled", "aria-busy"], P = {
669
669
  t.className
670
670
  ].filter(Boolean).join(" ")
671
671
  );
672
- return (n, s) => (l(), r("div", k({ class: a.value }, n.$attrs), [
672
+ return (n, s) => (l(), o("div", k({ class: a.value }, n.$attrs), [
673
673
  f("span", Be, _(e.label), 1),
674
- f("span", we, _(e.value), 1)
674
+ f("span", Ce, _(e.value), 1)
675
675
  ], 16));
676
676
  }
677
- }), Ce = {
677
+ }), xe = ["data-strand-copy"], Ne = {
678
678
  key: 0,
679
679
  class: "strand-code-block__label"
680
- }, xe = { class: "strand-code-block__pre" }, wa = /* @__PURE__ */ h({
680
+ }, je = { class: "strand-code-block__pre" }, Te = ["aria-label"], Re = 1500, ja = /* @__PURE__ */ h({
681
681
  __name: "CodeBlock",
682
682
  props: {
683
683
  code: {},
684
684
  language: {},
685
- className: { default: "" }
685
+ className: { default: "" },
686
+ copyable: { type: Boolean, default: !0 }
686
687
  },
687
688
  setup(e) {
688
689
  const t = e, a = c(
689
690
  () => ["strand-code-block", t.className].filter(Boolean).join(" ")
690
- );
691
- return (n, s) => (l(), r("div", k({ class: a.value }, n.$attrs), [
692
- e.language ? (l(), r("span", Ce, _(e.language), 1)) : g("", !0),
693
- f("pre", xe, [
691
+ ), n = w(!1);
692
+ let s = null;
693
+ M(() => {
694
+ s !== null && window.clearTimeout(s);
695
+ });
696
+ async function i() {
697
+ var d;
698
+ try {
699
+ if ((d = navigator.clipboard) != null && d.writeText)
700
+ await navigator.clipboard.writeText(t.code);
701
+ else {
702
+ const r = document.createElement("textarea");
703
+ r.value = t.code, r.setAttribute("readonly", ""), r.style.position = "absolute", r.style.left = "-9999px", document.body.appendChild(r), r.select(), document.execCommand("copy"), document.body.removeChild(r);
704
+ }
705
+ n.value = !0, s !== null && window.clearTimeout(s), s = window.setTimeout(() => {
706
+ n.value = !1;
707
+ }, Re);
708
+ } catch {
709
+ }
710
+ }
711
+ return (d, r) => (l(), o("div", k({
712
+ class: a.value,
713
+ "data-strand-copy": e.copyable ? "" : void 0
714
+ }, d.$attrs), [
715
+ e.language ? (l(), o("span", Ne, _(e.language), 1)) : y("", !0),
716
+ f("pre", je, [
694
717
  f("code", null, _(e.code), 1)
695
- ])
696
- ], 16));
718
+ ]),
719
+ e.copyable ? (l(), o("button", {
720
+ key: 1,
721
+ type: "button",
722
+ class: b(["strand-code-block__copy", n.value ? "strand-code-block__copy--copied" : ""]),
723
+ "aria-label": n.value ? "Copied" : "Copy code to clipboard",
724
+ onClick: i
725
+ }, [...r[0] || (r[0] = [
726
+ f("svg", {
727
+ class: "strand-code-block__copy-icon strand-code-block__copy-icon--clipboard",
728
+ viewBox: "0 0 16 16",
729
+ fill: "none",
730
+ stroke: "currentColor",
731
+ "stroke-width": "1.75",
732
+ "stroke-linecap": "round",
733
+ "stroke-linejoin": "round",
734
+ "aria-hidden": "true",
735
+ focusable: "false"
736
+ }, [
737
+ f("path", { d: "M6 3 V2 a1 1 0 0 1 1-1 h2 a1 1 0 0 1 1 1 v1 M5 3 h6 a1 1 0 0 1 1 1 v9 a1 1 0 0 1 -1 1 h-6 a1 1 0 0 1 -1 -1 v-9 a1 1 0 0 1 1 -1 z" })
738
+ ], -1),
739
+ f("svg", {
740
+ class: "strand-code-block__copy-icon strand-code-block__copy-icon--check",
741
+ viewBox: "0 0 16 16",
742
+ fill: "none",
743
+ stroke: "currentColor",
744
+ "stroke-width": "1.75",
745
+ "stroke-linecap": "round",
746
+ "stroke-linejoin": "round",
747
+ "aria-hidden": "true",
748
+ focusable: "false"
749
+ }, [
750
+ f("path", { d: "M3 8 l3 3 l7 -7" })
751
+ ], -1)
752
+ ])], 10, Te)) : y("", !0)
753
+ ], 16, xe));
697
754
  }
698
- }), Ca = /* @__PURE__ */ h({
755
+ }), Ta = /* @__PURE__ */ h({
699
756
  __name: "Stack",
700
757
  props: {
701
758
  direction: { default: "vertical" },
@@ -718,14 +775,14 @@ const K = ["type", "disabled", "aria-disabled", "aria-busy"], P = {
718
775
  ), n = c(() => ({
719
776
  gap: `var(--strand-space-${t.gap})`
720
777
  }));
721
- return (s, i) => (l(), r("div", k({
778
+ return (s, i) => (l(), o("div", k({
722
779
  class: a.value,
723
780
  style: n.value
724
781
  }, s.$attrs), [
725
- y(s.$slots, "default")
782
+ g(s.$slots, "default")
726
783
  ], 16));
727
784
  }
728
- }), xa = /* @__PURE__ */ h({
785
+ }), Ra = /* @__PURE__ */ h({
729
786
  __name: "Grid",
730
787
  props: {
731
788
  columns: { default: 1 },
@@ -739,14 +796,14 @@ const K = ["type", "disabled", "aria-disabled", "aria-busy"], P = {
739
796
  gridTemplateColumns: `repeat(${t.columns}, 1fr)`,
740
797
  gap: `var(--strand-space-${t.gap})`
741
798
  }));
742
- return (s, i) => (l(), r("div", k({
799
+ return (s, i) => (l(), o("div", k({
743
800
  class: a.value,
744
801
  style: n.value
745
802
  }, s.$attrs), [
746
- y(s.$slots, "default")
803
+ g(s.$slots, "default")
747
804
  ], 16));
748
805
  }
749
- }), Na = /* @__PURE__ */ h({
806
+ }), Sa = /* @__PURE__ */ h({
750
807
  __name: "Container",
751
808
  props: {
752
809
  size: { default: "default" },
@@ -760,11 +817,11 @@ const K = ["type", "disabled", "aria-disabled", "aria-busy"], P = {
760
817
  t.className
761
818
  ].filter(Boolean).join(" ")
762
819
  );
763
- return (n, s) => (l(), r("div", k({ class: a.value }, n.$attrs), [
764
- y(n.$slots, "default")
820
+ return (n, s) => (l(), o("div", k({ class: a.value }, n.$attrs), [
821
+ g(n.$slots, "default")
765
822
  ], 16));
766
823
  }
767
- }), Ne = { class: "strand-divider__label" }, ja = /* @__PURE__ */ h({
824
+ }), Se = { class: "strand-divider__label" }, Ia = /* @__PURE__ */ h({
768
825
  __name: "Divider",
769
826
  props: {
770
827
  direction: { default: "horizontal" },
@@ -775,28 +832,28 @@ const K = ["type", "disabled", "aria-disabled", "aria-busy"], P = {
775
832
  const t = e, a = c(() => t.direction === "vertical"), n = c(() => !a.value && !!t.label);
776
833
  c(() => !a.value && !t.label);
777
834
  const s = c(() => a.value ? ["strand-divider", "strand-divider--vertical", t.className].filter(Boolean).join(" ") : n.value ? ["strand-divider", "strand-divider--horizontal", "strand-divider--labeled", t.className].filter(Boolean).join(" ") : ["strand-divider", "strand-divider--horizontal", t.className].filter(Boolean).join(" "));
778
- return (i, d) => a.value ? (l(), r("div", {
835
+ return (i, d) => a.value ? (l(), o("div", {
779
836
  key: 0,
780
837
  class: b(s.value),
781
838
  role: "separator",
782
839
  "aria-orientation": "vertical"
783
- }, null, 2)) : n.value ? (l(), r("div", {
840
+ }, null, 2)) : n.value ? (l(), o("div", {
784
841
  key: 1,
785
842
  class: b(s.value),
786
843
  role: "separator",
787
844
  "aria-orientation": "horizontal"
788
845
  }, [
789
846
  d[0] || (d[0] = f("span", { class: "strand-divider__line" }, null, -1)),
790
- f("span", Ne, _(e.label), 1),
847
+ f("span", Se, _(e.label), 1),
791
848
  d[1] || (d[1] = f("span", { class: "strand-divider__line" }, null, -1))
792
- ], 2)) : (l(), r("hr", {
849
+ ], 2)) : (l(), o("hr", {
793
850
  key: 2,
794
851
  class: b(s.value),
795
852
  role: "separator",
796
853
  "aria-orientation": "horizontal"
797
854
  }, null, 2));
798
855
  }
799
- }), Ta = /* @__PURE__ */ h({
856
+ }), Ea = /* @__PURE__ */ h({
800
857
  __name: "Section",
801
858
  props: {
802
859
  variant: { default: "standard" },
@@ -814,14 +871,15 @@ const K = ["type", "disabled", "aria-disabled", "aria-busy"], P = {
814
871
  t.className
815
872
  ].filter(Boolean).join(" ")
816
873
  );
817
- return (n, s) => (l(), r("section", k({ class: a.value }, n.$attrs), [
818
- y(n.$slots, "default")
874
+ return (n, s) => (l(), o("section", k({ class: a.value }, n.$attrs), [
875
+ g(n.$slots, "default")
819
876
  ], 16));
820
877
  }
821
- }), Ra = /* @__PURE__ */ h({
878
+ }), za = /* @__PURE__ */ h({
822
879
  __name: "InstrumentViewport",
823
880
  props: {
824
881
  grid: { type: Boolean, default: !1 },
882
+ fullBleed: { type: Boolean, default: !1 },
825
883
  className: { default: "" }
826
884
  },
827
885
  setup(e) {
@@ -829,14 +887,15 @@ const K = ["type", "disabled", "aria-disabled", "aria-busy"], P = {
829
887
  () => [
830
888
  "strand-instrument-viewport",
831
889
  t.grid && "strand-instrument-viewport--grid",
890
+ t.fullBleed && "strand-instrument-viewport--full-bleed",
832
891
  t.className
833
892
  ].filter(Boolean).join(" ")
834
893
  );
835
- return (n, s) => (l(), r("div", k({ class: a.value }, n.$attrs), [
836
- y(n.$slots, "default")
894
+ return (n, s) => (l(), o("div", k({ class: a.value }, n.$attrs), [
895
+ g(n.$slots, "default")
837
896
  ], 16));
838
897
  }
839
- }), Sa = /* @__PURE__ */ h({
898
+ }), Va = /* @__PURE__ */ h({
840
899
  __name: "ScrollReveal",
841
900
  props: {
842
901
  threshold: { default: 0.1 },
@@ -856,22 +915,22 @@ const K = ["type", "disabled", "aria-disabled", "aria-busy"], P = {
856
915
  return E(() => {
857
916
  a.value && (s = new IntersectionObserver(
858
917
  (d) => {
859
- for (const o of d)
860
- o.isIntersecting ? (n.value = !0, t.once && s && a.value && s.unobserve(a.value)) : t.once || (n.value = !1);
918
+ for (const r of d)
919
+ r.isIntersecting ? (n.value = !0, t.once && s && a.value && s.unobserve(a.value)) : t.once || (n.value = !1);
861
920
  },
862
921
  { threshold: t.threshold }
863
922
  ), s.observe(a.value));
864
923
  }), j(() => {
865
924
  s && (s.disconnect(), s = null);
866
- }), (d, o) => (l(), r("div", k({
925
+ }), (d, r) => (l(), o("div", k({
867
926
  ref_key: "elRef",
868
927
  ref: a,
869
928
  class: i.value
870
929
  }, d.$attrs), [
871
- y(d.$slots, "default")
930
+ g(d.$slots, "default")
872
931
  ], 16));
873
932
  }
874
- }), je = ["href"], Ia = /* @__PURE__ */ h({
933
+ }), Ie = ["href"], Da = /* @__PURE__ */ h({
875
934
  __name: "Link",
876
935
  props: {
877
936
  href: {},
@@ -883,17 +942,17 @@ const K = ["type", "disabled", "aria-disabled", "aria-busy"], P = {
883
942
  const t = e, a = c(
884
943
  () => ["strand-link", t.variant !== "default" && `strand-link--${t.variant}`, t.className].filter(Boolean).join(" ")
885
944
  );
886
- return (n, s) => (l(), r("a", k({
945
+ return (n, s) => (l(), o("a", k({
887
946
  href: e.href,
888
947
  class: a.value
889
948
  }, {
890
949
  ...e.external ? { target: "_blank", rel: "noopener noreferrer" } : {},
891
950
  ...n.$attrs
892
951
  }), [
893
- y(n.$slots, "default")
894
- ], 16, je));
952
+ g(n.$slots, "default")
953
+ ], 16, Ie));
895
954
  }
896
- }), Te = ["id", "aria-selected", "aria-controls", "tabindex", "onClick"], Re = ["id", "aria-labelledby", "hidden"], Ea = /* @__PURE__ */ h({
955
+ }), Ee = ["id", "aria-selected", "aria-controls", "tabindex", "onClick"], ze = ["id", "aria-labelledby", "hidden"], La = /* @__PURE__ */ h({
897
956
  __name: "Tabs",
898
957
  props: {
899
958
  tabs: {},
@@ -911,7 +970,7 @@ const K = ["type", "disabled", "aria-disabled", "aria-busy"], P = {
911
970
  (p = $ == null ? void 0 : $[m]) == null || p.focus();
912
971
  }
913
972
  }
914
- function o(m) {
973
+ function r(m) {
915
974
  const v = a.tabs.findIndex((p) => p.id === a.activeTab);
916
975
  let u = null;
917
976
  switch (m.key) {
@@ -932,16 +991,16 @@ const K = ["type", "disabled", "aria-disabled", "aria-busy"], P = {
932
991
  }
933
992
  m.preventDefault(), d(u);
934
993
  }
935
- return (m, v) => (l(), r("div", {
994
+ return (m, v) => (l(), o("div", {
936
995
  class: b(i.value)
937
996
  }, [
938
997
  f("div", {
939
998
  ref_key: "tablistRef",
940
999
  ref: s,
941
1000
  role: "tablist",
942
- onKeydown: o
1001
+ onKeydown: r
943
1002
  }, [
944
- (l(!0), r(B, null, C(e.tabs, (u) => (l(), r("button", {
1003
+ (l(!0), o(B, null, C(e.tabs, (u) => (l(), o("button", {
945
1004
  key: u.id,
946
1005
  id: `tab-${u.id}`,
947
1006
  role: "tab",
@@ -954,9 +1013,9 @@ const K = ["type", "disabled", "aria-disabled", "aria-busy"], P = {
954
1013
  "aria-controls": `panel-${u.id}`,
955
1014
  tabindex: u.id === e.activeTab ? 0 : -1,
956
1015
  onClick: (p) => n("change", u.id)
957
- }, _(u.label), 11, Te))), 128))
1016
+ }, _(u.label), 11, Ee))), 128))
958
1017
  ], 544),
959
- (l(!0), r(B, null, C(e.tabs, (u) => (l(), r("div", {
1018
+ (l(!0), o(B, null, C(e.tabs, (u) => (l(), o("div", {
960
1019
  key: u.id,
961
1020
  id: `panel-${u.id}`,
962
1021
  role: "tabpanel",
@@ -964,19 +1023,19 @@ const K = ["type", "disabled", "aria-disabled", "aria-busy"], P = {
964
1023
  hidden: u.id !== e.activeTab || void 0,
965
1024
  tabindex: 0
966
1025
  }, [
967
- y(m.$slots, `panel-${u.id}`)
968
- ], 8, Re))), 128))
1026
+ g(m.$slots, `panel-${u.id}`)
1027
+ ], 8, ze))), 128))
969
1028
  ], 2));
970
1029
  }
971
- }), Se = { class: "strand-breadcrumb__list" }, Ie = {
1030
+ }), Ve = { class: "strand-breadcrumb__list" }, De = {
972
1031
  key: 0,
973
1032
  class: "strand-breadcrumb__separator",
974
1033
  "aria-hidden": "true"
975
- }, Ee = {
1034
+ }, Le = {
976
1035
  key: 1,
977
1036
  class: "strand-breadcrumb__current",
978
1037
  "aria-current": "page"
979
- }, ze = ["href"], za = /* @__PURE__ */ h({
1038
+ }, Oe = ["href"], Oa = /* @__PURE__ */ h({
980
1039
  __name: "Breadcrumb",
981
1040
  props: {
982
1041
  items: {},
@@ -986,35 +1045,35 @@ const K = ["type", "disabled", "aria-disabled", "aria-busy"], P = {
986
1045
  const t = c(
987
1046
  () => ["strand-breadcrumb"].filter(Boolean).join(" ")
988
1047
  );
989
- return (a, n) => (l(), r("nav", {
1048
+ return (a, n) => (l(), o("nav", {
990
1049
  "aria-label": "Breadcrumb",
991
1050
  class: b(t.value)
992
1051
  }, [
993
- f("ol", Se, [
994
- (l(!0), r(B, null, C(e.items, (s, i) => (l(), r("li", {
1052
+ f("ol", Ve, [
1053
+ (l(!0), o(B, null, C(e.items, (s, i) => (l(), o("li", {
995
1054
  key: `${s.label}-${i}`,
996
1055
  class: "strand-breadcrumb__item"
997
1056
  }, [
998
- i > 0 ? (l(), r("span", Ie, _(e.separator), 1)) : g("", !0),
999
- i === e.items.length - 1 ? (l(), r("span", Ee, _(s.label), 1)) : (l(), r("a", {
1057
+ i > 0 ? (l(), o("span", De, _(e.separator), 1)) : y("", !0),
1058
+ i === e.items.length - 1 ? (l(), o("span", Le, _(s.label), 1)) : (l(), o("a", {
1000
1059
  key: 2,
1001
1060
  href: s.href,
1002
1061
  class: "strand-breadcrumb__link"
1003
- }, _(s.label), 9, ze))
1062
+ }, _(s.label), 9, Oe))
1004
1063
  ]))), 128))
1005
1064
  ])
1006
1065
  ], 2));
1007
1066
  }
1008
- }), Ve = { class: "strand-nav__inner" }, Le = {
1067
+ }), Me = { class: "strand-nav__inner" }, Ae = {
1009
1068
  key: 0,
1010
1069
  class: "strand-nav__logo"
1011
- }, De = { class: "strand-nav__items" }, Oe = ["href", "aria-current"], Ae = {
1070
+ }, Fe = { class: "strand-nav__items" }, Ke = ["href", "aria-current"], Pe = {
1012
1071
  key: 1,
1013
1072
  class: "strand-nav__actions"
1014
- }, Fe = ["aria-expanded", "aria-label"], Me = {
1073
+ }, Ue = ["aria-expanded", "aria-label"], qe = {
1015
1074
  key: 0,
1016
1075
  class: "strand-nav__mobile-menu"
1017
- }, Ke = ["href", "aria-current"], Va = /* @__PURE__ */ h({
1076
+ }, Ge = ["href", "aria-current"], Ma = /* @__PURE__ */ h({
1018
1077
  __name: "Nav",
1019
1078
  props: {
1020
1079
  items: { default: () => [] },
@@ -1026,28 +1085,28 @@ const K = ["type", "disabled", "aria-disabled", "aria-busy"], P = {
1026
1085
  a.value = !a.value;
1027
1086
  }
1028
1087
  const s = c(() => ["strand-nav", t.glass && "strand-nav--glass"].filter(Boolean).join(" "));
1029
- return (i, d) => (l(), r("nav", {
1088
+ return (i, d) => (l(), o("nav", {
1030
1089
  class: b(s.value),
1031
1090
  "aria-label": "Main navigation"
1032
1091
  }, [
1033
- f("div", Ve, [
1034
- i.$slots.logo ? (l(), r("div", Le, [
1035
- y(i.$slots, "logo")
1036
- ])) : g("", !0),
1037
- f("div", De, [
1038
- (l(!0), r(B, null, C(e.items, (o) => (l(), r("a", {
1039
- key: o.href,
1040
- href: o.href,
1092
+ f("div", Me, [
1093
+ i.$slots.logo ? (l(), o("div", Ae, [
1094
+ g(i.$slots, "logo")
1095
+ ])) : y("", !0),
1096
+ f("div", Fe, [
1097
+ (l(!0), o(B, null, C(e.items, (r) => (l(), o("a", {
1098
+ key: r.href,
1099
+ href: r.href,
1041
1100
  class: b([
1042
1101
  "strand-nav__link",
1043
- o.active && "strand-nav__link--active"
1102
+ r.active && "strand-nav__link--active"
1044
1103
  ].filter(Boolean).join(" ")),
1045
- "aria-current": o.active ? "page" : void 0
1046
- }, _(o.label), 11, Oe))), 128))
1104
+ "aria-current": r.active ? "page" : void 0
1105
+ }, _(r.label), 11, Ke))), 128))
1047
1106
  ]),
1048
- i.$slots.actions ? (l(), r("div", Ae, [
1049
- y(i.$slots, "actions")
1050
- ])) : g("", !0),
1107
+ i.$slots.actions ? (l(), o("div", Pe, [
1108
+ g(i.$slots, "actions")
1109
+ ])) : y("", !0),
1051
1110
  f("button", {
1052
1111
  type: "button",
1053
1112
  class: "strand-nav__hamburger",
@@ -1059,22 +1118,22 @@ const K = ["type", "disabled", "aria-disabled", "aria-busy"], P = {
1059
1118
  class: "strand-nav__hamburger-icon",
1060
1119
  "aria-hidden": "true"
1061
1120
  }, null, -1)
1062
- ])], 8, Fe)
1121
+ ])], 8, Ue)
1063
1122
  ]),
1064
- a.value ? (l(), r("div", Me, [
1065
- (l(!0), r(B, null, C(e.items, (o) => (l(), r("a", {
1066
- key: o.href,
1067
- href: o.href,
1123
+ a.value ? (l(), o("div", qe, [
1124
+ (l(!0), o(B, null, C(e.items, (r) => (l(), o("a", {
1125
+ key: r.href,
1126
+ href: r.href,
1068
1127
  class: b([
1069
1128
  "strand-nav__mobile-link",
1070
- o.active && "strand-nav__mobile-link--active"
1129
+ r.active && "strand-nav__mobile-link--active"
1071
1130
  ].filter(Boolean).join(" ")),
1072
- "aria-current": o.active ? "page" : void 0
1073
- }, _(o.label), 11, Ke))), 128))
1074
- ])) : g("", !0)
1131
+ "aria-current": r.active ? "page" : void 0
1132
+ }, _(r.label), 11, Ge))), 128))
1133
+ ])) : y("", !0)
1075
1134
  ], 2));
1076
1135
  }
1077
- }), Pe = ["aria-live"], Ue = { class: "strand-toast__status" }, qe = { class: "strand-toast__message" }, La = /* @__PURE__ */ h({
1136
+ }), We = ["aria-live"], He = { class: "strand-toast__status" }, Ze = { class: "strand-toast__message" }, Aa = /* @__PURE__ */ h({
1078
1137
  __name: "Toast",
1079
1138
  props: {
1080
1139
  status: { default: "info" },
@@ -1091,35 +1150,35 @@ const K = ["type", "disabled", "aria-disabled", "aria-busy"], P = {
1091
1150
  success: "COMPLETE",
1092
1151
  warning: "WARNING",
1093
1152
  error: "ERROR"
1094
- }, o = c(() => d[a.status] ?? a.status.toUpperCase());
1095
- return (m, v) => (l(), r("div", {
1153
+ }, r = c(() => d[a.status] ?? a.status.toUpperCase());
1154
+ return (m, v) => (l(), o("div", {
1096
1155
  class: b(i.value),
1097
1156
  role: "status",
1098
1157
  "aria-live": s.value ? "assertive" : "polite"
1099
1158
  }, [
1100
- f("span", Ue, _(o.value), 1),
1101
- f("span", qe, _(e.message), 1),
1159
+ f("span", He, _(r.value), 1),
1160
+ f("span", Ze, _(e.message), 1),
1102
1161
  f("button", {
1103
1162
  type: "button",
1104
1163
  class: "strand-toast__dismiss",
1105
1164
  "aria-label": "Dismiss",
1106
1165
  onClick: v[0] || (v[0] = (u) => n("dismiss"))
1107
1166
  }, " × ")
1108
- ], 10, Pe));
1167
+ ], 10, We));
1109
1168
  }
1110
1169
  });
1111
1170
  /*! Strand Vue | MIT License | dillingerstaffing.com */
1112
1171
  const O = Symbol("StrandToast");
1113
- function Da() {
1172
+ function Fa() {
1114
1173
  const e = A(O);
1115
1174
  if (!e)
1116
1175
  throw new Error("useToast must be used within a ToastProvider");
1117
1176
  return e;
1118
1177
  }
1119
- const Ge = {
1178
+ const Je = {
1120
1179
  key: 0,
1121
1180
  class: "strand-toast__container"
1122
- }, We = ["aria-live"], He = { class: "strand-toast__status" }, Ze = { class: "strand-toast__message" }, Je = ["onClick"], Oa = /* @__PURE__ */ h({
1181
+ }, Qe = ["aria-live"], Xe = { class: "strand-toast__status" }, Ye = { class: "strand-toast__message" }, ea = ["onClick"], Ka = /* @__PURE__ */ h({
1123
1182
  __name: "ToastProvider",
1124
1183
  setup(e) {
1125
1184
  let t = 0;
@@ -1150,37 +1209,37 @@ const Ge = {
1150
1209
  function d(v) {
1151
1210
  return v === "error" || v === "warning";
1152
1211
  }
1153
- const o = {
1212
+ const r = {
1154
1213
  info: "INFO",
1155
1214
  success: "COMPLETE",
1156
1215
  warning: "WARNING",
1157
1216
  error: "ERROR"
1158
1217
  };
1159
1218
  function m(v) {
1160
- return o[v] ?? v.toUpperCase();
1219
+ return r[v] ?? v.toUpperCase();
1161
1220
  }
1162
- return (v, u) => (l(), r(B, null, [
1163
- y(v.$slots, "default"),
1164
- a.value.length > 0 ? (l(), r("div", Ge, [
1165
- (l(!0), r(B, null, C(a.value, (p) => (l(), r("div", {
1221
+ return (v, u) => (l(), o(B, null, [
1222
+ g(v.$slots, "default"),
1223
+ a.value.length > 0 ? (l(), o("div", Je, [
1224
+ (l(!0), o(B, null, C(a.value, (p) => (l(), o("div", {
1166
1225
  key: p.id,
1167
1226
  class: b(["strand-toast", `strand-toast--${p.status}`].join(" ")),
1168
1227
  role: "status",
1169
1228
  "aria-live": d(p.status) ? "assertive" : "polite"
1170
1229
  }, [
1171
- f("span", He, _(m(p.status)), 1),
1172
- f("span", Ze, _(p.message), 1),
1230
+ f("span", Xe, _(m(p.status)), 1),
1231
+ f("span", Ye, _(p.message), 1),
1173
1232
  f("button", {
1174
1233
  type: "button",
1175
1234
  class: "strand-toast__dismiss",
1176
1235
  "aria-label": "Dismiss",
1177
1236
  onClick: ($) => s(p.id)
1178
- }, " × ", 8, Je)
1179
- ], 10, We))), 128))
1180
- ])) : g("", !0)
1237
+ }, " × ", 8, ea)
1238
+ ], 10, Qe))), 128))
1239
+ ])) : y("", !0)
1181
1240
  ], 64));
1182
1241
  }
1183
- }), Qe = ["role"], Xe = { class: "strand-alert__status" }, Ye = { class: "strand-alert__content" }, Aa = /* @__PURE__ */ h({
1242
+ }), aa = ["role"], ta = { class: "strand-alert__status" }, sa = { class: "strand-alert__content" }, Pa = /* @__PURE__ */ h({
1184
1243
  __name: "Alert",
1185
1244
  props: {
1186
1245
  status: { default: "info" },
@@ -1200,31 +1259,31 @@ const Ge = {
1200
1259
  success: "COMPLETE",
1201
1260
  warning: "WARNING",
1202
1261
  error: "ERROR"
1203
- }, o = c(() => d[a.status] ?? a.status.toUpperCase());
1262
+ }, r = c(() => d[a.status] ?? a.status.toUpperCase());
1204
1263
  function m() {
1205
1264
  n("dismiss");
1206
1265
  }
1207
- return (v, u) => (l(), r("div", {
1266
+ return (v, u) => (l(), o("div", {
1208
1267
  class: b(i.value),
1209
1268
  role: s.value
1210
1269
  }, [
1211
- f("span", Xe, _(o.value), 1),
1212
- f("div", Ye, [
1213
- y(v.$slots, "default")
1270
+ f("span", ta, _(r.value), 1),
1271
+ f("div", sa, [
1272
+ g(v.$slots, "default")
1214
1273
  ]),
1215
- e.dismissible ? (l(), r("button", {
1274
+ e.dismissible ? (l(), o("button", {
1216
1275
  key: 0,
1217
1276
  type: "button",
1218
1277
  class: "strand-alert__dismiss",
1219
1278
  "aria-label": "Dismiss",
1220
1279
  onClick: m
1221
- }, " × ")) : g("", !0)
1222
- ], 10, Qe));
1280
+ }, " × ")) : y("", !0)
1281
+ ], 10, aa));
1223
1282
  }
1224
- }), ea = ["aria-labelledby"], aa = {
1283
+ }), na = ["aria-labelledby"], la = {
1225
1284
  key: 0,
1226
1285
  class: "strand-dialog__header"
1227
- }, ta = { class: "strand-dialog__body" }, L = 'a[href], button:not(:disabled), textarea:not(:disabled), input:not(:disabled), select:not(:disabled), [tabindex]:not([tabindex="-1"])', Fa = /* @__PURE__ */ h({
1286
+ }, oa = { class: "strand-dialog__body" }, D = 'a[href], button:not(:disabled), textarea:not(:disabled), input:not(:disabled), select:not(:disabled), [tabindex]:not([tabindex="-1"])', Ua = /* @__PURE__ */ h({
1228
1287
  __name: "Dialog",
1229
1288
  props: {
1230
1289
  open: { type: Boolean },
@@ -1237,7 +1296,7 @@ const Ge = {
1237
1296
  const a = e, n = t;
1238
1297
  let s = 0;
1239
1298
  const i = `strand-dialog-title-${++s}`, d = w(null);
1240
- let o = null, m = "";
1299
+ let r = null, m = "";
1241
1300
  const v = c(
1242
1301
  () => ["strand-dialog__panel"].filter(Boolean).join(" ")
1243
1302
  );
@@ -1250,7 +1309,7 @@ const Ge = {
1250
1309
  const x = d.value;
1251
1310
  if (!x) return;
1252
1311
  const N = Array.from(
1253
- x.querySelectorAll(L)
1312
+ x.querySelectorAll(D)
1254
1313
  );
1255
1314
  if (N.length === 0) return;
1256
1315
  const z = N[0], V = N[N.length - 1];
@@ -1264,19 +1323,19 @@ const Ge = {
1264
1323
  () => a.open,
1265
1324
  async ($) => {
1266
1325
  if ($) {
1267
- o = document.activeElement, m = document.body.style.overflow, document.body.style.overflow = "hidden", await M();
1326
+ r = document.activeElement, m = document.body.style.overflow, document.body.style.overflow = "hidden", await K();
1268
1327
  const x = d.value;
1269
1328
  if (x) {
1270
- const N = x.querySelectorAll(L);
1329
+ const N = x.querySelectorAll(D);
1271
1330
  N.length > 0 ? N[0].focus() : x.focus();
1272
1331
  }
1273
1332
  } else
1274
- document.body.style.overflow = m, o && o instanceof HTMLElement && o.focus();
1333
+ document.body.style.overflow = m, r && r instanceof HTMLElement && r.focus();
1275
1334
  },
1276
1335
  { immediate: !0 }
1277
1336
  ), j(() => {
1278
1337
  a.open && (document.body.style.overflow = m);
1279
- }), ($, x) => e.open ? (l(), r("div", {
1338
+ }), ($, x) => e.open ? (l(), o("div", {
1280
1339
  key: 0,
1281
1340
  class: "strand-dialog__backdrop",
1282
1341
  onClick: p,
@@ -1291,25 +1350,25 @@ const Ge = {
1291
1350
  "aria-labelledby": e.title ? i : void 0,
1292
1351
  tabindex: -1
1293
1352
  }, [
1294
- e.title ? (l(), r("div", aa, [
1353
+ e.title ? (l(), o("div", la, [
1295
1354
  f("h2", {
1296
1355
  id: i,
1297
1356
  class: "strand-dialog__title"
1298
1357
  }, _(e.title), 1)
1299
- ])) : g("", !0),
1358
+ ])) : y("", !0),
1300
1359
  f("button", {
1301
1360
  type: "button",
1302
1361
  class: "strand-dialog__close",
1303
1362
  "aria-label": "Close",
1304
1363
  onClick: x[0] || (x[0] = (N) => n("close"))
1305
1364
  }, " × "),
1306
- f("div", ta, [
1307
- y($.$slots, "default")
1365
+ f("div", oa, [
1366
+ g($.$slots, "default")
1308
1367
  ])
1309
- ], 10, ea)
1310
- ], 32)) : g("", !0);
1368
+ ], 10, na)
1369
+ ], 32)) : y("", !0);
1311
1370
  }
1312
- }), sa = ["aria-hidden"], Ma = /* @__PURE__ */ h({
1371
+ }), ra = ["aria-hidden"], qa = /* @__PURE__ */ h({
1313
1372
  __name: "Tooltip",
1314
1373
  props: {
1315
1374
  content: {},
@@ -1326,7 +1385,7 @@ const Ge = {
1326
1385
  s.value = !0;
1327
1386
  }, t.delay);
1328
1387
  }
1329
- function o() {
1388
+ function r() {
1330
1389
  i !== null && (clearTimeout(i), i = null), s.value = !1;
1331
1390
  }
1332
1391
  j(() => {
@@ -1341,24 +1400,24 @@ const Ge = {
1341
1400
  s.value && "strand-tooltip--visible"
1342
1401
  ].filter(Boolean).join(" ")
1343
1402
  );
1344
- return (u, p) => (l(), r("span", {
1403
+ return (u, p) => (l(), o("span", {
1345
1404
  class: b(m.value),
1346
1405
  "aria-describedby": n,
1347
1406
  onMouseenter: d,
1348
- onMouseleave: o,
1407
+ onMouseleave: r,
1349
1408
  onFocus: d,
1350
- onBlur: o
1409
+ onBlur: r
1351
1410
  }, [
1352
- y(u.$slots, "default"),
1411
+ g(u.$slots, "default"),
1353
1412
  f("span", {
1354
1413
  id: n,
1355
1414
  class: b(v.value),
1356
1415
  role: "tooltip",
1357
1416
  "aria-hidden": !s.value
1358
- }, _(e.content), 11, sa)
1417
+ }, _(e.content), 11, ra)
1359
1418
  ], 34));
1360
1419
  }
1361
- }), na = ["aria-valuenow"], la = ["width", "height", "viewBox"], ra = ["cx", "cy", "r"], oa = ["cx", "cy", "r", "stroke-dasharray", "stroke-dashoffset", "transform"], T = 3, Ka = /* @__PURE__ */ h({
1420
+ }), ia = ["aria-valuenow"], da = ["width", "height", "viewBox"], ca = ["cx", "cy", "r"], ua = ["cx", "cy", "r", "stroke-dasharray", "stroke-dashoffset", "transform"], T = 3, Ga = /* @__PURE__ */ h({
1362
1421
  __name: "Progress",
1363
1422
  props: {
1364
1423
  variant: { default: "bar" },
@@ -1375,17 +1434,17 @@ const Ge = {
1375
1434
  !n.value && "strand-progress--indeterminate",
1376
1435
  t.className
1377
1436
  ].filter(Boolean).join(" ")
1378
- ), i = c(() => a[t.size] ?? a.md), d = c(() => (i.value - T) / 2), o = c(() => 2 * Math.PI * d.value), m = c(
1379
- () => n.value ? o.value - o.value * t.value / 100 : 0
1437
+ ), i = c(() => a[t.size] ?? a.md), d = c(() => (i.value - T) / 2), r = c(() => 2 * Math.PI * d.value), m = c(
1438
+ () => n.value ? r.value - r.value * t.value / 100 : 0
1380
1439
  );
1381
- return (v, u) => (l(), r("div", k({
1440
+ return (v, u) => (l(), o("div", k({
1382
1441
  class: s.value,
1383
1442
  role: "progressbar",
1384
1443
  "aria-valuemin": 0,
1385
1444
  "aria-valuemax": 100,
1386
1445
  "aria-valuenow": n.value ? e.value : void 0
1387
1446
  }, v.$attrs), [
1388
- e.variant === "ring" ? (l(), r("svg", {
1447
+ e.variant === "ring" ? (l(), o("svg", {
1389
1448
  key: 0,
1390
1449
  width: i.value,
1391
1450
  height: i.value,
@@ -1399,27 +1458,27 @@ const Ge = {
1399
1458
  fill: "none",
1400
1459
  "stroke-width": T,
1401
1460
  class: "strand-progress__track"
1402
- }, null, 8, ra),
1461
+ }, null, 8, ca),
1403
1462
  f("circle", {
1404
1463
  cx: i.value / 2,
1405
1464
  cy: i.value / 2,
1406
1465
  r: d.value,
1407
1466
  fill: "none",
1408
1467
  "stroke-width": T,
1409
- "stroke-dasharray": o.value,
1468
+ "stroke-dasharray": r.value,
1410
1469
  "stroke-dashoffset": n.value ? m.value : void 0,
1411
1470
  "stroke-linecap": "round",
1412
1471
  class: "strand-progress__fill",
1413
1472
  transform: `rotate(-90 ${i.value / 2} ${i.value / 2})`
1414
- }, null, 8, oa)
1415
- ], 8, la)) : (l(), r("div", {
1473
+ }, null, 8, ua)
1474
+ ], 8, da)) : (l(), o("div", {
1416
1475
  key: 1,
1417
1476
  class: "strand-progress__fill",
1418
1477
  style: S(n.value ? { width: `${e.value}%` } : void 0)
1419
1478
  }, null, 4))
1420
- ], 16, na));
1479
+ ], 16, ia));
1421
1480
  }
1422
- }), Pa = /* @__PURE__ */ h({
1481
+ }), Wa = /* @__PURE__ */ h({
1423
1482
  __name: "Spinner",
1424
1483
  props: {
1425
1484
  size: { default: "md" },
@@ -1433,7 +1492,7 @@ const Ge = {
1433
1492
  t.className
1434
1493
  ].filter(Boolean).join(" ")
1435
1494
  );
1436
- return (n, s) => (l(), r("span", k({
1495
+ return (n, s) => (l(), o("span", k({
1437
1496
  class: a.value,
1438
1497
  role: "status"
1439
1498
  }, n.$attrs), [...s[0] || (s[0] = [
@@ -1444,7 +1503,7 @@ const Ge = {
1444
1503
  f("span", { class: "strand-spinner__sr-only" }, "Loading", -1)
1445
1504
  ])], 16));
1446
1505
  }
1447
- }), Ua = /* @__PURE__ */ h({
1506
+ }), Ha = /* @__PURE__ */ h({
1448
1507
  __name: "Skeleton",
1449
1508
  props: {
1450
1509
  variant: { default: "text" },
@@ -1468,7 +1527,7 @@ const Ge = {
1468
1527
  width: a.value,
1469
1528
  height: n.value
1470
1529
  }));
1471
- return (d, o) => (l(), r("div", k({
1530
+ return (d, r) => (l(), o("div", k({
1472
1531
  class: s.value,
1473
1532
  "aria-hidden": "true",
1474
1533
  style: i.value
@@ -1476,41 +1535,41 @@ const Ge = {
1476
1535
  }
1477
1536
  });
1478
1537
  export {
1479
- Aa as Alert,
1480
- ga as Avatar,
1481
- $a as Badge,
1482
- za as Breadcrumb,
1483
- da as Button,
1484
- pa as Card,
1485
- va as Checkbox,
1486
- wa as CodeBlock,
1487
- Na as Container,
1488
- Ba as DataReadout,
1489
- Fa as Dialog,
1490
- ja as Divider,
1491
- ba as FormField,
1492
- xa as Grid,
1493
- ca as Input,
1494
- Ra as InstrumentViewport,
1495
- Ia as Link,
1496
- Va as Nav,
1497
- Ka as Progress,
1498
- ma as Radio,
1499
- Sa as ScrollReveal,
1500
- Ta as Section,
1501
- fa as Select,
1502
- Ua as Skeleton,
1503
- _a as Slider,
1504
- Pa as Spinner,
1505
- Ca as Stack,
1506
- ha as Switch,
1507
- ka as Table,
1508
- Ea as Tabs,
1509
- ya as Tag,
1510
- ua as Textarea,
1511
- La as Toast,
1512
- Oa as ToastProvider,
1513
- Ma as Tooltip,
1514
- Da as useToast
1538
+ Pa as Alert,
1539
+ Ba as Avatar,
1540
+ wa as Badge,
1541
+ Oa as Breadcrumb,
1542
+ va as Button,
1543
+ ka as Card,
1544
+ ba as Checkbox,
1545
+ ja as CodeBlock,
1546
+ Sa as Container,
1547
+ Na as DataReadout,
1548
+ Ua as Dialog,
1549
+ Ia as Divider,
1550
+ ga as FormField,
1551
+ Ra as Grid,
1552
+ ma as Input,
1553
+ za as InstrumentViewport,
1554
+ Da as Link,
1555
+ Ma as Nav,
1556
+ Ga as Progress,
1557
+ pa as Radio,
1558
+ Va as ScrollReveal,
1559
+ Ea as Section,
1560
+ _a as Select,
1561
+ Ha as Skeleton,
1562
+ $a as Slider,
1563
+ Wa as Spinner,
1564
+ Ta as Stack,
1565
+ ya as Switch,
1566
+ xa as Table,
1567
+ La as Tabs,
1568
+ Ca as Tag,
1569
+ ha as Textarea,
1570
+ Aa as Toast,
1571
+ Ka as ToastProvider,
1572
+ qa as Tooltip,
1573
+ Fa as useToast
1515
1574
  };
1516
1575
  //# sourceMappingURL=index.js.map