@openvoxproject/voxblocks 0.11.0 → 0.14.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.
Files changed (43) hide show
  1. package/README.md +2 -2
  2. package/dist/cdn/voxblocks.css +1 -1
  3. package/dist/cdn/voxblocks.js +1780 -1437
  4. package/dist/types/components/accordion/vox-accordion.d.ts +0 -2
  5. package/dist/types/components/datum/vox-datum.d.ts +25 -0
  6. package/dist/types/components/disclosure/vox-disclosure.d.ts +0 -2
  7. package/dist/types/components/dropdown/vox-dropdown.d.ts +0 -3
  8. package/dist/types/components/header/vox-header.d.ts +0 -2
  9. package/dist/types/components/menu/vox-menu.d.ts +44 -0
  10. package/dist/types/components/pagination/vox-pagination.d.ts +4 -6
  11. package/dist/types/components/record-list/vox-record-list.d.ts +53 -0
  12. package/dist/types/components/sidenav/vox-sidenav.d.ts +0 -4
  13. package/dist/types/index.d.ts +5 -0
  14. package/dist/types/internal/field.d.ts +0 -4
  15. package/dist/voxblocks.css +1 -1
  16. package/dist/voxblocks.js +1622 -1279
  17. package/package.json +1 -1
  18. package/src/components/accordion/vox-accordion.ts +1 -6
  19. package/src/components/alert/vox-alert.ts +1 -5
  20. package/src/components/avatar/vox-avatar.ts +2 -9
  21. package/src/components/card/vox-card.ts +1 -1
  22. package/src/components/checkbox/vox-checkbox.ts +3 -4
  23. package/src/components/datum/vox-datum.ts +76 -0
  24. package/src/components/dialog/vox-dialog.ts +2 -2
  25. package/src/components/disclosure/vox-disclosure.ts +1 -6
  26. package/src/components/dropdown/vox-dropdown.ts +14 -32
  27. package/src/components/empty-state/vox-empty-state.ts +1 -1
  28. package/src/components/file-input/vox-file-input.ts +1 -4
  29. package/src/components/header/vox-header.ts +0 -10
  30. package/src/components/input/vox-input.ts +0 -2
  31. package/src/components/link-hub/vox-link-hub.ts +1 -1
  32. package/src/components/menu/vox-menu.ts +203 -0
  33. package/src/components/pagination/vox-pagination.ts +6 -9
  34. package/src/components/radio/vox-radio-group.ts +6 -17
  35. package/src/components/record-list/vox-record-list.ts +263 -0
  36. package/src/components/select/vox-select.ts +0 -3
  37. package/src/components/sidenav/vox-sidenav.ts +1 -16
  38. package/src/components/step-indicator/vox-step-indicator.ts +2 -16
  39. package/src/components/tabs/vox-tabs.ts +2 -26
  40. package/src/components/textarea/vox-textarea.ts +0 -2
  41. package/src/index.ts +5 -0
  42. package/src/internal/field.ts +2 -20
  43. package/src/tokens/tokens.css +7 -7
