@dillingerstaffing/strand-ui 0.4.0 → 0.5.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,6 +1,6 @@
1
1
  import { jsxs as _, jsx as s } from "preact/jsx-runtime";
2
2
  import { forwardRef as p } from "preact/compat";
3
- import { useRef as k, useCallback as b, useEffect as x, useState as B, useContext as R } from "preact/hooks";
3
+ import { useRef as k, useCallback as v, useEffect as x, useState as B, useContext as R } from "preact/hooks";
4
4
  import { createContext as I } from "preact";
5
5
  const E = p(
6
6
  ({
@@ -8,10 +8,10 @@ const E = p(
8
8
  size: t = "md",
9
9
  loading: e = !1,
10
10
  iconOnly: n = !1,
11
- fullWidth: i = !1,
11
+ fullWidth: l = !1,
12
12
  disabled: o = !1,
13
13
  className: r = "",
14
- children: l,
14
+ children: i,
15
15
  onClick: c,
16
16
  type: u = "button",
17
17
  ...d
@@ -21,7 +21,7 @@ const E = p(
21
21
  `strand-btn--${a}`,
22
22
  `strand-btn--${t}`,
23
23
  n && "strand-btn--icon-only",
24
- i && "strand-btn--full-width",
24
+ l && "strand-btn--full-width",
25
25
  e && "strand-btn--loading",
26
26
  r
27
27
  ].filter(Boolean).join(" ");
@@ -43,7 +43,7 @@ const E = p(
43
43
  {
44
44
  className: "strand-btn__content",
45
45
  style: e ? { visibility: "hidden" } : void 0,
46
- children: l
46
+ children: i
47
47
  }
48
48
  )
49
49
  ]
@@ -58,24 +58,24 @@ const K = p(
58
58
  error: t = !1,
59
59
  leadingAddon: e,
60
60
  trailingAddon: n,
61
- className: i = "",
61
+ className: l = "",
62
62
  disabled: o,
63
63
  ...r
64
- }, l) => {
64
+ }, i) => {
65
65
  const c = [
66
66
  "strand-input",
67
67
  t && "strand-input--error",
68
68
  o && "strand-input--disabled",
69
69
  e && "strand-input--has-leading",
70
70
  n && "strand-input--has-trailing",
71
- i
71
+ l
72
72
  ].filter(Boolean).join(" ");
73
73
  return /* @__PURE__ */ _("div", { className: c, children: [
74
74
  e && /* @__PURE__ */ s("span", { className: "strand-input__leading", "aria-hidden": "true", children: e }),
75
75
  /* @__PURE__ */ s(
76
76
  "input",
77
77
  {
78
- ref: l,
78
+ ref: i,
79
79
  type: a,
80
80
  className: "strand-input__field",
81
81
  disabled: o,
@@ -94,26 +94,26 @@ const A = p(
94
94
  showCount: t = !1,
95
95
  error: e = !1,
96
96
  maxLength: n,
97
- disabled: i,
97
+ disabled: l,
98
98
  className: o = "",
99
99
  value: r,
100
- onInput: l,
100
+ onInput: i,
101
101
  ...c
102
102
  }, u) => {
103
- const d = k(null), h = b(
103
+ const d = k(null), h = v(
104
104
  (g) => {
105
105
  d.current = g, typeof u == "function" ? u(g) : u && (u.current = g);
106
106
  },
107
107
  [u]
108
- ), m = b(
108
+ ), m = v(
109
109
  (g) => {
110
- a && d.current && (d.current.style.height = "auto", d.current.style.height = `${d.current.scrollHeight}px`), l && l(g);
110
+ a && d.current && (d.current.style.height = "auto", d.current.style.height = `${d.current.scrollHeight}px`), i && i(g);
111
111
  },
112
- [a, l]
112
+ [a, i]
113
113
  ), f = [
114
114
  "strand-textarea",
115
115
  e && "strand-textarea--error",
116
- i && "strand-textarea--disabled",
116
+ l && "strand-textarea--disabled",
117
117
  a && "strand-textarea--auto-resize",
118
118
  o
119
119
  ].filter(Boolean).join(" "), N = typeof r == "string" ? r.length : 0;
@@ -123,7 +123,7 @@ const A = p(
123
123
  {
124
124
  ref: h,
125
125
  className: "strand-textarea__field",
126
- disabled: i,
126
+ disabled: l,
127
127
  "aria-invalid": e ? "true" : void 0,
128
128
  maxLength: n,
129
129
  value: r,
@@ -146,14 +146,14 @@ const L = p(
146
146
  value: t,
147
147
  onChange: e,
148
148
  disabled: n,
149
- error: i = !1,
149
+ error: l = !1,
150
150
  placeholder: o,
151
151
  className: r = "",
152
- ...l
152
+ ...i
153
153
  }, c) => {
154
154
  const u = [
155
155
  "strand-select",
156
- i && "strand-select--error",
156
+ l && "strand-select--error",
157
157
  n && "strand-select--disabled",
158
158
  r
159
159
  ].filter(Boolean).join(" ");
@@ -166,8 +166,8 @@ const L = p(
166
166
  value: t,
167
167
  onChange: e,
168
168
  disabled: n,
169
- "aria-invalid": i ? "true" : void 0,
170
- ...l,
169
+ "aria-invalid": l ? "true" : void 0,
170
+ ...i,
171
171
  children: [
172
172
  o && /* @__PURE__ */ s("option", { value: "", disabled: !0, children: o }),
173
173
  a.map((d) => /* @__PURE__ */ s("option", { value: d.value, children: d.label }, d.value))
@@ -185,15 +185,15 @@ const M = p(
185
185
  indeterminate: t = !1,
186
186
  onChange: e,
187
187
  disabled: n = !1,
188
- label: i,
188
+ label: l,
189
189
  className: o = "",
190
190
  ...r
191
- }, l) => {
191
+ }, i) => {
192
192
  const c = k(null);
193
193
  x(() => {
194
- const f = typeof l == "function" ? c.current : (l == null ? void 0 : l.current) ?? c.current;
194
+ const f = typeof i == "function" ? c.current : (i == null ? void 0 : i.current) ?? c.current;
195
195
  f && (f.indeterminate = t);
196
- }, [t, l]);
196
+ }, [t, i]);
197
197
  const u = [
198
198
  "strand-checkbox",
199
199
  a && "strand-checkbox--checked",
@@ -217,7 +217,7 @@ const M = p(
217
217
  "input",
218
218
  {
219
219
  ref: (f) => {
220
- c.current = f, typeof l == "function" ? l(f) : l && (l.current = f);
220
+ c.current = f, typeof i == "function" ? i(f) : i && (i.current = f);
221
221
  },
222
222
  type: "checkbox",
223
223
  className: "strand-checkbox__native",
@@ -266,7 +266,7 @@ const M = p(
266
266
  )
267
267
  }
268
268
  ) : null }),
269
- i && /* @__PURE__ */ s("span", { className: "strand-checkbox__label", children: i })
269
+ l && /* @__PURE__ */ s("span", { className: "strand-checkbox__label", children: l })
270
270
  ]
271
271
  }
272
272
  );
@@ -279,10 +279,10 @@ const P = p(
279
279
  onChange: t,
280
280
  disabled: e = !1,
281
281
  label: n,
282
- name: i,
282
+ name: l,
283
283
  value: o,
284
284
  className: r = "",
285
- ...l
285
+ ...i
286
286
  }, c) => {
287
287
  const u = [
288
288
  "strand-radio",
@@ -300,9 +300,9 @@ const P = p(
300
300
  checked: a,
301
301
  disabled: e,
302
302
  onChange: e ? void 0 : t,
303
- name: i,
303
+ name: l,
304
304
  value: o,
305
- ...l
305
+ ...i
306
306
  }
307
307
  ),
308
308
  /* @__PURE__ */ s("span", { className: "strand-radio__control", "aria-hidden": "true", children: /* @__PURE__ */ s("span", { className: "strand-radio__dot" }) }),
@@ -317,16 +317,16 @@ const F = p(
317
317
  onChange: t,
318
318
  disabled: e = !1,
319
319
  label: n,
320
- className: i = "",
320
+ className: l = "",
321
321
  ...o
322
322
  }, r) => {
323
- const l = [
323
+ const i = [
324
324
  "strand-switch",
325
325
  a && "strand-switch--checked",
326
326
  e && "strand-switch--disabled",
327
- i
327
+ l
328
328
  ].filter(Boolean).join(" ");
329
- return /* @__PURE__ */ _("label", { className: l, children: [
329
+ return /* @__PURE__ */ _("label", { className: i, children: [
330
330
  /* @__PURE__ */ s(
331
331
  "button",
332
332
  {
@@ -357,10 +357,10 @@ const q = p(
357
357
  max: t = 100,
358
358
  step: e = 1,
359
359
  value: n,
360
- onChange: i,
360
+ onChange: l,
361
361
  disabled: o,
362
362
  className: r = "",
363
- ...l
363
+ ...i
364
364
  }, c) => {
365
365
  const u = [
366
366
  "strand-slider",
@@ -377,12 +377,12 @@ const q = p(
377
377
  max: t,
378
378
  step: e,
379
379
  value: n,
380
- onChange: i,
380
+ onChange: l,
381
381
  disabled: o,
382
382
  "aria-valuemin": a,
383
383
  "aria-valuemax": t,
384
384
  "aria-valuenow": n,
385
- ...l
385
+ ...i
386
386
  }
387
387
  ) });
388
388
  }
@@ -394,19 +394,19 @@ const G = p(
394
394
  htmlFor: t,
395
395
  hint: e,
396
396
  error: n,
397
- required: i = !1,
397
+ required: l = !1,
398
398
  className: o = "",
399
399
  children: r
400
- }, l) => {
400
+ }, i) => {
401
401
  const c = [
402
402
  "strand-form-field",
403
403
  n && "strand-form-field--error",
404
404
  o
405
405
  ].filter(Boolean).join(" ");
406
- return /* @__PURE__ */ _("div", { ref: l, className: c, children: [
406
+ return /* @__PURE__ */ _("div", { ref: i, className: c, children: [
407
407
  /* @__PURE__ */ _("label", { className: "strand-form-field__label", htmlFor: t, children: [
408
408
  a,
409
- i && /* @__PURE__ */ s("span", { className: "strand-form-field__required", "aria-hidden": "true", children: "*" })
409
+ l && /* @__PURE__ */ s("span", { className: "strand-form-field__required", "aria-hidden": "true", children: "*" })
410
410
  ] }),
411
411
  /* @__PURE__ */ s("div", { className: "strand-form-field__control", children: r }),
412
412
  n ? /* @__PURE__ */ s(
@@ -428,7 +428,7 @@ const H = p(
428
428
  padding: t = "md",
429
429
  className: e = "",
430
430
  children: n,
431
- ...i
431
+ ...l
432
432
  }, o) => {
433
433
  const r = [
434
434
  "strand-card",
@@ -436,7 +436,7 @@ const H = p(
436
436
  `strand-card--pad-${t}`,
437
437
  e
438
438
  ].filter(Boolean).join(" ");
439
- return /* @__PURE__ */ s("div", { ref: o, className: r, ...i, children: n });
439
+ return /* @__PURE__ */ s("div", { ref: o, className: r, ...l, children: n });
440
440
  }
441
441
  );
442
442
  H.displayName = "Card";
@@ -446,10 +446,10 @@ const U = p(
446
446
  status: t = "default",
447
447
  count: e,
448
448
  maxCount: n = 99,
449
- className: i = "",
449
+ className: l = "",
450
450
  children: o,
451
451
  ...r
452
- }, l) => {
452
+ }, i) => {
453
453
  const c = o != null && o !== !1, u = a === "count" ? e != null && e > n ? `${n}+` : e : null, d = a === "dot" ? "Status indicator" : e != null ? `${e} notifications` : void 0, h = [
454
454
  "strand-badge__indicator",
455
455
  `strand-badge--${a}`,
@@ -459,12 +459,12 @@ const U = p(
459
459
  const N = [
460
460
  "strand-badge",
461
461
  "strand-badge--inline",
462
- i
462
+ l
463
463
  ].filter(Boolean).join(" ");
464
- return /* @__PURE__ */ s("span", { ref: l, className: N, ...r, children: m });
464
+ return /* @__PURE__ */ s("span", { ref: i, className: N, ...r, children: m });
465
465
  }
466
- const f = ["strand-badge", i].filter(Boolean).join(" ");
467
- return /* @__PURE__ */ _("span", { ref: l, className: f, ...r, children: [
466
+ const f = ["strand-badge", l].filter(Boolean).join(" ");
467
+ return /* @__PURE__ */ _("span", { ref: i, className: f, ...r, children: [
468
468
  o,
469
469
  m
470
470
  ] });
@@ -477,15 +477,15 @@ const V = p(
477
477
  alt: t = "",
478
478
  initials: e = "",
479
479
  size: n = "md",
480
- className: i = "",
480
+ className: l = "",
481
481
  ...o
482
482
  }, r) => {
483
- const [l, c] = B(!1), u = b(() => {
483
+ const [i, c] = B(!1), u = v(() => {
484
484
  c(!0);
485
- }, []), d = a && !l, h = e.slice(0, 2).toUpperCase(), m = [
485
+ }, []), d = a && !i, h = e.slice(0, 2).toUpperCase(), m = [
486
486
  "strand-avatar",
487
487
  `strand-avatar--${n}`,
488
- i
488
+ l
489
489
  ].filter(Boolean).join(" ");
490
490
  return /* @__PURE__ */ s("div", { ref: r, className: m, role: "img", "aria-label": t || h, ...o, children: d ? /* @__PURE__ */ s(
491
491
  "img",
@@ -505,17 +505,17 @@ const O = p(
505
505
  status: t = "default",
506
506
  removable: e = !1,
507
507
  onRemove: n,
508
- className: i = "",
508
+ className: l = "",
509
509
  children: o,
510
510
  ...r
511
- }, l) => {
511
+ }, i) => {
512
512
  const c = [
513
513
  "strand-tag",
514
514
  `strand-tag--${a}`,
515
515
  `strand-tag--${t}`,
516
- i
516
+ l
517
517
  ].filter(Boolean).join(" ");
518
- return /* @__PURE__ */ _("span", { ref: l, className: c, ...r, children: [
518
+ return /* @__PURE__ */ _("span", { ref: i, className: c, ...r, children: [
519
519
  /* @__PURE__ */ s("span", { className: "strand-tag__text", children: o }),
520
520
  e && /* @__PURE__ */ s(
521
521
  "button",
@@ -550,15 +550,15 @@ const O = p(
550
550
  );
551
551
  O.displayName = "Tag";
552
552
  const z = p(
553
- ({ columns: a, data: t, onSort: e, className: n = "", ...i }, o) => {
554
- const [r, l] = B(null), [c, u] = B("asc"), d = b(
553
+ ({ columns: a, data: t, onSort: e, className: n = "", ...l }, o) => {
554
+ const [r, i] = B(null), [c, u] = B("asc"), d = v(
555
555
  (m) => {
556
556
  const f = r === m && c === "asc" ? "desc" : "asc";
557
- l(m), u(f), e == null || e(m, f);
557
+ i(m), u(f), e == null || e(m, f);
558
558
  },
559
559
  [r, c, e]
560
560
  ), h = ["strand-table-wrapper", n].filter(Boolean).join(" ");
561
- return /* @__PURE__ */ s("div", { ref: o, className: h, ...i, children: /* @__PURE__ */ _("table", { className: "strand-table", children: [
561
+ return /* @__PURE__ */ s("div", { ref: o, className: h, ...l, children: /* @__PURE__ */ _("table", { className: "strand-table", children: [
562
562
  /* @__PURE__ */ s("thead", { className: "strand-table__head", children: /* @__PURE__ */ s("tr", { children: a.map((m) => /* @__PURE__ */ s(
563
563
  "th",
564
564
  {
@@ -593,13 +593,13 @@ const z = p(
593
593
  );
594
594
  z.displayName = "Table";
595
595
  const W = p(
596
- ({ label: a, value: t, size: e, className: n = "", ...i }, o) => {
596
+ ({ label: a, value: t, size: e, className: n = "", ...l }, o) => {
597
597
  const r = [
598
598
  "strand-data-readout",
599
599
  e && e !== "md" ? `strand-data-readout--${e}` : "",
600
600
  n
601
601
  ].filter(Boolean).join(" ");
602
- return /* @__PURE__ */ _("div", { ref: o, className: r, ...i, children: [
602
+ return /* @__PURE__ */ _("div", { ref: o, className: r, ...l, children: [
603
603
  /* @__PURE__ */ s("span", { className: "strand-data-readout__label", children: a }),
604
604
  /* @__PURE__ */ s("span", { className: "strand-data-readout__value", children: t })
605
605
  ] });
@@ -607,22 +607,32 @@ const W = p(
607
607
  );
608
608
  W.displayName = "DataReadout";
609
609
  const Z = p(
610
+ ({ code: a, language: t, className: e = "", ...n }, l) => {
611
+ const o = ["strand-code-block", e].filter(Boolean).join(" ");
612
+ return /* @__PURE__ */ _("div", { ref: l, className: o, ...n, children: [
613
+ t && /* @__PURE__ */ s("span", { className: "strand-code-block__label", children: t }),
614
+ /* @__PURE__ */ s("pre", { className: "strand-code-block__pre", children: /* @__PURE__ */ s("code", { children: a }) })
615
+ ] });
616
+ }
617
+ );
618
+ Z.displayName = "CodeBlock";
619
+ const J = p(
610
620
  ({
611
621
  direction: a = "vertical",
612
622
  gap: t = 4,
613
623
  align: e = "stretch",
614
624
  wrap: n = !1,
615
- justify: i,
625
+ justify: l,
616
626
  className: o = "",
617
627
  style: r,
618
- children: l,
628
+ children: i,
619
629
  ...c
620
630
  }, u) => {
621
631
  const d = [
622
632
  "strand-stack",
623
633
  `strand-stack--${a}`,
624
634
  e !== "stretch" && `strand-stack--align-${e}`,
625
- i && `strand-stack--justify-${i}`,
635
+ l && `strand-stack--justify-${l}`,
626
636
  n && "strand-stack--wrap",
627
637
  o
628
638
  ].filter(Boolean).join(" "), h = {
@@ -635,22 +645,22 @@ const Z = p(
635
645
  className: d,
636
646
  style: { ...h, ...r },
637
647
  ...c,
638
- children: l
648
+ children: i
639
649
  }
640
650
  );
641
651
  }
642
652
  );
643
- Z.displayName = "Stack";
644
- const J = p(
653
+ J.displayName = "Stack";
654
+ const Q = p(
645
655
  ({
646
656
  columns: a = 1,
647
657
  gap: t = 4,
648
658
  className: e = "",
649
659
  style: n,
650
- children: i,
660
+ children: l,
651
661
  ...o
652
662
  }, r) => {
653
- const l = ["strand-grid", e].filter(Boolean).join(" "), c = {
663
+ const i = ["strand-grid", e].filter(Boolean).join(" "), c = {
654
664
  gridTemplateColumns: `repeat(${a}, 1fr)`,
655
665
  gap: `var(--strand-space-${t})`
656
666
  };
@@ -658,32 +668,32 @@ const J = p(
658
668
  "div",
659
669
  {
660
670
  ref: r,
661
- className: l,
671
+ className: i,
662
672
  style: { ...c, ...n },
663
673
  ...o,
664
- children: i
674
+ children: l
665
675
  }
666
676
  );
667
677
  }
668
678
  );
669
- J.displayName = "Grid";
670
- const Q = p(
679
+ Q.displayName = "Grid";
680
+ const X = p(
671
681
  ({
672
682
  size: a = "default",
673
683
  className: t = "",
674
684
  children: e,
675
685
  ...n
676
- }, i) => {
686
+ }, l) => {
677
687
  const o = [
678
688
  "strand-container",
679
689
  `strand-container--${a}`,
680
690
  t
681
691
  ].filter(Boolean).join(" ");
682
- return /* @__PURE__ */ s("div", { ref: i, className: o, ...n, children: e });
692
+ return /* @__PURE__ */ s("div", { ref: l, className: o, ...n, children: e });
683
693
  }
684
694
  );
685
- Q.displayName = "Container";
686
- const X = p(
695
+ X.displayName = "Container";
696
+ const Y = p(
687
697
  ({ direction: a = "horizontal", label: t, className: e = "" }, n) => {
688
698
  if (a === "vertical") {
689
699
  const r = [
@@ -739,14 +749,14 @@ const X = p(
739
749
  );
740
750
  }
741
751
  );
742
- X.displayName = "Divider";
743
- const Y = p(
752
+ Y.displayName = "Divider";
753
+ const aa = p(
744
754
  ({
745
755
  variant: a = "standard",
746
756
  background: t = "primary",
747
757
  className: e = "",
748
758
  children: n,
749
- ...i
759
+ ...l
750
760
  }, o) => {
751
761
  const r = [
752
762
  "strand-section",
@@ -754,12 +764,12 @@ const Y = p(
754
764
  `strand-section--bg-${t}`,
755
765
  e
756
766
  ].filter(Boolean).join(" ");
757
- return /* @__PURE__ */ s("section", { ref: o, className: r, ...i, children: n });
767
+ return /* @__PURE__ */ s("section", { ref: o, className: r, ...l, children: n });
758
768
  }
759
769
  );
760
- Y.displayName = "Section";
761
- const aa = p(
762
- ({ href: a, external: t = !1, className: e = "", children: n, ...i }, o) => {
770
+ aa.displayName = "Section";
771
+ const ea = p(
772
+ ({ href: a, external: t = !1, className: e = "", children: n, ...l }, o) => {
763
773
  const r = ["strand-link", e].filter(Boolean).join(" ");
764
774
  return /* @__PURE__ */ s(
765
775
  "a",
@@ -768,16 +778,16 @@ const aa = p(
768
778
  href: a,
769
779
  className: r,
770
780
  ...t && { target: "_blank", rel: "noopener noreferrer" },
771
- ...i,
781
+ ...l,
772
782
  children: n
773
783
  }
774
784
  );
775
785
  }
776
786
  );
777
- aa.displayName = "Link";
778
- const ea = p(
779
- ({ tabs: a, activeTab: t, onChange: e, className: n = "", ...i }, o) => {
780
- const r = k(null), l = ["strand-tabs", n].filter(Boolean).join(" "), c = b(
787
+ ea.displayName = "Link";
788
+ const sa = p(
789
+ ({ tabs: a, activeTab: t, onChange: e, className: n = "", ...l }, o) => {
790
+ const r = k(null), i = ["strand-tabs", n].filter(Boolean).join(" "), c = v(
781
791
  (d) => {
782
792
  var m, f;
783
793
  const h = a[d];
@@ -790,7 +800,7 @@ const ea = p(
790
800
  }
791
801
  },
792
802
  [a, e]
793
- ), u = b(
803
+ ), u = v(
794
804
  (d) => {
795
805
  const h = a.findIndex((f) => f.id === t);
796
806
  let m = null;
@@ -814,7 +824,7 @@ const ea = p(
814
824
  },
815
825
  [a, t, c]
816
826
  );
817
- return /* @__PURE__ */ _("div", { ref: o, className: l, ...i, children: [
827
+ return /* @__PURE__ */ _("div", { ref: o, className: i, ...l, children: [
818
828
  /* @__PURE__ */ s(
819
829
  "div",
820
830
  {
@@ -862,14 +872,14 @@ const ea = p(
862
872
  ] });
863
873
  }
864
874
  );
865
- ea.displayName = "Tabs";
866
- const sa = p(
867
- ({ items: a, separator: t = "/", className: e = "", ...n }, i) => {
875
+ sa.displayName = "Tabs";
876
+ const ta = p(
877
+ ({ items: a, separator: t = "/", className: e = "", ...n }, l) => {
868
878
  const o = ["strand-breadcrumb", e].filter(Boolean).join(" ");
869
- return /* @__PURE__ */ s("nav", { ref: i, "aria-label": "Breadcrumb", className: o, ...n, children: /* @__PURE__ */ s("ol", { className: "strand-breadcrumb__list", children: a.map((r, l) => {
870
- const c = l === a.length - 1;
879
+ return /* @__PURE__ */ s("nav", { ref: l, "aria-label": "Breadcrumb", className: o, ...n, children: /* @__PURE__ */ s("ol", { className: "strand-breadcrumb__list", children: a.map((r, i) => {
880
+ const c = i === a.length - 1;
871
881
  return /* @__PURE__ */ _("li", { className: "strand-breadcrumb__item", children: [
872
- l > 0 && /* @__PURE__ */ s("span", { className: "strand-breadcrumb__separator", "aria-hidden": "true", children: t }),
882
+ i > 0 && /* @__PURE__ */ s("span", { className: "strand-breadcrumb__separator", "aria-hidden": "true", children: t }),
873
883
  c ? /* @__PURE__ */ s(
874
884
  "span",
875
885
  {
@@ -878,17 +888,17 @@ const sa = p(
878
888
  children: r.label
879
889
  }
880
890
  ) : /* @__PURE__ */ s("a", { href: r.href, className: "strand-breadcrumb__link", children: r.label })
881
- ] }, `${r.label}-${l}`);
891
+ ] }, `${r.label}-${i}`);
882
892
  }) }) });
883
893
  }
884
894
  );
885
- sa.displayName = "Breadcrumb";
886
- const ta = p(
887
- ({ logo: a, items: t = [], actions: e, className: n = "", ...i }, o) => {
888
- const [r, l] = B(!1), c = b(() => {
889
- l((d) => !d);
895
+ ta.displayName = "Breadcrumb";
896
+ const na = p(
897
+ ({ logo: a, items: t = [], actions: e, className: n = "", ...l }, o) => {
898
+ const [r, i] = B(!1), c = v(() => {
899
+ i((d) => !d);
890
900
  }, []), u = ["strand-nav", n].filter(Boolean).join(" ");
891
- return /* @__PURE__ */ _("nav", { ref: o, className: u, "aria-label": "Main navigation", ...i, children: [
901
+ return /* @__PURE__ */ _("nav", { ref: o, className: u, "aria-label": "Main navigation", ...l, children: [
892
902
  /* @__PURE__ */ _("div", { className: "strand-nav__inner", children: [
893
903
  a && /* @__PURE__ */ s("div", { className: "strand-nav__logo", children: a }),
894
904
  /* @__PURE__ */ s("div", { className: "strand-nav__items", children: t.map((d) => {
@@ -939,50 +949,50 @@ const ta = p(
939
949
  ] });
940
950
  }
941
951
  );
942
- ta.displayName = "Nav";
952
+ na.displayName = "Nav";
943
953
  const S = I(null);
944
- function ya() {
954
+ function ga() {
945
955
  const a = R(S);
946
956
  if (!a)
947
957
  throw new Error("useToast must be used within a ToastProvider");
948
958
  return a;
949
959
  }
950
- let na = 0;
951
- const ra = ({ children: a, className: t = "" }) => {
952
- const [e, n] = B([]), i = b((l) => {
953
- n((c) => c.filter((u) => u.id !== l));
954
- }, []), o = b((l) => {
960
+ let ra = 0;
961
+ const la = ({ children: a, className: t = "" }) => {
962
+ const [e, n] = B([]), l = v((i) => {
963
+ n((c) => c.filter((u) => u.id !== i));
964
+ }, []), o = v((i) => {
955
965
  const c = {
956
- id: ++na,
957
- message: l.message,
958
- status: l.status ?? "info",
959
- duration: l.duration ?? 5e3
966
+ id: ++ra,
967
+ message: i.message,
968
+ status: i.status ?? "info",
969
+ duration: i.duration ?? 5e3
960
970
  };
961
971
  n((u) => [...u, c]);
962
972
  }, []), r = ["strand-toast__container", t].filter(Boolean).join(" ");
963
973
  return /* @__PURE__ */ _(S.Provider, { value: { toast: o }, children: [
964
974
  a,
965
- e.length > 0 && /* @__PURE__ */ s("div", { className: r, children: e.map((l) => /* @__PURE__ */ s(
966
- la,
975
+ e.length > 0 && /* @__PURE__ */ s("div", { className: r, children: e.map((i) => /* @__PURE__ */ s(
976
+ ia,
967
977
  {
968
- entry: l,
969
- onDismiss: () => i(l.id)
978
+ entry: i,
979
+ onDismiss: () => l(i.id)
970
980
  },
971
- l.id
981
+ i.id
972
982
  )) })
973
983
  ] });
974
984
  };
975
- ra.displayName = "ToastProvider";
976
- function la({ entry: a, onDismiss: t }) {
985
+ la.displayName = "ToastProvider";
986
+ function ia({ entry: a, onDismiss: t }) {
977
987
  const e = k(null);
978
988
  x(() => (a.duration > 0 && (e.current = setTimeout(t, a.duration)), () => {
979
989
  e.current !== null && clearTimeout(e.current);
980
990
  }), [a.duration, t]);
981
- const n = a.status === "error" || a.status === "warning", i = ["strand-toast", `strand-toast--${a.status}`].filter(Boolean).join(" ");
991
+ const n = a.status === "error" || a.status === "warning", l = ["strand-toast", `strand-toast--${a.status}`].filter(Boolean).join(" ");
982
992
  return /* @__PURE__ */ _(
983
993
  "div",
984
994
  {
985
- className: i,
995
+ className: l,
986
996
  role: "status",
987
997
  "aria-live": n ? "assertive" : "polite",
988
998
  children: [
@@ -1001,9 +1011,9 @@ function la({ entry: a, onDismiss: t }) {
1001
1011
  }
1002
1012
  );
1003
1013
  }
1004
- const ia = p(
1005
- ({ status: a = "info", message: t, onDismiss: e, className: n = "", ...i }, o) => {
1006
- const r = a === "error" || a === "warning", l = [
1014
+ const oa = p(
1015
+ ({ status: a = "info", message: t, onDismiss: e, className: n = "", ...l }, o) => {
1016
+ const r = a === "error" || a === "warning", i = [
1007
1017
  "strand-toast",
1008
1018
  `strand-toast--${a}`,
1009
1019
  n
@@ -1012,10 +1022,10 @@ const ia = p(
1012
1022
  "div",
1013
1023
  {
1014
1024
  ref: o,
1015
- className: l,
1025
+ className: i,
1016
1026
  role: "status",
1017
1027
  "aria-live": r ? "assertive" : "polite",
1018
- ...i,
1028
+ ...l,
1019
1029
  children: [
1020
1030
  /* @__PURE__ */ s("span", { className: "strand-toast__message", children: t }),
1021
1031
  e && /* @__PURE__ */ s(
@@ -1033,23 +1043,23 @@ const ia = p(
1033
1043
  );
1034
1044
  }
1035
1045
  );
1036
- ia.displayName = "Toast";
1037
- const oa = p(
1046
+ oa.displayName = "Toast";
1047
+ const da = p(
1038
1048
  ({
1039
1049
  status: a = "info",
1040
1050
  dismissible: t = !1,
1041
1051
  onDismiss: e,
1042
1052
  className: n = "",
1043
- children: i,
1053
+ children: l,
1044
1054
  ...o
1045
1055
  }, r) => {
1046
- const l = a === "error" || a === "warning" ? "alert" : "status", c = [
1056
+ const i = a === "error" || a === "warning" ? "alert" : "status", c = [
1047
1057
  "strand-alert",
1048
1058
  `strand-alert--${a}`,
1049
1059
  n
1050
1060
  ].filter(Boolean).join(" ");
1051
- return /* @__PURE__ */ _("div", { ref: r, className: c, role: l, ...o, children: [
1052
- /* @__PURE__ */ s("div", { className: "strand-alert__content", children: i }),
1061
+ return /* @__PURE__ */ _("div", { ref: r, className: c, role: i, ...o, children: [
1062
+ /* @__PURE__ */ s("div", { className: "strand-alert__content", children: l }),
1053
1063
  t && /* @__PURE__ */ s(
1054
1064
  "button",
1055
1065
  {
@@ -1063,63 +1073,63 @@ const oa = p(
1063
1073
  ] });
1064
1074
  }
1065
1075
  );
1066
- oa.displayName = "Alert";
1076
+ da.displayName = "Alert";
1067
1077
  const T = 'a[href], button:not(:disabled), textarea:not(:disabled), input:not(:disabled), select:not(:disabled), [tabindex]:not([tabindex="-1"])';
1068
- let da = 0;
1069
- const ca = p(
1078
+ let ca = 0;
1079
+ const ua = p(
1070
1080
  ({
1071
1081
  open: a,
1072
1082
  onClose: t,
1073
1083
  title: e,
1074
1084
  closeOnOutsideClick: n = !0,
1075
- closeOnEscape: i = !0,
1085
+ closeOnEscape: l = !0,
1076
1086
  className: o = "",
1077
1087
  children: r,
1078
- ...l
1088
+ ...i
1079
1089
  }, c) => {
1080
- const u = k(null), d = k(null), m = k(`strand-dialog-title-${++da}`).current;
1090
+ const u = k(null), d = k(null), m = k(`strand-dialog-title-${++ca}`).current;
1081
1091
  x(() => {
1082
1092
  if (!a) return;
1083
1093
  d.current = document.activeElement;
1084
- const v = requestAnimationFrame(() => {
1094
+ const b = requestAnimationFrame(() => {
1085
1095
  const y = u.current;
1086
1096
  if (!y) return;
1087
1097
  const w = y.querySelectorAll(T);
1088
1098
  w.length > 0 ? w[0].focus() : y.focus();
1089
1099
  });
1090
1100
  return () => {
1091
- cancelAnimationFrame(v);
1101
+ cancelAnimationFrame(b);
1092
1102
  const y = d.current;
1093
1103
  y && y instanceof HTMLElement && y.focus();
1094
1104
  };
1095
1105
  }, [a]), x(() => {
1096
1106
  if (!a) return;
1097
- const v = document.body.style.overflow;
1107
+ const b = document.body.style.overflow;
1098
1108
  return document.body.style.overflow = "hidden", () => {
1099
- document.body.style.overflow = v;
1109
+ document.body.style.overflow = b;
1100
1110
  };
1101
1111
  }, [a]);
1102
- const f = b(
1103
- (v) => {
1104
- if (v.key === "Escape" && i) {
1105
- v.stopPropagation(), t();
1112
+ const f = v(
1113
+ (b) => {
1114
+ if (b.key === "Escape" && l) {
1115
+ b.stopPropagation(), t();
1106
1116
  return;
1107
1117
  }
1108
- if (v.key === "Tab") {
1118
+ if (b.key === "Tab") {
1109
1119
  const y = u.current;
1110
1120
  if (!y) return;
1111
1121
  const w = Array.from(
1112
1122
  y.querySelectorAll(T)
1113
1123
  );
1114
1124
  if (w.length === 0) return;
1115
- const j = w[0], C = w[w.length - 1];
1116
- v.shiftKey ? document.activeElement === j && (v.preventDefault(), C.focus()) : document.activeElement === C && (v.preventDefault(), j.focus());
1125
+ const $ = w[0], j = w[w.length - 1];
1126
+ b.shiftKey ? document.activeElement === $ && (b.preventDefault(), j.focus()) : document.activeElement === j && (b.preventDefault(), $.focus());
1117
1127
  }
1118
1128
  },
1119
- [i, t]
1120
- ), N = b(
1121
- (v) => {
1122
- n && v.target === v.currentTarget && t();
1129
+ [l, t]
1130
+ ), N = v(
1131
+ (b) => {
1132
+ n && b.target === b.currentTarget && t();
1123
1133
  },
1124
1134
  [n, t]
1125
1135
  );
@@ -1134,15 +1144,15 @@ const ca = p(
1134
1144
  children: /* @__PURE__ */ _(
1135
1145
  "div",
1136
1146
  {
1137
- ref: (v) => {
1138
- u.current = v, typeof c == "function" ? c(v) : c && (c.current = v);
1147
+ ref: (b) => {
1148
+ u.current = b, typeof c == "function" ? c(b) : c && (c.current = b);
1139
1149
  },
1140
1150
  className: g,
1141
1151
  role: "dialog",
1142
1152
  "aria-modal": "true",
1143
1153
  "aria-labelledby": e ? m : void 0,
1144
1154
  tabIndex: -1,
1145
- ...l,
1155
+ ...i,
1146
1156
  children: [
1147
1157
  e && /* @__PURE__ */ s("div", { className: "strand-dialog__header", children: /* @__PURE__ */ s("h2", { id: m, className: "strand-dialog__title", children: e }) }),
1148
1158
  /* @__PURE__ */ s(
@@ -1163,27 +1173,27 @@ const ca = p(
1163
1173
  );
1164
1174
  }
1165
1175
  );
1166
- ca.displayName = "Dialog";
1167
- let ua = 0;
1168
- const ma = p(
1176
+ ua.displayName = "Dialog";
1177
+ let ma = 0;
1178
+ const ha = p(
1169
1179
  ({
1170
1180
  content: a,
1171
1181
  position: t = "top",
1172
1182
  delay: e = 200,
1173
1183
  className: n = "",
1174
- children: i,
1184
+ children: l,
1175
1185
  ...o
1176
1186
  }, r) => {
1177
- const [l, c] = B(!1), u = k(null), h = k(`strand-tooltip-${++ua}`).current, m = b(() => {
1187
+ const [i, c] = B(!1), u = k(null), h = k(`strand-tooltip-${++ma}`).current, m = v(() => {
1178
1188
  u.current = setTimeout(() => {
1179
1189
  c(!0);
1180
1190
  }, e);
1181
- }, [e]), f = b(() => {
1191
+ }, [e]), f = v(() => {
1182
1192
  u.current !== null && (clearTimeout(u.current), u.current = null), c(!1);
1183
1193
  }, []), N = ["strand-tooltip__wrapper", n].filter(Boolean).join(" "), g = [
1184
1194
  "strand-tooltip",
1185
1195
  `strand-tooltip--${t}`,
1186
- l && "strand-tooltip--visible"
1196
+ i && "strand-tooltip--visible"
1187
1197
  ].filter(Boolean).join(" ");
1188
1198
  return /* @__PURE__ */ _(
1189
1199
  "span",
@@ -1197,14 +1207,14 @@ const ma = p(
1197
1207
  "aria-describedby": h,
1198
1208
  ...o,
1199
1209
  children: [
1200
- i,
1210
+ l,
1201
1211
  /* @__PURE__ */ s(
1202
1212
  "span",
1203
1213
  {
1204
1214
  id: h,
1205
1215
  className: g,
1206
1216
  role: "tooltip",
1207
- "aria-hidden": !l,
1217
+ "aria-hidden": !i,
1208
1218
  children: a
1209
1219
  }
1210
1220
  )
@@ -1213,16 +1223,16 @@ const ma = p(
1213
1223
  );
1214
1224
  }
1215
1225
  );
1216
- ma.displayName = "Tooltip";
1217
- const D = { sm: 24, md: 40, lg: 56 }, $ = 3, ha = p(
1226
+ ha.displayName = "Tooltip";
1227
+ const D = { sm: 24, md: 40, lg: 56 }, C = 3, pa = p(
1218
1228
  ({
1219
1229
  variant: a = "bar",
1220
1230
  value: t,
1221
1231
  size: e = "md",
1222
1232
  className: n = "",
1223
- ...i
1233
+ ...l
1224
1234
  }, o) => {
1225
- const r = t != null, l = [
1235
+ const r = t != null, i = [
1226
1236
  "strand-progress",
1227
1237
  `strand-progress--${a}`,
1228
1238
  `strand-progress--${e}`,
@@ -1234,8 +1244,8 @@ const D = { sm: 24, md: 40, lg: 56 }, $ = 3, ha = p(
1234
1244
  "aria-valuemax": 100
1235
1245
  };
1236
1246
  if (r && (c["aria-valuenow"] = t), a === "ring") {
1237
- const u = D[e] ?? D.md, d = (u - $) / 2, h = 2 * Math.PI * d, m = r ? h - h * t / 100 : 0;
1238
- return /* @__PURE__ */ s("div", { ref: o, className: l, ...c, ...i, children: /* @__PURE__ */ _(
1247
+ const u = D[e] ?? D.md, d = (u - C) / 2, h = 2 * Math.PI * d, m = r ? h - h * t / 100 : 0;
1248
+ return /* @__PURE__ */ s("div", { ref: o, className: i, ...c, ...l, children: /* @__PURE__ */ _(
1239
1249
  "svg",
1240
1250
  {
1241
1251
  width: u,
@@ -1250,7 +1260,7 @@ const D = { sm: 24, md: 40, lg: 56 }, $ = 3, ha = p(
1250
1260
  cy: u / 2,
1251
1261
  r: d,
1252
1262
  fill: "none",
1253
- "stroke-width": $,
1263
+ "stroke-width": C,
1254
1264
  className: "strand-progress__track"
1255
1265
  }
1256
1266
  ),
@@ -1261,7 +1271,7 @@ const D = { sm: 24, md: 40, lg: 56 }, $ = 3, ha = p(
1261
1271
  cy: u / 2,
1262
1272
  r: d,
1263
1273
  fill: "none",
1264
- "stroke-width": $,
1274
+ "stroke-width": C,
1265
1275
  "stroke-dasharray": h,
1266
1276
  "stroke-dashoffset": r ? m : void 0,
1267
1277
  "stroke-linecap": "round",
@@ -1273,7 +1283,7 @@ const D = { sm: 24, md: 40, lg: 56 }, $ = 3, ha = p(
1273
1283
  }
1274
1284
  ) });
1275
1285
  }
1276
- return /* @__PURE__ */ s("div", { ref: o, className: l, ...c, ...i, children: /* @__PURE__ */ s(
1286
+ return /* @__PURE__ */ s("div", { ref: o, className: i, ...c, ...l, children: /* @__PURE__ */ s(
1277
1287
  "div",
1278
1288
  {
1279
1289
  className: "strand-progress__fill",
@@ -1282,34 +1292,34 @@ const D = { sm: 24, md: 40, lg: 56 }, $ = 3, ha = p(
1282
1292
  ) });
1283
1293
  }
1284
1294
  );
1285
- ha.displayName = "Progress";
1286
- const pa = p(
1295
+ pa.displayName = "Progress";
1296
+ const fa = p(
1287
1297
  ({
1288
1298
  size: a = "md",
1289
1299
  className: t = "",
1290
1300
  ...e
1291
1301
  }, n) => {
1292
- const i = [
1302
+ const l = [
1293
1303
  "strand-spinner",
1294
1304
  `strand-spinner--${a}`,
1295
1305
  t
1296
1306
  ].filter(Boolean).join(" ");
1297
- return /* @__PURE__ */ _("span", { ref: n, className: i, role: "status", ...e, children: [
1307
+ return /* @__PURE__ */ _("span", { ref: n, className: l, role: "status", ...e, children: [
1298
1308
  /* @__PURE__ */ s("span", { className: "strand-spinner__ring", "aria-hidden": "true" }),
1299
1309
  /* @__PURE__ */ s("span", { className: "strand-spinner__sr-only", children: "Loading" })
1300
1310
  ] });
1301
1311
  }
1302
1312
  );
1303
- pa.displayName = "Spinner";
1304
- const fa = p(
1313
+ fa.displayName = "Spinner";
1314
+ const _a = p(
1305
1315
  ({
1306
1316
  variant: a = "text",
1307
1317
  width: t,
1308
1318
  height: e,
1309
1319
  className: n = "",
1310
- ...i
1320
+ ...l
1311
1321
  }, o) => {
1312
- const r = t ?? (a === "text" ? "100%" : void 0), l = a === "circle" ? r : e, c = [
1322
+ const r = t ?? (a === "text" ? "100%" : void 0), i = a === "circle" ? r : e, c = [
1313
1323
  "strand-skeleton",
1314
1324
  `strand-skeleton--${a}`,
1315
1325
  "strand-skeleton--shimmer",
@@ -1323,46 +1333,47 @@ const fa = p(
1323
1333
  "aria-hidden": "true",
1324
1334
  style: {
1325
1335
  width: r,
1326
- height: l
1336
+ height: i
1327
1337
  },
1328
- ...i
1338
+ ...l
1329
1339
  }
1330
1340
  );
1331
1341
  }
1332
1342
  );
1333
- fa.displayName = "Skeleton";
1343
+ _a.displayName = "Skeleton";
1334
1344
  export {
1335
- oa as Alert,
1345
+ da as Alert,
1336
1346
  V as Avatar,
1337
1347
  U as Badge,
1338
- sa as Breadcrumb,
1348
+ ta as Breadcrumb,
1339
1349
  E as Button,
1340
1350
  H as Card,
1341
1351
  M as Checkbox,
1342
- Q as Container,
1352
+ Z as CodeBlock,
1353
+ X as Container,
1343
1354
  W as DataReadout,
1344
- ca as Dialog,
1345
- X as Divider,
1355
+ ua as Dialog,
1356
+ Y as Divider,
1346
1357
  G as FormField,
1347
- J as Grid,
1358
+ Q as Grid,
1348
1359
  K as Input,
1349
- aa as Link,
1350
- ta as Nav,
1351
- ha as Progress,
1360
+ ea as Link,
1361
+ na as Nav,
1362
+ pa as Progress,
1352
1363
  P as Radio,
1353
- Y as Section,
1364
+ aa as Section,
1354
1365
  L as Select,
1355
- fa as Skeleton,
1366
+ _a as Skeleton,
1356
1367
  q as Slider,
1357
- pa as Spinner,
1358
- Z as Stack,
1368
+ fa as Spinner,
1369
+ J as Stack,
1359
1370
  F as Switch,
1360
1371
  z as Table,
1361
- ea as Tabs,
1372
+ sa as Tabs,
1362
1373
  O as Tag,
1363
1374
  A as Textarea,
1364
- ia as Toast,
1365
- ra as ToastProvider,
1366
- ma as Tooltip,
1367
- ya as useToast
1375
+ oa as Toast,
1376
+ la as ToastProvider,
1377
+ ha as Tooltip,
1378
+ ga as useToast
1368
1379
  };