@monospaced/set-core 0.3.0 → 0.4.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,4 +1,4 @@
1
- const pt = /* @__PURE__ */ new Set([
1
+ const bt = /* @__PURE__ */ new Set([
2
2
  "area",
3
3
  "base",
4
4
  "br",
@@ -13,38 +13,38 @@ const pt = /* @__PURE__ */ new Set([
13
13
  "track",
14
14
  "wbr"
15
15
  ]);
16
- function tt(t) {
16
+ function ot(t) {
17
17
  return t.replaceAll("&", "&amp;").replaceAll("<", "&lt;").replaceAll(">", "&gt;").replaceAll('"', "&quot;").replaceAll("'", "&#39;");
18
18
  }
19
- function ct(t) {
20
- return Object.entries(t).flatMap(([n, e]) => e === !1 || e == null ? [] : e === !0 ? [n] : [`${n}="${tt(String(e))}"`]).join(" ");
19
+ function vt(t) {
20
+ return Object.entries(t).flatMap(([n, e]) => e === !1 || e == null ? [] : e === !0 ? [n] : [`${n}="${ot(String(e))}"`]).join(" ");
21
21
  }
22
22
  function h(t) {
23
- if (t.kind === "text") return tt(t.value);
23
+ if (t.kind === "text") return ot(t.value);
24
24
  if (t.kind === "raw") return t.html;
25
- const n = ct(t.attrs), e = n ? `<${t.tag} ${n}>` : `<${t.tag}>`;
26
- if (pt.has(t.tag)) return e;
25
+ const n = vt(t.attrs), e = n ? `<${t.tag} ${n}>` : `<${t.tag}>`;
26
+ if (bt.has(t.tag)) return e;
27
27
  const i = t.children.map(h).join("");
28
28
  return `${e}${i}</${t.tag}>`;
29
29
  }
30
- function q(t) {
30
+ function I(t) {
31
31
  return /^[A-Za-z][\w:-]*$/.test(t);
32
32
  }
33
33
  function k(t) {
34
34
  if (t === void 0) return;
35
35
  const n = t.trim();
36
36
  if (n) {
37
- if (!q(n))
37
+ if (!I(n))
38
38
  throw new Error(
39
39
  "id must start with a letter and contain only letters, numbers, '_', '-', or ':'."
40
40
  );
41
41
  return n;
42
42
  }
43
43
  }
44
- function A(t) {
44
+ function D(t) {
45
45
  return t == null ? void 0 : t.trim().replace(/\s+/g, " ") || void 0;
46
46
  }
47
- const et = {
47
+ const dt = {
48
48
  adjustment: [
49
49
  {
50
50
  tag: "g",
@@ -508,6 +508,20 @@ const et = {
508
508
  ]
509
509
  }
510
510
  ],
511
+ moon: [
512
+ {
513
+ tag: "g",
514
+ attrs: {},
515
+ children: [
516
+ {
517
+ tag: "path",
518
+ attrs: {
519
+ d: "M20.5387 14.8522C20.0408 14.9492 19.5263 15 19 15C14.5817 15 11 11.4183 11 7C11 5.54296 11.3194 4.17663 12 3C7.02944 3 3 7.02944 3 12C3 16.9706 7.02944 21 12 21C15.9737 21 19.3459 18.4248 20.5387 14.8522Z"
520
+ }
521
+ }
522
+ ]
523
+ }
524
+ ],
511
525
  "panel-left": [
512
526
  {
513
527
  tag: "path",
@@ -658,6 +672,49 @@ const et = {
658
672
  ]
659
673
  }
660
674
  ],
675
+ "sticky-note": [
676
+ {
677
+ tag: "g",
678
+ attrs: {},
679
+ children: [
680
+ {
681
+ tag: "path",
682
+ attrs: {
683
+ d: "M20 14H14V20M3 3H21V14L14 21H3V3Z",
684
+ "stroke-linecap": "square"
685
+ }
686
+ },
687
+ {
688
+ tag: "path",
689
+ attrs: {
690
+ d: "M7 9H17M7 13H10",
691
+ "stroke-linecap": "square"
692
+ }
693
+ }
694
+ ]
695
+ }
696
+ ],
697
+ sunny: [
698
+ {
699
+ tag: "g",
700
+ attrs: {},
701
+ children: [
702
+ {
703
+ tag: "path",
704
+ attrs: {
705
+ d: "M17 12C17 14.7614 14.7614 17 12 17C9.23858 17 7 14.7614 7 12C7 9.23858 9.23858 7 12 7C14.7614 7 17 9.23858 17 12Z"
706
+ }
707
+ },
708
+ {
709
+ tag: "path",
710
+ attrs: {
711
+ d: "M12 21V22M12 2V3M3 12H2M22 12H21M5.63603 18.3635L4.92892 19.0706M19.0711 4.92848L18.364 5.63559M5.63601 5.63563L4.9289 4.92852M19.071 19.0707L18.3639 18.3636",
712
+ "stroke-linecap": "square"
713
+ }
714
+ }
715
+ ]
716
+ }
717
+ ],
661
718
  swap: [
662
719
  {
663
720
  tag: "g",
@@ -703,13 +760,13 @@ const et = {
703
760
  ]
704
761
  }
705
762
  ]
706
- }, ve = Object.keys(et);
707
- function it(t) {
763
+ }, Ae = Object.keys(dt);
764
+ function st(t) {
708
765
  return t.map((n) => ({
709
766
  kind: "element",
710
767
  tag: n.tag,
711
768
  attrs: n.attrs,
712
- children: n.children ? it(n.children) : []
769
+ children: n.children ? st(n.children) : []
713
770
  }));
714
771
  }
715
772
  function H({
@@ -720,7 +777,7 @@ function H({
720
777
  size: r = "md",
721
778
  title: a
722
779
  }) {
723
- const o = et[i];
780
+ const o = dt[i];
724
781
  if (!o)
725
782
  throw new Error(`Unknown icon name: ${i}`);
726
783
  const d = k(n), p = a?.trim();
@@ -734,7 +791,7 @@ function H({
734
791
  tag: "title",
735
792
  attrs: { id: s },
736
793
  children: [{ kind: "text", value: p }]
737
- }), l.push(...it(o)), {
794
+ }), l.push(...st(o)), {
738
795
  kind: "element",
739
796
  tag: "svg",
740
797
  attrs: {
@@ -755,10 +812,10 @@ function H({
755
812
  children: l
756
813
  };
757
814
  }
758
- function ut(t) {
815
+ function ft(t) {
759
816
  return h(H(t));
760
817
  }
761
- const fe = {
818
+ const _e = {
762
819
  name: "icon",
763
820
  description: "Use `icon` to render a Set icon.",
764
821
  output: { element: "svg", class: "set-icon" },
@@ -872,7 +929,7 @@ const fe = {
872
929
  ]
873
930
  }
874
931
  };
875
- function G(t) {
932
+ function tt(t) {
876
933
  const {
877
934
  appearance: n = "outline",
878
935
  controls: e,
@@ -886,22 +943,22 @@ function G(t) {
886
943
  iconPlacement: l = "start",
887
944
  label: c,
888
945
  labelVisibility: u = "visible",
889
- name: b,
946
+ name: g,
890
947
  size: v = "md",
891
948
  tone: m = "default",
892
949
  type: f,
893
- value: z
894
- } = t, S = p || void 0, g = !!S;
895
- if (u !== "visible" && !g)
950
+ value: E
951
+ } = t, S = p || void 0, b = !!S;
952
+ if (u !== "visible" && !b)
896
953
  throw new Error("labelVisibility requires icon when label is not visible.");
897
- const y = g && S ? {
954
+ const y = b && S ? {
898
955
  kind: "element",
899
956
  tag: "span",
900
957
  attrs: { class: "icon-wrapper" },
901
958
  children: [
902
959
  {
903
960
  kind: "raw",
904
- html: ut({
961
+ html: ft({
905
962
  ariaHidden: !0,
906
963
  mirrored: s,
907
964
  name: S,
@@ -930,17 +987,17 @@ function G(t) {
930
987
  disabled: !!i,
931
988
  form: a || void 0,
932
989
  id: d || void 0,
933
- name: b || void 0,
990
+ name: g || void 0,
934
991
  type: f || "button",
935
- value: z || void 0
992
+ value: E || void 0
936
993
  },
937
994
  children: y ? l === "end" ? [w, y] : [y, w] : [w]
938
995
  };
939
996
  }
940
- function K(t) {
941
- return h(G(t));
997
+ function et(t) {
998
+ return h(tt(t));
942
999
  }
943
- const ye = {
1000
+ const De = {
944
1001
  name: "button",
945
1002
  description: "Use `button` to let users trigger actions.",
946
1003
  output: { element: "button", class: "set-button" },
@@ -1123,10 +1180,10 @@ const ye = {
1123
1180
  }
1124
1181
  ]
1125
1182
  }
1126
- }, O = "set-alert", nt = "set-alert-before-dismiss", rt = "set-alert-dismiss", N = "Dismiss alert";
1127
- function ht(t, n) {
1183
+ }, P = "set-alert", lt = "set-alert-before-dismiss", pt = "set-alert-dismiss", N = "Dismiss alert";
1184
+ function yt(t, n) {
1128
1185
  const e = n.createElement("div");
1129
- return e.setAttribute("data-part", "close"), e.innerHTML = K({
1186
+ return e.setAttribute("data-part", "close"), e.innerHTML = et({
1130
1187
  appearance: "text",
1131
1188
  icon: "close",
1132
1189
  label: t,
@@ -1135,7 +1192,7 @@ function ht(t, n) {
1135
1192
  tone: "neutral"
1136
1193
  }), e;
1137
1194
  }
1138
- function kt(t) {
1195
+ function wt(t) {
1139
1196
  switch (t) {
1140
1197
  case "success":
1141
1198
  return "check-circle";
@@ -1143,14 +1200,16 @@ function kt(t) {
1143
1200
  return "error-triangle";
1144
1201
  case "error":
1145
1202
  return "error-circle";
1146
- default:
1203
+ case "info":
1147
1204
  return "info-circle";
1205
+ default:
1206
+ return "sticky-note";
1148
1207
  }
1149
1208
  }
1150
- function mt(t) {
1209
+ function St(t) {
1151
1210
  return t === "warning" || t === "error" ? "alert" : "status";
1152
1211
  }
1153
- function gt({
1212
+ function xt({
1154
1213
  dismissible: t,
1155
1214
  dismissibleLabel: n = N,
1156
1215
  id: e,
@@ -1173,7 +1232,7 @@ function gt({
1173
1232
  children: [{ kind: "text", value: r }]
1174
1233
  }), {
1175
1234
  kind: "element",
1176
- tag: O,
1235
+ tag: P,
1177
1236
  attrs: {
1178
1237
  class: "set-alert",
1179
1238
  "data-dismissible": t,
@@ -1182,7 +1241,7 @@ function gt({
1182
1241
  "data-size": a,
1183
1242
  "data-tone": o || void 0,
1184
1243
  id: p,
1185
- role: mt(o)
1244
+ role: St(o)
1186
1245
  },
1187
1246
  children: [
1188
1247
  {
@@ -1192,7 +1251,7 @@ function gt({
1192
1251
  children: [
1193
1252
  H({
1194
1253
  ariaHidden: !0,
1195
- name: kt(o),
1254
+ name: wt(o),
1196
1255
  size: a
1197
1256
  })
1198
1257
  ]
@@ -1206,24 +1265,24 @@ function gt({
1206
1265
  ]
1207
1266
  };
1208
1267
  }
1209
- function we(t) {
1210
- return h(gt(t));
1268
+ function He(t) {
1269
+ return h(xt(t));
1211
1270
  }
1212
- function bt() {
1213
- if (customElements.get(O)) return;
1271
+ function Et() {
1272
+ if (customElements.get(P)) return;
1214
1273
  class t extends HTMLElement {
1215
1274
  #t = (e) => {
1216
1275
  const i = e.target;
1217
1276
  if (!(i instanceof Element) || !i.closest('[data-part="close"]')) return;
1218
1277
  const r = new CustomEvent(
1219
- nt,
1278
+ lt,
1220
1279
  {
1221
1280
  bubbles: !0,
1222
1281
  cancelable: !0
1223
1282
  }
1224
1283
  );
1225
1284
  this.dispatchEvent(r) && (this.dispatchEvent(
1226
- new CustomEvent(rt, {
1285
+ new CustomEvent(pt, {
1227
1286
  bubbles: !0
1228
1287
  })
1229
1288
  ), this.remove());
@@ -1236,20 +1295,20 @@ function bt() {
1236
1295
  }
1237
1296
  #e() {
1238
1297
  this.querySelector('[data-part="close"]') || this.append(
1239
- ht(
1298
+ yt(
1240
1299
  this.getAttribute("data-dismissible-label") ?? N,
1241
1300
  this.ownerDocument
1242
1301
  )
1243
1302
  );
1244
1303
  }
1245
1304
  }
1246
- customElements.define(O, t);
1305
+ customElements.define(P, t);
1247
1306
  }
1248
- const Se = {
1307
+ const Ne = {
1249
1308
  name: "alert",
1250
1309
  description: "Use `alert` to surface short, important messages.",
1251
1310
  output: {
1252
- element: O,
1311
+ element: P,
1253
1312
  class: "set-alert"
1254
1313
  },
1255
1314
  content: {
@@ -1300,12 +1359,12 @@ const Se = {
1300
1359
  }
1301
1360
  },
1302
1361
  events: {
1303
- [nt]: {
1362
+ [lt]: {
1304
1363
  bubbles: !0,
1305
1364
  cancelable: !0,
1306
1365
  description: "Fired before the alert is removed by a dismiss action. Call `preventDefault()` to keep the alert mounted."
1307
1366
  },
1308
- [rt]: {
1367
+ [pt]: {
1309
1368
  bubbles: !0,
1310
1369
  description: "Fired after the alert has been removed by an allowed dismiss action."
1311
1370
  }
@@ -1394,11 +1453,11 @@ const Se = {
1394
1453
  ]
1395
1454
  }
1396
1455
  };
1397
- function vt(t) {
1456
+ function zt(t) {
1398
1457
  if (t)
1399
1458
  return t === !0 ? !0 : t;
1400
1459
  }
1401
- function at(t) {
1460
+ function ct(t) {
1402
1461
  const {
1403
1462
  appearance: n = "text",
1404
1463
  current: e,
@@ -1412,12 +1471,12 @@ function at(t) {
1412
1471
  rel: l,
1413
1472
  size: c = "md",
1414
1473
  target: u,
1415
- tone: b = "default",
1474
+ tone: g = "default",
1416
1475
  underline: v
1417
1476
  } = t, m = k(a), f = o?.trim() || void 0;
1418
1477
  if (s !== "visible" && !!!f)
1419
1478
  throw new Error("labelVisibility requires icon when label is not visible.");
1420
- const S = vt(i), g = f ? {
1479
+ const S = zt(i), b = f ? {
1421
1480
  kind: "element",
1422
1481
  tag: "span",
1423
1482
  attrs: { class: "icon-wrapper" },
@@ -1437,7 +1496,7 @@ function at(t) {
1437
1496
  "data-appearance": n === "text" ? void 0 : n,
1438
1497
  "data-label-visibility": s === "visible" ? void 0 : s,
1439
1498
  "data-size": c,
1440
- "data-tone": b === "neutral" ? "neutral" : void 0,
1499
+ "data-tone": g === "neutral" ? "neutral" : void 0,
1441
1500
  "data-underline": v && n === "text" ? !0 : void 0,
1442
1501
  download: S,
1443
1502
  href: r,
@@ -1445,13 +1504,13 @@ function at(t) {
1445
1504
  rel: S ? void 0 : l || void 0,
1446
1505
  target: S ? void 0 : u || void 0
1447
1506
  },
1448
- children: g ? d === "end" ? [y, g] : [g, y] : [y]
1507
+ children: b ? d === "end" ? [y, b] : [b, y] : [y]
1449
1508
  };
1450
1509
  }
1451
- function xe(t) {
1452
- return h(at(t));
1510
+ function Ve(t) {
1511
+ return h(ct(t));
1453
1512
  }
1454
- const Ee = {
1513
+ const Oe = {
1455
1514
  name: "link",
1456
1515
  description: "Use `link` to navigate to another page or resource.",
1457
1516
  output: { element: "a", class: "set-link" },
@@ -1638,10 +1697,10 @@ const Ee = {
1638
1697
  }
1639
1698
  ]
1640
1699
  }
1641
- }, B = "set-banner", ot = "set-banner-before-dismiss", dt = "set-banner-dismiss", P = "Dismiss banner";
1642
- function ft(t, n) {
1700
+ }, B = "set-banner", ut = "set-banner-before-dismiss", ht = "set-banner-dismiss", R = "Dismiss banner";
1701
+ function Ct(t, n) {
1643
1702
  const e = n.createElement("div");
1644
- return e.setAttribute("data-part", "close"), e.innerHTML = K({
1703
+ return e.setAttribute("data-part", "close"), e.innerHTML = et({
1645
1704
  appearance: "text",
1646
1705
  icon: "close",
1647
1706
  label: t,
@@ -1650,20 +1709,20 @@ function ft(t, n) {
1650
1709
  tone: "neutral"
1651
1710
  }), e;
1652
1711
  }
1653
- function yt({
1712
+ function Mt({
1654
1713
  actionHref: t,
1655
1714
  actionLabel: n,
1656
1715
  dismissible: e = !0,
1657
- dismissibleLabel: i = P,
1716
+ dismissibleLabel: i = R,
1658
1717
  id: r,
1659
1718
  message: a,
1660
1719
  tone: o
1661
1720
  }) {
1662
1721
  if (!!t != !!n)
1663
1722
  throw new Error("actionHref and actionLabel must be provided together.");
1664
- const d = k(r), p = i.trim() === "" ? P : i, s = [{ kind: "text", value: a }];
1723
+ const d = k(r), p = i.trim() === "" ? R : i, s = [{ kind: "text", value: a }];
1665
1724
  return t && n && (s.push({ kind: "text", value: " " }), s.push(
1666
- at({
1725
+ ct({
1667
1726
  href: t,
1668
1727
  label: n,
1669
1728
  underline: !0
@@ -1690,24 +1749,24 @@ function yt({
1690
1749
  ]
1691
1750
  };
1692
1751
  }
1693
- function ze(t) {
1694
- return h(yt(t));
1752
+ function Pe(t) {
1753
+ return h(Mt(t));
1695
1754
  }
1696
- function wt() {
1755
+ function Lt() {
1697
1756
  if (customElements.get(B)) return;
1698
1757
  class t extends HTMLElement {
1699
1758
  #t = (e) => {
1700
1759
  const i = e.target;
1701
1760
  if (!(i instanceof Element) || !i.closest('[data-part="close"]')) return;
1702
1761
  const r = new CustomEvent(
1703
- ot,
1762
+ ut,
1704
1763
  {
1705
1764
  bubbles: !0,
1706
1765
  cancelable: !0
1707
1766
  }
1708
1767
  );
1709
1768
  this.dispatchEvent(r) && (this.dispatchEvent(
1710
- new CustomEvent(dt, {
1769
+ new CustomEvent(ht, {
1711
1770
  bubbles: !0
1712
1771
  })
1713
1772
  ), this.remove());
@@ -1720,8 +1779,8 @@ function wt() {
1720
1779
  }
1721
1780
  #e() {
1722
1781
  this.querySelector('[data-part="close"]') || this.append(
1723
- ft(
1724
- this.getAttribute("data-dismissible-label") ?? P,
1782
+ Ct(
1783
+ this.getAttribute("data-dismissible-label") ?? R,
1725
1784
  this.ownerDocument
1726
1785
  )
1727
1786
  );
@@ -1729,7 +1788,7 @@ function wt() {
1729
1788
  }
1730
1789
  customElements.define(B, t);
1731
1790
  }
1732
- const Ce = {
1791
+ const Be = {
1733
1792
  name: "banner",
1734
1793
  description: "Use `banner` to display a prominent site-wide message.",
1735
1794
  output: { element: B, class: "set-banner" },
@@ -1751,7 +1810,7 @@ const Ce = {
1751
1810
  type: { kind: "boolean" }
1752
1811
  },
1753
1812
  dismissibleLabel: {
1754
- default: P,
1813
+ default: R,
1755
1814
  description: "Accessible label for the dismiss control.",
1756
1815
  ignoredWhen: "`dismissible` is false",
1757
1816
  type: { kind: "string" }
@@ -1769,17 +1828,17 @@ const Ce = {
1769
1828
  description: "Semantic tone.",
1770
1829
  type: {
1771
1830
  kind: "enum",
1772
- values: ["info", "success", "warning", "error"]
1831
+ values: ["info", "warning", "error"]
1773
1832
  }
1774
1833
  }
1775
1834
  },
1776
1835
  events: {
1777
- [ot]: {
1836
+ [ut]: {
1778
1837
  bubbles: !0,
1779
1838
  cancelable: !0,
1780
1839
  description: "Fired before the banner is removed by a dismiss action. Call `preventDefault()` to keep the banner mounted."
1781
1840
  },
1782
- [dt]: {
1841
+ [ht]: {
1783
1842
  bubbles: !0,
1784
1843
  description: "Fired after the banner has been removed by an allowed dismiss action."
1785
1844
  }
@@ -1817,8 +1876,219 @@ const Ce = {
1817
1876
  }
1818
1877
  ]
1819
1878
  }
1820
- }, R = "set-menu", st = "set-menu-choose";
1821
- function St({
1879
+ }, W = "set-lightswitch", mt = "set-lightswitch-change", K = "set-theme", Q = "Switch to dark theme", X = "Switch to light theme";
1880
+ function qt(t) {
1881
+ return t === "dark" ? "light" : "dark";
1882
+ }
1883
+ function It(t) {
1884
+ return t === "dark" ? "moon" : "sunny";
1885
+ }
1886
+ function nt(t, n) {
1887
+ return {
1888
+ kind: "element",
1889
+ tag: "span",
1890
+ attrs: { class: "option", "data-option": t },
1891
+ children: [
1892
+ {
1893
+ kind: "element",
1894
+ tag: "span",
1895
+ attrs: { class: "icon-wrapper" },
1896
+ children: [
1897
+ H({
1898
+ ariaHidden: !0,
1899
+ name: It(t),
1900
+ size: "fill"
1901
+ })
1902
+ ]
1903
+ },
1904
+ {
1905
+ kind: "element",
1906
+ tag: "span",
1907
+ attrs: { class: "label" },
1908
+ children: [{ kind: "text", value: n }]
1909
+ }
1910
+ ]
1911
+ };
1912
+ }
1913
+ function Tt({
1914
+ appearance: t = "text",
1915
+ id: n,
1916
+ labelDark: e = Q,
1917
+ labelLight: i = X,
1918
+ size: r = "md"
1919
+ }) {
1920
+ const a = k(n), o = e.trim() === "" ? Q : e, d = i.trim() === "" ? X : i;
1921
+ return {
1922
+ kind: "element",
1923
+ tag: W,
1924
+ attrs: {
1925
+ class: "set-lightswitch",
1926
+ id: a
1927
+ },
1928
+ children: [
1929
+ {
1930
+ kind: "element",
1931
+ tag: "button",
1932
+ attrs: {
1933
+ class: "toggle",
1934
+ "data-appearance": t,
1935
+ "data-size": r,
1936
+ type: "button"
1937
+ },
1938
+ children: [
1939
+ nt("dark", o),
1940
+ nt("light", d)
1941
+ ]
1942
+ }
1943
+ ]
1944
+ };
1945
+ }
1946
+ function Re(t) {
1947
+ return h(Tt(t));
1948
+ }
1949
+ function At() {
1950
+ if (customElements.get(W)) return;
1951
+ class t extends HTMLElement {
1952
+ #t = (e) => {
1953
+ const i = e.target;
1954
+ if (!(i instanceof Element) || !i.closest("button")) return;
1955
+ const r = qt(this.#u());
1956
+ r === this.#r() ? this.#d() : this.#n(r), this.#a(), this.dispatchEvent(
1957
+ new CustomEvent(mt, {
1958
+ bubbles: !0,
1959
+ detail: { stored: !!this.#i(), theme: r }
1960
+ })
1961
+ );
1962
+ };
1963
+ connectedCallback() {
1964
+ this.removeEventListener("click", this.#t), this.addEventListener("click", this.#t), this.#i() && this.#a();
1965
+ }
1966
+ disconnectedCallback() {
1967
+ this.removeEventListener("click", this.#t);
1968
+ }
1969
+ #e() {
1970
+ try {
1971
+ return this.ownerDocument.defaultView?.localStorage;
1972
+ } catch {
1973
+ return;
1974
+ }
1975
+ }
1976
+ #i() {
1977
+ try {
1978
+ const e = this.#e()?.getItem(K);
1979
+ return e === "light" || e === "dark" ? e : void 0;
1980
+ } catch {
1981
+ return;
1982
+ }
1983
+ }
1984
+ #n(e) {
1985
+ try {
1986
+ this.#e()?.setItem(K, e);
1987
+ } catch {
1988
+ }
1989
+ }
1990
+ #d() {
1991
+ try {
1992
+ this.#e()?.removeItem(K);
1993
+ } catch {
1994
+ }
1995
+ }
1996
+ #r() {
1997
+ const e = this.ownerDocument.defaultView;
1998
+ return !e || typeof e.matchMedia != "function" ? "light" : e.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
1999
+ }
2000
+ #c() {
2001
+ return this.closest(".set");
2002
+ }
2003
+ #s() {
2004
+ const e = this.#c()?.getAttribute("data-set-theme");
2005
+ return e === "light" || e === "dark" ? e : void 0;
2006
+ }
2007
+ #u() {
2008
+ return this.#i() ?? this.#s() ?? this.#r();
2009
+ }
2010
+ #a() {
2011
+ const e = this.#c();
2012
+ if (!e) return;
2013
+ const i = this.#i();
2014
+ i ? e.setAttribute("data-set-theme", i) : e.removeAttribute("data-set-theme");
2015
+ }
2016
+ }
2017
+ customElements.define(W, t);
2018
+ }
2019
+ const We = {
2020
+ name: "lightswitch",
2021
+ description: "Use `lightswitch` to let users toggle between light and dark themes.",
2022
+ output: { element: W, class: "set-lightswitch" },
2023
+ content: { kind: "none" },
2024
+ props: {
2025
+ appearance: {
2026
+ default: "text",
2027
+ description: "Visual appearance of the toggle button.",
2028
+ type: { kind: "enum", values: ["outline", "solid", "text"] }
2029
+ },
2030
+ id: {
2031
+ description: "DOM id.",
2032
+ type: { kind: "string" }
2033
+ },
2034
+ labelDark: {
2035
+ default: Q,
2036
+ description: "Accessible label of the switch-to-dark action.",
2037
+ type: { kind: "string" }
2038
+ },
2039
+ labelLight: {
2040
+ default: X,
2041
+ description: "Accessible label of the switch-to-light action.",
2042
+ type: { kind: "string" }
2043
+ },
2044
+ size: {
2045
+ default: "md",
2046
+ description: "Size variant.",
2047
+ type: { kind: "enum", values: ["sm", "md", "lg"] }
2048
+ }
2049
+ },
2050
+ events: {
2051
+ [mt]: {
2052
+ bubbles: !0,
2053
+ description: "Fired after activation applies a theme. `detail.theme` is the theme switched to; `detail.stored` is false when the change cleared the override to follow the system preference again."
2054
+ }
2055
+ },
2056
+ rules: {
2057
+ attributes: [
2058
+ {
2059
+ target: { on: "host" },
2060
+ attribute: "id",
2061
+ condition: { kind: "when-non-empty", prop: "id" },
2062
+ value: { kind: "prop", prop: "id" }
2063
+ },
2064
+ {
2065
+ target: { on: "descendant", selector: "button" },
2066
+ attribute: "class",
2067
+ condition: { kind: "always" },
2068
+ value: { kind: "literal", text: "toggle" }
2069
+ },
2070
+ {
2071
+ target: { on: "descendant", selector: "button" },
2072
+ attribute: "data-appearance",
2073
+ condition: { kind: "always" },
2074
+ value: { kind: "prop", prop: "appearance" }
2075
+ },
2076
+ {
2077
+ target: { on: "descendant", selector: "button" },
2078
+ attribute: "data-size",
2079
+ condition: { kind: "always" },
2080
+ value: { kind: "prop", prop: "size" }
2081
+ },
2082
+ {
2083
+ target: { on: "descendant", selector: "button" },
2084
+ attribute: "type",
2085
+ condition: { kind: "always" },
2086
+ value: { kind: "literal", text: "button" }
2087
+ }
2088
+ ]
2089
+ }
2090
+ }, U = "set-menu", kt = "set-menu-choose";
2091
+ function _t({
1822
2092
  align: t = "start",
1823
2093
  id: n,
1824
2094
  items: e,
@@ -1832,27 +2102,27 @@ function St({
1832
2102
  const s = n.trim();
1833
2103
  if (!s)
1834
2104
  throw new Error("id must be a non-empty string.");
1835
- if (!q(s))
2105
+ if (!I(s))
1836
2106
  throw new Error(
1837
2107
  "id must start with a letter and contain only letters, numbers, '_', '-', or ':'."
1838
2108
  );
1839
2109
  if (!Array.isArray(e))
1840
2110
  throw new Error("items must be an array.");
1841
- const l = `${s}-button`, c = `${s}-popup`, u = e.map((b) => ({
2111
+ const l = `${s}-button`, c = `${s}-popup`, u = e.map((g) => ({
1842
2112
  kind: "element",
1843
2113
  tag: "button",
1844
2114
  attrs: {
1845
- "aria-disabled": b.disabled ? "true" : void 0,
1846
- "data-item-id": b.id || void 0,
2115
+ "aria-disabled": g.disabled ? "true" : void 0,
2116
+ "data-item-id": g.id || void 0,
1847
2117
  role: "menuitem",
1848
2118
  tabindex: "-1",
1849
2119
  type: "button"
1850
2120
  },
1851
- children: [{ kind: "text", value: b.label }]
2121
+ children: [{ kind: "text", value: g.label }]
1852
2122
  }));
1853
2123
  return {
1854
2124
  kind: "element",
1855
- tag: R,
2125
+ tag: U,
1856
2126
  attrs: {
1857
2127
  class: "set-menu",
1858
2128
  "data-align": t === "start" ? void 0 : t,
@@ -1865,7 +2135,7 @@ function St({
1865
2135
  tag: "div",
1866
2136
  attrs: { "data-part": "trigger" },
1867
2137
  children: [
1868
- G({
2138
+ tt({
1869
2139
  appearance: "outline",
1870
2140
  controls: c,
1871
2141
  disclosure: !0,
@@ -1897,61 +2167,61 @@ function St({
1897
2167
  ]
1898
2168
  };
1899
2169
  }
1900
- function Me(t) {
1901
- return h(St(t));
2170
+ function Ue(t) {
2171
+ return h(_t(t));
1902
2172
  }
1903
- function xt() {
1904
- if (customElements.get(R)) return;
2173
+ function Dt() {
2174
+ if (customElements.get(U)) return;
1905
2175
  class t extends HTMLElement {
1906
2176
  #t;
1907
2177
  #e;
1908
2178
  #i;
1909
2179
  #n;
1910
2180
  connectedCallback() {
1911
- this.#l(), this.#r(!1), this.#m();
2181
+ this.#p(), this.#o(!1), this.#k();
1912
2182
  }
1913
2183
  disconnectedCallback() {
1914
- this.#l();
2184
+ this.#p();
1915
2185
  }
1916
- #a() {
2186
+ #d() {
1917
2187
  return this.querySelector(
1918
2188
  '[data-part="trigger"] .set-button'
1919
2189
  );
1920
2190
  }
1921
- #o() {
2191
+ #r() {
1922
2192
  return this.querySelector('[role="menu"]');
1923
2193
  }
1924
- #k() {
2194
+ #c() {
1925
2195
  return Array.from(
1926
2196
  this.querySelectorAll('[role="menuitem"]')
1927
2197
  );
1928
2198
  }
1929
- #p(e) {
2199
+ #s(e) {
1930
2200
  return e.getAttribute("aria-disabled") === "true";
1931
2201
  }
1932
- #c() {
2202
+ #u() {
1933
2203
  return this.hasAttribute("data-open");
1934
2204
  }
1935
- #d(e) {
1936
- const i = this.#k();
2205
+ #a(e) {
2206
+ const i = this.#c();
1937
2207
  if (i.length === 0) return;
1938
2208
  const r = (e % i.length + i.length) % i.length;
1939
2209
  i[r]?.focus();
1940
2210
  }
1941
- #s(e = 0) {
1942
- const i = this.#o(), r = this.#a();
1943
- !i || !r || (i.hidden = !1, this.setAttribute("data-open", ""), r.setAttribute("aria-expanded", "true"), this.#d(e));
2211
+ #l(e = 0) {
2212
+ const i = this.#r(), r = this.#d();
2213
+ !i || !r || (i.hidden = !1, this.setAttribute("data-open", ""), r.setAttribute("aria-expanded", "true"), this.#a(e));
1944
2214
  }
1945
- #r(e = !1) {
1946
- const i = this.#o(), r = this.#a();
2215
+ #o(e = !1) {
2216
+ const i = this.#r(), r = this.#d();
1947
2217
  !i || !r || (i.hidden = !0, this.removeAttribute("data-open"), r.setAttribute("aria-expanded", "false"), e && r.focus());
1948
2218
  }
1949
- #u(e) {
2219
+ #h(e) {
1950
2220
  const r = Array.from(
1951
2221
  this.querySelectorAll('[role="menuitem"]')
1952
2222
  ).indexOf(e);
1953
2223
  this.dispatchEvent(
1954
- new CustomEvent(st, {
2224
+ new CustomEvent(kt, {
1955
2225
  bubbles: !0,
1956
2226
  detail: {
1957
2227
  id: e.getAttribute("data-item-id") || void 0,
@@ -1961,65 +2231,65 @@ function xt() {
1961
2231
  })
1962
2232
  );
1963
2233
  }
1964
- #m() {
2234
+ #k() {
1965
2235
  this.#t = (e) => {
1966
2236
  const i = e.target;
1967
2237
  if (!(i instanceof Element)) return;
1968
2238
  if (i.closest('[data-part="trigger"] .set-button')) {
1969
- if (this.#c()) {
1970
- this.#r();
2239
+ if (this.#u()) {
2240
+ this.#o();
1971
2241
  return;
1972
2242
  }
1973
- this.#s(0);
2243
+ this.#l(0);
1974
2244
  return;
1975
2245
  }
1976
2246
  const r = i.closest('[role="menuitem"]');
1977
2247
  if (r && this.contains(r)) {
1978
- this.#p(r) || (this.#u(r), this.#r(!0));
2248
+ this.#s(r) || (this.#h(r), this.#o(!0));
1979
2249
  return;
1980
2250
  }
1981
2251
  }, this.#e = (e) => {
1982
2252
  const i = e.target;
1983
- i instanceof Node && this.#c() && !this.contains(i) && this.#r();
2253
+ i instanceof Node && this.#u() && !this.contains(i) && this.#o();
1984
2254
  }, this.#n = (e) => {
1985
- const i = this.#a(), r = this.#o();
2255
+ const i = this.#d(), r = this.#r();
1986
2256
  if (!i || !r) return;
1987
- if ((e.key === "Escape" || e.key === "Esc") && this.#c()) {
1988
- e.preventDefault(), this.#r(!0);
2257
+ if ((e.key === "Escape" || e.key === "Esc") && this.#u()) {
2258
+ e.preventDefault(), this.#o(!0);
1989
2259
  return;
1990
2260
  }
1991
- const a = this.ownerDocument.activeElement, o = this.#k(), d = o.indexOf(a);
2261
+ const a = this.ownerDocument.activeElement, o = this.#c(), d = o.indexOf(a);
1992
2262
  if (a === i) {
1993
- (e.key === "Enter" || e.key === " ") && (e.preventDefault(), this.#s(0)), e.key === "ArrowDown" && (e.preventDefault(), this.#s(0)), e.key === "ArrowUp" && (e.preventDefault(), this.#s(o.length - 1));
2263
+ (e.key === "Enter" || e.key === " ") && (e.preventDefault(), this.#l(0)), e.key === "ArrowDown" && (e.preventDefault(), this.#l(0)), e.key === "ArrowUp" && (e.preventDefault(), this.#l(o.length - 1));
1994
2264
  return;
1995
2265
  }
1996
2266
  if (r.contains(a)) {
1997
2267
  if (a instanceof HTMLButtonElement && (e.key === "Enter" || e.key === " ")) {
1998
- e.preventDefault(), this.#p(a) || (this.#u(a), this.#r(!0));
2268
+ e.preventDefault(), this.#s(a) || (this.#h(a), this.#o(!0));
1999
2269
  return;
2000
2270
  }
2001
- e.key === "ArrowDown" && (e.preventDefault(), this.#d(d + 1)), e.key === "ArrowUp" && (e.preventDefault(), this.#d(d - 1)), e.key === "Home" && (e.preventDefault(), this.#d(0)), e.key === "End" && (e.preventDefault(), this.#d(o.length - 1)), e.key === "Tab" && this.#r(!1);
2271
+ e.key === "ArrowDown" && (e.preventDefault(), this.#a(d + 1)), e.key === "ArrowUp" && (e.preventDefault(), this.#a(d - 1)), e.key === "Home" && (e.preventDefault(), this.#a(0)), e.key === "End" && (e.preventDefault(), this.#a(o.length - 1)), e.key === "Tab" && this.#o(!1);
2002
2272
  }
2003
2273
  }, this.#i = (e) => {
2004
2274
  const i = e.relatedTarget;
2005
2275
  if (!(i instanceof Node)) {
2006
- this.#r();
2276
+ this.#o();
2007
2277
  return;
2008
2278
  }
2009
- this.contains(i) || this.#r();
2279
+ this.contains(i) || this.#o();
2010
2280
  }, this.addEventListener("click", this.#t), this.addEventListener("keydown", this.#n), this.addEventListener("focusout", this.#i), this.ownerDocument.addEventListener("click", this.#e);
2011
2281
  }
2012
- #l() {
2282
+ #p() {
2013
2283
  this.#t && this.removeEventListener("click", this.#t), this.#e && this.ownerDocument.removeEventListener("click", this.#e), this.#n && this.removeEventListener("keydown", this.#n), this.#i && this.removeEventListener("focusout", this.#i), this.#t = void 0, this.#e = void 0, this.#i = void 0, this.#n = void 0;
2014
2284
  }
2015
2285
  }
2016
- customElements.define(R, t);
2286
+ customElements.define(U, t);
2017
2287
  }
2018
- const Le = {
2288
+ const $e = {
2019
2289
  name: "menu",
2020
2290
  description: "Use `menu` to show a list of actions from a trigger button.",
2021
2291
  output: {
2022
- element: R,
2292
+ element: U,
2023
2293
  class: "set-menu"
2024
2294
  },
2025
2295
  content: {
@@ -2093,7 +2363,7 @@ const Le = {
2093
2363
  }
2094
2364
  },
2095
2365
  events: {
2096
- [st]: {
2366
+ [kt]: {
2097
2367
  bubbles: !0,
2098
2368
  description: "Fired when a menu item is activated.",
2099
2369
  detail: "{ id?: string; index: number; label: string }"
@@ -2153,15 +2423,15 @@ const Le = {
2153
2423
  }
2154
2424
  ]
2155
2425
  }
2156
- }, j = "Menu";
2157
- function Et({
2426
+ }, Y = "Menu";
2427
+ function Ht({
2158
2428
  controlsId: t,
2159
2429
  expanded: n,
2160
2430
  id: e,
2161
- label: i = j,
2431
+ label: i = Y,
2162
2432
  size: r = "md"
2163
2433
  } = {}) {
2164
- const a = k(e), o = i.trim() === "" ? j : i;
2434
+ const a = k(e), o = i.trim() === "" ? Y : i;
2165
2435
  return {
2166
2436
  kind: "element",
2167
2437
  tag: "button",
@@ -2196,10 +2466,10 @@ function Et({
2196
2466
  ]
2197
2467
  };
2198
2468
  }
2199
- function zt(t = {}) {
2200
- return h(Et(t));
2469
+ function Nt(t = {}) {
2470
+ return h(Ht(t));
2201
2471
  }
2202
- const qe = {
2472
+ const Ge = {
2203
2473
  name: "expander",
2204
2474
  description: "Use `expander` as a toggle for disclosure regions such as menus.",
2205
2475
  output: { element: "button", class: "set-expander" },
@@ -2219,7 +2489,7 @@ const qe = {
2219
2489
  type: { kind: "string" }
2220
2490
  },
2221
2491
  label: {
2222
- default: j,
2492
+ default: Y,
2223
2493
  description: "Accessible label.",
2224
2494
  type: { kind: "text" }
2225
2495
  },
@@ -2264,8 +2534,8 @@ const qe = {
2264
2534
  }
2265
2535
  ]
2266
2536
  }
2267
- }, W = "set-nav", Y = "data-set-scroll-locked";
2268
- function Ct({
2537
+ }, $ = "set-nav", rt = "data-set-scroll-locked";
2538
+ function Vt({
2269
2539
  collapsible: t,
2270
2540
  contentId: n,
2271
2541
  expanderLabel: e,
@@ -2280,7 +2550,7 @@ function Ct({
2280
2550
  throw new Error(
2281
2551
  "contentId must be a non-empty string when collapsible is set."
2282
2552
  );
2283
- if (l && !q(l))
2553
+ if (l && !I(l))
2284
2554
  throw new Error(
2285
2555
  "contentId must start with a letter and contain only letters, numbers, '_', '-', or ':'."
2286
2556
  );
@@ -2303,7 +2573,7 @@ function Ct({
2303
2573
  }));
2304
2574
  return {
2305
2575
  kind: "element",
2306
- tag: W,
2576
+ tag: $,
2307
2577
  attrs: {
2308
2578
  class: "set-nav",
2309
2579
  "data-collapsible": t,
@@ -2342,79 +2612,79 @@ function Ct({
2342
2612
  ]
2343
2613
  };
2344
2614
  }
2345
- function Ie(t) {
2346
- return h(Ct(t));
2615
+ function Ze(t) {
2616
+ return h(Vt(t));
2347
2617
  }
2348
- function Mt() {
2349
- if (customElements.get(W)) return;
2618
+ function Ot() {
2619
+ if (customElements.get($)) return;
2350
2620
  class t extends HTMLElement {
2351
2621
  #t;
2352
2622
  #e;
2353
2623
  #i;
2354
2624
  #n;
2355
2625
  connectedCallback() {
2356
- this.#r(), this.#u(), this.#k(), this.#c(), this.#d();
2626
+ this.#o(), this.#h(), this.#c(), this.#u(), this.#a();
2357
2627
  }
2358
2628
  disconnectedCallback() {
2359
- this.#p(!1), this.#r(), this.#u();
2629
+ this.#s(!1), this.#o(), this.#h();
2360
2630
  }
2361
- #a() {
2631
+ #d() {
2362
2632
  return this.hasAttribute("data-collapsible") ? this.querySelector(".nav") : null;
2363
2633
  }
2364
- #o() {
2634
+ #r() {
2365
2635
  return this.querySelector(
2366
2636
  '[data-part="expander"] .set-expander'
2367
2637
  );
2368
2638
  }
2369
- #k() {
2370
- const e = this.#a();
2639
+ #c() {
2640
+ const e = this.#d();
2371
2641
  if (!e || e.querySelector('[data-part="expander"]')) return;
2372
2642
  const i = e.querySelector(".content");
2373
2643
  i && e.insertAdjacentHTML(
2374
2644
  "afterbegin",
2375
- `<div data-part="expander">${zt({
2645
+ `<div data-part="expander">${Nt({
2376
2646
  controlsId: i.id || void 0,
2377
2647
  label: this.getAttribute("data-expander-label") || void 0,
2378
2648
  size: this.getAttribute("data-size") === "sm" ? "md" : "lg"
2379
2649
  })}</div>`
2380
2650
  );
2381
2651
  }
2382
- #p(e) {
2383
- const i = this.#o();
2384
- !i || i.getAttribute("aria-expanded") === "true" === e || (i.setAttribute("aria-expanded", e ? "true" : "false"), this.#s(e));
2652
+ #s(e) {
2653
+ const i = this.#r();
2654
+ !i || i.getAttribute("aria-expanded") === "true" === e || (i.setAttribute("aria-expanded", e ? "true" : "false"), this.#l(e));
2385
2655
  }
2386
- #c() {
2656
+ #u() {
2387
2657
  this.#t = (e) => {
2388
2658
  const i = e.target;
2389
2659
  if (!(i instanceof Element) || !i.closest('[data-part="expander"] .set-expander')) return;
2390
- const r = this.#o();
2391
- r && this.#p(r.getAttribute("aria-expanded") !== "true");
2660
+ const r = this.#r();
2661
+ r && this.#s(r.getAttribute("aria-expanded") !== "true");
2392
2662
  }, this.addEventListener("click", this.#t);
2393
2663
  }
2394
- #d() {
2395
- const e = this.#a(), i = this.ownerDocument.defaultView;
2664
+ #a() {
2665
+ const e = this.#d(), i = this.ownerDocument.defaultView;
2396
2666
  if (!e || !i || (this.#i = (a) => {
2397
- a.key !== "Escape" && a.key !== "Esc" || this.#p(!1);
2667
+ a.key !== "Escape" && a.key !== "Esc" || this.#s(!1);
2398
2668
  }, i.addEventListener("keydown", this.#i), this.getAttribute("data-collapsible") !== "belowTablet") || typeof i.matchMedia != "function") return;
2399
2669
  const r = i.matchMedia("(min-width: 48em)");
2400
2670
  this.#e = r, this.#n = (a) => {
2401
- a.matches && this.#p(!1);
2671
+ a.matches && this.#s(!1);
2402
2672
  }, r.addEventListener("change", this.#n);
2403
2673
  }
2404
- #s(e) {
2674
+ #l(e) {
2405
2675
  const i = this.ownerDocument.documentElement;
2406
2676
  if (i) {
2407
2677
  if (e) {
2408
- i.setAttribute(Y, "");
2678
+ i.setAttribute(rt, "");
2409
2679
  return;
2410
2680
  }
2411
- i.removeAttribute(Y);
2681
+ i.removeAttribute(rt);
2412
2682
  }
2413
2683
  }
2414
- #r() {
2684
+ #o() {
2415
2685
  this.#t && (this.removeEventListener("click", this.#t), this.#t = void 0);
2416
2686
  }
2417
- #u() {
2687
+ #h() {
2418
2688
  const e = this.ownerDocument.defaultView;
2419
2689
  this.#i && e && e.removeEventListener("keydown", this.#i), this.#e && this.#n && this.#e.removeEventListener(
2420
2690
  "change",
@@ -2422,12 +2692,12 @@ function Mt() {
2422
2692
  ), this.#i = void 0, this.#n = void 0, this.#e = void 0;
2423
2693
  }
2424
2694
  }
2425
- customElements.define(W, t);
2695
+ customElements.define($, t);
2426
2696
  }
2427
- const Te = {
2697
+ const Fe = {
2428
2698
  name: "nav",
2429
2699
  description: "Use `nav` to render a primary navigation list.",
2430
- output: { element: W, class: "set-nav" },
2700
+ output: { element: $, class: "set-nav" },
2431
2701
  content: { kind: "structured", prop: "items" },
2432
2702
  props: {
2433
2703
  items: {
@@ -2539,8 +2809,8 @@ const Te = {
2539
2809
  }
2540
2810
  ]
2541
2811
  }
2542
- }, U = "set-range";
2543
- function Lt({
2812
+ }, G = "set-range";
2813
+ function Pt({
2544
2814
  description: t,
2545
2815
  disabled: n,
2546
2816
  id: e,
@@ -2553,10 +2823,10 @@ function Lt({
2553
2823
  step: s,
2554
2824
  value: l
2555
2825
  }) {
2556
- const c = e.trim(), u = t?.trim(), b = d?.trim();
2826
+ const c = e.trim(), u = t?.trim(), g = d?.trim();
2557
2827
  if (!c)
2558
2828
  throw new Error("id must be a non-empty string.");
2559
- if (!q(c))
2829
+ if (!I(c))
2560
2830
  throw new Error(
2561
2831
  "id must start with a letter and contain only letters, numbers, '_', '-', or ':'."
2562
2832
  );
@@ -2590,7 +2860,7 @@ function Lt({
2590
2860
  id: c,
2591
2861
  max: a != null ? String(a) : void 0,
2592
2862
  min: o != null ? String(o) : void 0,
2593
- name: b || void 0,
2863
+ name: g || void 0,
2594
2864
  step: s != null ? String(s) : void 0,
2595
2865
  type: "range",
2596
2866
  value: l != null ? String(l) : void 0
@@ -2605,7 +2875,7 @@ function Lt({
2605
2875
  children: [{ kind: "text", value: u }]
2606
2876
  }), {
2607
2877
  kind: "element",
2608
- tag: U,
2878
+ tag: G,
2609
2879
  attrs: {
2610
2880
  class: "set-range",
2611
2881
  "data-inline-size": i === "fit" ? "fit" : void 0,
@@ -2614,11 +2884,11 @@ function Lt({
2614
2884
  children: m
2615
2885
  };
2616
2886
  }
2617
- function Ae(t) {
2618
- return h(Lt(t));
2887
+ function je(t) {
2888
+ return h(Pt(t));
2619
2889
  }
2620
- function qt() {
2621
- if (customElements.get(U)) return;
2890
+ function Bt() {
2891
+ if (customElements.get(G)) return;
2622
2892
  class t extends HTMLElement {
2623
2893
  #t;
2624
2894
  #e = (e) => {
@@ -2626,10 +2896,10 @@ function qt() {
2626
2896
  i instanceof HTMLInputElement && i.matches(".range") && this.#i();
2627
2897
  };
2628
2898
  connectedCallback() {
2629
- this.removeEventListener("input", this.#e), this.#a(), this.#i(), this.addEventListener("input", this.#e);
2899
+ this.removeEventListener("input", this.#e), this.#d(), this.#i(), this.addEventListener("input", this.#e);
2630
2900
  }
2631
2901
  disconnectedCallback() {
2632
- this.removeEventListener("input", this.#e), this.#o();
2902
+ this.removeEventListener("input", this.#e), this.#r();
2633
2903
  }
2634
2904
  #i() {
2635
2905
  const e = this.querySelector(".range"), i = this.querySelector(".output");
@@ -2647,10 +2917,10 @@ function qt() {
2647
2917
  // not fire an `input` event, so the output wouldn't track it. Override
2648
2918
  // the instance's `value` accessor to sync the output on set, restoring
2649
2919
  // the prototype behaviour on disconnect.
2650
- #a() {
2920
+ #d() {
2651
2921
  const e = this.querySelector(".range");
2652
2922
  if (!e || e === this.#t) return;
2653
- this.#o();
2923
+ this.#r();
2654
2924
  const i = Object.getOwnPropertyDescriptor(
2655
2925
  HTMLInputElement.prototype,
2656
2926
  "value"
@@ -2668,16 +2938,16 @@ function qt() {
2668
2938
  }
2669
2939
  }), this.#t = e;
2670
2940
  }
2671
- #o() {
2941
+ #r() {
2672
2942
  this.#t && (delete this.#t.value, this.#t = void 0);
2673
2943
  }
2674
2944
  }
2675
- customElements.define(U, t);
2945
+ customElements.define(G, t);
2676
2946
  }
2677
- const _e = {
2947
+ const Ke = {
2678
2948
  name: "range",
2679
2949
  description: "Use `range` to let users pick a numeric value along a scale.",
2680
- output: { element: U, class: "set-range" },
2950
+ output: { element: G, class: "set-range" },
2681
2951
  content: { kind: "text", prop: "label" },
2682
2952
  props: {
2683
2953
  description: {
@@ -2806,9 +3076,9 @@ const _e = {
2806
3076
  }
2807
3077
  ]
2808
3078
  }
2809
- }, $ = "set-sidebar", It = "(min-width: 68em)", T = "Collapse sidebar", F = "Open sidebar";
2810
- function Tt(t, n) {
2811
- return `<div data-part="close">${K({
3079
+ }, Z = "set-sidebar", Rt = "(min-width: 68em)", _ = "Collapse sidebar", J = "Open sidebar";
3080
+ function Wt(t, n) {
3081
+ return `<div data-part="close">${et({
2812
3082
  appearance: "text",
2813
3083
  icon: "panel-left",
2814
3084
  iconMirrored: "rtl",
@@ -2819,21 +3089,21 @@ function Tt(t, n) {
2819
3089
  type: "button"
2820
3090
  })}</div>`;
2821
3091
  }
2822
- function At({
3092
+ function Ut({
2823
3093
  aboveNotebook: t = "persistent",
2824
3094
  buttonSize: n = "md",
2825
3095
  children: e,
2826
- collapseLabel: i = T,
3096
+ collapseLabel: i = _,
2827
3097
  footer: r,
2828
3098
  header: a,
2829
3099
  id: o,
2830
3100
  surface: d,
2831
- triggerLabel: p = F
3101
+ triggerLabel: p = J
2832
3102
  }) {
2833
- const s = o.trim(), l = i.trim() || T, c = p.trim() || F;
3103
+ const s = o.trim(), l = i.trim() || _, c = p.trim() || J;
2834
3104
  if (!s)
2835
3105
  throw new Error("id must be a non-empty string.");
2836
- if (!q(s))
3106
+ if (!I(s))
2837
3107
  throw new Error(
2838
3108
  "id must start with a letter and contain only letters, numbers, '_', '-', or ':'."
2839
3109
  );
@@ -2857,14 +3127,14 @@ function At({
2857
3127
  attrs: { class: "footer" },
2858
3128
  children: [{ kind: "raw", html: r }]
2859
3129
  });
2860
- const b = `${s}-panel`;
3130
+ const g = `${s}-panel`;
2861
3131
  return {
2862
3132
  kind: "element",
2863
- tag: $,
3133
+ tag: Z,
2864
3134
  attrs: {
2865
3135
  class: "set-sidebar",
2866
3136
  "data-above-notebook": t,
2867
- "data-collapse-label": l !== T ? l : void 0,
3137
+ "data-collapse-label": l !== _ ? l : void 0,
2868
3138
  "data-button-size": n,
2869
3139
  id: s
2870
3140
  },
@@ -2874,9 +3144,9 @@ function At({
2874
3144
  tag: "div",
2875
3145
  attrs: { "data-part": "trigger" },
2876
3146
  children: [
2877
- G({
3147
+ tt({
2878
3148
  appearance: "text",
2879
- controls: b,
3149
+ controls: g,
2880
3150
  disclosure: !0,
2881
3151
  icon: "panel-left",
2882
3152
  iconMirrored: "rtl",
@@ -2894,7 +3164,7 @@ function At({
2894
3164
  attrs: {
2895
3165
  class: "sidebar",
2896
3166
  "data-set-surface": d,
2897
- id: b,
3167
+ id: g,
2898
3168
  tabindex: "-1"
2899
3169
  },
2900
3170
  children: u
@@ -2908,18 +3178,18 @@ function At({
2908
3178
  ]
2909
3179
  };
2910
3180
  }
2911
- function De(t) {
2912
- return h(At(t));
3181
+ function Qe(t) {
3182
+ return h(Ut(t));
2913
3183
  }
2914
- function _t() {
2915
- if (customElements.get($)) return;
3184
+ function $t() {
3185
+ if (customElements.get(Z)) return;
2916
3186
  class t extends HTMLElement {
2917
3187
  #t;
2918
3188
  #e;
2919
3189
  #i;
2920
3190
  #n;
2921
3191
  connectedCallback() {
2922
- this.#v(), this.#s(), this.#g(), this.#f();
3192
+ this.#v(), this.#l(), this.#g(), this.#f();
2923
3193
  }
2924
3194
  disconnectedCallback() {
2925
3195
  this.close(), this.#v();
@@ -2930,99 +3200,99 @@ function _t() {
2930
3200
  close() {
2931
3201
  this.#b(!1);
2932
3202
  }
2933
- #a() {
3203
+ #d() {
2934
3204
  return this.querySelector(".sidebar");
2935
3205
  }
2936
- #o() {
3206
+ #r() {
2937
3207
  return this.querySelector(
2938
3208
  '[data-part="close"] .set-button'
2939
3209
  );
2940
3210
  }
2941
- #k() {
3211
+ #c() {
2942
3212
  return this.querySelector(
2943
3213
  '[data-part="trigger"] .set-button'
2944
3214
  );
2945
3215
  }
2946
- #p() {
3216
+ #s() {
2947
3217
  return this.hasAttribute("data-open");
2948
3218
  }
2949
- #c() {
3219
+ #u() {
2950
3220
  return this.hasAttribute("data-collapsed");
2951
3221
  }
2952
- #d() {
3222
+ #a() {
2953
3223
  const e = this.getAttribute("data-above-notebook");
2954
3224
  return e === "collapsible" || e === "overlay" ? e : "persistent";
2955
3225
  }
2956
- #s() {
2957
- const e = this.#a();
3226
+ #l() {
3227
+ const e = this.#d();
2958
3228
  if (!e || e.querySelector('[data-part="close"]')) return;
2959
- const i = e.querySelector(".header"), r = this.getAttribute("data-collapse-label") || T, a = this.getAttribute("data-button-size") ?? "md";
3229
+ const i = e.querySelector(".header"), r = this.getAttribute("data-collapse-label") || _, a = this.getAttribute("data-button-size") ?? "md";
2960
3230
  i?.insertAdjacentHTML(
2961
3231
  "beforeend",
2962
- Tt(r, a)
3232
+ Wt(r, a)
2963
3233
  );
2964
3234
  }
2965
- #r() {
3235
+ #o() {
2966
3236
  this.querySelector('[data-part="close"]')?.remove();
2967
3237
  }
2968
- #u() {
2969
- const e = this.#o();
3238
+ #h() {
3239
+ const e = this.#r();
2970
3240
  if (e) {
2971
3241
  e.focus();
2972
3242
  return;
2973
3243
  }
2974
- this.#a()?.focus();
3244
+ this.#d()?.focus();
2975
3245
  }
2976
- #m() {
3246
+ #k() {
2977
3247
  return this.#t?.matches ?? !1;
2978
3248
  }
2979
- #l({
3249
+ #p({
2980
3250
  collapsed: e,
2981
3251
  open: i
2982
3252
  }) {
2983
- const r = this.#k();
3253
+ const r = this.#c();
2984
3254
  this.toggleAttribute("data-open", i), this.toggleAttribute("data-collapsed", e), r?.setAttribute("aria-expanded", i ? "true" : "false");
2985
3255
  }
2986
3256
  #g() {
2987
- const e = this.#d();
2988
- if (this.#m()) {
3257
+ const e = this.#a();
3258
+ if (this.#k()) {
2989
3259
  if (e === "overlay") {
2990
- this.#s(), this.#l({ collapsed: !1, open: !1 }), this.#h(!1);
3260
+ this.#l(), this.#p({ collapsed: !1, open: !1 }), this.#m(!1);
2991
3261
  return;
2992
3262
  }
2993
3263
  if (e === "collapsible") {
2994
- this.#s(), this.#l({
2995
- collapsed: this.#c(),
3264
+ this.#l(), this.#p({
3265
+ collapsed: this.#u(),
2996
3266
  open: !0
2997
- }), this.#h(!1);
3267
+ }), this.#m(!1);
2998
3268
  return;
2999
3269
  }
3000
- this.#r(), this.#l({ collapsed: !1, open: !0 }), this.#h(!1);
3270
+ this.#o(), this.#p({ collapsed: !1, open: !0 }), this.#m(!1);
3001
3271
  return;
3002
3272
  }
3003
- this.#s(), this.#l({ collapsed: !1, open: !1 }), this.#h(!1);
3273
+ this.#l(), this.#p({ collapsed: !1, open: !1 }), this.#m(!1);
3004
3274
  }
3005
3275
  #b(e) {
3006
- const i = this.#d();
3007
- if (this.#m()) {
3276
+ const i = this.#a();
3277
+ if (this.#k()) {
3008
3278
  if (i === "persistent") {
3009
- this.#l({ collapsed: !1, open: !0 }), this.#h(!1);
3279
+ this.#p({ collapsed: !1, open: !0 }), this.#m(!1);
3010
3280
  return;
3011
3281
  }
3012
3282
  if (i === "collapsible") {
3013
- this.#l({ collapsed: !e, open: !0 }), this.#h(!1), e && this.#u();
3283
+ this.#p({ collapsed: !e, open: !0 }), this.#m(!1), e && this.#h();
3014
3284
  return;
3015
3285
  }
3016
3286
  }
3017
- if (this.#p() !== e) {
3287
+ if (this.#s() !== e) {
3018
3288
  if (e) {
3019
- this.#l({ collapsed: !1, open: !0 }), this.#h(!0), this.#u();
3289
+ this.#p({ collapsed: !1, open: !0 }), this.#m(!0), this.#h();
3020
3290
  return;
3021
3291
  }
3022
- this.#l({ collapsed: !1, open: !1 }), this.#h(!1), this.#k()?.focus();
3292
+ this.#p({ collapsed: !1, open: !1 }), this.#m(!1), this.#c()?.focus();
3023
3293
  }
3024
3294
  }
3025
- #h(e) {
3295
+ #m(e) {
3026
3296
  const i = this.ownerDocument.documentElement;
3027
3297
  if (i) {
3028
3298
  if (e) {
@@ -3034,7 +3304,7 @@ function _t() {
3034
3304
  }
3035
3305
  #f() {
3036
3306
  const e = this.ownerDocument.defaultView;
3037
- e && (typeof e.matchMedia == "function" && (this.#t = e.matchMedia(It), this.#n = () => {
3307
+ e && (typeof e.matchMedia == "function" && (this.#t = e.matchMedia(Rt), this.#n = () => {
3038
3308
  this.#g();
3039
3309
  }, this.#t.addEventListener("change", this.#n), this.#g()), this.#e = (i) => {
3040
3310
  const r = i.target;
@@ -3044,8 +3314,8 @@ function _t() {
3044
3314
  return;
3045
3315
  }
3046
3316
  if (r.closest('[data-part="close"] .set-button')) {
3047
- if (this.#m() && this.#d() === "collapsible") {
3048
- this.#b(this.#c());
3317
+ if (this.#k() && this.#a() === "collapsible") {
3318
+ this.#b(this.#u());
3049
3319
  return;
3050
3320
  }
3051
3321
  this.close();
@@ -3061,13 +3331,13 @@ function _t() {
3061
3331
  this.#e && this.removeEventListener("click", this.#e), this.#i && this.removeEventListener("keydown", this.#i), this.#t && this.#n && this.#t.removeEventListener("change", this.#n), this.#e = void 0, this.#i = void 0, this.#t = void 0, this.#n = void 0;
3062
3332
  }
3063
3333
  }
3064
- customElements.define($, t);
3334
+ customElements.define(Z, t);
3065
3335
  }
3066
- const Ne = {
3336
+ const Xe = {
3067
3337
  name: "sidebar",
3068
3338
  description: "Use `sidebar` for a side panel alongside main content.",
3069
3339
  output: {
3070
- element: $,
3340
+ element: Z,
3071
3341
  class: "set-sidebar"
3072
3342
  },
3073
3343
  content: {
@@ -3097,7 +3367,7 @@ const Ne = {
3097
3367
  type: { kind: "html" }
3098
3368
  },
3099
3369
  collapseLabel: {
3100
- default: T,
3370
+ default: _,
3101
3371
  description: "Accessible label for the collapse button.",
3102
3372
  type: { kind: "string" }
3103
3373
  },
@@ -3122,7 +3392,7 @@ const Ne = {
3122
3392
  }
3123
3393
  },
3124
3394
  triggerLabel: {
3125
- default: F,
3395
+ default: J,
3126
3396
  description: "Accessible label for the open button.",
3127
3397
  type: { kind: "string" }
3128
3398
  }
@@ -3154,7 +3424,7 @@ const Ne = {
3154
3424
  of: {
3155
3425
  kind: "when-equals",
3156
3426
  prop: "collapseLabel",
3157
- to: T
3427
+ to: _
3158
3428
  }
3159
3429
  }
3160
3430
  ]
@@ -3187,55 +3457,258 @@ const Ne = {
3187
3457
  }
3188
3458
  ]
3189
3459
  }
3460
+ }, F = "set-video";
3461
+ function Gt({
3462
+ autoPlay: t,
3463
+ controls: n,
3464
+ fit: e = "intrinsic",
3465
+ height: i,
3466
+ id: r,
3467
+ loop: a,
3468
+ muted: o,
3469
+ playsInline: d,
3470
+ poster: p,
3471
+ preload: s,
3472
+ src: l,
3473
+ width: c
3474
+ }) {
3475
+ const u = k(r), g = l.trim(), v = p?.trim();
3476
+ if (!g)
3477
+ throw new Error("src must be a non-empty string.");
3478
+ const m = {
3479
+ kind: "element",
3480
+ tag: "video",
3481
+ attrs: {
3482
+ autoplay: !!t,
3483
+ class: "video",
3484
+ controls: !!n,
3485
+ height: i ? String(i) : void 0,
3486
+ loop: !!a,
3487
+ muted: !!o,
3488
+ playsinline: !!d,
3489
+ poster: v || void 0,
3490
+ preload: s,
3491
+ src: g,
3492
+ width: c ? String(c) : void 0
3493
+ },
3494
+ children: []
3495
+ };
3496
+ return {
3497
+ kind: "element",
3498
+ tag: F,
3499
+ attrs: {
3500
+ class: "set-video",
3501
+ "data-fluid": e === "fluid",
3502
+ id: u
3503
+ },
3504
+ children: [m]
3505
+ };
3506
+ }
3507
+ function Ye(t) {
3508
+ return h(Gt(t));
3509
+ }
3510
+ const Zt = "(prefers-reduced-motion: reduce)";
3511
+ function Ft() {
3512
+ if (customElements.get(F)) return;
3513
+ class t extends HTMLElement {
3514
+ #t = !1;
3515
+ #e;
3516
+ #i;
3517
+ connectedCallback() {
3518
+ const e = this.querySelector("video");
3519
+ if (!e || (this.#t ||= e.hasAttribute("autoplay"), !this.#t)) return;
3520
+ const i = this.ownerDocument.defaultView;
3521
+ !i || typeof i.matchMedia != "function" || (this.#e = i.matchMedia(Zt), this.#i = () => {
3522
+ this.#n();
3523
+ }, this.#e.addEventListener("change", this.#i), this.#n());
3524
+ }
3525
+ disconnectedCallback() {
3526
+ this.#e && this.#i && this.#e.removeEventListener("change", this.#i), this.#e = void 0, this.#i = void 0;
3527
+ }
3528
+ #n() {
3529
+ const e = this.querySelector("video");
3530
+ !e || !this.#e || (this.#e.matches ? (e.removeAttribute("autoplay"), e.pause()) : (e.setAttribute("autoplay", ""), e.paused && e.play()?.catch?.(() => {
3531
+ })));
3532
+ }
3533
+ }
3534
+ customElements.define(F, t);
3535
+ }
3536
+ const Je = {
3537
+ name: "video",
3538
+ description: "Use `video` to render a video with intrinsic or fluid fit and native playback behavior.",
3539
+ output: { element: F, class: "set-video" },
3540
+ content: { kind: "none" },
3541
+ props: {
3542
+ autoPlay: {
3543
+ default: !1,
3544
+ description: "Starts playback automatically. Browsers only honor this when `muted` is also set. Suspended when the user prefers reduced motion.",
3545
+ type: { kind: "boolean" }
3546
+ },
3547
+ controls: {
3548
+ default: !1,
3549
+ description: "Shows the browser's native playback controls.",
3550
+ type: { kind: "boolean" }
3551
+ },
3552
+ fit: {
3553
+ default: "intrinsic",
3554
+ description: "Layout mode. `intrinsic` renders at the video's own dimensions, `fluid` scales to the container's full inline size at the video's aspect ratio.",
3555
+ type: { kind: "enum", values: ["intrinsic", "fluid"] }
3556
+ },
3557
+ height: {
3558
+ description: "Intrinsic height in pixels. With `width`, reserves the correctly shaped box before the media loads; rendered height always follows the aspect ratio.",
3559
+ type: { kind: "number" }
3560
+ },
3561
+ id: {
3562
+ description: "DOM id.",
3563
+ type: { kind: "string" }
3564
+ },
3565
+ loop: {
3566
+ default: !1,
3567
+ description: "Restarts playback when the video ends.",
3568
+ type: { kind: "boolean" }
3569
+ },
3570
+ muted: {
3571
+ default: !1,
3572
+ description: "Starts playback silent. Required for `autoPlay` to take effect in most browsers.",
3573
+ type: { kind: "boolean" }
3574
+ },
3575
+ playsInline: {
3576
+ default: !1,
3577
+ description: "Plays inline instead of fullscreen on iOS. Required for `autoPlay` on iOS.",
3578
+ type: { kind: "boolean" }
3579
+ },
3580
+ poster: {
3581
+ description: "Image URL shown before playback begins.",
3582
+ type: { kind: "string" }
3583
+ },
3584
+ preload: {
3585
+ description: "Preload hint. Omitted by default, deferring to the browser.",
3586
+ type: { kind: "enum", values: ["auto", "metadata", "none"] }
3587
+ },
3588
+ src: {
3589
+ description: "Video source URL.",
3590
+ required: !0,
3591
+ type: { kind: "string" }
3592
+ },
3593
+ width: {
3594
+ description: "Intrinsic width in pixels. Sets the rendered width, capped at the container; under `fluid`, an aspect-ratio hint only.",
3595
+ type: { kind: "number" }
3596
+ }
3597
+ },
3598
+ events: {},
3599
+ rules: {
3600
+ attributes: [
3601
+ {
3602
+ target: { on: "host" },
3603
+ attribute: "data-fluid",
3604
+ condition: { kind: "when-equals", prop: "fit", to: "fluid" }
3605
+ },
3606
+ {
3607
+ target: { on: "host" },
3608
+ attribute: "id",
3609
+ condition: { kind: "when-non-empty", prop: "id" },
3610
+ value: { kind: "prop", prop: "id" }
3611
+ },
3612
+ {
3613
+ target: { on: "descendant", selector: "video" },
3614
+ attribute: "class",
3615
+ condition: { kind: "always" },
3616
+ value: { kind: "literal", text: "video" }
3617
+ },
3618
+ {
3619
+ target: { on: "descendant", selector: "video" },
3620
+ attribute: "src",
3621
+ condition: { kind: "always" },
3622
+ value: { kind: "template", pattern: "{src}" }
3623
+ },
3624
+ {
3625
+ target: { on: "descendant", selector: "video" },
3626
+ attribute: "autoplay",
3627
+ condition: { kind: "when-truthy", prop: "autoPlay" }
3628
+ },
3629
+ {
3630
+ target: { on: "descendant", selector: "video" },
3631
+ attribute: "controls",
3632
+ condition: { kind: "when-truthy", prop: "controls" }
3633
+ },
3634
+ {
3635
+ target: { on: "descendant", selector: "video" },
3636
+ attribute: "loop",
3637
+ condition: { kind: "when-truthy", prop: "loop" }
3638
+ },
3639
+ {
3640
+ target: { on: "descendant", selector: "video" },
3641
+ attribute: "muted",
3642
+ condition: { kind: "when-truthy", prop: "muted" }
3643
+ },
3644
+ {
3645
+ target: { on: "descendant", selector: "video" },
3646
+ attribute: "playsinline",
3647
+ condition: { kind: "when-truthy", prop: "playsInline" }
3648
+ },
3649
+ {
3650
+ target: { on: "descendant", selector: "video" },
3651
+ attribute: "poster",
3652
+ condition: { kind: "when-non-empty", prop: "poster" },
3653
+ value: { kind: "prop", prop: "poster" }
3654
+ },
3655
+ {
3656
+ target: { on: "descendant", selector: "video" },
3657
+ attribute: "preload",
3658
+ condition: { kind: "when-provided", prop: "preload" },
3659
+ value: { kind: "prop", prop: "preload" }
3660
+ }
3661
+ ]
3662
+ }
3190
3663
  };
3191
- function Dt(t) {
3664
+ function jt(t) {
3192
3665
  return t ? /[A-Za-z]/.test(t) : !1;
3193
3666
  }
3194
- function Nt(t) {
3667
+ function Kt(t) {
3195
3668
  return /^[a-z]/.test(t);
3196
3669
  }
3197
- function I(t) {
3670
+ function T(t) {
3198
3671
  const n = t.charAt(0);
3199
- return Dt(n) ? n : void 0;
3672
+ return jt(n) ? n : void 0;
3200
3673
  }
3201
- function Ht(t) {
3202
- const n = A(t);
3674
+ function Qt(t) {
3675
+ const n = D(t);
3203
3676
  if (!n) return;
3204
- const e = n.split(" "), i = I(e[0]);
3677
+ const e = n.split(" "), i = T(e[0]);
3205
3678
  if (!i) return;
3206
3679
  const r = [i.toUpperCase()];
3207
3680
  if (e.length === 1)
3208
3681
  return r[0];
3209
- const a = e.slice(1).find(Nt);
3682
+ const a = e.slice(1).find(Kt);
3210
3683
  if (a) {
3211
- const d = I(a);
3684
+ const d = T(a);
3212
3685
  return d ? `${r[0]}${d}` : void 0;
3213
3686
  }
3214
3687
  if (e.length === 2) {
3215
- const d = I(e[1]);
3688
+ const d = T(e[1]);
3216
3689
  if (!d) return;
3217
3690
  r.push(d);
3218
3691
  const p = e[1].split("-").filter(Boolean);
3219
3692
  if (p.length === 2) {
3220
- const s = I(p[1]);
3693
+ const s = T(p[1]);
3221
3694
  s && r.push(s);
3222
3695
  }
3223
3696
  return r.slice(0, 3).join("");
3224
3697
  }
3225
3698
  if (e.length === 3) {
3226
- const d = I(e[1]), p = I(e[2]);
3699
+ const d = T(e[1]), p = T(e[2]);
3227
3700
  return !d || !p ? void 0 : (r.push(d, p), r.slice(0, 3).join(""));
3228
3701
  }
3229
- const o = I(e.at(-1) || "");
3702
+ const o = T(e.at(-1) || "");
3230
3703
  if (o)
3231
3704
  return r.push(o), r.slice(0, 3).join("");
3232
3705
  }
3233
- const Vt = {
3706
+ const Xt = {
3234
3707
  bot: "robot-1",
3235
3708
  organization: "city-6",
3236
3709
  person: "user-1",
3237
3710
  team: "member"
3238
- }, J = [
3711
+ }, at = [
3239
3712
  "01",
3240
3713
  "02",
3241
3714
  "03",
@@ -3246,15 +3719,15 @@ const Vt = {
3246
3719
  "08",
3247
3720
  "09"
3248
3721
  ];
3249
- function Ot(t) {
3722
+ function Yt(t) {
3250
3723
  let n = 5381;
3251
3724
  for (const e of t)
3252
3725
  n = n * 33 ^ e.charCodeAt(0);
3253
3726
  return n >>> 0;
3254
3727
  }
3255
- function Bt(t) {
3728
+ function Jt(t) {
3256
3729
  if (t == null) return;
3257
- const n = A(t);
3730
+ const n = D(t);
3258
3731
  if (n) {
3259
3732
  if (n.length > 3)
3260
3733
  throw new Error("initials must normalize to 3 characters or fewer.");
@@ -3263,26 +3736,26 @@ function Bt(t) {
3263
3736
  return n;
3264
3737
  }
3265
3738
  }
3266
- function Pt({
3739
+ function te({
3267
3740
  alt: t,
3268
3741
  ariaHidden: n,
3269
3742
  name: e
3270
3743
  }) {
3271
3744
  if (!n)
3272
- return A(t) || A(e) || "Avatar";
3745
+ return D(t) || D(e) || "Avatar";
3273
3746
  }
3274
- function Rt({
3747
+ function ee({
3275
3748
  color: t,
3276
3749
  name: n
3277
3750
  }) {
3278
3751
  if (t) return t;
3279
3752
  if (n) {
3280
- const e = Ot(n) % J.length;
3281
- return J[e];
3753
+ const e = Yt(n) % at.length;
3754
+ return at[e];
3282
3755
  }
3283
3756
  return "neutral";
3284
3757
  }
3285
- function Wt({
3758
+ function ie({
3286
3759
  alt: t,
3287
3760
  ariaHidden: n,
3288
3761
  color: e,
@@ -3293,16 +3766,16 @@ function Wt({
3293
3766
  size: d = "md",
3294
3767
  src: p
3295
3768
  }) {
3296
- const s = k(r), l = Bt(a), c = A(o), u = A(p), b = Pt({
3769
+ const s = k(r), l = Jt(a), c = D(o), u = D(p), g = te({
3297
3770
  alt: t,
3298
3771
  ariaHidden: n,
3299
3772
  name: c
3300
- }), v = l || Ht(c), m = !!u, f = Rt({
3773
+ }), v = l || Qt(c), m = !!u, f = ee({
3301
3774
  color: e,
3302
3775
  name: c
3303
- }), z = {
3776
+ }), E = {
3304
3777
  "aria-hidden": n ? "true" : void 0,
3305
- "aria-label": !n && !m ? b : void 0,
3778
+ "aria-label": !n && !m ? g : void 0,
3306
3779
  class: "set-avatar",
3307
3780
  "data-color": f === "neutral" ? void 0 : f,
3308
3781
  "data-entity": i === "person" ? void 0 : i,
@@ -3315,7 +3788,7 @@ function Wt({
3315
3788
  kind: "element",
3316
3789
  tag: "img",
3317
3790
  attrs: {
3318
- alt: n ? "" : b || "",
3791
+ alt: n ? "" : g || "",
3319
3792
  class: "img",
3320
3793
  src: u
3321
3794
  },
@@ -3332,21 +3805,21 @@ function Wt({
3332
3805
  children: [
3333
3806
  H({
3334
3807
  ariaHidden: !0,
3335
- name: Vt[i],
3808
+ name: Xt[i],
3336
3809
  size: "fill"
3337
3810
  })
3338
3811
  ]
3339
3812
  }, {
3340
3813
  kind: "element",
3341
3814
  tag: "span",
3342
- attrs: z,
3815
+ attrs: E,
3343
3816
  children: [S]
3344
3817
  };
3345
3818
  }
3346
- function He(t) {
3347
- return h(Wt(t));
3819
+ function ti(t) {
3820
+ return h(ie(t));
3348
3821
  }
3349
- const Ve = {
3822
+ const ei = {
3350
3823
  name: "avatar",
3351
3824
  description: "Use `avatar` to visually represent a person, team, or entity.",
3352
3825
  output: { element: "span", class: "set-avatar" },
@@ -3453,7 +3926,7 @@ const Ve = {
3453
3926
  ]
3454
3927
  }
3455
3928
  };
3456
- function Ut({
3929
+ function ne({
3457
3930
  floating: t,
3458
3931
  id: n,
3459
3932
  label: e,
@@ -3474,10 +3947,10 @@ function Ut({
3474
3947
  children: [{ kind: "text", value: e }]
3475
3948
  };
3476
3949
  }
3477
- function Oe(t) {
3478
- return h(Ut(t));
3950
+ function ii(t) {
3951
+ return h(ne(t));
3479
3952
  }
3480
- const Be = {
3953
+ const ni = {
3481
3954
  name: "badge",
3482
3955
  description: "Use `badge` to annotate content with a short label.",
3483
3956
  output: { element: "span", class: "set-badge" },
@@ -3504,7 +3977,17 @@ const Be = {
3504
3977
  },
3505
3978
  tone: {
3506
3979
  description: "Semantic tone.",
3507
- type: { kind: "enum", values: ["info", "success", "warning", "error"] }
3980
+ type: {
3981
+ kind: "enum",
3982
+ values: [
3983
+ "notification",
3984
+ "live",
3985
+ "pending",
3986
+ "success",
3987
+ "warning",
3988
+ "error"
3989
+ ]
3990
+ }
3508
3991
  }
3509
3992
  },
3510
3993
  events: {},
@@ -3536,7 +4019,7 @@ const Be = {
3536
4019
  ]
3537
4020
  }
3538
4021
  };
3539
- function Z({
4022
+ function j({
3540
4023
  align: t,
3541
4024
  as: n,
3542
4025
  children: e,
@@ -3564,10 +4047,10 @@ function Z({
3564
4047
  children: [{ kind: "raw", html: e }]
3565
4048
  };
3566
4049
  }
3567
- function Pe(t) {
3568
- return h(Z(t));
4050
+ function ri(t) {
4051
+ return h(j(t));
3569
4052
  }
3570
- const Re = {
4053
+ const ai = {
3571
4054
  name: "text",
3572
4055
  description: "Use `text` for inline or paragraph body copy.",
3573
4056
  output: {
@@ -3681,7 +4164,7 @@ const Re = {
3681
4164
  ]
3682
4165
  }
3683
4166
  };
3684
- function $t({
4167
+ function re({
3685
4168
  align: t = "start",
3686
4169
  attribution: n,
3687
4170
  id: e,
@@ -3705,7 +4188,7 @@ function $t({
3705
4188
  tag: "blockquote",
3706
4189
  attrs: { class: "quote" },
3707
4190
  children: [
3708
- Z({
4191
+ j({
3709
4192
  align: t,
3710
4193
  as: "p",
3711
4194
  children: r,
@@ -3720,7 +4203,7 @@ function $t({
3720
4203
  tag: "figcaption",
3721
4204
  attrs: { class: "attribution" },
3722
4205
  children: [
3723
- Z({
4206
+ j({
3724
4207
  as: "span",
3725
4208
  children: n,
3726
4209
  responsive: a,
@@ -3731,10 +4214,10 @@ function $t({
3731
4214
  ]
3732
4215
  };
3733
4216
  }
3734
- function We(t) {
3735
- return h($t(t));
4217
+ function oi(t) {
4218
+ return h(re(t));
3736
4219
  }
3737
- const Ue = {
4220
+ const di = {
3738
4221
  name: "blockquote",
3739
4222
  description: "Use `blockquote` to display a quote with attribution.",
3740
4223
  output: { element: "figure", class: "set-blockquote" },
@@ -3803,7 +4286,7 @@ const Ue = {
3803
4286
  ]
3804
4287
  }
3805
4288
  };
3806
- function Zt({
4289
+ function ae({
3807
4290
  background: t = "default",
3808
4291
  border: n,
3809
4292
  children: e,
@@ -3832,10 +4315,10 @@ function Zt({
3832
4315
  children: e ? [{ kind: "raw", html: e }] : []
3833
4316
  };
3834
4317
  }
3835
- function $e(t) {
3836
- return h(Zt(t));
4318
+ function si(t) {
4319
+ return h(ae(t));
3837
4320
  }
3838
- const Ze = {
4321
+ const li = {
3839
4322
  name: "box",
3840
4323
  description: "Use `box` to inset content.",
3841
4324
  output: { element: "div", class: "set-box" },
@@ -3948,7 +4431,7 @@ const Ze = {
3948
4431
  ]
3949
4432
  }
3950
4433
  };
3951
- function jt({
4434
+ function oe({
3952
4435
  description: t,
3953
4436
  headingLevel: n,
3954
4437
  href: e,
@@ -4014,10 +4497,10 @@ function jt({
4014
4497
  children: c
4015
4498
  };
4016
4499
  }
4017
- function je(t) {
4018
- return h(jt(t));
4500
+ function pi(t) {
4501
+ return h(oe(t));
4019
4502
  }
4020
- const Fe = {
4503
+ const ci = {
4021
4504
  name: "card",
4022
4505
  description: "Use `card` to display a summary for a single topic.",
4023
4506
  output: {
@@ -4085,7 +4568,7 @@ const Fe = {
4085
4568
  ]
4086
4569
  }
4087
4570
  };
4088
- function Ft({
4571
+ function de({
4089
4572
  checked: t,
4090
4573
  description: n,
4091
4574
  disabled: e,
@@ -4100,7 +4583,7 @@ function Ft({
4100
4583
  const l = k(i), c = n?.trim();
4101
4584
  if (c && !l)
4102
4585
  throw new Error("id must be provided when description is provided.");
4103
- const u = c ? `${l}-description` : void 0, b = !!e, m = [
4586
+ const u = c ? `${l}-description` : void 0, g = !!e, m = [
4104
4587
  {
4105
4588
  kind: "element",
4106
4589
  tag: "label",
@@ -4111,10 +4594,10 @@ function Ft({
4111
4594
  tag: "input",
4112
4595
  attrs: {
4113
4596
  "aria-describedby": u,
4114
- "aria-invalid": !b && !!r ? "true" : void 0,
4597
+ "aria-invalid": !g && !!r ? "true" : void 0,
4115
4598
  checked: !!t,
4116
4599
  class: "checkbox",
4117
- disabled: b,
4600
+ disabled: g,
4118
4601
  id: l,
4119
4602
  name: o || void 0,
4120
4603
  required: !!d,
@@ -4144,10 +4627,10 @@ function Ft({
4144
4627
  children: m
4145
4628
  };
4146
4629
  }
4147
- function Ge(t) {
4148
- return h(Ft(t));
4630
+ function ui(t) {
4631
+ return h(de(t));
4149
4632
  }
4150
- const Ke = {
4633
+ const hi = {
4151
4634
  name: "checkbox",
4152
4635
  description: "Use `checkbox` to let users toggle a single option on or off.",
4153
4636
  output: { element: "div", class: "set-checkbox" },
@@ -4277,7 +4760,7 @@ const Ke = {
4277
4760
  ]
4278
4761
  }
4279
4762
  };
4280
- function Gt({
4763
+ function se({
4281
4764
  children: t,
4282
4765
  gutter: n = "default",
4283
4766
  id: e,
@@ -4296,10 +4779,10 @@ function Gt({
4296
4779
  children: t ? [{ kind: "raw", html: t }] : []
4297
4780
  };
4298
4781
  }
4299
- function Qe(t) {
4300
- return h(Gt(t));
4782
+ function mi(t) {
4783
+ return h(se(t));
4301
4784
  }
4302
- const Xe = {
4785
+ const ki = {
4303
4786
  name: "container",
4304
4787
  description: "Use `container` to wrap page-level content.",
4305
4788
  output: { element: "div", class: "set-container" },
@@ -4356,7 +4839,7 @@ const Xe = {
4356
4839
  ]
4357
4840
  }
4358
4841
  };
4359
- function Kt({
4842
+ function le({
4360
4843
  children: t,
4361
4844
  id: n,
4362
4845
  open: e,
@@ -4408,10 +4891,10 @@ function Kt({
4408
4891
  ]
4409
4892
  };
4410
4893
  }
4411
- function Ye(t) {
4412
- return h(Kt(t));
4894
+ function gi(t) {
4895
+ return h(le(t));
4413
4896
  }
4414
- const Je = {
4897
+ const bi = {
4415
4898
  name: "details",
4416
4899
  description: "Use `details` to let users expand and collapse a section of content.",
4417
4900
  output: { element: "details", class: "set-details" },
@@ -4470,7 +4953,7 @@ const Je = {
4470
4953
  ]
4471
4954
  }
4472
4955
  };
4473
- function Qt({
4956
+ function pe({
4474
4957
  id: t,
4475
4958
  orientation: n = "horizontal",
4476
4959
  tone: e = "default"
@@ -4489,10 +4972,10 @@ function Qt({
4489
4972
  children: []
4490
4973
  };
4491
4974
  }
4492
- function ti(t = {}) {
4493
- return h(Qt(t));
4975
+ function vi(t = {}) {
4976
+ return h(pe(t));
4494
4977
  }
4495
- const ei = {
4978
+ const fi = {
4496
4979
  name: "divider",
4497
4980
  description: "Use `divider` to separate sections with a rule.",
4498
4981
  output: {
@@ -4554,7 +5037,7 @@ const ei = {
4554
5037
  ]
4555
5038
  }
4556
5039
  };
4557
- function lt({
5040
+ function gt({
4558
5041
  children: t,
4559
5042
  description: n,
4560
5043
  disabled: e,
@@ -4566,7 +5049,7 @@ function lt({
4566
5049
  const d = n?.trim(), p = i.trim();
4567
5050
  if (!p)
4568
5051
  throw new Error("id must be a non-empty string.");
4569
- if (!q(p))
5052
+ if (!I(p))
4570
5053
  throw new Error(
4571
5054
  "id must start with a letter and contain only letters, numbers, '_', '-', or ':'."
4572
5055
  );
@@ -4597,10 +5080,10 @@ function lt({
4597
5080
  children: u
4598
5081
  };
4599
5082
  }
4600
- function ii(t) {
4601
- return h(lt(t));
5083
+ function yi(t) {
5084
+ return h(gt(t));
4602
5085
  }
4603
- const ni = {
5086
+ const wi = {
4604
5087
  name: "fieldset",
4605
5088
  description: "Use `fieldset` to group related form controls under a legend.",
4606
5089
  output: { element: "fieldset", class: "set-fieldset" },
@@ -4688,7 +5171,7 @@ const ni = {
4688
5171
  ]
4689
5172
  }
4690
5173
  };
4691
- function Xt({
5174
+ function ce({
4692
5175
  align: t = "start",
4693
5176
  caption: n,
4694
5177
  children: e,
@@ -4711,7 +5194,7 @@ function Xt({
4711
5194
  tag: "figcaption",
4712
5195
  attrs: { class: "figcaption" },
4713
5196
  children: [
4714
- Z({
5197
+ j({
4715
5198
  as: "span",
4716
5199
  children: n,
4717
5200
  responsive: r,
@@ -4722,10 +5205,10 @@ function Xt({
4722
5205
  ]
4723
5206
  };
4724
5207
  }
4725
- function ri(t) {
4726
- return h(Xt(t));
5208
+ function Si(t) {
5209
+ return h(ce(t));
4727
5210
  }
4728
- const ai = {
5211
+ const xi = {
4729
5212
  name: "figure",
4730
5213
  description: "Use `figure` to present media with a caption.",
4731
5214
  output: { element: "figure", class: "set-figure" },
@@ -4787,7 +5270,7 @@ const ai = {
4787
5270
  if (t !== void 0)
4788
5271
  return String(t);
4789
5272
  };
4790
- function Yt({
5273
+ function ue({
4791
5274
  children: t,
4792
5275
  gap: n = "default",
4793
5276
  id: e
@@ -4811,10 +5294,10 @@ function Yt({
4811
5294
  ]
4812
5295
  };
4813
5296
  }
4814
- function oi(t) {
4815
- return h(Yt(t));
5297
+ function Ei(t) {
5298
+ return h(ue(t));
4816
5299
  }
4817
- function Jt({
5300
+ function he({
4818
5301
  align: t,
4819
5302
  children: n,
4820
5303
  colSpan: e,
@@ -4828,7 +5311,7 @@ function Jt({
4828
5311
  rowSpan: l,
4829
5312
  rowSpanNarrow: c,
4830
5313
  rowSpanWide: u,
4831
- rowStart: b,
5314
+ rowStart: g,
4832
5315
  rowStartNarrow: v,
4833
5316
  rowStartWide: m
4834
5317
  }) {
@@ -4849,7 +5332,7 @@ function Jt({
4849
5332
  "data-row-span-narrow": M(c),
4850
5333
  "data-row-start-narrow": M(v),
4851
5334
  "data-row-span": M(l),
4852
- "data-row-start": M(b),
5335
+ "data-row-start": M(g),
4853
5336
  "data-row-span-wide": M(u),
4854
5337
  "data-row-start-wide": M(m),
4855
5338
  id: f
@@ -4857,10 +5340,10 @@ function Jt({
4857
5340
  children: n ? [{ kind: "raw", html: n }] : []
4858
5341
  };
4859
5342
  }
4860
- function di(t) {
4861
- return h(Jt(t));
5343
+ function zi(t) {
5344
+ return h(he(t));
4862
5345
  }
4863
- const si = {
5346
+ const Ci = {
4864
5347
  name: "grid",
4865
5348
  description: "Use `grid` to lay out content in a 12-column responsive grid.",
4866
5349
  output: { element: "div", class: "set-grid" },
@@ -4906,7 +5389,7 @@ const si = {
4906
5389
  min: 1,
4907
5390
  max: 12,
4908
5391
  integer: !0
4909
- }, li = {
5392
+ }, Mi = {
4910
5393
  name: "grid-item",
4911
5394
  description: "Use `grid-item` to place content within a `grid` layout.",
4912
5395
  output: { element: "div", class: "set-grid-item" },
@@ -5073,7 +5556,7 @@ const si = {
5073
5556
  ]
5074
5557
  }
5075
5558
  };
5076
- function te({
5559
+ function me({
5077
5560
  align: t = "start",
5078
5561
  id: n,
5079
5562
  level: e,
@@ -5095,10 +5578,10 @@ function te({
5095
5578
  children: [{ kind: "text", value: a }]
5096
5579
  };
5097
5580
  }
5098
- function pi(t) {
5099
- return h(te(t));
5581
+ function Li(t) {
5582
+ return h(me(t));
5100
5583
  }
5101
- const ci = {
5584
+ const qi = {
5102
5585
  name: "heading",
5103
5586
  description: "Use `heading` to render heading text with consistent type.",
5104
5587
  output: {
@@ -5183,10 +5666,10 @@ const ci = {
5183
5666
  ]
5184
5667
  }
5185
5668
  };
5186
- function ee({
5669
+ function ke({
5187
5670
  alt: t = "",
5188
5671
  aspectRatio: n,
5189
- cover: e,
5672
+ fit: e = "intrinsic",
5190
5673
  gravity: i = "C",
5191
5674
  height: r,
5192
5675
  id: a,
@@ -5197,86 +5680,87 @@ function ee({
5197
5680
  sizes: l,
5198
5681
  sources: c,
5199
5682
  src: u,
5200
- srcSet: b,
5683
+ srcSet: g,
5201
5684
  width: v
5202
5685
  }) {
5203
- const m = k(a), f = u.trim(), z = b?.trim(), S = l?.trim(), g = c?.map((C, E) => {
5204
- const _ = C.srcSet.trim(), D = C.media?.trim(), V = C.type?.trim(), Q = C.sizes?.trim();
5205
- if (!_)
5206
- throw new Error(`sources[${E}].srcSet must be non-empty.`);
5686
+ const m = e === "cover", f = k(a), E = u.trim(), S = g?.trim(), b = l?.trim(), y = c?.map((z, C) => {
5687
+ const A = z.srcSet.trim(), V = z.media?.trim(), it = z.type?.trim(), O = z.sizes?.trim();
5688
+ if (!A)
5689
+ throw new Error(`sources[${C}].srcSet must be non-empty.`);
5207
5690
  return {
5208
- height: C.height,
5209
- media: D || void 0,
5210
- sizes: Q || void 0,
5211
- srcSet: _,
5212
- type: V || void 0,
5213
- width: C.width
5691
+ height: z.height,
5692
+ media: V || void 0,
5693
+ sizes: O || void 0,
5694
+ srcSet: A,
5695
+ type: it || void 0,
5696
+ width: z.width
5214
5697
  };
5215
5698
  }) || [];
5216
- if (!f)
5699
+ if (!E)
5217
5700
  throw new Error("src must be a non-empty string.");
5218
- const y = {
5701
+ const w = {
5219
5702
  kind: "element",
5220
5703
  tag: "img",
5221
5704
  attrs: {
5222
5705
  alt: t,
5223
5706
  class: "img",
5224
5707
  fetchpriority: d ? "high" : void 0,
5225
- height: e ? void 0 : r ? String(r) : void 0,
5708
+ height: m ? void 0 : r ? String(r) : void 0,
5226
5709
  loading: o && !d ? "lazy" : void 0,
5227
- sizes: g.length > 0 ? void 0 : S || void 0,
5228
- src: f,
5229
- srcset: z || void 0,
5230
- width: e ? void 0 : v ? String(v) : void 0
5710
+ sizes: y.length > 0 ? void 0 : b || void 0,
5711
+ src: E,
5712
+ srcset: S || void 0,
5713
+ width: m ? void 0 : v ? String(v) : void 0
5231
5714
  },
5232
5715
  children: []
5233
5716
  };
5234
- let w;
5235
- if (g.length > 0) {
5236
- const C = g.map((E) => ({
5717
+ let x;
5718
+ if (y.length > 0) {
5719
+ const z = y.map((C) => ({
5237
5720
  kind: "element",
5238
5721
  tag: "source",
5239
5722
  attrs: {
5240
- height: E.height ? String(E.height) : void 0,
5241
- media: E.media,
5242
- sizes: E.sizes,
5243
- srcset: E.srcSet,
5244
- type: E.type,
5245
- width: E.width ? String(E.width) : void 0
5723
+ height: C.height ? String(C.height) : void 0,
5724
+ media: C.media,
5725
+ sizes: C.sizes,
5726
+ srcset: C.srcSet,
5727
+ type: C.type,
5728
+ width: C.width ? String(C.width) : void 0
5246
5729
  },
5247
5730
  children: []
5248
5731
  }));
5249
- w = {
5732
+ x = {
5250
5733
  kind: "element",
5251
5734
  tag: "picture",
5252
5735
  attrs: {},
5253
- children: [...C, y]
5736
+ children: [...z, w]
5254
5737
  };
5255
5738
  } else
5256
- w = y;
5257
- const x = [];
5258
- return r && x.push(`--set-image-block-size: ${r / 16}rem`), v && x.push(`--set-image-inline-size: ${v / 16}rem`), {
5739
+ x = w;
5740
+ const q = [];
5741
+ return r && q.push(`--set-image-block-size: ${r / 16}rem`), v && q.push(`--set-image-inline-size: ${v / 16}rem`), {
5259
5742
  kind: "element",
5260
5743
  tag: "div",
5261
5744
  attrs: {
5262
5745
  class: "set-image",
5263
- "data-aspect-ratio": e && !(r && v) ? n : void 0,
5264
- "data-gravity": e && i !== "C" ? i : void 0,
5746
+ "data-aspect-ratio": m && !r ? n : void 0,
5747
+ "data-fluid": e === "fluid",
5748
+ "data-gravity": m && i !== "C" ? i : void 0,
5265
5749
  "data-shadow": !!s,
5266
- "data-object-fit": e ? "cover" : void 0,
5267
- "data-radius": p,
5268
- id: m,
5269
- style: x.length > 0 ? x.join("; ") : void 0
5750
+ "data-object-fit": m ? "cover" : void 0,
5751
+ "data-radius": !!p,
5752
+ id: f,
5753
+ style: q.length > 0 ? q.join("; ") : void 0
5270
5754
  },
5271
- children: [w]
5755
+ children: [x]
5272
5756
  };
5273
5757
  }
5274
- function ie(t) {
5275
- return h(ee(t));
5758
+ function ge(t) {
5759
+ return h(ke(t));
5276
5760
  }
5277
- const ui = {
5761
+ const Ii = {
5278
5762
  name: "image",
5279
- description: "Use `image` to render a responsive image with optional cover fit.",
5763
+ description: "Use `image` to render a responsive image with intrinsic, fluid, or cover fit, and optional art-directed `sources`.",
5280
5764
  output: { element: "div", class: "set-image" },
5281
5765
  content: { kind: "none" },
5282
5766
  props: {
@@ -5288,28 +5772,29 @@ const ui = {
5288
5772
  gravity: {
5289
5773
  default: "C",
5290
5774
  description: "Focal point used when cropping.",
5291
- ignoredWhen: "`cover` is false",
5775
+ ignoredWhen: '`fit` is not `"cover"`',
5292
5776
  type: {
5293
5777
  kind: "enum",
5294
5778
  values: ["N", "NE", "E", "SE", "S", "SW", "W", "NW", "C"]
5295
5779
  }
5296
5780
  },
5297
5781
  radius: {
5298
- description: "Corner radius treatment. `ratio` scales with the image's shortest side — requires `width`/`height` (or `cover` with `aspectRatio`) to determine this, otherwise falls back to `xs`.",
5299
- type: { kind: "enum", values: ["xs", "ratio"] }
5782
+ default: !1,
5783
+ description: "Applies the default corner radius.",
5784
+ type: { kind: "boolean" }
5300
5785
  },
5301
5786
  aspectRatio: {
5302
5787
  description: "Aspect ratio applied to the wrapper.",
5303
- ignoredWhen: "`cover` is false, or both `width` and `height` are set",
5788
+ ignoredWhen: '`fit` is not `"cover"`, or `height` is set',
5304
5789
  type: {
5305
5790
  kind: "enum",
5306
5791
  values: ["1:1", "4:5", "3:2", "16:9", "21:9"]
5307
5792
  }
5308
5793
  },
5309
- cover: {
5310
- default: !1,
5311
- description: "Renders the image as a cropped fill (`object-fit: cover`). Switches `width`/`height` from intrinsic `<img>` dimensions to wrapper sizing.",
5312
- type: { kind: "boolean" }
5794
+ fit: {
5795
+ default: "intrinsic",
5796
+ description: "Layout mode. `intrinsic` renders at the image's own dimensions, `fluid` scales to the container's full inline size at the active source's aspect ratio, `cover` renders a cropped fill (`object-fit: cover`) sized by the wrapper. For `fluid`, provide candidates sized for large viewports via `srcSet`/`sources` so upscaled rendering stays sharp.",
5797
+ type: { kind: "enum", values: ["intrinsic", "fluid", "cover"] }
5313
5798
  },
5314
5799
  shadow: {
5315
5800
  default: !1,
@@ -5317,7 +5802,7 @@ const ui = {
5317
5802
  type: { kind: "boolean" }
5318
5803
  },
5319
5804
  height: {
5320
- description: "Height in pixels. When `cover` is false, sets the intrinsic `<img>` height. When `cover` is true, sizes the wrapper alone it defers to `aspectRatio`, together with `width` it overrides `aspectRatio`.",
5805
+ description: "Height in pixels. Under `intrinsic` and `fluid`, an aspect-ratio hint with `width`, reserves the correctly shaped box before load; rendered height follows the aspect ratio. Under `cover`, the wrapper's block size, overriding `aspectRatio`.",
5321
5806
  type: { kind: "number" }
5322
5807
  },
5323
5808
  id: {
@@ -5336,6 +5821,7 @@ const ui = {
5336
5821
  },
5337
5822
  sizes: {
5338
5823
  description: "`sizes` attribute used with `srcSet`.",
5824
+ ignoredWhen: "`sources` are provided",
5339
5825
  type: { kind: "string" }
5340
5826
  },
5341
5827
  sources: {
@@ -5381,7 +5867,7 @@ const ui = {
5381
5867
  type: { kind: "string" }
5382
5868
  },
5383
5869
  width: {
5384
- description: "Width in pixels. When `cover` is false, sets the intrinsic `<img>` width. When `cover` is true, sizes the wrapper alone it defers to `aspectRatio`, together with `height` it overrides `aspectRatio`.",
5870
+ description: "Width in pixels. Under `intrinsic`, the rendered width, capped at the container; under `fluid`, an aspect-ratio hint; under `cover`, the wrapper's inline size (`aspectRatio` still derives the block size while `height` is unset).",
5385
5871
  type: { kind: "number" }
5386
5872
  }
5387
5873
  },
@@ -5391,7 +5877,7 @@ const ui = {
5391
5877
  {
5392
5878
  target: { on: "host" },
5393
5879
  attribute: "data-object-fit",
5394
- condition: { kind: "when-truthy", prop: "cover" },
5880
+ condition: { kind: "when-equals", prop: "fit", to: "cover" },
5395
5881
  value: { kind: "literal", text: "cover" }
5396
5882
  },
5397
5883
  {
@@ -5402,8 +5888,12 @@ const ui = {
5402
5888
  {
5403
5889
  target: { on: "host" },
5404
5890
  attribute: "data-radius",
5405
- condition: { kind: "when-provided", prop: "radius" },
5406
- value: { kind: "prop", prop: "radius" }
5891
+ condition: { kind: "when-truthy", prop: "radius" }
5892
+ },
5893
+ {
5894
+ target: { on: "host" },
5895
+ attribute: "data-fluid",
5896
+ condition: { kind: "when-equals", prop: "fit", to: "fluid" }
5407
5897
  },
5408
5898
  {
5409
5899
  target: { on: "descendant", selector: "img" },
@@ -5456,7 +5946,7 @@ const ui = {
5456
5946
  ]
5457
5947
  }
5458
5948
  };
5459
- function ne({
5949
+ function be({
5460
5950
  align: t = "center",
5461
5951
  as: n = "div",
5462
5952
  children: e,
@@ -5480,10 +5970,10 @@ function ne({
5480
5970
  children: e ? [{ kind: "raw", html: e }] : []
5481
5971
  };
5482
5972
  }
5483
- function hi(t) {
5484
- return h(ne(t));
5973
+ function Ti(t) {
5974
+ return h(be(t));
5485
5975
  }
5486
- const ki = {
5976
+ const Ai = {
5487
5977
  name: "inline",
5488
5978
  description: "Use `inline` to lay out content in a horizontal row.",
5489
5979
  output: {
@@ -5568,7 +6058,7 @@ const ki = {
5568
6058
  ]
5569
6059
  }
5570
6060
  };
5571
- function re({
6061
+ function ve({
5572
6062
  autocomplete: t,
5573
6063
  description: n,
5574
6064
  disabled: e,
@@ -5582,17 +6072,17 @@ function re({
5582
6072
  size: l = "md",
5583
6073
  spellcheck: c,
5584
6074
  type: u = "text",
5585
- value: b,
6075
+ value: g,
5586
6076
  inlineSize: v = "full"
5587
6077
  }) {
5588
- const m = i.trim(), f = n?.trim(), z = t === !1 ? !1 : t?.trim(), S = o?.trim(), g = d?.trim(), y = b;
6078
+ const m = i.trim(), f = n?.trim(), E = t === !1 ? !1 : t?.trim(), S = o?.trim(), b = d?.trim(), y = g;
5589
6079
  if (!m)
5590
6080
  throw new Error("id must be a non-empty string.");
5591
- if (!q(m))
6081
+ if (!I(m))
5592
6082
  throw new Error(
5593
6083
  "id must start with a letter and contain only letters, numbers, '_', '-', or ':'."
5594
6084
  );
5595
- const w = f ? `${m}-description` : void 0, x = u === "numeric", C = x ? "text" : u, E = g || (x ? "^[0-9]*$" : void 0), _ = c === void 0 && x ? !1 : c, D = !!e, V = !D && !!p, X = [
6085
+ const w = f ? `${m}-description` : void 0, x = u === "numeric", q = x ? "text" : u, z = b || (x ? "^[0-9]*$" : void 0), C = c === void 0 && x ? !1 : c, A = !!e, V = !A && !!p, O = [
5596
6086
  {
5597
6087
  kind: "element",
5598
6088
  tag: "label",
@@ -5604,24 +6094,24 @@ function re({
5604
6094
  tag: "input",
5605
6095
  attrs: {
5606
6096
  "aria-describedby": w,
5607
- "aria-invalid": !D && !V && !!r ? "true" : void 0,
5608
- autocomplete: z === !1 ? "off" : z || void 0,
6097
+ "aria-invalid": !A && !V && !!r ? "true" : void 0,
6098
+ autocomplete: E === !1 ? "off" : E || void 0,
5609
6099
  class: "input",
5610
- disabled: D,
6100
+ disabled: A,
5611
6101
  id: m,
5612
6102
  inputmode: x ? "numeric" : void 0,
5613
6103
  name: S || void 0,
5614
- pattern: E,
6104
+ pattern: z,
5615
6105
  readonly: V,
5616
6106
  required: !!s,
5617
- spellcheck: _ === void 0 ? void 0 : String(_),
5618
- type: C,
6107
+ spellcheck: C === void 0 ? void 0 : String(C),
6108
+ type: q,
5619
6109
  value: y
5620
6110
  },
5621
6111
  children: []
5622
6112
  }
5623
6113
  ];
5624
- return f && X.push({
6114
+ return f && O.push({
5625
6115
  kind: "element",
5626
6116
  tag: "p",
5627
6117
  attrs: { class: "description", id: w },
@@ -5634,13 +6124,13 @@ function re({
5634
6124
  "data-size": l,
5635
6125
  "data-inline-size": v === "fit" ? "fit" : void 0
5636
6126
  },
5637
- children: X
6127
+ children: O
5638
6128
  };
5639
6129
  }
5640
- function mi(t) {
5641
- return h(re(t));
6130
+ function _i(t) {
6131
+ return h(ve(t));
5642
6132
  }
5643
- const gi = {
6133
+ const Di = {
5644
6134
  name: "input",
5645
6135
  description: "Use `input` to collect a single line of text from users.",
5646
6136
  output: { element: "div", class: "set-input" },
@@ -5836,7 +6326,7 @@ const gi = {
5836
6326
  ]
5837
6327
  }
5838
6328
  };
5839
- function ae({
6329
+ function fe({
5840
6330
  id: t,
5841
6331
  label: n,
5842
6332
  size: e = "md",
@@ -5864,10 +6354,10 @@ function ae({
5864
6354
  ]
5865
6355
  };
5866
6356
  }
5867
- function bi(t) {
5868
- return h(ae(t));
6357
+ function Hi(t) {
6358
+ return h(fe(t));
5869
6359
  }
5870
- const vi = {
6360
+ const Ni = {
5871
6361
  name: "logo",
5872
6362
  description: "Use `logo` to display the brand mark.",
5873
6363
  output: { element: "div", class: "set-logo" },
@@ -5935,7 +6425,7 @@ const vi = {
5935
6425
  ]
5936
6426
  }
5937
6427
  };
5938
- function oe({
6428
+ function ye({
5939
6429
  banner: t,
5940
6430
  centerMain: n,
5941
6431
  children: e,
@@ -5976,10 +6466,10 @@ function oe({
5976
6466
  children: l
5977
6467
  };
5978
6468
  }
5979
- function fi(t) {
5980
- return h(oe(t));
6469
+ function Vi(t) {
6470
+ return h(ye(t));
5981
6471
  }
5982
- const yi = {
6472
+ const Oi = {
5983
6473
  name: "page",
5984
6474
  description: "Use `page` as the primary layout for header, main, and footer regions.",
5985
6475
  output: { element: "div", class: "set-page" },
@@ -6069,7 +6559,7 @@ const yi = {
6069
6559
  ]
6070
6560
  }
6071
6561
  };
6072
- function de({
6562
+ function we({
6073
6563
  children: t,
6074
6564
  id: n,
6075
6565
  padding: e = "md",
@@ -6088,10 +6578,10 @@ function de({
6088
6578
  children: t ? [{ kind: "raw", html: t }] : []
6089
6579
  };
6090
6580
  }
6091
- function wi(t) {
6092
- return h(de(t));
6581
+ function Pi(t) {
6582
+ return h(we(t));
6093
6583
  }
6094
- const Si = {
6584
+ const Bi = {
6095
6585
  name: "panel",
6096
6586
  description: "Use `panel` to group related content in a contained region.",
6097
6587
  output: { element: "div", class: "set-panel" },
@@ -6142,7 +6632,7 @@ const Si = {
6142
6632
  ]
6143
6633
  }
6144
6634
  };
6145
- function se({
6635
+ function Se({
6146
6636
  children: t,
6147
6637
  id: n,
6148
6638
  size: e = "md",
@@ -6163,10 +6653,10 @@ function se({
6163
6653
  children: t ? [{ kind: "raw", html: t }] : []
6164
6654
  };
6165
6655
  }
6166
- function xi(t = {}) {
6167
- return h(se(t));
6656
+ function Ri(t = {}) {
6657
+ return h(Se(t));
6168
6658
  }
6169
- const Ei = {
6659
+ const Wi = {
6170
6660
  name: "pattern",
6171
6661
  description: "Use `pattern` to render repeated visual language components behind content.",
6172
6662
  output: { element: "div", class: "set-pattern" },
@@ -6233,15 +6723,15 @@ const Ei = {
6233
6723
  ]
6234
6724
  }
6235
6725
  };
6236
- function zi(t) {
6237
- return ie({
6726
+ function Ui(t) {
6727
+ return ge({
6238
6728
  ...t,
6239
6729
  alt: "",
6240
- cover: !0,
6730
+ fit: "cover",
6241
6731
  priority: !0
6242
6732
  });
6243
6733
  }
6244
- function le({
6734
+ function xe({
6245
6735
  children: t,
6246
6736
  contentTheme: n,
6247
6737
  id: e,
@@ -6273,10 +6763,10 @@ function le({
6273
6763
  children: d
6274
6764
  };
6275
6765
  }
6276
- function Ci(t) {
6277
- return h(le(t));
6766
+ function $i(t) {
6767
+ return h(xe(t));
6278
6768
  }
6279
- const Mi = {
6769
+ const Gi = {
6280
6770
  name: "poster",
6281
6771
  description: "Use `poster` to layer content over background media.",
6282
6772
  output: { element: "div", class: "set-poster" },
@@ -6346,7 +6836,7 @@ const Mi = {
6346
6836
  ]
6347
6837
  }
6348
6838
  };
6349
- function pe({
6839
+ function Ee({
6350
6840
  align: t = "start",
6351
6841
  children: n,
6352
6842
  hangingPunctuation: e,
@@ -6369,10 +6859,10 @@ function pe({
6369
6859
  children: [{ kind: "raw", html: n }]
6370
6860
  };
6371
6861
  }
6372
- function Li(t) {
6373
- return h(pe(t));
6862
+ function Zi(t) {
6863
+ return h(Ee(t));
6374
6864
  }
6375
- const qi = {
6865
+ const Fi = {
6376
6866
  name: "prose",
6377
6867
  description: "Use `prose` to style rich-text markup.",
6378
6868
  output: { element: "div", class: "set-prose" },
@@ -6445,7 +6935,7 @@ const qi = {
6445
6935
  ]
6446
6936
  }
6447
6937
  };
6448
- function ce({
6938
+ function ze({
6449
6939
  description: t,
6450
6940
  disabled: n,
6451
6941
  id: e,
@@ -6458,10 +6948,10 @@ function ce({
6458
6948
  size: s = "md",
6459
6949
  value: l
6460
6950
  }) {
6461
- const c = e.trim(), u = o.trim(), b = l?.trim();
6951
+ const c = e.trim(), u = o.trim(), g = l?.trim();
6462
6952
  if (!c)
6463
6953
  throw new Error("id must be a non-empty string.");
6464
- if (!q(c))
6954
+ if (!I(c))
6465
6955
  throw new Error(
6466
6956
  "id must start with a letter and contain only letters, numbers, '_', '-', or ':'."
6467
6957
  );
@@ -6469,23 +6959,23 @@ function ce({
6469
6959
  throw new Error("name must be a non-empty string.");
6470
6960
  if (r.length < 2)
6471
6961
  throw new Error("radios must include at least 2 options.");
6472
- const v = r.map((g, y) => {
6473
- const w = g.value.trim(), x = g.label.trim(), C = g.description?.trim();
6962
+ const v = r.map((b, y) => {
6963
+ const w = b.value.trim(), x = b.label.trim(), q = b.description?.trim();
6474
6964
  if (!w)
6475
6965
  throw new Error(`radios[${y}].value must be non-empty.`);
6476
6966
  if (!x)
6477
6967
  throw new Error(`radios[${y}].label must be non-empty.`);
6478
6968
  return {
6479
- description: C,
6480
- disabled: !!g.disabled,
6969
+ description: q,
6970
+ disabled: !!b.disabled,
6481
6971
  label: x,
6482
6972
  value: w
6483
6973
  };
6484
6974
  });
6485
- if (new Set(v.map((g) => g.value)).size !== v.length)
6975
+ if (new Set(v.map((b) => b.value)).size !== v.length)
6486
6976
  throw new Error("radios values must be unique.");
6487
- const f = !!n, z = v.map((g) => {
6488
- const y = !!g.disabled, w = g.description ? `${c}-${g.value}-description` : void 0, x = [
6977
+ const f = !!n, E = v.map((b) => {
6978
+ const y = !!b.disabled, w = b.description ? `${c}-${b.value}-description` : void 0, x = [
6489
6979
  {
6490
6980
  kind: "element",
6491
6981
  tag: "label",
@@ -6496,13 +6986,13 @@ function ce({
6496
6986
  tag: "input",
6497
6987
  attrs: {
6498
6988
  "aria-describedby": w,
6499
- checked: b === g.value,
6989
+ checked: g === b.value,
6500
6990
  class: "radio",
6501
6991
  disabled: y,
6502
6992
  name: u,
6503
6993
  required: !!p && !f && !y,
6504
6994
  type: "radio",
6505
- value: g.value
6995
+ value: b.value
6506
6996
  },
6507
6997
  children: []
6508
6998
  },
@@ -6510,16 +7000,16 @@ function ce({
6510
7000
  kind: "element",
6511
7001
  tag: "span",
6512
7002
  attrs: {},
6513
- children: [{ kind: "text", value: g.label }]
7003
+ children: [{ kind: "text", value: b.label }]
6514
7004
  }
6515
7005
  ]
6516
7006
  }
6517
7007
  ];
6518
- return g.description && x.push({
7008
+ return b.description && x.push({
6519
7009
  kind: "element",
6520
7010
  tag: "p",
6521
7011
  attrs: { class: "radio-description", id: w },
6522
- children: [{ kind: "text", value: g.description }]
7012
+ children: [{ kind: "text", value: b.description }]
6523
7013
  }), {
6524
7014
  kind: "element",
6525
7015
  tag: "div",
@@ -6527,7 +7017,7 @@ function ce({
6527
7017
  children: x
6528
7018
  };
6529
7019
  });
6530
- return lt({
7020
+ return gt({
6531
7021
  children: h({
6532
7022
  kind: "element",
6533
7023
  tag: "div",
@@ -6536,7 +7026,7 @@ function ce({
6536
7026
  "data-orientation": d,
6537
7027
  "data-size": s
6538
7028
  },
6539
- children: z
7029
+ children: E
6540
7030
  }),
6541
7031
  description: t,
6542
7032
  disabled: f,
@@ -6545,10 +7035,10 @@ function ce({
6545
7035
  legend: a
6546
7036
  });
6547
7037
  }
6548
- function Ii(t) {
6549
- return h(ce(t));
7038
+ function ji(t) {
7039
+ return h(ze(t));
6550
7040
  }
6551
- const Ti = {
7041
+ const Ki = {
6552
7042
  name: "radios",
6553
7043
  description: "Use `radios` to let users select one option from a short list.",
6554
7044
  output: { element: "fieldset", class: "set-fieldset" },
@@ -6697,7 +7187,7 @@ const Ti = {
6697
7187
  ]
6698
7188
  }
6699
7189
  };
6700
- function ue({
7190
+ function Ce({
6701
7191
  appOverscrollBehavior: t,
6702
7192
  appRoot: n,
6703
7193
  brand: e = "mnsp",
@@ -6724,10 +7214,10 @@ function ue({
6724
7214
  children: i ? [{ kind: "raw", html: i }] : []
6725
7215
  };
6726
7216
  }
6727
- function Ai(t) {
6728
- return h(ue(t));
7217
+ function Qi(t) {
7218
+ return h(Ce(t));
6729
7219
  }
6730
- const _i = {
7220
+ const Xi = {
6731
7221
  name: "root",
6732
7222
  description: "Mandatory top-level `root` wrapper for the Set system.",
6733
7223
  output: { element: "div", class: "set" },
@@ -6820,7 +7310,7 @@ const _i = {
6820
7310
  ]
6821
7311
  }
6822
7312
  };
6823
- function he({
7313
+ function Me({
6824
7314
  id: t,
6825
7315
  label: n,
6826
7316
  size: e = "md",
@@ -6877,10 +7367,10 @@ function he({
6877
7367
  children: o
6878
7368
  };
6879
7369
  }
6880
- function Di(t = {}) {
6881
- return h(he(t));
7370
+ function Yi(t = {}) {
7371
+ return h(Me(t));
6882
7372
  }
6883
- const Ni = {
7373
+ const Ji = {
6884
7374
  name: "spinner",
6885
7375
  description: "Use `spinner` to indicate loading or in-progress state.",
6886
7376
  output: { element: "span", class: "set-spinner" },
@@ -6938,7 +7428,7 @@ const Ni = {
6938
7428
  ]
6939
7429
  }
6940
7430
  };
6941
- function ke({
7431
+ function Le({
6942
7432
  align: t = "stretch",
6943
7433
  as: n = "div",
6944
7434
  children: e,
@@ -6960,10 +7450,10 @@ function ke({
6960
7450
  children: e ? [{ kind: "raw", html: e }] : []
6961
7451
  };
6962
7452
  }
6963
- function Hi(t) {
6964
- return h(ke(t));
7453
+ function tn(t) {
7454
+ return h(Le(t));
6965
7455
  }
6966
- const Vi = {
7456
+ const en = {
6967
7457
  name: "stack",
6968
7458
  description: "Use `stack` to lay out content in a vertical column.",
6969
7459
  output: {
@@ -7034,7 +7524,7 @@ const Vi = {
7034
7524
  ]
7035
7525
  }
7036
7526
  };
7037
- function me({
7527
+ function qe({
7038
7528
  children: t,
7039
7529
  contentTheme: n,
7040
7530
  id: e,
@@ -7053,10 +7543,10 @@ function me({
7053
7543
  children: [{ kind: "raw", html: t }]
7054
7544
  };
7055
7545
  }
7056
- function Oi(t) {
7057
- return h(me(t));
7546
+ function nn(t) {
7547
+ return h(qe(t));
7058
7548
  }
7059
- const Bi = {
7549
+ const rn = {
7060
7550
  name: "surface",
7061
7551
  description: "Use `surface` to set a colour context for nested content.",
7062
7552
  output: { element: "div", class: "set-surface" },
@@ -7108,7 +7598,7 @@ const Bi = {
7108
7598
  ]
7109
7599
  }
7110
7600
  };
7111
- function ge({
7601
+ function Ie({
7112
7602
  checked: t,
7113
7603
  description: n,
7114
7604
  disabled: e,
@@ -7164,10 +7654,10 @@ function ge({
7164
7654
  children: c
7165
7655
  };
7166
7656
  }
7167
- function Pi(t) {
7168
- return h(ge(t));
7657
+ function an(t) {
7658
+ return h(Ie(t));
7169
7659
  }
7170
- const Ri = {
7660
+ const on = {
7171
7661
  name: "switch",
7172
7662
  description: "Use `switch` to let users instantly toggle a setting on or off.",
7173
7663
  output: { element: "div", class: "set-switch" },
@@ -7275,7 +7765,7 @@ const Ri = {
7275
7765
  ]
7276
7766
  }
7277
7767
  };
7278
- function be({
7768
+ function Te({
7279
7769
  autocomplete: t,
7280
7770
  description: n,
7281
7771
  disabled: e,
@@ -7289,19 +7779,19 @@ function be({
7289
7779
  rows: l = 2,
7290
7780
  size: c = "md",
7291
7781
  spellcheck: u,
7292
- value: b,
7782
+ value: g,
7293
7783
  inlineSize: v = "full"
7294
7784
  }) {
7295
- const m = i.trim(), f = n?.trim(), z = t === !1 ? !1 : t?.trim(), S = o?.trim(), g = b;
7785
+ const m = i.trim(), f = n?.trim(), E = t === !1 ? !1 : t?.trim(), S = o?.trim(), b = g;
7296
7786
  if (!m)
7297
7787
  throw new Error("id must be a non-empty string.");
7298
- if (!q(m))
7788
+ if (!I(m))
7299
7789
  throw new Error(
7300
7790
  "id must start with a letter and contain only letters, numbers, '_', '-', or ':'."
7301
7791
  );
7302
7792
  if (!Number.isInteger(l) || l < 2)
7303
7793
  throw new Error("rows must be an integer greater than or equal to 2.");
7304
- const y = f ? `${m}-description` : void 0, w = !!e, x = !w && !!d, E = [
7794
+ const y = f ? `${m}-description` : void 0, w = !!e, x = !w && !!d, z = [
7305
7795
  {
7306
7796
  kind: "element",
7307
7797
  tag: "label",
@@ -7314,7 +7804,7 @@ function be({
7314
7804
  attrs: {
7315
7805
  "aria-describedby": y,
7316
7806
  "aria-invalid": !w && !x && !!r ? "true" : void 0,
7317
- autocomplete: z === !1 ? "off" : z || void 0,
7807
+ autocomplete: E === !1 ? "off" : E || void 0,
7318
7808
  class: "textarea",
7319
7809
  disabled: w,
7320
7810
  id: m,
@@ -7324,10 +7814,10 @@ function be({
7324
7814
  rows: String(l),
7325
7815
  spellcheck: u === void 0 ? void 0 : String(u)
7326
7816
  },
7327
- children: [{ kind: "text", value: g || "" }]
7817
+ children: [{ kind: "text", value: b || "" }]
7328
7818
  }
7329
7819
  ];
7330
- return f && E.push({
7820
+ return f && z.push({
7331
7821
  kind: "element",
7332
7822
  tag: "p",
7333
7823
  attrs: { class: "description", id: y },
@@ -7341,13 +7831,13 @@ function be({
7341
7831
  "data-size": c,
7342
7832
  "data-inline-size": v === "fit" ? "fit" : void 0
7343
7833
  },
7344
- children: E
7834
+ children: z
7345
7835
  };
7346
7836
  }
7347
- function Wi(t) {
7348
- return h(be(t));
7837
+ function dn(t) {
7838
+ return h(Te(t));
7349
7839
  }
7350
- const Ui = {
7840
+ const sn = {
7351
7841
  name: "textarea",
7352
7842
  description: "Use `textarea` to collect multiple lines of text from users.",
7353
7843
  output: { element: "div", class: "set-textarea" },
@@ -7536,154 +8026,166 @@ const Ui = {
7536
8026
  ]
7537
8027
  }
7538
8028
  };
7539
- function $i() {
7540
- bt(), wt(), xt(), Mt(), qt(), _t();
8029
+ function ln() {
8030
+ Et(), Lt(), At(), Dt(), Ot(), Bt(), $t(), Ft();
7541
8031
  }
7542
8032
  export {
7543
- nt as SET_ALERT_EVENT_BEFORE_DISMISS,
7544
- rt as SET_ALERT_EVENT_DISMISS,
7545
- Se as SET_ALERT_SPEC,
7546
- O as SET_ALERT_TAG_NAME,
7547
- Ve as SET_AVATAR_SPEC,
7548
- Be as SET_BADGE_SPEC,
7549
- ot as SET_BANNER_EVENT_BEFORE_DISMISS,
7550
- dt as SET_BANNER_EVENT_DISMISS,
7551
- Ce as SET_BANNER_SPEC,
8033
+ lt as SET_ALERT_EVENT_BEFORE_DISMISS,
8034
+ pt as SET_ALERT_EVENT_DISMISS,
8035
+ Ne as SET_ALERT_SPEC,
8036
+ P as SET_ALERT_TAG_NAME,
8037
+ ei as SET_AVATAR_SPEC,
8038
+ ni as SET_BADGE_SPEC,
8039
+ ut as SET_BANNER_EVENT_BEFORE_DISMISS,
8040
+ ht as SET_BANNER_EVENT_DISMISS,
8041
+ Be as SET_BANNER_SPEC,
7552
8042
  B as SET_BANNER_TAG_NAME,
7553
- Ue as SET_BLOCKQUOTE_SPEC,
7554
- Ze as SET_BOX_SPEC,
7555
- ye as SET_BUTTON_SPEC,
7556
- Fe as SET_CARD_SPEC,
7557
- Ke as SET_CHECKBOX_SPEC,
7558
- Xe as SET_CONTAINER_SPEC,
7559
- Je as SET_DETAILS_SPEC,
7560
- ei as SET_DIVIDER_SPEC,
7561
- qe as SET_EXPANDER_SPEC,
7562
- ni as SET_FIELDSET_SPEC,
7563
- ai as SET_FIGURE_SPEC,
7564
- li as SET_GRID_ITEM_SPEC,
7565
- si as SET_GRID_SPEC,
7566
- ci as SET_HEADING_SPEC,
7567
- ve as SET_ICON_NAMES,
7568
- fe as SET_ICON_SPEC,
7569
- ui as SET_IMAGE_SPEC,
7570
- ki as SET_INLINE_SPEC,
7571
- gi as SET_INPUT_SPEC,
7572
- Ee as SET_LINK_SPEC,
7573
- vi as SET_LOGO_SPEC,
7574
- st as SET_MENU_EVENT_CHOOSE,
7575
- Le as SET_MENU_SPEC,
7576
- R as SET_MENU_TAG_NAME,
7577
- Te as SET_NAV_SPEC,
7578
- W as SET_NAV_TAG_NAME,
7579
- yi as SET_PAGE_SPEC,
7580
- Si as SET_PANEL_SPEC,
7581
- Ei as SET_PATTERN_SPEC,
7582
- Mi as SET_POSTER_SPEC,
7583
- qi as SET_PROSE_SPEC,
7584
- Ti as SET_RADIOS_SPEC,
7585
- _e as SET_RANGE_SPEC,
7586
- U as SET_RANGE_TAG_NAME,
7587
- _i as SET_ROOT_SPEC,
7588
- Ne as SET_SIDEBAR_SPEC,
7589
- $ as SET_SIDEBAR_TAG_NAME,
7590
- Ni as SET_SPINNER_SPEC,
7591
- Vi as SET_STACK_SPEC,
7592
- Bi as SET_SURFACE_SPEC,
7593
- Ri as SET_SWITCH_SPEC,
7594
- Ui as SET_TEXTAREA_SPEC,
7595
- Re as SET_TEXT_SPEC,
7596
- gt as buildSetAlert,
7597
- Wt as buildSetAvatar,
7598
- Ut as buildSetBadge,
7599
- yt as buildSetBanner,
7600
- $t as buildSetBlockquote,
7601
- Zt as buildSetBox,
7602
- G as buildSetButton,
7603
- jt as buildSetCard,
7604
- Ft as buildSetCheckbox,
7605
- Gt as buildSetContainer,
7606
- Kt as buildSetDetails,
7607
- Qt as buildSetDivider,
7608
- Et as buildSetExpander,
7609
- lt as buildSetFieldset,
7610
- Xt as buildSetFigure,
7611
- Yt as buildSetGrid,
7612
- Jt as buildSetGridItem,
7613
- te as buildSetHeading,
8043
+ di as SET_BLOCKQUOTE_SPEC,
8044
+ li as SET_BOX_SPEC,
8045
+ De as SET_BUTTON_SPEC,
8046
+ ci as SET_CARD_SPEC,
8047
+ hi as SET_CHECKBOX_SPEC,
8048
+ ki as SET_CONTAINER_SPEC,
8049
+ bi as SET_DETAILS_SPEC,
8050
+ fi as SET_DIVIDER_SPEC,
8051
+ Ge as SET_EXPANDER_SPEC,
8052
+ wi as SET_FIELDSET_SPEC,
8053
+ xi as SET_FIGURE_SPEC,
8054
+ Mi as SET_GRID_ITEM_SPEC,
8055
+ Ci as SET_GRID_SPEC,
8056
+ qi as SET_HEADING_SPEC,
8057
+ Ae as SET_ICON_NAMES,
8058
+ _e as SET_ICON_SPEC,
8059
+ Ii as SET_IMAGE_SPEC,
8060
+ Ai as SET_INLINE_SPEC,
8061
+ Di as SET_INPUT_SPEC,
8062
+ mt as SET_LIGHTSWITCH_EVENT_CHANGE,
8063
+ We as SET_LIGHTSWITCH_SPEC,
8064
+ K as SET_LIGHTSWITCH_STORAGE_KEY,
8065
+ W as SET_LIGHTSWITCH_TAG_NAME,
8066
+ Oe as SET_LINK_SPEC,
8067
+ Ni as SET_LOGO_SPEC,
8068
+ kt as SET_MENU_EVENT_CHOOSE,
8069
+ $e as SET_MENU_SPEC,
8070
+ U as SET_MENU_TAG_NAME,
8071
+ Fe as SET_NAV_SPEC,
8072
+ $ as SET_NAV_TAG_NAME,
8073
+ Oi as SET_PAGE_SPEC,
8074
+ Bi as SET_PANEL_SPEC,
8075
+ Wi as SET_PATTERN_SPEC,
8076
+ Gi as SET_POSTER_SPEC,
8077
+ Fi as SET_PROSE_SPEC,
8078
+ Ki as SET_RADIOS_SPEC,
8079
+ Ke as SET_RANGE_SPEC,
8080
+ G as SET_RANGE_TAG_NAME,
8081
+ Xi as SET_ROOT_SPEC,
8082
+ Xe as SET_SIDEBAR_SPEC,
8083
+ Z as SET_SIDEBAR_TAG_NAME,
8084
+ Ji as SET_SPINNER_SPEC,
8085
+ en as SET_STACK_SPEC,
8086
+ rn as SET_SURFACE_SPEC,
8087
+ on as SET_SWITCH_SPEC,
8088
+ sn as SET_TEXTAREA_SPEC,
8089
+ ai as SET_TEXT_SPEC,
8090
+ Je as SET_VIDEO_SPEC,
8091
+ F as SET_VIDEO_TAG_NAME,
8092
+ xt as buildSetAlert,
8093
+ ie as buildSetAvatar,
8094
+ ne as buildSetBadge,
8095
+ Mt as buildSetBanner,
8096
+ re as buildSetBlockquote,
8097
+ ae as buildSetBox,
8098
+ tt as buildSetButton,
8099
+ oe as buildSetCard,
8100
+ de as buildSetCheckbox,
8101
+ se as buildSetContainer,
8102
+ le as buildSetDetails,
8103
+ pe as buildSetDivider,
8104
+ Ht as buildSetExpander,
8105
+ gt as buildSetFieldset,
8106
+ ce as buildSetFigure,
8107
+ ue as buildSetGrid,
8108
+ he as buildSetGridItem,
8109
+ me as buildSetHeading,
7614
8110
  H as buildSetIcon,
7615
- ee as buildSetImage,
7616
- ne as buildSetInline,
7617
- re as buildSetInput,
7618
- at as buildSetLink,
7619
- ae as buildSetLogo,
7620
- St as buildSetMenu,
7621
- Ct as buildSetNav,
7622
- oe as buildSetPage,
7623
- de as buildSetPanel,
7624
- se as buildSetPattern,
7625
- le as buildSetPoster,
7626
- pe as buildSetProse,
7627
- ce as buildSetRadios,
7628
- Lt as buildSetRange,
7629
- ue as buildSetRoot,
7630
- At as buildSetSidebar,
7631
- he as buildSetSpinner,
7632
- ke as buildSetStack,
7633
- me as buildSetSurface,
7634
- ge as buildSetSwitch,
7635
- Z as buildSetText,
7636
- be as buildSetTextarea,
7637
- bt as defineSetAlert,
7638
- wt as defineSetBanner,
7639
- $i as defineSetComponents,
7640
- xt as defineSetMenu,
7641
- Mt as defineSetNav,
7642
- qt as defineSetRange,
7643
- _t as defineSetSidebar,
7644
- Ht as getSetInitials,
7645
- we as renderSetAlert,
7646
- He as renderSetAvatar,
7647
- Oe as renderSetBadge,
7648
- ze as renderSetBanner,
7649
- We as renderSetBlockquote,
7650
- $e as renderSetBox,
7651
- K as renderSetButton,
7652
- je as renderSetCard,
7653
- Ge as renderSetCheckbox,
7654
- Qe as renderSetContainer,
7655
- Ye as renderSetDetails,
7656
- ti as renderSetDivider,
7657
- zt as renderSetExpander,
7658
- ii as renderSetFieldset,
7659
- ri as renderSetFigure,
7660
- oi as renderSetGrid,
7661
- di as renderSetGridItem,
7662
- pi as renderSetHeading,
7663
- ut as renderSetIcon,
7664
- ie as renderSetImage,
7665
- hi as renderSetInline,
7666
- mi as renderSetInput,
7667
- xe as renderSetLink,
7668
- bi as renderSetLogo,
7669
- Me as renderSetMenu,
7670
- Ie as renderSetNav,
7671
- fi as renderSetPage,
7672
- wi as renderSetPanel,
7673
- xi as renderSetPattern,
7674
- Ci as renderSetPoster,
7675
- zi as renderSetPosterImage,
7676
- Li as renderSetProse,
7677
- Ii as renderSetRadios,
7678
- Ae as renderSetRange,
7679
- Ai as renderSetRoot,
7680
- De as renderSetSidebar,
7681
- Di as renderSetSpinner,
7682
- Hi as renderSetStack,
7683
- Oi as renderSetSurface,
7684
- Pi as renderSetSwitch,
7685
- Pe as renderSetText,
7686
- Wi as renderSetTextarea,
8111
+ ke as buildSetImage,
8112
+ be as buildSetInline,
8113
+ ve as buildSetInput,
8114
+ Tt as buildSetLightswitch,
8115
+ ct as buildSetLink,
8116
+ fe as buildSetLogo,
8117
+ _t as buildSetMenu,
8118
+ Vt as buildSetNav,
8119
+ ye as buildSetPage,
8120
+ we as buildSetPanel,
8121
+ Se as buildSetPattern,
8122
+ xe as buildSetPoster,
8123
+ Ee as buildSetProse,
8124
+ ze as buildSetRadios,
8125
+ Pt as buildSetRange,
8126
+ Ce as buildSetRoot,
8127
+ Ut as buildSetSidebar,
8128
+ Me as buildSetSpinner,
8129
+ Le as buildSetStack,
8130
+ qe as buildSetSurface,
8131
+ Ie as buildSetSwitch,
8132
+ j as buildSetText,
8133
+ Te as buildSetTextarea,
8134
+ Gt as buildSetVideo,
8135
+ Et as defineSetAlert,
8136
+ Lt as defineSetBanner,
8137
+ ln as defineSetComponents,
8138
+ At as defineSetLightswitch,
8139
+ Dt as defineSetMenu,
8140
+ Ot as defineSetNav,
8141
+ Bt as defineSetRange,
8142
+ $t as defineSetSidebar,
8143
+ Ft as defineSetVideo,
8144
+ Qt as getSetInitials,
8145
+ He as renderSetAlert,
8146
+ ti as renderSetAvatar,
8147
+ ii as renderSetBadge,
8148
+ Pe as renderSetBanner,
8149
+ oi as renderSetBlockquote,
8150
+ si as renderSetBox,
8151
+ et as renderSetButton,
8152
+ pi as renderSetCard,
8153
+ ui as renderSetCheckbox,
8154
+ mi as renderSetContainer,
8155
+ gi as renderSetDetails,
8156
+ vi as renderSetDivider,
8157
+ Nt as renderSetExpander,
8158
+ yi as renderSetFieldset,
8159
+ Si as renderSetFigure,
8160
+ Ei as renderSetGrid,
8161
+ zi as renderSetGridItem,
8162
+ Li as renderSetHeading,
8163
+ ft as renderSetIcon,
8164
+ ge as renderSetImage,
8165
+ Ti as renderSetInline,
8166
+ _i as renderSetInput,
8167
+ Re as renderSetLightswitch,
8168
+ Ve as renderSetLink,
8169
+ Hi as renderSetLogo,
8170
+ Ue as renderSetMenu,
8171
+ Ze as renderSetNav,
8172
+ Vi as renderSetPage,
8173
+ Pi as renderSetPanel,
8174
+ Ri as renderSetPattern,
8175
+ $i as renderSetPoster,
8176
+ Ui as renderSetPosterImage,
8177
+ Zi as renderSetProse,
8178
+ ji as renderSetRadios,
8179
+ je as renderSetRange,
8180
+ Qi as renderSetRoot,
8181
+ Qe as renderSetSidebar,
8182
+ Yi as renderSetSpinner,
8183
+ tn as renderSetStack,
8184
+ nn as renderSetSurface,
8185
+ an as renderSetSwitch,
8186
+ ri as renderSetText,
8187
+ dn as renderSetTextarea,
8188
+ Ye as renderSetVideo,
7687
8189
  h as serializeSetNode
7688
8190
  };
7689
8191
  //# sourceMappingURL=index.js.map