package/dist/voxblocks.js CHANGED
@@ -1,40 +1,40 @@
1
- import { css as d, LitElement as h, html as c, svg as l, nothing as v } from "lit";
2
- import { property as n, customElement as p, state as le, query as Ze } from "lit/decorators.js";
3
- import { classMap as bt } from "lit/directives/class-map.js";
4
- import { ifDefined as u } from "lit/directives/if-defined.js";
5
- import { live as dt } from "lit/directives/live.js";
6
- var mt = Object.defineProperty, yt = Object.getOwnPropertyDescriptor, V = (o, t, a, r) => {
7
- for (var e = r > 1 ? void 0 : r ? yt(t, a) : t, s = o.length - 1, i; s >= 0; s--)
8
- (i = o[s]) && (e = (r ? i(t, a, e) : i(e)) || e);
9
- return r && e && mt(t, a, e), e;
1
+ import { css as d, LitElement as p, html as l, svg as c, nothing as v } from "lit";
2
+ import { property as n, customElement as h, state as De, query as Qe } from "lit/decorators.js";
3
+ import { classMap as Oo } from "lit/directives/class-map.js";
4
+ import { ifDefined as L } from "lit/directives/if-defined.js";
5
+ import { live as go } from "lit/directives/live.js";
6
+ var ko = Object.defineProperty, Po = Object.getOwnPropertyDescriptor, O = (t, o, a, r) => {
7
+ for (var e = r > 1 ? void 0 : r ? Po(o, a) : o, s = t.length - 1, i; s >= 0; s--)
8
+ (i = t[s]) && (e = (r ? i(o, a, e) : i(e)) || e);
9
+ return r && e && ko(o, a, e), e;
10
10
  };
11
- let g = class extends h {
11
+ let f = class extends p {
12
12
  constructor() {
13
13
  super(...arguments), this.variant = "brand", this.size = "md", this.type = "button", this.disabled = !1;
14
14
  }
15
15
  render() {
16
- const o = bt({
16
+ const t = Oo({
17
17
  button: !0,
18
18
  [this.variant]: !0,
19
19
  [this.size]: !0
20
20
  });
21
- return this.href !== void 0 && !this.disabled ? c`
21
+ return this.href !== void 0 && !this.disabled ? l`
22
22
  <a
23
- class=${o}
23
+ class=${t}
24
24
  href=${this.href}
25
- target=${u(this.target)}
26
- rel=${u(this.target === "_blank" ? "noreferrer" : void 0)}
25
+ target=${L(this.target)}
26
+ rel=${L(this.target === "_blank" ? "noreferrer" : void 0)}
27
27
  >
28
28
  <slot></slot>
29
29
  </a>
30
- ` : c`
31
- <button class=${o} type=${this.type} ?disabled=${this.disabled}>
30
+ ` : l`
31
+ <button class=${t} type=${this.type} ?disabled=${this.disabled}>
32
32
  <slot></slot>
33
33
  </button>
34
34
  `;
35
35
  }
36
36
  };
37
- g.styles = d`
37
+ f.styles = d`
38
38
  :host {
39
39
  display: inline-block;
40
40
  }
@@ -142,38 +142,38 @@ g.styles = d`
142
142
  border-radius: 0 var(--vox-radius-md) var(--vox-radius-md) 0;
143
143
  }
144
144
  `;
145
- V([
145
+ O([
146
146
  n()
147
- ], g.prototype, "variant", 2);
148
- V([
147
+ ], f.prototype, "variant", 2);
148
+ O([
149
149
  n()
150
- ], g.prototype, "size", 2);
151
- V([
150
+ ], f.prototype, "size", 2);
151
+ O([
152
152
  n()
153
- ], g.prototype, "href", 2);
154
- V([
153
+ ], f.prototype, "href", 2);
154
+ O([
155
155
  n()
156
- ], g.prototype, "target", 2);
157
- V([
156
+ ], f.prototype, "target", 2);
157
+ O([
158
158
  n()
159
- ], g.prototype, "type", 2);
160
- V([
159
+ ], f.prototype, "type", 2);
160
+ O([
161
161
  n({ type: Boolean, reflect: !0 })
162
- ], g.prototype, "disabled", 2);
163
- g = V([
164
- p("vox-button")
165
- ], g);
166
- var wt = Object.defineProperty, $t = Object.getOwnPropertyDescriptor, Ue = (o, t, a, r) => {
167
- for (var e = r > 1 ? void 0 : r ? $t(t, a) : t, s = o.length - 1, i; s >= 0; s--)
168
- (i = o[s]) && (e = (r ? i(t, a, e) : i(e)) || e);
169
- return r && e && wt(t, a, e), e;
162
+ ], f.prototype, "disabled", 2);
163
+ f = O([
164
+ h("vox-button")
165
+ ], f);
166
+ var Lo = Object.defineProperty, Vo = Object.getOwnPropertyDescriptor, Ye = (t, o, a, r) => {
167
+ for (var e = r > 1 ? void 0 : r ? Vo(o, a) : o, s = t.length - 1, i; s >= 0; s--)
168
+ (i = t[s]) && (e = (r ? i(o, a, e) : i(e)) || e);
169
+ return r && e && Lo(o, a, e), e;
170
170
  };
171
- let R = class extends h {
171
+ let T = class extends p {
172
172
  constructor() {
173
173
  super(...arguments), this.href = "#";
174
174
  }
175
175
  render() {
176
- return c`
176
+ return l`
177
177
  <a href=${this.href} target=${this.target ?? ""}>
178
178
  <slot></slot>
179
179
  <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
@@ -184,7 +184,7 @@ let R = class extends h {
184
184
  `;
185
185
  }
186
186
  };
187
- R.styles = d`
187
+ T.styles = d`
188
188
  :host {
189
189
  display: inline-block;
190
190
  font-family: var(--vox-font-family-base);
@@ -221,60 +221,60 @@ R.styles = d`
221
221
  transform: translateX(3px);
222
222
  }
223
223
  `;
224
- Ue([
224
+ Ye([
225
225
  n()
226
- ], R.prototype, "href", 2);
227
- Ue([
226
+ ], T.prototype, "href", 2);
227
+ Ye([
228
228
  n()
229
- ], R.prototype, "target", 2);
230
- R = Ue([
231
- p("vox-cta")
232
- ], R);
233
- var _t = Object.defineProperty, Ct = Object.getOwnPropertyDescriptor, Pe = (o, t, a, r) => {
234
- for (var e = r > 1 ? void 0 : r ? Ct(t, a) : t, s = o.length - 1, i; s >= 0; s--)
235
- (i = o[s]) && (e = (r ? i(t, a, e) : i(e)) || e);
236
- return r && e && _t(t, a, e), e;
229
+ ], T.prototype, "target", 2);
230
+ T = Ye([
231
+ h("vox-cta")
232
+ ], T);
233
+ var jo = Object.defineProperty, zo = Object.getOwnPropertyDescriptor, Ee = (t, o, a, r) => {
234
+ for (var e = r > 1 ? void 0 : r ? zo(o, a) : o, s = t.length - 1, i; s >= 0; s--)
235
+ (i = t[s]) && (e = (r ? i(o, a, e) : i(e)) || e);
236
+ return r && e && jo(o, a, e), e;
237
237
  };
238
- const ct = "vox-theme", be = "data-vox-theme";
239
- let z = class extends h {
238
+ const fo = "vox-theme", we = "data-vox-theme";
239
+ let V = class extends p {
240
240
  constructor() {
241
- super(...arguments), this.lightLabel = "Switch to dark theme", this.darkLabel = "Switch to light theme", this.dark = !1, this.media = window.matchMedia("(prefers-color-scheme: dark)"), this.handleSystemChange = (o) => {
242
- localStorage.getItem(ct) || document.documentElement.setAttribute(be, o.matches ? "dark" : "light");
241
+ super(...arguments), this.lightLabel = "Switch to dark theme", this.darkLabel = "Switch to light theme", this.dark = !1, this.media = window.matchMedia("(prefers-color-scheme: dark)"), this.handleSystemChange = (t) => {
242
+ localStorage.getItem(fo) || document.documentElement.setAttribute(we, t.matches ? "dark" : "light");
243
243
  };
244
244
  }
245
245
  connectedCallback() {
246
246
  super.connectedCallback(), this.syncFromDocument(), this.observer = new MutationObserver(() => this.syncFromDocument()), this.observer.observe(document.documentElement, {
247
247
  attributes: !0,
248
- attributeFilter: [be]
248
+ attributeFilter: [we]
249
249
  }), this.media.addEventListener("change", this.handleSystemChange);
250
250
  }
251
251
  disconnectedCallback() {
252
- var o;
253
- super.disconnectedCallback(), (o = this.observer) == null || o.disconnect(), this.media.removeEventListener("change", this.handleSystemChange);
252
+ var t;
253
+ super.disconnectedCallback(), (t = this.observer) == null || t.disconnect(), this.media.removeEventListener("change", this.handleSystemChange);
254
254
  }
255
255
  syncFromDocument() {
256
- const o = document.documentElement.getAttribute(be) === "dark";
257
- this.dark = o, this.toggleAttribute("dark", o);
256
+ const t = document.documentElement.getAttribute(we) === "dark";
257
+ this.dark = t, this.toggleAttribute("dark", t);
258
258
  }
259
259
  handleClick() {
260
- const o = this.dark ? "light" : "dark";
261
- document.documentElement.setAttribute(be, o), localStorage.setItem(ct, o), this.dispatchEvent(
260
+ const t = this.dark ? "light" : "dark";
261
+ document.documentElement.setAttribute(we, t), localStorage.setItem(fo, t), this.dispatchEvent(
262
262
  new CustomEvent("vox-theme-change", {
263
- detail: { theme: o },
263
+ detail: { theme: t },
264
264
  bubbles: !0,
265
265
  composed: !0
266
266
  })
267
267
  );
268
268
  }
269
269
  render() {
270
- const o = this.dark ? this.darkLabel : this.lightLabel;
271
- return c`
270
+ const t = this.dark ? this.darkLabel : this.lightLabel;
271
+ return l`
272
272
  <button
273
273
  type="button"
274
274
  role="switch"
275
275
  aria-checked=${this.dark}
276
- aria-label=${o}
277
- title=${o}
276
+ aria-label=${t}
277
+ title=${t}
278
278
  @click=${this.handleClick}
279
279
  >
280
280
  <span class="track">
@@ -291,7 +291,7 @@ let z = class extends h {
291
291
  `;
292
292
  }
293
293
  };
294
- z.styles = d`
294
+ V.styles = d`
295
295
  :host {
296
296
  display: inline-flex;
297
297
  }
@@ -350,118 +350,118 @@ z.styles = d`
350
350
  transform: translateX(20px);
351
351
  }
352
352
  `;
353
- Pe([
353
+ Ee([
354
354
  n({ attribute: "light-label" })
355
- ], z.prototype, "lightLabel", 2);
356
- Pe([
355
+ ], V.prototype, "lightLabel", 2);
356
+ Ee([
357
357
  n({ attribute: "dark-label" })
358
- ], z.prototype, "darkLabel", 2);
359
- Pe([
360
- le()
361
- ], z.prototype, "dark", 2);
362
- z = Pe([
363
- p("vox-theme-toggle")
364
- ], z);
365
- const y = {
358
+ ], V.prototype, "darkLabel", 2);
359
+ Ee([
360
+ De()
361
+ ], V.prototype, "dark", 2);
362
+ V = Ee([
363
+ h("vox-theme-toggle")
364
+ ], V);
365
+ const m = {
366
366
  // Phase 1: shared UI baseline -----------------------------------------
367
- search: l`<circle cx="21" cy="21" r="13"/><path d="M30.5 30.5 L41 41"/>`,
368
- close: l`<path d="M14 14 L34 34 M34 14 L14 34"/>`,
369
- menu: l`<path d="M8 14 H40 M8 24 H40 M8 34 H40"/>`,
370
- "chevron-up": l`<path d="M14 28 L24 18 L34 28"/>`,
371
- "chevron-down": l`<path d="M14 20 L24 30 L34 20"/>`,
372
- "chevron-left": l`<path d="M28 14 L18 24 L28 34"/>`,
373
- "chevron-right": l`<path d="M20 14 L30 24 L20 34"/>`,
374
- "external-link": l`<path d="M36 26 V38 A4 4 0 0 1 32 42 H10 A4 4 0 0 1 6 38 V16 A4 4 0 0 1 10 12 H22"/><path d="M30 6 H42 V18"/><path d="M20 28 L42 6"/>`,
375
- copy: l`<rect x="8" y="14" width="24" height="24" rx="3"/><path d="M16 14 V10 A2 2 0 0 1 18 8 H38 A2 2 0 0 1 40 10 V30 A2 2 0 0 1 38 32 H34"/>`,
376
- check: l`<path d="M10 25 L20 35 L38 13"/>`,
377
- warning: l`<path d="M24 8 L44 40 H4 Z"/><path d="M24 20 V28"/><circle cx="24" cy="34" r="1.6" fill="currentColor" stroke="none"/>`,
378
- info: l`<circle cx="24" cy="24" r="17"/><path d="M24 22 V33"/><circle cx="24" cy="15.5" r="1.8" fill="currentColor" stroke="none"/>`,
379
- add: l`<path d="M24 10 V38 M10 24 H38"/>`,
380
- remove: l`<path d="M10 24 H38"/>`,
381
- edit: l`<path d="M30 8 L40 18 L18 40 L7 41 L8 30 Z"/><path d="M26 12 L36 22"/>`,
382
- delete: l`<path d="M10 14 H38"/><path d="M17 14 V9 A2 2 0 0 1 19 7 H29 A2 2 0 0 1 31 9 V14"/><path d="M13 14 L15 40 A2 2 0 0 0 17 42 H31 A2 2 0 0 0 33 40 L35 14"/><path d="M20 21 V35 M28 21 V35"/>`,
383
- filter: l`<path d="M6 10 H42 L28 26 V38 L20 42 V26 Z"/>`,
384
- sort: l`<path d="M14 30 V10 M14 10 L8 16 M14 10 L20 16"/><path d="M34 18 V38 M34 38 L28 32 M34 38 L40 32"/>`,
385
- calendar: l`<rect x="6" y="10" width="36" height="32" rx="3"/><path d="M6 20 H42"/><path d="M15 6 V14 M33 6 V14"/><circle cx="15" cy="28" r="1.6" fill="currentColor" stroke="none"/><circle cx="24" cy="28" r="1.6" fill="currentColor" stroke="none"/><circle cx="33" cy="28" r="1.6" fill="currentColor" stroke="none"/>`,
386
- clock: l`<circle cx="24" cy="24" r="17"/><path d="M24 14 V24 L32 29"/>`,
387
- person: l`<circle cx="24" cy="16" r="8"/><path d="M8 42 C8 31 15 26 24 26 C33 26 40 31 40 42"/>`,
388
- people: l`<circle cx="17" cy="16" r="7"/><circle cx="33" cy="18" r="6"/><path d="M4 41 C4 31 10 27 17 27 C21 27 24 28.3 26.3 30.5"/><path d="M24 41 C24 32 29 28 37 28 C43 28 44 32 44 41"/>`,
389
- lock: l`<rect x="10" y="21" width="28" height="21" rx="3"/><path d="M16 21 V15 A8 8 0 0 1 32 15 V21"/><circle cx="24" cy="31" r="2.2" fill="currentColor" stroke="none"/>`,
390
- eye: l`<path d="M4 24 C10 12 20 8 24 8 C28 8 38 12 44 24 C38 36 28 40 24 40 C20 40 10 36 4 24 Z"/><circle cx="24" cy="24" r="6"/>`,
391
- "eye-slash": l`<path d="M4 24 C10 12 20 8 24 8 C28 8 38 12 44 24 C38 36 28 40 24 40 C20 40 10 36 4 24 Z"/><circle cx="24" cy="24" r="6"/><path d="M6 6 L42 42"/>`,
392
- refresh: l`<path d="M46 8 L46 20 L34 20"/><path d="M2 40 L2 28 L14 28"/><path d="M7.02 18 A18 18 0 0 1 36.72 11.28 L46 20"/><path d="M2 28 L11.28 36.72 A18 18 0 0 0 40.98 30"/>`,
367
+ search: c`<circle cx="21" cy="21" r="13"/><path d="M30.5 30.5 L41 41"/>`,
368
+ close: c`<path d="M14 14 L34 34 M34 14 L14 34"/>`,
369
+ menu: c`<path d="M8 14 H40 M8 24 H40 M8 34 H40"/>`,
370
+ "chevron-up": c`<path d="M14 28 L24 18 L34 28"/>`,
371
+ "chevron-down": c`<path d="M14 20 L24 30 L34 20"/>`,
372
+ "chevron-left": c`<path d="M28 14 L18 24 L28 34"/>`,
373
+ "chevron-right": c`<path d="M20 14 L30 24 L20 34"/>`,
374
+ "external-link": c`<path d="M36 26 V38 A4 4 0 0 1 32 42 H10 A4 4 0 0 1 6 38 V16 A4 4 0 0 1 10 12 H22"/><path d="M30 6 H42 V18"/><path d="M20 28 L42 6"/>`,
375
+ copy: c`<rect x="8" y="14" width="24" height="24" rx="3"/><path d="M16 14 V10 A2 2 0 0 1 18 8 H38 A2 2 0 0 1 40 10 V30 A2 2 0 0 1 38 32 H34"/>`,
376
+ check: c`<path d="M10 25 L20 35 L38 13"/>`,
377
+ warning: c`<path d="M24 8 L44 40 H4 Z"/><path d="M24 20 V28"/><circle cx="24" cy="34" r="1.6" fill="currentColor" stroke="none"/>`,
378
+ info: c`<circle cx="24" cy="24" r="17"/><path d="M24 22 V33"/><circle cx="24" cy="15.5" r="1.8" fill="currentColor" stroke="none"/>`,
379
+ add: c`<path d="M24 10 V38 M10 24 H38"/>`,
380
+ remove: c`<path d="M10 24 H38"/>`,
381
+ edit: c`<path d="M30 8 L40 18 L18 40 L7 41 L8 30 Z"/><path d="M26 12 L36 22"/>`,
382
+ delete: c`<path d="M10 14 H38"/><path d="M17 14 V9 A2 2 0 0 1 19 7 H29 A2 2 0 0 1 31 9 V14"/><path d="M13 14 L15 40 A2 2 0 0 0 17 42 H31 A2 2 0 0 0 33 40 L35 14"/><path d="M20 21 V35 M28 21 V35"/>`,
383
+ filter: c`<path d="M6 10 H42 L28 26 V38 L20 42 V26 Z"/>`,
384
+ sort: c`<path d="M14 30 V10 M14 10 L8 16 M14 10 L20 16"/><path d="M34 18 V38 M34 38 L28 32 M34 38 L40 32"/>`,
385
+ calendar: c`<rect x="6" y="10" width="36" height="32" rx="3"/><path d="M6 20 H42"/><path d="M15 6 V14 M33 6 V14"/><circle cx="15" cy="28" r="1.6" fill="currentColor" stroke="none"/><circle cx="24" cy="28" r="1.6" fill="currentColor" stroke="none"/><circle cx="33" cy="28" r="1.6" fill="currentColor" stroke="none"/>`,
386
+ clock: c`<circle cx="24" cy="24" r="17"/><path d="M24 14 V24 L32 29"/>`,
387
+ person: c`<circle cx="24" cy="16" r="8"/><path d="M8 42 C8 31 15 26 24 26 C33 26 40 31 40 42"/>`,
388
+ people: c`<circle cx="17" cy="16" r="7"/><circle cx="33" cy="18" r="6"/><path d="M4 41 C4 31 10 27 17 27 C21 27 24 28.3 26.3 30.5"/><path d="M24 41 C24 32 29 28 37 28 C43 28 44 32 44 41"/>`,
389
+ lock: c`<rect x="10" y="21" width="28" height="21" rx="3"/><path d="M16 21 V15 A8 8 0 0 1 32 15 V21"/><circle cx="24" cy="31" r="2.2" fill="currentColor" stroke="none"/>`,
390
+ eye: c`<path d="M4 24 C10 12 20 8 24 8 C28 8 38 12 44 24 C38 36 28 40 24 40 C20 40 10 36 4 24 Z"/><circle cx="24" cy="24" r="6"/>`,
391
+ "eye-slash": c`<path d="M4 24 C10 12 20 8 24 8 C28 8 38 12 44 24 C38 36 28 40 24 40 C20 40 10 36 4 24 Z"/><circle cx="24" cy="24" r="6"/><path d="M6 6 L42 42"/>`,
392
+ refresh: c`<path d="M46 8 L46 20 L34 20"/><path d="M2 40 L2 28 L14 28"/><path d="M7.02 18 A18 18 0 0 1 36.72 11.28 L46 20"/><path d="M2 28 L11.28 36.72 A18 18 0 0 0 40.98 30"/>`,
393
393
  // Phase 2: OpenVox marketing site --------------------------------------
394
- community: l`<circle cx="24" cy="10" r="5"/><circle cx="10" cy="34" r="5"/><circle cx="38" cy="34" r="5"/><path d="M24 15 L14 30 M24 15 L34 30 M15 34 H33"/>`,
395
- book: l`<path d="M24 12 C20 8 12 7 6 9 V37 C12 35 20 36 24 40 C28 36 36 35 42 37 V9 C36 7 28 8 24 12 Z"/><path d="M24 12 V40"/>`,
396
- terminal: l`<rect x="6" y="9" width="36" height="30" rx="3"/><path d="M14 19 L21 24 L14 29"/><path d="M25 30 H33"/>`,
397
- shield: l`<path d="M24 6 L40 12 V22 C40 33 33 40 24 43 C15 40 8 33 8 22 V12 Z"/><path d="M17 23 L22 28 L32 17"/>`,
398
- roadmap: l`<path d="M6 38 C14 38 14 26 22 26 C30 26 30 14 38 14"/><circle cx="6" cy="38" r="3" fill="currentColor" stroke="none"/><circle cx="22" cy="26" r="3" fill="currentColor" stroke="none"/><circle cx="38" cy="14" r="3" fill="currentColor" stroke="none"/>`,
399
- help: l`<circle cx="24" cy="24" r="17"/><path d="M18 18 C18 13 30 13 30 19 C30 24 24 23 24 29"/><circle cx="24" cy="35" r="1.8" fill="currentColor" stroke="none"/>`,
400
- repository: l`<rect x="7" y="10" width="34" height="28" rx="3"/><path d="M18 20 L13 24 L18 28 M30 20 L35 24 L30 28"/>`,
401
- star: l`<path d="M24 6 L29 19 L43 19 L32 28 L36 42 L24 34 L12 42 L16 28 L5 19 L19 19 Z"/>`,
402
- chat: l`<path d="M8 10 H40 A2 2 0 0 1 42 12 V30 A2 2 0 0 1 40 32 H20 L12 40 V32 H8 A2 2 0 0 1 6 30 V12 A2 2 0 0 1 8 10 Z"/><path d="M14 18 H34 M14 24 H28"/>`,
403
- heart: l`<path d="M24 41 C10 32 4 23 4 15.5 C4 9 9 5 15 5 C19.5 5 22.5 7.5 24 11 C25.5 7.5 28.5 5 33 5 C39 5 44 9 44 15.5 C44 23 38 32 24 41 Z"/>`,
394
+ community: c`<circle cx="24" cy="10" r="5"/><circle cx="10" cy="34" r="5"/><circle cx="38" cy="34" r="5"/><path d="M24 15 L14 30 M24 15 L34 30 M15 34 H33"/>`,
395
+ book: c`<path d="M24 12 C20 8 12 7 6 9 V37 C12 35 20 36 24 40 C28 36 36 35 42 37 V9 C36 7 28 8 24 12 Z"/><path d="M24 12 V40"/>`,
396
+ terminal: c`<rect x="6" y="9" width="36" height="30" rx="3"/><path d="M14 19 L21 24 L14 29"/><path d="M25 30 H33"/>`,
397
+ shield: c`<path d="M24 6 L40 12 V22 C40 33 33 40 24 43 C15 40 8 33 8 22 V12 Z"/><path d="M17 23 L22 28 L32 17"/>`,
398
+ roadmap: c`<path d="M6 38 C14 38 14 26 22 26 C30 26 30 14 38 14"/><circle cx="6" cy="38" r="3" fill="currentColor" stroke="none"/><circle cx="22" cy="26" r="3" fill="currentColor" stroke="none"/><circle cx="38" cy="14" r="3" fill="currentColor" stroke="none"/>`,
399
+ help: c`<circle cx="24" cy="24" r="17"/><path d="M18 18 C18 13 30 13 30 19 C30 24 24 23 24 29"/><circle cx="24" cy="35" r="1.8" fill="currentColor" stroke="none"/>`,
400
+ repository: c`<rect x="7" y="10" width="34" height="28" rx="3"/><path d="M18 20 L13 24 L18 28 M30 20 L35 24 L30 28"/>`,
401
+ star: c`<path d="M24 6 L29 19 L43 19 L32 28 L36 42 L24 34 L12 42 L16 28 L5 19 L19 19 Z"/>`,
402
+ chat: c`<path d="M8 10 H40 A2 2 0 0 1 42 12 V30 A2 2 0 0 1 40 32 H20 L12 40 V32 H8 A2 2 0 0 1 6 30 V12 A2 2 0 0 1 8 10 Z"/><path d="M14 18 H34 M14 24 H28"/>`,
403
+ heart: c`<path d="M24 41 C10 32 4 23 4 15.5 C4 9 9 5 15 5 C19.5 5 22.5 7.5 24 11 C25.5 7.5 28.5 5 33 5 C39 5 44 9 44 15.5 C44 23 38 32 24 41 Z"/>`,
404
404
  // Phase 3: module registry (Forge replacement) -------------------------
405
- module: l`<rect x="8" y="16" width="32" height="24" rx="3"/><path d="M8 24 H40"/><path d="M20 16 L24 24 L28 16"/>`,
406
- tag: l`<path d="M6 10 H26 L42 26 L26 42 H6 Z"/><circle cx="15" cy="19" r="3" fill="currentColor" stroke="none"/>`,
407
- dependency: l`<rect x="6" y="19" width="20" height="10" rx="5"/><rect x="22" y="19" width="20" height="10" rx="5"/>`,
408
- verified: l`<path d="M24 5 L31 10 L39 9 L40 17 L46 24 L40 31 L39 39 L31 38 L24 43 L17 38 L9 39 L8 31 L2 24 L8 17 L9 9 L17 10 Z"/><path d="M16 24 L21 29 L32 18"/>`,
409
- archived: l`<rect x="6" y="6" width="36" height="10" rx="2"/><rect x="10" y="16" width="28" height="26" rx="2"/><path d="M20 26 H28"/>`,
410
- publish: l`<path d="M24 6 V28 M24 6 L16 14 M24 6 L32 14"/><path d="M8 32 V38 A2 2 0 0 0 10 40 H38 A2 2 0 0 0 40 38 V32"/>`,
411
- changelog: l`<path d="M10 6 H28 L36 14 V42 H10 Z"/><path d="M28 6 V14 H36"/><path d="M16 24 H24"/><circle cx="34" cy="34" r="7"/><path d="M34 30 V34 L37 36"/>`,
412
- vulnerability: l`<path d="M24 6 L40 12 V22 C40 33 33 40 24 43 C15 40 8 33 8 22 V12 Z"/><path d="M24 16 V26"/><circle cx="24" cy="32" r="1.8" fill="currentColor" stroke="none"/>`,
413
- gauge: l`<path d="M6 34 A18 18 0 0 1 42 34"/><path d="M24 34 L34 20"/><circle cx="24" cy="34" r="2.2" fill="currentColor" stroke="none"/>`,
414
- "file-tree": l`<path d="M6 12 H18 L22 17 H42 V38 H6 Z"/><path d="M26 24 H36 M26 30 H36"/>`,
415
- "check-circle": l`<circle cx="24" cy="24" r="17"/><path d="M15 24 L21 30 L33 17"/>`,
416
- "x-circle": l`<circle cx="24" cy="24" r="17"/><path d="M18 18 L30 30 M30 18 L18 30"/>`,
417
- fork: l`<circle cx="14" cy="10" r="4"/><circle cx="34" cy="10" r="4"/><circle cx="24" cy="38" r="4"/><path d="M14 14 V22 L24 32 M34 14 V22 L24 32 M24 32 V34"/>`,
418
- trending: l`<path d="M6 34 L18 22 L26 28 L42 10"/><path d="M32 10 H42 V20"/>`,
419
- collection: l`<rect x="10" y="6" width="28" height="10" rx="2"/><rect x="6" y="19" width="36" height="10" rx="2"/><rect x="10" y="32" width="28" height="10" rx="2"/>`,
405
+ module: c`<rect x="8" y="16" width="32" height="24" rx="3"/><path d="M8 24 H40"/><path d="M20 16 L24 24 L28 16"/>`,
406
+ tag: c`<path d="M6 10 H26 L42 26 L26 42 H6 Z"/><circle cx="15" cy="19" r="3" fill="currentColor" stroke="none"/>`,
407
+ dependency: c`<rect x="6" y="19" width="20" height="10" rx="5"/><rect x="22" y="19" width="20" height="10" rx="5"/>`,
408
+ verified: c`<path d="M24 5 L31 10 L39 9 L40 17 L46 24 L40 31 L39 39 L31 38 L24 43 L17 38 L9 39 L8 31 L2 24 L8 17 L9 9 L17 10 Z"/><path d="M16 24 L21 29 L32 18"/>`,
409
+ archived: c`<rect x="6" y="6" width="36" height="10" rx="2"/><rect x="10" y="16" width="28" height="26" rx="2"/><path d="M20 26 H28"/>`,
410
+ publish: c`<path d="M24 6 V28 M24 6 L16 14 M24 6 L32 14"/><path d="M8 32 V38 A2 2 0 0 0 10 40 H38 A2 2 0 0 0 40 38 V32"/>`,
411
+ changelog: c`<path d="M10 6 H28 L36 14 V42 H10 Z"/><path d="M28 6 V14 H36"/><path d="M16 24 H24"/><circle cx="34" cy="34" r="7"/><path d="M34 30 V34 L37 36"/>`,
412
+ vulnerability: c`<path d="M24 6 L40 12 V22 C40 33 33 40 24 43 C15 40 8 33 8 22 V12 Z"/><path d="M24 16 V26"/><circle cx="24" cy="32" r="1.8" fill="currentColor" stroke="none"/>`,
413
+ gauge: c`<path d="M6 34 A18 18 0 0 1 42 34"/><path d="M24 34 L34 20"/><circle cx="24" cy="34" r="2.2" fill="currentColor" stroke="none"/>`,
414
+ "file-tree": c`<path d="M6 12 H18 L22 17 H42 V38 H6 Z"/><path d="M26 24 H36 M26 30 H36"/>`,
415
+ "check-circle": c`<circle cx="24" cy="24" r="17"/><path d="M15 24 L21 30 L33 17"/>`,
416
+ "x-circle": c`<circle cx="24" cy="24" r="17"/><path d="M18 18 L30 30 M30 18 L18 30"/>`,
417
+ fork: c`<circle cx="14" cy="10" r="4"/><circle cx="34" cy="10" r="4"/><circle cx="24" cy="38" r="4"/><path d="M14 14 V22 L24 32 M34 14 V22 L24 32 M24 32 V34"/>`,
418
+ trending: c`<path d="M6 34 L18 22 L26 28 L42 10"/><path d="M32 10 H42 V20"/>`,
419
+ collection: c`<rect x="10" y="6" width="28" height="10" rx="2"/><rect x="6" y="19" width="36" height="10" rx="2"/><rect x="10" y="32" width="28" height="10" rx="2"/>`,
420
420
  // Phase 4: fleet console (Puppet Enterprise replacement) ---------------
421
- dashboard: l`<rect x="6" y="6" width="18" height="14" rx="2"/><rect x="28" y="6" width="14" height="8" rx="2"/><rect x="28" y="18" width="14" height="14" rx="2"/><rect x="6" y="24" width="18" height="18" rx="2"/>`,
422
- node: l`<rect x="10" y="14" width="28" height="20" rx="3"/><path d="M16 22 H22 M16 27 H22"/><circle cx="32" cy="24" r="2" fill="currentColor" stroke="none"/>`,
423
- "node-group": l`<rect x="6" y="10" width="24" height="9" rx="2"/><rect x="12" y="21" width="24" height="9" rx="2"/><rect x="18" y="32" width="24" height="9" rx="2"/>`,
424
- pulse: l`<path d="M4 24 H14 L19 12 L27 36 L32 24 H44"/>`,
425
- compliance: l`<rect x="9" y="6" width="30" height="36" rx="3"/><path d="M16 16 L19 19 L26 12 M16 26 L19 29 L26 22 M16 36 H30"/>`,
426
- report: l`<path d="M10 6 H28 L36 14 V42 H10 Z"/><path d="M28 6 V14 H36"/><path d="M16 34 V28 M22 34 V24 M28 34 V30"/>`,
427
- "activity-log": l`<path d="M14 8 V40"/><circle cx="14" cy="12" r="3" fill="currentColor" stroke="none"/><circle cx="14" cy="24" r="3" fill="currentColor" stroke="none"/><circle cx="14" cy="36" r="3" fill="currentColor" stroke="none"/><path d="M22 12 H40 M22 24 H40 M22 36 H34"/>`,
428
- bell: l`<path d="M12 32 V22 A12 12 0 0 1 36 22 V32 L40 38 H8 Z"/><path d="M20 38 A4 4 0 0 0 28 38"/>`,
429
- orchestrate: l`<circle cx="24" cy="24" r="17"/><path d="M19 15 L33 24 L19 33 Z"/>`,
430
- plan: l`<rect x="6" y="8" width="24" height="32" rx="3"/><path d="M12 16 H24 M12 22 H24 M12 28 H20"/><path d="M32 24 H44 M38 18 L44 24 L38 30"/>`,
431
- badge: l`<rect x="6" y="10" width="36" height="28" rx="3"/><circle cx="17" cy="21" r="5"/><path d="M10 32 C10 26 13 24 17 24 C21 24 24 26 24 32"/><path d="M30 18 H38 M30 24 H38 M30 30 H36"/>`,
432
- audit: l`<path d="M10 6 H26 L34 14 V42 H10 Z"/><path d="M26 6 V14 H34"/><path d="M16 24 H24 M16 30 H22"/><circle cx="33" cy="33" r="6"/><path d="M37.5 37.5 L43 43"/>`,
433
- key: l`<circle cx="16" cy="24" r="9"/><path d="M23 24 H42 M34 24 V31 M40 24 V29"/>`,
434
- layers: l`<path d="M24 6 L44 16 L24 26 L4 16 Z"/><path d="M4 26 L24 36 L44 26"/><path d="M4 34 L24 44 L44 34"/>`,
435
- classifier: l`<path d="M6 10 H24 L40 26 L24 42 H6 Z"/><circle cx="14" cy="18" r="3" fill="currentColor" stroke="none"/><circle cx="32" cy="26" r="3" fill="currentColor" stroke="none"/>`,
436
- deploy: l`<path d="M24 8 V34"/><path d="M24 8 L15 20 M24 8 L33 20"/><path d="M10 40 H38"/>`,
437
- metrics: l`<path d="M6 40 H42"/><path d="M6 40 V6"/><path d="M10 30 L18 22 L26 27 L38 12"/>`,
438
- schedule: l`<rect x="6" y="10" width="28" height="30" rx="3"/><path d="M6 18 H34"/><path d="M14 6 V14 M26 6 V14"/><circle cx="34" cy="34" r="10"/><path d="M34 28 V34 L38 37"/>`,
439
- backup: l`<path d="M24 6 V26 M24 26 L16 18 M24 26 L32 18"/><rect x="8" y="30" width="32" height="12" rx="2"/><path d="M8 36 H40"/>`,
440
- webhook: l`<circle cx="12" cy="14" r="6"/><circle cx="36" cy="34" r="6"/><path d="M17 17 L31 31"/><path d="M22 22 L20 28 L26 26 L24 32"/>`,
441
- organization: l`<rect x="10" y="10" width="28" height="32" rx="2"/><path d="M17 18 H21 M27 18 H31 M17 26 H21 M27 26 H31 M17 34 H21 M27 34 H31"/>`,
442
- drift: l`<rect x="6" y="12" width="20" height="20" rx="3"/><rect x="22" y="16" width="20" height="20" rx="3"/><path d="M20 24 H28"/>`,
421
+ dashboard: c`<rect x="6" y="6" width="18" height="14" rx="2"/><rect x="28" y="6" width="14" height="8" rx="2"/><rect x="28" y="18" width="14" height="14" rx="2"/><rect x="6" y="24" width="18" height="18" rx="2"/>`,
422
+ node: c`<rect x="10" y="14" width="28" height="20" rx="3"/><path d="M16 22 H22 M16 27 H22"/><circle cx="32" cy="24" r="2" fill="currentColor" stroke="none"/>`,
423
+ "node-group": c`<rect x="6" y="10" width="24" height="9" rx="2"/><rect x="12" y="21" width="24" height="9" rx="2"/><rect x="18" y="32" width="24" height="9" rx="2"/>`,
424
+ pulse: c`<path d="M4 24 H14 L19 12 L27 36 L32 24 H44"/>`,
425
+ compliance: c`<rect x="9" y="6" width="30" height="36" rx="3"/><path d="M16 16 L19 19 L26 12 M16 26 L19 29 L26 22 M16 36 H30"/>`,
426
+ report: c`<path d="M10 6 H28 L36 14 V42 H10 Z"/><path d="M28 6 V14 H36"/><path d="M16 34 V28 M22 34 V24 M28 34 V30"/>`,
427
+ "activity-log": c`<path d="M14 8 V40"/><circle cx="14" cy="12" r="3" fill="currentColor" stroke="none"/><circle cx="14" cy="24" r="3" fill="currentColor" stroke="none"/><circle cx="14" cy="36" r="3" fill="currentColor" stroke="none"/><path d="M22 12 H40 M22 24 H40 M22 36 H34"/>`,
428
+ bell: c`<path d="M12 32 V22 A12 12 0 0 1 36 22 V32 L40 38 H8 Z"/><path d="M20 38 A4 4 0 0 0 28 38"/>`,
429
+ orchestrate: c`<circle cx="24" cy="24" r="17"/><path d="M19 15 L33 24 L19 33 Z"/>`,
430
+ plan: c`<rect x="6" y="8" width="24" height="32" rx="3"/><path d="M12 16 H24 M12 22 H24 M12 28 H20"/><path d="M32 24 H44 M38 18 L44 24 L38 30"/>`,
431
+ badge: c`<rect x="6" y="10" width="36" height="28" rx="3"/><circle cx="17" cy="21" r="5"/><path d="M10 32 C10 26 13 24 17 24 C21 24 24 26 24 32"/><path d="M30 18 H38 M30 24 H38 M30 30 H36"/>`,
432
+ audit: c`<path d="M10 6 H26 L34 14 V42 H10 Z"/><path d="M26 6 V14 H34"/><path d="M16 24 H24 M16 30 H22"/><circle cx="33" cy="33" r="6"/><path d="M37.5 37.5 L43 43"/>`,
433
+ key: c`<circle cx="16" cy="24" r="9"/><path d="M23 24 H42 M34 24 V31 M40 24 V29"/>`,
434
+ layers: c`<path d="M24 6 L44 16 L24 26 L4 16 Z"/><path d="M4 26 L24 36 L44 26"/><path d="M4 34 L24 44 L44 34"/>`,
435
+ classifier: c`<path d="M6 10 H24 L40 26 L24 42 H6 Z"/><circle cx="14" cy="18" r="3" fill="currentColor" stroke="none"/><circle cx="32" cy="26" r="3" fill="currentColor" stroke="none"/>`,
436
+ deploy: c`<path d="M24 8 V34"/><path d="M24 8 L15 20 M24 8 L33 20"/><path d="M10 40 H38"/>`,
437
+ metrics: c`<path d="M6 40 H42"/><path d="M6 40 V6"/><path d="M10 30 L18 22 L26 27 L38 12"/>`,
438
+ schedule: c`<rect x="6" y="10" width="28" height="30" rx="3"/><path d="M6 18 H34"/><path d="M14 6 V14 M26 6 V14"/><circle cx="34" cy="34" r="10"/><path d="M34 28 V34 L38 37"/>`,
439
+ backup: c`<path d="M24 6 V26 M24 26 L16 18 M24 26 L32 18"/><rect x="8" y="30" width="32" height="12" rx="2"/><path d="M8 36 H40"/>`,
440
+ webhook: c`<circle cx="12" cy="14" r="6"/><circle cx="36" cy="34" r="6"/><path d="M17 17 L31 31"/><path d="M22 22 L20 28 L26 26 L24 32"/>`,
441
+ organization: c`<rect x="10" y="10" width="28" height="32" rx="2"/><path d="M17 18 H21 M27 18 H31 M17 26 H21 M27 26 H31 M17 34 H21 M27 34 H31"/>`,
442
+ drift: c`<rect x="6" y="12" width="20" height="20" rx="3"/><rect x="22" y="16" width="20" height="20" rx="3"/><path d="M20 24 H28"/>`,
443
443
  // Added later: consolidated from docs pages that predated vox-icon ------
444
- blocks: l`<rect x="7" y="7" width="15" height="15" rx="2.5"/><rect x="26" y="7" width="15" height="15" rx="2.5"/><rect x="7" y="26" width="15" height="15" rx="2.5"/><rect x="26" y="26" width="15" height="15" rx="2.5"/>`,
445
- plug: l`<path d="M16 6 V18 M32 6 V18 M12 18 H36 V28 C36 34 30 38 24 38 C18 38 12 34 12 28 Z"/><path d="M24 38 V44"/>`,
446
- ballot: l`<rect x="8" y="18" width="32" height="24" rx="2.5"/><path d="M8 26 H40"/><path d="M24 10 V26"/><path d="M18 6 L24 12 L30 6"/>`,
447
- sun: l`<circle cx="24" cy="24" r="8"/><path d="M24 4v4M24 40v4M9.86 9.86l2.82 2.82M35.32 35.32l2.82 2.82M4 24h4M40 24h4M12.68 35.32l-2.82 2.82M38.14 9.86l-2.82 2.82"/>`,
448
- moon: l`<path d="M42 25.58A18 18 0 1 1 22.42 6 14 14 0 0 0 42 25.58Z"/>`,
449
- github: l`<g transform="translate(4,4) scale(2.5)" fill="currentColor" stroke="none"><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z"/></g>`,
450
- accessibility: l`<circle cx="24" cy="24" r="18"/><circle cx="24" cy="16" r="2.6" fill="currentColor" stroke="none"/><path d="M14 21 H34 M24 21 V32 M24 25 L18 34 M24 25 L30 34"/>`,
451
- settings: l`<circle cx="24" cy="24" r="7"/><path d="M24 6 V12 M24 36 V42 M6 24 H12 M36 24 H42 M11 11 L15.2 15.2 M32.8 32.8 L37 37 M37 11 L32.8 15.2 M15.2 32.8 L11 37"/>`
444
+ blocks: c`<rect x="7" y="7" width="15" height="15" rx="2.5"/><rect x="26" y="7" width="15" height="15" rx="2.5"/><rect x="7" y="26" width="15" height="15" rx="2.5"/><rect x="26" y="26" width="15" height="15" rx="2.5"/>`,
445
+ plug: c`<path d="M16 6 V18 M32 6 V18 M12 18 H36 V28 C36 34 30 38 24 38 C18 38 12 34 12 28 Z"/><path d="M24 38 V44"/>`,
446
+ ballot: c`<rect x="8" y="18" width="32" height="24" rx="2.5"/><path d="M8 26 H40"/><path d="M24 10 V26"/><path d="M18 6 L24 12 L30 6"/>`,
447
+ sun: c`<circle cx="24" cy="24" r="8"/><path d="M24 4v4M24 40v4M9.86 9.86l2.82 2.82M35.32 35.32l2.82 2.82M4 24h4M40 24h4M12.68 35.32l-2.82 2.82M38.14 9.86l-2.82 2.82"/>`,
448
+ moon: c`<path d="M42 25.58A18 18 0 1 1 22.42 6 14 14 0 0 0 42 25.58Z"/>`,
449
+ github: c`<g transform="translate(4,4) scale(2.5)" fill="currentColor" stroke="none"><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z"/></g>`,
450
+ accessibility: c`<circle cx="24" cy="24" r="18"/><circle cx="24" cy="16" r="2.6" fill="currentColor" stroke="none"/><path d="M14 21 H34 M24 21 V32 M24 25 L18 34 M24 25 L30 34"/>`,
451
+ settings: c`<circle cx="24" cy="24" r="7"/><path d="M24 6 V12 M24 36 V42 M6 24 H12 M36 24 H42 M11 11 L15.2 15.2 M32.8 32.8 L37 37 M37 11 L32.8 15.2 M15.2 32.8 L11 37"/>`
452
452
  };
453
- var Ot = Object.defineProperty, Mt = Object.getOwnPropertyDescriptor, Ve = (o, t, a, r) => {
454
- for (var e = r > 1 ? void 0 : r ? Mt(t, a) : t, s = o.length - 1, i; s >= 0; s--)
455
- (i = o[s]) && (e = (r ? i(t, a, e) : i(e)) || e);
456
- return r && e && Ot(t, a, e), e;
453
+ var Do = Object.defineProperty, Eo = Object.getOwnPropertyDescriptor, He = (t, o, a, r) => {
454
+ for (var e = r > 1 ? void 0 : r ? Eo(o, a) : o, s = t.length - 1, i; s >= 0; s--)
455
+ (i = t[s]) && (e = (r ? i(o, a, e) : i(e)) || e);
456
+ return r && e && Do(o, a, e), e;
457
457
  };
458
- let E = class extends h {
458
+ let j = class extends p {
459
459
  constructor() {
460
460
  super(...arguments), this.name = "info", this.size = "md";
461
461
  }
462
462
  render() {
463
- const o = y[this.name];
464
- return o ? c`
463
+ const t = m[this.name];
464
+ return t ? l`
465
465
  <svg
466
466
  viewBox="0 0 48 48"
467
467
  fill="none"
@@ -473,12 +473,12 @@ let E = class extends h {
473
473
  aria-hidden=${this.label ? v : "true"}
474
474
  aria-label=${this.label ?? v}
475
475
  >
476
- ${o}
476
+ ${t}
477
477
  </svg>
478
478
  ` : v;
479
479
  }
480
480
  };
481
- E.styles = d`
481
+ j.styles = d`
482
482
  :host {
483
483
  display: inline-flex;
484
484
  flex: none;
@@ -509,26 +509,26 @@ E.styles = d`
509
509
  height: 48px;
510
510
  }
511
511
  `;
512
- Ve([
512
+ He([
513
513
  n()
514
- ], E.prototype, "name", 2);
515
- Ve([
514
+ ], j.prototype, "name", 2);
515
+ He([
516
516
  n({ reflect: !0 })
517
- ], E.prototype, "size", 2);
518
- Ve([
517
+ ], j.prototype, "size", 2);
518
+ He([
519
519
  n()
520
- ], E.prototype, "label", 2);
521
- E = Ve([
522
- p("vox-icon")
523
- ], E);
524
- var kt = Object.defineProperty, N = (o, t, a, r) => {
525
- for (var e = void 0, s = o.length - 1, i; s >= 0; s--)
526
- (i = o[s]) && (e = i(t, a, e) || e);
527
- return e && kt(t, a, e), e;
520
+ ], j.prototype, "label", 2);
521
+ j = He([
522
+ h("vox-icon")
523
+ ], j);
524
+ var Ho = Object.defineProperty, ce = (t, o, a, r) => {
525
+ for (var e = void 0, s = t.length - 1, i; s >= 0; s--)
526
+ (i = t[s]) && (e = i(o, a, e) || e);
527
+ return e && Ho(o, a, e), e;
528
528
  };
529
- const it = class it extends h {
529
+ const xo = class xo extends p {
530
530
  constructor() {
531
- super(), this.invalid = !1, this.name = "", this.label = "", this.note = "", this.disabled = !1, this.required = !1, this.internals = this.attachInternals();
531
+ super(), this.name = "", this.label = "", this.note = "", this.disabled = !1, this.required = !1, this.internals = this.attachInternals();
532
532
  }
533
533
  get form() {
534
534
  return this.internals.form;
@@ -546,45 +546,38 @@ const it = class it extends h {
546
546
  return this.internals.reportValidity();
547
547
  }
548
548
  /** Mirror a native inner control's validity onto the host element. */
549
- syncValidity(t) {
550
- this.internals.setValidity(t.validity, t.validationMessage, t), this.invalid = !t.validity.valid;
549
+ syncValidity(o) {
550
+ this.internals.setValidity(o.validity, o.validationMessage, o);
551
551
  }
552
- renderLabel(t) {
553
- return this.label ? c`
554
- <label class="label" for=${t}>
555
- ${this.label}${this.required ? c`<span class="required-mark" aria-hidden="true"> *</span>` : v}
552
+ renderLabel(o) {
553
+ return this.label ? l`
554
+ <label class="label" for=${o}>
555
+ ${this.label}${this.required ? l`<span class="required-mark" aria-hidden="true"> *</span>` : v}
556
556
  </label>
557
557
  ` : v;
558
558
  }
559
- /** `note`'s id when present, for `aria-describedby` on the native control. */
560
- get noteId() {
561
- return this.note ? "note" : void 0;
562
- }
563
559
  renderNote() {
564
- return this.note ? c`<p class="note" id="note">${this.note}</p>` : v;
560
+ return this.note ? l`<p class="note">${this.note}</p>` : v;
565
561
  }
566
562
  };
567
- it.formAssociated = !0;
568
- let x = it;
569
- N([
570
- le()
571
- ], x.prototype, "invalid");
572
- N([
563
+ xo.formAssociated = !0;
564
+ let x = xo;
565
+ ce([
573
566
  n()
574
567
  ], x.prototype, "name");
575
- N([
568
+ ce([
576
569
  n()
577
570
  ], x.prototype, "label");
578
- N([
571
+ ce([
579
572
  n()
580
573
  ], x.prototype, "note");
581
- N([
574
+ ce([
582
575
  n({ type: Boolean, reflect: !0 })
583
576
  ], x.prototype, "disabled");
584
- N([
577
+ ce([
585
578
  n({ type: Boolean, reflect: !0 })
586
579
  ], x.prototype, "required");
587
- const ce = d`
580
+ const de = d`
588
581
  :host {
589
582
  display: block;
590
583
  font-family: var(--vox-font-family-base);
@@ -639,15 +632,6 @@ const ce = d`
639
632
  box-shadow: 0 0 0 3px var(--vox-color-brand-soft);
640
633
  }
641
634
 
642
- .control[aria-invalid='true'] {
643
- border-color: var(--vox-color-danger-1);
644
- }
645
-
646
- .control[aria-invalid='true']:focus {
647
- border-color: var(--vox-color-danger-1);
648
- box-shadow: 0 0 0 3px var(--vox-color-danger-soft);
649
- }
650
-
651
635
  /* Corner flattening when placed inside a <vox-input-group>. */
652
636
  :host([data-vox-group]) .control {
653
637
  border-radius: 0;
@@ -660,7 +644,7 @@ const ce = d`
660
644
  :host([data-vox-group='end']) .control {
661
645
  border-radius: 0 var(--vox-radius-md) var(--vox-radius-md) 0;
662
646
  }
663
- `, pt = d`
647
+ `, bo = d`
664
648
  :host {
665
649
  display: block;
666
650
  font-family: var(--vox-font-family-base);
@@ -689,12 +673,12 @@ const ce = d`
689
673
  margin: 0;
690
674
  }
691
675
  `;
692
- var Lt = Object.defineProperty, Pt = Object.getOwnPropertyDescriptor, Ke = (o, t, a, r) => {
693
- for (var e = r > 1 ? void 0 : r ? Pt(t, a) : t, s = o.length - 1, i; s >= 0; s--)
694
- (i = o[s]) && (e = (r ? i(t, a, e) : i(e)) || e);
695
- return r && e && Lt(t, a, e), e;
676
+ var So = Object.defineProperty, Ao = Object.getOwnPropertyDescriptor, eo = (t, o, a, r) => {
677
+ for (var e = r > 1 ? void 0 : r ? Ao(o, a) : o, s = t.length - 1, i; s >= 0; s--)
678
+ (i = t[s]) && (e = (r ? i(o, a, e) : i(e)) || e);
679
+ return r && e && So(o, a, e), e;
696
680
  };
697
- let Z = class extends x {
681
+ let R = class extends x {
698
682
  constructor() {
699
683
  super(...arguments), this.checked = !1, this.value = "on";
700
684
  }
@@ -702,24 +686,22 @@ let Z = class extends x {
702
686
  this.checked = !1;
703
687
  }
704
688
  updated() {
705
- this.internals.setFormValue(this.checked ? this.value : null), this.invalid = this.required && !this.checked, this.internals.setValidity(
706
- this.invalid ? { valueMissing: !0 } : {},
689
+ this.internals.setFormValue(this.checked ? this.value : null), this.internals.setValidity(
690
+ this.required && !this.checked ? { valueMissing: !0 } : {},
707
691
  "Please check this box.",
708
692
  this.renderRoot.querySelector("input") ?? void 0
709
693
  );
710
694
  }
711
- handleChange(o) {
712
- this.checked = o.target.checked, this.dispatchEvent(new Event("change", { bubbles: !0 }));
695
+ handleChange(t) {
696
+ this.checked = t.target.checked, this.dispatchEvent(new Event("change", { bubbles: !0 }));
713
697
  }
714
698
  render() {
715
- return c`
699
+ return l`
716
700
  <label class="check">
717
701
  <input
718
702
  type="checkbox"
719
703
  .checked=${this.checked}
720
704
  ?disabled=${this.disabled}
721
- ?required=${this.required}
722
- aria-invalid=${this.invalid ? "true" : "false"}
723
705
  @change=${this.handleChange}
724
706
  />
725
707
  <span class="box" aria-hidden="true">
@@ -732,8 +714,8 @@ let Z = class extends x {
732
714
  `;
733
715
  }
734
716
  };
735
- Z.styles = [
736
- pt,
717
+ R.styles = [
718
+ bo,
737
719
  d`
738
720
  .box {
739
721
  flex: none;
@@ -773,21 +755,21 @@ Z.styles = [
773
755
  }
774
756
  `
775
757
  ];
776
- Ke([
758
+ eo([
777
759
  n({ type: Boolean, reflect: !0 })
778
- ], Z.prototype, "checked", 2);
779
- Ke([
760
+ ], R.prototype, "checked", 2);
761
+ eo([
780
762
  n()
781
- ], Z.prototype, "value", 2);
782
- Z = Ke([
783
- p("vox-checkbox")
784
- ], Z);
785
- var Vt = Object.defineProperty, jt = Object.getOwnPropertyDescriptor, T = (o, t, a, r) => {
786
- for (var e = r > 1 ? void 0 : r ? jt(t, a) : t, s = o.length - 1, i; s >= 0; s--)
787
- (i = o[s]) && (e = (r ? i(t, a, e) : i(e)) || e);
788
- return r && e && Vt(t, a, e), e;
763
+ ], R.prototype, "value", 2);
764
+ R = eo([
765
+ h("vox-checkbox")
766
+ ], R);
767
+ var Bo = Object.defineProperty, qo = Object.getOwnPropertyDescriptor, I = (t, o, a, r) => {
768
+ for (var e = r > 1 ? void 0 : r ? qo(o, a) : o, s = t.length - 1, i; s >= 0; s--)
769
+ (i = t[s]) && (e = (r ? i(o, a, e) : i(e)) || e);
770
+ return r && e && Bo(o, a, e), e;
789
771
  };
790
- let b = class extends x {
772
+ let g = class extends x {
791
773
  constructor() {
792
774
  super(...arguments), this.multiple = !1, this.buttonLabel = "Choose a file", this.fileNames = [];
793
775
  }
@@ -795,29 +777,27 @@ let b = class extends x {
795
777
  this.fileNames = [], this.inputEl && (this.inputEl.value = ""), this.internals.setFormValue(null);
796
778
  }
797
779
  handleChange() {
798
- const o = [...this.inputEl.files ?? []];
799
- this.fileNames = o.map((a) => a.name);
800
- const t = new FormData();
801
- for (const a of o) t.append(this.name, a);
802
- this.internals.setFormValue(o.length > 0 ? t : null), this.invalid = this.required && o.length === 0, this.internals.setValidity(
803
- this.invalid ? { valueMissing: !0 } : {},
780
+ const t = [...this.inputEl.files ?? []];
781
+ this.fileNames = t.map((a) => a.name);
782
+ const o = new FormData();
783
+ for (const a of t) o.append(this.name, a);
784
+ this.internals.setFormValue(t.length > 0 ? o : null), this.internals.setValidity(
785
+ this.required && t.length === 0 ? { valueMissing: !0 } : {},
804
786
  "Please select a file.",
805
787
  this.inputEl
806
788
  ), this.dispatchEvent(new Event("change", { bubbles: !0 }));
807
789
  }
808
790
  render() {
809
- return c`
791
+ return l`
810
792
  <div class="field">
811
793
  ${this.renderLabel("file")}
812
794
  <label>
813
795
  <input
814
796
  id="file"
815
797
  type="file"
816
- accept=${u(this.accept)}
798
+ accept=${L(this.accept)}
817
799
  ?multiple=${this.multiple}
818
800
  ?disabled=${this.disabled}
819
- aria-describedby=${u(this.noteId)}
820
- aria-invalid=${this.invalid ? "true" : "false"}
821
801
  @change=${this.handleChange}
822
802
  />
823
803
  <span class="picker">
@@ -832,8 +812,8 @@ let b = class extends x {
832
812
  `;
833
813
  }
834
814
  };
835
- b.styles = [
836
- ce,
815
+ g.styles = [
816
+ de,
837
817
  d`
838
818
  input {
839
819
  position: absolute;
@@ -882,30 +862,30 @@ b.styles = [
882
862
  }
883
863
  `
884
864
  ];
885
- T([
865
+ I([
886
866
  n()
887
- ], b.prototype, "accept", 2);
888
- T([
867
+ ], g.prototype, "accept", 2);
868
+ I([
889
869
  n({ type: Boolean })
890
- ], b.prototype, "multiple", 2);
891
- T([
870
+ ], g.prototype, "multiple", 2);
871
+ I([
892
872
  n({ attribute: "button-label" })
893
- ], b.prototype, "buttonLabel", 2);
894
- T([
895
- le()
896
- ], b.prototype, "fileNames", 2);
897
- T([
898
- Ze("input")
899
- ], b.prototype, "inputEl", 2);
900
- b = T([
901
- p("vox-file-input")
902
- ], b);
903
- var Dt = Object.defineProperty, zt = Object.getOwnPropertyDescriptor, F = (o, t, a, r) => {
904
- for (var e = r > 1 ? void 0 : r ? zt(t, a) : t, s = o.length - 1, i; s >= 0; s--)
905
- (i = o[s]) && (e = (r ? i(t, a, e) : i(e)) || e);
906
- return r && e && Dt(t, a, e), e;
873
+ ], g.prototype, "buttonLabel", 2);
874
+ I([
875
+ De()
876
+ ], g.prototype, "fileNames", 2);
877
+ I([
878
+ Qe("input")
879
+ ], g.prototype, "inputEl", 2);
880
+ g = I([
881
+ h("vox-file-input")
882
+ ], g);
883
+ var Io = Object.defineProperty, No = Object.getOwnPropertyDescriptor, N = (t, o, a, r) => {
884
+ for (var e = r > 1 ? void 0 : r ? No(o, a) : o, s = t.length - 1, i; s >= 0; s--)
885
+ (i = t[s]) && (e = (r ? i(o, a, e) : i(e)) || e);
886
+ return r && e && Io(o, a, e), e;
907
887
  };
908
- let m = class extends x {
888
+ let b = class extends x {
909
889
  constructor() {
910
890
  super(...arguments), this.type = "text", this.value = "", this.readonly = !1;
911
891
  }
@@ -914,36 +894,34 @@ let m = class extends x {
914
894
  }
915
895
  updated() {
916
896
  this.internals.setFormValue(this.value);
917
- const o = this.renderRoot.querySelector("input");
918
- o && this.syncValidity(o);
897
+ const t = this.renderRoot.querySelector("input");
898
+ t && this.syncValidity(t);
919
899
  }
920
- focus(o) {
921
- var t;
922
- (t = this.renderRoot.querySelector("input")) == null || t.focus(o);
900
+ focus(t) {
901
+ var o;
902
+ (o = this.renderRoot.querySelector("input")) == null || o.focus(t);
923
903
  }
924
- handleInput(o) {
925
- this.value = o.target.value;
904
+ handleInput(t) {
905
+ this.value = t.target.value;
926
906
  }
927
907
  handleChange() {
928
908
  this.dispatchEvent(new Event("change", { bubbles: !0 }));
929
909
  }
930
910
  render() {
931
- return c`
911
+ return l`
932
912
  <div class="field">
933
913
  ${this.renderLabel("input")}
934
914
  <input
935
915
  id="input"
936
916
  class="control"
937
917
  type=${this.type}
938
- .value=${dt(this.value)}
939
- placeholder=${u(this.placeholder)}
940
- autocomplete=${u(this.autocomplete)}
918
+ .value=${go(this.value)}
919
+ placeholder=${L(this.placeholder)}
920
+ autocomplete=${L(this.autocomplete)}
941
921
  ?required=${this.required}
942
922
  ?readonly=${this.readonly}
943
923
  ?disabled=${this.disabled}
944
924
  aria-label=${this.label ? v : "text input"}
945
- aria-describedby=${u(this.noteId)}
946
- aria-invalid=${this.invalid ? "true" : "false"}
947
925
  @input=${this.handleInput}
948
926
  @change=${this.handleChange}
949
927
  />
@@ -952,47 +930,47 @@ let m = class extends x {
952
930
  `;
953
931
  }
954
932
  };
955
- m.styles = ce;
956
- F([
933
+ b.styles = de;
934
+ N([
957
935
  n()
958
- ], m.prototype, "type", 2);
959
- F([
936
+ ], b.prototype, "type", 2);
937
+ N([
960
938
  n()
961
- ], m.prototype, "value", 2);
962
- F([
939
+ ], b.prototype, "value", 2);
940
+ N([
963
941
  n()
964
- ], m.prototype, "placeholder", 2);
965
- F([
942
+ ], b.prototype, "placeholder", 2);
943
+ N([
966
944
  n()
967
- ], m.prototype, "autocomplete", 2);
968
- F([
945
+ ], b.prototype, "autocomplete", 2);
946
+ N([
969
947
  n({ type: Boolean, reflect: !0 })
970
- ], m.prototype, "readonly", 2);
971
- m = F([
972
- p("vox-input")
973
- ], m);
974
- var Et = Object.getOwnPropertyDescriptor, Ht = (o, t, a, r) => {
975
- for (var e = r > 1 ? void 0 : r ? Et(t, a) : t, s = o.length - 1, i; s >= 0; s--)
976
- (i = o[s]) && (e = i(e) || e);
948
+ ], b.prototype, "readonly", 2);
949
+ b = N([
950
+ h("vox-input")
951
+ ], b);
952
+ var To = Object.getOwnPropertyDescriptor, Ro = (t, o, a, r) => {
953
+ for (var e = r > 1 ? void 0 : r ? To(o, a) : o, s = t.length - 1, i; s >= 0; s--)
954
+ (i = t[s]) && (e = i(e) || e);
977
955
  return e;
978
956
  };
979
- let Ie = class extends h {
980
- handleSlotChange(o) {
981
- const t = o.target.assignedElements();
982
- t.forEach((a, r) => {
983
- const e = r === 0 ? "start" : r === t.length - 1 ? "end" : "middle";
957
+ let Fe = class extends p {
958
+ handleSlotChange(t) {
959
+ const o = t.target.assignedElements();
960
+ o.forEach((a, r) => {
961
+ const e = r === 0 ? "start" : r === o.length - 1 ? "end" : "middle";
984
962
  a.setAttribute("data-vox-group", e);
985
963
  });
986
964
  }
987
965
  render() {
988
- return c`
966
+ return l`
989
967
  <div class="group" role="group">
990
968
  <slot @slotchange=${this.handleSlotChange}></slot>
991
969
  </div>
992
970
  `;
993
971
  }
994
972
  };
995
- Ie.styles = d`
973
+ Fe.styles = d`
996
974
  :host {
997
975
  display: block;
998
976
  font-family: var(--vox-font-family-base);
@@ -1034,15 +1012,15 @@ Ie.styles = d`
1034
1012
  border-left: none;
1035
1013
  }
1036
1014
  `;
1037
- Ie = Ht([
1038
- p("vox-input-group")
1039
- ], Ie);
1040
- var St = Object.defineProperty, At = Object.getOwnPropertyDescriptor, je = (o, t, a, r) => {
1041
- for (var e = r > 1 ? void 0 : r ? At(t, a) : t, s = o.length - 1, i; s >= 0; s--)
1042
- (i = o[s]) && (e = (r ? i(t, a, e) : i(e)) || e);
1043
- return r && e && St(t, a, e), e;
1015
+ Fe = Ro([
1016
+ h("vox-input-group")
1017
+ ], Fe);
1018
+ var Fo = Object.defineProperty, Zo = Object.getOwnPropertyDescriptor, Se = (t, o, a, r) => {
1019
+ for (var e = r > 1 ? void 0 : r ? Zo(o, a) : o, s = t.length - 1, i; s >= 0; s--)
1020
+ (i = t[s]) && (e = (r ? i(o, a, e) : i(e)) || e);
1021
+ return r && e && Fo(o, a, e), e;
1044
1022
  };
1045
- let H = class extends h {
1023
+ let z = class extends p {
1046
1024
  constructor() {
1047
1025
  super(...arguments), this.value = "", this.checked = !1, this.disabled = !1;
1048
1026
  }
@@ -1051,11 +1029,11 @@ let H = class extends h {
1051
1029
  new CustomEvent("vox-radio-select", { bubbles: !0, composed: !0 })
1052
1030
  );
1053
1031
  }
1054
- handleKeydown(o) {
1055
- (o.key === " " || o.key === "Enter") && (o.preventDefault(), this.select());
1032
+ handleKeydown(t) {
1033
+ (t.key === " " || t.key === "Enter") && (t.preventDefault(), this.select());
1056
1034
  }
1057
1035
  render() {
1058
- return c`
1036
+ return l`
1059
1037
  <span
1060
1038
  class="radio"
1061
1039
  role="radio"
@@ -1071,7 +1049,7 @@ let H = class extends h {
1071
1049
  `;
1072
1050
  }
1073
1051
  };
1074
- H.styles = d`
1052
+ z.styles = d`
1075
1053
  :host {
1076
1054
  display: block;
1077
1055
  font-family: var(--vox-font-family-base);
@@ -1120,24 +1098,24 @@ H.styles = d`
1120
1098
  outline-offset: 2px;
1121
1099
  }
1122
1100
  `;
1123
- je([
1101
+ Se([
1124
1102
  n()
1125
- ], H.prototype, "value", 2);
1126
- je([
1103
+ ], z.prototype, "value", 2);
1104
+ Se([
1127
1105
  n({ type: Boolean, reflect: !0 })
1128
- ], H.prototype, "checked", 2);
1129
- je([
1106
+ ], z.prototype, "checked", 2);
1107
+ Se([
1130
1108
  n({ type: Boolean, reflect: !0 })
1131
- ], H.prototype, "disabled", 2);
1132
- H = je([
1133
- p("vox-radio")
1134
- ], H);
1135
- var It = Object.defineProperty, Bt = Object.getOwnPropertyDescriptor, ht = (o, t, a, r) => {
1136
- for (var e = r > 1 ? void 0 : r ? Bt(t, a) : t, s = o.length - 1, i; s >= 0; s--)
1137
- (i = o[s]) && (e = (r ? i(t, a, e) : i(e)) || e);
1138
- return r && e && It(t, a, e), e;
1109
+ ], z.prototype, "disabled", 2);
1110
+ z = Se([
1111
+ h("vox-radio")
1112
+ ], z);
1113
+ var Ko = Object.defineProperty, Uo = Object.getOwnPropertyDescriptor, mo = (t, o, a, r) => {
1114
+ for (var e = r > 1 ? void 0 : r ? Uo(o, a) : o, s = t.length - 1, i; s >= 0; s--)
1115
+ (i = t[s]) && (e = (r ? i(o, a, e) : i(e)) || e);
1116
+ return r && e && Ko(o, a, e), e;
1139
1117
  };
1140
- let me = class extends x {
1118
+ let $e = class extends x {
1141
1119
  constructor() {
1142
1120
  super(...arguments), this.value = "";
1143
1121
  }
@@ -1148,52 +1126,45 @@ let me = class extends x {
1148
1126
  this.value = "";
1149
1127
  }
1150
1128
  updated() {
1151
- this.internals.setFormValue(this.value || null), this.invalid = this.required && !this.value, this.internals.setValidity(
1152
- this.invalid ? { valueMissing: !0 } : {},
1129
+ this.internals.setFormValue(this.value || null), this.internals.setValidity(
1130
+ this.required && !this.value ? { valueMissing: !0 } : {},
1153
1131
  "Please select an option.",
1154
1132
  this
1155
1133
  ), this.syncRadios();
1156
1134
  }
1157
1135
  syncRadios() {
1158
- const o = this.radios, t = o.some((r) => r.value === this.value && this.value !== ""), a = o.find((r) => !r.disabled);
1159
- o.forEach((r) => {
1136
+ const t = this.radios, o = t.some((a) => a.value === this.value && this.value !== "");
1137
+ t.forEach((a, r) => {
1160
1138
  var s, i;
1161
- r.checked = this.value !== "" && r.value === this.value;
1162
- const e = t ? r.checked : r === a;
1163
- (i = (s = r.shadowRoot) == null ? void 0 : s.querySelector(".radio")) == null || i.setAttribute("tabindex", e ? "0" : "-1");
1139
+ a.checked = this.value !== "" && a.value === this.value;
1140
+ const e = o ? a.checked : r === 0;
1141
+ (i = (s = a.shadowRoot) == null ? void 0 : s.querySelector(".radio")) == null || i.setAttribute("tabindex", e ? "0" : "-1");
1164
1142
  });
1165
1143
  }
1166
- handleSelect(o) {
1167
- const t = o.target;
1168
- !(t instanceof HTMLElement) || t.tagName !== "VOX-RADIO" || (o.stopPropagation(), this.value !== t.value && (this.value = t.value, this.dispatchEvent(new Event("change", { bubbles: !0 }))));
1144
+ handleSelect(t) {
1145
+ const o = t.target;
1146
+ !(o instanceof HTMLElement) || o.tagName !== "VOX-RADIO" || (t.stopPropagation(), this.value !== o.value && (this.value = o.value, this.dispatchEvent(new Event("change", { bubbles: !0 }))));
1169
1147
  }
1170
- handleKeydown(o) {
1171
- var nt, lt;
1148
+ handleKeydown(t) {
1149
+ var ye, uo;
1172
1150
  const a = {
1173
1151
  ArrowDown: 1,
1174
1152
  ArrowRight: 1,
1175
1153
  ArrowUp: -1,
1176
1154
  ArrowLeft: -1
1177
- }[o.key];
1155
+ }[t.key];
1178
1156
  if (!a) return;
1179
- o.preventDefault();
1180
- const r = this.radios.filter((Ae) => !Ae.disabled);
1157
+ t.preventDefault();
1158
+ const r = this.radios.filter((Re) => !Re.disabled);
1181
1159
  if (r.length === 0) return;
1182
- const e = r.findIndex((Ae) => Ae.checked), s = (Math.max(e, 0) + a + r.length) % r.length, i = r[s];
1183
- i.select(), (lt = (nt = i.shadowRoot) == null ? void 0 : nt.querySelector(".radio")) == null || lt.focus();
1160
+ const e = r.findIndex((Re) => Re.checked), s = (Math.max(e, 0) + a + r.length) % r.length, i = r[s];
1161
+ i.select(), (uo = (ye = i.shadowRoot) == null ? void 0 : ye.querySelector(".radio")) == null || uo.focus();
1184
1162
  }
1185
1163
  render() {
1186
- return c`
1187
- <div
1188
- class="field"
1189
- role="radiogroup"
1190
- aria-label=${this.label || v}
1191
- aria-describedby=${u(this.noteId)}
1192
- aria-invalid=${this.invalid ? "true" : "false"}
1193
- aria-required=${this.required ? "true" : "false"}
1194
- >
1195
- ${this.label ? c`<span class="label">
1196
- ${this.label}${this.required ? c`<span class="required-mark" aria-hidden="true"> *</span>` : ""}
1164
+ return l`
1165
+ <div class="field" role="radiogroup" aria-label=${this.label}>
1166
+ ${this.label ? l`<span class="label">
1167
+ ${this.label}${this.required ? l`<span class="required-mark" aria-hidden="true"> *</span>` : ""}
1197
1168
  </span>` : ""}
1198
1169
  <div
1199
1170
  class="options"
@@ -1207,8 +1178,8 @@ let me = class extends x {
1207
1178
  `;
1208
1179
  }
1209
1180
  };
1210
- me.styles = [
1211
- ce,
1181
+ $e.styles = [
1182
+ de,
1212
1183
  d`
1213
1184
  .options {
1214
1185
  display: flex;
@@ -1218,18 +1189,18 @@ me.styles = [
1218
1189
  }
1219
1190
  `
1220
1191
  ];
1221
- ht([
1192
+ mo([
1222
1193
  n()
1223
- ], me.prototype, "value", 2);
1224
- me = ht([
1225
- p("vox-radio-group")
1226
- ], me);
1227
- var qt = Object.defineProperty, Nt = Object.getOwnPropertyDescriptor, Ge = (o, t, a, r) => {
1228
- for (var e = r > 1 ? void 0 : r ? Nt(t, a) : t, s = o.length - 1, i; s >= 0; s--)
1229
- (i = o[s]) && (e = (r ? i(t, a, e) : i(e)) || e);
1230
- return r && e && qt(t, a, e), e;
1194
+ ], $e.prototype, "value", 2);
1195
+ $e = mo([
1196
+ h("vox-radio-group")
1197
+ ], $e);
1198
+ var Go = Object.defineProperty, Xo = Object.getOwnPropertyDescriptor, oo = (t, o, a, r) => {
1199
+ for (var e = r > 1 ? void 0 : r ? Xo(o, a) : o, s = t.length - 1, i; s >= 0; s--)
1200
+ (i = t[s]) && (e = (r ? i(o, a, e) : i(e)) || e);
1201
+ return r && e && Go(o, a, e), e;
1231
1202
  };
1232
- let U = class extends x {
1203
+ let F = class extends x {
1233
1204
  constructor() {
1234
1205
  super(...arguments), this.value = "";
1235
1206
  }
@@ -1241,16 +1212,16 @@ let U = class extends x {
1241
1212
  }
1242
1213
  syncOptions() {
1243
1214
  if (!this.selectEl) return;
1244
- const o = this.renderRoot.querySelector("slot");
1245
- o && (this.selectEl.replaceChildren(
1246
- ...o.assignedElements().filter((t) => t instanceof HTMLOptionElement || t instanceof HTMLOptGroupElement).map((t) => t.cloneNode(!0))
1215
+ const t = this.renderRoot.querySelector("slot");
1216
+ t && (this.selectEl.replaceChildren(
1217
+ ...t.assignedElements().filter((o) => o instanceof HTMLOptionElement || o instanceof HTMLOptGroupElement).map((o) => o.cloneNode(!0))
1247
1218
  ), this.value && (this.selectEl.value = this.value), this.value = this.selectEl.value);
1248
1219
  }
1249
1220
  handleChange() {
1250
1221
  this.value = this.selectEl.value, this.dispatchEvent(new Event("change", { bubbles: !0 }));
1251
1222
  }
1252
1223
  render() {
1253
- return c`
1224
+ return l`
1254
1225
  <div class="field">
1255
1226
  ${this.renderLabel("select")}
1256
1227
  <select
@@ -1258,8 +1229,6 @@ let U = class extends x {
1258
1229
  class="control"
1259
1230
  ?required=${this.required}
1260
1231
  ?disabled=${this.disabled}
1261
- aria-describedby=${u(this.noteId)}
1262
- aria-invalid=${this.invalid ? "true" : "false"}
1263
1232
  @change=${this.handleChange}
1264
1233
  ></select>
1265
1234
  ${this.renderNote()}
@@ -1268,8 +1237,8 @@ let U = class extends x {
1268
1237
  `;
1269
1238
  }
1270
1239
  };
1271
- U.styles = [
1272
- ce,
1240
+ F.styles = [
1241
+ de,
1273
1242
  d`
1274
1243
  select.control {
1275
1244
  appearance: none;
@@ -1281,21 +1250,21 @@ U.styles = [
1281
1250
  }
1282
1251
  `
1283
1252
  ];
1284
- Ge([
1253
+ oo([
1285
1254
  n()
1286
- ], U.prototype, "value", 2);
1287
- Ge([
1288
- Ze("select")
1289
- ], U.prototype, "selectEl", 2);
1290
- U = Ge([
1291
- p("vox-select")
1292
- ], U);
1293
- var Tt = Object.defineProperty, Ft = Object.getOwnPropertyDescriptor, Xe = (o, t, a, r) => {
1294
- for (var e = r > 1 ? void 0 : r ? Ft(t, a) : t, s = o.length - 1, i; s >= 0; s--)
1295
- (i = o[s]) && (e = (r ? i(t, a, e) : i(e)) || e);
1296
- return r && e && Tt(t, a, e), e;
1255
+ ], F.prototype, "value", 2);
1256
+ oo([
1257
+ Qe("select")
1258
+ ], F.prototype, "selectEl", 2);
1259
+ F = oo([
1260
+ h("vox-select")
1261
+ ], F);
1262
+ var Jo = Object.defineProperty, Wo = Object.getOwnPropertyDescriptor, to = (t, o, a, r) => {
1263
+ for (var e = r > 1 ? void 0 : r ? Wo(o, a) : o, s = t.length - 1, i; s >= 0; s--)
1264
+ (i = t[s]) && (e = (r ? i(o, a, e) : i(e)) || e);
1265
+ return r && e && Jo(o, a, e), e;
1297
1266
  };
1298
- let K = class extends x {
1267
+ let Z = class extends x {
1299
1268
  constructor() {
1300
1269
  super(...arguments), this.checked = !1, this.value = "on";
1301
1270
  }
@@ -1305,11 +1274,11 @@ let K = class extends x {
1305
1274
  updated() {
1306
1275
  this.internals.setFormValue(this.checked ? this.value : null);
1307
1276
  }
1308
- handleChange(o) {
1309
- this.checked = o.target.checked, this.dispatchEvent(new Event("change", { bubbles: !0 }));
1277
+ handleChange(t) {
1278
+ this.checked = t.target.checked, this.dispatchEvent(new Event("change", { bubbles: !0 }));
1310
1279
  }
1311
1280
  render() {
1312
- return c`
1281
+ return l`
1313
1282
  <label class="check">
1314
1283
  <input
1315
1284
  type="checkbox"
@@ -1324,8 +1293,8 @@ let K = class extends x {
1324
1293
  `;
1325
1294
  }
1326
1295
  };
1327
- K.styles = [
1328
- pt,
1296
+ Z.styles = [
1297
+ bo,
1329
1298
  d`
1330
1299
  .track {
1331
1300
  flex: none;
@@ -1364,21 +1333,21 @@ K.styles = [
1364
1333
  }
1365
1334
  `
1366
1335
  ];
1367
- Xe([
1336
+ to([
1368
1337
  n({ type: Boolean, reflect: !0 })
1369
- ], K.prototype, "checked", 2);
1370
- Xe([
1338
+ ], Z.prototype, "checked", 2);
1339
+ to([
1371
1340
  n()
1372
- ], K.prototype, "value", 2);
1373
- K = Xe([
1374
- p("vox-switch")
1375
- ], K);
1376
- var Rt = Object.defineProperty, Zt = Object.getOwnPropertyDescriptor, de = (o, t, a, r) => {
1377
- for (var e = r > 1 ? void 0 : r ? Zt(t, a) : t, s = o.length - 1, i; s >= 0; s--)
1378
- (i = o[s]) && (e = (r ? i(t, a, e) : i(e)) || e);
1379
- return r && e && Rt(t, a, e), e;
1341
+ ], Z.prototype, "value", 2);
1342
+ Z = to([
1343
+ h("vox-switch")
1344
+ ], Z);
1345
+ var Qo = Object.defineProperty, Yo = Object.getOwnPropertyDescriptor, he = (t, o, a, r) => {
1346
+ for (var e = r > 1 ? void 0 : r ? Yo(o, a) : o, s = t.length - 1, i; s >= 0; s--)
1347
+ (i = t[s]) && (e = (r ? i(o, a, e) : i(e)) || e);
1348
+ return r && e && Qo(o, a, e), e;
1380
1349
  };
1381
- let w = class extends x {
1350
+ let y = class extends x {
1382
1351
  constructor() {
1383
1352
  super(...arguments), this.value = "", this.rows = 4, this.readonly = !1;
1384
1353
  }
@@ -1387,34 +1356,32 @@ let w = class extends x {
1387
1356
  }
1388
1357
  updated() {
1389
1358
  this.internals.setFormValue(this.value);
1390
- const o = this.renderRoot.querySelector("textarea");
1391
- o && this.syncValidity(o);
1359
+ const t = this.renderRoot.querySelector("textarea");
1360
+ t && this.syncValidity(t);
1392
1361
  }
1393
- focus(o) {
1394
- var t;
1395
- (t = this.renderRoot.querySelector("textarea")) == null || t.focus(o);
1362
+ focus(t) {
1363
+ var o;
1364
+ (o = this.renderRoot.querySelector("textarea")) == null || o.focus(t);
1396
1365
  }
1397
- handleInput(o) {
1398
- this.value = o.target.value;
1366
+ handleInput(t) {
1367
+ this.value = t.target.value;
1399
1368
  }
1400
1369
  handleChange() {
1401
1370
  this.dispatchEvent(new Event("change", { bubbles: !0 }));
1402
1371
  }
1403
1372
  render() {
1404
- return c`
1373
+ return l`
1405
1374
  <div class="field">
1406
1375
  ${this.renderLabel("textarea")}
1407
1376
  <textarea
1408
1377
  id="textarea"
1409
1378
  class="control"
1410
1379
  rows=${this.rows}
1411
- .value=${dt(this.value)}
1412
- placeholder=${u(this.placeholder)}
1380
+ .value=${go(this.value)}
1381
+ placeholder=${L(this.placeholder)}
1413
1382
  ?required=${this.required}
1414
1383
  ?readonly=${this.readonly}
1415
1384
  ?disabled=${this.disabled}
1416
- aria-describedby=${u(this.noteId)}
1417
- aria-invalid=${this.invalid ? "true" : "false"}
1418
1385
  @input=${this.handleInput}
1419
1386
  @change=${this.handleChange}
1420
1387
  ></textarea>
@@ -1423,8 +1390,8 @@ let w = class extends x {
1423
1390
  `;
1424
1391
  }
1425
1392
  };
1426
- w.styles = [
1427
- ce,
1393
+ y.styles = [
1394
+ de,
1428
1395
  d`
1429
1396
  textarea.control {
1430
1397
  resize: vertical;
@@ -1432,44 +1399,39 @@ w.styles = [
1432
1399
  }
1433
1400
  `
1434
1401
  ];
1435
- de([
1402
+ he([
1436
1403
  n()
1437
- ], w.prototype, "value", 2);
1438
- de([
1404
+ ], y.prototype, "value", 2);
1405
+ he([
1439
1406
  n()
1440
- ], w.prototype, "placeholder", 2);
1441
- de([
1407
+ ], y.prototype, "placeholder", 2);
1408
+ he([
1442
1409
  n({ type: Number })
1443
- ], w.prototype, "rows", 2);
1444
- de([
1410
+ ], y.prototype, "rows", 2);
1411
+ he([
1445
1412
  n({ type: Boolean, reflect: !0 })
1446
- ], w.prototype, "readonly", 2);
1447
- w = de([
1448
- p("vox-textarea")
1449
- ], w);
1450
- var Ut = Object.defineProperty, Kt = Object.getOwnPropertyDescriptor, pe = (o, t, a, r) => {
1451
- for (var e = r > 1 ? void 0 : r ? Kt(t, a) : t, s = o.length - 1, i; s >= 0; s--)
1452
- (i = o[s]) && (e = (r ? i(t, a, e) : i(e)) || e);
1453
- return r && e && Ut(t, a, e), e;
1413
+ ], y.prototype, "readonly", 2);
1414
+ y = he([
1415
+ h("vox-textarea")
1416
+ ], y);
1417
+ var et = Object.defineProperty, ot = Object.getOwnPropertyDescriptor, pe = (t, o, a, r) => {
1418
+ for (var e = r > 1 ? void 0 : r ? ot(o, a) : o, s = t.length - 1, i; s >= 0; s--)
1419
+ (i = t[s]) && (e = (r ? i(o, a, e) : i(e)) || e);
1420
+ return r && e && et(o, a, e), e;
1454
1421
  };
1455
- let $ = class extends h {
1422
+ let w = class extends p {
1456
1423
  constructor() {
1457
1424
  super(...arguments), this.alt = "", this.initials = "", this.size = "md";
1458
1425
  }
1459
1426
  render() {
1460
- const o = !this.src && this.alt;
1461
- return c`
1462
- <span
1463
- class="avatar"
1464
- role=${o ? "img" : v}
1465
- aria-label=${o ? this.alt : v}
1466
- >
1467
- ${this.src ? c`<img src=${this.src} alt=${this.alt} />` : this.initials}
1427
+ return l`
1428
+ <span class="avatar" role=${this.src ? "presentation" : "img"} aria-label=${this.alt}>
1429
+ ${this.src ? l`<img src=${this.src} alt=${this.alt} />` : this.initials}
1468
1430
  </span>
1469
1431
  `;
1470
1432
  }
1471
1433
  };
1472
- $.styles = d`
1434
+ w.styles = d`
1473
1435
  :host {
1474
1436
  display: inline-block;
1475
1437
  }
@@ -1519,34 +1481,34 @@ $.styles = d`
1519
1481
  `;
1520
1482
  pe([
1521
1483
  n()
1522
- ], $.prototype, "src", 2);
1484
+ ], w.prototype, "src", 2);
1523
1485
  pe([
1524
1486
  n()
1525
- ], $.prototype, "alt", 2);
1487
+ ], w.prototype, "alt", 2);
1526
1488
  pe([
1527
1489
  n()
1528
- ], $.prototype, "initials", 2);
1490
+ ], w.prototype, "initials", 2);
1529
1491
  pe([
1530
1492
  n({ reflect: !0 })
1531
- ], $.prototype, "size", 2);
1532
- $ = pe([
1533
- p("vox-avatar")
1534
- ], $);
1535
- var Gt = Object.defineProperty, Xt = Object.getOwnPropertyDescriptor, Qe = (o, t, a, r) => {
1536
- for (var e = r > 1 ? void 0 : r ? Xt(t, a) : t, s = o.length - 1, i; s >= 0; s--)
1537
- (i = o[s]) && (e = (r ? i(t, a, e) : i(e)) || e);
1538
- return r && e && Gt(t, a, e), e;
1493
+ ], w.prototype, "size", 2);
1494
+ w = pe([
1495
+ h("vox-avatar")
1496
+ ], w);
1497
+ var tt = Object.defineProperty, rt = Object.getOwnPropertyDescriptor, ro = (t, o, a, r) => {
1498
+ for (var e = r > 1 ? void 0 : r ? rt(o, a) : o, s = t.length - 1, i; s >= 0; s--)
1499
+ (i = t[s]) && (e = (r ? i(o, a, e) : i(e)) || e);
1500
+ return r && e && tt(o, a, e), e;
1539
1501
  };
1540
- let G = class extends h {
1502
+ let K = class extends p {
1541
1503
  constructor() {
1542
1504
  super(...arguments), this.heading = "", this.reverse = !1, this.hasActions = !1;
1543
1505
  }
1544
- handleActionsSlotChange(o) {
1545
- const t = o.target;
1546
- this.hasActions = t.assignedNodes({ flatten: !0 }).length > 0, this.requestUpdate();
1506
+ handleActionsSlotChange(t) {
1507
+ const o = t.target;
1508
+ this.hasActions = o.assignedNodes({ flatten: !0 }).length > 0, this.requestUpdate();
1547
1509
  }
1548
1510
  render() {
1549
- return c`
1511
+ return l`
1550
1512
  <div class="billboard">
1551
1513
  <div class="media"><slot name="media"></slot></div>
1552
1514
  <div class="content">
@@ -1560,7 +1522,7 @@ let G = class extends h {
1560
1522
  `;
1561
1523
  }
1562
1524
  };
1563
- G.styles = d`
1525
+ K.styles = d`
1564
1526
  :host {
1565
1527
  display: block;
1566
1528
  font-family: var(--vox-font-family-base);
@@ -1622,30 +1584,30 @@ G.styles = d`
1622
1584
  display: none;
1623
1585
  }
1624
1586
  `;
1625
- Qe([
1587
+ ro([
1626
1588
  n()
1627
- ], G.prototype, "heading", 2);
1628
- Qe([
1589
+ ], K.prototype, "heading", 2);
1590
+ ro([
1629
1591
  n({ type: Boolean, reflect: !0 })
1630
- ], G.prototype, "reverse", 2);
1631
- G = Qe([
1632
- p("vox-billboard")
1633
- ], G);
1634
- var Qt = Object.getOwnPropertyDescriptor, Wt = (o, t, a, r) => {
1635
- for (var e = r > 1 ? void 0 : r ? Qt(t, a) : t, s = o.length - 1, i; s >= 0; s--)
1636
- (i = o[s]) && (e = i(e) || e);
1592
+ ], K.prototype, "reverse", 2);
1593
+ K = ro([
1594
+ h("vox-billboard")
1595
+ ], K);
1596
+ var at = Object.getOwnPropertyDescriptor, st = (t, o, a, r) => {
1597
+ for (var e = r > 1 ? void 0 : r ? at(o, a) : o, s = t.length - 1, i; s >= 0; s--)
1598
+ (i = t[s]) && (e = i(e) || e);
1637
1599
  return e;
1638
1600
  };
1639
- let Be = class extends h {
1601
+ let Ze = class extends p {
1640
1602
  render() {
1641
- return c`
1603
+ return l`
1642
1604
  <nav aria-label="Breadcrumbs">
1643
1605
  <slot></slot>
1644
1606
  </nav>
1645
1607
  `;
1646
1608
  }
1647
1609
  };
1648
- Be.styles = d`
1610
+ Ze.styles = d`
1649
1611
  :host {
1650
1612
  display: block;
1651
1613
  font-family: var(--vox-font-family-base);
@@ -1679,24 +1641,21 @@ Be.styles = d`
1679
1641
  color: var(--vox-color-text-3);
1680
1642
  }
1681
1643
  `;
1682
- Be = Wt([
1683
- p("vox-breadcrumbs")
1684
- ], Be);
1685
- var Yt = Object.defineProperty, Jt = Object.getOwnPropertyDescriptor, De = (o, t, a, r) => {
1686
- for (var e = r > 1 ? void 0 : r ? Jt(t, a) : t, s = o.length - 1, i; s >= 0; s--)
1687
- (i = o[s]) && (e = (r ? i(t, a, e) : i(e)) || e);
1688
- return r && e && Yt(t, a, e), e;
1644
+ Ze = st([
1645
+ h("vox-breadcrumbs")
1646
+ ], Ze);
1647
+ var it = Object.defineProperty, nt = Object.getOwnPropertyDescriptor, Ae = (t, o, a, r) => {
1648
+ for (var e = r > 1 ? void 0 : r ? nt(o, a) : o, s = t.length - 1, i; s >= 0; s--)
1649
+ (i = t[s]) && (e = (r ? i(o, a, e) : i(e)) || e);
1650
+ return r && e && it(o, a, e), e;
1689
1651
  };
1690
- let S = class extends h {
1652
+ let D = class extends p {
1691
1653
  constructor() {
1692
- super(...arguments), this.siteTitle = "", this.href = "/", this.mobileOpen = !1, this.handleOutsideClick = (o) => {
1693
- this.mobileOpen && !o.composedPath().includes(this) && (this.mobileOpen = !1);
1694
- }, this.handleFocusOut = (o) => {
1695
- const t = o.relatedTarget;
1696
- this.mobileOpen && !(t && this.contains(t)) && (this.mobileOpen = !1);
1697
- }, this.handleKeydown = (o) => {
1698
- var t;
1699
- o.key === "Escape" && this.mobileOpen && (this.mobileOpen = !1, (t = this.renderRoot.querySelector(".menu-toggle")) == null || t.focus());
1654
+ super(...arguments), this.siteTitle = "", this.href = "/", this.mobileOpen = !1, this.handleOutsideClick = (t) => {
1655
+ this.mobileOpen && !t.composedPath().includes(this) && (this.mobileOpen = !1);
1656
+ }, this.handleKeydown = (t) => {
1657
+ var o;
1658
+ t.key === "Escape" && this.mobileOpen && (this.mobileOpen = !1, (o = this.renderRoot.querySelector(".menu-toggle")) == null || o.focus());
1700
1659
  }, this.toggleMobileMenu = () => {
1701
1660
  this.mobileOpen = !this.mobileOpen;
1702
1661
  }, this.closeMobileMenu = () => {
@@ -1704,17 +1663,17 @@ let S = class extends h {
1704
1663
  };
1705
1664
  }
1706
1665
  connectedCallback() {
1707
- super.connectedCallback(), document.addEventListener("click", this.handleOutsideClick), this.addEventListener("keydown", this.handleKeydown), this.addEventListener("focusout", this.handleFocusOut);
1666
+ super.connectedCallback(), document.addEventListener("click", this.handleOutsideClick), this.addEventListener("keydown", this.handleKeydown);
1708
1667
  }
1709
1668
  disconnectedCallback() {
1710
- super.disconnectedCallback(), document.removeEventListener("click", this.handleOutsideClick), this.removeEventListener("keydown", this.handleKeydown), this.removeEventListener("focusout", this.handleFocusOut);
1669
+ super.disconnectedCallback(), document.removeEventListener("click", this.handleOutsideClick), this.removeEventListener("keydown", this.handleKeydown);
1711
1670
  }
1712
1671
  render() {
1713
- return c`
1672
+ return l`
1714
1673
  <header class="header">
1715
1674
  <a class="brand" href=${this.href}>
1716
1675
  <slot name="logo"></slot>
1717
- ${this.siteTitle ? c`<span>${this.siteTitle}</span>` : v}
1676
+ ${this.siteTitle ? l`<span>${this.siteTitle}</span>` : v}
1718
1677
  </a>
1719
1678
  <button
1720
1679
  type="button"
@@ -1734,7 +1693,7 @@ let S = class extends h {
1734
1693
  stroke-linejoin="round"
1735
1694
  aria-hidden="true"
1736
1695
  >
1737
- ${this.mobileOpen ? y.close : y.menu}
1696
+ ${this.mobileOpen ? m.close : m.menu}
1738
1697
  </svg>
1739
1698
  </button>
1740
1699
  <div id="nav-wrap" class="nav-wrap${this.mobileOpen ? " open" : ""}">
@@ -1749,7 +1708,7 @@ let S = class extends h {
1749
1708
  `;
1750
1709
  }
1751
1710
  };
1752
- S.styles = d`
1711
+ D.styles = d`
1753
1712
  :host {
1754
1713
  display: block;
1755
1714
  font-family: var(--vox-font-family-base);
@@ -1879,37 +1838,37 @@ S.styles = d`
1879
1838
  }
1880
1839
  }
1881
1840
  `;
1882
- De([
1841
+ Ae([
1883
1842
  n({ attribute: "site-title" })
1884
- ], S.prototype, "siteTitle", 2);
1885
- De([
1843
+ ], D.prototype, "siteTitle", 2);
1844
+ Ae([
1886
1845
  n()
1887
- ], S.prototype, "href", 2);
1888
- De([
1889
- le()
1890
- ], S.prototype, "mobileOpen", 2);
1891
- S = De([
1892
- p("vox-header")
1893
- ], S);
1894
- var eo = Object.defineProperty, to = Object.getOwnPropertyDescriptor, he = (o, t, a, r) => {
1895
- for (var e = r > 1 ? void 0 : r ? to(t, a) : t, s = o.length - 1, i; s >= 0; s--)
1896
- (i = o[s]) && (e = (r ? i(t, a, e) : i(e)) || e);
1897
- return r && e && eo(t, a, e), e;
1846
+ ], D.prototype, "href", 2);
1847
+ Ae([
1848
+ De()
1849
+ ], D.prototype, "mobileOpen", 2);
1850
+ D = Ae([
1851
+ h("vox-header")
1852
+ ], D);
1853
+ var lt = Object.defineProperty, ct = Object.getOwnPropertyDescriptor, ve = (t, o, a, r) => {
1854
+ for (var e = r > 1 ? void 0 : r ? ct(o, a) : o, s = t.length - 1, i; s >= 0; s--)
1855
+ (i = t[s]) && (e = (r ? i(o, a, e) : i(e)) || e);
1856
+ return r && e && lt(o, a, e), e;
1898
1857
  };
1899
- let _ = class extends h {
1858
+ let $ = class extends p {
1900
1859
  constructor() {
1901
1860
  super(...arguments), this.previousLabel = "", this.nextLabel = "";
1902
1861
  }
1903
1862
  render() {
1904
- return c`
1863
+ return l`
1905
1864
  <nav aria-label="Series">
1906
- ${this.previousHref ? c`
1865
+ ${this.previousHref ? l`
1907
1866
  <a href=${this.previousHref} rel="prev">
1908
1867
  <span class="direction">← Previous</span>
1909
1868
  <span class="title">${this.previousLabel}</span>
1910
1869
  </a>
1911
1870
  ` : v}
1912
- ${this.nextHref ? c`
1871
+ ${this.nextHref ? l`
1913
1872
  <a class="next" href=${this.nextHref} rel="next">
1914
1873
  <span class="direction">Next →</span>
1915
1874
  <span class="title">${this.nextLabel}</span>
@@ -1919,7 +1878,7 @@ let _ = class extends h {
1919
1878
  `;
1920
1879
  }
1921
1880
  };
1922
- _.styles = d`
1881
+ $.styles = d`
1923
1882
  :host {
1924
1883
  display: block;
1925
1884
  font-family: var(--vox-font-family-base);
@@ -1969,50 +1928,47 @@ _.styles = d`
1969
1928
  color: var(--vox-color-brand-1);
1970
1929
  }
1971
1930
  `;
1972
- he([
1931
+ ve([
1973
1932
  n({ attribute: "previous-href" })
1974
- ], _.prototype, "previousHref", 2);
1975
- he([
1933
+ ], $.prototype, "previousHref", 2);
1934
+ ve([
1976
1935
  n({ attribute: "previous-label" })
1977
- ], _.prototype, "previousLabel", 2);
1978
- he([
1936
+ ], $.prototype, "previousLabel", 2);
1937
+ ve([
1979
1938
  n({ attribute: "next-href" })
1980
- ], _.prototype, "nextHref", 2);
1981
- he([
1939
+ ], $.prototype, "nextHref", 2);
1940
+ ve([
1982
1941
  n({ attribute: "next-label" })
1983
- ], _.prototype, "nextLabel", 2);
1984
- _ = he([
1985
- p("vox-series-nav")
1986
- ], _);
1987
- var oo = Object.defineProperty, ro = Object.getOwnPropertyDescriptor, f = (o, t, a, r) => {
1988
- for (var e = r > 1 ? void 0 : r ? ro(t, a) : t, s = o.length - 1, i; s >= 0; s--)
1989
- (i = o[s]) && (e = (r ? i(t, a, e) : i(e)) || e);
1990
- return r && e && oo(t, a, e), e;
1942
+ ], $.prototype, "nextLabel", 2);
1943
+ $ = ve([
1944
+ h("vox-series-nav")
1945
+ ], $);
1946
+ var dt = Object.defineProperty, ht = Object.getOwnPropertyDescriptor, u = (t, o, a, r) => {
1947
+ for (var e = r > 1 ? void 0 : r ? ht(o, a) : o, s = t.length - 1, i; s >= 0; s--)
1948
+ (i = t[s]) && (e = (r ? i(o, a, e) : i(e)) || e);
1949
+ return r && e && dt(o, a, e), e;
1991
1950
  };
1992
- let A = class extends h {
1951
+ let E = class extends p {
1993
1952
  constructor() {
1994
- super(...arguments), this.label = "Section", this.toggleLabel = "Menu", this.mobileOpen = !1, this.handleOutsideClick = (o) => {
1995
- this.mobileOpen && !o.composedPath().includes(this) && (this.mobileOpen = !1);
1996
- }, this.handleFocusOut = (o) => {
1997
- const t = o.relatedTarget;
1998
- this.mobileOpen && !(t && this.contains(t)) && (this.mobileOpen = !1);
1999
- }, this.handleKeydown = (o) => {
2000
- var t;
2001
- o.key === "Escape" && this.mobileOpen && (this.mobileOpen = !1, (t = this.renderRoot.querySelector(".toggle")) == null || t.focus());
1953
+ super(...arguments), this.label = "Section", this.toggleLabel = "Menu", this.mobileOpen = !1, this.handleOutsideClick = (t) => {
1954
+ this.mobileOpen && !t.composedPath().includes(this) && (this.mobileOpen = !1);
1955
+ }, this.handleKeydown = (t) => {
1956
+ var o;
1957
+ t.key === "Escape" && this.mobileOpen && (this.mobileOpen = !1, (o = this.renderRoot.querySelector(".toggle")) == null || o.focus());
2002
1958
  }, this.toggleMobile = () => {
2003
1959
  this.mobileOpen = !this.mobileOpen;
2004
- }, this.handleNavClick = (o) => {
2005
- o.composedPath().some((t) => t instanceof HTMLAnchorElement) && (this.mobileOpen = !1);
1960
+ }, this.handleNavClick = (t) => {
1961
+ t.composedPath().some((o) => o instanceof HTMLAnchorElement) && (this.mobileOpen = !1);
2006
1962
  };
2007
1963
  }
2008
1964
  connectedCallback() {
2009
- super.connectedCallback(), document.addEventListener("click", this.handleOutsideClick), this.addEventListener("keydown", this.handleKeydown), this.addEventListener("focusout", this.handleFocusOut);
1965
+ super.connectedCallback(), document.addEventListener("click", this.handleOutsideClick), this.addEventListener("keydown", this.handleKeydown);
2010
1966
  }
2011
1967
  disconnectedCallback() {
2012
- super.disconnectedCallback(), document.removeEventListener("click", this.handleOutsideClick), this.removeEventListener("keydown", this.handleKeydown), this.removeEventListener("focusout", this.handleFocusOut);
1968
+ super.disconnectedCallback(), document.removeEventListener("click", this.handleOutsideClick), this.removeEventListener("keydown", this.handleKeydown);
2013
1969
  }
2014
1970
  render() {
2015
- return c`
1971
+ return l`
2016
1972
  <button
2017
1973
  type="button"
2018
1974
  class="toggle"
@@ -2031,7 +1987,7 @@ let A = class extends h {
2031
1987
  stroke-linejoin="round"
2032
1988
  aria-hidden="true"
2033
1989
  >
2034
- ${this.mobileOpen ? y.close : y.menu}
1990
+ ${this.mobileOpen ? m.close : m.menu}
2035
1991
  </svg>
2036
1992
  </button>
2037
1993
  <nav
@@ -2045,7 +2001,7 @@ let A = class extends h {
2045
2001
  `;
2046
2002
  }
2047
2003
  };
2048
- A.styles = d`
2004
+ E.styles = d`
2049
2005
  :host {
2050
2006
  display: block;
2051
2007
  font-family: var(--vox-font-family-base);
@@ -2105,31 +2061,30 @@ A.styles = d`
2105
2061
  }
2106
2062
  }
2107
2063
  `;
2108
- f([
2064
+ u([
2109
2065
  n()
2110
- ], A.prototype, "label", 2);
2111
- f([
2066
+ ], E.prototype, "label", 2);
2067
+ u([
2112
2068
  n({ attribute: "toggle-label" })
2113
- ], A.prototype, "toggleLabel", 2);
2114
- f([
2115
- le()
2116
- ], A.prototype, "mobileOpen", 2);
2117
- A = f([
2118
- p("vox-sidenav")
2119
- ], A);
2120
- let C = class extends h {
2069
+ ], E.prototype, "toggleLabel", 2);
2070
+ u([
2071
+ De()
2072
+ ], E.prototype, "mobileOpen", 2);
2073
+ E = u([
2074
+ h("vox-sidenav")
2075
+ ], E);
2076
+ let U = class extends p {
2121
2077
  constructor() {
2122
- super(...arguments), this.heading = "", this.open = !1, this.itemsId = `vox-sidenav-group-items-${C.nextId++}`;
2078
+ super(...arguments), this.heading = "", this.open = !1;
2123
2079
  }
2124
2080
  toggle() {
2125
2081
  this.open = !this.open;
2126
2082
  }
2127
2083
  render() {
2128
- return c`
2084
+ return l`
2129
2085
  <button
2130
2086
  class="trigger"
2131
2087
  aria-expanded=${this.open ? "true" : "false"}
2132
- aria-controls=${this.itemsId}
2133
2088
  @click=${this.toggle}
2134
2089
  >
2135
2090
  ${this.heading}
@@ -2137,12 +2092,11 @@ let C = class extends h {
2137
2092
  <path d="m9 6 6 6-6 6" />
2138
2093
  </svg>
2139
2094
  </button>
2140
- <div id=${this.itemsId} class="items"><slot></slot></div>
2095
+ <div class="items"><slot></slot></div>
2141
2096
  `;
2142
2097
  }
2143
2098
  };
2144
- C.nextId = 0;
2145
- C.styles = d`
2099
+ U.styles = d`
2146
2100
  :host {
2147
2101
  display: block;
2148
2102
  font-family: var(--vox-font-family-base);
@@ -2199,25 +2153,25 @@ C.styles = d`
2199
2153
  display: flex;
2200
2154
  }
2201
2155
  `;
2202
- f([
2156
+ u([
2203
2157
  n()
2204
- ], C.prototype, "heading", 2);
2205
- f([
2158
+ ], U.prototype, "heading", 2);
2159
+ u([
2206
2160
  n({ type: Boolean, reflect: !0 })
2207
- ], C.prototype, "open", 2);
2208
- C = f([
2209
- p("vox-sidenav-group")
2210
- ], C);
2211
- let X = class extends h {
2161
+ ], U.prototype, "open", 2);
2162
+ U = u([
2163
+ h("vox-sidenav-group")
2164
+ ], U);
2165
+ let G = class extends p {
2212
2166
  constructor() {
2213
2167
  super(...arguments), this.href = "#", this.current = !1, this.hasIcon = !1;
2214
2168
  }
2215
- handleIconSlotChange(o) {
2216
- const t = o.target;
2217
- this.hasIcon = t.assignedNodes({ flatten: !0 }).length > 0, this.requestUpdate();
2169
+ handleIconSlotChange(t) {
2170
+ const o = t.target;
2171
+ this.hasIcon = o.assignedNodes({ flatten: !0 }).length > 0, this.requestUpdate();
2218
2172
  }
2219
2173
  render() {
2220
- return c`
2174
+ return l`
2221
2175
  <a href=${this.href} aria-current=${this.current ? "page" : "false"}>
2222
2176
  <span class="icon ${this.hasIcon ? "has-icon" : ""}">
2223
2177
  <slot name="icon" @slotchange=${this.handleIconSlotChange}></slot>
@@ -2227,7 +2181,7 @@ let X = class extends h {
2227
2181
  `;
2228
2182
  }
2229
2183
  };
2230
- X.styles = d`
2184
+ G.styles = d`
2231
2185
  :host {
2232
2186
  display: block;
2233
2187
  font-family: var(--vox-font-family-base);
@@ -2271,33 +2225,33 @@ X.styles = d`
2271
2225
  display: none;
2272
2226
  }
2273
2227
  `;
2274
- f([
2228
+ u([
2275
2229
  n()
2276
- ], X.prototype, "href", 2);
2277
- f([
2230
+ ], G.prototype, "href", 2);
2231
+ u([
2278
2232
  n({ type: Boolean, reflect: !0 })
2279
- ], X.prototype, "current", 2);
2280
- X = f([
2281
- p("vox-sidenav-item")
2282
- ], X);
2283
- var ao = Object.defineProperty, so = Object.getOwnPropertyDescriptor, vt = (o, t, a, r) => {
2284
- for (var e = r > 1 ? void 0 : r ? so(t, a) : t, s = o.length - 1, i; s >= 0; s--)
2285
- (i = o[s]) && (e = (r ? i(t, a, e) : i(e)) || e);
2286
- return r && e && ao(t, a, e), e;
2233
+ ], G.prototype, "current", 2);
2234
+ G = u([
2235
+ h("vox-sidenav-item")
2236
+ ], G);
2237
+ var pt = Object.defineProperty, vt = Object.getOwnPropertyDescriptor, yo = (t, o, a, r) => {
2238
+ for (var e = r > 1 ? void 0 : r ? vt(o, a) : o, s = t.length - 1, i; s >= 0; s--)
2239
+ (i = t[s]) && (e = (r ? i(o, a, e) : i(e)) || e);
2240
+ return r && e && pt(o, a, e), e;
2287
2241
  };
2288
- let ye = class extends h {
2242
+ let _e = class extends p {
2289
2243
  constructor() {
2290
2244
  super(...arguments), this.label = "Secondary";
2291
2245
  }
2292
2246
  render() {
2293
- return c`
2247
+ return l`
2294
2248
  <nav aria-label=${this.label}>
2295
2249
  <slot></slot>
2296
2250
  </nav>
2297
2251
  `;
2298
2252
  }
2299
2253
  };
2300
- ye.styles = d`
2254
+ _e.styles = d`
2301
2255
  :host {
2302
2256
  display: block;
2303
2257
  font-family: var(--vox-font-family-base);
@@ -2332,18 +2286,18 @@ ye.styles = d`
2332
2286
  border-bottom-color: var(--vox-color-brand-1);
2333
2287
  }
2334
2288
  `;
2335
- vt([
2289
+ yo([
2336
2290
  n()
2337
- ], ye.prototype, "label", 2);
2338
- ye = vt([
2339
- p("vox-subnav")
2340
- ], ye);
2341
- var io = Object.defineProperty, no = Object.getOwnPropertyDescriptor, j = (o, t, a, r) => {
2342
- for (var e = r > 1 ? void 0 : r ? no(t, a) : t, s = o.length - 1, i; s >= 0; s--)
2343
- (i = o[s]) && (e = (r ? i(t, a, e) : i(e)) || e);
2344
- return r && e && io(t, a, e), e;
2291
+ ], _e.prototype, "label", 2);
2292
+ _e = yo([
2293
+ h("vox-subnav")
2294
+ ], _e);
2295
+ var xt = Object.defineProperty, ut = Object.getOwnPropertyDescriptor, k = (t, o, a, r) => {
2296
+ for (var e = r > 1 ? void 0 : r ? ut(o, a) : o, s = t.length - 1, i; s >= 0; s--)
2297
+ (i = t[s]) && (e = (r ? i(o, a, e) : i(e)) || e);
2298
+ return r && e && xt(o, a, e), e;
2345
2299
  };
2346
- let qe = class extends h {
2300
+ let Ke = class extends p {
2347
2301
  get tabs() {
2348
2302
  return [...this.querySelectorAll("vox-tab")];
2349
2303
  }
@@ -2351,39 +2305,32 @@ let qe = class extends h {
2351
2305
  return [...this.querySelectorAll("vox-tab-panel")];
2352
2306
  }
2353
2307
  sync() {
2354
- const o = this.tabs;
2355
- o.length > 0 && !o.some((a) => a.selected) && (o[0].selected = !0);
2356
- const t = o.find((a) => a.selected);
2308
+ const t = this.tabs;
2309
+ t.length > 0 && !t.some((a) => a.selected) && (t[0].selected = !0);
2310
+ const o = t.find((a) => a.selected);
2357
2311
  this.panels.forEach((a) => {
2358
- a.active = a.name === (t == null ? void 0 : t.panel);
2312
+ a.active = a.name === (o == null ? void 0 : o.panel);
2359
2313
  });
2360
2314
  }
2361
- handleSelect(o) {
2362
- const t = o.target;
2363
- t.tagName === "VOX-TAB" && (this.tabs.forEach((a) => a.selected = a === t), this.sync(), this.dispatchEvent(
2315
+ handleSelect(t) {
2316
+ const o = t.target;
2317
+ o.tagName === "VOX-TAB" && (this.tabs.forEach((a) => a.selected = a === o), this.sync(), this.dispatchEvent(
2364
2318
  new CustomEvent("vox-tab-change", {
2365
- detail: { panel: t.panel },
2319
+ detail: { panel: o.panel },
2366
2320
  bubbles: !0,
2367
2321
  composed: !0
2368
2322
  })
2369
2323
  ));
2370
2324
  }
2371
- handleKeydown(o) {
2372
- const t = this.tabs;
2373
- if (o.key === "Home" || o.key === "End") {
2374
- o.preventDefault();
2375
- const i = t[o.key === "Home" ? 0 : t.length - 1];
2376
- i.select(), i.focusTab();
2377
- return;
2378
- }
2379
- const r = { ArrowRight: 1, ArrowLeft: -1 }[o.key];
2380
- if (!r) return;
2381
- o.preventDefault();
2382
- const e = t.findIndex((i) => i.selected), s = t[(e + r + t.length) % t.length];
2325
+ handleKeydown(t) {
2326
+ const a = { ArrowRight: 1, ArrowLeft: -1 }[t.key];
2327
+ if (!a) return;
2328
+ t.preventDefault();
2329
+ const r = this.tabs, e = r.findIndex((i) => i.selected), s = r[(e + a + r.length) % r.length];
2383
2330
  s.select(), s.focusTab();
2384
2331
  }
2385
2332
  render() {
2386
- return c`
2333
+ return l`
2387
2334
  <div
2388
2335
  class="tablist"
2389
2336
  role="tablist"
@@ -2396,7 +2343,7 @@ let qe = class extends h {
2396
2343
  `;
2397
2344
  }
2398
2345
  };
2399
- qe.styles = d`
2346
+ Ke.styles = d`
2400
2347
  :host {
2401
2348
  display: block;
2402
2349
  }
@@ -2407,10 +2354,10 @@ qe.styles = d`
2407
2354
  border-bottom: 1px solid var(--vox-color-divider);
2408
2355
  }
2409
2356
  `;
2410
- qe = j([
2411
- p("vox-tabs")
2412
- ], qe);
2413
- let Q = class extends h {
2357
+ Ke = k([
2358
+ h("vox-tabs")
2359
+ ], Ke);
2360
+ let X = class extends p {
2414
2361
  constructor() {
2415
2362
  super(...arguments), this.panel = "", this.selected = !1;
2416
2363
  }
@@ -2420,17 +2367,15 @@ let Q = class extends h {
2420
2367
  );
2421
2368
  }
2422
2369
  focusTab() {
2423
- var o;
2424
- (o = this.renderRoot.querySelector(".tab")) == null || o.focus();
2370
+ var t;
2371
+ (t = this.renderRoot.querySelector(".tab")) == null || t.focus();
2425
2372
  }
2426
2373
  render() {
2427
- return c`
2374
+ return l`
2428
2375
  <button
2429
- id="tab-${this.panel}"
2430
2376
  class="tab"
2431
2377
  role="tab"
2432
2378
  aria-selected=${this.selected ? "true" : "false"}
2433
- aria-controls="panel-${this.panel}"
2434
2379
  tabindex=${this.selected ? "0" : "-1"}
2435
2380
  @click=${this.select}
2436
2381
  >
@@ -2439,7 +2384,7 @@ let Q = class extends h {
2439
2384
  `;
2440
2385
  }
2441
2386
  };
2442
- Q.styles = d`
2387
+ X.styles = d`
2443
2388
  :host {
2444
2389
  display: block;
2445
2390
  font-family: var(--vox-font-family-base);
@@ -2474,33 +2419,24 @@ Q.styles = d`
2474
2419
  border-bottom-color: var(--vox-color-brand-1);
2475
2420
  }
2476
2421
  `;
2477
- j([
2422
+ k([
2478
2423
  n()
2479
- ], Q.prototype, "panel", 2);
2480
- j([
2424
+ ], X.prototype, "panel", 2);
2425
+ k([
2481
2426
  n({ type: Boolean, reflect: !0 })
2482
- ], Q.prototype, "selected", 2);
2483
- Q = j([
2484
- p("vox-tab")
2485
- ], Q);
2486
- let W = class extends h {
2427
+ ], X.prototype, "selected", 2);
2428
+ X = k([
2429
+ h("vox-tab")
2430
+ ], X);
2431
+ let J = class extends p {
2487
2432
  constructor() {
2488
2433
  super(...arguments), this.name = "", this.active = !1;
2489
2434
  }
2490
2435
  render() {
2491
- return c`
2492
- <div
2493
- id="panel-${this.name}"
2494
- role="tabpanel"
2495
- aria-labelledby="tab-${this.name}"
2496
- tabindex="0"
2497
- >
2498
- <slot></slot>
2499
- </div>
2500
- `;
2436
+ return l`<div role="tabpanel"><slot></slot></div>`;
2501
2437
  }
2502
2438
  };
2503
- W.styles = d`
2439
+ J.styles = d`
2504
2440
  :host {
2505
2441
  display: none;
2506
2442
  font-family: var(--vox-font-family-base);
@@ -2513,33 +2449,27 @@ W.styles = d`
2513
2449
  :host([active]) {
2514
2450
  display: block;
2515
2451
  }
2516
-
2517
- div:focus-visible {
2518
- outline: 2px solid var(--vox-color-brand-1);
2519
- outline-offset: 2px;
2520
- border-radius: var(--vox-radius-sm);
2521
- }
2522
2452
  `;
2523
- j([
2453
+ k([
2524
2454
  n()
2525
- ], W.prototype, "name", 2);
2526
- j([
2455
+ ], J.prototype, "name", 2);
2456
+ k([
2527
2457
  n({ type: Boolean, reflect: !0 })
2528
- ], W.prototype, "active", 2);
2529
- W = j([
2530
- p("vox-tab-panel")
2531
- ], W);
2532
- var lo = Object.defineProperty, co = Object.getOwnPropertyDescriptor, ve = (o, t, a, r) => {
2533
- for (var e = r > 1 ? void 0 : r ? co(t, a) : t, s = o.length - 1, i; s >= 0; s--)
2534
- (i = o[s]) && (e = (r ? i(t, a, e) : i(e)) || e);
2535
- return r && e && lo(t, a, e), e;
2458
+ ], J.prototype, "active", 2);
2459
+ J = k([
2460
+ h("vox-tab-panel")
2461
+ ], J);
2462
+ var ft = Object.defineProperty, gt = Object.getOwnPropertyDescriptor, xe = (t, o, a, r) => {
2463
+ for (var e = r > 1 ? void 0 : r ? gt(o, a) : o, s = t.length - 1, i; s >= 0; s--)
2464
+ (i = t[s]) && (e = (r ? i(o, a, e) : i(e)) || e);
2465
+ return r && e && ft(o, a, e), e;
2536
2466
  };
2537
- let we = class extends h {
2467
+ let Ce = class extends p {
2538
2468
  constructor() {
2539
2469
  super(...arguments), this.heading = "On this page";
2540
2470
  }
2541
2471
  render() {
2542
- return c`
2472
+ return l`
2543
2473
  <div class="heading" id="vox-toc-heading">${this.heading}</div>
2544
2474
  <nav aria-labelledby="vox-toc-heading">
2545
2475
  <slot></slot>
@@ -2547,7 +2477,7 @@ let we = class extends h {
2547
2477
  `;
2548
2478
  }
2549
2479
  };
2550
- we.styles = d`
2480
+ Ce.styles = d`
2551
2481
  :host {
2552
2482
  display: block;
2553
2483
  font-family: var(--vox-font-family-base);
@@ -2568,22 +2498,22 @@ we.styles = d`
2568
2498
  border-left: 1px solid var(--vox-color-divider);
2569
2499
  }
2570
2500
  `;
2571
- ve([
2501
+ xe([
2572
2502
  n()
2573
- ], we.prototype, "heading", 2);
2574
- we = ve([
2575
- p("vox-toc")
2576
- ], we);
2577
- let Y = class extends h {
2503
+ ], Ce.prototype, "heading", 2);
2504
+ Ce = xe([
2505
+ h("vox-toc")
2506
+ ], Ce);
2507
+ let W = class extends p {
2578
2508
  constructor() {
2579
2509
  super(...arguments), this.href = "#", this.current = !1, this.hasChildren = !1;
2580
2510
  }
2581
- handleChildrenSlotChange(o) {
2582
- const t = o.target;
2583
- this.hasChildren = t.assignedNodes({ flatten: !0 }).length > 0, this.requestUpdate();
2511
+ handleChildrenSlotChange(t) {
2512
+ const o = t.target;
2513
+ this.hasChildren = o.assignedNodes({ flatten: !0 }).length > 0, this.requestUpdate();
2584
2514
  }
2585
2515
  render() {
2586
- return c`
2516
+ return l`
2587
2517
  <a href=${this.href} aria-current=${this.current ? "true" : "false"}>
2588
2518
  <slot></slot>
2589
2519
  </a>
@@ -2593,7 +2523,7 @@ let Y = class extends h {
2593
2523
  `;
2594
2524
  }
2595
2525
  };
2596
- Y.styles = d`
2526
+ W.styles = d`
2597
2527
  :host {
2598
2528
  display: block;
2599
2529
  font-family: var(--vox-font-family-base);
@@ -2639,21 +2569,21 @@ Y.styles = d`
2639
2569
  display: none;
2640
2570
  }
2641
2571
  `;
2642
- ve([
2572
+ xe([
2643
2573
  n()
2644
- ], Y.prototype, "href", 2);
2645
- ve([
2574
+ ], W.prototype, "href", 2);
2575
+ xe([
2646
2576
  n({ type: Boolean, reflect: !0 })
2647
- ], Y.prototype, "current", 2);
2648
- Y = ve([
2649
- p("vox-toc-item")
2650
- ], Y);
2651
- var po = Object.defineProperty, ho = Object.getOwnPropertyDescriptor, xe = (o, t, a, r) => {
2652
- for (var e = r > 1 ? void 0 : r ? ho(t, a) : t, s = o.length - 1, i; s >= 0; s--)
2653
- (i = o[s]) && (e = (r ? i(t, a, e) : i(e)) || e);
2654
- return r && e && po(t, a, e), e;
2577
+ ], W.prototype, "current", 2);
2578
+ W = xe([
2579
+ h("vox-toc-item")
2580
+ ], W);
2581
+ var bt = Object.defineProperty, mt = Object.getOwnPropertyDescriptor, ue = (t, o, a, r) => {
2582
+ for (var e = r > 1 ? void 0 : r ? mt(o, a) : o, s = t.length - 1, i; s >= 0; s--)
2583
+ (i = t[s]) && (e = (r ? i(o, a, e) : i(e)) || e);
2584
+ return r && e && bt(o, a, e), e;
2655
2585
  };
2656
- let O = class extends h {
2586
+ let _ = class extends p {
2657
2587
  constructor() {
2658
2588
  super(...arguments), this.heading = "", this.open = !1, this.lightDismiss = !1, this.hasFooter = !1;
2659
2589
  }
@@ -2671,22 +2601,22 @@ let O = class extends h {
2671
2601
  new CustomEvent("vox-close", { bubbles: !0, composed: !0 })
2672
2602
  );
2673
2603
  }
2674
- handleClick(o) {
2675
- this.lightDismiss && o.target === this.dialogEl && this.close();
2604
+ handleClick(t) {
2605
+ this.lightDismiss && t.target === this.dialogEl && this.close();
2676
2606
  }
2677
- handleFooterSlotChange(o) {
2678
- const t = o.target;
2679
- this.hasFooter = t.assignedNodes({ flatten: !0 }).length > 0, this.requestUpdate();
2607
+ handleFooterSlotChange(t) {
2608
+ const o = t.target;
2609
+ this.hasFooter = o.assignedNodes({ flatten: !0 }).length > 0, this.requestUpdate();
2680
2610
  }
2681
2611
  render() {
2682
- return c`
2612
+ return l`
2683
2613
  <dialog
2684
- aria-labelledby=${this.heading ? "heading" : v}
2614
+ aria-label=${this.heading || v}
2685
2615
  @close=${this.handleNativeClose}
2686
2616
  @click=${this.handleClick}
2687
2617
  >
2688
2618
  <div class="header">
2689
- <h2 class="heading" id="heading">${this.heading}</h2>
2619
+ <h2 class="heading">${this.heading}</h2>
2690
2620
  <button class="close" aria-label="Close dialog" @click=${this.close}>
2691
2621
  <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" aria-hidden="true">
2692
2622
  <path d="M18 6 6 18M6 6l12 12" />
@@ -2701,7 +2631,7 @@ let O = class extends h {
2701
2631
  `;
2702
2632
  }
2703
2633
  };
2704
- O.styles = d`
2634
+ _.styles = d`
2705
2635
  dialog {
2706
2636
  box-sizing: border-box;
2707
2637
  width: min(90vw, 480px);
@@ -2788,29 +2718,29 @@ O.styles = d`
2788
2718
  margin-bottom: 0;
2789
2719
  }
2790
2720
  `;
2791
- xe([
2721
+ ue([
2792
2722
  n()
2793
- ], O.prototype, "heading", 2);
2794
- xe([
2723
+ ], _.prototype, "heading", 2);
2724
+ ue([
2795
2725
  n({ type: Boolean })
2796
- ], O.prototype, "open", 2);
2797
- xe([
2726
+ ], _.prototype, "open", 2);
2727
+ ue([
2798
2728
  n({ type: Boolean, attribute: "light-dismiss" })
2799
- ], O.prototype, "lightDismiss", 2);
2800
- xe([
2801
- Ze("dialog")
2802
- ], O.prototype, "dialogEl", 2);
2803
- O = xe([
2804
- p("vox-dialog")
2805
- ], O);
2806
- var vo = Object.defineProperty, xo = Object.getOwnPropertyDescriptor, We = (o, t, a, r) => {
2807
- for (var e = r > 1 ? void 0 : r ? xo(t, a) : t, s = o.length - 1, i; s >= 0; s--)
2808
- (i = o[s]) && (e = (r ? i(t, a, e) : i(e)) || e);
2809
- return r && e && vo(t, a, e), e;
2729
+ ], _.prototype, "lightDismiss", 2);
2730
+ ue([
2731
+ Qe("dialog")
2732
+ ], _.prototype, "dialogEl", 2);
2733
+ _ = ue([
2734
+ h("vox-dialog")
2735
+ ], _);
2736
+ var yt = Object.defineProperty, wt = Object.getOwnPropertyDescriptor, ao = (t, o, a, r) => {
2737
+ for (var e = r > 1 ? void 0 : r ? wt(o, a) : o, s = t.length - 1, i; s >= 0; s--)
2738
+ (i = t[s]) && (e = (r ? i(o, a, e) : i(e)) || e);
2739
+ return r && e && yt(o, a, e), e;
2810
2740
  };
2811
- let M = class extends h {
2741
+ let Q = class extends p {
2812
2742
  constructor() {
2813
- super(...arguments), this.summary = "Show details", this.open = !1, this.panelId = `vox-disclosure-panel-${M.nextId++}`;
2743
+ super(...arguments), this.summary = "Show details", this.open = !1;
2814
2744
  }
2815
2745
  toggle() {
2816
2746
  this.open = !this.open, this.dispatchEvent(
@@ -2818,11 +2748,10 @@ let M = class extends h {
2818
2748
  );
2819
2749
  }
2820
2750
  render() {
2821
- return c`
2751
+ return l`
2822
2752
  <button
2823
2753
  class="trigger"
2824
2754
  aria-expanded=${this.open ? "true" : "false"}
2825
- aria-controls=${this.panelId}
2826
2755
  @click=${this.toggle}
2827
2756
  >
2828
2757
  <svg class="chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
@@ -2830,14 +2759,13 @@ let M = class extends h {
2830
2759
  </svg>
2831
2760
  ${this.summary}
2832
2761
  </button>
2833
- <div id=${this.panelId} class="panel" ?hidden=${!this.open}>
2762
+ <div class="panel" ?hidden=${!this.open}>
2834
2763
  <slot></slot>
2835
2764
  </div>
2836
2765
  `;
2837
2766
  }
2838
2767
  };
2839
- M.nextId = 0;
2840
- M.styles = d`
2768
+ Q.styles = d`
2841
2769
  :host {
2842
2770
  display: block;
2843
2771
  font-family: var(--vox-font-family-base);
@@ -2889,67 +2817,54 @@ M.styles = d`
2889
2817
  display: none;
2890
2818
  }
2891
2819
  `;
2892
- We([
2820
+ ao([
2893
2821
  n()
2894
- ], M.prototype, "summary", 2);
2895
- We([
2822
+ ], Q.prototype, "summary", 2);
2823
+ ao([
2896
2824
  n({ type: Boolean, reflect: !0 })
2897
- ], M.prototype, "open", 2);
2898
- M = We([
2899
- p("vox-disclosure")
2900
- ], M);
2901
- var uo = Object.defineProperty, fo = Object.getOwnPropertyDescriptor, Ye = (o, t, a, r) => {
2902
- for (var e = r > 1 ? void 0 : r ? fo(t, a) : t, s = o.length - 1, i; s >= 0; s--)
2903
- (i = o[s]) && (e = (r ? i(t, a, e) : i(e)) || e);
2904
- return r && e && uo(t, a, e), e;
2825
+ ], Q.prototype, "open", 2);
2826
+ Q = ao([
2827
+ h("vox-disclosure")
2828
+ ], Q);
2829
+ var $t = Object.defineProperty, _t = Object.getOwnPropertyDescriptor, so = (t, o, a, r) => {
2830
+ for (var e = r > 1 ? void 0 : r ? _t(o, a) : o, s = t.length - 1, i; s >= 0; s--)
2831
+ (i = t[s]) && (e = (r ? i(o, a, e) : i(e)) || e);
2832
+ return r && e && $t(o, a, e), e;
2905
2833
  };
2906
- let J = class extends h {
2834
+ let Y = class extends p {
2907
2835
  constructor() {
2908
- super(...arguments), this.label = "Menu", this.open = !1, this.handleOutsideClick = (o) => {
2909
- this.open && !o.composedPath().includes(this) && (this.open = !1);
2910
- }, this.handleFocusOut = (o) => {
2911
- const t = o.relatedTarget;
2912
- this.open && !(t && this.contains(t)) && (this.open = !1);
2913
- }, this.handleKeydown = (o) => {
2914
- var t;
2915
- if (o.key === "Escape" && this.open) {
2916
- this.open = !1, (t = this.renderRoot.querySelector(".trigger")) == null || t.focus();
2836
+ super(...arguments), this.label = "Menu", this.open = !1, this.handleOutsideClick = (t) => {
2837
+ this.open && !t.composedPath().includes(this) && (this.open = !1);
2838
+ }, this.handleKeydown = (t) => {
2839
+ var o;
2840
+ if (t.key === "Escape" && this.open) {
2841
+ this.open = !1, (o = this.renderRoot.querySelector(".trigger")) == null || o.focus();
2917
2842
  return;
2918
2843
  }
2919
- if (o.key === "ArrowDown" || o.key === "ArrowUp") {
2920
- o.preventDefault();
2921
- const a = o.key === "ArrowDown" ? 1 : -1;
2922
- if (!this.open) {
2923
- this.open = !0, this.updateComplete.then(
2924
- () => this.focusItem(o.key === "ArrowDown" ? 0 : -1)
2925
- );
2926
- return;
2927
- }
2928
- const e = [...this.querySelectorAll("a, button")].indexOf(document.activeElement);
2929
- this.focusItem(Math.max(e, 0) + a);
2844
+ if ((t.key === "ArrowDown" || t.key === "ArrowUp") && this.open) {
2845
+ t.preventDefault();
2846
+ const a = [...this.querySelectorAll("a, button")];
2847
+ if (a.length === 0) return;
2848
+ const r = document.activeElement, e = a.indexOf(r), s = t.key === "ArrowDown" ? 1 : -1;
2849
+ a[(Math.max(e, 0) + s + a.length) % a.length].focus();
2930
2850
  }
2931
2851
  };
2932
2852
  }
2933
2853
  connectedCallback() {
2934
- super.connectedCallback(), document.addEventListener("click", this.handleOutsideClick), this.addEventListener("keydown", this.handleKeydown), this.addEventListener("focusout", this.handleFocusOut);
2854
+ super.connectedCallback(), document.addEventListener("click", this.handleOutsideClick), this.addEventListener("keydown", this.handleKeydown);
2935
2855
  }
2936
2856
  disconnectedCallback() {
2937
- super.disconnectedCallback(), document.removeEventListener("click", this.handleOutsideClick), this.removeEventListener("keydown", this.handleKeydown), this.removeEventListener("focusout", this.handleFocusOut);
2938
- }
2939
- focusItem(o) {
2940
- const t = [...this.querySelectorAll("a, button")];
2941
- t.length !== 0 && t[(o + t.length) % t.length].focus();
2857
+ super.disconnectedCallback(), document.removeEventListener("click", this.handleOutsideClick), this.removeEventListener("keydown", this.handleKeydown);
2942
2858
  }
2943
2859
  toggle() {
2944
- this.open = !this.open, this.open && this.updateComplete.then(() => this.focusItem(0));
2860
+ this.open = !this.open;
2945
2861
  }
2946
2862
  render() {
2947
- return c`
2863
+ return l`
2948
2864
  <button
2949
2865
  class="trigger"
2950
2866
  aria-expanded=${this.open ? "true" : "false"}
2951
2867
  aria-haspopup="true"
2952
- aria-controls="menu"
2953
2868
  @click=${this.toggle}
2954
2869
  >
2955
2870
  ${this.label}
@@ -2957,16 +2872,22 @@ let J = class extends h {
2957
2872
  <path d="m6 9 6 6 6-6" />
2958
2873
  </svg>
2959
2874
  </button>
2960
- <div id="menu" class="menu">
2875
+ <div class="menu">
2961
2876
  <slot @click=${() => this.open = !1}></slot>
2962
2877
  </div>
2963
2878
  `;
2964
2879
  }
2965
2880
  };
2966
- J.styles = d`
2881
+ Y.styles = d`
2967
2882
  :host {
2968
2883
  position: relative;
2969
2884
  display: inline-block;
2885
+ /* Without this, a flex/grid container's default stretch alignment
2886
+ grows the host to fill the cross axis while the trigger button
2887
+ inside stays content-sized — and since the menu's "top: 100%" is
2888
+ measured against the host's own box, it then opens far below the
2889
+ trigger instead of right under it. */
2890
+ align-self: flex-start;
2970
2891
  font-family: var(--vox-font-family-base);
2971
2892
  }
2972
2893
 
@@ -3062,124 +2983,280 @@ J.styles = d`
3062
2983
  border-top: 1px solid var(--vox-color-divider);
3063
2984
  }
3064
2985
  `;
3065
- Ye([
2986
+ so([
3066
2987
  n()
3067
- ], J.prototype, "label", 2);
3068
- Ye([
2988
+ ], Y.prototype, "label", 2);
2989
+ so([
3069
2990
  n({ type: Boolean, reflect: !0 })
3070
- ], J.prototype, "open", 2);
3071
- J = Ye([
3072
- p("vox-dropdown")
3073
- ], J);
3074
- var go = Object.defineProperty, bo = Object.getOwnPropertyDescriptor, ue = (o, t, a, r) => {
3075
- for (var e = r > 1 ? void 0 : r ? bo(t, a) : t, s = o.length - 1, i; s >= 0; s--)
3076
- (i = o[s]) && (e = (r ? i(t, a, e) : i(e)) || e);
3077
- return r && e && go(t, a, e), e;
2991
+ ], Y.prototype, "open", 2);
2992
+ Y = so([
2993
+ h("vox-dropdown")
2994
+ ], Y);
2995
+ var Ct = Object.defineProperty, Mt = Object.getOwnPropertyDescriptor, Be = (t, o, a, r) => {
2996
+ for (var e = r > 1 ? void 0 : r ? Mt(o, a) : o, s = t.length - 1, i; s >= 0; s--)
2997
+ (i = t[s]) && (e = (r ? i(o, a, e) : i(e)) || e);
2998
+ return r && e && Ct(o, a, e), e;
3078
2999
  };
3079
- let $e = class extends h {
3000
+ let H = class extends p {
3080
3001
  constructor() {
3081
- super(...arguments), this.single = !1;
3082
- }
3083
- handleToggle(o) {
3084
- if (!this.single) return;
3085
- const t = o.target;
3086
- t.open && this.querySelectorAll("vox-accordion-item").forEach(
3087
- (a) => {
3088
- a !== t && (a.open = !1);
3002
+ super(...arguments), this.placement = "bottom-end", this.open = !1, this.handleOutsideClick = (t) => {
3003
+ this.open && !t.composedPath().includes(this) && this.close();
3004
+ }, this.handleKeydown = (t) => {
3005
+ var o;
3006
+ if (t.key === "Escape" && this.open) {
3007
+ this.close(), (o = this.renderRoot.querySelector(".trigger")) == null || o.focus();
3008
+ return;
3089
3009
  }
3090
- );
3010
+ if ((t.key === "ArrowDown" || t.key === "ArrowUp") && this.open) {
3011
+ t.preventDefault();
3012
+ const a = [...this.querySelectorAll("a, button")].filter(
3013
+ (ye) => ye.slot !== "trigger"
3014
+ );
3015
+ if (a.length === 0) return;
3016
+ const r = document.activeElement, e = a.indexOf(r), s = t.key === "ArrowDown" ? 1 : -1;
3017
+ a[(Math.max(e, 0) + s + a.length) % a.length].focus();
3018
+ }
3019
+ };
3091
3020
  }
3092
- render() {
3093
- return c`<slot @vox-toggle=${this.handleToggle}></slot>`;
3021
+ connectedCallback() {
3022
+ super.connectedCallback(), document.addEventListener("click", this.handleOutsideClick), this.addEventListener("keydown", this.handleKeydown);
3094
3023
  }
3095
- };
3096
- $e.styles = d`
3097
- :host {
3098
- display: block;
3099
- border: 1px solid var(--vox-color-divider);
3100
- border-radius: var(--vox-radius-md);
3101
- overflow: hidden;
3102
- }
3103
-
3104
- ::slotted(vox-accordion-item:not(:first-child)) {
3105
- border-top: 1px solid var(--vox-color-divider);
3106
- }
3107
- `;
3108
- ue([
3109
- n({ type: Boolean })
3110
- ], $e.prototype, "single", 2);
3111
- $e = ue([
3112
- p("vox-accordion")
3113
- ], $e);
3114
- let k = class extends h {
3115
- constructor() {
3116
- super(...arguments), this.heading = "", this.open = !1, this.panelId = `vox-accordion-panel-${k.nextId++}`;
3024
+ disconnectedCallback() {
3025
+ super.disconnectedCallback(), document.removeEventListener("click", this.handleOutsideClick), this.removeEventListener("keydown", this.handleKeydown);
3117
3026
  }
3118
3027
  toggle() {
3119
- this.open = !this.open, this.dispatchEvent(
3120
- new CustomEvent("vox-toggle", { bubbles: !0, composed: !0 })
3121
- );
3028
+ this.open ? this.close() : this.open = !0;
3029
+ }
3030
+ close() {
3031
+ this.open && (this.open = !1, this.dispatchEvent(new CustomEvent("vox-close", { bubbles: !0, composed: !0 })));
3122
3032
  }
3123
3033
  render() {
3124
- return c`
3125
- <h3 style="margin:0">
3126
- <button
3127
- class="trigger"
3128
- aria-expanded=${this.open ? "true" : "false"}
3129
- aria-controls=${this.panelId}
3130
- @click=${this.toggle}
3131
- >
3132
- ${this.heading}
3133
- <svg class="chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
3134
- <path d="m6 9 6 6 6-6" />
3135
- </svg>
3136
- </button>
3137
- </h3>
3138
- <div id=${this.panelId} class="panel" ?hidden=${!this.open}>
3139
- <slot></slot>
3034
+ return l`
3035
+ <button
3036
+ class="trigger"
3037
+ aria-expanded=${this.open ? "true" : "false"}
3038
+ aria-haspopup="true"
3039
+ aria-label=${this.label ?? v}
3040
+ @click=${this.toggle}
3041
+ >
3042
+ <slot name="trigger"></slot>
3043
+ </button>
3044
+ <div class="menu" role="menu">
3045
+ <slot @click=${() => this.close()}></slot>
3140
3046
  </div>
3141
3047
  `;
3142
3048
  }
3143
3049
  };
3144
- k.nextId = 0;
3145
- k.styles = d`
3050
+ H.styles = d`
3146
3051
  :host {
3147
- display: block;
3052
+ position: relative;
3053
+ display: inline-block;
3054
+ /* Without this, a flex/grid container's default stretch alignment
3055
+ grows the host to fill the cross axis (e.g. a tall sibling, or a
3056
+ container given a min-height for layout purposes) while the
3057
+ trigger button inside stays content-sized — and since the menu's
3058
+ "top: 100%" is measured against the host's own box, it then opens
3059
+ far below the trigger instead of right under it. */
3060
+ align-self: flex-start;
3148
3061
  font-family: var(--vox-font-family-base);
3149
3062
  }
3150
3063
 
3151
3064
  .trigger {
3152
- display: flex;
3065
+ display: inline-flex;
3153
3066
  align-items: center;
3154
- justify-content: space-between;
3155
- gap: var(--vox-space-3);
3156
- width: 100%;
3157
- padding: var(--vox-space-4);
3158
3067
  background: none;
3159
3068
  border: none;
3160
- color: var(--vox-color-text-1);
3161
- font-family: inherit;
3162
- font-size: 15px;
3163
- font-weight: 600;
3164
- text-align: left;
3069
+ padding: 0;
3070
+ border-radius: var(--vox-radius-md);
3071
+ color: inherit;
3072
+ font: inherit;
3165
3073
  cursor: pointer;
3166
3074
  }
3167
3075
 
3168
- .trigger:hover {
3169
- color: var(--vox-color-brand-1);
3170
- }
3171
-
3172
3076
  .trigger:focus-visible {
3173
3077
  outline: 2px solid var(--vox-color-brand-1);
3174
- outline-offset: -2px;
3078
+ outline-offset: 2px;
3175
3079
  }
3176
3080
 
3177
- .chevron {
3178
- flex: none;
3179
- width: 16px;
3180
- height: 16px;
3181
- transition: transform var(--vox-transition-fast);
3182
- }
3081
+ .menu {
3082
+ position: absolute;
3083
+ top: calc(100% + 4px);
3084
+ z-index: 10;
3085
+ min-width: 180px;
3086
+ display: none;
3087
+ flex-direction: column;
3088
+ padding: var(--vox-space-2);
3089
+ background-color: var(--vox-color-bg-elv);
3090
+ border: 1px solid var(--vox-color-divider);
3091
+ border-radius: var(--vox-radius-md);
3092
+ box-shadow: var(--vox-shadow-2);
3093
+ }
3094
+
3095
+ :host([placement='bottom-start']) .menu {
3096
+ left: 0;
3097
+ }
3098
+
3099
+ :host([placement='bottom-end']) .menu {
3100
+ right: 0;
3101
+ }
3102
+
3103
+ :host([open]) .menu {
3104
+ display: flex;
3105
+ }
3106
+
3107
+ ::slotted(a),
3108
+ ::slotted(button) {
3109
+ display: block;
3110
+ width: 100%;
3111
+ box-sizing: border-box;
3112
+ padding: var(--vox-space-2) var(--vox-space-3);
3113
+ background: none;
3114
+ border: none;
3115
+ border-radius: var(--vox-radius-sm);
3116
+ color: var(--vox-color-text-1);
3117
+ font-family: inherit;
3118
+ font-size: 14px;
3119
+ text-align: left;
3120
+ text-decoration: none;
3121
+ cursor: pointer;
3122
+ white-space: nowrap;
3123
+ }
3124
+
3125
+ ::slotted(a:hover),
3126
+ ::slotted(button:hover),
3127
+ ::slotted(a:focus-visible),
3128
+ ::slotted(button:focus-visible) {
3129
+ background-color: var(--vox-color-brand-soft);
3130
+ color: var(--vox-color-brand-1);
3131
+ outline: none;
3132
+ }
3133
+
3134
+ ::slotted(hr) {
3135
+ width: 100%;
3136
+ margin: var(--vox-space-1) 0;
3137
+ border: none;
3138
+ border-top: 1px solid var(--vox-color-divider);
3139
+ }
3140
+ `;
3141
+ Be([
3142
+ n()
3143
+ ], H.prototype, "label", 2);
3144
+ Be([
3145
+ n({ reflect: !0 })
3146
+ ], H.prototype, "placement", 2);
3147
+ Be([
3148
+ n({ type: Boolean, reflect: !0 })
3149
+ ], H.prototype, "open", 2);
3150
+ H = Be([
3151
+ h("vox-menu")
3152
+ ], H);
3153
+ var Ot = Object.defineProperty, kt = Object.getOwnPropertyDescriptor, fe = (t, o, a, r) => {
3154
+ for (var e = r > 1 ? void 0 : r ? kt(o, a) : o, s = t.length - 1, i; s >= 0; s--)
3155
+ (i = t[s]) && (e = (r ? i(o, a, e) : i(e)) || e);
3156
+ return r && e && Ot(o, a, e), e;
3157
+ };
3158
+ let Me = class extends p {
3159
+ constructor() {
3160
+ super(...arguments), this.single = !1;
3161
+ }
3162
+ handleToggle(t) {
3163
+ if (!this.single) return;
3164
+ const o = t.target;
3165
+ o.open && this.querySelectorAll("vox-accordion-item").forEach(
3166
+ (a) => {
3167
+ a !== o && (a.open = !1);
3168
+ }
3169
+ );
3170
+ }
3171
+ render() {
3172
+ return l`<slot @vox-toggle=${this.handleToggle}></slot>`;
3173
+ }
3174
+ };
3175
+ Me.styles = d`
3176
+ :host {
3177
+ display: block;
3178
+ border: 1px solid var(--vox-color-divider);
3179
+ border-radius: var(--vox-radius-md);
3180
+ overflow: hidden;
3181
+ }
3182
+
3183
+ ::slotted(vox-accordion-item:not(:first-child)) {
3184
+ border-top: 1px solid var(--vox-color-divider);
3185
+ }
3186
+ `;
3187
+ fe([
3188
+ n({ type: Boolean })
3189
+ ], Me.prototype, "single", 2);
3190
+ Me = fe([
3191
+ h("vox-accordion")
3192
+ ], Me);
3193
+ let ee = class extends p {
3194
+ constructor() {
3195
+ super(...arguments), this.heading = "", this.open = !1;
3196
+ }
3197
+ toggle() {
3198
+ this.open = !this.open, this.dispatchEvent(
3199
+ new CustomEvent("vox-toggle", { bubbles: !0, composed: !0 })
3200
+ );
3201
+ }
3202
+ render() {
3203
+ return l`
3204
+ <h3 style="margin:0">
3205
+ <button
3206
+ class="trigger"
3207
+ aria-expanded=${this.open ? "true" : "false"}
3208
+ @click=${this.toggle}
3209
+ >
3210
+ ${this.heading}
3211
+ <svg class="chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
3212
+ <path d="m6 9 6 6 6-6" />
3213
+ </svg>
3214
+ </button>
3215
+ </h3>
3216
+ <div class="panel" ?hidden=${!this.open}>
3217
+ <slot></slot>
3218
+ </div>
3219
+ `;
3220
+ }
3221
+ };
3222
+ ee.styles = d`
3223
+ :host {
3224
+ display: block;
3225
+ font-family: var(--vox-font-family-base);
3226
+ }
3227
+
3228
+ .trigger {
3229
+ display: flex;
3230
+ align-items: center;
3231
+ justify-content: space-between;
3232
+ gap: var(--vox-space-3);
3233
+ width: 100%;
3234
+ padding: var(--vox-space-4);
3235
+ background: none;
3236
+ border: none;
3237
+ color: var(--vox-color-text-1);
3238
+ font-family: inherit;
3239
+ font-size: 15px;
3240
+ font-weight: 600;
3241
+ text-align: left;
3242
+ cursor: pointer;
3243
+ }
3244
+
3245
+ .trigger:hover {
3246
+ color: var(--vox-color-brand-1);
3247
+ }
3248
+
3249
+ .trigger:focus-visible {
3250
+ outline: 2px solid var(--vox-color-brand-1);
3251
+ outline-offset: -2px;
3252
+ }
3253
+
3254
+ .chevron {
3255
+ flex: none;
3256
+ width: 16px;
3257
+ height: 16px;
3258
+ transition: transform var(--vox-transition-fast);
3259
+ }
3183
3260
 
3184
3261
  :host([open]) .chevron {
3185
3262
  transform: rotate(180deg);
@@ -3204,27 +3281,27 @@ k.styles = d`
3204
3281
  margin-bottom: 0;
3205
3282
  }
3206
3283
  `;
3207
- ue([
3284
+ fe([
3208
3285
  n()
3209
- ], k.prototype, "heading", 2);
3210
- ue([
3286
+ ], ee.prototype, "heading", 2);
3287
+ fe([
3211
3288
  n({ type: Boolean, reflect: !0 })
3212
- ], k.prototype, "open", 2);
3213
- k = ue([
3214
- p("vox-accordion-item")
3215
- ], k);
3216
- var mo = Object.defineProperty, yo = Object.getOwnPropertyDescriptor, fe = (o, t, a, r) => {
3217
- for (var e = r > 1 ? void 0 : r ? yo(t, a) : t, s = o.length - 1, i; s >= 0; s--)
3218
- (i = o[s]) && (e = (r ? i(t, a, e) : i(e)) || e);
3219
- return r && e && mo(t, a, e), e;
3289
+ ], ee.prototype, "open", 2);
3290
+ ee = fe([
3291
+ h("vox-accordion-item")
3292
+ ], ee);
3293
+ var Pt = Object.defineProperty, Lt = Object.getOwnPropertyDescriptor, ge = (t, o, a, r) => {
3294
+ for (var e = r > 1 ? void 0 : r ? Lt(o, a) : o, s = t.length - 1, i; s >= 0; s--)
3295
+ (i = t[s]) && (e = (r ? i(o, a, e) : i(e)) || e);
3296
+ return r && e && Pt(o, a, e), e;
3220
3297
  };
3221
- const wo = {
3298
+ const Vt = {
3222
3299
  info: "info",
3223
3300
  success: "check-circle",
3224
3301
  warning: "warning",
3225
3302
  danger: "x-circle"
3226
3303
  };
3227
- let L = class extends h {
3304
+ let C = class extends p {
3228
3305
  constructor() {
3229
3306
  super(...arguments), this.variant = "info", this.heading = "", this.dismissible = !1, this.open = !0;
3230
3307
  }
@@ -3234,12 +3311,8 @@ let L = class extends h {
3234
3311
  );
3235
3312
  }
3236
3313
  render() {
3237
- const o = this.variant === "danger" || this.variant === "warning";
3238
- return c`
3239
- <div
3240
- class="alert ${this.variant}"
3241
- role=${o ? "alert" : "status"}
3242
- >
3314
+ return l`
3315
+ <div class="alert ${this.variant}" role="alert">
3243
3316
  <svg
3244
3317
  class="icon"
3245
3318
  viewBox="0 0 48 48"
@@ -3250,13 +3323,13 @@ let L = class extends h {
3250
3323
  stroke-linejoin="round"
3251
3324
  aria-hidden="true"
3252
3325
  >
3253
- ${y[wo[this.variant]]}
3326
+ ${m[Vt[this.variant]]}
3254
3327
  </svg>
3255
3328
  <div class="body">
3256
- ${this.heading ? c`<p class="heading">${this.heading}</p>` : v}
3329
+ ${this.heading ? l`<p class="heading">${this.heading}</p>` : v}
3257
3330
  <slot></slot>
3258
3331
  </div>
3259
- ${this.dismissible ? c`
3332
+ ${this.dismissible ? l`
3260
3333
  <button class="close" aria-label="Dismiss" @click=${this.dismiss}>
3261
3334
  <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" aria-hidden="true">
3262
3335
  <path d="M18 6 6 18M6 6l12 12" />
@@ -3267,7 +3340,7 @@ let L = class extends h {
3267
3340
  `;
3268
3341
  }
3269
3342
  };
3270
- L.styles = d`
3343
+ C.styles = d`
3271
3344
  :host {
3272
3345
  display: block;
3273
3346
  font-family: var(--vox-font-family-base);
@@ -3386,35 +3459,35 @@ L.styles = d`
3386
3459
  margin-bottom: 0;
3387
3460
  }
3388
3461
  `;
3389
- fe([
3462
+ ge([
3390
3463
  n()
3391
- ], L.prototype, "variant", 2);
3392
- fe([
3464
+ ], C.prototype, "variant", 2);
3465
+ ge([
3393
3466
  n()
3394
- ], L.prototype, "heading", 2);
3395
- fe([
3467
+ ], C.prototype, "heading", 2);
3468
+ ge([
3396
3469
  n({ type: Boolean })
3397
- ], L.prototype, "dismissible", 2);
3398
- fe([
3470
+ ], C.prototype, "dismissible", 2);
3471
+ ge([
3399
3472
  n({ type: Boolean, reflect: !0 })
3400
- ], L.prototype, "open", 2);
3401
- L = fe([
3402
- p("vox-alert")
3403
- ], L);
3404
- var $o = Object.defineProperty, _o = Object.getOwnPropertyDescriptor, xt = (o, t, a, r) => {
3405
- for (var e = r > 1 ? void 0 : r ? _o(t, a) : t, s = o.length - 1, i; s >= 0; s--)
3406
- (i = o[s]) && (e = (r ? i(t, a, e) : i(e)) || e);
3407
- return r && e && $o(t, a, e), e;
3473
+ ], C.prototype, "open", 2);
3474
+ C = ge([
3475
+ h("vox-alert")
3476
+ ], C);
3477
+ var jt = Object.defineProperty, zt = Object.getOwnPropertyDescriptor, wo = (t, o, a, r) => {
3478
+ for (var e = r > 1 ? void 0 : r ? zt(o, a) : o, s = t.length - 1, i; s >= 0; s--)
3479
+ (i = t[s]) && (e = (r ? i(o, a, e) : i(e)) || e);
3480
+ return r && e && jt(o, a, e), e;
3408
3481
  };
3409
- let _e = class extends h {
3482
+ let Oe = class extends p {
3410
3483
  constructor() {
3411
3484
  super(...arguments), this.variant = "brand";
3412
3485
  }
3413
3486
  render() {
3414
- return c`<span class="badge ${this.variant}"><slot></slot></span>`;
3487
+ return l`<span class="badge ${this.variant}"><slot></slot></span>`;
3415
3488
  }
3416
3489
  };
3417
- _e.styles = d`
3490
+ Oe.styles = d`
3418
3491
  :host {
3419
3492
  display: inline-block;
3420
3493
  }
@@ -3456,24 +3529,24 @@ _e.styles = d`
3456
3529
  color: var(--vox-color-text-2);
3457
3530
  }
3458
3531
  `;
3459
- xt([
3532
+ wo([
3460
3533
  n()
3461
- ], _e.prototype, "variant", 2);
3462
- _e = xt([
3463
- p("vox-badge")
3464
- ], _e);
3465
- var Co = Object.defineProperty, Oo = Object.getOwnPropertyDescriptor, Je = (o, t, a, r) => {
3466
- for (var e = r > 1 ? void 0 : r ? Oo(t, a) : t, s = o.length - 1, i; s >= 0; s--)
3467
- (i = o[s]) && (e = (r ? i(t, a, e) : i(e)) || e);
3468
- return r && e && Co(t, a, e), e;
3534
+ ], Oe.prototype, "variant", 2);
3535
+ Oe = wo([
3536
+ h("vox-badge")
3537
+ ], Oe);
3538
+ var Dt = Object.defineProperty, Et = Object.getOwnPropertyDescriptor, io = (t, o, a, r) => {
3539
+ for (var e = r > 1 ? void 0 : r ? Et(o, a) : o, s = t.length - 1, i; s >= 0; s--)
3540
+ (i = t[s]) && (e = (r ? i(o, a, e) : i(e)) || e);
3541
+ return r && e && Dt(o, a, e), e;
3469
3542
  };
3470
- let ee = class extends h {
3543
+ let oe = class extends p {
3471
3544
  constructor() {
3472
3545
  super(...arguments), this.date = "";
3473
3546
  }
3474
3547
  render() {
3475
- const o = /* @__PURE__ */ new Date(`${this.date}T00:00:00`), t = !Number.isNaN(o.getTime()), a = t ? o.toLocaleString(this.locale, { month: "short" }) : "—", r = t ? o.getDate() : "–";
3476
- return c`
3548
+ const t = /* @__PURE__ */ new Date(`${this.date}T00:00:00`), o = !Number.isNaN(t.getTime()), a = o ? t.toLocaleString(this.locale, { month: "short" }) : "—", r = o ? t.getDate() : "–";
3549
+ return l`
3477
3550
  <time class="tile" datetime=${this.date}>
3478
3551
  <span class="month">${a}</span>
3479
3552
  <span class="day">${r}</span>
@@ -3481,7 +3554,7 @@ let ee = class extends h {
3481
3554
  `;
3482
3555
  }
3483
3556
  };
3484
- ee.styles = d`
3557
+ oe.styles = d`
3485
3558
  :host {
3486
3559
  display: inline-block;
3487
3560
  font-family: var(--vox-font-family-base);
@@ -3517,37 +3590,37 @@ ee.styles = d`
3517
3590
  color: var(--vox-color-text-1);
3518
3591
  }
3519
3592
  `;
3520
- Je([
3593
+ io([
3521
3594
  n()
3522
- ], ee.prototype, "date", 2);
3523
- Je([
3595
+ ], oe.prototype, "date", 2);
3596
+ io([
3524
3597
  n()
3525
- ], ee.prototype, "locale", 2);
3526
- ee = Je([
3527
- p("vox-calendar-tile")
3528
- ], ee);
3529
- var Mo = Object.defineProperty, ko = Object.getOwnPropertyDescriptor, et = (o, t, a, r) => {
3530
- for (var e = r > 1 ? void 0 : r ? ko(t, a) : t, s = o.length - 1, i; s >= 0; s--)
3531
- (i = o[s]) && (e = (r ? i(t, a, e) : i(e)) || e);
3532
- return r && e && Mo(t, a, e), e;
3598
+ ], oe.prototype, "locale", 2);
3599
+ oe = io([
3600
+ h("vox-calendar-tile")
3601
+ ], oe);
3602
+ var Ht = Object.defineProperty, St = Object.getOwnPropertyDescriptor, no = (t, o, a, r) => {
3603
+ for (var e = r > 1 ? void 0 : r ? St(o, a) : o, s = t.length - 1, i; s >= 0; s--)
3604
+ (i = t[s]) && (e = (r ? i(o, a, e) : i(e)) || e);
3605
+ return r && e && Ht(o, a, e), e;
3533
3606
  };
3534
- const Lo = {
3607
+ const At = {
3535
3608
  info: "Info",
3536
3609
  tip: "Tip",
3537
3610
  warning: "Warning",
3538
3611
  danger: "Danger"
3539
- }, Po = {
3612
+ }, Bt = {
3540
3613
  info: "info",
3541
3614
  tip: "check-circle",
3542
3615
  warning: "warning",
3543
3616
  danger: "x-circle"
3544
3617
  };
3545
- let te = class extends h {
3618
+ let te = class extends p {
3546
3619
  constructor() {
3547
3620
  super(...arguments), this.variant = "info";
3548
3621
  }
3549
3622
  render() {
3550
- return c`
3623
+ return l`
3551
3624
  <div class="callout ${this.variant}" role="note">
3552
3625
  <svg
3553
3626
  class="icon"
@@ -3559,10 +3632,10 @@ let te = class extends h {
3559
3632
  stroke-linejoin="round"
3560
3633
  aria-hidden="true"
3561
3634
  >
3562
- ${y[Po[this.variant]]}
3635
+ ${m[Bt[this.variant]]}
3563
3636
  </svg>
3564
3637
  <div class="content">
3565
- <p class="heading">${this.heading ?? Lo[this.variant]}</p>
3638
+ <p class="heading">${this.heading ?? At[this.variant]}</p>
3566
3639
  <slot></slot>
3567
3640
  </div>
3568
3641
  </div>
@@ -3652,42 +3725,42 @@ te.styles = d`
3652
3725
  margin-bottom: 0;
3653
3726
  }
3654
3727
  `;
3655
- et([
3728
+ no([
3656
3729
  n()
3657
3730
  ], te.prototype, "variant", 2);
3658
- et([
3731
+ no([
3659
3732
  n()
3660
3733
  ], te.prototype, "heading", 2);
3661
- te = et([
3662
- p("vox-callout")
3734
+ te = no([
3735
+ h("vox-callout")
3663
3736
  ], te);
3664
- var Vo = Object.defineProperty, jo = Object.getOwnPropertyDescriptor, ze = (o, t, a, r) => {
3665
- for (var e = r > 1 ? void 0 : r ? jo(t, a) : t, s = o.length - 1, i; s >= 0; s--)
3666
- (i = o[s]) && (e = (r ? i(t, a, e) : i(e)) || e);
3667
- return r && e && Vo(t, a, e), e;
3737
+ var qt = Object.defineProperty, It = Object.getOwnPropertyDescriptor, qe = (t, o, a, r) => {
3738
+ for (var e = r > 1 ? void 0 : r ? It(o, a) : o, s = t.length - 1, i; s >= 0; s--)
3739
+ (i = t[s]) && (e = (r ? i(o, a, e) : i(e)) || e);
3740
+ return r && e && qt(o, a, e), e;
3668
3741
  };
3669
- let I = class extends h {
3742
+ let S = class extends p {
3670
3743
  constructor() {
3671
3744
  super(...arguments), this.heading = "", this.hasIcon = !1, this.hasBadge = !1, this.hasFooter = !1;
3672
3745
  }
3673
- handleIconSlotChange(o) {
3674
- const t = o.target;
3675
- this.hasIcon = t.assignedNodes({ flatten: !0 }).length > 0, this.requestUpdate();
3746
+ handleIconSlotChange(t) {
3747
+ const o = t.target;
3748
+ this.hasIcon = o.assignedNodes({ flatten: !0 }).length > 0, this.requestUpdate();
3676
3749
  }
3677
- handleBadgeSlotChange(o) {
3678
- const t = o.target;
3679
- this.hasBadge = t.assignedNodes({ flatten: !0 }).length > 0, this.requestUpdate();
3750
+ handleBadgeSlotChange(t) {
3751
+ const o = t.target;
3752
+ this.hasBadge = o.assignedNodes({ flatten: !0 }).length > 0, this.requestUpdate();
3680
3753
  }
3681
- handleFooterSlotChange(o) {
3682
- const t = o.target;
3683
- this.hasFooter = t.assignedNodes({ flatten: !0 }).length > 0, this.requestUpdate();
3754
+ handleFooterSlotChange(t) {
3755
+ const o = t.target;
3756
+ this.hasFooter = o.assignedNodes({ flatten: !0 }).length > 0, this.requestUpdate();
3684
3757
  }
3685
3758
  render() {
3686
- const o = c`
3759
+ const t = l`
3687
3760
  <div class="badge ${this.hasBadge ? "has-badge" : ""}">
3688
3761
  <slot name="badge" @slotchange=${this.handleBadgeSlotChange}></slot>
3689
3762
  </div>
3690
- <div class="icon ${this.hasIcon ? "has-icon" : ""}" aria-hidden="true">
3763
+ <div class="icon ${this.hasIcon ? "has-icon" : ""}">
3691
3764
  <slot name="icon" @slotchange=${this.handleIconSlotChange}></slot>
3692
3765
  </div>
3693
3766
  <h3 class="heading">${this.heading}</h3>
@@ -3696,10 +3769,10 @@ let I = class extends h {
3696
3769
  <slot name="footer" @slotchange=${this.handleFooterSlotChange}></slot>
3697
3770
  </div>
3698
3771
  `;
3699
- return this.href !== void 0 ? c`<a class="card" href=${this.href} target=${this.target ?? v}>${o}</a>` : c`<div class="card">${o}</div>`;
3772
+ return this.href !== void 0 ? l`<a class="card" href=${this.href} target=${this.target ?? v}>${t}</a>` : l`<div class="card">${t}</div>`;
3700
3773
  }
3701
3774
  };
3702
- I.styles = d`
3775
+ S.styles = d`
3703
3776
  :host {
3704
3777
  display: block;
3705
3778
  }
@@ -3784,39 +3857,39 @@ I.styles = d`
3784
3857
  display: none;
3785
3858
  }
3786
3859
  `;
3787
- ze([
3860
+ qe([
3788
3861
  n()
3789
- ], I.prototype, "heading", 2);
3790
- ze([
3862
+ ], S.prototype, "heading", 2);
3863
+ qe([
3791
3864
  n()
3792
- ], I.prototype, "href", 2);
3793
- ze([
3865
+ ], S.prototype, "href", 2);
3866
+ qe([
3794
3867
  n()
3795
- ], I.prototype, "target", 2);
3796
- I = ze([
3797
- p("vox-card")
3798
- ], I);
3799
- var Do = Object.defineProperty, zo = Object.getOwnPropertyDescriptor, ut = (o, t, a, r) => {
3800
- for (var e = r > 1 ? void 0 : r ? zo(t, a) : t, s = o.length - 1, i; s >= 0; s--)
3801
- (i = o[s]) && (e = (r ? i(t, a, e) : i(e)) || e);
3802
- return r && e && Do(t, a, e), e;
3868
+ ], S.prototype, "target", 2);
3869
+ S = qe([
3870
+ h("vox-card")
3871
+ ], S);
3872
+ var Nt = Object.defineProperty, Tt = Object.getOwnPropertyDescriptor, $o = (t, o, a, r) => {
3873
+ for (var e = r > 1 ? void 0 : r ? Tt(o, a) : o, s = t.length - 1, i; s >= 0; s--)
3874
+ (i = t[s]) && (e = (r ? i(o, a, e) : i(e)) || e);
3875
+ return r && e && Nt(o, a, e), e;
3803
3876
  };
3804
- let Ce = class extends h {
3877
+ let ke = class extends p {
3805
3878
  constructor() {
3806
3879
  super(...arguments), this.heading = "", this.hasBody = !1, this.hasActions = !1;
3807
3880
  }
3808
- handleBodySlotChange(o) {
3809
- const t = o.target;
3810
- this.hasBody = t.assignedNodes({ flatten: !0 }).length > 0, this.requestUpdate();
3881
+ handleBodySlotChange(t) {
3882
+ const o = t.target;
3883
+ this.hasBody = o.assignedNodes({ flatten: !0 }).length > 0, this.requestUpdate();
3811
3884
  }
3812
- handleActionsSlotChange(o) {
3813
- const t = o.target;
3814
- this.hasActions = t.assignedNodes({ flatten: !0 }).length > 0, this.requestUpdate();
3885
+ handleActionsSlotChange(t) {
3886
+ const o = t.target;
3887
+ this.hasActions = o.assignedNodes({ flatten: !0 }).length > 0, this.requestUpdate();
3815
3888
  }
3816
3889
  render() {
3817
- return c`
3890
+ return l`
3818
3891
  <div class="band">
3819
- ${this.heading ? c`<h2 class="heading">${this.heading}</h2>` : v}
3892
+ ${this.heading ? l`<h2 class="heading">${this.heading}</h2>` : v}
3820
3893
  <div class="body ${this.hasBody ? "has-content" : ""}">
3821
3894
  <slot @slotchange=${this.handleBodySlotChange}></slot>
3822
3895
  </div>
@@ -3827,7 +3900,7 @@ let Ce = class extends h {
3827
3900
  `;
3828
3901
  }
3829
3902
  };
3830
- Ce.styles = d`
3903
+ ke.styles = d`
3831
3904
  :host {
3832
3905
  display: block;
3833
3906
  font-family: var(--vox-font-family-base);
@@ -3882,25 +3955,86 @@ Ce.styles = d`
3882
3955
  display: none;
3883
3956
  }
3884
3957
  `;
3885
- ut([
3958
+ $o([
3886
3959
  n()
3887
- ], Ce.prototype, "heading", 2);
3888
- Ce = ut([
3889
- p("vox-cta-band")
3890
- ], Ce);
3891
- var Eo = Object.defineProperty, Ho = Object.getOwnPropertyDescriptor, ft = (o, t, a, r) => {
3892
- for (var e = r > 1 ? void 0 : r ? Ho(t, a) : t, s = o.length - 1, i; s >= 0; s--)
3893
- (i = o[s]) && (e = (r ? i(t, a, e) : i(e)) || e);
3894
- return r && e && Eo(t, a, e), e;
3960
+ ], ke.prototype, "heading", 2);
3961
+ ke = $o([
3962
+ h("vox-cta-band")
3963
+ ], ke);
3964
+ var Rt = Object.defineProperty, Ft = Object.getOwnPropertyDescriptor, _o = (t, o, a, r) => {
3965
+ for (var e = r > 1 ? void 0 : r ? Ft(o, a) : o, s = t.length - 1, i; s >= 0; s--)
3966
+ (i = t[s]) && (e = (r ? i(o, a, e) : i(e)) || e);
3967
+ return r && e && Rt(o, a, e), e;
3895
3968
  };
3896
- let Oe = class extends h {
3969
+ let Pe = class extends p {
3970
+ constructor() {
3971
+ super(...arguments), this.name = "", this.hasIcon = !1;
3972
+ }
3973
+ handleIconSlotChange(t) {
3974
+ const o = t.target;
3975
+ this.hasIcon = o.assignedNodes({ flatten: !0 }).length > 0, this.requestUpdate();
3976
+ }
3977
+ render() {
3978
+ return l`
3979
+ <span class="icon ${this.hasIcon ? "has-icon" : ""}">
3980
+ <slot name="icon" @slotchange=${this.handleIconSlotChange}></slot>
3981
+ </span>
3982
+ ${this.name ? l`<span class="sr-only">${this.name}: </span>` : v}
3983
+ <slot></slot>
3984
+ `;
3985
+ }
3986
+ };
3987
+ Pe.styles = d`
3988
+ :host {
3989
+ display: inline-flex;
3990
+ align-items: center;
3991
+ gap: var(--vox-space-1);
3992
+ font-family: var(--vox-font-family-base);
3993
+ font-size: 13px;
3994
+ color: var(--vox-color-text-2);
3995
+ }
3996
+
3997
+ .icon {
3998
+ display: flex;
3999
+ flex: none;
4000
+ color: var(--vox-color-text-3);
4001
+ }
4002
+
4003
+ .icon:not(.has-icon) {
4004
+ display: none;
4005
+ }
4006
+
4007
+ .sr-only {
4008
+ position: absolute;
4009
+ width: 1px;
4010
+ height: 1px;
4011
+ padding: 0;
4012
+ margin: -1px;
4013
+ overflow: hidden;
4014
+ clip: rect(0, 0, 0, 0);
4015
+ white-space: nowrap;
4016
+ border: 0;
4017
+ }
4018
+ `;
4019
+ _o([
4020
+ n()
4021
+ ], Pe.prototype, "name", 2);
4022
+ Pe = _o([
4023
+ h("vox-datum")
4024
+ ], Pe);
4025
+ var Zt = Object.defineProperty, Kt = Object.getOwnPropertyDescriptor, Co = (t, o, a, r) => {
4026
+ for (var e = r > 1 ? void 0 : r ? Kt(o, a) : o, s = t.length - 1, i; s >= 0; s--)
4027
+ (i = t[s]) && (e = (r ? i(o, a, e) : i(e)) || e);
4028
+ return r && e && Zt(o, a, e), e;
4029
+ };
4030
+ let Le = class extends p {
3897
4031
  constructor() {
3898
4032
  super(...arguments), this.heading = "";
3899
4033
  }
3900
4034
  render() {
3901
- return c`
4035
+ return l`
3902
4036
  <div class="empty">
3903
- <div class="icon" aria-hidden="true"><slot name="icon"></slot></div>
4037
+ <div class="icon"><slot name="icon"></slot></div>
3904
4038
  <h3 class="heading">${this.heading}</h3>
3905
4039
  <div class="body"><slot></slot></div>
3906
4040
  <div class="actions"><slot name="actions"></slot></div>
@@ -3908,7 +4042,7 @@ let Oe = class extends h {
3908
4042
  `;
3909
4043
  }
3910
4044
  };
3911
- Oe.styles = d`
4045
+ Le.styles = d`
3912
4046
  :host {
3913
4047
  display: block;
3914
4048
  font-family: var(--vox-font-family-base);
@@ -3952,20 +4086,20 @@ Oe.styles = d`
3952
4086
  margin-top: var(--vox-space-4);
3953
4087
  }
3954
4088
  `;
3955
- ft([
4089
+ Co([
3956
4090
  n()
3957
- ], Oe.prototype, "heading", 2);
3958
- Oe = ft([
3959
- p("vox-empty-state")
3960
- ], Oe);
3961
- var So = Object.defineProperty, Ao = Object.getOwnPropertyDescriptor, tt = (o, t, a, r) => {
3962
- for (var e = r > 1 ? void 0 : r ? Ao(t, a) : t, s = o.length - 1, i; s >= 0; s--)
3963
- (i = o[s]) && (e = (r ? i(t, a, e) : i(e)) || e);
3964
- return r && e && So(t, a, e), e;
4091
+ ], Le.prototype, "heading", 2);
4092
+ Le = Co([
4093
+ h("vox-empty-state")
4094
+ ], Le);
4095
+ var Ut = Object.defineProperty, Gt = Object.getOwnPropertyDescriptor, lo = (t, o, a, r) => {
4096
+ for (var e = r > 1 ? void 0 : r ? Gt(o, a) : o, s = t.length - 1, i; s >= 0; s--)
4097
+ (i = t[s]) && (e = (r ? i(o, a, e) : i(e)) || e);
4098
+ return r && e && Ut(o, a, e), e;
3965
4099
  };
3966
- let Ne = class extends h {
4100
+ let Ue = class extends p {
3967
4101
  render() {
3968
- return c`
4102
+ return l`
3969
4103
  <footer>
3970
4104
  <div class="inner">
3971
4105
  <div class="columns"><slot></slot></div>
@@ -3975,7 +4109,7 @@ let Ne = class extends h {
3975
4109
  `;
3976
4110
  }
3977
4111
  };
3978
- Ne.styles = d`
4112
+ Ue.styles = d`
3979
4113
  :host {
3980
4114
  display: block;
3981
4115
  font-family: var(--vox-font-family-base);
@@ -4003,21 +4137,21 @@ Ne.styles = d`
4003
4137
  color: var(--vox-color-text-3);
4004
4138
  }
4005
4139
  `;
4006
- Ne = tt([
4007
- p("vox-footer")
4008
- ], Ne);
4009
- let Me = class extends h {
4140
+ Ue = lo([
4141
+ h("vox-footer")
4142
+ ], Ue);
4143
+ let Ve = class extends p {
4010
4144
  constructor() {
4011
4145
  super(...arguments), this.heading = "";
4012
4146
  }
4013
4147
  render() {
4014
- return c`
4148
+ return l`
4015
4149
  <h3 class="heading">${this.heading}</h3>
4016
4150
  <div class="links"><slot></slot></div>
4017
4151
  `;
4018
4152
  }
4019
4153
  };
4020
- Me.styles = d`
4154
+ Ve.styles = d`
4021
4155
  :host {
4022
4156
  display: block;
4023
4157
  font-family: var(--vox-font-family-base);
@@ -4049,18 +4183,18 @@ Me.styles = d`
4049
4183
  text-decoration: underline;
4050
4184
  }
4051
4185
  `;
4052
- tt([
4186
+ lo([
4053
4187
  n()
4054
- ], Me.prototype, "heading", 2);
4055
- Me = tt([
4056
- p("vox-footer-column")
4057
- ], Me);
4058
- var Io = Object.defineProperty, Bo = Object.getOwnPropertyDescriptor, Ee = (o, t, a, r) => {
4059
- for (var e = r > 1 ? void 0 : r ? Bo(t, a) : t, s = o.length - 1, i; s >= 0; s--)
4060
- (i = o[s]) && (e = (r ? i(t, a, e) : i(e)) || e);
4061
- return r && e && Io(t, a, e), e;
4188
+ ], Ve.prototype, "heading", 2);
4189
+ Ve = lo([
4190
+ h("vox-footer-column")
4191
+ ], Ve);
4192
+ var Xt = Object.defineProperty, Jt = Object.getOwnPropertyDescriptor, Ie = (t, o, a, r) => {
4193
+ for (var e = r > 1 ? void 0 : r ? Jt(o, a) : o, s = t.length - 1, i; s >= 0; s--)
4194
+ (i = t[s]) && (e = (r ? i(o, a, e) : i(e)) || e);
4195
+ return r && e && Xt(o, a, e), e;
4062
4196
  };
4063
- let B = class extends h {
4197
+ let A = class extends p {
4064
4198
  constructor() {
4065
4199
  super(...arguments), this.cols = 0, this.min = "240px", this.gap = "md";
4066
4200
  }
@@ -4068,10 +4202,10 @@ let B = class extends h {
4068
4202
  this.style.gridTemplateColumns = this.cols > 0 ? `repeat(${this.cols}, minmax(0, 1fr))` : `repeat(auto-fit, minmax(min(${this.min}, 100%), 1fr))`;
4069
4203
  }
4070
4204
  render() {
4071
- return c`<slot></slot>`;
4205
+ return l`<slot></slot>`;
4072
4206
  }
4073
4207
  };
4074
- B.styles = d`
4208
+ A.styles = d`
4075
4209
  :host {
4076
4210
  display: grid;
4077
4211
  }
@@ -4088,35 +4222,35 @@ B.styles = d`
4088
4222
  gap: var(--vox-space-6);
4089
4223
  }
4090
4224
  `;
4091
- Ee([
4225
+ Ie([
4092
4226
  n({ type: Number })
4093
- ], B.prototype, "cols", 2);
4094
- Ee([
4227
+ ], A.prototype, "cols", 2);
4228
+ Ie([
4095
4229
  n()
4096
- ], B.prototype, "min", 2);
4097
- Ee([
4230
+ ], A.prototype, "min", 2);
4231
+ Ie([
4098
4232
  n({ reflect: !0 })
4099
- ], B.prototype, "gap", 2);
4100
- B = Ee([
4101
- p("vox-grid")
4102
- ], B);
4103
- var qo = Object.defineProperty, No = Object.getOwnPropertyDescriptor, ot = (o, t, a, r) => {
4104
- for (var e = r > 1 ? void 0 : r ? No(t, a) : t, s = o.length - 1, i; s >= 0; s--)
4105
- (i = o[s]) && (e = (r ? i(t, a, e) : i(e)) || e);
4106
- return r && e && qo(t, a, e), e;
4233
+ ], A.prototype, "gap", 2);
4234
+ A = Ie([
4235
+ h("vox-grid")
4236
+ ], A);
4237
+ var Wt = Object.defineProperty, Qt = Object.getOwnPropertyDescriptor, co = (t, o, a, r) => {
4238
+ for (var e = r > 1 ? void 0 : r ? Qt(o, a) : o, s = t.length - 1, i; s >= 0; s--)
4239
+ (i = t[s]) && (e = (r ? i(o, a, e) : i(e)) || e);
4240
+ return r && e && Wt(o, a, e), e;
4107
4241
  };
4108
- let oe = class extends h {
4242
+ let re = class extends p {
4109
4243
  constructor() {
4110
4244
  super(...arguments), this.eyebrow = "", this.heading = "", this.hasActions = !1;
4111
4245
  }
4112
- handleActionsSlotChange(o) {
4113
- const t = o.target;
4114
- this.hasActions = t.assignedNodes({ flatten: !0 }).length > 0, this.requestUpdate();
4246
+ handleActionsSlotChange(t) {
4247
+ const o = t.target;
4248
+ this.hasActions = o.assignedNodes({ flatten: !0 }).length > 0, this.requestUpdate();
4115
4249
  }
4116
4250
  render() {
4117
- return c`
4251
+ return l`
4118
4252
  <header class="hero">
4119
- ${this.eyebrow ? c`<p class="eyebrow">${this.eyebrow}</p>` : v}
4253
+ ${this.eyebrow ? l`<p class="eyebrow">${this.eyebrow}</p>` : v}
4120
4254
  <h1 class="heading">${this.heading}</h1>
4121
4255
  <div class="body"><slot></slot></div>
4122
4256
  <div class="actions ${this.hasActions ? "has-content" : ""}">
@@ -4126,7 +4260,7 @@ let oe = class extends h {
4126
4260
  `;
4127
4261
  }
4128
4262
  };
4129
- oe.styles = d`
4263
+ re.styles = d`
4130
4264
  :host {
4131
4265
  display: block;
4132
4266
  font-family: var(--vox-font-family-base);
@@ -4183,48 +4317,48 @@ oe.styles = d`
4183
4317
  display: none;
4184
4318
  }
4185
4319
  `;
4186
- ot([
4320
+ co([
4187
4321
  n()
4188
- ], oe.prototype, "eyebrow", 2);
4189
- ot([
4322
+ ], re.prototype, "eyebrow", 2);
4323
+ co([
4190
4324
  n()
4191
- ], oe.prototype, "heading", 2);
4192
- oe = ot([
4193
- p("vox-hero")
4194
- ], oe);
4195
- var To = Object.defineProperty, Fo = Object.getOwnPropertyDescriptor, He = (o, t, a, r) => {
4196
- for (var e = r > 1 ? void 0 : r ? Fo(t, a) : t, s = o.length - 1, i; s >= 0; s--)
4197
- (i = o[s]) && (e = (r ? i(t, a, e) : i(e)) || e);
4198
- return r && e && To(t, a, e), e;
4325
+ ], re.prototype, "heading", 2);
4326
+ re = co([
4327
+ h("vox-hero")
4328
+ ], re);
4329
+ var Yt = Object.defineProperty, er = Object.getOwnPropertyDescriptor, Ne = (t, o, a, r) => {
4330
+ for (var e = r > 1 ? void 0 : r ? er(o, a) : o, s = t.length - 1, i; s >= 0; s--)
4331
+ (i = t[s]) && (e = (r ? i(o, a, e) : i(e)) || e);
4332
+ return r && e && Yt(o, a, e), e;
4199
4333
  };
4200
- let Te = class extends h {
4334
+ let Ge = class extends p {
4201
4335
  render() {
4202
- return c`<slot></slot>`;
4336
+ return l`<slot></slot>`;
4203
4337
  }
4204
4338
  };
4205
- Te.styles = d`
4339
+ Ge.styles = d`
4206
4340
  :host {
4207
4341
  display: grid;
4208
4342
  grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr));
4209
4343
  gap: var(--vox-space-4);
4210
4344
  }
4211
4345
  `;
4212
- Te = He([
4213
- p("vox-link-hub")
4214
- ], Te);
4215
- let re = class extends h {
4346
+ Ge = Ne([
4347
+ h("vox-link-hub")
4348
+ ], Ge);
4349
+ let ae = class extends p {
4216
4350
  constructor() {
4217
4351
  super(...arguments), this.href = "#", this.heading = "", this.hasIcon = !1;
4218
4352
  }
4219
- handleIconSlotChange(o) {
4220
- const t = o.target;
4221
- this.hasIcon = t.assignedNodes({ flatten: !0 }).length > 0, this.requestUpdate();
4353
+ handleIconSlotChange(t) {
4354
+ const o = t.target;
4355
+ this.hasIcon = o.assignedNodes({ flatten: !0 }).length > 0, this.requestUpdate();
4222
4356
  }
4223
4357
  render() {
4224
- return c`
4358
+ return l`
4225
4359
  <a href=${this.href}>
4226
4360
  <span class="heading">
4227
- <span class="icon ${this.hasIcon ? "has-icon" : ""}" aria-hidden="true">
4361
+ <span class="icon ${this.hasIcon ? "has-icon" : ""}">
4228
4362
  <slot name="icon" @slotchange=${this.handleIconSlotChange}></slot>
4229
4363
  </span>
4230
4364
  ${this.heading}
@@ -4238,7 +4372,7 @@ let re = class extends h {
4238
4372
  `;
4239
4373
  }
4240
4374
  };
4241
- re.styles = d`
4375
+ ae.styles = d`
4242
4376
  :host {
4243
4377
  display: block;
4244
4378
  font-family: var(--vox-font-family-base);
@@ -4299,26 +4433,26 @@ re.styles = d`
4299
4433
  color: var(--vox-color-text-2);
4300
4434
  }
4301
4435
  `;
4302
- He([
4436
+ Ne([
4303
4437
  n()
4304
- ], re.prototype, "href", 2);
4305
- He([
4438
+ ], ae.prototype, "href", 2);
4439
+ Ne([
4306
4440
  n()
4307
- ], re.prototype, "heading", 2);
4308
- re = He([
4309
- p("vox-link-hub-item")
4310
- ], re);
4311
- var Ro = Object.defineProperty, Zo = Object.getOwnPropertyDescriptor, rt = (o, t, a, r) => {
4312
- for (var e = r > 1 ? void 0 : r ? Zo(t, a) : t, s = o.length - 1, i; s >= 0; s--)
4313
- (i = o[s]) && (e = (r ? i(t, a, e) : i(e)) || e);
4314
- return r && e && Ro(t, a, e), e;
4441
+ ], ae.prototype, "heading", 2);
4442
+ ae = Ne([
4443
+ h("vox-link-hub-item")
4444
+ ], ae);
4445
+ var or = Object.defineProperty, tr = Object.getOwnPropertyDescriptor, ho = (t, o, a, r) => {
4446
+ for (var e = r > 1 ? void 0 : r ? tr(o, a) : o, s = t.length - 1, i; s >= 0; s--)
4447
+ (i = t[s]) && (e = (r ? i(o, a, e) : i(e)) || e);
4448
+ return r && e && or(o, a, e), e;
4315
4449
  };
4316
- let ae = class extends h {
4450
+ let se = class extends p {
4317
4451
  constructor() {
4318
4452
  super(...arguments), this.size = "md", this.label = "Loading";
4319
4453
  }
4320
4454
  render() {
4321
- return c`
4455
+ return l`
4322
4456
  <div role="status">
4323
4457
  <div class="spinner"></div>
4324
4458
  <span class="visually-hidden">${this.label}</span>
@@ -4326,7 +4460,7 @@ let ae = class extends h {
4326
4460
  `;
4327
4461
  }
4328
4462
  };
4329
- ae.styles = d`
4463
+ se.styles = d`
4330
4464
  :host {
4331
4465
  display: inline-block;
4332
4466
  }
@@ -4379,33 +4513,33 @@ ae.styles = d`
4379
4513
  white-space: nowrap;
4380
4514
  }
4381
4515
  `;
4382
- rt([
4516
+ ho([
4383
4517
  n({ reflect: !0 })
4384
- ], ae.prototype, "size", 2);
4385
- rt([
4518
+ ], se.prototype, "size", 2);
4519
+ ho([
4386
4520
  n()
4387
- ], ae.prototype, "label", 2);
4388
- ae = rt([
4389
- p("vox-loader")
4390
- ], ae);
4391
- var Uo = Object.defineProperty, Ko = Object.getOwnPropertyDescriptor, gt = (o, t, a, r) => {
4392
- for (var e = r > 1 ? void 0 : r ? Ko(t, a) : t, s = o.length - 1, i; s >= 0; s--)
4393
- (i = o[s]) && (e = (r ? i(t, a, e) : i(e)) || e);
4394
- return r && e && Uo(t, a, e), e;
4521
+ ], se.prototype, "label", 2);
4522
+ se = ho([
4523
+ h("vox-loader")
4524
+ ], se);
4525
+ var rr = Object.defineProperty, ar = Object.getOwnPropertyDescriptor, Mo = (t, o, a, r) => {
4526
+ for (var e = r > 1 ? void 0 : r ? ar(o, a) : o, s = t.length - 1, i; s >= 0; s--)
4527
+ (i = t[s]) && (e = (r ? i(o, a, e) : i(e)) || e);
4528
+ return r && e && rr(o, a, e), e;
4395
4529
  };
4396
- let ke = class extends h {
4530
+ let je = class extends p {
4397
4531
  constructor() {
4398
4532
  super(...arguments), this.label = "Pagination";
4399
4533
  }
4400
4534
  render() {
4401
- return c`
4535
+ return l`
4402
4536
  <nav aria-label=${this.label}>
4403
4537
  <slot></slot>
4404
4538
  </nav>
4405
4539
  `;
4406
4540
  }
4407
4541
  };
4408
- ke.styles = d`
4542
+ je.styles = d`
4409
4543
  :host {
4410
4544
  display: block;
4411
4545
  font-family: var(--vox-font-family-base);
@@ -4417,8 +4551,7 @@ ke.styles = d`
4417
4551
  flex-wrap: wrap;
4418
4552
  }
4419
4553
 
4420
- ::slotted(a),
4421
- ::slotted(span) {
4554
+ ::slotted(a) {
4422
4555
  display: inline-flex;
4423
4556
  align-items: center;
4424
4557
  justify-content: center;
@@ -4440,42 +4573,42 @@ ke.styles = d`
4440
4573
  background-color: var(--vox-color-brand-soft);
4441
4574
  }
4442
4575
 
4443
- ::slotted([aria-current='page']) {
4576
+ ::slotted(a[aria-current='page']) {
4444
4577
  background-color: var(--vox-color-brand-3);
4445
4578
  color: var(--vox-color-text-inverse);
4446
4579
  font-weight: 600;
4447
4580
  }
4448
4581
  `;
4449
- gt([
4582
+ Mo([
4450
4583
  n()
4451
- ], ke.prototype, "label", 2);
4452
- ke = gt([
4453
- p("vox-pagination")
4454
- ], ke);
4455
- var Go = Object.defineProperty, Xo = Object.getOwnPropertyDescriptor, at = (o, t, a, r) => {
4456
- for (var e = r > 1 ? void 0 : r ? Xo(t, a) : t, s = o.length - 1, i; s >= 0; s--)
4457
- (i = o[s]) && (e = (r ? i(t, a, e) : i(e)) || e);
4458
- return r && e && Go(t, a, e), e;
4584
+ ], je.prototype, "label", 2);
4585
+ je = Mo([
4586
+ h("vox-pagination")
4587
+ ], je);
4588
+ var sr = Object.defineProperty, ir = Object.getOwnPropertyDescriptor, po = (t, o, a, r) => {
4589
+ for (var e = r > 1 ? void 0 : r ? ir(o, a) : o, s = t.length - 1, i; s >= 0; s--)
4590
+ (i = t[s]) && (e = (r ? i(o, a, e) : i(e)) || e);
4591
+ return r && e && sr(o, a, e), e;
4459
4592
  };
4460
- let se = class extends h {
4593
+ let ie = class extends p {
4461
4594
  constructor() {
4462
4595
  super(...arguments), this.attribution = "", this.detail = "";
4463
4596
  }
4464
4597
  render() {
4465
- return c`
4598
+ return l`
4466
4599
  <blockquote>
4467
4600
  <div class="text"><slot></slot></div>
4468
- ${this.attribution ? c`
4601
+ ${this.attribution ? l`
4469
4602
  <footer>
4470
4603
  <span class="attribution">${this.attribution}</span>
4471
- ${this.detail ? c`<span class="detail"> — ${this.detail}</span>` : v}
4604
+ ${this.detail ? l`<span class="detail"> — ${this.detail}</span>` : v}
4472
4605
  </footer>
4473
4606
  ` : v}
4474
4607
  </blockquote>
4475
4608
  `;
4476
4609
  }
4477
4610
  };
4478
- se.styles = d`
4611
+ ie.styles = d`
4479
4612
  :host {
4480
4613
  display: block;
4481
4614
  font-family: var(--vox-font-family-base);
@@ -4517,30 +4650,248 @@ se.styles = d`
4517
4650
  color: var(--vox-color-text-2);
4518
4651
  }
4519
4652
  `;
4520
- at([
4653
+ po([
4521
4654
  n()
4522
- ], se.prototype, "attribution", 2);
4523
- at([
4655
+ ], ie.prototype, "attribution", 2);
4656
+ po([
4524
4657
  n()
4525
- ], se.prototype, "detail", 2);
4526
- se = at([
4527
- p("vox-quote")
4528
- ], se);
4529
- var Qo = Object.defineProperty, Wo = Object.getOwnPropertyDescriptor, D = (o, t, a, r) => {
4530
- for (var e = r > 1 ? void 0 : r ? Wo(t, a) : t, s = o.length - 1, i; s >= 0; s--)
4531
- (i = o[s]) && (e = (r ? i(t, a, e) : i(e)) || e);
4532
- return r && e && Qo(t, a, e), e;
4658
+ ], ie.prototype, "detail", 2);
4659
+ ie = po([
4660
+ h("vox-quote")
4661
+ ], ie);
4662
+ var nr = Object.defineProperty, lr = Object.getOwnPropertyDescriptor, be = (t, o, a, r) => {
4663
+ for (var e = r > 1 ? void 0 : r ? lr(o, a) : o, s = t.length - 1, i; s >= 0; s--)
4664
+ (i = t[s]) && (e = (r ? i(o, a, e) : i(e)) || e);
4665
+ return r && e && nr(o, a, e), e;
4666
+ };
4667
+ let Xe = class extends p {
4668
+ render() {
4669
+ return l`<slot></slot>`;
4670
+ }
4533
4671
  };
4534
- let Le = class extends h {
4672
+ Xe.styles = d`
4673
+ :host {
4674
+ display: grid;
4675
+ grid-template-columns: repeat(3, max-content) 1fr;
4676
+ column-gap: var(--vox-space-4);
4677
+ }
4678
+ `;
4679
+ Xe = be([
4680
+ h("vox-record-list")
4681
+ ], Xe);
4682
+ let B = class extends p {
4683
+ constructor() {
4684
+ super(...arguments), this.heading = "", this.size = "md", this.hasMeta = !1, this.hasEnd = !1;
4685
+ }
4686
+ handleMetaSlotChange(t) {
4687
+ const o = t.target;
4688
+ this.hasMeta = o.assignedNodes({ flatten: !0 }).length > 0, this.requestUpdate();
4689
+ }
4690
+ handleEndSlotChange(t) {
4691
+ const o = t.target;
4692
+ this.hasEnd = o.assignedNodes({ flatten: !0 }).length > 0, this.requestUpdate();
4693
+ }
4694
+ render() {
4695
+ if (this.size === "sm") {
4696
+ const t = l`
4697
+ <span class="meta ${this.hasMeta ? "has-meta" : ""}">
4698
+ <slot @slotchange=${this.handleMetaSlotChange}></slot>
4699
+ </span>
4700
+ `;
4701
+ return l`
4702
+ ${this.href ? l`<a class="cell" href=${this.href}>${this.heading}</a>` : l`<span class="cell">${this.heading}</span>`}
4703
+ ${this.hasMeta && this.href ? l`<a class="cell" href=${this.href}>${t}</a>` : l`<span class="cell">${t}</span>`}
4704
+ <span class="cell">
4705
+ <slot name="end" @slotchange=${this.handleEndSlotChange}></slot>
4706
+ </span>
4707
+ `;
4708
+ }
4709
+ return l`
4710
+ <div class="row">
4711
+ <div class="main">
4712
+ ${this.href ? l`<a class="heading" href=${this.href}>${this.heading}</a>` : l`<span class="heading">${this.heading}</span>`}
4713
+ <div class="meta ${this.hasMeta ? "has-meta" : ""}">
4714
+ <slot @slotchange=${this.handleMetaSlotChange}></slot>
4715
+ </div>
4716
+ </div>
4717
+ <span class="end ${this.hasEnd ? "has-end" : ""}">
4718
+ <slot name="end" @slotchange=${this.handleEndSlotChange}></slot>
4719
+ </span>
4720
+ ${this.href ? l`
4721
+ <a class="arrow" href=${this.href} aria-label="View ${this.heading}">
4722
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
4723
+ <path d="M5 12h14" />
4724
+ <path d="m13 6 6 6-6 6" />
4725
+ </svg>
4726
+ </a>
4727
+ ` : v}
4728
+ </div>
4729
+ `;
4730
+ }
4731
+ };
4732
+ B.styles = d`
4733
+ :host {
4734
+ display: block;
4735
+ grid-column: 1 / -1;
4736
+ font-family: var(--vox-font-family-base);
4737
+ }
4738
+
4739
+ .row {
4740
+ display: flex;
4741
+ align-items: center;
4742
+ justify-content: space-between;
4743
+ gap: var(--vox-space-4);
4744
+ padding: var(--vox-space-4) 0;
4745
+ border-bottom: 1px solid var(--vox-color-divider);
4746
+ }
4747
+
4748
+ :host(:last-child) .row {
4749
+ border-bottom: none;
4750
+ }
4751
+
4752
+ .main {
4753
+ display: flex;
4754
+ flex-direction: column;
4755
+ gap: var(--vox-space-1);
4756
+ min-width: 0;
4757
+ }
4758
+
4759
+ .heading {
4760
+ font-size: 16px;
4761
+ font-weight: 600;
4762
+ line-height: 1.4;
4763
+ }
4764
+
4765
+ a.heading {
4766
+ color: var(--vox-color-brand-1);
4767
+ text-decoration: none;
4768
+ }
4769
+
4770
+ a.heading:hover,
4771
+ a.heading:focus-visible {
4772
+ text-decoration: underline;
4773
+ }
4774
+
4775
+ a.heading:focus-visible {
4776
+ outline: 2px solid var(--vox-color-brand-1);
4777
+ outline-offset: 2px;
4778
+ }
4779
+
4780
+ span.heading {
4781
+ color: var(--vox-color-text-1);
4782
+ }
4783
+
4784
+ .meta {
4785
+ display: flex;
4786
+ flex-wrap: wrap;
4787
+ align-items: center;
4788
+ gap: var(--vox-space-4);
4789
+ }
4790
+
4791
+ .meta:not(.has-meta) {
4792
+ display: none;
4793
+ }
4794
+
4795
+ .arrow {
4796
+ display: flex;
4797
+ flex: none;
4798
+ align-items: center;
4799
+ justify-content: center;
4800
+ width: 36px;
4801
+ height: 36px;
4802
+ border-radius: var(--vox-radius-full);
4803
+ background-color: var(--vox-color-bg-soft);
4804
+ color: var(--vox-color-brand-1);
4805
+ text-decoration: none;
4806
+ transition: background-color var(--vox-transition-fast);
4807
+ }
4808
+
4809
+ .arrow:hover {
4810
+ background-color: var(--vox-color-brand-soft);
4811
+ }
4812
+
4813
+ .arrow:focus-visible {
4814
+ outline: 2px solid var(--vox-color-brand-1);
4815
+ outline-offset: 2px;
4816
+ }
4817
+
4818
+ .arrow svg {
4819
+ width: 16px;
4820
+ height: 16px;
4821
+ }
4822
+
4823
+ .end:not(.has-end) {
4824
+ display: none;
4825
+ }
4826
+
4827
+ /* Small size: heading, meta, and end each become their own subgrid
4828
+ column, aligned against the same column in every other size="sm"
4829
+ row in the parent <vox-record-list> — the arrow drops out since
4830
+ there's no room for it at this density, and the whole "row" is
4831
+ really 3 separate grid cells rather than one box, so heading and
4832
+ the meta cell each link to href individually. */
4833
+ :host([size='sm']) {
4834
+ display: grid;
4835
+ grid-template-columns: subgrid;
4836
+ grid-column: 1 / -1;
4837
+ align-items: baseline;
4838
+ column-gap: var(--vox-space-4);
4839
+ padding: var(--vox-space-2) 0;
4840
+ border-bottom: 1px solid var(--vox-color-divider);
4841
+ font-size: 13px;
4842
+ }
4843
+
4844
+ :host([size='sm']:last-child) {
4845
+ border-bottom: none;
4846
+ }
4847
+
4848
+ :host([size='sm']) .meta {
4849
+ flex-wrap: nowrap;
4850
+ gap: var(--vox-space-2);
4851
+ }
4852
+
4853
+ .cell {
4854
+ color: var(--vox-color-text-2);
4855
+ text-decoration: none;
4856
+ }
4857
+
4858
+ a.cell:hover,
4859
+ a.cell:focus-visible {
4860
+ text-decoration: underline;
4861
+ }
4862
+
4863
+ a.cell:focus-visible {
4864
+ outline: 2px solid var(--vox-color-brand-1);
4865
+ outline-offset: 2px;
4866
+ }
4867
+ `;
4868
+ be([
4869
+ n()
4870
+ ], B.prototype, "heading", 2);
4871
+ be([
4872
+ n()
4873
+ ], B.prototype, "href", 2);
4874
+ be([
4875
+ n({ reflect: !0 })
4876
+ ], B.prototype, "size", 2);
4877
+ B = be([
4878
+ h("vox-record-list-item")
4879
+ ], B);
4880
+ var cr = Object.defineProperty, dr = Object.getOwnPropertyDescriptor, P = (t, o, a, r) => {
4881
+ for (var e = r > 1 ? void 0 : r ? dr(o, a) : o, s = t.length - 1, i; s >= 0; s--)
4882
+ (i = t[s]) && (e = (r ? i(o, a, e) : i(e)) || e);
4883
+ return r && e && cr(o, a, e), e;
4884
+ };
4885
+ let ze = class extends p {
4535
4886
  constructor() {
4536
4887
  super(...arguments), this.heading = "", this.hasDescription = !1;
4537
4888
  }
4538
- handleDescriptionSlotChange(o) {
4539
- const t = o.target;
4540
- this.hasDescription = t.assignedNodes({ flatten: !0 }).length > 0, this.requestUpdate();
4889
+ handleDescriptionSlotChange(t) {
4890
+ const o = t.target;
4891
+ this.hasDescription = o.assignedNodes({ flatten: !0 }).length > 0, this.requestUpdate();
4541
4892
  }
4542
4893
  render() {
4543
- return c`
4894
+ return l`
4544
4895
  <h2 class="heading">${this.heading}</h2>
4545
4896
  <div class="description ${this.hasDescription ? "has-content" : ""}">
4546
4897
  <slot
@@ -4554,7 +4905,7 @@ let Le = class extends h {
4554
4905
  `;
4555
4906
  }
4556
4907
  };
4557
- Le.styles = d`
4908
+ ze.styles = d`
4558
4909
  :host {
4559
4910
  display: block;
4560
4911
  font-family: var(--vox-font-family-base);
@@ -4586,39 +4937,39 @@ Le.styles = d`
4586
4937
  margin-top: var(--vox-space-6);
4587
4938
  }
4588
4939
  `;
4589
- D([
4940
+ P([
4590
4941
  n()
4591
- ], Le.prototype, "heading", 2);
4592
- Le = D([
4593
- p("vox-sponsor-tier")
4594
- ], Le);
4595
- let P = class extends h {
4942
+ ], ze.prototype, "heading", 2);
4943
+ ze = P([
4944
+ h("vox-sponsor-tier")
4945
+ ], ze);
4946
+ let M = class extends p {
4596
4947
  constructor() {
4597
4948
  super(...arguments), this.name = "", this.hasBody = !1;
4598
4949
  }
4599
- handleBodySlotChange(o) {
4600
- const t = o.target;
4601
- this.hasBody = t.assignedNodes({ flatten: !0 }).length > 0, this.requestUpdate();
4950
+ handleBodySlotChange(t) {
4951
+ const o = t.target;
4952
+ this.hasBody = o.assignedNodes({ flatten: !0 }).length > 0, this.requestUpdate();
4602
4953
  }
4603
4954
  render() {
4604
- const o = c`
4955
+ const t = l`
4605
4956
  <div class="logo ${this.logo ? "has-logo" : ""}">
4606
- ${this.logo ? c`<img src=${this.logo} alt=${this.name} />` : v}
4957
+ ${this.logo ? l`<img src=${this.logo} alt=${this.name} />` : v}
4607
4958
  </div>
4608
4959
  <span class="name">${this.name}</span>
4609
4960
  <div class="body ${this.hasBody ? "has-content" : ""}">
4610
4961
  <slot @slotchange=${this.handleBodySlotChange}></slot>
4611
4962
  </div>
4612
4963
  `;
4613
- return this.href !== void 0 ? c`<a
4964
+ return this.href !== void 0 ? l`<a
4614
4965
  class="sponsor"
4615
4966
  href=${this.href}
4616
4967
  target=${this.target ?? v}
4617
- >${o}</a
4618
- >` : c`<div class="sponsor">${o}</div>`;
4968
+ >${t}</a
4969
+ >` : l`<div class="sponsor">${t}</div>`;
4619
4970
  }
4620
4971
  };
4621
- P.styles = d`
4972
+ M.styles = d`
4622
4973
  :host {
4623
4974
  display: block;
4624
4975
  }
@@ -4684,39 +5035,39 @@ P.styles = d`
4684
5035
  display: none;
4685
5036
  }
4686
5037
  `;
4687
- D([
5038
+ P([
4688
5039
  n()
4689
- ], P.prototype, "name", 2);
4690
- D([
5040
+ ], M.prototype, "name", 2);
5041
+ P([
4691
5042
  n()
4692
- ], P.prototype, "href", 2);
4693
- D([
5043
+ ], M.prototype, "href", 2);
5044
+ P([
4694
5045
  n()
4695
- ], P.prototype, "logo", 2);
4696
- D([
5046
+ ], M.prototype, "logo", 2);
5047
+ P([
4697
5048
  n()
4698
- ], P.prototype, "target", 2);
4699
- P = D([
4700
- p("vox-sponsor")
4701
- ], P);
4702
- var Yo = Object.defineProperty, Jo = Object.getOwnPropertyDescriptor, st = (o, t, a, r) => {
4703
- for (var e = r > 1 ? void 0 : r ? Jo(t, a) : t, s = o.length - 1, i; s >= 0; s--)
4704
- (i = o[s]) && (e = (r ? i(t, a, e) : i(e)) || e);
4705
- return r && e && Yo(t, a, e), e;
5049
+ ], M.prototype, "target", 2);
5050
+ M = P([
5051
+ h("vox-sponsor")
5052
+ ], M);
5053
+ var hr = Object.defineProperty, pr = Object.getOwnPropertyDescriptor, vo = (t, o, a, r) => {
5054
+ for (var e = r > 1 ? void 0 : r ? pr(o, a) : o, s = t.length - 1, i; s >= 0; s--)
5055
+ (i = t[s]) && (e = (r ? i(o, a, e) : i(e)) || e);
5056
+ return r && e && hr(o, a, e), e;
4706
5057
  };
4707
- let ie = class extends h {
5058
+ let ne = class extends p {
4708
5059
  constructor() {
4709
5060
  super(...arguments), this.value = "", this.label = "";
4710
5061
  }
4711
5062
  render() {
4712
- return c`
5063
+ return l`
4713
5064
  <div class="value">${this.value}</div>
4714
5065
  <div class="label">${this.label}</div>
4715
5066
  <div class="description"><slot></slot></div>
4716
5067
  `;
4717
5068
  }
4718
5069
  };
4719
- ie.styles = d`
5070
+ ne.styles = d`
4720
5071
  :host {
4721
5072
  display: block;
4722
5073
  font-family: var(--vox-font-family-base);
@@ -4743,35 +5094,35 @@ ie.styles = d`
4743
5094
  color: var(--vox-color-text-2);
4744
5095
  }
4745
5096
  `;
4746
- st([
5097
+ vo([
4747
5098
  n()
4748
- ], ie.prototype, "value", 2);
4749
- st([
5099
+ ], ne.prototype, "value", 2);
5100
+ vo([
4750
5101
  n()
4751
- ], ie.prototype, "label", 2);
4752
- ie = st([
4753
- p("vox-stat")
4754
- ], ie);
4755
- var er = Object.defineProperty, tr = Object.getOwnPropertyDescriptor, ge = (o, t, a, r) => {
4756
- for (var e = r > 1 ? void 0 : r ? tr(t, a) : t, s = o.length - 1, i; s >= 0; s--)
4757
- (i = o[s]) && (e = (r ? i(t, a, e) : i(e)) || e);
4758
- return r && e && er(t, a, e), e;
5102
+ ], ne.prototype, "label", 2);
5103
+ ne = vo([
5104
+ h("vox-stat")
5105
+ ], ne);
5106
+ var vr = Object.defineProperty, xr = Object.getOwnPropertyDescriptor, me = (t, o, a, r) => {
5107
+ for (var e = r > 1 ? void 0 : r ? xr(o, a) : o, s = t.length - 1, i; s >= 0; s--)
5108
+ (i = t[s]) && (e = (r ? i(o, a, e) : i(e)) || e);
5109
+ return r && e && vr(o, a, e), e;
4759
5110
  };
4760
- let Fe = class extends h {
5111
+ let Je = class extends p {
4761
5112
  numberSteps() {
4762
- this.querySelectorAll("vox-step").forEach((o, t) => {
4763
- o.number = t + 1;
5113
+ this.querySelectorAll("vox-step").forEach((t, o) => {
5114
+ t.number = o + 1;
4764
5115
  });
4765
5116
  }
4766
5117
  render() {
4767
- return c`
5118
+ return l`
4768
5119
  <div class="steps" role="list" aria-label="Progress">
4769
5120
  <slot @slotchange=${this.numberSteps}></slot>
4770
5121
  </div>
4771
5122
  `;
4772
5123
  }
4773
5124
  };
4774
- Fe.styles = d`
5125
+ Je.styles = d`
4775
5126
  :host {
4776
5127
  display: block;
4777
5128
  }
@@ -4785,29 +5136,26 @@ Fe.styles = d`
4785
5136
  flex: 1 1 0;
4786
5137
  }
4787
5138
  `;
4788
- Fe = ge([
4789
- p("vox-step-indicator")
4790
- ], Fe);
4791
- let q = class extends h {
5139
+ Je = me([
5140
+ h("vox-step-indicator")
5141
+ ], Je);
5142
+ let q = class extends p {
4792
5143
  constructor() {
4793
5144
  super(...arguments), this.label = "", this.state = "upcoming", this.number = 1;
4794
5145
  }
4795
5146
  render() {
4796
- return c`
5147
+ return l`
4797
5148
  <div
4798
5149
  class="step"
4799
5150
  role="listitem"
4800
5151
  aria-current=${this.state === "current" ? "step" : "false"}
4801
5152
  >
4802
5153
  <span class="marker">
4803
- ${this.state === "complete" ? c`<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
5154
+ ${this.state === "complete" ? l`<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
4804
5155
  <path d="m4 12 5 5L20 6" />
4805
5156
  </svg>` : this.number}
4806
5157
  </span>
4807
- <span class="label">
4808
- ${this.label}
4809
- ${this.state !== "current" ? c`<span class="visually-hidden"> (${this.state})</span>` : v}
4810
- </span>
5158
+ <span class="label">${this.label}</span>
4811
5159
  </div>
4812
5160
  `;
4813
5161
  }
@@ -4885,62 +5233,53 @@ q.styles = d`
4885
5233
  font-weight: 600;
4886
5234
  color: var(--vox-color-text-1);
4887
5235
  }
4888
-
4889
- .visually-hidden {
4890
- position: absolute;
4891
- width: 1px;
4892
- height: 1px;
4893
- overflow: hidden;
4894
- clip: rect(0 0 0 0);
4895
- white-space: nowrap;
4896
- }
4897
5236
  `;
4898
- ge([
5237
+ me([
4899
5238
  n()
4900
5239
  ], q.prototype, "label", 2);
4901
- ge([
5240
+ me([
4902
5241
  n({ reflect: !0 })
4903
5242
  ], q.prototype, "state", 2);
4904
- ge([
5243
+ me([
4905
5244
  n({ type: Number })
4906
5245
  ], q.prototype, "number", 2);
4907
- q = ge([
4908
- p("vox-step")
5246
+ q = me([
5247
+ h("vox-step")
4909
5248
  ], q);
4910
- var or = Object.defineProperty, rr = Object.getOwnPropertyDescriptor, Se = (o, t, a, r) => {
4911
- for (var e = r > 1 ? void 0 : r ? rr(t, a) : t, s = o.length - 1, i; s >= 0; s--)
4912
- (i = o[s]) && (e = (r ? i(t, a, e) : i(e)) || e);
4913
- return r && e && or(t, a, e), e;
5249
+ var ur = Object.defineProperty, fr = Object.getOwnPropertyDescriptor, Te = (t, o, a, r) => {
5250
+ for (var e = r > 1 ? void 0 : r ? fr(o, a) : o, s = t.length - 1, i; s >= 0; s--)
5251
+ (i = t[s]) && (e = (r ? i(o, a, e) : i(e)) || e);
5252
+ return r && e && ur(o, a, e), e;
4914
5253
  };
4915
- let Re = class extends h {
5254
+ let We = class extends p {
4916
5255
  render() {
4917
- return c`<slot></slot>`;
5256
+ return l`<slot></slot>`;
4918
5257
  }
4919
5258
  };
4920
- Re.styles = d`
5259
+ We.styles = d`
4921
5260
  :host {
4922
5261
  display: block;
4923
5262
  }
4924
5263
  `;
4925
- Re = Se([
4926
- p("vox-timeline")
4927
- ], Re);
4928
- let ne = class extends h {
5264
+ We = Te([
5265
+ h("vox-timeline")
5266
+ ], We);
5267
+ let le = class extends p {
4929
5268
  constructor() {
4930
5269
  super(...arguments), this.heading = "", this.date = "";
4931
5270
  }
4932
5271
  render() {
4933
- return c`
5272
+ return l`
4934
5273
  <div class="item">
4935
5274
  <span class="dot" aria-hidden="true"></span>
4936
- ${this.date ? c`<div class="date">${this.date}</div>` : v}
5275
+ ${this.date ? l`<div class="date">${this.date}</div>` : v}
4937
5276
  <h3 class="heading">${this.heading}</h3>
4938
5277
  <div class="body"><slot></slot></div>
4939
5278
  </div>
4940
5279
  `;
4941
5280
  }
4942
5281
  };
4943
- ne.styles = d`
5282
+ le.styles = d`
4944
5283
  :host {
4945
5284
  display: block;
4946
5285
  font-family: var(--vox-font-family-base);
@@ -4990,69 +5329,73 @@ ne.styles = d`
4990
5329
  color: var(--vox-color-text-2);
4991
5330
  }
4992
5331
  `;
4993
- Se([
5332
+ Te([
4994
5333
  n()
4995
- ], ne.prototype, "heading", 2);
4996
- Se([
5334
+ ], le.prototype, "heading", 2);
5335
+ Te([
4997
5336
  n()
4998
- ], ne.prototype, "date", 2);
4999
- ne = Se([
5000
- p("vox-timeline-item")
5001
- ], ne);
5337
+ ], le.prototype, "date", 2);
5338
+ le = Te([
5339
+ h("vox-timeline-item")
5340
+ ], le);
5002
5341
  export {
5003
- $e as VoxAccordion,
5004
- k as VoxAccordionItem,
5005
- L as VoxAlert,
5006
- $ as VoxAvatar,
5007
- _e as VoxBadge,
5008
- G as VoxBillboard,
5009
- Be as VoxBreadcrumbs,
5010
- g as VoxButton,
5011
- ee as VoxCalendarTile,
5342
+ Me as VoxAccordion,
5343
+ ee as VoxAccordionItem,
5344
+ C as VoxAlert,
5345
+ w as VoxAvatar,
5346
+ Oe as VoxBadge,
5347
+ K as VoxBillboard,
5348
+ Ze as VoxBreadcrumbs,
5349
+ f as VoxButton,
5350
+ oe as VoxCalendarTile,
5012
5351
  te as VoxCallout,
5013
- I as VoxCard,
5014
- Z as VoxCheckbox,
5015
- R as VoxCta,
5016
- Ce as VoxCtaBand,
5017
- O as VoxDialog,
5018
- M as VoxDisclosure,
5019
- J as VoxDropdown,
5020
- Oe as VoxEmptyState,
5021
- b as VoxFileInput,
5022
- Ne as VoxFooter,
5023
- Me as VoxFooterColumn,
5024
- B as VoxGrid,
5025
- S as VoxHeader,
5026
- oe as VoxHero,
5027
- E as VoxIcon,
5028
- m as VoxInput,
5029
- Ie as VoxInputGroup,
5030
- Te as VoxLinkHub,
5031
- re as VoxLinkHubItem,
5032
- ae as VoxLoader,
5033
- ke as VoxPagination,
5034
- se as VoxQuote,
5035
- H as VoxRadio,
5036
- me as VoxRadioGroup,
5037
- U as VoxSelect,
5038
- _ as VoxSeriesNav,
5039
- A as VoxSidenav,
5040
- C as VoxSidenavGroup,
5041
- X as VoxSidenavItem,
5042
- P as VoxSponsor,
5043
- Le as VoxSponsorTier,
5044
- ie as VoxStat,
5352
+ S as VoxCard,
5353
+ R as VoxCheckbox,
5354
+ T as VoxCta,
5355
+ ke as VoxCtaBand,
5356
+ Pe as VoxDatum,
5357
+ _ as VoxDialog,
5358
+ Q as VoxDisclosure,
5359
+ Y as VoxDropdown,
5360
+ Le as VoxEmptyState,
5361
+ g as VoxFileInput,
5362
+ Ue as VoxFooter,
5363
+ Ve as VoxFooterColumn,
5364
+ A as VoxGrid,
5365
+ D as VoxHeader,
5366
+ re as VoxHero,
5367
+ j as VoxIcon,
5368
+ b as VoxInput,
5369
+ Fe as VoxInputGroup,
5370
+ Ge as VoxLinkHub,
5371
+ ae as VoxLinkHubItem,
5372
+ se as VoxLoader,
5373
+ H as VoxMenu,
5374
+ je as VoxPagination,
5375
+ ie as VoxQuote,
5376
+ z as VoxRadio,
5377
+ $e as VoxRadioGroup,
5378
+ Xe as VoxRecordList,
5379
+ B as VoxRecordListItem,
5380
+ F as VoxSelect,
5381
+ $ as VoxSeriesNav,
5382
+ E as VoxSidenav,
5383
+ U as VoxSidenavGroup,
5384
+ G as VoxSidenavItem,
5385
+ M as VoxSponsor,
5386
+ ze as VoxSponsorTier,
5387
+ ne as VoxStat,
5045
5388
  q as VoxStep,
5046
- Fe as VoxStepIndicator,
5047
- ye as VoxSubnav,
5048
- K as VoxSwitch,
5049
- Q as VoxTab,
5050
- W as VoxTabPanel,
5051
- qe as VoxTabs,
5052
- w as VoxTextarea,
5053
- z as VoxThemeToggle,
5054
- Re as VoxTimeline,
5055
- ne as VoxTimelineItem,
5056
- we as VoxToc,
5057
- Y as VoxTocItem
5389
+ Je as VoxStepIndicator,
5390
+ _e as VoxSubnav,
5391
+ Z as VoxSwitch,
5392
+ X as VoxTab,
5393
+ J as VoxTabPanel,
5394
+ Ke as VoxTabs,
5395
+ y as VoxTextarea,
5396
+ V as VoxThemeToggle,
5397
+ We as VoxTimeline,
5398
+ le as VoxTimelineItem,
5399
+ Ce as VoxToc,
5400
+ W as VoxTocItem
5058
5401
  };