@birdycom/omniaui-react 0.12.1 → 0.12.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -172,8 +172,8 @@ var AffixInput = forwardRef3(function AffixInput2({ variant, prefix, suffix, ali
172
172
  // src/components/Alert.tsx
173
173
  import { forwardRef as forwardRef4 } from "react";
174
174
  import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
175
- var Alert = forwardRef4(function Alert2({ variant = "info", title, children, className, role = "status", ...rest }, ref) {
176
- return /* @__PURE__ */ jsxs3("div", { ref, role, className: cx("oc-alert", `oc-alert--${variant}`, className), ...rest, children: [
175
+ var Alert = forwardRef4(function Alert2({ variant = "info", title, inline, children, className, role = "status", ...rest }, ref) {
176
+ return /* @__PURE__ */ jsxs3("div", { ref, role, className: cx("oc-alert", `oc-alert--${variant}`, inline && "oc-alert--inline", className), ...rest, children: [
177
177
  title != null && /* @__PURE__ */ jsx4("h4", { className: "oc-alert-title", children: title }),
178
178
  children != null && /* @__PURE__ */ jsx4("p", { className: "oc-alert-description", children })
179
179
  ] });
@@ -418,26 +418,35 @@ import { forwardRef as forwardRef15, useId as useId3, useRef as useRef3 } from "
418
418
 
419
419
  // src/components/Progress.tsx
420
420
  import { forwardRef as forwardRef14 } from "react";
421
- import { jsx as jsx14 } from "react/jsx-runtime";
422
- var Progress = forwardRef14(function Progress2({ value, max = 100, variant = "default", className, ...rest }, ref) {
423
- const pct = max > 0 ? Math.min(100, Math.max(0, Math.round(value / max * 100))) : 0;
424
- return /* @__PURE__ */ jsx14(
421
+ import { jsx as jsx14, jsxs as jsxs10 } from "react/jsx-runtime";
422
+ function progressLevel(pct, levels) {
423
+ const [warn, danger] = levels === true ? [70, 90] : levels;
424
+ return pct >= danger ? "danger" : pct >= warn ? "warning" : "default";
425
+ }
426
+ var Progress = forwardRef14(function Progress2({ value, max = 100, variant = "default", size = "md", glow, levels, marker, className, ...rest }, ref) {
427
+ const percent = (v) => max > 0 ? Math.min(100, Math.max(0, v / max * 100)) : 0;
428
+ const pct = Math.round(percent(value));
429
+ const tone = variant === "default" && levels ? progressLevel(pct, levels) : variant;
430
+ return /* @__PURE__ */ jsxs10(
425
431
  "div",
426
432
  {
427
433
  ref,
428
- className: cx("oc-progress", className),
434
+ className: cx("oc-progress", size !== "md" && `oc-progress--${size}`, glow && "oc-progress--glow", className),
429
435
  role: "progressbar",
430
436
  "aria-valuenow": value,
431
437
  "aria-valuemin": 0,
432
438
  "aria-valuemax": max,
433
439
  ...rest,
434
- children: /* @__PURE__ */ jsx14("div", { className: cx("oc-progress-bar", variant !== "default" && `oc-progress-bar--${variant}`), style: { width: `${pct}%` } })
440
+ children: [
441
+ /* @__PURE__ */ jsx14("div", { className: cx("oc-progress-bar", tone !== "default" && `oc-progress-bar--${tone}`), style: { width: `${pct}%` } }),
442
+ marker != null && /* @__PURE__ */ jsx14("span", { className: "oc-progress-marker", style: { left: `${percent(marker)}%` } })
443
+ ]
435
444
  }
436
445
  );
437
446
  });
438
447
 
439
448
  // src/components/BusyOverlay.tsx
440
- import { jsx as jsx15, jsxs as jsxs10 } from "react/jsx-runtime";
449
+ import { jsx as jsx15, jsxs as jsxs11 } from "react/jsx-runtime";
441
450
  var BusyOverlay = forwardRef15(function BusyOverlay2({
442
451
  title = "Saving\u2026",
443
452
  text = "The photos are being processed. This can take a minute; please keep this page open.",
@@ -455,7 +464,7 @@ var BusyOverlay = forwardRef15(function BusyOverlay2({
455
464
  const dlg = useDialog(inner, { open, defaultOpen, onOpenChange });
456
465
  const auto = useId3().replace(/[^\w-]/g, "");
457
466
  const base = id ?? `oc-busy-overlay-${auto}`;
458
- return /* @__PURE__ */ jsxs10(
467
+ return /* @__PURE__ */ jsxs11(
459
468
  "dialog",
460
469
  {
461
470
  ref,
@@ -478,21 +487,22 @@ var BusyOverlay = forwardRef15(function BusyOverlay2({
478
487
  // src/components/Button.tsx
479
488
  import { forwardRef as forwardRef16 } from "react";
480
489
  import { jsx as jsx16 } from "react/jsx-runtime";
481
- function buttonClass({ variant = "default", size = "md", icon, pill, className }) {
490
+ function buttonClass({ variant = "default", size = "md", icon, pill, inline, className }) {
482
491
  return cx(
483
492
  "oc-btn",
484
493
  variant !== "default" && `oc-btn--${variant}`,
485
494
  size !== "md" && `oc-btn--${size}`,
486
495
  icon && "oc-btn--icon",
487
496
  pill && "oc-btn--pill",
497
+ inline && "oc-btn--inline",
488
498
  className
489
499
  );
490
500
  }
491
- var Button = forwardRef16(function Button2({ variant, size, icon, pill, className, ...rest }, ref) {
492
- return /* @__PURE__ */ jsx16("button", { ref, className: buttonClass({ variant, size, icon, pill, className }), ...rest });
501
+ var Button = forwardRef16(function Button2({ variant, size, icon, pill, inline, className, ...rest }, ref) {
502
+ return /* @__PURE__ */ jsx16("button", { ref, className: buttonClass({ variant, size, icon, pill, inline, className }), ...rest });
493
503
  });
494
- var ButtonLink = forwardRef16(function ButtonLink2({ variant, size, icon, pill, className, ...rest }, ref) {
495
- return /* @__PURE__ */ jsx16("a", { ref, className: buttonClass({ variant, size, icon, pill, className }), ...rest });
504
+ var ButtonLink = forwardRef16(function ButtonLink2({ variant, size, icon, pill, inline, className, ...rest }, ref) {
505
+ return /* @__PURE__ */ jsx16("a", { ref, className: buttonClass({ variant, size, icon, pill, inline, className }), ...rest });
496
506
  });
497
507
 
498
508
  // src/components/Card.tsx
@@ -515,7 +525,7 @@ var CardFooter = part("div", "oc-card-footer", "CardFooter");
515
525
 
516
526
  // src/components/ChartLine.tsx
517
527
  import { forwardRef as forwardRef18 } from "react";
518
- import { jsx as jsx18, jsxs as jsxs11 } from "react/jsx-runtime";
528
+ import { jsx as jsx18, jsxs as jsxs12 } from "react/jsx-runtime";
519
529
  var DEMO2 = [
520
530
  { name: "Desktop", values: [186, 305, 237, 73, 209, 214] },
521
531
  { name: "Mobile", values: [80, 200, 120, 190, 130, 140] }
@@ -561,27 +571,27 @@ var ChartLine = forwardRef18(function ChartLine2({
561
571
  const count = Math.max(0, ...series.map((s) => s.values.length));
562
572
  const labels = labelsProp ?? MONTHS;
563
573
  const axis = xLabels ?? labelsProp ?? SHORT;
564
- return /* @__PURE__ */ jsxs11("figure", { ref, className: cx("oc-chart-line", variant !== "line" && `oc-chart-line--${variant}`, dots && "oc-chart-line--dots", className), ...rest, children: [
565
- (title != null || sub != null || value != null) && /* @__PURE__ */ jsxs11("figcaption", { className: "oc-chart-line__head", children: [
574
+ return /* @__PURE__ */ jsxs12("figure", { ref, className: cx("oc-chart-line", variant !== "line" && `oc-chart-line--${variant}`, dots && "oc-chart-line--dots", className), ...rest, children: [
575
+ (title != null || sub != null || value != null) && /* @__PURE__ */ jsxs12("figcaption", { className: "oc-chart-line__head", children: [
566
576
  title != null && /* @__PURE__ */ jsx18("span", { className: "oc-chart-line__title", children: title }),
567
577
  sub != null && /* @__PURE__ */ jsx18("span", { className: "oc-chart-line__sub", children: sub }),
568
578
  value != null && /* @__PURE__ */ jsx18("span", { className: "oc-chart-line__value", children: value })
569
579
  ] }),
570
- /* @__PURE__ */ jsxs11("div", { className: "oc-chart-line__body", children: [
580
+ /* @__PURE__ */ jsxs12("div", { className: "oc-chart-line__body", children: [
571
581
  /* @__PURE__ */ jsx18("ul", { className: "oc-chart-line__y", "aria-hidden": "true", children: Array.from({ length: rows + 1 }, (_, i) => /* @__PURE__ */ jsx18("li", { children: format(top - top / rows * i) }, i)) }),
572
- /* @__PURE__ */ jsxs11("div", { className: "oc-chart-line__plot", style: rows !== 4 ? { "--oc-chart-line-rows": rows } : void 0, children: [
582
+ /* @__PURE__ */ jsxs12("div", { className: "oc-chart-line__plot", style: rows !== 4 ? { "--oc-chart-line-rows": rows } : void 0, children: [
573
583
  /* @__PURE__ */ jsx18("svg", { className: "oc-chart-line__svg", viewBox: "0 0 100 100", preserveAspectRatio: "none", "aria-hidden": "true", children: series.map((s, i) => {
574
584
  const d = chartLinePath(s.values, top);
575
- return /* @__PURE__ */ jsxs11("g", { className: "oc-chart-line__series", children: [
585
+ return /* @__PURE__ */ jsxs12("g", { className: "oc-chart-line__series", children: [
576
586
  /* @__PURE__ */ jsx18("path", { className: "oc-chart-line__area", d: `${d} L100 100 L0 100 Z` }),
577
587
  /* @__PURE__ */ jsx18("path", { className: cx("oc-chart-line__path", s.dashed && "oc-chart-line__path--dashed"), d })
578
588
  ] }, i);
579
589
  }) }),
580
- /* @__PURE__ */ jsx18("ul", { className: "oc-chart-line__cols", style: { "--n": count }, "aria-label": label, children: Array.from({ length: count }, (_, i) => /* @__PURE__ */ jsxs11("li", { className: "oc-chart-line__col", style: { "--x": i }, tabIndex: 0, "aria-label": `${labels[i] ?? i + 1}: ${series.map((s) => `${s.name} ${format(s.values[i])}`).join(", ")}`, children: [
590
+ /* @__PURE__ */ jsx18("ul", { className: "oc-chart-line__cols", style: { "--n": count }, "aria-label": label, children: Array.from({ length: count }, (_, i) => /* @__PURE__ */ jsxs12("li", { className: "oc-chart-line__col", style: { "--x": i }, tabIndex: 0, "aria-label": `${labels[i] ?? i + 1}: ${series.map((s) => `${s.name} ${format(s.values[i])}`).join(", ")}`, children: [
581
591
  series.map((s, j) => /* @__PURE__ */ jsx18("i", { className: "oc-chart-line__dot", style: { "--y": `${n2(s.values[i] / top * 100)}%` } }, j)),
582
- /* @__PURE__ */ jsxs11("span", { className: "oc-chart-line__tip", "aria-hidden": "true", children: [
592
+ /* @__PURE__ */ jsxs12("span", { className: "oc-chart-line__tip", "aria-hidden": "true", children: [
583
593
  /* @__PURE__ */ jsx18("strong", { children: labels[i] ?? i + 1 }),
584
- series.map((s, j) => /* @__PURE__ */ jsxs11("span", { className: "oc-chart-line__row", children: [
594
+ series.map((s, j) => /* @__PURE__ */ jsxs12("span", { className: "oc-chart-line__row", children: [
585
595
  s.name,
586
596
  /* @__PURE__ */ jsx18("b", { children: format(s.values[i]) })
587
597
  ] }, j))
@@ -590,7 +600,7 @@ var ChartLine = forwardRef18(function ChartLine2({
590
600
  ] }),
591
601
  /* @__PURE__ */ jsx18("ol", { className: "oc-chart-line__x", "aria-hidden": "true", children: axis.map((l, i) => /* @__PURE__ */ jsx18("li", { children: l }, i)) })
592
602
  ] }),
593
- /* @__PURE__ */ jsx18("ul", { className: "oc-chart-legend", children: series.map((s, i) => /* @__PURE__ */ jsxs11("li", { children: [
603
+ /* @__PURE__ */ jsx18("ul", { className: "oc-chart-legend", children: series.map((s, i) => /* @__PURE__ */ jsxs12("li", { children: [
594
604
  /* @__PURE__ */ jsx18("span", { className: "oc-chart-swatch" }),
595
605
  s.name
596
606
  ] }, i)) })
@@ -599,7 +609,7 @@ var ChartLine = forwardRef18(function ChartLine2({
599
609
 
600
610
  // src/components/ChatComposer.tsx
601
611
  import { forwardRef as forwardRef19, useId as useId4 } from "react";
602
- import { jsx as jsx19, jsxs as jsxs12 } from "react/jsx-runtime";
612
+ import { jsx as jsx19, jsxs as jsxs13 } from "react/jsx-runtime";
603
613
  var ChatComposer = forwardRef19(function ChatComposer2({ value, defaultValue = "", onValueChange, onSend, placeholder = "Write a message\u2026", label = "Message", tools, hint, inline, sendOnEnter = true, disabled, className, onSubmit, ...rest }, ref) {
604
614
  const id = `oc-chat-${useId4().replace(/:/g, "")}`;
605
615
  const [text, setText] = useControllable(value, defaultValue, onValueChange);
@@ -616,7 +626,7 @@ var ChatComposer = forwardRef19(function ChatComposer2({ value, defaultValue = "
616
626
  e.currentTarget.form?.requestSubmit();
617
627
  }
618
628
  };
619
- return /* @__PURE__ */ jsxs12("form", { ref, className: cx("oc-chat-composer", inline && "oc-chat-composer--inline", className), onSubmit: submit, ...rest, children: [
629
+ return /* @__PURE__ */ jsxs13("form", { ref, className: cx("oc-chat-composer", inline && "oc-chat-composer--inline", className), onSubmit: submit, ...rest, children: [
620
630
  /* @__PURE__ */ jsx19("label", { className: "oc-visually-hidden", htmlFor: id, children: label }),
621
631
  /* @__PURE__ */ jsx19(
622
632
  "textarea",
@@ -632,7 +642,7 @@ var ChatComposer = forwardRef19(function ChatComposer2({ value, defaultValue = "
632
642
  onKeyDown
633
643
  }
634
644
  ),
635
- /* @__PURE__ */ jsxs12("div", { className: "oc-chat-composer__bar", children: [
645
+ /* @__PURE__ */ jsxs13("div", { className: "oc-chat-composer__bar", children: [
636
646
  tools != null && /* @__PURE__ */ jsx19("div", { className: "oc-chat-composer__tools", children: tools }),
637
647
  hint != null && /* @__PURE__ */ jsx19("span", { className: "oc-chat-composer__hint", children: hint }),
638
648
  /* @__PURE__ */ jsx19("button", { type: "submit", className: "oc-chat-composer__send", "aria-label": "Send", disabled, children: "\u27A4" })
@@ -642,10 +652,10 @@ var ChatComposer = forwardRef19(function ChatComposer2({ value, defaultValue = "
642
652
 
643
653
  // src/components/Checkbox.tsx
644
654
  import { forwardRef as forwardRef20 } from "react";
645
- import { jsx as jsx20, jsxs as jsxs13 } from "react/jsx-runtime";
655
+ import { jsx as jsx20, jsxs as jsxs14 } from "react/jsx-runtime";
646
656
  var Checkbox = forwardRef20(function Checkbox2({ label, className, ...rest }, ref) {
647
657
  const input = /* @__PURE__ */ jsx20("input", { ref, type: "checkbox", className: cx("oc-checkbox", className), ...rest });
648
- return label != null ? /* @__PURE__ */ jsxs13("label", { children: [
658
+ return label != null ? /* @__PURE__ */ jsxs14("label", { children: [
649
659
  input,
650
660
  " ",
651
661
  label
@@ -654,13 +664,13 @@ var Checkbox = forwardRef20(function Checkbox2({ label, className, ...rest }, re
654
664
 
655
665
  // src/components/Checklist.tsx
656
666
  import { forwardRef as forwardRef21 } from "react";
657
- import { Fragment as Fragment2, jsx as jsx21, jsxs as jsxs14 } from "react/jsx-runtime";
667
+ import { Fragment as Fragment2, jsx as jsx21, jsxs as jsxs15 } from "react/jsx-runtime";
658
668
  var Checklist = forwardRef21(function Checklist2({ card, className, ...rest }, ref) {
659
669
  return /* @__PURE__ */ jsx21("ul", { ref, className: cx("oc-checklist", card && "oc-checklist--card", className), ...rest });
660
670
  });
661
671
  var ChecklistItem = forwardRef21(function ChecklistItem2({ done, title, hint, action, className, children, ...rest }, ref) {
662
- return /* @__PURE__ */ jsx21("li", { ref, className: cx("oc-checklist-item", done && "is-done", className), ...rest, children: title != null ? /* @__PURE__ */ jsxs14(Fragment2, { children: [
663
- /* @__PURE__ */ jsxs14("span", { className: "oc-checklist-text", children: [
672
+ return /* @__PURE__ */ jsx21("li", { ref, className: cx("oc-checklist-item", done && "is-done", className), ...rest, children: title != null ? /* @__PURE__ */ jsxs15(Fragment2, { children: [
673
+ /* @__PURE__ */ jsxs15("span", { className: "oc-checklist-text", children: [
664
674
  /* @__PURE__ */ jsx21("span", { className: "oc-checklist-title", children: title }),
665
675
  hint != null && /* @__PURE__ */ jsx21("span", { className: "oc-checklist-hint", children: hint })
666
676
  ] }),
@@ -670,7 +680,7 @@ var ChecklistItem = forwardRef21(function ChecklistItem2({ done, title, hint, ac
670
680
 
671
681
  // src/components/ChipFilter.tsx
672
682
  import { forwardRef as forwardRef22, useId as useId5 } from "react";
673
- import { jsx as jsx22, jsxs as jsxs15 } from "react/jsx-runtime";
683
+ import { jsx as jsx22, jsxs as jsxs16 } from "react/jsx-runtime";
674
684
  var ChipFilter = forwardRef22(function ChipFilter2({ options, multiple, value, defaultValue, onChange, name, size = "md", scroll, className, ...rest }, ref) {
675
685
  const group = name ?? `oc-chip-${useId5().replace(/:/g, "")}`;
676
686
  const [current, setCurrent] = useControllable(value, defaultValue ?? (multiple ? [] : ""), onChange);
@@ -683,7 +693,7 @@ var ChipFilter = forwardRef22(function ChipFilter2({ options, multiple, value, d
683
693
  className: cx("oc-chip-filter", size === "sm" && "oc-chip-filter--sm", scroll && "oc-chip-filter--scroll", className),
684
694
  role: multiple ? "group" : "radiogroup",
685
695
  ...rest,
686
- children: options.map((o) => /* @__PURE__ */ jsxs15("label", { className: "oc-chip-filter-item", children: [
696
+ children: options.map((o) => /* @__PURE__ */ jsxs16("label", { className: "oc-chip-filter-item", children: [
687
697
  /* @__PURE__ */ jsx22("input", { type: multiple ? "checkbox" : "radio", name: group, value: o.value, disabled: o.disabled, checked: selected.includes(o.value), onChange: () => toggle(o.value) }),
688
698
  " ",
689
699
  o.label,
@@ -695,10 +705,10 @@ var ChipFilter = forwardRef22(function ChipFilter2({ options, multiple, value, d
695
705
 
696
706
  // src/components/Collapsible.tsx
697
707
  import { forwardRef as forwardRef23 } from "react";
698
- import { jsx as jsx23, jsxs as jsxs16 } from "react/jsx-runtime";
708
+ import { jsx as jsx23, jsxs as jsxs17 } from "react/jsx-runtime";
699
709
  var Collapsible = forwardRef23(function Collapsible2({ title, icon, dense, open, defaultOpen, onOpenChange, className, children, ...rest }, ref) {
700
710
  const [isOpen, setOpen] = useControllable(open, defaultOpen ?? false, onOpenChange);
701
- return /* @__PURE__ */ jsxs16(
711
+ return /* @__PURE__ */ jsxs17(
702
712
  "details",
703
713
  {
704
714
  ref,
@@ -709,7 +719,7 @@ var Collapsible = forwardRef23(function Collapsible2({ title, icon, dense, open,
709
719
  },
710
720
  ...rest,
711
721
  children: [
712
- /* @__PURE__ */ jsxs16("summary", { children: [
722
+ /* @__PURE__ */ jsxs17("summary", { children: [
713
723
  icon,
714
724
  /* @__PURE__ */ jsx23("span", { className: "oc-collapsible-title", children: title })
715
725
  ] }),
@@ -721,7 +731,7 @@ var Collapsible = forwardRef23(function Collapsible2({ title, icon, dense, open,
721
731
 
722
732
  // src/components/ColorField.tsx
723
733
  import { forwardRef as forwardRef24, useState as useState2 } from "react";
724
- import { jsx as jsx24, jsxs as jsxs17 } from "react/jsx-runtime";
734
+ import { jsx as jsx24, jsxs as jsxs18 } from "react/jsx-runtime";
725
735
  var HEX = /^#[0-9a-f]{6}$/i;
726
736
  var ColorField = forwardRef24(function ColorField2({ value, defaultValue = "#000000", onChange, id, name, disabled, className, ...rest }, ref) {
727
737
  const [color, setColor] = useControllable(value, defaultValue, onChange);
@@ -731,7 +741,7 @@ var ColorField = forwardRef24(function ColorField2({ value, defaultValue = "#000
731
741
  if (HEX.test(next)) setLastValid(next);
732
742
  setColor(next);
733
743
  };
734
- return /* @__PURE__ */ jsxs17("div", { ref, className: cx("oc-color-field", className), ...rest, children: [
744
+ return /* @__PURE__ */ jsxs18("div", { ref, className: cx("oc-color-field", className), ...rest, children: [
735
745
  /* @__PURE__ */ jsx24("input", { type: "color", "aria-label": "Pick a color", value: picker, disabled, onChange: (e) => update(e.target.value) }),
736
746
  /* @__PURE__ */ jsx24(
737
747
  "input",
@@ -751,11 +761,11 @@ var ColorField = forwardRef24(function ColorField2({ value, defaultValue = "#000
751
761
 
752
762
  // src/components/ColorSelect.tsx
753
763
  import { forwardRef as forwardRef25, useId as useId6 } from "react";
754
- import { jsx as jsx25, jsxs as jsxs18 } from "react/jsx-runtime";
764
+ import { jsx as jsx25, jsxs as jsxs19 } from "react/jsx-runtime";
755
765
  var ColorSelect = forwardRef25(function ColorSelect2({ options, value, defaultValue, onChange, name, list, size = "md", className, ...rest }, ref) {
756
766
  const group = name ?? `oc-color-${useId6().replace(/:/g, "")}`;
757
767
  const [current, setCurrent] = useControllable(value, defaultValue ?? "", onChange);
758
- return /* @__PURE__ */ jsx25("fieldset", { ref, className: cx("oc-color-select", list && "oc-color-select--list", size === "sm" && "oc-color-select--sm", className), role: "radiogroup", ...rest, children: options.map((o) => /* @__PURE__ */ jsxs18("label", { className: "oc-color-select-option", style: { "--oc-swatch": o.color }, children: [
768
+ return /* @__PURE__ */ jsx25("fieldset", { ref, className: cx("oc-color-select", list && "oc-color-select--list", size === "sm" && "oc-color-select--sm", className), role: "radiogroup", ...rest, children: options.map((o) => /* @__PURE__ */ jsxs19("label", { className: "oc-color-select-option", style: { "--oc-swatch": o.color }, children: [
759
769
  /* @__PURE__ */ jsx25("input", { type: "radio", name: group, value: o.value, disabled: o.disabled, checked: current === o.value, onChange: () => setCurrent(o.value) }),
760
770
  /* @__PURE__ */ jsx25("span", { className: "oc-color-select-swatch" }),
761
771
  /* @__PURE__ */ jsx25("span", { className: "oc-color-select-name", children: o.label })
@@ -764,18 +774,18 @@ var ColorSelect = forwardRef25(function ColorSelect2({ options, value, defaultVa
764
774
 
765
775
  // src/components/ColumnMenu.tsx
766
776
  import { forwardRef as forwardRef26, useId as useId7 } from "react";
767
- import { jsx as jsx26, jsxs as jsxs19 } from "react/jsx-runtime";
777
+ import { jsx as jsx26, jsxs as jsxs20 } from "react/jsx-runtime";
768
778
  var ColumnMenu = forwardRef26(function ColumnMenu2({ columns, children, triggerLabel = "Columns", title = "Visible columns", resetLabel = "Reset", onColumnToggle, className, ...rest }, ref) {
769
779
  const menuId = `oc-column-menu-${useId7().replace(/:/g, "")}`;
770
- return /* @__PURE__ */ jsxs19("div", { ref, className: cx("oc-column-menu-scope", className), ...rest, children: [
771
- /* @__PURE__ */ jsxs19("div", { className: "oc-table-toolbar", children: [
780
+ return /* @__PURE__ */ jsxs20("div", { ref, className: cx("oc-column-menu-scope", className), ...rest, children: [
781
+ /* @__PURE__ */ jsxs20("div", { className: "oc-table-toolbar", children: [
772
782
  /* @__PURE__ */ jsx26("span", { className: "oc-table-toolbar-spacer" }),
773
783
  /* @__PURE__ */ jsx26("button", { className: "oc-btn oc-btn--outline oc-btn--sm", type: "button", popoverTarget: menuId, children: triggerLabel })
774
784
  ] }),
775
- /* @__PURE__ */ jsxs19("div", { className: "oc-column-menu", id: menuId, ...attrs({ popover: "" }), children: [
785
+ /* @__PURE__ */ jsxs20("div", { className: "oc-column-menu", id: menuId, ...attrs({ popover: "" }), children: [
776
786
  /* @__PURE__ */ jsx26("p", { className: "oc-column-menu-title", children: title }),
777
- /* @__PURE__ */ jsxs19("form", { className: "oc-column-menu-list", children: [
778
- columns.map((col, i) => /* @__PURE__ */ jsxs19("label", { className: "oc-column-menu-item", children: [
787
+ /* @__PURE__ */ jsxs20("form", { className: "oc-column-menu-list", children: [
788
+ columns.map((col, i) => /* @__PURE__ */ jsxs20("label", { className: "oc-column-menu-item", children: [
779
789
  /* @__PURE__ */ jsx26(
780
790
  "input",
781
791
  {
@@ -798,7 +808,7 @@ var ColumnMenu = forwardRef26(function ColumnMenu2({ columns, children, triggerL
798
808
 
799
809
  // src/components/Command.tsx
800
810
  import { forwardRef as forwardRef27, useId as useId8, useMemo, useState as useState3 } from "react";
801
- import { Fragment as Fragment3, jsx as jsx27, jsxs as jsxs20 } from "react/jsx-runtime";
811
+ import { Fragment as Fragment3, jsx as jsx27, jsxs as jsxs21 } from "react/jsx-runtime";
802
812
  var matches = (item, q) => !q || [item.label, ...item.keywords ?? []].some((s) => s.toLowerCase().includes(q));
803
813
  var Command = forwardRef27(function Command2({ groups, placeholder = "Type a command or search...", emptyText = "No results found.", query, onQueryChange, onSelect, className, ...rest }, ref) {
804
814
  const listId = useId8();
@@ -827,7 +837,7 @@ var Command = forwardRef27(function Command2({ groups, placeholder = "Type a com
827
837
  onSelect?.(active);
828
838
  }
829
839
  };
830
- return /* @__PURE__ */ jsxs20("div", { ref, className: cx("oc-command", className), role: "combobox", "aria-expanded": "true", "aria-haspopup": "listbox", "aria-controls": listId, ...rest, children: [
840
+ return /* @__PURE__ */ jsxs21("div", { ref, className: cx("oc-command", className), role: "combobox", "aria-expanded": "true", "aria-haspopup": "listbox", "aria-controls": listId, ...rest, children: [
831
841
  /* @__PURE__ */ jsx27(
832
842
  "input",
833
843
  {
@@ -849,7 +859,7 @@ var Command = forwardRef27(function Command2({ groups, placeholder = "Type a com
849
859
  return [
850
860
  gi > 0 && /* @__PURE__ */ jsx27("li", { className: "oc-command-separator", role: "separator", hidden: !anyVisible }, `sep-${gi}`),
851
861
  group.label && /* @__PURE__ */ jsx27("li", { className: "oc-command-group-label", role: "presentation", hidden: !anyVisible, children: group.label }, `label-${gi}`),
852
- ...group.items.map((item) => /* @__PURE__ */ jsxs20(
862
+ ...group.items.map((item) => /* @__PURE__ */ jsxs21(
853
863
  "li",
854
864
  {
855
865
  className: "oc-command-item",
@@ -861,7 +871,7 @@ var Command = forwardRef27(function Command2({ groups, placeholder = "Type a com
861
871
  onClick: () => !item.disabled && onSelect?.(item),
862
872
  children: [
863
873
  item.label,
864
- item.shortcut && /* @__PURE__ */ jsxs20(Fragment3, { children: [
874
+ item.shortcut && /* @__PURE__ */ jsxs21(Fragment3, { children: [
865
875
  " ",
866
876
  /* @__PURE__ */ jsx27("span", { className: "oc-command-shortcut", children: item.shortcut })
867
877
  ] })
@@ -877,7 +887,7 @@ var Command = forwardRef27(function Command2({ groups, placeholder = "Type a com
877
887
 
878
888
  // src/components/ConfirmDialog.tsx
879
889
  import { forwardRef as forwardRef28, useId as useId9, useRef as useRef4 } from "react";
880
- import { Fragment as Fragment4, jsx as jsx28, jsxs as jsxs21 } from "react/jsx-runtime";
890
+ import { Fragment as Fragment4, jsx as jsx28, jsxs as jsxs22 } from "react/jsx-runtime";
881
891
  var GLYPHS2 = { success: "\u2713", error: "\xD7", warning: "!", info: "i", question: "?" };
882
892
  var ConfirmDialog = forwardRef28(function ConfirmDialog2({
883
893
  open,
@@ -919,21 +929,21 @@ var ConfirmDialog = forwardRef28(function ConfirmDialog2({
919
929
  ...attrs({ closedby: "any" }),
920
930
  ...rest,
921
931
  onClose: dlg.onClose,
922
- children: /* @__PURE__ */ jsxs21("div", { className: `oc-modal-content oc-alert-dialog oc-alert-dialog--${type} oc-alert-dialog--confirm`, children: [
932
+ children: /* @__PURE__ */ jsxs22("div", { className: `oc-modal-content oc-alert-dialog oc-alert-dialog--${type} oc-alert-dialog--confirm`, children: [
923
933
  /* @__PURE__ */ jsx28("button", { className: "oc-alert-dialog-close", type: "button", "aria-label": closeLabel, onClick: dlg.close, children: "\xD7" }),
924
934
  /* @__PURE__ */ jsx28("span", { className: "oc-alert-dialog-icon", "aria-hidden": "true", children: icon ?? GLYPHS2[type] }),
925
935
  /* @__PURE__ */ jsx28("h2", { className: "oc-modal-title", id: `${id}-title`, children: title }),
926
- /* @__PURE__ */ jsxs21("form", { className: "oc-alert-dialog-form", onSubmit: submit, children: [
936
+ /* @__PURE__ */ jsxs22("form", { className: "oc-alert-dialog-form", onSubmit: submit, children: [
927
937
  /* @__PURE__ */ jsx28("div", { className: "oc-modal-body", id: `${id}-text`, children: message ?? children }),
928
- confirmWord && /* @__PURE__ */ jsxs21("label", { className: "oc-alert-dialog-typed", children: [
929
- /* @__PURE__ */ jsx28("span", { children: confirmWordLabel ?? /* @__PURE__ */ jsxs21(Fragment4, { children: [
938
+ confirmWord && /* @__PURE__ */ jsxs22("label", { className: "oc-alert-dialog-typed", children: [
939
+ /* @__PURE__ */ jsx28("span", { children: confirmWordLabel ?? /* @__PURE__ */ jsxs22(Fragment4, { children: [
930
940
  "Type ",
931
941
  /* @__PURE__ */ jsx28("code", { children: confirmWord }),
932
942
  " to confirm"
933
943
  ] }) }),
934
944
  /* @__PURE__ */ jsx28("input", { className: "oc-input", name: "confirm", pattern: confirmWord, required: true, autoComplete: "off" })
935
945
  ] }),
936
- /* @__PURE__ */ jsxs21("div", { className: "oc-modal-footer", children: [
946
+ /* @__PURE__ */ jsxs22("div", { className: "oc-modal-footer", children: [
937
947
  discardLabel != null && /* @__PURE__ */ jsx28("button", { className: "oc-btn oc-btn--ghost oc-alert-dialog-discard", type: "button", onClick: () => {
938
948
  onDiscard?.();
939
949
  dlg.close();
@@ -949,7 +959,7 @@ var ConfirmDialog = forwardRef28(function ConfirmDialog2({
949
959
 
950
960
  // src/components/CookieConsent.tsx
951
961
  import { forwardRef as forwardRef29, useEffect as useEffect2, useRef as useRef5 } from "react";
952
- import { Fragment as Fragment5, jsx as jsx29, jsxs as jsxs22 } from "react/jsx-runtime";
962
+ import { Fragment as Fragment5, jsx as jsx29, jsxs as jsxs23 } from "react/jsx-runtime";
953
963
  var DEMO3 = [
954
964
  { name: "necessary", label: "Necessary", text: "Session, security and your cookie choice. Always on.", required: true },
955
965
  { name: "statistics", label: "Statistics", text: "Anonymous visit counts." },
@@ -1015,9 +1025,9 @@ var CookieConsent = forwardRef29(function CookieConsent2({
1015
1025
  box.current?.hidePopover?.();
1016
1026
  tell(choice);
1017
1027
  };
1018
- return /* @__PURE__ */ jsxs22(Fragment5, { children: [
1028
+ return /* @__PURE__ */ jsxs23(Fragment5, { children: [
1019
1029
  openLabel != null && /* @__PURE__ */ jsx29("button", { type: "button", className: "oc-btn oc-btn--outline oc-btn--sm", "data-oc-consent-open": "", children: openLabel }),
1020
- /* @__PURE__ */ jsxs22(
1030
+ /* @__PURE__ */ jsxs23(
1021
1031
  "aside",
1022
1032
  {
1023
1033
  ref,
@@ -1028,28 +1038,28 @@ var CookieConsent = forwardRef29(function CookieConsent2({
1028
1038
  onClick: callAll(choose, onClick),
1029
1039
  ...rest,
1030
1040
  children: [
1031
- /* @__PURE__ */ jsxs22("h2", { className: "oc-cookie-consent__title", id: `${id}-title`, children: [
1041
+ /* @__PURE__ */ jsxs23("h2", { className: "oc-cookie-consent__title", id: `${id}-title`, children: [
1032
1042
  /* @__PURE__ */ jsx29("span", { "aria-hidden": "true", children: "\u{1F36A}" }),
1033
1043
  " ",
1034
1044
  title
1035
1045
  ] }),
1036
- /* @__PURE__ */ jsx29("p", { className: "oc-cookie-consent__text", children: text ?? /* @__PURE__ */ jsxs22(Fragment5, { children: [
1046
+ /* @__PURE__ */ jsx29("p", { className: "oc-cookie-consent__text", children: text ?? /* @__PURE__ */ jsxs23(Fragment5, { children: [
1037
1047
  "Necessary cookies keep the site working. With your permission we also measure visits to improve the site. Read the ",
1038
1048
  /* @__PURE__ */ jsx29("a", { href: policyHref, children: "cookie policy" }),
1039
1049
  "."
1040
1050
  ] }) }),
1041
- /* @__PURE__ */ jsxs22("details", { className: "oc-cookie-consent__prefs", children: [
1051
+ /* @__PURE__ */ jsxs23("details", { className: "oc-cookie-consent__prefs", children: [
1042
1052
  /* @__PURE__ */ jsx29("summary", { children: customizeLabel }),
1043
- categories.map((c) => /* @__PURE__ */ jsxs22("div", { className: "oc-cookie-consent__category", children: [
1053
+ categories.map((c) => /* @__PURE__ */ jsxs23("div", { className: "oc-cookie-consent__category", children: [
1044
1054
  /* @__PURE__ */ jsx29("span", { className: "oc-cookie-consent__category-name", children: c.label }),
1045
1055
  c.text != null && /* @__PURE__ */ jsx29("span", { className: "oc-cookie-consent__category-text", children: c.text }),
1046
- /* @__PURE__ */ jsxs22("label", { className: "oc-switch", children: [
1056
+ /* @__PURE__ */ jsxs23("label", { className: "oc-switch", children: [
1047
1057
  /* @__PURE__ */ jsx29("input", { type: "checkbox", role: "switch", name: c.name, defaultChecked: c.required, disabled: c.required, "aria-label": `${c.label} cookies` }),
1048
1058
  /* @__PURE__ */ jsx29("span", { className: "oc-switch-track" })
1049
1059
  ] })
1050
1060
  ] }, c.name))
1051
1061
  ] }),
1052
- /* @__PURE__ */ jsxs22("div", { className: "oc-cookie-consent__actions", children: [
1062
+ /* @__PURE__ */ jsxs23("div", { className: "oc-cookie-consent__actions", children: [
1053
1063
  /* @__PURE__ */ jsx29("button", { type: "button", className: "oc-btn oc-btn--outline", "data-oc-consent": "necessary", children: necessaryLabel }),
1054
1064
  /* @__PURE__ */ jsx29("button", { type: "button", className: "oc-btn oc-btn--secondary", "data-oc-consent": "selected", children: selectedLabel }),
1055
1065
  /* @__PURE__ */ jsx29("button", { type: "button", className: "oc-btn", "data-oc-consent": "all", children: allLabel })
@@ -1062,7 +1072,7 @@ var CookieConsent = forwardRef29(function CookieConsent2({
1062
1072
 
1063
1073
  // src/components/CopyField.tsx
1064
1074
  import { forwardRef as forwardRef30, useEffect as useEffect3, useRef as useRef6, useState as useState4 } from "react";
1065
- import { jsx as jsx30, jsxs as jsxs23 } from "react/jsx-runtime";
1075
+ import { jsx as jsx30, jsxs as jsxs24 } from "react/jsx-runtime";
1066
1076
  var CopyField = forwardRef30(function CopyField2({ value, label = "Value", buttonLabel = "Copy", feedbackMs = 2e3, onCopy, className, ...rest }, ref) {
1067
1077
  const [copied, setCopied] = useState4(false);
1068
1078
  const timer = useRef6(void 0);
@@ -1078,7 +1088,7 @@ var CopyField = forwardRef30(function CopyField2({ value, label = "Value", butto
1078
1088
  clearTimeout(timer.current);
1079
1089
  timer.current = setTimeout(() => setCopied(false), feedbackMs);
1080
1090
  };
1081
- return /* @__PURE__ */ jsxs23("div", { ref, className: cx("oc-copy-field", className), ...rest, children: [
1091
+ return /* @__PURE__ */ jsxs24("div", { ref, className: cx("oc-copy-field", className), ...rest, children: [
1082
1092
  /* @__PURE__ */ jsx30("input", { className: "oc-copy-field-value", type: "text", readOnly: true, value, "aria-label": label }),
1083
1093
  /* @__PURE__ */ jsx30("button", { className: cx("oc-copy-field-button", copied && "is-copied"), type: "button", onClick: copy, children: buttonLabel })
1084
1094
  ] });
@@ -1545,14 +1555,21 @@ function bindDataTable(root) {
1545
1555
  function initDataTables(scope = document) {
1546
1556
  scope.querySelectorAll(".oc-data-table").forEach((root) => bindDataTable(root));
1547
1557
  }
1548
- if (typeof document !== "undefined" && String(import.meta.url).includes("oc-data-table")) {
1558
+ function autoStart() {
1559
+ if (typeof document === "undefined") return false;
1560
+ const url = String(import.meta.url);
1561
+ if (url.includes("oc-data-table") || /[?&]auto(=|&|$)/.test(url)) return true;
1562
+ const file = url.split(/[?#]/)[0];
1563
+ return [...document.querySelectorAll("script[data-oc-auto][src]")].some((s) => s.src.split(/[?#]/)[0] === file);
1564
+ }
1565
+ if (autoStart()) {
1549
1566
  const boot = () => initDataTables(document);
1550
1567
  if (document.readyState === "loading") document.addEventListener("DOMContentLoaded", boot);
1551
1568
  else boot();
1552
1569
  }
1553
1570
 
1554
1571
  // src/components/DataTable.tsx
1555
- import { jsx as jsx32, jsxs as jsxs24 } from "react/jsx-runtime";
1572
+ import { jsx as jsx32, jsxs as jsxs25 } from "react/jsx-runtime";
1556
1573
  var PAGE_SIZES = [10, 15, 20, 50, 100];
1557
1574
  function DataTable({
1558
1575
  id,
@@ -1586,7 +1603,7 @@ function DataTable({
1586
1603
  }, [columns, rows]);
1587
1604
  const lead = (selectable ? 1 : 0) + (draggable ? 1 : 0);
1588
1605
  const sizes = [.../* @__PURE__ */ new Set([...PAGE_SIZES, pageSize])].sort((a, b) => a - b);
1589
- return /* @__PURE__ */ jsxs24(
1606
+ return /* @__PURE__ */ jsxs25(
1590
1607
  "div",
1591
1608
  {
1592
1609
  ref: rootRef,
@@ -1595,11 +1612,11 @@ function DataTable({
1595
1612
  "data-page-size": pageSize,
1596
1613
  "data-oc-live": live ? "true" : void 0,
1597
1614
  children: [
1598
- /* @__PURE__ */ jsxs24("div", { className: "oc-data-table-toolbar", children: [
1599
- /* @__PURE__ */ jsxs24("div", { className: "oc-data-table-heading", children: [
1615
+ /* @__PURE__ */ jsxs25("div", { className: "oc-data-table-toolbar", children: [
1616
+ /* @__PURE__ */ jsxs25("div", { className: "oc-data-table-heading", children: [
1600
1617
  /* @__PURE__ */ jsx32("span", { className: "oc-data-table-title", children: title }),
1601
1618
  /* @__PURE__ */ jsx32("button", { className: "oc-btn oc-btn--outline oc-btn--icon oc-btn--sm", type: "button", popoverTarget: `${tableId}-menu`, "aria-label": "Table actions", children: "\u2699" }),
1602
- /* @__PURE__ */ jsxs24("div", { className: "oc-dropdown-menu", id: `${tableId}-menu`, popover: "auto", children: [
1619
+ /* @__PURE__ */ jsxs25("div", { className: "oc-dropdown-menu", id: `${tableId}-menu`, popover: "auto", children: [
1603
1620
  /* @__PURE__ */ jsx32("button", { className: "oc-dropdown-item", type: "button", "data-oc-export": "", children: "Export CSV" }),
1604
1621
  /* @__PURE__ */ jsx32("button", { className: "oc-dropdown-item", type: "button", "data-oc-import": "", children: "Import CSV" }),
1605
1622
  /* @__PURE__ */ jsx32("input", { className: "oc-data-table-file", type: "file", accept: ".csv,text/csv", "data-oc-file": "" }),
@@ -1610,32 +1627,32 @@ function DataTable({
1610
1627
  ] })
1611
1628
  ] }),
1612
1629
  /* @__PURE__ */ jsx32("input", { className: "oc-input oc-data-table-search", type: "search", placeholder: searchPlaceholder, "aria-label": `Search ${title}` }),
1613
- filters && /* @__PURE__ */ jsxs24("div", { className: "oc-filter-pills", role: "group", "aria-label": "Trash filter", children: [
1630
+ filters && /* @__PURE__ */ jsxs25("div", { className: "oc-filter-pills", role: "group", "aria-label": "Trash filter", children: [
1614
1631
  /* @__PURE__ */ jsx32("button", { className: "oc-filter-pill", type: "button", "data-oc-filter": "active", "aria-current": "true", children: "Active only" }),
1615
1632
  /* @__PURE__ */ jsx32("button", { className: "oc-filter-pill", type: "button", "data-oc-filter": "all", children: "Including trash" }),
1616
1633
  /* @__PURE__ */ jsx32("button", { className: "oc-filter-pill", type: "button", "data-oc-filter": "deleted", children: "Trash only" }),
1617
1634
  /* @__PURE__ */ jsx32("button", { className: "oc-filter-pill", type: "button", "data-oc-filter": "archived", children: "Archive only" })
1618
1635
  ] }),
1619
- /* @__PURE__ */ jsxs24("div", { className: "oc-data-table-view", role: "group", "aria-label": "View", children: [
1636
+ /* @__PURE__ */ jsxs25("div", { className: "oc-data-table-view", role: "group", "aria-label": "View", children: [
1620
1637
  /* @__PURE__ */ jsx32("button", { className: "oc-btn oc-btn--outline oc-btn--sm", type: "button", "data-oc-view": "table", "aria-pressed": "true", children: "Table" }),
1621
1638
  /* @__PURE__ */ jsx32("button", { className: "oc-btn oc-btn--outline oc-btn--sm", type: "button", "data-oc-view": "grid", children: "Cards" })
1622
1639
  ] }),
1623
1640
  actions && /* @__PURE__ */ jsx32("div", { className: "oc-data-table-actions", children: actions }),
1624
1641
  /* @__PURE__ */ jsx32("p", { className: "oc-data-table-sort-summary", "data-oc-sort-summary": "", role: "status" })
1625
1642
  ] }),
1626
- /* @__PURE__ */ jsxs24("div", { className: "oc-table-toolbar", children: [
1643
+ /* @__PURE__ */ jsxs25("div", { className: "oc-table-toolbar", children: [
1627
1644
  /* @__PURE__ */ jsx32("span", { className: "oc-table-toolbar-spacer" }),
1628
1645
  /* @__PURE__ */ jsx32("button", { className: "oc-btn oc-btn--outline oc-btn--sm", type: "button", popoverTarget: `${tableId}-columns`, children: "Columns" })
1629
1646
  ] }),
1630
- /* @__PURE__ */ jsxs24("div", { className: "oc-column-menu", id: `${tableId}-columns`, popover: "auto", children: [
1647
+ /* @__PURE__ */ jsxs25("div", { className: "oc-column-menu", id: `${tableId}-columns`, popover: "auto", children: [
1631
1648
  /* @__PURE__ */ jsx32("p", { className: "oc-column-menu-title", children: "Visible columns" }),
1632
- /* @__PURE__ */ jsx32("form", { className: "oc-column-menu-list", children: columns.map((col, index) => col.hideable === false ? null : /* @__PURE__ */ jsxs24("label", { className: "oc-column-menu-item", children: [
1649
+ /* @__PURE__ */ jsx32("form", { className: "oc-column-menu-list", children: columns.map((col, index) => col.hideable === false ? null : /* @__PURE__ */ jsxs25("label", { className: "oc-column-menu-item", children: [
1633
1650
  /* @__PURE__ */ jsx32("input", { type: "checkbox", "data-col": lead + index + 1, defaultChecked: !col.defaultHidden }),
1634
1651
  " ",
1635
1652
  col.header
1636
1653
  ] }, col.key)) })
1637
1654
  ] }),
1638
- /* @__PURE__ */ jsxs24("div", { className: "oc-data-table-bulk", hidden: true, children: [
1655
+ /* @__PURE__ */ jsxs25("div", { className: "oc-data-table-bulk", hidden: true, children: [
1639
1656
  /* @__PURE__ */ jsx32("span", { "data-oc-selected-count": "", children: "0 selected" }),
1640
1657
  /* @__PURE__ */ jsx32("button", { className: "oc-btn oc-btn--outline oc-btn--sm", type: "button", "data-oc-bulk": "export", children: "Export selection" }),
1641
1658
  /* @__PURE__ */ jsx32("button", { className: "oc-btn oc-btn--outline oc-btn--sm", type: "button", "data-oc-bulk": "duplicate", children: "Duplicate" }),
@@ -1644,18 +1661,18 @@ function DataTable({
1644
1661
  /* @__PURE__ */ jsx32("button", { className: "oc-btn oc-btn--destructive oc-btn--sm", type: "button", "data-oc-bulk": "delete", children: "Delete permanently" }),
1645
1662
  /* @__PURE__ */ jsx32("button", { className: "oc-btn oc-btn--ghost oc-btn--sm", type: "button", "data-oc-bulk": "clear", children: "Clear" })
1646
1663
  ] }),
1647
- /* @__PURE__ */ jsxs24("div", { className: "oc-data-table-frame", children: [
1648
- /* @__PURE__ */ jsx32("div", { className: "oc-data-table-scroll", children: /* @__PURE__ */ jsxs24("table", { className: "oc-table oc-data-table-table", children: [
1649
- /* @__PURE__ */ jsx32("thead", { children: /* @__PURE__ */ jsxs24("tr", { children: [
1664
+ /* @__PURE__ */ jsxs25("div", { className: "oc-data-table-frame", children: [
1665
+ /* @__PURE__ */ jsx32("div", { className: "oc-data-table-scroll", children: /* @__PURE__ */ jsxs25("table", { className: "oc-table oc-data-table-table", children: [
1666
+ /* @__PURE__ */ jsx32("thead", { children: /* @__PURE__ */ jsxs25("tr", { children: [
1650
1667
  selectable && /* @__PURE__ */ jsx32("th", { "data-oc-col": "select", children: /* @__PURE__ */ jsx32("input", { className: "oc-checkbox", type: "checkbox", "data-oc-select-all": "", "aria-label": "Select all" }) }),
1651
1668
  draggable && /* @__PURE__ */ jsx32("th", { "data-oc-col": "order", children: /* @__PURE__ */ jsx32("span", { className: "oc-visually-hidden", children: "Order" }) }),
1652
- columns.map((col) => /* @__PURE__ */ jsx32("th", { "data-oc-col": col.key, "data-oc-sort": col.numeric ? "numeric" : "text", "data-numeric": col.numeric ? "" : void 0, children: /* @__PURE__ */ jsxs24("span", { className: "oc-data-table-th", children: [
1669
+ columns.map((col) => /* @__PURE__ */ jsx32("th", { "data-oc-col": col.key, "data-oc-sort": col.numeric ? "numeric" : "text", "data-numeric": col.numeric ? "" : void 0, children: /* @__PURE__ */ jsxs25("span", { className: "oc-data-table-th", children: [
1653
1670
  col.sortable === false ? col.header : /* @__PURE__ */ jsx32("button", { className: "oc-table-sort", type: "button", children: col.header }),
1654
1671
  /* @__PURE__ */ jsx32("span", { className: "oc-data-table-resize", role: "separator", "aria-orientation": "vertical", "aria-label": `Resize ${col.header}` })
1655
1672
  ] }) }, col.key)),
1656
1673
  /* @__PURE__ */ jsx32("th", { "data-oc-col": "actions", children: /* @__PURE__ */ jsx32("span", { className: "oc-visually-hidden", children: "Actions" }) })
1657
1674
  ] }) }),
1658
- /* @__PURE__ */ jsx32("tbody", { children: rows.map((row) => /* @__PURE__ */ jsxs24("tr", { "data-oc-row": "", "data-oc-key": row.key, "data-oc-status": row.status || "active", "data-oc-href": row.href, children: [
1675
+ /* @__PURE__ */ jsx32("tbody", { children: rows.map((row) => /* @__PURE__ */ jsxs25("tr", { "data-oc-row": "", "data-oc-key": row.key, "data-oc-status": row.status || "active", "data-oc-href": row.href, children: [
1659
1676
  selectable && /* @__PURE__ */ jsx32("td", { "data-oc-col": "select", children: /* @__PURE__ */ jsx32("input", { className: "oc-checkbox", type: "checkbox", "data-oc-select": "", "aria-label": `Select ${row.cells.name || row.key}` }) }),
1660
1677
  draggable && /* @__PURE__ */ jsx32("td", { "data-oc-col": "order", className: "oc-sortable-row-grip-cell", children: /* @__PURE__ */ jsx32("button", { className: "oc-sortable-row-grip", type: "button", "aria-label": `Move ${row.cells.name || row.key}` }) }),
1661
1678
  columns.map((col) => /* @__PURE__ */ jsx32("td", { "data-oc-col": col.key, "data-numeric": col.numeric ? "" : void 0, "data-oc-value": row.values?.[col.key], children: row.cells[col.key] ?? "" }, col.key)),
@@ -1664,9 +1681,9 @@ function DataTable({
1664
1681
  ] }) }),
1665
1682
  /* @__PURE__ */ jsx32("p", { className: "oc-data-table-empty", hidden: true, children: "No results" })
1666
1683
  ] }),
1667
- /* @__PURE__ */ jsxs24("div", { className: "oc-data-table-footer", children: [
1684
+ /* @__PURE__ */ jsxs25("div", { className: "oc-data-table-footer", children: [
1668
1685
  /* @__PURE__ */ jsx32("p", { className: "oc-data-table-summary", "data-oc-summary": "" }),
1669
- /* @__PURE__ */ jsxs24("label", { className: "oc-data-table-per-page", children: [
1686
+ /* @__PURE__ */ jsxs25("label", { className: "oc-data-table-per-page", children: [
1670
1687
  "Rows per page",
1671
1688
  /* @__PURE__ */ jsx32("select", { className: "oc-select", "data-oc-page-size": "", "aria-label": "Rows per page", defaultValue: String(pageSize), children: sizes.map((n) => /* @__PURE__ */ jsx32("option", { value: n, children: n }, n)) })
1672
1689
  ] }),
@@ -1679,7 +1696,7 @@ function DataTable({
1679
1696
 
1680
1697
  // src/components/DecimalInput.tsx
1681
1698
  import { forwardRef as forwardRef32, useEffect as useEffect5, useState as useState5 } from "react";
1682
- import { jsx as jsx33, jsxs as jsxs25 } from "react/jsx-runtime";
1699
+ import { jsx as jsx33, jsxs as jsxs26 } from "react/jsx-runtime";
1683
1700
  function separators(locale) {
1684
1701
  const parts = new Intl.NumberFormat(locale).formatToParts(1234.5);
1685
1702
  return { group: parts.find((p) => p.type === "group")?.value ?? ",", decimal: parts.find((p) => p.type === "decimal")?.value ?? "." };
@@ -1728,7 +1745,7 @@ var DecimalInput = forwardRef32(function DecimalInput2({ value, defaultValue, on
1728
1745
  }
1729
1746
  );
1730
1747
  if (!unit) return input;
1731
- return /* @__PURE__ */ jsxs25("div", { className: "oc-decimal-field", children: [
1748
+ return /* @__PURE__ */ jsxs26("div", { className: "oc-decimal-field", children: [
1732
1749
  input,
1733
1750
  /* @__PURE__ */ jsx33("span", { className: "oc-decimal-field-unit", children: unit })
1734
1751
  ] });
@@ -1736,12 +1753,12 @@ var DecimalInput = forwardRef32(function DecimalInput2({ value, defaultValue, on
1736
1753
 
1737
1754
  // src/components/DefinitionList.tsx
1738
1755
  import { forwardRef as forwardRef33 } from "react";
1739
- import { jsx as jsx34, jsxs as jsxs26 } from "react/jsx-runtime";
1756
+ import { jsx as jsx34, jsxs as jsxs27 } from "react/jsx-runtime";
1740
1757
  var DefinitionList = forwardRef33(function DefinitionList2({ title, description, items, footer, className, ...rest }, ref) {
1741
- return /* @__PURE__ */ jsxs26("div", { ref, className: cx("oc-dl-panel", className), role: "region", ...rest, children: [
1758
+ return /* @__PURE__ */ jsxs27("div", { ref, className: cx("oc-dl-panel", className), role: "region", ...rest, children: [
1742
1759
  title != null && /* @__PURE__ */ jsx34("h3", { className: "oc-dl-title", children: title }),
1743
1760
  description != null && /* @__PURE__ */ jsx34("p", { className: "oc-dl-description", children: description }),
1744
- /* @__PURE__ */ jsx34("dl", { className: "oc-dl", children: items.map((item, i) => /* @__PURE__ */ jsxs26("div", { className: "oc-dl-row", children: [
1761
+ /* @__PURE__ */ jsx34("dl", { className: "oc-dl", children: items.map((item, i) => /* @__PURE__ */ jsxs27("div", { className: "oc-dl-row", children: [
1745
1762
  /* @__PURE__ */ jsx34("dt", { className: "oc-dl-term", children: item.term }),
1746
1763
  /* @__PURE__ */ jsx34("dd", { className: "oc-dl-detail", children: item.detail })
1747
1764
  ] }, i)) }),
@@ -1751,7 +1768,7 @@ var DefinitionList = forwardRef33(function DefinitionList2({ title, description,
1751
1768
 
1752
1769
  // src/components/DocViewer.tsx
1753
1770
  import { forwardRef as forwardRef34, useId as useId11 } from "react";
1754
- import { Fragment as Fragment6, jsx as jsx35, jsxs as jsxs27 } from "react/jsx-runtime";
1771
+ import { Fragment as Fragment6, jsx as jsx35, jsxs as jsxs28 } from "react/jsx-runtime";
1755
1772
  var DEMO4 = [
1756
1773
  { label: "Brochure 2026", meta: "PDF \xB7 2.4 MB", alt: "First page of Brochure 2026", art: 2, download: "#brochure.pdf" },
1757
1774
  { label: "Site visit", meta: "1:42", type: "video", alt: "Video still: site visit", art: 5 }
@@ -1771,13 +1788,13 @@ var DocViewer = forwardRef34(function DocViewer2({ items = DEMO4, openText = "Cl
1771
1788
  const id = idOf(doc, i);
1772
1789
  const full = doc.fullscreen !== false;
1773
1790
  const frame = full && (doc.open ?? (doc.type === "video" ? "frame" : "bar")) === "frame";
1774
- return /* @__PURE__ */ jsxs27("figure", { className: cx("oc-doc-viewer", doc.type === "video" && "oc-doc-viewer--video", doc.type === "image" && "oc-doc-viewer--image"), children: [
1775
- /* @__PURE__ */ jsxs27("figcaption", { className: "oc-doc-viewer__bar", children: [
1791
+ return /* @__PURE__ */ jsxs28("figure", { className: cx("oc-doc-viewer", doc.type === "video" && "oc-doc-viewer--video", doc.type === "image" && "oc-doc-viewer--image"), children: [
1792
+ /* @__PURE__ */ jsxs28("figcaption", { className: "oc-doc-viewer__bar", children: [
1776
1793
  /* @__PURE__ */ jsx35("span", { className: "oc-doc-viewer__label", children: doc.label }),
1777
1794
  doc.meta != null && /* @__PURE__ */ jsx35("span", { className: "oc-doc-viewer__meta", children: doc.meta }),
1778
1795
  full && !frame && /* @__PURE__ */ jsx35("button", { type: "button", className: "oc-doc-viewer__expand", ...attrs({ command: "show-modal", commandfor: id }), "aria-label": `Open ${doc.label} full screen`, children: "\u2922" })
1779
1796
  ] }),
1780
- /* @__PURE__ */ jsxs27("div", { className: "oc-doc-viewer__frame", children: [
1797
+ /* @__PURE__ */ jsxs28("div", { className: "oc-doc-viewer__frame", children: [
1781
1798
  media(doc, doc.alt ?? doc.label),
1782
1799
  frame && /* @__PURE__ */ jsx35("button", { type: "button", className: "oc-doc-viewer__open", ...attrs({ command: "show-modal", commandfor: id }), children: openText })
1783
1800
  ] })
@@ -1787,10 +1804,10 @@ var DocViewer = forwardRef34(function DocViewer2({ items = DEMO4, openText = "Cl
1787
1804
  if (doc.fullscreen === false) return null;
1788
1805
  const id = idOf(doc, i);
1789
1806
  const close = /* @__PURE__ */ jsx35("button", { type: "button", className: "oc-doc-viewer-dialog__close", ...attrs({ command: "close", commandfor: id }), "aria-label": "Close", children: "\u2715" });
1790
- return /* @__PURE__ */ jsxs27("dialog", { className: cx("oc-doc-viewer-dialog", doc.type === "video" && "oc-doc-viewer-dialog--video"), id, ...attrs({ closedby: "any" }), "aria-labelledby": `${id}-title`, children: [
1791
- /* @__PURE__ */ jsxs27("div", { className: "oc-doc-viewer-dialog__bar", children: [
1807
+ return /* @__PURE__ */ jsxs28("dialog", { className: cx("oc-doc-viewer-dialog", doc.type === "video" && "oc-doc-viewer-dialog--video"), id, ...attrs({ closedby: "any" }), "aria-labelledby": `${id}-title`, children: [
1808
+ /* @__PURE__ */ jsxs28("div", { className: "oc-doc-viewer-dialog__bar", children: [
1792
1809
  /* @__PURE__ */ jsx35("h2", { className: "oc-doc-viewer-dialog__title", id: `${id}-title`, children: doc.label }),
1793
- doc.download ? /* @__PURE__ */ jsxs27("div", { className: "oc-doc-viewer-dialog__actions", children: [
1810
+ doc.download ? /* @__PURE__ */ jsxs28("div", { className: "oc-doc-viewer-dialog__actions", children: [
1794
1811
  /* @__PURE__ */ jsx35("a", { className: "oc-btn oc-btn--outline oc-btn--sm", href: doc.download, download: true, children: downloadText }),
1795
1812
  close
1796
1813
  ] }) : close
@@ -1798,7 +1815,7 @@ var DocViewer = forwardRef34(function DocViewer2({ items = DEMO4, openText = "Cl
1798
1815
  /* @__PURE__ */ jsx35("div", { className: "oc-doc-viewer-dialog__body", children: media(doc, doc.type === "video" ? `${doc.label} video` : doc.label) })
1799
1816
  ] }, i);
1800
1817
  });
1801
- return /* @__PURE__ */ jsxs27(Fragment6, { children: [
1818
+ return /* @__PURE__ */ jsxs28(Fragment6, { children: [
1802
1819
  /* @__PURE__ */ jsx35("div", { ref, className: cx("oc-doc-viewer-grid", className), ...rest, children: cards }),
1803
1820
  dialogs
1804
1821
  ] });
@@ -1806,11 +1823,11 @@ var DocViewer = forwardRef34(function DocViewer2({ items = DEMO4, openText = "Cl
1806
1823
 
1807
1824
  // src/components/Dropdown.tsx
1808
1825
  import { forwardRef as forwardRef35, useId as useId12 } from "react";
1809
- import { Fragment as Fragment7, jsx as jsx36, jsxs as jsxs28 } from "react/jsx-runtime";
1826
+ import { Fragment as Fragment7, jsx as jsx36, jsxs as jsxs29 } from "react/jsx-runtime";
1810
1827
  var Dropdown = forwardRef35(function Dropdown2({ trigger, triggerProps, className, id, children, ...rest }, ref) {
1811
1828
  const auto = useId12();
1812
1829
  const menuId = id ?? `oc-menu-${auto.replace(/:/g, "")}`;
1813
- return /* @__PURE__ */ jsxs28(Fragment7, { children: [
1830
+ return /* @__PURE__ */ jsxs29(Fragment7, { children: [
1814
1831
  /* @__PURE__ */ jsx36(Button, { variant: "outline", ...triggerProps, popoverTarget: menuId, children: trigger }),
1815
1832
  /* @__PURE__ */ jsx36("div", { ref, className: cx("oc-dropdown-menu", className), id: menuId, ...attrs({ popover: "" }), ...rest, children })
1816
1833
  ] });
@@ -1830,14 +1847,14 @@ function DropdownItem({ className, ...props }) {
1830
1847
 
1831
1848
  // src/components/Dropzone.tsx
1832
1849
  import { forwardRef as forwardRef36, useState as useState6 } from "react";
1833
- import { jsx as jsx37, jsxs as jsxs29 } from "react/jsx-runtime";
1850
+ import { jsx as jsx37, jsxs as jsxs30 } from "react/jsx-runtime";
1834
1851
  var Dropzone = forwardRef36(function Dropzone2({ icon, children, hint, onFiles, className, ...rest }, ref) {
1835
1852
  const [over, setOver] = useState6(false);
1836
1853
  const stop = (e) => {
1837
1854
  e.preventDefault();
1838
1855
  setOver(e.type === "dragover" || e.type === "dragenter");
1839
1856
  };
1840
- return /* @__PURE__ */ jsxs29(
1857
+ return /* @__PURE__ */ jsxs30(
1841
1858
  "label",
1842
1859
  {
1843
1860
  className: cx("oc-dropzone", over && "is-dragover", className),
@@ -1861,7 +1878,7 @@ var Dropzone = forwardRef36(function Dropzone2({ icon, children, hint, onFiles,
1861
1878
 
1862
1879
  // src/components/EmojiPicker.tsx
1863
1880
  import { forwardRef as forwardRef37, useId as useId13 } from "react";
1864
- import { Fragment as Fragment8, jsx as jsx38, jsxs as jsxs30 } from "react/jsx-runtime";
1881
+ import { Fragment as Fragment8, jsx as jsx38, jsxs as jsxs31 } from "react/jsx-runtime";
1865
1882
  var defaultGroups = [
1866
1883
  { label: "Smileys", emojis: ["\u{1F600}", "\u{1F603}", "\u{1F604}", "\u{1F601}", "\u{1F602}", "\u{1F642}", "\u{1F609}", "\u{1F60D}", "\u{1F914}", "\u{1F60E}", "\u{1F622}", "\u{1F634}", "\u{1F62F}", "\u{1F973}", "\u{1F624}", "\u{1F917}"] },
1867
1884
  { label: "Gestures", emojis: ["\u{1F44D}", "\u{1F44E}", "\u{1F44F}", "\u{1F64C}", "\u{1F44B}", "\u{1F64F}", "\u270C\uFE0F", "\u{1F4AA}"] },
@@ -1884,14 +1901,14 @@ var EmojiPicker = forwardRef37(function EmojiPicker2({ groups = defaultGroups, o
1884
1901
  "aria-label": label,
1885
1902
  ...inline ? {} : attrs({ popover: "" }),
1886
1903
  ...rest,
1887
- children: groups.map((g, gi) => /* @__PURE__ */ jsxs30("div", { children: [
1904
+ children: groups.map((g, gi) => /* @__PURE__ */ jsxs31("div", { children: [
1888
1905
  g.label && /* @__PURE__ */ jsx38("p", { className: "oc-emoji-picker__label", children: g.label }),
1889
1906
  /* @__PURE__ */ jsx38("div", { className: "oc-emoji-picker__grid", children: g.emojis.map((emoji) => /* @__PURE__ */ jsx38("button", { type: "button", className: "oc-emoji-picker__item", onClick: (e) => pick(e, emoji), children: emoji }, emoji)) })
1890
1907
  ] }, gi))
1891
1908
  }
1892
1909
  );
1893
1910
  if (inline) return panel;
1894
- return /* @__PURE__ */ jsxs30(Fragment8, { children: [
1911
+ return /* @__PURE__ */ jsxs31(Fragment8, { children: [
1895
1912
  /* @__PURE__ */ jsx38("button", { type: "button", className: "oc-emoji-picker__trigger", "aria-label": triggerLabel, popoverTarget: panelId, children: trigger }),
1896
1913
  panel
1897
1914
  ] });
@@ -1899,9 +1916,9 @@ var EmojiPicker = forwardRef37(function EmojiPicker2({ groups = defaultGroups, o
1899
1916
 
1900
1917
  // src/components/EmptyState.tsx
1901
1918
  import { forwardRef as forwardRef38 } from "react";
1902
- import { jsx as jsx39, jsxs as jsxs31 } from "react/jsx-runtime";
1919
+ import { jsx as jsx39, jsxs as jsxs32 } from "react/jsx-runtime";
1903
1920
  var EmptyState = forwardRef38(function EmptyState2({ icon, title, description, actions, className, ...rest }, ref) {
1904
- return /* @__PURE__ */ jsxs31("div", { ref, className: cx("oc-empty", className), ...rest, children: [
1921
+ return /* @__PURE__ */ jsxs32("div", { ref, className: cx("oc-empty", className), ...rest, children: [
1905
1922
  icon != null && /* @__PURE__ */ jsx39("span", { className: "oc-empty-icon", "aria-hidden": "true", children: icon }),
1906
1923
  /* @__PURE__ */ jsx39("h3", { className: "oc-empty-title", children: title }),
1907
1924
  description != null && /* @__PURE__ */ jsx39("p", { className: "oc-empty-text", children: description }),
@@ -1911,17 +1928,17 @@ var EmptyState = forwardRef38(function EmptyState2({ icon, title, description, a
1911
1928
 
1912
1929
  // src/components/EntityCard.tsx
1913
1930
  import { Fragment as Fragment9, forwardRef as forwardRef39 } from "react";
1914
- import { jsx as jsx40, jsxs as jsxs32 } from "react/jsx-runtime";
1931
+ import { jsx as jsx40, jsxs as jsxs33 } from "react/jsx-runtime";
1915
1932
  var EntityCard = forwardRef39(function EntityCard2({ title, eyebrow, description, src, alt = "", glyph, media: media3, contain, facts, footer, stacked, size = "md", className, children, ...rest }, ref) {
1916
1933
  const frame = media3 ?? (src ? /* @__PURE__ */ jsx40("img", { src, alt }) : glyph != null ? /* @__PURE__ */ jsx40("span", { className: "oc-entity-card__glyph", "aria-hidden": "true", children: glyph }) : null);
1917
- return /* @__PURE__ */ jsxs32("article", { ref, className: cx("oc-entity-card", stacked && "oc-entity-card--stacked", size === "sm" && "oc-entity-card--sm", className), ...rest, children: [
1918
- /* @__PURE__ */ jsxs32("div", { className: "oc-entity-card__grid", children: [
1934
+ return /* @__PURE__ */ jsxs33("article", { ref, className: cx("oc-entity-card", stacked && "oc-entity-card--stacked", size === "sm" && "oc-entity-card--sm", className), ...rest, children: [
1935
+ /* @__PURE__ */ jsxs33("div", { className: "oc-entity-card__grid", children: [
1919
1936
  /* @__PURE__ */ jsx40("div", { className: cx("oc-entity-card__frame", contain && "oc-entity-card__frame--contain"), children: frame }),
1920
- /* @__PURE__ */ jsxs32("div", { className: "oc-entity-card__body", children: [
1937
+ /* @__PURE__ */ jsxs33("div", { className: "oc-entity-card__body", children: [
1921
1938
  eyebrow != null && /* @__PURE__ */ jsx40("p", { className: "oc-entity-card__eyebrow", children: eyebrow }),
1922
1939
  /* @__PURE__ */ jsx40("h3", { className: "oc-entity-card__title", children: title }),
1923
1940
  description != null && /* @__PURE__ */ jsx40("p", { className: "oc-entity-card__description", children: description }),
1924
- facts && facts.length > 0 && /* @__PURE__ */ jsx40("dl", { className: "oc-entity-card__facts", children: facts.map(([k, v], i) => /* @__PURE__ */ jsxs32(Fragment9, { children: [
1941
+ facts && facts.length > 0 && /* @__PURE__ */ jsx40("dl", { className: "oc-entity-card__facts", children: facts.map(([k, v], i) => /* @__PURE__ */ jsxs33(Fragment9, { children: [
1925
1942
  /* @__PURE__ */ jsx40("dt", { children: k }),
1926
1943
  /* @__PURE__ */ jsx40("dd", { children: v })
1927
1944
  ] }, i)) }),
@@ -1934,7 +1951,7 @@ var EntityCard = forwardRef39(function EntityCard2({ title, eyebrow, description
1934
1951
 
1935
1952
  // src/components/FactList.tsx
1936
1953
  import { forwardRef as forwardRef40 } from "react";
1937
- import { jsx as jsx41, jsxs as jsxs33 } from "react/jsx-runtime";
1954
+ import { jsx as jsx41, jsxs as jsxs34 } from "react/jsx-runtime";
1938
1955
  var FactList = forwardRef40(function FactList2({ items, plain = false, compact = false, stacked = false, accent = false, className, ...rest }, ref) {
1939
1956
  const classes = cx(
1940
1957
  "oc-fact-list",
@@ -1944,7 +1961,7 @@ var FactList = forwardRef40(function FactList2({ items, plain = false, compact =
1944
1961
  accent && "oc-fact-list--accent",
1945
1962
  className
1946
1963
  );
1947
- return /* @__PURE__ */ jsx41("dl", { ref, className: classes, ...rest, children: items.map((row, i) => /* @__PURE__ */ jsxs33("div", { children: [
1964
+ return /* @__PURE__ */ jsx41("dl", { ref, className: classes, ...rest, children: items.map((row, i) => /* @__PURE__ */ jsxs34("div", { children: [
1948
1965
  /* @__PURE__ */ jsx41("dt", { children: row.label }),
1949
1966
  /* @__PURE__ */ jsx41("dd", { children: row.value })
1950
1967
  ] }, i)) });
@@ -1952,11 +1969,11 @@ var FactList = forwardRef40(function FactList2({ items, plain = false, compact =
1952
1969
 
1953
1970
  // src/components/FilterCounts.tsx
1954
1971
  import { forwardRef as forwardRef41, useId as useId14 } from "react";
1955
- import { jsx as jsx42, jsxs as jsxs34 } from "react/jsx-runtime";
1972
+ import { jsx as jsx42, jsxs as jsxs35 } from "react/jsx-runtime";
1956
1973
  var FilterCounts = forwardRef41(function FilterCounts2({ options, value, defaultValue, onChange, name, compact, className, ...rest }, ref) {
1957
1974
  const group = name ?? `oc-filter-${useId14().replace(/:/g, "")}`;
1958
1975
  const [current, setCurrent] = useControllable(value, defaultValue ?? options[0]?.value ?? "", onChange);
1959
- return /* @__PURE__ */ jsx42("fieldset", { ref, className: cx("oc-filter-counts", compact && "oc-filter-counts--compact", className), role: "radiogroup", ...rest, children: options.map((o) => /* @__PURE__ */ jsxs34("label", { className: cx("oc-filter-counts-item", o.tone && o.tone !== "primary" && `oc-filter-counts-item--${o.tone}`), children: [
1976
+ return /* @__PURE__ */ jsx42("fieldset", { ref, className: cx("oc-filter-counts", compact && "oc-filter-counts--compact", className), role: "radiogroup", ...rest, children: options.map((o) => /* @__PURE__ */ jsxs35("label", { className: cx("oc-filter-counts-item", o.tone && o.tone !== "primary" && `oc-filter-counts-item--${o.tone}`), children: [
1960
1977
  /* @__PURE__ */ jsx42("input", { type: "radio", name: group, value: o.value, disabled: o.disabled, checked: current === o.value, onChange: () => setCurrent(o.value) }),
1961
1978
  /* @__PURE__ */ jsx42("span", { className: "oc-filter-counts-value", children: o.count }),
1962
1979
  /* @__PURE__ */ jsx42("span", { className: "oc-filter-counts-label", children: o.label }),
@@ -1966,12 +1983,12 @@ var FilterCounts = forwardRef41(function FilterCounts2({ options, value, default
1966
1983
 
1967
1984
  // src/components/FlipCard.tsx
1968
1985
  import { forwardRef as forwardRef42, useId as useId15 } from "react";
1969
- import { jsx as jsx43, jsxs as jsxs35 } from "react/jsx-runtime";
1986
+ import { jsx as jsx43, jsxs as jsxs36 } from "react/jsx-runtime";
1970
1987
  var FlipCard = forwardRef42(function FlipCard2({ front, back, trigger = "toggle", flipped, defaultFlipped = false, onFlippedChange, vertical, frontLabel = "Show answer", backLabel = "Back", className, ...rest }, ref) {
1971
1988
  const id = `oc-flip-${useId15().replace(/:/g, "")}`;
1972
1989
  const [isFlipped, setFlipped] = useControllable(flipped, defaultFlipped, onFlippedChange);
1973
1990
  const toggle = trigger === "toggle";
1974
- return /* @__PURE__ */ jsxs35(
1991
+ return /* @__PURE__ */ jsxs36(
1975
1992
  "div",
1976
1993
  {
1977
1994
  ref,
@@ -1980,12 +1997,12 @@ var FlipCard = forwardRef42(function FlipCard2({ front, back, trigger = "toggle"
1980
1997
  ...rest,
1981
1998
  children: [
1982
1999
  toggle && /* @__PURE__ */ jsx43("input", { type: "checkbox", className: "oc-flip-card__toggle", id, checked: isFlipped, onChange: (e) => setFlipped(e.target.checked) }),
1983
- /* @__PURE__ */ jsxs35("div", { className: "oc-flip-card__inner", children: [
1984
- /* @__PURE__ */ jsxs35("div", { className: "oc-flip-card__face oc-flip-card__face--front", children: [
2000
+ /* @__PURE__ */ jsxs36("div", { className: "oc-flip-card__inner", children: [
2001
+ /* @__PURE__ */ jsxs36("div", { className: "oc-flip-card__face oc-flip-card__face--front", children: [
1985
2002
  front,
1986
2003
  toggle && /* @__PURE__ */ jsx43("label", { className: "oc-flip-card__flip", htmlFor: id, children: frontLabel })
1987
2004
  ] }),
1988
- /* @__PURE__ */ jsxs35("div", { className: "oc-flip-card__face oc-flip-card__face--back", children: [
2005
+ /* @__PURE__ */ jsxs36("div", { className: "oc-flip-card__face oc-flip-card__face--back", children: [
1989
2006
  back,
1990
2007
  toggle && /* @__PURE__ */ jsx43("label", { className: "oc-flip-card__flip", htmlFor: id, children: backLabel })
1991
2008
  ] })
@@ -1997,7 +2014,7 @@ var FlipCard = forwardRef42(function FlipCard2({ front, back, trigger = "toggle"
1997
2014
 
1998
2015
  // src/components/FormField.tsx
1999
2016
  import { Children, cloneElement, forwardRef as forwardRef43, isValidElement, useId as useId16 } from "react";
2000
- import { jsx as jsx44, jsxs as jsxs36 } from "react/jsx-runtime";
2017
+ import { jsx as jsx44, jsxs as jsxs37 } from "react/jsx-runtime";
2001
2018
  var FormField = forwardRef43(function FormField2({ label, description, error, horizontal, htmlFor, className, children, ...rest }, ref) {
2002
2019
  const auto = useId16();
2003
2020
  const only = Children.count(children) === 1 && isValidElement(children) ? children : null;
@@ -2010,7 +2027,7 @@ var FormField = forwardRef43(function FormField2({ label, description, error, ho
2010
2027
  "aria-describedby": describedBy,
2011
2028
  ...error != null ? { "aria-invalid": true } : {}
2012
2029
  }) : children;
2013
- return /* @__PURE__ */ jsxs36("div", { ref, className: cx("oc-field", horizontal && "oc-field--horizontal", className), ...rest, children: [
2030
+ return /* @__PURE__ */ jsxs37("div", { ref, className: cx("oc-field", horizontal && "oc-field--horizontal", className), ...rest, children: [
2014
2031
  label != null && /* @__PURE__ */ jsx44("label", { className: "oc-field-label", htmlFor: controlId, children: label }),
2015
2032
  control,
2016
2033
  description != null && /* @__PURE__ */ jsx44("p", { className: "oc-field-description", id: helpId, children: description }),
@@ -2021,9 +2038,19 @@ var FieldGroup = forwardRef43(function FieldGroup2({ row, className, ...rest },
2021
2038
  return /* @__PURE__ */ jsx44("div", { ref, className: cx("oc-field-group", row && "oc-field-group--row", className), ...rest });
2022
2039
  });
2023
2040
 
2024
- // src/components/Greeting.tsx
2041
+ // src/components/Glass.tsx
2025
2042
  import { forwardRef as forwardRef44 } from "react";
2026
- import { Fragment as Fragment10, jsx as jsx45, jsxs as jsxs37 } from "react/jsx-runtime";
2043
+ import { jsx as jsx45 } from "react/jsx-runtime";
2044
+ var Glass = forwardRef44(function Glass2({ strong, flat, as: Tag = "div", className, ...rest }, ref) {
2045
+ return /* @__PURE__ */ jsx45(Tag, { ref, className: cx("oc-glass", strong && "oc-glass--strong", flat && "oc-glass--flat", className), ...rest });
2046
+ });
2047
+ var GlassPanel = forwardRef44(function GlassPanel2({ strong, className, ...rest }, ref) {
2048
+ return /* @__PURE__ */ jsx45("div", { ref, className: cx("oc-glass-panel", strong && "oc-glass-panel--strong", className), ...rest });
2049
+ });
2050
+
2051
+ // src/components/Greeting.tsx
2052
+ import { forwardRef as forwardRef45 } from "react";
2053
+ import { Fragment as Fragment10, jsx as jsx46, jsxs as jsxs38 } from "react/jsx-runtime";
2027
2054
  function greetingTimeOfDay(date = /* @__PURE__ */ new Date()) {
2028
2055
  const h = date.getHours();
2029
2056
  if (h >= 5 && h < 12) return "morning";
@@ -2031,44 +2058,44 @@ function greetingTimeOfDay(date = /* @__PURE__ */ new Date()) {
2031
2058
  return "evening";
2032
2059
  }
2033
2060
  var WORDS = { morning: "Good morning", afternoon: "Good afternoon", evening: "Good evening" };
2034
- var Greeting = forwardRef44(function Greeting2({ name, date, timeOfDay, words, locale, hideDate, eyebrow, icon, actions, size, className, ...rest }, ref) {
2061
+ var Greeting = forwardRef45(function Greeting2({ name, date, timeOfDay, words, locale, hideDate, eyebrow, icon, actions, size, className, ...rest }, ref) {
2035
2062
  const when = date ?? /* @__PURE__ */ new Date();
2036
2063
  const tod = timeOfDay ?? greetingTimeOfDay(when);
2037
2064
  const word = words?.[tod] ?? WORDS[tod];
2038
2065
  const dateText = new Intl.DateTimeFormat(locale, { weekday: "long", day: "numeric", month: "long", year: "numeric" }).format(when);
2039
2066
  const iso = `${when.getFullYear()}-${String(when.getMonth() + 1).padStart(2, "0")}-${String(when.getDate()).padStart(2, "0")}`;
2040
- return /* @__PURE__ */ jsxs37("header", { ref, className: cx("oc-greeting", `oc-greeting--${tod}`, size && `oc-greeting--${size}`, className), ...rest, children: [
2041
- icon != null && /* @__PURE__ */ jsx45("span", { className: "oc-greeting-icon", "aria-hidden": "true", children: icon }),
2042
- /* @__PURE__ */ jsxs37("div", { className: "oc-greeting-body", children: [
2043
- eyebrow != null && /* @__PURE__ */ jsx45("p", { className: "oc-greeting-eyebrow", children: eyebrow }),
2044
- /* @__PURE__ */ jsxs37("h2", { className: "oc-greeting-title", children: [
2067
+ return /* @__PURE__ */ jsxs38("header", { ref, className: cx("oc-greeting", `oc-greeting--${tod}`, size && `oc-greeting--${size}`, className), ...rest, children: [
2068
+ icon != null && /* @__PURE__ */ jsx46("span", { className: "oc-greeting-icon", "aria-hidden": "true", children: icon }),
2069
+ /* @__PURE__ */ jsxs38("div", { className: "oc-greeting-body", children: [
2070
+ eyebrow != null && /* @__PURE__ */ jsx46("p", { className: "oc-greeting-eyebrow", children: eyebrow }),
2071
+ /* @__PURE__ */ jsxs38("h2", { className: "oc-greeting-title", children: [
2045
2072
  word,
2046
- name != null && /* @__PURE__ */ jsxs37(Fragment10, { children: [
2073
+ name != null && /* @__PURE__ */ jsxs38(Fragment10, { children: [
2047
2074
  ", ",
2048
- /* @__PURE__ */ jsx45("span", { className: "oc-greeting-name", children: name })
2075
+ /* @__PURE__ */ jsx46("span", { className: "oc-greeting-name", children: name })
2049
2076
  ] })
2050
2077
  ] }),
2051
- !hideDate && /* @__PURE__ */ jsx45("time", { className: "oc-greeting-date", dateTime: iso, children: dateText })
2078
+ !hideDate && /* @__PURE__ */ jsx46("time", { className: "oc-greeting-date", dateTime: iso, children: dateText })
2052
2079
  ] }),
2053
- actions != null && /* @__PURE__ */ jsx45("div", { className: "oc-greeting-actions", children: actions })
2080
+ actions != null && /* @__PURE__ */ jsx46("div", { className: "oc-greeting-actions", children: actions })
2054
2081
  ] });
2055
2082
  });
2056
2083
 
2057
2084
  // src/components/Heading.tsx
2058
- import { forwardRef as forwardRef45 } from "react";
2059
- import { jsx as jsx46, jsxs as jsxs38 } from "react/jsx-runtime";
2060
- var Heading = forwardRef45(function Heading2({ title, description, level = 2, size = "md", titleId, className, ...rest }, ref) {
2085
+ import { forwardRef as forwardRef46 } from "react";
2086
+ import { jsx as jsx47, jsxs as jsxs39 } from "react/jsx-runtime";
2087
+ var Heading = forwardRef46(function Heading2({ title, description, level = 2, size = "md", titleId, className, ...rest }, ref) {
2061
2088
  const Tag = `h${level}`;
2062
- return /* @__PURE__ */ jsxs38("div", { ref, className: cx("oc-heading", size === "sm" && "oc-heading--sm", className), ...rest, children: [
2063
- /* @__PURE__ */ jsx46(Tag, { className: "oc-heading-title", id: titleId, children: title }),
2064
- description != null && /* @__PURE__ */ jsx46("p", { className: "oc-heading-description", children: description })
2089
+ return /* @__PURE__ */ jsxs39("div", { ref, className: cx("oc-heading", size === "sm" && "oc-heading--sm", className), ...rest, children: [
2090
+ /* @__PURE__ */ jsx47(Tag, { className: "oc-heading-title", id: titleId, children: title }),
2091
+ description != null && /* @__PURE__ */ jsx47("p", { className: "oc-heading-description", children: description })
2065
2092
  ] });
2066
2093
  });
2067
2094
 
2068
2095
  // src/components/Icon.tsx
2069
- import { jsx as jsx47 } from "react/jsx-runtime";
2096
+ import { jsx as jsx48 } from "react/jsx-runtime";
2070
2097
  function Icon({ d, children, className, ...rest }) {
2071
- return /* @__PURE__ */ jsx47(
2098
+ return /* @__PURE__ */ jsx48(
2072
2099
  "svg",
2073
2100
  {
2074
2101
  className,
@@ -2080,37 +2107,37 @@ function Icon({ d, children, className, ...rest }) {
2080
2107
  strokeLinejoin: "round",
2081
2108
  "aria-hidden": "true",
2082
2109
  ...rest,
2083
- children: d ? /* @__PURE__ */ jsx47("path", { d }) : children
2110
+ children: d ? /* @__PURE__ */ jsx48("path", { d }) : children
2084
2111
  }
2085
2112
  );
2086
2113
  }
2087
2114
 
2088
2115
  // src/components/ImageZoom.tsx
2089
- import { forwardRef as forwardRef46, useId as useId17, useState as useState7 } from "react";
2090
- import { jsx as jsx48, jsxs as jsxs39 } from "react/jsx-runtime";
2091
- var ImageZoom = forwardRef46(function ImageZoom2({ src, alt = "", levels = [1, 1.5, 2, 3], defaultZoom = 1, ratio, media: media3, className, style, ...rest }, ref) {
2116
+ import { forwardRef as forwardRef47, useId as useId17, useState as useState7 } from "react";
2117
+ import { jsx as jsx49, jsxs as jsxs40 } from "react/jsx-runtime";
2118
+ var ImageZoom = forwardRef47(function ImageZoom2({ src, alt = "", levels = [1, 1.5, 2, 3], defaultZoom = 1, ratio, media: media3, className, style, ...rest }, ref) {
2092
2119
  const name = `oc-zoom-${useId17().replace(/:/g, "")}`;
2093
2120
  const [zoom, setZoom] = useState7(defaultZoom);
2094
2121
  const preset = ratio === "square" || ratio === "photo" ? ratio : void 0;
2095
2122
  const vars = { "--oc-zoom": String(zoom), ...ratio && !preset ? { "--oc-image-zoom-ratio": ratio } : {} };
2096
- return /* @__PURE__ */ jsxs39("div", { ref, className: cx("oc-image-zoom", preset && `oc-image-zoom--${preset}`, className), style: { ...vars, ...style }, ...rest, children: [
2097
- levels.length > 0 && /* @__PURE__ */ jsxs39("div", { className: "oc-image-zoom__toolbar", role: "radiogroup", "aria-label": "Zoom level", children: [
2098
- /* @__PURE__ */ jsx48("span", { className: "oc-image-zoom__label", children: "Zoom" }),
2099
- levels.map((l) => /* @__PURE__ */ jsxs39("label", { className: "oc-image-zoom__level", children: [
2100
- /* @__PURE__ */ jsx48("input", { type: "radio", name, value: String(l), checked: zoom === l, onChange: () => setZoom(l) }),
2123
+ return /* @__PURE__ */ jsxs40("div", { ref, className: cx("oc-image-zoom", preset && `oc-image-zoom--${preset}`, className), style: { ...vars, ...style }, ...rest, children: [
2124
+ levels.length > 0 && /* @__PURE__ */ jsxs40("div", { className: "oc-image-zoom__toolbar", role: "radiogroup", "aria-label": "Zoom level", children: [
2125
+ /* @__PURE__ */ jsx49("span", { className: "oc-image-zoom__label", children: "Zoom" }),
2126
+ levels.map((l) => /* @__PURE__ */ jsxs40("label", { className: "oc-image-zoom__level", children: [
2127
+ /* @__PURE__ */ jsx49("input", { type: "radio", name, value: String(l), checked: zoom === l, onChange: () => setZoom(l) }),
2101
2128
  Math.round(l * 100),
2102
2129
  "%"
2103
2130
  ] }, l))
2104
2131
  ] }),
2105
- /* @__PURE__ */ jsx48("div", { className: "oc-image-zoom__viewport", tabIndex: 0, role: "region", "aria-label": alt ? `${alt}, scroll to pan` : "Scroll to pan", children: /* @__PURE__ */ jsx48("div", { className: "oc-image-zoom__canvas", children: media3 ?? (src ? /* @__PURE__ */ jsx48("img", { src, alt }) : /* @__PURE__ */ jsx48("div", { className: "oc-media-art", role: "img", "aria-label": alt })) }) })
2132
+ /* @__PURE__ */ jsx49("div", { className: "oc-image-zoom__viewport", tabIndex: 0, role: "region", "aria-label": alt ? `${alt}, scroll to pan` : "Scroll to pan", children: /* @__PURE__ */ jsx49("div", { className: "oc-image-zoom__canvas", children: media3 ?? (src ? /* @__PURE__ */ jsx49("img", { src, alt }) : /* @__PURE__ */ jsx49("div", { className: "oc-media-art", role: "img", "aria-label": alt })) }) })
2106
2133
  ] });
2107
2134
  });
2108
2135
 
2109
2136
  // src/components/Input.tsx
2110
- import { forwardRef as forwardRef47 } from "react";
2111
- import { jsx as jsx49 } from "react/jsx-runtime";
2112
- var Input = forwardRef47(function Input2({ error, className, type = "text", ...rest }, ref) {
2113
- return /* @__PURE__ */ jsx49(
2137
+ import { forwardRef as forwardRef48 } from "react";
2138
+ import { jsx as jsx50 } from "react/jsx-runtime";
2139
+ var Input = forwardRef48(function Input2({ error, className, type = "text", ...rest }, ref) {
2140
+ return /* @__PURE__ */ jsx50(
2114
2141
  "input",
2115
2142
  {
2116
2143
  ref,
@@ -2123,28 +2150,28 @@ var Input = forwardRef47(function Input2({ error, className, type = "text", ...r
2123
2150
  });
2124
2151
 
2125
2152
  // src/components/InputGroup.tsx
2126
- import { forwardRef as forwardRef48 } from "react";
2127
- import { jsx as jsx50, jsxs as jsxs40 } from "react/jsx-runtime";
2128
- var InputGroup = forwardRef48(function InputGroup2({ prefix, suffix, className, children, ...rest }, ref) {
2129
- return /* @__PURE__ */ jsxs40("div", { ref, className: cx("oc-input-group", className), ...rest, children: [
2130
- prefix != null && /* @__PURE__ */ jsx50("span", { className: "oc-input-addon", children: prefix }),
2153
+ import { forwardRef as forwardRef49 } from "react";
2154
+ import { jsx as jsx51, jsxs as jsxs41 } from "react/jsx-runtime";
2155
+ var InputGroup = forwardRef49(function InputGroup2({ prefix, suffix, className, children, ...rest }, ref) {
2156
+ return /* @__PURE__ */ jsxs41("div", { ref, className: cx("oc-input-group", className), ...rest, children: [
2157
+ prefix != null && /* @__PURE__ */ jsx51("span", { className: "oc-input-addon", children: prefix }),
2131
2158
  children,
2132
- suffix != null && /* @__PURE__ */ jsx50("span", { className: "oc-input-addon", children: suffix })
2159
+ suffix != null && /* @__PURE__ */ jsx51("span", { className: "oc-input-addon", children: suffix })
2133
2160
  ] });
2134
2161
  });
2135
2162
 
2136
2163
  // src/components/LanguageSelect.tsx
2137
- import { forwardRef as forwardRef49 } from "react";
2138
- import { jsx as jsx51, jsxs as jsxs41 } from "react/jsx-runtime";
2139
- var Globe = () => /* @__PURE__ */ jsxs41("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [
2140
- /* @__PURE__ */ jsx51("circle", { cx: "12", cy: "12", r: "9" }),
2141
- /* @__PURE__ */ jsx51("path", { d: "M3 12h18M12 3a14 14 0 0 1 0 18M12 3a14 14 0 0 0 0 18" })
2164
+ import { forwardRef as forwardRef50 } from "react";
2165
+ import { jsx as jsx52, jsxs as jsxs42 } from "react/jsx-runtime";
2166
+ var Globe = () => /* @__PURE__ */ jsxs42("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [
2167
+ /* @__PURE__ */ jsx52("circle", { cx: "12", cy: "12", r: "9" }),
2168
+ /* @__PURE__ */ jsx52("path", { d: "M3 12h18M12 3a14 14 0 0 1 0 18M12 3a14 14 0 0 0 0 18" })
2142
2169
  ] });
2143
- var LanguageSelect = forwardRef49(function LanguageSelect2({ options, value, defaultValue, onChange, currency, ghost, icon, labelClassName, className, ...rest }, ref) {
2170
+ var LanguageSelect = forwardRef50(function LanguageSelect2({ options, value, defaultValue, onChange, currency, ghost, icon, labelClassName, className, ...rest }, ref) {
2144
2171
  const [current, setCurrent] = useControllable(value, defaultValue ?? options[0]?.value ?? "", onChange);
2145
- return /* @__PURE__ */ jsxs41("label", { className: cx("oc-language-select", ghost && "oc-language-select--ghost", currency && "oc-language-select--currency", labelClassName), children: [
2146
- /* @__PURE__ */ jsx51("span", { className: "oc-language-select-icon", "aria-hidden": "true", children: icon ?? (currency ? "\u20AC" : /* @__PURE__ */ jsx51(Globe, {})) }),
2147
- /* @__PURE__ */ jsx51(
2172
+ return /* @__PURE__ */ jsxs42("label", { className: cx("oc-language-select", ghost && "oc-language-select--ghost", currency && "oc-language-select--currency", labelClassName), children: [
2173
+ /* @__PURE__ */ jsx52("span", { className: "oc-language-select-icon", "aria-hidden": "true", children: icon ?? (currency ? "\u20AC" : /* @__PURE__ */ jsx52(Globe, {})) }),
2174
+ /* @__PURE__ */ jsx52(
2148
2175
  "select",
2149
2176
  {
2150
2177
  ref,
@@ -2153,44 +2180,44 @@ var LanguageSelect = forwardRef49(function LanguageSelect2({ options, value, def
2153
2180
  value: current,
2154
2181
  onChange: (e) => setCurrent(e.target.value),
2155
2182
  ...rest,
2156
- children: options.map((o) => /* @__PURE__ */ jsx51("option", { value: o.value, children: o.label }, o.value))
2183
+ children: options.map((o) => /* @__PURE__ */ jsx52("option", { value: o.value, children: o.label }, o.value))
2157
2184
  }
2158
2185
  )
2159
2186
  ] });
2160
2187
  });
2161
2188
 
2162
2189
  // src/components/LauncherCard.tsx
2163
- import { forwardRef as forwardRef50 } from "react";
2164
- import { Fragment as Fragment11, jsx as jsx52, jsxs as jsxs42 } from "react/jsx-runtime";
2165
- var LauncherCard = forwardRef50(function LauncherCard2({ icon, title, badge, description, footer, active, disabled, className, href, onClick, ...rest }, ref) {
2166
- const content = /* @__PURE__ */ jsxs42(Fragment11, { children: [
2167
- icon != null && /* @__PURE__ */ jsx52("span", { className: "oc-launcher-icon", "aria-hidden": "true", children: icon }),
2168
- /* @__PURE__ */ jsxs42("h3", { className: "oc-launcher-title", children: [
2190
+ import { forwardRef as forwardRef51 } from "react";
2191
+ import { Fragment as Fragment11, jsx as jsx53, jsxs as jsxs43 } from "react/jsx-runtime";
2192
+ var LauncherCard = forwardRef51(function LauncherCard2({ icon, title, badge, description, footer, active, disabled, className, href, onClick, ...rest }, ref) {
2193
+ const content = /* @__PURE__ */ jsxs43(Fragment11, { children: [
2194
+ icon != null && /* @__PURE__ */ jsx53("span", { className: "oc-launcher-icon", "aria-hidden": "true", children: icon }),
2195
+ /* @__PURE__ */ jsxs43("h3", { className: "oc-launcher-title", children: [
2169
2196
  title,
2170
- badge != null && /* @__PURE__ */ jsxs42(Fragment11, { children: [
2197
+ badge != null && /* @__PURE__ */ jsxs43(Fragment11, { children: [
2171
2198
  " ",
2172
2199
  badge
2173
2200
  ] })
2174
2201
  ] }),
2175
- description != null && /* @__PURE__ */ jsx52("p", { className: "oc-launcher-description", children: description }),
2176
- footer != null && /* @__PURE__ */ jsx52("span", { className: "oc-launcher-footer", children: footer })
2202
+ description != null && /* @__PURE__ */ jsx53("p", { className: "oc-launcher-description", children: description }),
2203
+ footer != null && /* @__PURE__ */ jsx53("span", { className: "oc-launcher-footer", children: footer })
2177
2204
  ] });
2178
2205
  const cls = cx("oc-launcher", className);
2179
2206
  const common = { className: cls, "aria-current": active ? "true" : void 0 };
2180
2207
  if (disabled) {
2181
- return /* @__PURE__ */ jsx52("span", { ref, ...common, "aria-disabled": "true", children: content });
2208
+ return /* @__PURE__ */ jsx53("span", { ref, ...common, "aria-disabled": "true", children: content });
2182
2209
  }
2183
2210
  if (href === void 0 && onClick) {
2184
- return /* @__PURE__ */ jsx52("button", { ref, type: "button", ...common, onClick, children: content });
2211
+ return /* @__PURE__ */ jsx53("button", { ref, type: "button", ...common, onClick, children: content });
2185
2212
  }
2186
- return /* @__PURE__ */ jsx52("a", { ref, href, ...common, onClick, ...rest, children: content });
2213
+ return /* @__PURE__ */ jsx53("a", { ref, href, ...common, onClick, ...rest, children: content });
2187
2214
  });
2188
2215
 
2189
2216
  // src/components/Lightbox.tsx
2190
- import { forwardRef as forwardRef51, useEffect as useEffect6, useId as useId18, useRef as useRef8, useState as useState8 } from "react";
2191
- import { Fragment as Fragment12, jsx as jsx53, jsxs as jsxs43 } from "react/jsx-runtime";
2192
- var media2 = (img, src) => src ? /* @__PURE__ */ jsx53("img", { src, alt: img.alt }) : /* @__PURE__ */ jsx53("span", { className: "oc-media-art", role: "img", "aria-label": img.alt });
2193
- var Lightbox = forwardRef51(function Lightbox2({ images, title, thumbnails = true, open, defaultOpen, onOpenChange, className, "aria-label": label = "Photo viewer", ...rest }, forwardedRef) {
2217
+ import { forwardRef as forwardRef52, useEffect as useEffect6, useId as useId18, useRef as useRef8, useState as useState8 } from "react";
2218
+ import { Fragment as Fragment12, jsx as jsx54, jsxs as jsxs44 } from "react/jsx-runtime";
2219
+ var media2 = (img, src) => src ? /* @__PURE__ */ jsx54("img", { src, alt: img.alt }) : /* @__PURE__ */ jsx54("span", { className: "oc-media-art", role: "img", "aria-label": img.alt });
2220
+ var Lightbox = forwardRef52(function Lightbox2({ images, title, thumbnails = true, open, defaultOpen, onOpenChange, className, "aria-label": label = "Photo viewer", ...rest }, forwardedRef) {
2194
2221
  const inner = useRef8(null);
2195
2222
  const ref = useMergedRef(inner, forwardedRef);
2196
2223
  const base = `oc-lightbox-${useId18().replace(/:/g, "")}`;
@@ -2212,22 +2239,22 @@ var Lightbox = forwardRef51(function Lightbox2({ images, title, thumbnails = tru
2212
2239
  useEffect6(() => {
2213
2240
  if (dlg.open) document.getElementById(slideId(start))?.scrollIntoView?.({ behavior: "instant", block: "nearest", inline: "center" });
2214
2241
  }, [dlg.open, start]);
2215
- return /* @__PURE__ */ jsxs43(Fragment12, { children: [
2216
- thumbnails && /* @__PURE__ */ jsx53("div", { className: "oc-lightbox-thumbs", children: images.map((img, i) => /* @__PURE__ */ jsx53("button", { type: "button", className: "oc-lightbox-thumb", "aria-label": `Open photo ${i + 1}: ${img.alt}`, onClick: () => {
2242
+ return /* @__PURE__ */ jsxs44(Fragment12, { children: [
2243
+ thumbnails && /* @__PURE__ */ jsx54("div", { className: "oc-lightbox-thumbs", children: images.map((img, i) => /* @__PURE__ */ jsx54("button", { type: "button", className: "oc-lightbox-thumb", "aria-label": `Open photo ${i + 1}: ${img.alt}`, onClick: () => {
2217
2244
  setStart(i);
2218
2245
  dlg.setOpen(true);
2219
2246
  }, children: media2(img, img.thumb ?? img.src) }, i)) }),
2220
- /* @__PURE__ */ jsxs43("dialog", { ref, className: cx("oc-lightbox", single && "oc-lightbox--single", className), "aria-label": label, ...attrs({ closedby: "any" }), ...rest, onClose, children: [
2221
- /* @__PURE__ */ jsxs43("div", { className: "oc-lightbox__bar", children: [
2222
- title != null ? /* @__PURE__ */ jsx53("h2", { className: "oc-lightbox__title", children: title }) : /* @__PURE__ */ jsx53("span", {}),
2223
- /* @__PURE__ */ jsx53("button", { type: "button", className: "oc-lightbox__close", "aria-label": "Close", onClick: dlg.close, children: "\u2715" })
2247
+ /* @__PURE__ */ jsxs44("dialog", { ref, className: cx("oc-lightbox", single && "oc-lightbox--single", className), "aria-label": label, ...attrs({ closedby: "any" }), ...rest, onClose, children: [
2248
+ /* @__PURE__ */ jsxs44("div", { className: "oc-lightbox__bar", children: [
2249
+ title != null ? /* @__PURE__ */ jsx54("h2", { className: "oc-lightbox__title", children: title }) : /* @__PURE__ */ jsx54("span", {}),
2250
+ /* @__PURE__ */ jsx54("button", { type: "button", className: "oc-lightbox__close", "aria-label": "Close", onClick: dlg.close, children: "\u2715" })
2224
2251
  ] }),
2225
- /* @__PURE__ */ jsx53("div", { className: "oc-lightbox__track", tabIndex: 0, "aria-label": "Photos, use the arrow keys", children: images.map((img, i) => /* @__PURE__ */ jsxs43("figure", { className: "oc-lightbox__slide", id: slideId(i), children: [
2226
- /* @__PURE__ */ jsx53("div", { className: "oc-lightbox__media", children: media2(img, img.src) }),
2227
- !single && /* @__PURE__ */ jsx53("a", { className: "oc-lightbox__nav oc-lightbox__nav--prev", href: `#${slideId(i - 1)}`, onClick: go(i - 1), "aria-label": "Previous photo", children: "\u2190" }),
2228
- !single && /* @__PURE__ */ jsx53("a", { className: "oc-lightbox__nav oc-lightbox__nav--next", href: `#${slideId(i + 1)}`, onClick: go(i + 1), "aria-label": "Next photo", children: "\u2192" }),
2229
- /* @__PURE__ */ jsxs43("figcaption", { className: "oc-lightbox__caption", children: [
2230
- !single && /* @__PURE__ */ jsxs43("span", { className: "oc-lightbox__counter", children: [
2252
+ /* @__PURE__ */ jsx54("div", { className: "oc-lightbox__track", tabIndex: 0, "aria-label": "Photos, use the arrow keys", children: images.map((img, i) => /* @__PURE__ */ jsxs44("figure", { className: "oc-lightbox__slide", id: slideId(i), children: [
2253
+ /* @__PURE__ */ jsx54("div", { className: "oc-lightbox__media", children: media2(img, img.src) }),
2254
+ !single && /* @__PURE__ */ jsx54("a", { className: "oc-lightbox__nav oc-lightbox__nav--prev", href: `#${slideId(i - 1)}`, onClick: go(i - 1), "aria-label": "Previous photo", children: "\u2190" }),
2255
+ !single && /* @__PURE__ */ jsx54("a", { className: "oc-lightbox__nav oc-lightbox__nav--next", href: `#${slideId(i + 1)}`, onClick: go(i + 1), "aria-label": "Next photo", children: "\u2192" }),
2256
+ /* @__PURE__ */ jsxs44("figcaption", { className: "oc-lightbox__caption", children: [
2257
+ !single && /* @__PURE__ */ jsxs44("span", { className: "oc-lightbox__counter", children: [
2231
2258
  i + 1,
2232
2259
  " / ",
2233
2260
  images.length
@@ -2241,9 +2268,9 @@ var Lightbox = forwardRef51(function Lightbox2({ images, title, thumbnails = tru
2241
2268
  });
2242
2269
 
2243
2270
  // src/components/LinkArrow.tsx
2244
- import { forwardRef as forwardRef52 } from "react";
2245
- import { jsx as jsx54 } from "react/jsx-runtime";
2246
- var LinkArrow = forwardRef52(function LinkArrow2({ direction = "forward", tone = "default", size = "default", className, ...rest }, ref) {
2271
+ import { forwardRef as forwardRef53 } from "react";
2272
+ import { jsx as jsx55 } from "react/jsx-runtime";
2273
+ var LinkArrow = forwardRef53(function LinkArrow2({ direction = "forward", tone = "default", size = "default", className, ...rest }, ref) {
2247
2274
  const classes = cx(
2248
2275
  "oc-link-arrow",
2249
2276
  direction !== "forward" && `oc-link-arrow--${direction}`,
@@ -2251,22 +2278,31 @@ var LinkArrow = forwardRef52(function LinkArrow2({ direction = "forward", tone =
2251
2278
  size !== "default" && `oc-link-arrow--${size}`,
2252
2279
  className
2253
2280
  );
2254
- return /* @__PURE__ */ jsx54("a", { ref, className: classes, ...rest });
2281
+ return /* @__PURE__ */ jsx55("a", { ref, className: classes, ...rest });
2282
+ });
2283
+
2284
+ // src/components/LinkRow.tsx
2285
+ import { forwardRef as forwardRef54 } from "react";
2286
+ import { jsx as jsx56 } from "react/jsx-runtime";
2287
+ var external = (href) => /^https?:\/\//.test(href);
2288
+ var LinkRow = forwardRef54(function LinkRow2({ links, tone = "default", size = "default", className, children, ...rest }, ref) {
2289
+ const classes = cx("oc-link-row", tone !== "default" && `oc-link-row--${tone}`, size !== "default" && `oc-link-row--${size}`, className);
2290
+ return /* @__PURE__ */ jsx56("ul", { ref, className: classes, ...rest, children: links ? links.map((l, i) => /* @__PURE__ */ jsx56("li", { children: /* @__PURE__ */ jsx56("a", { href: l.href, rel: external(l.href) ? "noopener" : void 0, children: l.label }) }, i)) : children });
2255
2291
  });
2256
2292
 
2257
2293
  // src/components/ListToolbar.tsx
2258
- import { forwardRef as forwardRef53, useId as useId19 } from "react";
2259
- import { jsx as jsx55, jsxs as jsxs44 } from "react/jsx-runtime";
2260
- var ListToolbar = forwardRef53(function ListToolbar2({ search, count, views, view, defaultView, onViewChange, viewsLabel = "View", actions, sticky, bordered, className, ...rest }, ref) {
2294
+ import { forwardRef as forwardRef55, useId as useId19 } from "react";
2295
+ import { jsx as jsx57, jsxs as jsxs45 } from "react/jsx-runtime";
2296
+ var ListToolbar = forwardRef55(function ListToolbar2({ search, count, views, view, defaultView, onViewChange, viewsLabel = "View", actions, sticky, bordered, className, ...rest }, ref) {
2261
2297
  const name = `oc-list-view-${useId19().replace(/:/g, "")}`;
2262
2298
  const [current, setCurrent] = useControllable(view, defaultView ?? views?.[0]?.value ?? "", onViewChange);
2263
2299
  const cls = cx("oc-list-toolbar", sticky && "oc-list-toolbar--sticky", bordered && "oc-list-toolbar--bordered", className);
2264
- return /* @__PURE__ */ jsxs44("div", { ref, className: cls, role: "toolbar", ...rest, children: [
2265
- search != null && /* @__PURE__ */ jsx55("div", { className: "oc-list-toolbar-search", children: search }),
2266
- count != null && /* @__PURE__ */ jsx55("span", { className: "oc-list-toolbar-count", children: count }),
2267
- /* @__PURE__ */ jsx55("span", { className: "oc-list-toolbar-spacer" }),
2268
- views && views.length > 0 && /* @__PURE__ */ jsx55("div", { className: "oc-list-toolbar-views", role: "radiogroup", "aria-label": viewsLabel, children: views.map((v) => /* @__PURE__ */ jsxs44("label", { className: "oc-list-toolbar-view", title: v.label, children: [
2269
- /* @__PURE__ */ jsx55(
2300
+ return /* @__PURE__ */ jsxs45("div", { ref, className: cls, role: "toolbar", ...rest, children: [
2301
+ search != null && /* @__PURE__ */ jsx57("div", { className: "oc-list-toolbar-search", children: search }),
2302
+ count != null && /* @__PURE__ */ jsx57("span", { className: "oc-list-toolbar-count", children: count }),
2303
+ /* @__PURE__ */ jsx57("span", { className: "oc-list-toolbar-spacer" }),
2304
+ views && views.length > 0 && /* @__PURE__ */ jsx57("div", { className: "oc-list-toolbar-views", role: "radiogroup", "aria-label": viewsLabel, children: views.map((v) => /* @__PURE__ */ jsxs45("label", { className: "oc-list-toolbar-view", title: v.label, children: [
2305
+ /* @__PURE__ */ jsx57(
2270
2306
  "input",
2271
2307
  {
2272
2308
  type: "radio",
@@ -2279,14 +2315,31 @@ var ListToolbar = forwardRef53(function ListToolbar2({ search, count, views, vie
2279
2315
  ),
2280
2316
  v.icon
2281
2317
  ] }, v.value)) }),
2282
- actions != null && /* @__PURE__ */ jsx55("div", { className: "oc-list-toolbar-actions", children: actions })
2318
+ actions != null && /* @__PURE__ */ jsx57("div", { className: "oc-list-toolbar-actions", children: actions })
2283
2319
  ] });
2284
2320
  });
2285
2321
 
2322
+ // src/components/LiveFrame.tsx
2323
+ import { forwardRef as forwardRef56 } from "react";
2324
+ import { jsx as jsx58 } from "react/jsx-runtime";
2325
+ var LiveFrame = forwardRef56(function LiveFrame2({ src, title = "", width = 1280, height = 720, static: isStatic = false, inBrowserFrame = false, className, style, children, ...rest }, ref) {
2326
+ const size = { "--oc-live-w": width, "--oc-live-h": height };
2327
+ return /* @__PURE__ */ jsx58(
2328
+ "div",
2329
+ {
2330
+ ref,
2331
+ className: cx(inBrowserFrame && "oc-browser-frame__view", "oc-live-frame", isStatic && "oc-live-frame--static", className),
2332
+ style: { ...size, ...style },
2333
+ ...rest,
2334
+ children: src ? /* @__PURE__ */ jsx58("iframe", { src, title, loading: "lazy", scrolling: "no", tabIndex: isStatic ? -1 : void 0 }) : children
2335
+ }
2336
+ );
2337
+ });
2338
+
2286
2339
  // src/components/Marquee.tsx
2287
- import { forwardRef as forwardRef54 } from "react";
2288
- import { jsx as jsx56, jsxs as jsxs45 } from "react/jsx-runtime";
2289
- var Marquee = forwardRef54(function Marquee2({ items, reverse = false, speed = "default", plain = false, noFade = false, className, ...rest }, ref) {
2340
+ import { forwardRef as forwardRef57 } from "react";
2341
+ import { jsx as jsx59, jsxs as jsxs46 } from "react/jsx-runtime";
2342
+ var Marquee = forwardRef57(function Marquee2({ items, reverse = false, speed = "default", plain = false, noFade = false, className, ...rest }, ref) {
2290
2343
  const classes = cx(
2291
2344
  "oc-marquee",
2292
2345
  reverse && "oc-marquee--reverse",
@@ -2295,21 +2348,21 @@ var Marquee = forwardRef54(function Marquee2({ items, reverse = false, speed = "
2295
2348
  noFade && "oc-marquee--no-fade",
2296
2349
  className
2297
2350
  );
2298
- return /* @__PURE__ */ jsx56("div", { ref, className: classes, ...rest, children: /* @__PURE__ */ jsxs45("div", { className: "oc-marquee__track", children: [
2299
- items.map((item, i) => /* @__PURE__ */ jsx56("span", { className: "oc-marquee__item", children: item }, i)),
2300
- items.map((item, i) => /* @__PURE__ */ jsx56("span", { className: "oc-marquee__item", "aria-hidden": "true", children: item }, `copy-${i}`))
2351
+ return /* @__PURE__ */ jsx59("div", { ref, className: classes, ...rest, children: /* @__PURE__ */ jsxs46("div", { className: "oc-marquee__track", children: [
2352
+ items.map((item, i) => /* @__PURE__ */ jsx59("span", { className: "oc-marquee__item", children: item }, i)),
2353
+ items.map((item, i) => /* @__PURE__ */ jsx59("span", { className: "oc-marquee__item", "aria-hidden": "true", children: item }, `copy-${i}`))
2301
2354
  ] }) });
2302
2355
  });
2303
2356
 
2304
2357
  // src/components/MediaCard.tsx
2305
- import { forwardRef as forwardRef56, useId as useId20 } from "react";
2358
+ import { forwardRef as forwardRef59, useId as useId20 } from "react";
2306
2359
 
2307
2360
  // src/components/MediaThumb.tsx
2308
- import { forwardRef as forwardRef55 } from "react";
2309
- import { jsx as jsx57, jsxs as jsxs46 } from "react/jsx-runtime";
2310
- var MediaThumb = forwardRef55(function MediaThumb2({ src, alt = "", art: art2, href, duration, badge, live, progress, watched, ratio = "video", className, children, ...rest }, ref) {
2361
+ import { forwardRef as forwardRef58 } from "react";
2362
+ import { jsx as jsx60, jsxs as jsxs47 } from "react/jsx-runtime";
2363
+ var MediaThumb = forwardRef58(function MediaThumb2({ src, alt = "", art: art2, href, duration, badge, live, progress, watched, ratio = "video", className, children, ...rest }, ref) {
2311
2364
  const Tag = href ? "a" : "div";
2312
- return /* @__PURE__ */ jsxs46(
2365
+ return /* @__PURE__ */ jsxs47(
2313
2366
  Tag,
2314
2367
  {
2315
2368
  ref,
@@ -2317,10 +2370,10 @@ var MediaThumb = forwardRef55(function MediaThumb2({ src, alt = "", art: art2, h
2317
2370
  className: cx("oc-media-thumb", ratio !== "video" && `oc-media-thumb--${ratio}`, watched && "is-watched", className),
2318
2371
  ...rest,
2319
2372
  children: [
2320
- src ? /* @__PURE__ */ jsx57("img", { src, alt }) : /* @__PURE__ */ jsx57("div", { className: cx("oc-media-art", art2 != null && art2 > 1 && `oc-media-art--${art2}`) }),
2321
- badge != null && /* @__PURE__ */ jsx57("span", { className: cx("oc-media-thumb__badge", live && "oc-media-thumb__badge--live"), children: badge }),
2322
- duration != null && /* @__PURE__ */ jsx57("span", { className: "oc-media-thumb__duration", children: duration }),
2323
- progress != null && /* @__PURE__ */ jsxs46("progress", { className: "oc-media-thumb__progress", value: progress, max: 100, "aria-label": `Watched ${progress}%`, children: [
2373
+ src ? /* @__PURE__ */ jsx60("img", { src, alt }) : /* @__PURE__ */ jsx60("div", { className: cx("oc-media-art", art2 != null && art2 > 1 && `oc-media-art--${art2}`) }),
2374
+ badge != null && /* @__PURE__ */ jsx60("span", { className: cx("oc-media-thumb__badge", live && "oc-media-thumb__badge--live"), children: badge }),
2375
+ duration != null && /* @__PURE__ */ jsx60("span", { className: "oc-media-thumb__duration", children: duration }),
2376
+ progress != null && /* @__PURE__ */ jsxs47("progress", { className: "oc-media-thumb__progress", value: progress, max: 100, "aria-label": `Watched ${progress}%`, children: [
2324
2377
  progress,
2325
2378
  "%"
2326
2379
  ] }),
@@ -2331,93 +2384,93 @@ var MediaThumb = forwardRef55(function MediaThumb2({ src, alt = "", art: art2, h
2331
2384
  });
2332
2385
 
2333
2386
  // src/components/MediaCard.tsx
2334
- import { jsx as jsx58, jsxs as jsxs47 } from "react/jsx-runtime";
2335
- var MediaCard = forwardRef56(function MediaCard2({ title, href, meta, avatar, thumb, menu, compact, className, ...rest }, ref) {
2387
+ import { jsx as jsx61, jsxs as jsxs48 } from "react/jsx-runtime";
2388
+ var MediaCard = forwardRef59(function MediaCard2({ title, href, meta, avatar, thumb, menu, compact, className, ...rest }, ref) {
2336
2389
  const menuId = `oc-media-card-menu-${useId20().replace(/:/g, "")}`;
2337
- return /* @__PURE__ */ jsxs47("article", { ref, className: cx("oc-media-card", compact && "oc-media-card--compact", className), ...rest, children: [
2338
- /* @__PURE__ */ jsx58(MediaThumb, { ...thumb }),
2339
- /* @__PURE__ */ jsxs47("div", { className: "oc-media-card__body", children: [
2340
- avatar != null && /* @__PURE__ */ jsx58("span", { className: "oc-media-card__avatar", "aria-hidden": "true", children: avatar }),
2341
- /* @__PURE__ */ jsxs47("div", { className: "oc-media-card__text", children: [
2342
- /* @__PURE__ */ jsx58("h3", { className: "oc-media-card__title", children: /* @__PURE__ */ jsx58("a", { href, children: title }) }),
2343
- meta != null && /* @__PURE__ */ jsx58("p", { className: "oc-media-card__meta", children: meta })
2390
+ return /* @__PURE__ */ jsxs48("article", { ref, className: cx("oc-media-card", compact && "oc-media-card--compact", className), ...rest, children: [
2391
+ /* @__PURE__ */ jsx61(MediaThumb, { ...thumb }),
2392
+ /* @__PURE__ */ jsxs48("div", { className: "oc-media-card__body", children: [
2393
+ avatar != null && /* @__PURE__ */ jsx61("span", { className: "oc-media-card__avatar", "aria-hidden": "true", children: avatar }),
2394
+ /* @__PURE__ */ jsxs48("div", { className: "oc-media-card__text", children: [
2395
+ /* @__PURE__ */ jsx61("h3", { className: "oc-media-card__title", children: /* @__PURE__ */ jsx61("a", { href, children: title }) }),
2396
+ meta != null && /* @__PURE__ */ jsx61("p", { className: "oc-media-card__meta", children: meta })
2344
2397
  ] }),
2345
- menu != null && /* @__PURE__ */ jsx58("button", { type: "button", className: "oc-media-card__menu", "aria-label": "More actions", popoverTarget: menuId, children: "\u22EE" })
2398
+ menu != null && /* @__PURE__ */ jsx61("button", { type: "button", className: "oc-media-card__menu", "aria-label": "More actions", popoverTarget: menuId, children: "\u22EE" })
2346
2399
  ] }),
2347
- menu != null && /* @__PURE__ */ jsx58("div", { className: "oc-dropdown-menu", id: menuId, ...attrs({ popover: "" }), children: menu })
2400
+ menu != null && /* @__PURE__ */ jsx61("div", { className: "oc-dropdown-menu", id: menuId, ...attrs({ popover: "" }), children: menu })
2348
2401
  ] });
2349
2402
  });
2350
2403
 
2351
2404
  // src/components/MediaRow.tsx
2352
- import { forwardRef as forwardRef57, useId as useId21 } from "react";
2353
- import { Fragment as Fragment13, jsx as jsx59, jsxs as jsxs48 } from "react/jsx-runtime";
2354
- var MediaRowList = forwardRef57(function MediaRowList2({ numbered, className, ...rest }, ref) {
2405
+ import { forwardRef as forwardRef60, useId as useId21 } from "react";
2406
+ import { Fragment as Fragment13, jsx as jsx62, jsxs as jsxs49 } from "react/jsx-runtime";
2407
+ var MediaRowList = forwardRef60(function MediaRowList2({ numbered, className, ...rest }, ref) {
2355
2408
  const Tag = numbered ? "ol" : "ul";
2356
- return /* @__PURE__ */ jsx59(Tag, { ref, className: cx("oc-media-row-list", numbered && "oc-media-row-list--numbered", className), ...rest });
2409
+ return /* @__PURE__ */ jsx62(Tag, { ref, className: cx("oc-media-row-list", numbered && "oc-media-row-list--numbered", className), ...rest });
2357
2410
  });
2358
- var MediaRow = forwardRef57(function MediaRow2({ title, href, meta, thumb, current, menu, className, ...rest }, ref) {
2411
+ var MediaRow = forwardRef60(function MediaRow2({ title, href, meta, thumb, current, menu, className, ...rest }, ref) {
2359
2412
  const menuId = `oc-media-row-menu-${useId21().replace(/:/g, "")}`;
2360
- return /* @__PURE__ */ jsxs48("li", { ref, className: cx("oc-media-row", className), "aria-current": current ? "true" : void 0, ...rest, children: [
2361
- /* @__PURE__ */ jsx59(MediaThumb, { ...thumb }),
2362
- /* @__PURE__ */ jsxs48("div", { className: "oc-media-row__text", children: [
2363
- /* @__PURE__ */ jsx59("h3", { className: "oc-media-row__title", children: /* @__PURE__ */ jsx59("a", { href, children: title }) }),
2364
- meta != null && /* @__PURE__ */ jsx59("p", { className: "oc-media-row__meta", children: meta })
2413
+ return /* @__PURE__ */ jsxs49("li", { ref, className: cx("oc-media-row", className), "aria-current": current ? "true" : void 0, ...rest, children: [
2414
+ /* @__PURE__ */ jsx62(MediaThumb, { ...thumb }),
2415
+ /* @__PURE__ */ jsxs49("div", { className: "oc-media-row__text", children: [
2416
+ /* @__PURE__ */ jsx62("h3", { className: "oc-media-row__title", children: /* @__PURE__ */ jsx62("a", { href, children: title }) }),
2417
+ meta != null && /* @__PURE__ */ jsx62("p", { className: "oc-media-row__meta", children: meta })
2365
2418
  ] }),
2366
- menu != null && /* @__PURE__ */ jsxs48(Fragment13, { children: [
2367
- /* @__PURE__ */ jsx59("button", { type: "button", className: "oc-media-row__menu", "aria-label": "More actions", popoverTarget: menuId, children: "\u22EE" }),
2368
- /* @__PURE__ */ jsx59("div", { className: "oc-dropdown-menu", id: menuId, ...attrs({ popover: "" }), children: menu })
2419
+ menu != null && /* @__PURE__ */ jsxs49(Fragment13, { children: [
2420
+ /* @__PURE__ */ jsx62("button", { type: "button", className: "oc-media-row__menu", "aria-label": "More actions", popoverTarget: menuId, children: "\u22EE" }),
2421
+ /* @__PURE__ */ jsx62("div", { className: "oc-dropdown-menu", id: menuId, ...attrs({ popover: "" }), children: menu })
2369
2422
  ] })
2370
2423
  ] });
2371
2424
  });
2372
2425
 
2373
2426
  // src/components/Message.tsx
2374
- import { forwardRef as forwardRef58 } from "react";
2375
- import { Fragment as Fragment14, jsx as jsx60, jsxs as jsxs49 } from "react/jsx-runtime";
2376
- var svg = (d, width = "2") => /* @__PURE__ */ jsx60("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: width, strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: /* @__PURE__ */ jsx60("path", { d }) });
2427
+ import { forwardRef as forwardRef61 } from "react";
2428
+ import { Fragment as Fragment14, jsx as jsx63, jsxs as jsxs50 } from "react/jsx-runtime";
2429
+ var svg = (d, width = "2") => /* @__PURE__ */ jsx63("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: width, strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: /* @__PURE__ */ jsx63("path", { d }) });
2377
2430
  var ICONS = { reply: "M9 14 4 9l5-5M4 9h10a6 6 0 0 1 6 6v4", delete: "M3 6h18M8 6V4h8v2M19 6l-1 14H6L5 6M10 11v6M14 11v6" };
2378
2431
  var STATUS = { sent: "Sent", read: "Read", failed: "Failed" };
2379
2432
  function MessageAttachments({ items }) {
2380
2433
  const thumbs = items.every((a) => a.kind === "thumb");
2381
- return /* @__PURE__ */ jsx60("div", { className: "oc-message__attachments", children: thumbs ? /* @__PURE__ */ jsx60("div", { className: "oc-attachment-list", children: items.map((a, i) => /* @__PURE__ */ jsx60(AttachmentThumb, { as: "span", ...a }, i)) }) : items.map((a, i) => {
2434
+ return /* @__PURE__ */ jsx63("div", { className: "oc-message__attachments", children: thumbs ? /* @__PURE__ */ jsx63("div", { className: "oc-attachment-list", children: items.map((a, i) => /* @__PURE__ */ jsx63(AttachmentThumb, { as: "span", ...a }, i)) }) : items.map((a, i) => {
2382
2435
  if (a.kind === "image") {
2383
2436
  const { kind: _k2, ...img } = a;
2384
- return /* @__PURE__ */ jsx60(AttachmentImage, { ...img }, i);
2437
+ return /* @__PURE__ */ jsx63(AttachmentImage, { ...img }, i);
2385
2438
  }
2386
2439
  if (a.kind === "thumb") {
2387
2440
  const { kind: _k2, ...t } = a;
2388
- return /* @__PURE__ */ jsx60(AttachmentThumb, { as: "span", ...t }, i);
2441
+ return /* @__PURE__ */ jsx63(AttachmentThumb, { as: "span", ...t }, i);
2389
2442
  }
2390
2443
  const { kind: _k, ...file } = a;
2391
- return /* @__PURE__ */ jsx60(Attachment, { ...file }, i);
2444
+ return /* @__PURE__ */ jsx63(Attachment, { ...file }, i);
2392
2445
  }) });
2393
2446
  }
2394
- var Message = forwardRef58(function Message2({ direction = "in", sender, avatar, time, datetime, status, statusLabel, statusIcon, continued, quote, text, attachments, actions, label, onAction, className, children, ...rest }, ref) {
2395
- return /* @__PURE__ */ jsxs49("article", { ref, className: cx("oc-message", direction === "out" && "oc-message--out", continued && "oc-message--continued", className), "aria-label": label, ...rest, children: [
2396
- /* @__PURE__ */ jsx60("span", { className: "oc-avatar oc-message__avatar", children: avatar }),
2397
- /* @__PURE__ */ jsxs49("div", { className: "oc-message__bubble", children: [
2398
- sender != null && !continued && /* @__PURE__ */ jsx60("p", { className: "oc-message__sender", children: sender }),
2399
- quote && /* @__PURE__ */ jsxs49("a", { className: "oc-message__quote", href: quote.href, children: [
2400
- /* @__PURE__ */ jsx60("strong", { children: quote.sender }),
2401
- /* @__PURE__ */ jsx60("span", { children: quote.text })
2447
+ var Message = forwardRef61(function Message2({ direction = "in", sender, avatar, time, datetime, status, statusLabel, statusIcon, continued, quote, text, attachments, actions, label, onAction, className, children, ...rest }, ref) {
2448
+ return /* @__PURE__ */ jsxs50("article", { ref, className: cx("oc-message", direction === "out" && "oc-message--out", continued && "oc-message--continued", className), "aria-label": label, ...rest, children: [
2449
+ /* @__PURE__ */ jsx63("span", { className: "oc-avatar oc-message__avatar", children: avatar }),
2450
+ /* @__PURE__ */ jsxs50("div", { className: "oc-message__bubble", children: [
2451
+ sender != null && !continued && /* @__PURE__ */ jsx63("p", { className: "oc-message__sender", children: sender }),
2452
+ quote && /* @__PURE__ */ jsxs50("a", { className: "oc-message__quote", href: quote.href, children: [
2453
+ /* @__PURE__ */ jsx63("strong", { children: quote.sender }),
2454
+ /* @__PURE__ */ jsx63("span", { children: quote.text })
2402
2455
  ] }),
2403
- (text != null || children != null) && /* @__PURE__ */ jsxs49("div", { className: "oc-message__text", children: [
2404
- typeof text === "string" ? /* @__PURE__ */ jsx60("p", { children: text }) : text,
2456
+ (text != null || children != null) && /* @__PURE__ */ jsxs50("div", { className: "oc-message__text", children: [
2457
+ typeof text === "string" ? /* @__PURE__ */ jsx63("p", { children: text }) : text,
2405
2458
  children
2406
2459
  ] }),
2407
- attachments?.length ? /* @__PURE__ */ jsx60(MessageAttachments, { items: attachments }) : null,
2408
- (time != null || status) && /* @__PURE__ */ jsxs49("p", { className: "oc-message__meta", children: [
2409
- time != null && /* @__PURE__ */ jsx60("time", { dateTime: datetime, children: time }),
2410
- status && /* @__PURE__ */ jsxs49("span", { className: cx("oc-message__status", status !== "sent" && `oc-message__status--${status}`), children: [
2460
+ attachments?.length ? /* @__PURE__ */ jsx63(MessageAttachments, { items: attachments }) : null,
2461
+ (time != null || status) && /* @__PURE__ */ jsxs50("p", { className: "oc-message__meta", children: [
2462
+ time != null && /* @__PURE__ */ jsx63("time", { dateTime: datetime, children: time }),
2463
+ status && /* @__PURE__ */ jsxs50("span", { className: cx("oc-message__status", status !== "sent" && `oc-message__status--${status}`), children: [
2411
2464
  statusIcon && svg("M2 12.5 7 17.5 18 6.5M13 16.5l1 1L22.5 9", "2.2"),
2412
2465
  statusLabel ?? STATUS[status]
2413
2466
  ] })
2414
2467
  ] })
2415
2468
  ] }),
2416
- actions?.length ? /* @__PURE__ */ jsx60("div", { className: "oc-message__actions", children: actions.map((a) => /* @__PURE__ */ jsx60("button", { type: "button", className: cx("oc-message__action", a.destructive && "oc-message__action--destructive"), "aria-label": a.label, onClick: () => onAction?.(a.name), children: typeof a.icon === "string" || a.icon == null ? svg(ICONS[a.icon ?? a.name] ?? ICONS.reply) : a.icon }, a.name)) }) : null
2469
+ actions?.length ? /* @__PURE__ */ jsx63("div", { className: "oc-message__actions", children: actions.map((a) => /* @__PURE__ */ jsx63("button", { type: "button", className: cx("oc-message__action", a.destructive && "oc-message__action--destructive"), "aria-label": a.label, onClick: () => onAction?.(a.name), children: typeof a.icon === "string" || a.icon == null ? svg(ICONS[a.icon ?? a.name] ?? ICONS.reply) : a.icon }, a.name)) }) : null
2417
2470
  ] });
2418
2471
  });
2419
2472
  function MessageDivider({ system, className, children, ...rest }) {
2420
- return /* @__PURE__ */ jsx60("div", { className: cx("oc-message-divider", system && "oc-message-divider--system", className), role: system ? "note" : void 0, ...rest, children: /* @__PURE__ */ jsx60("span", { children }) });
2473
+ return /* @__PURE__ */ jsx63("div", { className: cx("oc-message-divider", system && "oc-message-divider--system", className), role: system ? "note" : void 0, ...rest, children: /* @__PURE__ */ jsx63("span", { children }) });
2421
2474
  }
2422
2475
  var DEMO5 = [
2423
2476
  { divider: "Tuesday 14 October" },
@@ -2430,21 +2483,21 @@ var DEMO5 = [
2430
2483
  label: "Lisa Verbeke, 09:13",
2431
2484
  continued: true,
2432
2485
  id: "oc-message-demo-question",
2433
- text: /* @__PURE__ */ jsxs49(Fragment14, { children: [
2434
- /* @__PURE__ */ jsx60("p", { children: "Which finish should we order?" }),
2435
- /* @__PURE__ */ jsxs49("ul", { children: [
2436
- /* @__PURE__ */ jsxs49("li", { children: [
2437
- /* @__PURE__ */ jsx60("strong", { children: "Calacatta" }),
2486
+ text: /* @__PURE__ */ jsxs50(Fragment14, { children: [
2487
+ /* @__PURE__ */ jsx63("p", { children: "Which finish should we order?" }),
2488
+ /* @__PURE__ */ jsxs50("ul", { children: [
2489
+ /* @__PURE__ */ jsxs50("li", { children: [
2490
+ /* @__PURE__ */ jsx63("strong", { children: "Calacatta" }),
2438
2491
  " matt, 20 mm"
2439
2492
  ] }),
2440
- /* @__PURE__ */ jsxs49("li", { children: [
2441
- /* @__PURE__ */ jsx60("strong", { children: "Nero Marquina" }),
2493
+ /* @__PURE__ */ jsxs50("li", { children: [
2494
+ /* @__PURE__ */ jsx63("strong", { children: "Nero Marquina" }),
2442
2495
  " polished, 12 mm"
2443
2496
  ] })
2444
2497
  ] }),
2445
- /* @__PURE__ */ jsxs49("p", { children: [
2498
+ /* @__PURE__ */ jsxs50("p", { children: [
2446
2499
  "Details are on the ",
2447
- /* @__PURE__ */ jsx60("a", { href: "#supplier-sheet", children: "supplier sheet" }),
2500
+ /* @__PURE__ */ jsx63("a", { href: "#supplier-sheet", children: "supplier sheet" }),
2448
2501
  "."
2449
2502
  ] })
2450
2503
  ] })
@@ -2463,15 +2516,15 @@ var DEMO5 = [
2463
2516
  },
2464
2517
  { divider: "Lisa Verbeke marked this question as answered", system: true }
2465
2518
  ];
2466
- var MessageList = forwardRef58(function MessageList2({ items = DEMO5, log = true, onAction, className, children, "aria-label": label = log ? "Conversation with Lisa Verbeke" : void 0, ...rest }, ref) {
2467
- return /* @__PURE__ */ jsx60("div", { ref, className: cx("oc-message-list", className), role: log ? "log" : void 0, "aria-label": label, ...rest, children: children ?? items.map(
2468
- (item, i) => "divider" in item ? /* @__PURE__ */ jsx60(MessageDivider, { system: item.system, children: item.divider }, i) : /* @__PURE__ */ jsx60(Message, { ...item, onAction: (name) => onAction?.(name, item, i) }, i)
2519
+ var MessageList = forwardRef61(function MessageList2({ items = DEMO5, log = true, onAction, className, children, "aria-label": label = log ? "Conversation with Lisa Verbeke" : void 0, ...rest }, ref) {
2520
+ return /* @__PURE__ */ jsx63("div", { ref, className: cx("oc-message-list", className), role: log ? "log" : void 0, "aria-label": label, ...rest, children: children ?? items.map(
2521
+ (item, i) => "divider" in item ? /* @__PURE__ */ jsx63(MessageDivider, { system: item.system, children: item.divider }, i) : /* @__PURE__ */ jsx63(Message, { ...item, onAction: (name) => onAction?.(name, item, i) }, i)
2469
2522
  ) });
2470
2523
  });
2471
2524
 
2472
2525
  // src/components/MessageThread.tsx
2473
- import { forwardRef as forwardRef59, useEffect as useEffect7, useId as useId22, useState as useState9 } from "react";
2474
- import { Fragment as Fragment15, jsx as jsx61, jsxs as jsxs50 } from "react/jsx-runtime";
2526
+ import { forwardRef as forwardRef62, useEffect as useEffect7, useId as useId22, useState as useState9 } from "react";
2527
+ import { Fragment as Fragment15, jsx as jsx64, jsxs as jsxs51 } from "react/jsx-runtime";
2475
2528
  var MENU = [
2476
2529
  { name: "unread", label: "Mark as unread" },
2477
2530
  { name: "archive", label: "Move to archive" },
@@ -2494,11 +2547,11 @@ var DEMO6 = [
2494
2547
  time: "09:13",
2495
2548
  datetime: "2026-10-14T09:13",
2496
2549
  continued: true,
2497
- text: /* @__PURE__ */ jsxs50("p", { children: [
2550
+ text: /* @__PURE__ */ jsxs51("p", { children: [
2498
2551
  "Which one should we order: ",
2499
- /* @__PURE__ */ jsx61("strong", { children: "Calacatta matt" }),
2552
+ /* @__PURE__ */ jsx64("strong", { children: "Calacatta matt" }),
2500
2553
  " or ",
2501
- /* @__PURE__ */ jsx61("strong", { children: "Nero Marquina polished" }),
2554
+ /* @__PURE__ */ jsx64("strong", { children: "Nero Marquina polished" }),
2502
2555
  "? The cutting slot is Friday."
2503
2556
  ] })
2504
2557
  },
@@ -2516,7 +2569,7 @@ var DEMO6 = [
2516
2569
  { sender: "Lisa Verbeke", avatar: "LV", time: "10:02", datetime: "2026-10-24T10:02", text: "Client signed. Can you confirm the edge profile before 16:00?" }
2517
2570
  ];
2518
2571
  var isOut = (m) => !!m && !("divider" in m) && m.direction === "out";
2519
- var MessageThread = forwardRef59(function MessageThread2({
2572
+ var MessageThread = forwardRef62(function MessageThread2({
2520
2573
  title = "Kitchen worktop: which finish?",
2521
2574
  project = "Villa Dewitte",
2522
2575
  meta = "Lisa Verbeke \u2192 Tom Peeters \xB7 14 Oct 2026",
@@ -2578,55 +2631,55 @@ var MessageThread = forwardRef59(function MessageThread2({
2578
2631
  e.preventDefault();
2579
2632
  e.currentTarget.requestSubmit();
2580
2633
  };
2581
- return /* @__PURE__ */ jsxs50("section", { ref, className: cx("oc-message-thread", plain && "oc-message-thread--plain", className), "aria-labelledby": `${base}-title`, "aria-busy": busy || sending || void 0, ...rest, children: [
2582
- /* @__PURE__ */ jsxs50("header", { className: "oc-message-thread__header", children: [
2634
+ return /* @__PURE__ */ jsxs51("section", { ref, className: cx("oc-message-thread", plain && "oc-message-thread--plain", className), "aria-labelledby": `${base}-title`, "aria-busy": busy || sending || void 0, ...rest, children: [
2635
+ /* @__PURE__ */ jsxs51("header", { className: "oc-message-thread__header", children: [
2583
2636
  back,
2584
- /* @__PURE__ */ jsxs50("div", { className: "oc-message-thread__heading", children: [
2585
- /* @__PURE__ */ jsx61("h3", { className: "oc-message-thread__title", id: `${base}-title`, children: title }),
2586
- (project != null || meta != null) && /* @__PURE__ */ jsxs50("p", { className: "oc-message-thread__meta", children: [
2587
- project != null && /* @__PURE__ */ jsx61("strong", { children: project }),
2637
+ /* @__PURE__ */ jsxs51("div", { className: "oc-message-thread__heading", children: [
2638
+ /* @__PURE__ */ jsx64("h3", { className: "oc-message-thread__title", id: `${base}-title`, children: title }),
2639
+ (project != null || meta != null) && /* @__PURE__ */ jsxs51("p", { className: "oc-message-thread__meta", children: [
2640
+ project != null && /* @__PURE__ */ jsx64("strong", { children: project }),
2588
2641
  project != null && meta != null && " \xB7 ",
2589
2642
  meta
2590
2643
  ] })
2591
2644
  ] }),
2592
- participants.length > 0 && /* @__PURE__ */ jsx61("div", { className: "oc-avatar-group oc-message-thread__people", "aria-label": `${participants.length} participants`, children: participants.map((p, i) => /* @__PURE__ */ jsx61("span", { className: "oc-avatar", title: p.name, children: p.initials }, i)) }),
2593
- (status || menu) && /* @__PURE__ */ jsxs50("div", { className: "oc-message-thread__actions", children: [
2594
- status && /* @__PURE__ */ jsx61("span", { className: cx("oc-badge", status.variant && `oc-badge--${status.variant}`), children: status.label }),
2595
- menu && /* @__PURE__ */ jsxs50(Fragment15, { children: [
2596
- /* @__PURE__ */ jsx61("button", { type: "button", className: "oc-message-thread__icon-btn", popoverTarget: `${base}-menu`, "aria-label": "Conversation actions", children: /* @__PURE__ */ jsxs50("svg", { viewBox: "0 0 24 24", fill: "currentColor", "aria-hidden": "true", children: [
2597
- /* @__PURE__ */ jsx61("circle", { cx: "12", cy: "5", r: "1.8" }),
2598
- /* @__PURE__ */ jsx61("circle", { cx: "12", cy: "12", r: "1.8" }),
2599
- /* @__PURE__ */ jsx61("circle", { cx: "12", cy: "19", r: "1.8" })
2645
+ participants.length > 0 && /* @__PURE__ */ jsx64("div", { className: "oc-avatar-group oc-message-thread__people", "aria-label": `${participants.length} participants`, children: participants.map((p, i) => /* @__PURE__ */ jsx64("span", { className: "oc-avatar", title: p.name, children: p.initials }, i)) }),
2646
+ (status || menu) && /* @__PURE__ */ jsxs51("div", { className: "oc-message-thread__actions", children: [
2647
+ status && /* @__PURE__ */ jsx64("span", { className: cx("oc-badge", status.variant && `oc-badge--${status.variant}`), children: status.label }),
2648
+ menu && /* @__PURE__ */ jsxs51(Fragment15, { children: [
2649
+ /* @__PURE__ */ jsx64("button", { type: "button", className: "oc-message-thread__icon-btn", popoverTarget: `${base}-menu`, "aria-label": "Conversation actions", children: /* @__PURE__ */ jsxs51("svg", { viewBox: "0 0 24 24", fill: "currentColor", "aria-hidden": "true", children: [
2650
+ /* @__PURE__ */ jsx64("circle", { cx: "12", cy: "5", r: "1.8" }),
2651
+ /* @__PURE__ */ jsx64("circle", { cx: "12", cy: "12", r: "1.8" }),
2652
+ /* @__PURE__ */ jsx64("circle", { cx: "12", cy: "19", r: "1.8" })
2600
2653
  ] }) }),
2601
- /* @__PURE__ */ jsx61("div", { className: "oc-dropdown-menu", id: `${base}-menu`, ...attrs({ popover: "" }), role: "menu", children: menu.map((m, i) => "separator" in m ? /* @__PURE__ */ jsx61("div", { className: "oc-dropdown-separator", role: "separator" }, i) : /* @__PURE__ */ jsx61("button", { type: "button", className: cx("oc-dropdown-item", m.destructive && "oc-dropdown-item--destructive"), role: "menuitem", onClick: () => onMenu?.(m.name), children: m.label }, i)) })
2654
+ /* @__PURE__ */ jsx64("div", { className: "oc-dropdown-menu", id: `${base}-menu`, ...attrs({ popover: "" }), role: "menu", children: menu.map((m, i) => "separator" in m ? /* @__PURE__ */ jsx64("div", { className: "oc-dropdown-separator", role: "separator" }, i) : /* @__PURE__ */ jsx64("button", { type: "button", className: cx("oc-dropdown-item", m.destructive && "oc-dropdown-item--destructive"), role: "menuitem", onClick: () => onMenu?.(m.name), children: m.label }, i)) })
2602
2655
  ] })
2603
2656
  ] })
2604
2657
  ] }),
2605
- /* @__PURE__ */ jsx61("div", { className: "oc-message-thread__scroll", tabIndex: 0, role: "log", "aria-label": scrollLabel, "aria-live": live ? "polite" : void 0, children: /* @__PURE__ */ jsx61(MessageList, { items: list, log: false }) }),
2606
- /* @__PURE__ */ jsx61("div", { className: "oc-message-thread__footer", children: note != null ? /* @__PURE__ */ jsx61("p", { className: "oc-message-thread__note", children: note }) : composer ?? /* @__PURE__ */ jsxs50("form", { className: cx("oc-chat-composer", inline && "oc-chat-composer--inline"), action: "#", "aria-label": composerLabel, onSubmit: send, onKeyDown: ctrlEnter, children: [
2607
- /* @__PURE__ */ jsx61("label", { className: "oc-visually-hidden", htmlFor: `${base}-input`, children: "Message" }),
2608
- /* @__PURE__ */ jsx61("textarea", { className: "oc-chat-composer__input", id: `${base}-input`, name: "message", rows: 1, placeholder, required: true }),
2609
- /* @__PURE__ */ jsxs50("div", { className: "oc-chat-composer__bar", children: [
2610
- tools.length > 0 && /* @__PURE__ */ jsxs50("div", { className: "oc-chat-composer__tools", children: [
2611
- tools.includes("attach") && /* @__PURE__ */ jsx61("button", { type: "button", className: "oc-chat-composer__tool", "aria-label": "Attach a file", onClick: () => onTool?.("attach"), children: "\u{1F4CE}" }),
2612
- tools.includes("emoji") && /* @__PURE__ */ jsx61("button", { type: "button", className: "oc-chat-composer__tool", "aria-label": "Insert emoji", onClick: () => onTool?.("emoji"), children: "\u{1F642}" })
2658
+ /* @__PURE__ */ jsx64("div", { className: "oc-message-thread__scroll", tabIndex: 0, role: "log", "aria-label": scrollLabel, "aria-live": live ? "polite" : void 0, children: /* @__PURE__ */ jsx64(MessageList, { items: list, log: false }) }),
2659
+ /* @__PURE__ */ jsx64("div", { className: "oc-message-thread__footer", children: note != null ? /* @__PURE__ */ jsx64("p", { className: "oc-message-thread__note", children: note }) : composer ?? /* @__PURE__ */ jsxs51("form", { className: cx("oc-chat-composer", inline && "oc-chat-composer--inline"), action: "#", "aria-label": composerLabel, onSubmit: send, onKeyDown: ctrlEnter, children: [
2660
+ /* @__PURE__ */ jsx64("label", { className: "oc-visually-hidden", htmlFor: `${base}-input`, children: "Message" }),
2661
+ /* @__PURE__ */ jsx64("textarea", { className: "oc-chat-composer__input", id: `${base}-input`, name: "message", rows: 1, placeholder, required: true }),
2662
+ /* @__PURE__ */ jsxs51("div", { className: "oc-chat-composer__bar", children: [
2663
+ tools.length > 0 && /* @__PURE__ */ jsxs51("div", { className: "oc-chat-composer__tools", children: [
2664
+ tools.includes("attach") && /* @__PURE__ */ jsx64("button", { type: "button", className: "oc-chat-composer__tool", "aria-label": "Attach a file", onClick: () => onTool?.("attach"), children: "\u{1F4CE}" }),
2665
+ tools.includes("emoji") && /* @__PURE__ */ jsx64("button", { type: "button", className: "oc-chat-composer__tool", "aria-label": "Insert emoji", onClick: () => onTool?.("emoji"), children: "\u{1F642}" })
2613
2666
  ] }),
2614
- hint != null && /* @__PURE__ */ jsx61("span", { className: "oc-chat-composer__hint", children: hint }),
2615
- /* @__PURE__ */ jsx61("button", { type: "submit", className: "oc-chat-composer__send", "aria-label": "Send", children: "\u27A4" })
2667
+ hint != null && /* @__PURE__ */ jsx64("span", { className: "oc-chat-composer__hint", children: hint }),
2668
+ /* @__PURE__ */ jsx64("button", { type: "submit", className: "oc-chat-composer__send", "aria-label": "Send", children: "\u27A4" })
2616
2669
  ] })
2617
2670
  ] }) }),
2618
- busyTitle != null && /* @__PURE__ */ jsxs50("div", { className: "oc-message-thread__busy", role: "status", children: [
2619
- /* @__PURE__ */ jsx61("span", { className: "oc-spinner oc-spinner--lg", "aria-hidden": "true" }),
2620
- /* @__PURE__ */ jsx61("strong", { children: busyTitle }),
2621
- busyText != null && /* @__PURE__ */ jsx61("span", { children: busyText })
2671
+ busyTitle != null && /* @__PURE__ */ jsxs51("div", { className: "oc-message-thread__busy", role: "status", children: [
2672
+ /* @__PURE__ */ jsx64("span", { className: "oc-spinner oc-spinner--lg", "aria-hidden": "true" }),
2673
+ /* @__PURE__ */ jsx64("strong", { children: busyTitle }),
2674
+ busyText != null && /* @__PURE__ */ jsx64("span", { children: busyText })
2622
2675
  ] })
2623
2676
  ] });
2624
2677
  });
2625
2678
 
2626
2679
  // src/components/Modal.tsx
2627
- import { forwardRef as forwardRef60, useId as useId23, useRef as useRef9 } from "react";
2628
- import { jsx as jsx62, jsxs as jsxs51 } from "react/jsx-runtime";
2629
- var Modal = forwardRef60(function Modal2({ open, defaultOpen, onOpenChange, title, description, footer, size = "md", closeOnBackdrop = true, className, children, ...rest }, forwardedRef) {
2680
+ import { forwardRef as forwardRef63, useId as useId23, useRef as useRef9 } from "react";
2681
+ import { jsx as jsx65, jsxs as jsxs52 } from "react/jsx-runtime";
2682
+ var Modal = forwardRef63(function Modal2({ open, defaultOpen, onOpenChange, title, description, footer, size = "md", closeOnBackdrop = true, className, children, ...rest }, forwardedRef) {
2630
2683
  const inner = useRef9(null);
2631
2684
  const ref = useMergedRef(inner, forwardedRef);
2632
2685
  const titleId = useId23();
@@ -2635,7 +2688,7 @@ var Modal = forwardRef60(function Modal2({ open, defaultOpen, onOpenChange, titl
2635
2688
  rest.onClick?.(e);
2636
2689
  if (closeOnBackdrop && e.target === e.currentTarget) dlg.close();
2637
2690
  };
2638
- return /* @__PURE__ */ jsx62(
2691
+ return /* @__PURE__ */ jsx65(
2639
2692
  "dialog",
2640
2693
  {
2641
2694
  ref,
@@ -2645,20 +2698,20 @@ var Modal = forwardRef60(function Modal2({ open, defaultOpen, onOpenChange, titl
2645
2698
  ...rest,
2646
2699
  onClick,
2647
2700
  onClose: dlg.onClose,
2648
- children: /* @__PURE__ */ jsx62(DialogContext.Provider, { value: { close: dlg.close }, children: /* @__PURE__ */ jsxs51("div", { className: cx("oc-modal-content", size !== "md" && `oc-modal-content--${size}`), children: [
2649
- (title != null || description != null) && /* @__PURE__ */ jsxs51("div", { className: "oc-modal-header", children: [
2650
- title != null && /* @__PURE__ */ jsx62("h2", { className: "oc-modal-title", id: titleId, children: title }),
2651
- description != null && /* @__PURE__ */ jsx62("p", { className: "oc-modal-description", children: description })
2701
+ children: /* @__PURE__ */ jsx65(DialogContext.Provider, { value: { close: dlg.close }, children: /* @__PURE__ */ jsxs52("div", { className: cx("oc-modal-content", size !== "md" && `oc-modal-content--${size}`), children: [
2702
+ (title != null || description != null) && /* @__PURE__ */ jsxs52("div", { className: "oc-modal-header", children: [
2703
+ title != null && /* @__PURE__ */ jsx65("h2", { className: "oc-modal-title", id: titleId, children: title }),
2704
+ description != null && /* @__PURE__ */ jsx65("p", { className: "oc-modal-description", children: description })
2652
2705
  ] }),
2653
2706
  children,
2654
- footer != null && /* @__PURE__ */ jsx62("div", { className: "oc-modal-footer", children: footer })
2707
+ footer != null && /* @__PURE__ */ jsx65("div", { className: "oc-modal-footer", children: footer })
2655
2708
  ] }) })
2656
2709
  }
2657
2710
  );
2658
2711
  });
2659
- var ModalClose = forwardRef60(function ModalClose2({ onClick, ...rest }, ref) {
2712
+ var ModalClose = forwardRef63(function ModalClose2({ onClick, ...rest }, ref) {
2660
2713
  const ctx = useDialogContext();
2661
- return /* @__PURE__ */ jsx62(
2714
+ return /* @__PURE__ */ jsx65(
2662
2715
  Button,
2663
2716
  {
2664
2717
  ref,
@@ -2673,53 +2726,53 @@ var ModalClose = forwardRef60(function ModalClose2({ onClick, ...rest }, ref) {
2673
2726
  });
2674
2727
 
2675
2728
  // src/components/Navmenu.tsx
2676
- import { forwardRef as forwardRef61, useId as useId24 } from "react";
2677
- import { jsx as jsx63, jsxs as jsxs52 } from "react/jsx-runtime";
2678
- var Navmenu = forwardRef61(function Navmenu2({ label = "Navigation", navClassName, className, ...rest }, ref) {
2679
- return /* @__PURE__ */ jsx63("nav", { "aria-label": label, className: navClassName, children: /* @__PURE__ */ jsx63("ul", { ref, className: cx("oc-navmenu", className), ...rest }) });
2729
+ import { forwardRef as forwardRef64, useId as useId24 } from "react";
2730
+ import { jsx as jsx66, jsxs as jsxs53 } from "react/jsx-runtime";
2731
+ var Navmenu = forwardRef64(function Navmenu2({ label = "Navigation", navClassName, className, ...rest }, ref) {
2732
+ return /* @__PURE__ */ jsx66("nav", { "aria-label": label, className: navClassName, children: /* @__PURE__ */ jsx66("ul", { ref, className: cx("oc-navmenu", className), ...rest }) });
2680
2733
  });
2681
2734
  function NavmenuItem(props) {
2682
- return /* @__PURE__ */ jsx63("li", { ...props });
2735
+ return /* @__PURE__ */ jsx66("li", { ...props });
2683
2736
  }
2684
- var NavmenuLink = forwardRef61(function NavmenuLink2({ current, className, ...rest }, ref) {
2685
- return /* @__PURE__ */ jsx63("a", { ref, className: cx("oc-navmenu-link", className), "aria-current": current ? "page" : void 0, ...rest });
2737
+ var NavmenuLink = forwardRef64(function NavmenuLink2({ current, className, ...rest }, ref) {
2738
+ return /* @__PURE__ */ jsx66("a", { ref, className: cx("oc-navmenu-link", className), "aria-current": current ? "page" : void 0, ...rest });
2686
2739
  });
2687
- var NavmenuDropdown = forwardRef61(function NavmenuDropdown2({ label, className, id, children, ...rest }, ref) {
2740
+ var NavmenuDropdown = forwardRef64(function NavmenuDropdown2({ label, className, id, children, ...rest }, ref) {
2688
2741
  const auto = useId24();
2689
2742
  const menuId = id ?? `oc-navmenu-${auto.replace(/:/g, "")}`;
2690
- return /* @__PURE__ */ jsxs52("li", { children: [
2691
- /* @__PURE__ */ jsx63("button", { className: "oc-navmenu-link oc-navmenu-link--caret", type: "button", popoverTarget: menuId, children: label }),
2692
- /* @__PURE__ */ jsx63("div", { ref, className: cx("oc-dropdown-menu", className), id: menuId, ...attrs({ popover: "" }), ...rest, children })
2743
+ return /* @__PURE__ */ jsxs53("li", { children: [
2744
+ /* @__PURE__ */ jsx66("button", { className: "oc-navmenu-link oc-navmenu-link--caret", type: "button", popoverTarget: menuId, children: label }),
2745
+ /* @__PURE__ */ jsx66("div", { ref, className: cx("oc-dropdown-menu", className), id: menuId, ...attrs({ popover: "" }), ...rest, children })
2693
2746
  ] });
2694
2747
  });
2695
2748
 
2696
2749
  // src/components/NextTeaser.tsx
2697
- import { forwardRef as forwardRef62 } from "react";
2698
- import { jsx as jsx64, jsxs as jsxs53 } from "react/jsx-runtime";
2699
- var NextTeaser = forwardRef62(function NextTeaser2({ label = "Next product", name, tagline, mark, prev = false, className, ...rest }, ref) {
2700
- return /* @__PURE__ */ jsxs53("a", { ref, className: cx("oc-next-teaser", prev && "oc-next-teaser--prev", className), ...rest, children: [
2701
- label != null && /* @__PURE__ */ jsx64("span", { className: "oc-next-teaser__label", children: label }),
2702
- /* @__PURE__ */ jsxs53("span", { className: "oc-next-teaser__name", children: [
2750
+ import { forwardRef as forwardRef65 } from "react";
2751
+ import { jsx as jsx67, jsxs as jsxs54 } from "react/jsx-runtime";
2752
+ var NextTeaser = forwardRef65(function NextTeaser2({ label = "Next product", name, tagline, mark, prev = false, className, ...rest }, ref) {
2753
+ return /* @__PURE__ */ jsxs54("a", { ref, className: cx("oc-next-teaser", prev && "oc-next-teaser--prev", className), ...rest, children: [
2754
+ label != null && /* @__PURE__ */ jsx67("span", { className: "oc-next-teaser__label", children: label }),
2755
+ /* @__PURE__ */ jsxs54("span", { className: "oc-next-teaser__name", children: [
2703
2756
  mark,
2704
2757
  name
2705
2758
  ] }),
2706
- tagline != null && /* @__PURE__ */ jsx64("span", { className: "oc-next-teaser__tagline", children: tagline })
2759
+ tagline != null && /* @__PURE__ */ jsx67("span", { className: "oc-next-teaser__tagline", children: tagline })
2707
2760
  ] });
2708
2761
  });
2709
2762
 
2710
2763
  // src/components/NumberInput.tsx
2711
- import { forwardRef as forwardRef63 } from "react";
2712
- import { jsx as jsx65, jsxs as jsxs54 } from "react/jsx-runtime";
2764
+ import { forwardRef as forwardRef66 } from "react";
2765
+ import { jsx as jsx68, jsxs as jsxs55 } from "react/jsx-runtime";
2713
2766
  function clamp(n, min, max) {
2714
2767
  const rounded = Math.round(n * 1e6) / 1e6;
2715
2768
  return Math.min(max ?? Infinity, Math.max(min ?? -Infinity, rounded));
2716
2769
  }
2717
- var NumberInput = forwardRef63(function NumberInput2({ value, defaultValue, onChange, min, max, step = 1, size = "md", block, error, decrementLabel = "Decrease", incrementLabel = "Increase", className, disabled, ...rest }, ref) {
2770
+ var NumberInput = forwardRef66(function NumberInput2({ value, defaultValue, onChange, min, max, step = 1, size = "md", block, error, decrementLabel = "Decrease", incrementLabel = "Increase", className, disabled, ...rest }, ref) {
2718
2771
  const [current, setCurrent] = useControllable(value, defaultValue ?? null, onChange);
2719
2772
  const stepBy = (dir) => setCurrent(clamp((current ?? min ?? 0) + dir * step, min, max));
2720
- return /* @__PURE__ */ jsxs54("div", { className: cx("oc-number-input", size === "sm" && "oc-number-input--sm", block && "oc-number-input--block", error && "oc-number-input--error", className), children: [
2721
- /* @__PURE__ */ jsx65("button", { className: "oc-number-input-step", type: "button", "aria-label": decrementLabel, disabled: disabled || min != null && current != null && current <= min, onClick: () => stepBy(-1), children: "\u2212" }),
2722
- /* @__PURE__ */ jsx65(
2773
+ return /* @__PURE__ */ jsxs55("div", { className: cx("oc-number-input", size === "sm" && "oc-number-input--sm", block && "oc-number-input--block", error && "oc-number-input--error", className), children: [
2774
+ /* @__PURE__ */ jsx68("button", { className: "oc-number-input-step", type: "button", "aria-label": decrementLabel, disabled: disabled || min != null && current != null && current <= min, onClick: () => stepBy(-1), children: "\u2212" }),
2775
+ /* @__PURE__ */ jsx68(
2723
2776
  "input",
2724
2777
  {
2725
2778
  ref,
@@ -2735,16 +2788,16 @@ var NumberInput = forwardRef63(function NumberInput2({ value, defaultValue, onCh
2735
2788
  ...rest
2736
2789
  }
2737
2790
  ),
2738
- /* @__PURE__ */ jsx65("button", { className: "oc-number-input-step", type: "button", "aria-label": incrementLabel, disabled: disabled || max != null && current != null && current >= max, onClick: () => stepBy(1), children: "+" })
2791
+ /* @__PURE__ */ jsx68("button", { className: "oc-number-input-step", type: "button", "aria-label": incrementLabel, disabled: disabled || max != null && current != null && current >= max, onClick: () => stepBy(1), children: "+" })
2739
2792
  ] });
2740
2793
  });
2741
2794
 
2742
2795
  // src/components/OtpInput.tsx
2743
- import { forwardRef as forwardRef64 } from "react";
2744
- import { jsx as jsx66 } from "react/jsx-runtime";
2745
- var OtpInput = forwardRef64(function OtpInput2({ length = 6, value, defaultValue = "", onChange, onComplete, invalid, alphanumeric, className, style, ...rest }, ref) {
2796
+ import { forwardRef as forwardRef67 } from "react";
2797
+ import { jsx as jsx69 } from "react/jsx-runtime";
2798
+ var OtpInput = forwardRef67(function OtpInput2({ length = 6, value, defaultValue = "", onChange, onComplete, invalid, alphanumeric, className, style, ...rest }, ref) {
2746
2799
  const [code, setCode] = useControllable(value, defaultValue, onChange);
2747
- return /* @__PURE__ */ jsx66(
2800
+ return /* @__PURE__ */ jsx69(
2748
2801
  "input",
2749
2802
  {
2750
2803
  ref,
@@ -2768,29 +2821,29 @@ var OtpInput = forwardRef64(function OtpInput2({ length = 6, value, defaultValue
2768
2821
  });
2769
2822
 
2770
2823
  // src/components/PageHeader.tsx
2771
- import { forwardRef as forwardRef65 } from "react";
2772
- import { jsx as jsx67, jsxs as jsxs55 } from "react/jsx-runtime";
2773
- var PageHeader = forwardRef65(function PageHeader2({ title, subtitle, meta, back, actions, level = 1, bordered, sticky, size, className, ...rest }, ref) {
2824
+ import { forwardRef as forwardRef68 } from "react";
2825
+ import { jsx as jsx70, jsxs as jsxs56 } from "react/jsx-runtime";
2826
+ var PageHeader = forwardRef68(function PageHeader2({ title, subtitle, meta, back, actions, level = 1, bordered, sticky, size, className, ...rest }, ref) {
2774
2827
  const Heading3 = `h${level}`;
2775
2828
  const cls = cx("oc-page-header", bordered && "oc-page-header--bordered", sticky && "oc-page-header--sticky", size && `oc-page-header--${size}`, className);
2776
- return /* @__PURE__ */ jsxs55("header", { ref, className: cls, ...rest, children: [
2777
- back != null && /* @__PURE__ */ jsx67("div", { className: "oc-page-header-back", children: back }),
2778
- /* @__PURE__ */ jsxs55("div", { className: "oc-page-header-main", children: [
2779
- /* @__PURE__ */ jsxs55("div", { className: "oc-page-header-text", children: [
2780
- /* @__PURE__ */ jsx67(Heading3, { className: "oc-page-header-title", children: title }),
2781
- subtitle != null && /* @__PURE__ */ jsx67("p", { className: "oc-page-header-subtitle", children: subtitle }),
2782
- meta != null && /* @__PURE__ */ jsx67("div", { className: "oc-page-header-meta", children: meta })
2829
+ return /* @__PURE__ */ jsxs56("header", { ref, className: cls, ...rest, children: [
2830
+ back != null && /* @__PURE__ */ jsx70("div", { className: "oc-page-header-back", children: back }),
2831
+ /* @__PURE__ */ jsxs56("div", { className: "oc-page-header-main", children: [
2832
+ /* @__PURE__ */ jsxs56("div", { className: "oc-page-header-text", children: [
2833
+ /* @__PURE__ */ jsx70(Heading3, { className: "oc-page-header-title", children: title }),
2834
+ subtitle != null && /* @__PURE__ */ jsx70("p", { className: "oc-page-header-subtitle", children: subtitle }),
2835
+ meta != null && /* @__PURE__ */ jsx70("div", { className: "oc-page-header-meta", children: meta })
2783
2836
  ] }),
2784
- actions != null && /* @__PURE__ */ jsx67("div", { className: "oc-page-header-actions", children: actions })
2837
+ actions != null && /* @__PURE__ */ jsx70("div", { className: "oc-page-header-actions", children: actions })
2785
2838
  ] })
2786
2839
  ] });
2787
2840
  });
2788
2841
 
2789
2842
  // src/components/Pagination.tsx
2790
- import { forwardRef as forwardRef66 } from "react";
2791
- import { jsx as jsx68 } from "react/jsx-runtime";
2792
- var Pagination = forwardRef66(function Pagination2({ page, pageCount, onPageChange, hrefFor = (n) => `?page=${n}`, className, "aria-label": ariaLabel = "Pagination", ...rest }, ref) {
2793
- return /* @__PURE__ */ jsx68("nav", { ref, className: cx("oc-pagination", className), "aria-label": ariaLabel, ...rest, children: Array.from({ length: pageCount }, (_, i) => i + 1).map((n) => /* @__PURE__ */ jsx68(
2843
+ import { forwardRef as forwardRef69 } from "react";
2844
+ import { jsx as jsx71 } from "react/jsx-runtime";
2845
+ var Pagination = forwardRef69(function Pagination2({ page, pageCount, onPageChange, hrefFor = (n) => `?page=${n}`, className, "aria-label": ariaLabel = "Pagination", ...rest }, ref) {
2846
+ return /* @__PURE__ */ jsx71("nav", { ref, className: cx("oc-pagination", className), "aria-label": ariaLabel, ...rest, children: Array.from({ length: pageCount }, (_, i) => i + 1).map((n) => /* @__PURE__ */ jsx71(
2794
2847
  "a",
2795
2848
  {
2796
2849
  className: "oc-pagination-item",
@@ -2807,12 +2860,12 @@ var Pagination = forwardRef66(function Pagination2({ page, pageCount, onPageChan
2807
2860
  });
2808
2861
 
2809
2862
  // src/components/PasswordInput.tsx
2810
- import { forwardRef as forwardRef67, useState as useState10 } from "react";
2811
- import { jsx as jsx69, jsxs as jsxs56 } from "react/jsx-runtime";
2812
- var PasswordInput = forwardRef67(function PasswordInput2({ showLabel = "Show", hideLabel = "Hide", toggleLabel = "Toggle password visibility", error, className, ...rest }, ref) {
2863
+ import { forwardRef as forwardRef70, useState as useState10 } from "react";
2864
+ import { jsx as jsx72, jsxs as jsxs57 } from "react/jsx-runtime";
2865
+ var PasswordInput = forwardRef70(function PasswordInput2({ showLabel = "Show", hideLabel = "Hide", toggleLabel = "Toggle password visibility", error, className, ...rest }, ref) {
2813
2866
  const [shown, setShown] = useState10(false);
2814
- return /* @__PURE__ */ jsxs56("div", { className: "oc-input-reveal", children: [
2815
- /* @__PURE__ */ jsx69(
2867
+ return /* @__PURE__ */ jsxs57("div", { className: "oc-input-reveal", children: [
2868
+ /* @__PURE__ */ jsx72(
2816
2869
  "input",
2817
2870
  {
2818
2871
  ref,
@@ -2823,27 +2876,27 @@ var PasswordInput = forwardRef67(function PasswordInput2({ showLabel = "Show", h
2823
2876
  ...rest
2824
2877
  }
2825
2878
  ),
2826
- /* @__PURE__ */ jsx69("button", { className: "oc-input-reveal-button", type: "button", "aria-pressed": shown, "aria-label": toggleLabel, onClick: () => setShown((s) => !s), children: shown ? hideLabel : showLabel })
2879
+ /* @__PURE__ */ jsx72("button", { className: "oc-input-reveal-button", type: "button", "aria-pressed": shown, "aria-label": toggleLabel, onClick: () => setShown((s) => !s), children: shown ? hideLabel : showLabel })
2827
2880
  ] });
2828
2881
  });
2829
2882
 
2830
2883
  // src/components/PasswordRequirements.tsx
2831
- import { forwardRef as forwardRef68 } from "react";
2832
- import { jsx as jsx70 } from "react/jsx-runtime";
2884
+ import { forwardRef as forwardRef71 } from "react";
2885
+ import { jsx as jsx73 } from "react/jsx-runtime";
2833
2886
  var defaultPasswordRules = [
2834
2887
  { label: "At least 8 characters", test: (p) => p.length >= 8 },
2835
2888
  { label: "One uppercase letter", test: (p) => /[A-Z]/.test(p) },
2836
2889
  { label: "One number", test: (p) => /[0-9]/.test(p) },
2837
2890
  { label: "One symbol", test: (p) => /[^A-Za-z0-9]/.test(p) }
2838
2891
  ];
2839
- var PasswordRequirements = forwardRef68(function PasswordRequirements2({ password, rules = defaultPasswordRules, inline, hideWhenEmpty, className, ...rest }, ref) {
2892
+ var PasswordRequirements = forwardRef71(function PasswordRequirements2({ password, rules = defaultPasswordRules, inline, hideWhenEmpty, className, ...rest }, ref) {
2840
2893
  if (hideWhenEmpty && !password) return null;
2841
- return /* @__PURE__ */ jsx70("ul", { ref, className: cx("oc-password-requirements", inline && "oc-password-requirements--inline", className), "aria-live": "polite", ...rest, children: rules.map((rule, i) => /* @__PURE__ */ jsx70("li", { className: cx("oc-password-requirement", rule.test(password) && "oc-password-requirement--met"), children: rule.label }, i)) });
2894
+ return /* @__PURE__ */ jsx73("ul", { ref, className: cx("oc-password-requirements", inline && "oc-password-requirements--inline", className), "aria-live": "polite", ...rest, children: rules.map((rule, i) => /* @__PURE__ */ jsx73("li", { className: cx("oc-password-requirement", rule.test(password) && "oc-password-requirement--met"), children: rule.label }, i)) });
2842
2895
  });
2843
2896
 
2844
2897
  // src/components/PhoneInput.tsx
2845
- import { forwardRef as forwardRef69, useState as useState11 } from "react";
2846
- import { jsx as jsx71, jsxs as jsxs57 } from "react/jsx-runtime";
2898
+ import { forwardRef as forwardRef72, useState as useState11 } from "react";
2899
+ import { jsx as jsx74, jsxs as jsxs58 } from "react/jsx-runtime";
2847
2900
  var DEFAULT_COUNTRIES = [
2848
2901
  { dial: "+32", label: "BE +32" },
2849
2902
  { dial: "+31", label: "NL +31" },
@@ -2860,7 +2913,7 @@ function splitPhone(full, countries) {
2860
2913
  const match = [...countries].sort((a, b) => b.dial.length - a.dial.length).find((c) => full.startsWith(c.dial));
2861
2914
  return match ? { dial: match.dial, national: full.slice(match.dial.length) } : { dial: "", national: full.replace(/^\+/, "") };
2862
2915
  }
2863
- var PhoneInput = forwardRef69(function PhoneInput2({ value, defaultValue, onChange, countries = DEFAULT_COUNTRIES, defaultDial, size = "md", error, dialLabel = "Country code", className, disabled, ...rest }, ref) {
2916
+ var PhoneInput = forwardRef72(function PhoneInput2({ value, defaultValue, onChange, countries = DEFAULT_COUNTRIES, defaultDial, size = "md", error, dialLabel = "Country code", className, disabled, ...rest }, ref) {
2864
2917
  const [full, setFull] = useControllable(value, defaultValue ?? "", onChange);
2865
2918
  const parsed = splitPhone(full, countries);
2866
2919
  const [dialState, setDialState] = useState11(parsed.dial || defaultDial || countries[0]?.dial || "");
@@ -2870,9 +2923,9 @@ var PhoneInput = forwardRef69(function PhoneInput2({ value, defaultValue, onChan
2870
2923
  const digits = national.replace(/\D/g, "");
2871
2924
  setFull(digits ? nextDial + digits : "");
2872
2925
  };
2873
- return /* @__PURE__ */ jsxs57("div", { className: cx("oc-phone-input", size === "sm" && "oc-phone-input--sm", error && "oc-phone-input--error", className), children: [
2874
- /* @__PURE__ */ jsx71("select", { className: "oc-phone-input-dial", "aria-label": dialLabel, value: dial, disabled, onChange: (e) => emit(e.target.value, parsed.national), children: countries.map((c) => /* @__PURE__ */ jsx71("option", { value: c.dial, children: c.label }, c.dial)) }),
2875
- /* @__PURE__ */ jsx71(
2926
+ return /* @__PURE__ */ jsxs58("div", { className: cx("oc-phone-input", size === "sm" && "oc-phone-input--sm", error && "oc-phone-input--error", className), children: [
2927
+ /* @__PURE__ */ jsx74("select", { className: "oc-phone-input-dial", "aria-label": dialLabel, value: dial, disabled, onChange: (e) => emit(e.target.value, parsed.national), children: countries.map((c) => /* @__PURE__ */ jsx74("option", { value: c.dial, children: c.label }, c.dial)) }),
2928
+ /* @__PURE__ */ jsx74(
2876
2929
  "input",
2877
2930
  {
2878
2931
  ref,
@@ -2891,33 +2944,33 @@ var PhoneInput = forwardRef69(function PhoneInput2({ value, defaultValue, onChan
2891
2944
  });
2892
2945
 
2893
2946
  // src/components/Popover.tsx
2894
- import { forwardRef as forwardRef70, useId as useId25 } from "react";
2895
- import { Fragment as Fragment16, jsx as jsx72, jsxs as jsxs58 } from "react/jsx-runtime";
2896
- var Popover = forwardRef70(function Popover2({ trigger, triggerProps, size = "md", title, text, className, id, children, ...rest }, ref) {
2947
+ import { forwardRef as forwardRef73, useId as useId25 } from "react";
2948
+ import { Fragment as Fragment16, jsx as jsx75, jsxs as jsxs59 } from "react/jsx-runtime";
2949
+ var Popover = forwardRef73(function Popover2({ trigger, triggerProps, size = "md", title, text, className, id, children, ...rest }, ref) {
2897
2950
  const auto = useId25();
2898
2951
  const panelId = id ?? `oc-popover-${auto.replace(/:/g, "")}`;
2899
- return /* @__PURE__ */ jsxs58(Fragment16, { children: [
2900
- /* @__PURE__ */ jsx72(Button, { variant: "outline", type: "button", ...triggerProps, popoverTarget: panelId, children: trigger }),
2901
- /* @__PURE__ */ jsxs58("div", { ref, className: cx("oc-popover", size !== "md" && `oc-popover--${size}`, className), id: panelId, ...attrs({ popover: "" }), ...rest, children: [
2902
- title != null && /* @__PURE__ */ jsx72("h3", { className: "oc-popover-title", children: title }),
2903
- text != null && /* @__PURE__ */ jsx72("p", { className: "oc-popover-text", children: text }),
2952
+ return /* @__PURE__ */ jsxs59(Fragment16, { children: [
2953
+ /* @__PURE__ */ jsx75(Button, { variant: "outline", type: "button", ...triggerProps, popoverTarget: panelId, children: trigger }),
2954
+ /* @__PURE__ */ jsxs59("div", { ref, className: cx("oc-popover", size !== "md" && `oc-popover--${size}`, className), id: panelId, ...attrs({ popover: "" }), ...rest, children: [
2955
+ title != null && /* @__PURE__ */ jsx75("h3", { className: "oc-popover-title", children: title }),
2956
+ text != null && /* @__PURE__ */ jsx75("p", { className: "oc-popover-text", children: text }),
2904
2957
  children
2905
2958
  ] })
2906
2959
  ] });
2907
2960
  });
2908
2961
 
2909
2962
  // src/components/PriceCard.tsx
2910
- import { forwardRef as forwardRef71, useId as useId26 } from "react";
2911
- import { jsx as jsx73, jsxs as jsxs59 } from "react/jsx-runtime";
2963
+ import { forwardRef as forwardRef74, useId as useId26 } from "react";
2964
+ import { jsx as jsx76, jsxs as jsxs60 } from "react/jsx-runtime";
2912
2965
  function Price({ kind, price }) {
2913
- return /* @__PURE__ */ jsxs59("p", { className: `oc-price-card__price oc-price-card__price--${kind}`, children: [
2914
- /* @__PURE__ */ jsx73("span", { className: "oc-price-card__amount", children: price.amount }),
2915
- price.period != null && /* @__PURE__ */ jsx73("span", { className: "oc-price-card__period", children: price.period }),
2916
- price.was != null && /* @__PURE__ */ jsx73("s", { className: "oc-price-card__was", children: price.was }),
2917
- price.note != null && /* @__PURE__ */ jsx73("span", { className: "oc-price-card__note", children: price.note })
2966
+ return /* @__PURE__ */ jsxs60("p", { className: `oc-price-card__price oc-price-card__price--${kind}`, children: [
2967
+ /* @__PURE__ */ jsx76("span", { className: "oc-price-card__amount", children: price.amount }),
2968
+ price.period != null && /* @__PURE__ */ jsx76("span", { className: "oc-price-card__period", children: price.period }),
2969
+ price.was != null && /* @__PURE__ */ jsx76("s", { className: "oc-price-card__was", children: price.was }),
2970
+ price.note != null && /* @__PURE__ */ jsx76("span", { className: "oc-price-card__note", children: price.note })
2918
2971
  ] });
2919
2972
  }
2920
- var PriceCard = forwardRef71(function PriceCard2({
2973
+ var PriceCard = forwardRef74(function PriceCard2({
2921
2974
  name,
2922
2975
  description,
2923
2976
  discount,
@@ -2933,35 +2986,35 @@ var PriceCard = forwardRef71(function PriceCard2({
2933
2986
  ...rest
2934
2987
  }, ref) {
2935
2988
  const group = `oc-price-${useId26().replace(/[^\w-]/g, "")}`;
2936
- return /* @__PURE__ */ jsxs59("article", { ref, className: cx("oc-price-card", featured && "oc-price-card--featured", className), ...rest, children: [
2937
- /* @__PURE__ */ jsxs59("div", { className: "oc-price-card__head", children: [
2938
- /* @__PURE__ */ jsx73("h3", { className: "oc-price-card__name", children: name }),
2939
- discount != null && /* @__PURE__ */ jsx73("span", { className: "oc-price-card__discount", children: discount })
2989
+ return /* @__PURE__ */ jsxs60("article", { ref, className: cx("oc-price-card", featured && "oc-price-card--featured", className), ...rest, children: [
2990
+ /* @__PURE__ */ jsxs60("div", { className: "oc-price-card__head", children: [
2991
+ /* @__PURE__ */ jsx76("h3", { className: "oc-price-card__name", children: name }),
2992
+ discount != null && /* @__PURE__ */ jsx76("span", { className: "oc-price-card__discount", children: discount })
2940
2993
  ] }),
2941
- description != null && /* @__PURE__ */ jsx73("p", { className: "oc-price-card__desc", children: description }),
2942
- yearly && /* @__PURE__ */ jsxs59("div", { className: "oc-segmented oc-price-card__toggle", role: "radiogroup", "aria-label": "Billing period", children: [
2943
- /* @__PURE__ */ jsxs59("label", { className: "oc-segmented-item", children: [
2944
- /* @__PURE__ */ jsx73("input", { type: "radio", name: group, value: "monthly", defaultChecked: defaultPeriod === "monthly" }),
2994
+ description != null && /* @__PURE__ */ jsx76("p", { className: "oc-price-card__desc", children: description }),
2995
+ yearly && /* @__PURE__ */ jsxs60("div", { className: "oc-segmented oc-price-card__toggle", role: "radiogroup", "aria-label": "Billing period", children: [
2996
+ /* @__PURE__ */ jsxs60("label", { className: "oc-segmented-item", children: [
2997
+ /* @__PURE__ */ jsx76("input", { type: "radio", name: group, value: "monthly", defaultChecked: defaultPeriod === "monthly" }),
2945
2998
  " ",
2946
2999
  monthlyLabel
2947
3000
  ] }),
2948
- /* @__PURE__ */ jsxs59("label", { className: "oc-segmented-item", children: [
2949
- /* @__PURE__ */ jsx73("input", { type: "radio", name: group, value: "yearly", defaultChecked: defaultPeriod === "yearly" }),
3001
+ /* @__PURE__ */ jsxs60("label", { className: "oc-segmented-item", children: [
3002
+ /* @__PURE__ */ jsx76("input", { type: "radio", name: group, value: "yearly", defaultChecked: defaultPeriod === "yearly" }),
2950
3003
  " ",
2951
3004
  yearlyLabel
2952
3005
  ] })
2953
3006
  ] }),
2954
- /* @__PURE__ */ jsx73(Price, { kind: "monthly", price: monthly }),
2955
- yearly && /* @__PURE__ */ jsx73(Price, { kind: "yearly", price: yearly }),
2956
- features.length > 0 && /* @__PURE__ */ jsx73("ul", { className: "oc-price-card__features", children: features.map((f, i) => /* @__PURE__ */ jsx73("li", { className: cx("oc-price-card__feature", f.excluded && "oc-price-card__feature--excluded"), children: f.label }, i)) }),
3007
+ /* @__PURE__ */ jsx76(Price, { kind: "monthly", price: monthly }),
3008
+ yearly && /* @__PURE__ */ jsx76(Price, { kind: "yearly", price: yearly }),
3009
+ features.length > 0 && /* @__PURE__ */ jsx76("ul", { className: "oc-price-card__features", children: features.map((f, i) => /* @__PURE__ */ jsx76("li", { className: cx("oc-price-card__feature", f.excluded && "oc-price-card__feature--excluded"), children: f.label }, i)) }),
2957
3010
  cta
2958
3011
  ] });
2959
3012
  });
2960
3013
 
2961
3014
  // src/components/ProductMark.tsx
2962
- import { forwardRef as forwardRef72 } from "react";
2963
- import { jsx as jsx74 } from "react/jsx-runtime";
2964
- var ProductMark = forwardRef72(function ProductMark2({ size = "default", accent, soft = false, glow = false, cover = false, className, ...rest }, ref) {
3015
+ import { forwardRef as forwardRef75 } from "react";
3016
+ import { jsx as jsx77 } from "react/jsx-runtime";
3017
+ var ProductMark = forwardRef75(function ProductMark2({ size = "default", accent, soft = false, glow = false, cover = false, className, ...rest }, ref) {
2965
3018
  const classes = cx(
2966
3019
  "oc-product-mark",
2967
3020
  size !== "default" && `oc-product-mark--${size}`,
@@ -2971,132 +3024,132 @@ var ProductMark = forwardRef72(function ProductMark2({ size = "default", accent,
2971
3024
  accent && `oc-accent--${accent}`,
2972
3025
  className
2973
3026
  );
2974
- return /* @__PURE__ */ jsx74("span", { ref, className: classes, "aria-hidden": "true", ...rest });
3027
+ return /* @__PURE__ */ jsx77("span", { ref, className: classes, "aria-hidden": "true", ...rest });
2975
3028
  });
2976
3029
 
2977
3030
  // src/components/ProjectCard.tsx
2978
- import { forwardRef as forwardRef73 } from "react";
2979
- import { jsx as jsx75, jsxs as jsxs60 } from "react/jsx-runtime";
2980
- var ProjectCard = forwardRef73(function ProjectCard2({ name, type, meta, more = "View project", image, imageAlt = "", flat = false, className, ...rest }, ref) {
2981
- return /* @__PURE__ */ jsxs60("a", { ref, className: cx("oc-project-card", flat && "oc-project-card--flat", className), ...rest, children: [
2982
- /* @__PURE__ */ jsxs60("span", { className: "oc-project-card__frame", children: [
2983
- /* @__PURE__ */ jsxs60("span", { className: "oc-project-card__bar", "aria-hidden": "true", children: [
2984
- /* @__PURE__ */ jsx75("i", {}),
2985
- /* @__PURE__ */ jsx75("i", {}),
2986
- /* @__PURE__ */ jsx75("i", {})
3031
+ import { forwardRef as forwardRef76 } from "react";
3032
+ import { jsx as jsx78, jsxs as jsxs61 } from "react/jsx-runtime";
3033
+ var ProjectCard = forwardRef76(function ProjectCard2({ name, type, meta, more = "View project", image, imageAlt = "", flat = false, className, ...rest }, ref) {
3034
+ return /* @__PURE__ */ jsxs61("a", { ref, className: cx("oc-project-card", flat && "oc-project-card--flat", className), ...rest, children: [
3035
+ /* @__PURE__ */ jsxs61("span", { className: "oc-project-card__frame", children: [
3036
+ /* @__PURE__ */ jsxs61("span", { className: "oc-project-card__bar", "aria-hidden": "true", children: [
3037
+ /* @__PURE__ */ jsx78("i", {}),
3038
+ /* @__PURE__ */ jsx78("i", {}),
3039
+ /* @__PURE__ */ jsx78("i", {})
2987
3040
  ] }),
2988
- image ? /* @__PURE__ */ jsx75("img", { className: "oc-project-card__shot", src: image, alt: imageAlt, loading: "lazy" }) : /* @__PURE__ */ jsx75("span", { className: "oc-project-card__shot", role: "img", "aria-label": imageAlt || void 0, "aria-hidden": imageAlt ? void 0 : true })
3041
+ image ? /* @__PURE__ */ jsx78("img", { className: "oc-project-card__shot", src: image, alt: imageAlt, loading: "lazy" }) : /* @__PURE__ */ jsx78("span", { className: "oc-project-card__shot", role: "img", "aria-label": imageAlt || void 0, "aria-hidden": imageAlt ? void 0 : true })
2989
3042
  ] }),
2990
- /* @__PURE__ */ jsxs60("span", { className: "oc-project-card__body", children: [
2991
- type != null && /* @__PURE__ */ jsx75("span", { className: "oc-project-card__type", children: type }),
2992
- /* @__PURE__ */ jsx75("span", { className: "oc-project-card__name", children: name }),
2993
- meta != null && /* @__PURE__ */ jsx75("span", { className: "oc-project-card__meta", children: meta }),
2994
- more != null && /* @__PURE__ */ jsx75("span", { className: "oc-project-card__more", children: more })
3043
+ /* @__PURE__ */ jsxs61("span", { className: "oc-project-card__body", children: [
3044
+ type != null && /* @__PURE__ */ jsx78("span", { className: "oc-project-card__type", children: type }),
3045
+ /* @__PURE__ */ jsx78("span", { className: "oc-project-card__name", children: name }),
3046
+ meta != null && /* @__PURE__ */ jsx78("span", { className: "oc-project-card__meta", children: meta }),
3047
+ more != null && /* @__PURE__ */ jsx78("span", { className: "oc-project-card__more", children: more })
2995
3048
  ] })
2996
3049
  ] });
2997
3050
  });
2998
3051
 
2999
3052
  // src/components/Prose.tsx
3000
- import { forwardRef as forwardRef74 } from "react";
3001
- import { Fragment as Fragment17, jsx as jsx76, jsxs as jsxs61 } from "react/jsx-runtime";
3053
+ import { forwardRef as forwardRef77 } from "react";
3054
+ import { Fragment as Fragment17, jsx as jsx79, jsxs as jsxs62 } from "react/jsx-runtime";
3002
3055
  function ProseLead({ className, ...rest }) {
3003
- return /* @__PURE__ */ jsx76("p", { className: cx("oc-prose-lead", className), ...rest });
3056
+ return /* @__PURE__ */ jsx79("p", { className: cx("oc-prose-lead", className), ...rest });
3004
3057
  }
3005
- var DEMO7 = /* @__PURE__ */ jsxs61(Fragment17, { children: [
3006
- /* @__PURE__ */ jsx76("h1", { children: "Planning a kitchen renovation" }),
3007
- /* @__PURE__ */ jsx76(ProseLead, { children: "A new kitchen takes eight to twelve weeks from the first visit to the last cabinet handle. This guide explains every step, so you know what to expect and when we need you." }),
3008
- /* @__PURE__ */ jsx76("h2", { children: "Before the first visit" }),
3009
- /* @__PURE__ */ jsxs61("p", { children: [
3058
+ var DEMO7 = /* @__PURE__ */ jsxs62(Fragment17, { children: [
3059
+ /* @__PURE__ */ jsx79("h1", { children: "Planning a kitchen renovation" }),
3060
+ /* @__PURE__ */ jsx79(ProseLead, { children: "A new kitchen takes eight to twelve weeks from the first visit to the last cabinet handle. This guide explains every step, so you know what to expect and when we need you." }),
3061
+ /* @__PURE__ */ jsx79("h2", { children: "Before the first visit" }),
3062
+ /* @__PURE__ */ jsxs62("p", { children: [
3010
3063
  "Collect a few photos of kitchens you like and measure the room roughly. Exact measurements are not needed yet: our site manager does that during the visit. Read the ",
3011
- /* @__PURE__ */ jsx76("a", { href: "#checklist", children: "preparation checklist" }),
3064
+ /* @__PURE__ */ jsx79("a", { href: "#checklist", children: "preparation checklist" }),
3012
3065
  " if you want to be fully ready."
3013
3066
  ] }),
3014
- /* @__PURE__ */ jsxs61("ul", { children: [
3015
- /* @__PURE__ */ jsxs61("li", { children: [
3067
+ /* @__PURE__ */ jsxs62("ul", { children: [
3068
+ /* @__PURE__ */ jsxs62("li", { children: [
3016
3069
  "The ",
3017
- /* @__PURE__ */ jsx76("strong", { children: "budget range" }),
3070
+ /* @__PURE__ */ jsx79("strong", { children: "budget range" }),
3018
3071
  " you have in mind, including appliances"
3019
3072
  ] }),
3020
- /* @__PURE__ */ jsxs61("li", { children: [
3073
+ /* @__PURE__ */ jsxs62("li", { children: [
3021
3074
  "Which walls, doors and windows can move, and which cannot",
3022
- /* @__PURE__ */ jsxs61("ul", { children: [
3023
- /* @__PURE__ */ jsx76("li", { children: "Load-bearing walls need a structural engineer" }),
3024
- /* @__PURE__ */ jsx76("li", { children: "Moving a window needs a permit in most towns" })
3075
+ /* @__PURE__ */ jsxs62("ul", { children: [
3076
+ /* @__PURE__ */ jsx79("li", { children: "Load-bearing walls need a structural engineer" }),
3077
+ /* @__PURE__ */ jsx79("li", { children: "Moving a window needs a permit in most towns" })
3025
3078
  ] })
3026
3079
  ] }),
3027
- /* @__PURE__ */ jsx76("li", { children: "Appliances you want to keep" })
3080
+ /* @__PURE__ */ jsx79("li", { children: "Appliances you want to keep" })
3028
3081
  ] }),
3029
- /* @__PURE__ */ jsxs61("figure", { children: [
3030
- /* @__PURE__ */ jsx76("div", { className: "oc-media-art oc-media-art--6", role: "img", "aria-label": "Kitchen with oak fronts and a light stone worktop" }),
3031
- /* @__PURE__ */ jsx76("figcaption", { children: "Villa Dewitte: oak fronts with a Calacatta matt worktop, finished in October 2026." })
3082
+ /* @__PURE__ */ jsxs62("figure", { children: [
3083
+ /* @__PURE__ */ jsx79("div", { className: "oc-media-art oc-media-art--6", role: "img", "aria-label": "Kitchen with oak fronts and a light stone worktop" }),
3084
+ /* @__PURE__ */ jsx79("figcaption", { children: "Villa Dewitte: oak fronts with a Calacatta matt worktop, finished in October 2026." })
3032
3085
  ] }),
3033
- /* @__PURE__ */ jsx76("h3", { children: "From design to installation" }),
3034
- /* @__PURE__ */ jsxs61("ol", { children: [
3035
- /* @__PURE__ */ jsx76("li", { children: "Site visit and measurements (week 1)" }),
3036
- /* @__PURE__ */ jsx76("li", { children: "Design and quote, with two revision rounds (weeks 2\u20133)" }),
3037
- /* @__PURE__ */ jsx76("li", { children: "Order and production of the cabinets (weeks 4\u20139)" }),
3038
- /* @__PURE__ */ jsx76("li", { children: "Installation, worktop and finishing (weeks 10\u201311)" })
3086
+ /* @__PURE__ */ jsx79("h3", { children: "From design to installation" }),
3087
+ /* @__PURE__ */ jsxs62("ol", { children: [
3088
+ /* @__PURE__ */ jsx79("li", { children: "Site visit and measurements (week 1)" }),
3089
+ /* @__PURE__ */ jsx79("li", { children: "Design and quote, with two revision rounds (weeks 2\u20133)" }),
3090
+ /* @__PURE__ */ jsx79("li", { children: "Order and production of the cabinets (weeks 4\u20139)" }),
3091
+ /* @__PURE__ */ jsx79("li", { children: "Installation, worktop and finishing (weeks 10\u201311)" })
3039
3092
  ] }),
3040
- /* @__PURE__ */ jsxs61("blockquote", { children: [
3041
- /* @__PURE__ */ jsx76("p", { children: "The planning was clear from day one. We always knew who was coming and when, and the kitchen was ready a week early." }),
3042
- /* @__PURE__ */ jsx76("footer", { children: "\u2014 Ann Dewitte, client in Ghent" })
3093
+ /* @__PURE__ */ jsxs62("blockquote", { children: [
3094
+ /* @__PURE__ */ jsx79("p", { children: "The planning was clear from day one. We always knew who was coming and when, and the kitchen was ready a week early." }),
3095
+ /* @__PURE__ */ jsx79("footer", { children: "\u2014 Ann Dewitte, client in Ghent" })
3043
3096
  ] }),
3044
- /* @__PURE__ */ jsx76("h2", { children: "Worktop materials compared" }),
3045
- /* @__PURE__ */ jsxs61("table", { children: [
3046
- /* @__PURE__ */ jsx76("caption", { children: "Prices per running metre, 60 cm deep, installed." }),
3047
- /* @__PURE__ */ jsx76("thead", { children: /* @__PURE__ */ jsxs61("tr", { children: [
3048
- /* @__PURE__ */ jsx76("th", { children: "Material" }),
3049
- /* @__PURE__ */ jsx76("th", { children: "Thickness" }),
3050
- /* @__PURE__ */ jsx76("th", { children: "Heat resistant" }),
3051
- /* @__PURE__ */ jsx76("th", { children: "Price" })
3097
+ /* @__PURE__ */ jsx79("h2", { children: "Worktop materials compared" }),
3098
+ /* @__PURE__ */ jsxs62("table", { children: [
3099
+ /* @__PURE__ */ jsx79("caption", { children: "Prices per running metre, 60 cm deep, installed." }),
3100
+ /* @__PURE__ */ jsx79("thead", { children: /* @__PURE__ */ jsxs62("tr", { children: [
3101
+ /* @__PURE__ */ jsx79("th", { children: "Material" }),
3102
+ /* @__PURE__ */ jsx79("th", { children: "Thickness" }),
3103
+ /* @__PURE__ */ jsx79("th", { children: "Heat resistant" }),
3104
+ /* @__PURE__ */ jsx79("th", { children: "Price" })
3052
3105
  ] }) }),
3053
- /* @__PURE__ */ jsxs61("tbody", { children: [
3054
- /* @__PURE__ */ jsxs61("tr", { children: [
3055
- /* @__PURE__ */ jsx76("td", { children: "Compact laminate" }),
3056
- /* @__PURE__ */ jsx76("td", { children: "12 mm" }),
3057
- /* @__PURE__ */ jsx76("td", { children: "Up to 180 \xB0C" }),
3058
- /* @__PURE__ */ jsx76("td", { children: "\u20AC 290" })
3106
+ /* @__PURE__ */ jsxs62("tbody", { children: [
3107
+ /* @__PURE__ */ jsxs62("tr", { children: [
3108
+ /* @__PURE__ */ jsx79("td", { children: "Compact laminate" }),
3109
+ /* @__PURE__ */ jsx79("td", { children: "12 mm" }),
3110
+ /* @__PURE__ */ jsx79("td", { children: "Up to 180 \xB0C" }),
3111
+ /* @__PURE__ */ jsx79("td", { children: "\u20AC 290" })
3059
3112
  ] }),
3060
- /* @__PURE__ */ jsxs61("tr", { children: [
3061
- /* @__PURE__ */ jsx76("td", { children: "Quartz composite" }),
3062
- /* @__PURE__ */ jsx76("td", { children: "20 mm" }),
3063
- /* @__PURE__ */ jsx76("td", { children: "Up to 150 \xB0C" }),
3064
- /* @__PURE__ */ jsx76("td", { children: "\u20AC 540" })
3113
+ /* @__PURE__ */ jsxs62("tr", { children: [
3114
+ /* @__PURE__ */ jsx79("td", { children: "Quartz composite" }),
3115
+ /* @__PURE__ */ jsx79("td", { children: "20 mm" }),
3116
+ /* @__PURE__ */ jsx79("td", { children: "Up to 150 \xB0C" }),
3117
+ /* @__PURE__ */ jsx79("td", { children: "\u20AC 540" })
3065
3118
  ] }),
3066
- /* @__PURE__ */ jsxs61("tr", { children: [
3067
- /* @__PURE__ */ jsx76("td", { children: "Natural stone" }),
3068
- /* @__PURE__ */ jsx76("td", { children: "20 mm" }),
3069
- /* @__PURE__ */ jsx76("td", { children: "Yes" }),
3070
- /* @__PURE__ */ jsx76("td", { children: "\u20AC 720" })
3119
+ /* @__PURE__ */ jsxs62("tr", { children: [
3120
+ /* @__PURE__ */ jsx79("td", { children: "Natural stone" }),
3121
+ /* @__PURE__ */ jsx79("td", { children: "20 mm" }),
3122
+ /* @__PURE__ */ jsx79("td", { children: "Yes" }),
3123
+ /* @__PURE__ */ jsx79("td", { children: "\u20AC 720" })
3071
3124
  ] })
3072
3125
  ] })
3073
3126
  ] }),
3074
- /* @__PURE__ */ jsx76("h3", { children: "Sharing your floor plan" }),
3075
- /* @__PURE__ */ jsxs61("p", { children: [
3127
+ /* @__PURE__ */ jsx79("h3", { children: "Sharing your floor plan" }),
3128
+ /* @__PURE__ */ jsxs62("p", { children: [
3076
3129
  "Upload a PDF or a photo in the client portal, or send it by e-mail. Press ",
3077
- /* @__PURE__ */ jsx76("kbd", { children: "Ctrl" }),
3130
+ /* @__PURE__ */ jsx79("kbd", { children: "Ctrl" }),
3078
3131
  " + ",
3079
- /* @__PURE__ */ jsx76("kbd", { children: "V" }),
3132
+ /* @__PURE__ */ jsx79("kbd", { children: "V" }),
3080
3133
  " in the chat to paste a screenshot. Files are stored as ",
3081
- /* @__PURE__ */ jsx76("code", { children: "project-id/plans/" }),
3134
+ /* @__PURE__ */ jsx79("code", { children: "project-id/plans/" }),
3082
3135
  " and only your project team can see them."
3083
3136
  ] }),
3084
- /* @__PURE__ */ jsx76("pre", { children: /* @__PURE__ */ jsx76("code", { children: "Project: 2026-114 Villa Dewitte\nRoom: Kitchen, ground floor\nWall A: 412 cm (window at 160 cm)\nWall B: 298 cm (door at the left)" }) }),
3085
- /* @__PURE__ */ jsx76("hr", {}),
3086
- /* @__PURE__ */ jsx76("p", { children: /* @__PURE__ */ jsxs61("small", { children: [
3137
+ /* @__PURE__ */ jsx79("pre", { children: /* @__PURE__ */ jsx79("code", { children: "Project: 2026-114 Villa Dewitte\nRoom: Kitchen, ground floor\nWall A: 412 cm (window at 160 cm)\nWall B: 298 cm (door at the left)" }) }),
3138
+ /* @__PURE__ */ jsx79("hr", {}),
3139
+ /* @__PURE__ */ jsx79("p", { children: /* @__PURE__ */ jsxs62("small", { children: [
3087
3140
  "Lead times are an estimate. ",
3088
- /* @__PURE__ */ jsx76("mark", { children: "Natural stone" }),
3141
+ /* @__PURE__ */ jsx79("mark", { children: "Natural stone" }),
3089
3142
  " can take two weeks longer in summer."
3090
3143
  ] }) })
3091
3144
  ] });
3092
- var Prose = forwardRef74(function Prose2({ size = "md", full, as: Tag = "article", className, children, ...rest }, ref) {
3093
- return /* @__PURE__ */ jsx76(Tag, { ref, className: cx("oc-prose", size !== "md" && `oc-prose--${size}`, full && "oc-prose--full", className), ...rest, children: children ?? DEMO7 });
3145
+ var Prose = forwardRef77(function Prose2({ size = "md", full, as: Tag = "article", className, children, ...rest }, ref) {
3146
+ return /* @__PURE__ */ jsx79(Tag, { ref, className: cx("oc-prose", size !== "md" && `oc-prose--${size}`, full && "oc-prose--full", className), ...rest, children: children ?? DEMO7 });
3094
3147
  });
3095
3148
 
3096
3149
  // src/components/RecoveryCodes.tsx
3097
- import { forwardRef as forwardRef75 } from "react";
3098
- import { jsx as jsx77, jsxs as jsxs62 } from "react/jsx-runtime";
3099
- var RecoveryCodes = forwardRef75(function RecoveryCodes2({
3150
+ import { forwardRef as forwardRef78 } from "react";
3151
+ import { jsx as jsx80, jsxs as jsxs63 } from "react/jsx-runtime";
3152
+ var RecoveryCodes = forwardRef78(function RecoveryCodes2({
3100
3153
  codes,
3101
3154
  title = "Recovery codes",
3102
3155
  warning = "Store these codes somewhere safe. Each code works once.",
@@ -3124,33 +3177,33 @@ var RecoveryCodes = forwardRef75(function RecoveryCodes2({
3124
3177
  URL.revokeObjectURL(url);
3125
3178
  onDownload?.(codes);
3126
3179
  };
3127
- return /* @__PURE__ */ jsxs62("div", { ref, className: cx("oc-recovery-codes", className), ...rest, children: [
3128
- /* @__PURE__ */ jsx77("h3", { className: "oc-recovery-codes-title", children: title }),
3129
- /* @__PURE__ */ jsx77("p", { className: "oc-recovery-codes-warning", children: warning }),
3130
- /* @__PURE__ */ jsx77("ul", { className: "oc-recovery-codes-list", children: codes.map((code) => /* @__PURE__ */ jsx77("li", { children: code }, code)) }),
3131
- /* @__PURE__ */ jsxs62("div", { className: "oc-recovery-codes-actions", children: [
3132
- /* @__PURE__ */ jsx77("button", { className: "oc-btn oc-btn--outline oc-btn--sm", type: "button", onClick: copy, children: copyLabel }),
3133
- /* @__PURE__ */ jsx77("button", { className: "oc-btn oc-btn--outline oc-btn--sm", type: "button", onClick: download2, children: downloadLabel })
3180
+ return /* @__PURE__ */ jsxs63("div", { ref, className: cx("oc-recovery-codes", className), ...rest, children: [
3181
+ /* @__PURE__ */ jsx80("h3", { className: "oc-recovery-codes-title", children: title }),
3182
+ /* @__PURE__ */ jsx80("p", { className: "oc-recovery-codes-warning", children: warning }),
3183
+ /* @__PURE__ */ jsx80("ul", { className: "oc-recovery-codes-list", children: codes.map((code) => /* @__PURE__ */ jsx80("li", { children: code }, code)) }),
3184
+ /* @__PURE__ */ jsxs63("div", { className: "oc-recovery-codes-actions", children: [
3185
+ /* @__PURE__ */ jsx80("button", { className: "oc-btn oc-btn--outline oc-btn--sm", type: "button", onClick: copy, children: copyLabel }),
3186
+ /* @__PURE__ */ jsx80("button", { className: "oc-btn oc-btn--outline oc-btn--sm", type: "button", onClick: download2, children: downloadLabel })
3134
3187
  ] })
3135
3188
  ] });
3136
3189
  });
3137
3190
 
3138
3191
  // src/components/Segmented.tsx
3139
- import { forwardRef as forwardRef76, useId as useId27 } from "react";
3140
- import { jsx as jsx78, jsxs as jsxs63 } from "react/jsx-runtime";
3141
- var Segmented = forwardRef76(function Segmented2({ options, value, defaultValue, onChange, name, block, size = "md", className, ...rest }, ref) {
3192
+ import { forwardRef as forwardRef79, useId as useId27 } from "react";
3193
+ import { jsx as jsx81, jsxs as jsxs64 } from "react/jsx-runtime";
3194
+ var Segmented = forwardRef79(function Segmented2({ options, value, defaultValue, onChange, name, block, size = "md", className, ...rest }, ref) {
3142
3195
  const auto = useId27();
3143
3196
  const group = name ?? `oc-segmented-${auto.replace(/:/g, "")}`;
3144
3197
  const [current, setCurrent] = useControllable(value, defaultValue ?? options[0]?.value ?? "", onChange);
3145
- return /* @__PURE__ */ jsx78(
3198
+ return /* @__PURE__ */ jsx81(
3146
3199
  "div",
3147
3200
  {
3148
3201
  ref,
3149
3202
  className: cx("oc-segmented", block && "oc-segmented--block", size === "sm" && "oc-segmented--sm", className),
3150
3203
  role: "radiogroup",
3151
3204
  ...rest,
3152
- children: options.map((o) => /* @__PURE__ */ jsxs63("label", { className: "oc-segmented-item", children: [
3153
- /* @__PURE__ */ jsx78("input", { type: "radio", name: group, value: o.value, checked: current === o.value, onChange: () => setCurrent(o.value) }),
3205
+ children: options.map((o) => /* @__PURE__ */ jsxs64("label", { className: "oc-segmented-item", children: [
3206
+ /* @__PURE__ */ jsx81("input", { type: "radio", name: group, value: o.value, checked: current === o.value, onChange: () => setCurrent(o.value) }),
3154
3207
  " ",
3155
3208
  o.label
3156
3209
  ] }, o.value))
@@ -3159,44 +3212,44 @@ var Segmented = forwardRef76(function Segmented2({ options, value, defaultValue,
3159
3212
  });
3160
3213
 
3161
3214
  // src/components/Select.tsx
3162
- import { forwardRef as forwardRef77 } from "react";
3163
- import { jsx as jsx79, jsxs as jsxs64 } from "react/jsx-runtime";
3164
- var Select = forwardRef77(function Select2({ options, className, children, ...rest }, ref) {
3165
- return /* @__PURE__ */ jsxs64("select", { ref, className: cx("oc-select", className), ...rest, children: [
3215
+ import { forwardRef as forwardRef80 } from "react";
3216
+ import { jsx as jsx82, jsxs as jsxs65 } from "react/jsx-runtime";
3217
+ var Select = forwardRef80(function Select2({ options, className, children, ...rest }, ref) {
3218
+ return /* @__PURE__ */ jsxs65("select", { ref, className: cx("oc-select", className), ...rest, children: [
3166
3219
  options?.map((o) => {
3167
3220
  const opt = typeof o === "string" ? { value: o, label: o } : o;
3168
- return /* @__PURE__ */ jsx79("option", { value: opt.value, disabled: opt.disabled, children: opt.label }, opt.value);
3221
+ return /* @__PURE__ */ jsx82("option", { value: opt.value, disabled: opt.disabled, children: opt.label }, opt.value);
3169
3222
  }),
3170
3223
  children
3171
3224
  ] });
3172
3225
  });
3173
3226
 
3174
3227
  // src/components/SeverityCard.tsx
3175
- import { forwardRef as forwardRef78 } from "react";
3176
- import { jsx as jsx80, jsxs as jsxs65 } from "react/jsx-runtime";
3228
+ import { forwardRef as forwardRef81 } from "react";
3229
+ import { jsx as jsx83, jsxs as jsxs66 } from "react/jsx-runtime";
3177
3230
  var LEVEL_TEXT = { low: "Low", medium: "Medium", high: "High", critical: "Critical" };
3178
- var SeverityCard = forwardRef78(function SeverityCard2({ level, title, tags, levelLabel, icon, resolved, actions, className, children, ...rest }, ref) {
3231
+ var SeverityCard = forwardRef81(function SeverityCard2({ level, title, tags, levelLabel, icon, resolved, actions, className, children, ...rest }, ref) {
3179
3232
  const cls = cx("oc-severity-card", `oc-severity-card--${level}`, resolved && "is-resolved", className);
3180
- return /* @__PURE__ */ jsxs65("details", { ref, className: cls, ...rest, children: [
3181
- /* @__PURE__ */ jsxs65("summary", { className: "oc-severity-card-head", children: [
3182
- icon != null && /* @__PURE__ */ jsx80("span", { className: "oc-severity-card-icon", "aria-hidden": "true", children: icon }),
3183
- /* @__PURE__ */ jsxs65("span", { className: "oc-severity-card-main", children: [
3184
- /* @__PURE__ */ jsx80("span", { className: "oc-severity-card-title", children: title }),
3185
- tags && tags.length > 0 && /* @__PURE__ */ jsx80("span", { className: "oc-severity-card-tags", children: tags.map((t, i) => /* @__PURE__ */ jsx80("span", { className: "oc-severity-card-tag", children: t }, i)) })
3233
+ return /* @__PURE__ */ jsxs66("details", { ref, className: cls, ...rest, children: [
3234
+ /* @__PURE__ */ jsxs66("summary", { className: "oc-severity-card-head", children: [
3235
+ icon != null && /* @__PURE__ */ jsx83("span", { className: "oc-severity-card-icon", "aria-hidden": "true", children: icon }),
3236
+ /* @__PURE__ */ jsxs66("span", { className: "oc-severity-card-main", children: [
3237
+ /* @__PURE__ */ jsx83("span", { className: "oc-severity-card-title", children: title }),
3238
+ tags && tags.length > 0 && /* @__PURE__ */ jsx83("span", { className: "oc-severity-card-tags", children: tags.map((t, i) => /* @__PURE__ */ jsx83("span", { className: "oc-severity-card-tag", children: t }, i)) })
3186
3239
  ] }),
3187
- /* @__PURE__ */ jsx80("span", { className: "oc-severity-card-level", children: levelLabel ?? LEVEL_TEXT[level] })
3240
+ /* @__PURE__ */ jsx83("span", { className: "oc-severity-card-level", children: levelLabel ?? LEVEL_TEXT[level] })
3188
3241
  ] }),
3189
- /* @__PURE__ */ jsxs65("div", { className: "oc-severity-card-body", children: [
3242
+ /* @__PURE__ */ jsxs66("div", { className: "oc-severity-card-body", children: [
3190
3243
  children,
3191
- actions != null && /* @__PURE__ */ jsx80("div", { className: "oc-severity-card-actions", children: actions })
3244
+ actions != null && /* @__PURE__ */ jsx83("div", { className: "oc-severity-card-actions", children: actions })
3192
3245
  ] })
3193
3246
  ] });
3194
3247
  });
3195
3248
 
3196
3249
  // src/components/Sheet.tsx
3197
- import { forwardRef as forwardRef79, useId as useId28, useRef as useRef10 } from "react";
3198
- import { jsx as jsx81, jsxs as jsxs66 } from "react/jsx-runtime";
3199
- var Sheet = forwardRef79(function Sheet2({ open, defaultOpen, onOpenChange, side = "right", wide, title, description, footer, closeLabel = "Close", className, children, ...rest }, forwardedRef) {
3250
+ import { forwardRef as forwardRef82, useId as useId28, useRef as useRef10 } from "react";
3251
+ import { jsx as jsx84, jsxs as jsxs67 } from "react/jsx-runtime";
3252
+ var Sheet = forwardRef82(function Sheet2({ open, defaultOpen, onOpenChange, side = "right", wide, title, description, footer, closeLabel = "Close", className, children, ...rest }, forwardedRef) {
3200
3253
  const inner = useRef10(null);
3201
3254
  const ref = useMergedRef(inner, forwardedRef);
3202
3255
  const titleId = useId28();
@@ -3205,7 +3258,7 @@ var Sheet = forwardRef79(function Sheet2({ open, defaultOpen, onOpenChange, side
3205
3258
  rest.onClick?.(e);
3206
3259
  if (e.target === e.currentTarget) dlg.close();
3207
3260
  };
3208
- return /* @__PURE__ */ jsx81(
3261
+ return /* @__PURE__ */ jsx84(
3209
3262
  "dialog",
3210
3263
  {
3211
3264
  ref,
@@ -3215,57 +3268,57 @@ var Sheet = forwardRef79(function Sheet2({ open, defaultOpen, onOpenChange, side
3215
3268
  ...rest,
3216
3269
  onClick,
3217
3270
  onClose: dlg.onClose,
3218
- children: /* @__PURE__ */ jsx81(DialogContext.Provider, { value: { close: dlg.close }, children: /* @__PURE__ */ jsxs66("div", { className: cx("oc-sheet-content", wide && "oc-sheet-content--wide"), children: [
3219
- /* @__PURE__ */ jsx81("button", { className: "oc-sheet-close", type: "button", "aria-label": closeLabel, onClick: dlg.close, children: "\xD7" }),
3220
- (title != null || description != null) && /* @__PURE__ */ jsxs66("div", { className: "oc-sheet-header", children: [
3221
- title != null && /* @__PURE__ */ jsx81("h2", { className: "oc-sheet-title", id: titleId, children: title }),
3222
- description != null && /* @__PURE__ */ jsx81("p", { className: "oc-sheet-description", children: description })
3271
+ children: /* @__PURE__ */ jsx84(DialogContext.Provider, { value: { close: dlg.close }, children: /* @__PURE__ */ jsxs67("div", { className: cx("oc-sheet-content", wide && "oc-sheet-content--wide"), children: [
3272
+ /* @__PURE__ */ jsx84("button", { className: "oc-sheet-close", type: "button", "aria-label": closeLabel, onClick: dlg.close, children: "\xD7" }),
3273
+ (title != null || description != null) && /* @__PURE__ */ jsxs67("div", { className: "oc-sheet-header", children: [
3274
+ title != null && /* @__PURE__ */ jsx84("h2", { className: "oc-sheet-title", id: titleId, children: title }),
3275
+ description != null && /* @__PURE__ */ jsx84("p", { className: "oc-sheet-description", children: description })
3223
3276
  ] }),
3224
- /* @__PURE__ */ jsx81("div", { className: "oc-sheet-body", children }),
3225
- footer != null && /* @__PURE__ */ jsx81("div", { className: "oc-sheet-footer", children: footer })
3277
+ /* @__PURE__ */ jsx84("div", { className: "oc-sheet-body", children }),
3278
+ footer != null && /* @__PURE__ */ jsx84("div", { className: "oc-sheet-footer", children: footer })
3226
3279
  ] }) })
3227
3280
  }
3228
3281
  );
3229
3282
  });
3230
3283
 
3231
3284
  // src/components/Sidebar.tsx
3232
- import { forwardRef as forwardRef80 } from "react";
3233
- import { Fragment as Fragment18, jsx as jsx82, jsxs as jsxs67 } from "react/jsx-runtime";
3234
- var Sidebar = forwardRef80(function Sidebar2({ collapsed, right, floating, dark, header, footer, className, children, ...rest }, ref) {
3235
- return /* @__PURE__ */ jsxs67(
3285
+ import { forwardRef as forwardRef83 } from "react";
3286
+ import { Fragment as Fragment18, jsx as jsx85, jsxs as jsxs68 } from "react/jsx-runtime";
3287
+ var Sidebar = forwardRef83(function Sidebar2({ collapsed, right, floating, dark, header, footer, className, children, ...rest }, ref) {
3288
+ return /* @__PURE__ */ jsxs68(
3236
3289
  "aside",
3237
3290
  {
3238
3291
  ref,
3239
3292
  className: cx("oc-sidebar", collapsed && "oc-sidebar--collapsed", right && "oc-sidebar--right", floating && "oc-sidebar--floating", dark && "oc-sidebar--dark", className),
3240
3293
  ...rest,
3241
3294
  children: [
3242
- header != null && /* @__PURE__ */ jsx82("div", { className: "oc-sidebar-header", children: header }),
3243
- /* @__PURE__ */ jsx82("div", { className: "oc-sidebar-content", children }),
3244
- footer != null && /* @__PURE__ */ jsx82("div", { className: "oc-sidebar-footer", children: footer })
3295
+ header != null && /* @__PURE__ */ jsx85("div", { className: "oc-sidebar-header", children: header }),
3296
+ /* @__PURE__ */ jsx85("div", { className: "oc-sidebar-content", children }),
3297
+ footer != null && /* @__PURE__ */ jsx85("div", { className: "oc-sidebar-footer", children: footer })
3245
3298
  ]
3246
3299
  }
3247
3300
  );
3248
3301
  });
3249
- var SidebarGroup = forwardRef80(function SidebarGroup2({ label, className, children, ...rest }, ref) {
3250
- return /* @__PURE__ */ jsxs67("div", { ref, className: cx("oc-sidebar-group", className), ...rest, children: [
3251
- label != null && /* @__PURE__ */ jsx82("div", { className: "oc-sidebar-group-label", children: label }),
3302
+ var SidebarGroup = forwardRef83(function SidebarGroup2({ label, className, children, ...rest }, ref) {
3303
+ return /* @__PURE__ */ jsxs68("div", { ref, className: cx("oc-sidebar-group", className), ...rest, children: [
3304
+ label != null && /* @__PURE__ */ jsx85("div", { className: "oc-sidebar-group-label", children: label }),
3252
3305
  children
3253
3306
  ] });
3254
3307
  });
3255
3308
  function SidebarSeparator({ className, ...rest }) {
3256
- return /* @__PURE__ */ jsx82("div", { className: cx("oc-sidebar-separator", className), ...rest });
3309
+ return /* @__PURE__ */ jsx85("div", { className: cx("oc-sidebar-separator", className), ...rest });
3257
3310
  }
3258
- var SidebarMenu = forwardRef80(function SidebarMenu2({ className, ...rest }, ref) {
3259
- return /* @__PURE__ */ jsx82("ul", { ref, className: cx("oc-sidebar-menu", className), ...rest });
3311
+ var SidebarMenu = forwardRef83(function SidebarMenu2({ className, ...rest }, ref) {
3312
+ return /* @__PURE__ */ jsx85("ul", { ref, className: cx("oc-sidebar-menu", className), ...rest });
3260
3313
  });
3261
3314
  function SidebarMenuItem(props) {
3262
- return /* @__PURE__ */ jsx82("li", { ...props });
3315
+ return /* @__PURE__ */ jsx85("li", { ...props });
3263
3316
  }
3264
- var SidebarMenuButton = forwardRef80(function SidebarMenuButton2({ icon, badge, current, disabled, size = "md", label = true, className, children, href, ...rest }, ref) {
3265
- const content = /* @__PURE__ */ jsxs67(Fragment18, { children: [
3317
+ var SidebarMenuButton = forwardRef83(function SidebarMenuButton2({ icon, badge, current, disabled, size = "md", label = true, className, children, href, ...rest }, ref) {
3318
+ const content = /* @__PURE__ */ jsxs68(Fragment18, { children: [
3266
3319
  icon,
3267
- label ? /* @__PURE__ */ jsx82("span", { className: "oc-sidebar-menu-label", children }) : children,
3268
- badge != null && /* @__PURE__ */ jsx82("span", { className: "oc-sidebar-menu-badge", children: badge })
3320
+ label ? /* @__PURE__ */ jsx85("span", { className: "oc-sidebar-menu-label", children }) : children,
3321
+ badge != null && /* @__PURE__ */ jsx85("span", { className: "oc-sidebar-menu-badge", children: badge })
3269
3322
  ] });
3270
3323
  const props = {
3271
3324
  className: cx("oc-sidebar-menu-button", size === "lg" && "oc-sidebar-menu-button--lg", className),
@@ -3273,13 +3326,13 @@ var SidebarMenuButton = forwardRef80(function SidebarMenuButton2({ icon, badge,
3273
3326
  "aria-disabled": disabled ? true : void 0
3274
3327
  };
3275
3328
  if (href === void 0) {
3276
- return /* @__PURE__ */ jsx82("button", { type: "button", ...props, ...rest, children: content });
3329
+ return /* @__PURE__ */ jsx85("button", { type: "button", ...props, ...rest, children: content });
3277
3330
  }
3278
- return /* @__PURE__ */ jsx82("a", { ref, href, ...props, ...rest, children: content });
3331
+ return /* @__PURE__ */ jsx85("a", { ref, href, ...props, ...rest, children: content });
3279
3332
  });
3280
- var SidebarCollapsible = forwardRef80(function SidebarCollapsible2({ icon, label, open, defaultOpen, onOpenChange, className, children, ...rest }, ref) {
3333
+ var SidebarCollapsible = forwardRef83(function SidebarCollapsible2({ icon, label, open, defaultOpen, onOpenChange, className, children, ...rest }, ref) {
3281
3334
  const [isOpen, setOpen] = useControllable(open, defaultOpen ?? false, onOpenChange);
3282
- return /* @__PURE__ */ jsxs67(
3335
+ return /* @__PURE__ */ jsxs68(
3283
3336
  "details",
3284
3337
  {
3285
3338
  ref,
@@ -3290,30 +3343,30 @@ var SidebarCollapsible = forwardRef80(function SidebarCollapsible2({ icon, label
3290
3343
  },
3291
3344
  ...rest,
3292
3345
  children: [
3293
- /* @__PURE__ */ jsxs67("summary", { className: "oc-sidebar-menu-button", children: [
3346
+ /* @__PURE__ */ jsxs68("summary", { className: "oc-sidebar-menu-button", children: [
3294
3347
  icon,
3295
- /* @__PURE__ */ jsx82("span", { className: "oc-sidebar-menu-label", children: label })
3348
+ /* @__PURE__ */ jsx85("span", { className: "oc-sidebar-menu-label", children: label })
3296
3349
  ] }),
3297
- /* @__PURE__ */ jsx82("ul", { className: "oc-sidebar-menu-sub", children })
3350
+ /* @__PURE__ */ jsx85("ul", { className: "oc-sidebar-menu-sub", children })
3298
3351
  ]
3299
3352
  }
3300
3353
  );
3301
3354
  });
3302
3355
 
3303
3356
  // src/components/Skeleton.tsx
3304
- import { forwardRef as forwardRef81 } from "react";
3305
- import { jsx as jsx83 } from "react/jsx-runtime";
3306
- var Skeleton = forwardRef81(function Skeleton2({ variant, className, ...rest }, ref) {
3307
- return /* @__PURE__ */ jsx83("div", { ref, className: cx("oc-skeleton", variant && `oc-skeleton--${variant}`, className), ...rest });
3357
+ import { forwardRef as forwardRef84 } from "react";
3358
+ import { jsx as jsx86 } from "react/jsx-runtime";
3359
+ var Skeleton = forwardRef84(function Skeleton2({ variant, className, ...rest }, ref) {
3360
+ return /* @__PURE__ */ jsx86("div", { ref, className: cx("oc-skeleton", variant && `oc-skeleton--${variant}`, className), ...rest });
3308
3361
  });
3309
3362
 
3310
3363
  // src/components/SortableRow.tsx
3311
- import { forwardRef as forwardRef82 } from "react";
3312
- import { jsx as jsx84, jsxs as jsxs68 } from "react/jsx-runtime";
3313
- var SortableRow = forwardRef82(function SortableRow2({ gripLabel, dragging, drop, locked, grabbed, onGripKeyDown, className, children, ...rest }, ref) {
3364
+ import { forwardRef as forwardRef85 } from "react";
3365
+ import { jsx as jsx87, jsxs as jsxs69 } from "react/jsx-runtime";
3366
+ var SortableRow = forwardRef85(function SortableRow2({ gripLabel, dragging, drop, locked, grabbed, onGripKeyDown, className, children, ...rest }, ref) {
3314
3367
  const cls = cx("oc-sortable-row", dragging && "is-dragging", drop && `is-drop-${drop}`, className);
3315
- return /* @__PURE__ */ jsxs68("tr", { ref, className: cls, draggable: locked ? void 0 : true, ...rest, children: [
3316
- /* @__PURE__ */ jsx84("td", { className: "oc-sortable-row-grip-cell", children: /* @__PURE__ */ jsx84(
3368
+ return /* @__PURE__ */ jsxs69("tr", { ref, className: cls, draggable: locked ? void 0 : true, ...rest, children: [
3369
+ /* @__PURE__ */ jsx87("td", { className: "oc-sortable-row-grip-cell", children: /* @__PURE__ */ jsx87(
3317
3370
  "button",
3318
3371
  {
3319
3372
  className: "oc-sortable-row-grip",
@@ -3329,64 +3382,87 @@ var SortableRow = forwardRef82(function SortableRow2({ gripLabel, dragging, drop
3329
3382
  });
3330
3383
 
3331
3384
  // src/components/StackCard.tsx
3332
- import { forwardRef as forwardRef83 } from "react";
3333
- import { jsx as jsx85, jsxs as jsxs69 } from "react/jsx-runtime";
3334
- var StackCard = forwardRef83(function StackCard2({ title, href, meta, count, panel, thumb, className, ...rest }, ref) {
3335
- return /* @__PURE__ */ jsxs69("article", { ref, className: cx("oc-stack-card", panel && "oc-stack-card--panel", className), ...rest, children: [
3336
- /* @__PURE__ */ jsxs69("div", { className: "oc-stack-card__deck", children: [
3337
- /* @__PURE__ */ jsx85(MediaThumb, { ...thumb }),
3338
- count != null && /* @__PURE__ */ jsx85("span", { className: "oc-stack-card__count", children: count })
3385
+ import { forwardRef as forwardRef86 } from "react";
3386
+ import { jsx as jsx88, jsxs as jsxs70 } from "react/jsx-runtime";
3387
+ var StackCard = forwardRef86(function StackCard2({ title, href, meta, count, panel, thumb, className, ...rest }, ref) {
3388
+ return /* @__PURE__ */ jsxs70("article", { ref, className: cx("oc-stack-card", panel && "oc-stack-card--panel", className), ...rest, children: [
3389
+ /* @__PURE__ */ jsxs70("div", { className: "oc-stack-card__deck", children: [
3390
+ /* @__PURE__ */ jsx88(MediaThumb, { ...thumb }),
3391
+ count != null && /* @__PURE__ */ jsx88("span", { className: "oc-stack-card__count", children: count })
3339
3392
  ] }),
3340
- /* @__PURE__ */ jsxs69("div", { children: [
3341
- /* @__PURE__ */ jsx85("h3", { className: "oc-stack-card__title", children: /* @__PURE__ */ jsx85("a", { href, children: title }) }),
3342
- meta != null && /* @__PURE__ */ jsx85("p", { className: "oc-stack-card__meta", children: meta })
3393
+ /* @__PURE__ */ jsxs70("div", { children: [
3394
+ /* @__PURE__ */ jsx88("h3", { className: "oc-stack-card__title", children: /* @__PURE__ */ jsx88("a", { href, children: title }) }),
3395
+ meta != null && /* @__PURE__ */ jsx88("p", { className: "oc-stack-card__meta", children: meta })
3343
3396
  ] })
3344
3397
  ] });
3345
3398
  });
3346
3399
 
3347
3400
  // src/components/StackList.tsx
3348
- import { forwardRef as forwardRef84 } from "react";
3349
- import { Fragment as Fragment19, jsx as jsx86, jsxs as jsxs70 } from "react/jsx-runtime";
3401
+ import { forwardRef as forwardRef87 } from "react";
3402
+ import { Fragment as Fragment19, jsx as jsx89, jsxs as jsxs71 } from "react/jsx-runtime";
3350
3403
  var isItem = (v) => typeof v === "object" && v !== null && "label" in v;
3351
- var StackList = forwardRef84(function StackList2({ items, neutral = false, size = "default", className, ...rest }, ref) {
3352
- return /* @__PURE__ */ jsx86("ul", { ref, className: cx("oc-stack-list", neutral && "oc-stack-list--neutral", size === "sm" && "oc-stack-list--sm", className), ...rest, children: items.map((item, i) => /* @__PURE__ */ jsx86("li", { className: "oc-stack-list__item", children: isItem(item) ? /* @__PURE__ */ jsxs70(Fragment19, { children: [
3353
- item.icon != null && /* @__PURE__ */ jsx86("span", { className: "oc-stack-list__icon", "aria-hidden": "true", children: item.icon }),
3404
+ var StackList = forwardRef87(function StackList2({ items, neutral = false, size = "default", className, ...rest }, ref) {
3405
+ return /* @__PURE__ */ jsx89("ul", { ref, className: cx("oc-stack-list", neutral && "oc-stack-list--neutral", size === "sm" && "oc-stack-list--sm", className), ...rest, children: items.map((item, i) => /* @__PURE__ */ jsx89("li", { className: "oc-stack-list__item", children: isItem(item) ? /* @__PURE__ */ jsxs71(Fragment19, { children: [
3406
+ item.icon != null && /* @__PURE__ */ jsx89("span", { className: "oc-stack-list__icon", "aria-hidden": "true", children: item.icon }),
3354
3407
  item.label
3355
3408
  ] }) : item }, i)) });
3356
3409
  });
3357
3410
 
3358
3411
  // src/components/StatCard.tsx
3359
- import { forwardRef as forwardRef85 } from "react";
3360
- import { Fragment as Fragment20, jsx as jsx87, jsxs as jsxs71 } from "react/jsx-runtime";
3361
- var StatCardGrid = forwardRef85(function StatCardGrid2({ className, ...rest }, ref) {
3362
- return /* @__PURE__ */ jsx87("div", { ref, className: cx("oc-stat-card-grid", className), ...rest });
3412
+ import { forwardRef as forwardRef88 } from "react";
3413
+ import { Fragment as Fragment20, jsx as jsx90, jsxs as jsxs72 } from "react/jsx-runtime";
3414
+ var StatCardGrid = forwardRef88(function StatCardGrid2({ className, ...rest }, ref) {
3415
+ return /* @__PURE__ */ jsx90("div", { ref, className: cx("oc-stat-card-grid", className), ...rest });
3363
3416
  });
3364
3417
  function StatCard({ value, label, icon, trend, trendDirection = "up", tone = "default", stripe, href, onClick, className, ...rest }) {
3365
3418
  const cls = cx("oc-stat-card", tone !== "default" && `oc-stat-card--${tone}`, stripe && "oc-stat-card--stripe", className);
3366
- const content = /* @__PURE__ */ jsxs71(Fragment20, { children: [
3367
- icon != null && /* @__PURE__ */ jsx87("span", { className: "oc-stat-card-icon", "aria-hidden": "true", children: icon }),
3368
- /* @__PURE__ */ jsxs71("span", { className: "oc-stat-card-body", children: [
3369
- /* @__PURE__ */ jsxs71("span", { className: "oc-stat-card-value", children: [
3419
+ const content = /* @__PURE__ */ jsxs72(Fragment20, { children: [
3420
+ icon != null && /* @__PURE__ */ jsx90("span", { className: "oc-stat-card-icon", "aria-hidden": "true", children: icon }),
3421
+ /* @__PURE__ */ jsxs72("span", { className: "oc-stat-card-body", children: [
3422
+ /* @__PURE__ */ jsxs72("span", { className: "oc-stat-card-value", children: [
3370
3423
  value,
3371
- trend != null && /* @__PURE__ */ jsx87("span", { className: `oc-stat-card-trend oc-stat-card-trend--${trendDirection}`, children: trend })
3424
+ trend != null && /* @__PURE__ */ jsx90("span", { className: `oc-stat-card-trend oc-stat-card-trend--${trendDirection}`, children: trend })
3372
3425
  ] }),
3373
- /* @__PURE__ */ jsx87("span", { className: "oc-stat-card-label", children: label })
3426
+ /* @__PURE__ */ jsx90("span", { className: "oc-stat-card-label", children: label })
3374
3427
  ] })
3375
3428
  ] });
3376
- if (href !== void 0) return /* @__PURE__ */ jsx87("a", { className: cls, href, ...rest, children: content });
3377
- if (onClick) return /* @__PURE__ */ jsx87("button", { className: cls, type: "button", onClick, ...rest, children: content });
3378
- return /* @__PURE__ */ jsx87("div", { className: cls, ...rest, children: content });
3429
+ if (href !== void 0) return /* @__PURE__ */ jsx90("a", { className: cls, href, ...rest, children: content });
3430
+ if (onClick) return /* @__PURE__ */ jsx90("button", { className: cls, type: "button", onClick, ...rest, children: content });
3431
+ return /* @__PURE__ */ jsx90("div", { className: cls, ...rest, children: content });
3379
3432
  }
3380
3433
 
3434
+ // src/components/StatusDot.tsx
3435
+ import { forwardRef as forwardRef89 } from "react";
3436
+ import { jsx as jsx91, jsxs as jsxs73 } from "react/jsx-runtime";
3437
+ var StatusDot = forwardRef89(function StatusDot2({ tone = "default", size = "md", label, className, ...rest }, ref) {
3438
+ const a11y = label ? { role: "img", "aria-label": label } : { "aria-hidden": true };
3439
+ return /* @__PURE__ */ jsx91(
3440
+ "span",
3441
+ {
3442
+ ref,
3443
+ className: cx("oc-status-dot", tone !== "default" && `oc-status-dot--${tone}`, size !== "md" && `oc-status-dot--${size}`, className),
3444
+ ...a11y,
3445
+ ...rest
3446
+ }
3447
+ );
3448
+ });
3449
+ var Status = forwardRef89(function Status2({ tone = "default", meta, className, children, ...rest }, ref) {
3450
+ return /* @__PURE__ */ jsxs73("p", { ref, className: cx("oc-status", className), ...rest, children: [
3451
+ /* @__PURE__ */ jsx91(StatusDot, { tone }),
3452
+ /* @__PURE__ */ jsx91("span", { className: "oc-status__text", children }),
3453
+ meta != null && /* @__PURE__ */ jsx91("span", { className: "oc-status__meta", children: meta })
3454
+ ] });
3455
+ });
3456
+
3381
3457
  // src/components/Stepper.tsx
3382
- import { forwardRef as forwardRef86 } from "react";
3383
- import { jsx as jsx88, jsxs as jsxs72 } from "react/jsx-runtime";
3384
- var Stepper = forwardRef86(function Stepper2({ steps, current, horizontal, onStepChange, className, ...rest }, ref) {
3385
- return /* @__PURE__ */ jsx88("ol", { ref, className: cx("oc-stepper", horizontal && "oc-stepper--horizontal", className), ...rest, children: steps.map((step, i) => {
3458
+ import { forwardRef as forwardRef90 } from "react";
3459
+ import { jsx as jsx92, jsxs as jsxs74 } from "react/jsx-runtime";
3460
+ var Stepper = forwardRef90(function Stepper2({ steps, current, horizontal, onStepChange, className, ...rest }, ref) {
3461
+ return /* @__PURE__ */ jsx92("ol", { ref, className: cx("oc-stepper", horizontal && "oc-stepper--horizontal", className), ...rest, children: steps.map((step, i) => {
3386
3462
  const done = i < current;
3387
3463
  const active = i === current;
3388
- const label = /* @__PURE__ */ jsx88("span", { className: "oc-stepper-label", children: step.label });
3389
- return /* @__PURE__ */ jsx88("li", { children: /* @__PURE__ */ jsx88(
3464
+ const label = /* @__PURE__ */ jsx92("span", { className: "oc-stepper-label", children: step.label });
3465
+ return /* @__PURE__ */ jsx92("li", { children: /* @__PURE__ */ jsx92(
3390
3466
  "button",
3391
3467
  {
3392
3468
  className: cx("oc-stepper-item", done && "oc-stepper-item--done", active && "oc-stepper-item--active"),
@@ -3394,9 +3470,9 @@ var Stepper = forwardRef86(function Stepper2({ steps, current, horizontal, onSte
3394
3470
  "aria-current": active ? "step" : void 0,
3395
3471
  disabled: i > current,
3396
3472
  onClick: () => onStepChange?.(i),
3397
- children: step.meta != null ? /* @__PURE__ */ jsxs72("span", { children: [
3473
+ children: step.meta != null ? /* @__PURE__ */ jsxs74("span", { children: [
3398
3474
  label,
3399
- /* @__PURE__ */ jsx88("span", { className: "oc-stepper-meta", children: step.meta })
3475
+ /* @__PURE__ */ jsx92("span", { className: "oc-stepper-meta", children: step.meta })
3400
3476
  ] }) : label
3401
3477
  }
3402
3478
  ) }, i);
@@ -3404,20 +3480,20 @@ var Stepper = forwardRef86(function Stepper2({ steps, current, horizontal, onSte
3404
3480
  });
3405
3481
 
3406
3482
  // src/components/Switch.tsx
3407
- import { forwardRef as forwardRef87 } from "react";
3408
- import { jsx as jsx89, jsxs as jsxs73 } from "react/jsx-runtime";
3409
- var Switch = forwardRef87(function Switch2({ labelClassName, className, ...rest }, ref) {
3410
- return /* @__PURE__ */ jsxs73("label", { className: cx("oc-switch", labelClassName), children: [
3411
- /* @__PURE__ */ jsx89("input", { ref, type: "checkbox", role: "switch", className, ...rest }),
3412
- /* @__PURE__ */ jsx89("span", { className: "oc-switch-track" })
3483
+ import { forwardRef as forwardRef91 } from "react";
3484
+ import { jsx as jsx93, jsxs as jsxs75 } from "react/jsx-runtime";
3485
+ var Switch = forwardRef91(function Switch2({ labelClassName, className, ...rest }, ref) {
3486
+ return /* @__PURE__ */ jsxs75("label", { className: cx("oc-switch", labelClassName), children: [
3487
+ /* @__PURE__ */ jsx93("input", { ref, type: "checkbox", role: "switch", className, ...rest }),
3488
+ /* @__PURE__ */ jsx93("span", { className: "oc-switch-track" })
3413
3489
  ] });
3414
3490
  });
3415
3491
 
3416
3492
  // src/components/Table.tsx
3417
- import { forwardRef as forwardRef88 } from "react";
3418
- import { jsx as jsx90, jsxs as jsxs74 } from "react/jsx-runtime";
3419
- var Table = forwardRef88(function Table2({ striped, compact, borderless, sticky, caption, wrapClassName, className, children, ...rest }, ref) {
3420
- return /* @__PURE__ */ jsx90("div", { className: cx("oc-table-wrap", wrapClassName), children: /* @__PURE__ */ jsxs74(
3493
+ import { forwardRef as forwardRef92 } from "react";
3494
+ import { jsx as jsx94, jsxs as jsxs76 } from "react/jsx-runtime";
3495
+ var Table = forwardRef92(function Table2({ striped, compact, borderless, sticky, caption, wrapClassName, className, children, ...rest }, ref) {
3496
+ return /* @__PURE__ */ jsx94("div", { className: cx("oc-table-wrap", wrapClassName), children: /* @__PURE__ */ jsxs76(
3421
3497
  "table",
3422
3498
  {
3423
3499
  ref,
@@ -3431,84 +3507,84 @@ var Table = forwardRef88(function Table2({ striped, compact, borderless, sticky,
3431
3507
  ),
3432
3508
  ...rest,
3433
3509
  children: [
3434
- caption != null && /* @__PURE__ */ jsx90("caption", { children: caption }),
3510
+ caption != null && /* @__PURE__ */ jsx94("caption", { children: caption }),
3435
3511
  children
3436
3512
  ]
3437
3513
  }
3438
3514
  ) });
3439
3515
  });
3440
- var TableSort = forwardRef88(function TableSort2({ className, ...rest }, ref) {
3441
- return /* @__PURE__ */ jsx90("a", { ref, className: cx("oc-table-sort", className), ...rest });
3516
+ var TableSort = forwardRef92(function TableSort2({ className, ...rest }, ref) {
3517
+ return /* @__PURE__ */ jsx94("a", { ref, className: cx("oc-table-sort", className), ...rest });
3442
3518
  });
3443
3519
  function TableActions({ className, ...rest }) {
3444
- return /* @__PURE__ */ jsx90("td", { className: cx("oc-table-actions", className), ...rest });
3520
+ return /* @__PURE__ */ jsx94("td", { className: cx("oc-table-actions", className), ...rest });
3445
3521
  }
3446
3522
  function TableRowAction({ tone = "default", className, ...props }) {
3447
3523
  const cls = cx("oc-table-row-action", tone !== "default" && `oc-table-row-action--${tone}`, className);
3448
- if (props.href !== void 0) return /* @__PURE__ */ jsx90("a", { className: cls, ...props });
3449
- return /* @__PURE__ */ jsx90("button", { type: "button", className: cls, ...props });
3524
+ if (props.href !== void 0) return /* @__PURE__ */ jsx94("a", { className: cls, ...props });
3525
+ return /* @__PURE__ */ jsx94("button", { type: "button", className: cls, ...props });
3450
3526
  }
3451
3527
  function TableEmpty({ colSpan, children, ...rest }) {
3452
- return /* @__PURE__ */ jsx90("tr", { className: "oc-table-empty", ...rest, children: /* @__PURE__ */ jsx90("td", { colSpan, children }) });
3528
+ return /* @__PURE__ */ jsx94("tr", { className: "oc-table-empty", ...rest, children: /* @__PURE__ */ jsx94("td", { colSpan, children }) });
3453
3529
  }
3454
3530
 
3455
3531
  // src/components/TableActions.tsx
3456
- import { forwardRef as forwardRef89, useId as useId29 } from "react";
3457
- import { Fragment as Fragment21, jsx as jsx91, jsxs as jsxs75 } from "react/jsx-runtime";
3532
+ import { forwardRef as forwardRef93, useId as useId29 } from "react";
3533
+ import { Fragment as Fragment21, jsx as jsx95, jsxs as jsxs77 } from "react/jsx-runtime";
3458
3534
  function TableActionIcon({ label, tone = "default", className, children, ...props }) {
3459
3535
  const cls = cx("oc-table-actions-icon", tone !== "default" && `oc-table-actions-icon--${tone}`, className);
3460
3536
  const common = { className: cls, "aria-label": label, title: label };
3461
3537
  if (props.href !== void 0) {
3462
- return /* @__PURE__ */ jsx91("a", { ...common, ...props, children });
3538
+ return /* @__PURE__ */ jsx95("a", { ...common, ...props, children });
3463
3539
  }
3464
- return /* @__PURE__ */ jsx91("button", { type: "button", ...common, ...props, children });
3540
+ return /* @__PURE__ */ jsx95("button", { type: "button", ...common, ...props, children });
3465
3541
  }
3466
- var TableActionsMenu = forwardRef89(function TableActionsMenu2({ label, id, className, children, ...rest }, ref) {
3542
+ var TableActionsMenu = forwardRef93(function TableActionsMenu2({ label, id, className, children, ...rest }, ref) {
3467
3543
  const auto = useId29();
3468
3544
  const menuId = id ?? `oc-table-actions-menu-${auto.replace(/:/g, "")}`;
3469
- return /* @__PURE__ */ jsxs75(Fragment21, { children: [
3470
- /* @__PURE__ */ jsx91("button", { className: "oc-table-actions-more", type: "button", "aria-label": label, popoverTarget: menuId }),
3471
- /* @__PURE__ */ jsx91("div", { ref, id: menuId, className: cx("oc-dropdown-menu", className), ...attrs({ popover: "" }), ...rest, children })
3545
+ return /* @__PURE__ */ jsxs77(Fragment21, { children: [
3546
+ /* @__PURE__ */ jsx95("button", { className: "oc-table-actions-more", type: "button", "aria-label": label, popoverTarget: menuId }),
3547
+ /* @__PURE__ */ jsx95("div", { ref, id: menuId, className: cx("oc-dropdown-menu", className), ...attrs({ popover: "" }), ...rest, children })
3472
3548
  ] });
3473
3549
  });
3474
3550
 
3475
3551
  // src/components/TableCompact.tsx
3476
- import { forwardRef as forwardRef90 } from "react";
3477
- import { jsx as jsx92, jsxs as jsxs76 } from "react/jsx-runtime";
3552
+ import { forwardRef as forwardRef94 } from "react";
3553
+ import { jsx as jsx96, jsxs as jsxs78 } from "react/jsx-runtime";
3478
3554
  var cellAttrs = (c) => ({
3479
3555
  "data-numeric": c.numeric ? "" : void 0,
3480
3556
  "data-wrap": c.wrap ? "" : void 0
3481
3557
  });
3482
- var TableCompact = forwardRef90(function TableCompact2({ columns, rows = [], footer, bordered, plain, className, children, ...rest }, ref) {
3558
+ var TableCompact = forwardRef94(function TableCompact2({ columns, rows = [], footer, bordered, plain, className, children, ...rest }, ref) {
3483
3559
  const cls = cx("oc-table-compact", bordered && "oc-table-compact--bordered", plain && "oc-table-compact--plain", className);
3484
- return /* @__PURE__ */ jsx92("div", { ref, className: cls, ...rest, children: columns ? /* @__PURE__ */ jsxs76("table", { className: "oc-table", children: [
3485
- /* @__PURE__ */ jsx92("thead", { children: /* @__PURE__ */ jsx92("tr", { children: columns.map((c) => /* @__PURE__ */ jsx92("th", { ...cellAttrs(c), children: c.label }, c.key)) }) }),
3486
- /* @__PURE__ */ jsx92("tbody", { children: rows.map((row, i) => /* @__PURE__ */ jsx92("tr", { children: columns.map((c) => /* @__PURE__ */ jsx92("td", { ...cellAttrs(c), children: row[c.key] }, c.key)) }, i)) }),
3487
- footer && /* @__PURE__ */ jsx92("tfoot", { children: /* @__PURE__ */ jsx92("tr", { children: columns.map((c) => /* @__PURE__ */ jsx92("td", { ...cellAttrs(c), children: footer[c.key] }, c.key)) }) })
3560
+ return /* @__PURE__ */ jsx96("div", { ref, className: cls, ...rest, children: columns ? /* @__PURE__ */ jsxs78("table", { className: "oc-table", children: [
3561
+ /* @__PURE__ */ jsx96("thead", { children: /* @__PURE__ */ jsx96("tr", { children: columns.map((c) => /* @__PURE__ */ jsx96("th", { ...cellAttrs(c), children: c.label }, c.key)) }) }),
3562
+ /* @__PURE__ */ jsx96("tbody", { children: rows.map((row, i) => /* @__PURE__ */ jsx96("tr", { children: columns.map((c) => /* @__PURE__ */ jsx96("td", { ...cellAttrs(c), children: row[c.key] }, c.key)) }, i)) }),
3563
+ footer && /* @__PURE__ */ jsx96("tfoot", { children: /* @__PURE__ */ jsx96("tr", { children: columns.map((c) => /* @__PURE__ */ jsx96("td", { ...cellAttrs(c), children: footer[c.key] }, c.key)) }) })
3488
3564
  ] }) : children });
3489
3565
  });
3490
3566
 
3491
3567
  // src/components/Tabs.tsx
3492
- import { forwardRef as forwardRef91, useId as useId30 } from "react";
3493
- import { jsx as jsx93, jsxs as jsxs77 } from "react/jsx-runtime";
3494
- var Tabs = forwardRef91(function Tabs2({ tabs, value, defaultValue, onChange, name, className, ...rest }, ref) {
3568
+ import { forwardRef as forwardRef95, useId as useId30 } from "react";
3569
+ import { jsx as jsx97, jsxs as jsxs79 } from "react/jsx-runtime";
3570
+ var Tabs = forwardRef95(function Tabs2({ tabs, value, defaultValue, onChange, name, className, ...rest }, ref) {
3495
3571
  const auto = useId30();
3496
3572
  const group = name ?? `oc-tabs-${auto.replace(/:/g, "")}`;
3497
3573
  const [current, setCurrent] = useControllable(value, defaultValue ?? tabs[0]?.value ?? "", onChange);
3498
- return /* @__PURE__ */ jsxs77("div", { ref, className: cx("oc-tabset", className), ...rest, children: [
3499
- /* @__PURE__ */ jsx93("div", { className: "oc-tab-list", role: "tablist", children: tabs.map((t) => /* @__PURE__ */ jsxs77("label", { className: "oc-tab-trigger", children: [
3500
- /* @__PURE__ */ jsx93("input", { type: "radio", name: group, value: t.value, checked: current === t.value, onChange: () => setCurrent(t.value) }),
3574
+ return /* @__PURE__ */ jsxs79("div", { ref, className: cx("oc-tabset", className), ...rest, children: [
3575
+ /* @__PURE__ */ jsx97("div", { className: "oc-tab-list", role: "tablist", children: tabs.map((t) => /* @__PURE__ */ jsxs79("label", { className: "oc-tab-trigger", children: [
3576
+ /* @__PURE__ */ jsx97("input", { type: "radio", name: group, value: t.value, checked: current === t.value, onChange: () => setCurrent(t.value) }),
3501
3577
  " ",
3502
3578
  t.label
3503
3579
  ] }, t.value)) }),
3504
- tabs.map((t) => /* @__PURE__ */ jsx93("div", { className: "oc-tab-panel", children: t.content }, t.value))
3580
+ tabs.map((t) => /* @__PURE__ */ jsx97("div", { className: "oc-tab-panel", children: t.content }, t.value))
3505
3581
  ] });
3506
3582
  });
3507
3583
 
3508
3584
  // src/components/TagInput.tsx
3509
- import { forwardRef as forwardRef92, useState as useState12 } from "react";
3510
- import { Fragment as Fragment22, jsx as jsx94, jsxs as jsxs78 } from "react/jsx-runtime";
3511
- var TagInput = forwardRef92(function TagInput2({ value, defaultValue = [], onChange, suggestions, placeholder = "Add tag...", label = "Add tag", disabled, className, ...rest }, ref) {
3585
+ import { forwardRef as forwardRef96, useState as useState12 } from "react";
3586
+ import { Fragment as Fragment22, jsx as jsx98, jsxs as jsxs80 } from "react/jsx-runtime";
3587
+ var TagInput = forwardRef96(function TagInput2({ value, defaultValue = [], onChange, suggestions, placeholder = "Add tag...", label = "Add tag", disabled, className, ...rest }, ref) {
3512
3588
  const [tags, setTags] = useControllable(value, defaultValue, onChange);
3513
3589
  const [draft, setDraft] = useState12("");
3514
3590
  const add = (raw) => {
@@ -3526,14 +3602,14 @@ var TagInput = forwardRef92(function TagInput2({ value, defaultValue = [], onCha
3526
3602
  }
3527
3603
  };
3528
3604
  const open = suggestions?.filter((s) => !tags.includes(s)) ?? [];
3529
- return /* @__PURE__ */ jsxs78(Fragment22, { children: [
3530
- /* @__PURE__ */ jsxs78("div", { ref, className: cx("oc-tag-input", className), ...rest, children: [
3531
- tags.map((tag) => /* @__PURE__ */ jsxs78("span", { className: "oc-tag", children: [
3605
+ return /* @__PURE__ */ jsxs80(Fragment22, { children: [
3606
+ /* @__PURE__ */ jsxs80("div", { ref, className: cx("oc-tag-input", className), ...rest, children: [
3607
+ tags.map((tag) => /* @__PURE__ */ jsxs80("span", { className: "oc-tag", children: [
3532
3608
  tag,
3533
3609
  " ",
3534
- /* @__PURE__ */ jsx94("button", { className: "oc-tag-remove", type: "button", "aria-label": `Remove ${tag}`, disabled, onClick: () => remove(tag), children: "\xD7" })
3610
+ /* @__PURE__ */ jsx98("button", { className: "oc-tag-remove", type: "button", "aria-label": `Remove ${tag}`, disabled, onClick: () => remove(tag), children: "\xD7" })
3535
3611
  ] }, tag)),
3536
- /* @__PURE__ */ jsx94(
3612
+ /* @__PURE__ */ jsx98(
3537
3613
  "input",
3538
3614
  {
3539
3615
  type: "text",
@@ -3547,43 +3623,43 @@ var TagInput = forwardRef92(function TagInput2({ value, defaultValue = [], onCha
3547
3623
  }
3548
3624
  )
3549
3625
  ] }),
3550
- open.length > 0 && /* @__PURE__ */ jsx94("div", { className: "oc-tag-suggestions", children: open.map((s) => /* @__PURE__ */ jsx94("button", { type: "button", disabled, onClick: () => add(s), children: s }, s)) })
3626
+ open.length > 0 && /* @__PURE__ */ jsx98("div", { className: "oc-tag-suggestions", children: open.map((s) => /* @__PURE__ */ jsx98("button", { type: "button", disabled, onClick: () => add(s), children: s }, s)) })
3551
3627
  ] });
3552
3628
  });
3553
3629
 
3554
3630
  // src/components/TerminalLog.tsx
3555
- import { forwardRef as forwardRef93, useEffect as useEffect8, useRef as useRef11 } from "react";
3556
- import { jsx as jsx95, jsxs as jsxs79 } from "react/jsx-runtime";
3557
- var TerminalLog = forwardRef93(function TerminalLog2({ lines, title, status, prompt, height, autoScroll = true, className, style, "aria-label": label = "Log output", ...rest }, ref) {
3631
+ import { forwardRef as forwardRef97, useEffect as useEffect8, useRef as useRef11 } from "react";
3632
+ import { jsx as jsx99, jsxs as jsxs81 } from "react/jsx-runtime";
3633
+ var TerminalLog = forwardRef97(function TerminalLog2({ lines, title, status, prompt, height, autoScroll = true, className, style, "aria-label": label = "Log output", ...rest }, ref) {
3558
3634
  const body = useRef11(null);
3559
3635
  useEffect8(() => {
3560
3636
  if (autoScroll && body.current) body.current.scrollTop = body.current.scrollHeight;
3561
3637
  }, [lines.length, autoScroll]);
3562
3638
  const vars = height ? { "--oc-terminal-log-height": height } : void 0;
3563
- return /* @__PURE__ */ jsxs79("div", { ref, className: cx("oc-terminal-log", className), style: { ...vars, ...style }, ...rest, children: [
3564
- /* @__PURE__ */ jsxs79("div", { className: "oc-terminal-log__bar", children: [
3565
- /* @__PURE__ */ jsx95("i", {}),
3566
- /* @__PURE__ */ jsx95("i", {}),
3567
- /* @__PURE__ */ jsx95("i", {}),
3568
- title != null && /* @__PURE__ */ jsx95("span", { className: "oc-terminal-log__title", children: title }),
3569
- status != null && /* @__PURE__ */ jsx95("span", { className: "oc-terminal-log__status", children: status })
3639
+ return /* @__PURE__ */ jsxs81("div", { ref, className: cx("oc-terminal-log", className), style: { ...vars, ...style }, ...rest, children: [
3640
+ /* @__PURE__ */ jsxs81("div", { className: "oc-terminal-log__bar", children: [
3641
+ /* @__PURE__ */ jsx99("i", {}),
3642
+ /* @__PURE__ */ jsx99("i", {}),
3643
+ /* @__PURE__ */ jsx99("i", {}),
3644
+ title != null && /* @__PURE__ */ jsx99("span", { className: "oc-terminal-log__title", children: title }),
3645
+ status != null && /* @__PURE__ */ jsx99("span", { className: "oc-terminal-log__status", children: status })
3570
3646
  ] }),
3571
- /* @__PURE__ */ jsxs79("div", { ref: body, className: "oc-terminal-log__body", role: "log", "aria-live": "polite", "aria-label": label, tabIndex: 0, children: [
3572
- lines.map((l, i) => /* @__PURE__ */ jsxs79("p", { className: cx("oc-terminal-log__line", `oc-terminal-log__line--${l.level}`), children: [
3573
- l.time && /* @__PURE__ */ jsx95("time", { className: "oc-terminal-log__time", children: l.time }),
3574
- /* @__PURE__ */ jsx95("span", { className: "oc-terminal-log__level", children: l.label ?? (l.level === "success" ? "ok" : l.level) }),
3575
- /* @__PURE__ */ jsx95("span", { className: "oc-terminal-log__msg", children: l.message })
3647
+ /* @__PURE__ */ jsxs81("div", { ref: body, className: "oc-terminal-log__body", role: "log", "aria-live": "polite", "aria-label": label, tabIndex: 0, children: [
3648
+ lines.map((l, i) => /* @__PURE__ */ jsxs81("p", { className: cx("oc-terminal-log__line", `oc-terminal-log__line--${l.level}`), children: [
3649
+ l.time && /* @__PURE__ */ jsx99("time", { className: "oc-terminal-log__time", children: l.time }),
3650
+ /* @__PURE__ */ jsx99("span", { className: "oc-terminal-log__level", children: l.label ?? (l.level === "success" ? "ok" : l.level) }),
3651
+ /* @__PURE__ */ jsx99("span", { className: "oc-terminal-log__msg", children: l.message })
3576
3652
  ] }, i)),
3577
- prompt != null && prompt !== false && /* @__PURE__ */ jsx95("p", { className: "oc-terminal-log__prompt", children: prompt === true ? null : prompt })
3653
+ prompt != null && prompt !== false && /* @__PURE__ */ jsx99("p", { className: "oc-terminal-log__prompt", children: prompt === true ? null : prompt })
3578
3654
  ] })
3579
3655
  ] });
3580
3656
  });
3581
3657
 
3582
3658
  // src/components/Textarea.tsx
3583
- import { forwardRef as forwardRef94 } from "react";
3584
- import { jsx as jsx96 } from "react/jsx-runtime";
3585
- var Textarea = forwardRef94(function Textarea2({ error, className, ...rest }, ref) {
3586
- return /* @__PURE__ */ jsx96(
3659
+ import { forwardRef as forwardRef98 } from "react";
3660
+ import { jsx as jsx100 } from "react/jsx-runtime";
3661
+ var Textarea = forwardRef98(function Textarea2({ error, className, ...rest }, ref) {
3662
+ return /* @__PURE__ */ jsx100(
3587
3663
  "textarea",
3588
3664
  {
3589
3665
  ref,
@@ -3595,24 +3671,24 @@ var Textarea = forwardRef94(function Textarea2({ error, className, ...rest }, re
3595
3671
  });
3596
3672
 
3597
3673
  // src/components/ThemeSwitch.tsx
3598
- import { forwardRef as forwardRef95, useId as useId31 } from "react";
3599
- import { jsx as jsx97, jsxs as jsxs80 } from "react/jsx-runtime";
3674
+ import { forwardRef as forwardRef99, useId as useId31 } from "react";
3675
+ import { jsx as jsx101, jsxs as jsxs82 } from "react/jsx-runtime";
3600
3676
  var LABELS = { system: "System", light: "Light", dark: "Dark" };
3601
- var ThemeSwitch = forwardRef95(function ThemeSwitch2({ value, defaultValue = "system", onChange, modes = ["system", "light", "dark"], name, as = "fieldset", className, "aria-label": ariaLabel = "Color theme", ...rest }, ref) {
3677
+ var ThemeSwitch = forwardRef99(function ThemeSwitch2({ value, defaultValue = "system", onChange, modes = ["system", "light", "dark"], name, as = "fieldset", className, "aria-label": ariaLabel = "Color theme", ...rest }, ref) {
3602
3678
  const auto = useId31();
3603
3679
  const group = name ?? `oc-theme-${auto.replace(/:/g, "")}`;
3604
3680
  const [current, setCurrent] = useControllable(value, defaultValue, onChange);
3605
- const items = modes.map((m) => /* @__PURE__ */ jsxs80("label", { children: [
3606
- /* @__PURE__ */ jsx97("input", { type: "radio", name: group, value: m, checked: current === m, onChange: () => setCurrent(m) }),
3681
+ const items = modes.map((m) => /* @__PURE__ */ jsxs82("label", { children: [
3682
+ /* @__PURE__ */ jsx101("input", { type: "radio", name: group, value: m, checked: current === m, onChange: () => setCurrent(m) }),
3607
3683
  " ",
3608
3684
  LABELS[m]
3609
3685
  ] }, m));
3610
- return as === "div" ? /* @__PURE__ */ jsx97("div", { ref, className: cx("oc-theme-switch", className), role: "radiogroup", "aria-label": ariaLabel, ...rest, children: items }) : /* @__PURE__ */ jsx97("fieldset", { ref, className: cx("oc-theme-switch", className), "aria-label": ariaLabel, ...rest, children: items });
3686
+ return as === "div" ? /* @__PURE__ */ jsx101("div", { ref, className: cx("oc-theme-switch", className), role: "radiogroup", "aria-label": ariaLabel, ...rest, children: items }) : /* @__PURE__ */ jsx101("fieldset", { ref, className: cx("oc-theme-switch", className), "aria-label": ariaLabel, ...rest, children: items });
3611
3687
  });
3612
3688
 
3613
3689
  // src/components/TimeInput.tsx
3614
- import { forwardRef as forwardRef96, useId as useId32 } from "react";
3615
- import { Fragment as Fragment23, jsx as jsx98, jsxs as jsxs81 } from "react/jsx-runtime";
3690
+ import { forwardRef as forwardRef100, useId as useId32 } from "react";
3691
+ import { Fragment as Fragment23, jsx as jsx102, jsxs as jsxs83 } from "react/jsx-runtime";
3616
3692
  function formatTime24h(raw) {
3617
3693
  const digits = raw.replace(/\D/g, "").slice(0, 4);
3618
3694
  return digits.length <= 2 ? digits : `${digits.slice(0, 2)}:${digits.slice(2)}`;
@@ -3623,11 +3699,11 @@ function completeTime(text) {
3623
3699
  if (digits.length === 3) return `0${digits[0]}:${digits.slice(1)}`;
3624
3700
  return text;
3625
3701
  }
3626
- var TimeInput = forwardRef96(function TimeInput2({ value, defaultValue, onChange, slots, error, className, onBlur, placeholder = "hh:mm", ...rest }, ref) {
3702
+ var TimeInput = forwardRef100(function TimeInput2({ value, defaultValue, onChange, slots, error, className, onBlur, placeholder = "hh:mm", ...rest }, ref) {
3627
3703
  const listId = `oc-time-${useId32().replace(/:/g, "")}`;
3628
3704
  const [current, setCurrent] = useControllable(value, defaultValue ?? "", onChange);
3629
- return /* @__PURE__ */ jsxs81(Fragment23, { children: [
3630
- /* @__PURE__ */ jsx98(
3705
+ return /* @__PURE__ */ jsxs83(Fragment23, { children: [
3706
+ /* @__PURE__ */ jsx102(
3631
3707
  "input",
3632
3708
  {
3633
3709
  ref,
@@ -3652,37 +3728,60 @@ var TimeInput = forwardRef96(function TimeInput2({ value, defaultValue, onChange
3652
3728
  ...rest
3653
3729
  }
3654
3730
  ),
3655
- slots?.length ? /* @__PURE__ */ jsx98("datalist", { id: listId, children: slots.map((s) => /* @__PURE__ */ jsx98("option", { value: s }, s)) }) : null
3731
+ slots?.length ? /* @__PURE__ */ jsx102("datalist", { id: listId, children: slots.map((s) => /* @__PURE__ */ jsx102("option", { value: s }, s)) }) : null
3656
3732
  ] });
3657
3733
  });
3658
3734
 
3659
3735
  // src/components/Timeline.tsx
3660
- import { forwardRef as forwardRef97 } from "react";
3661
- import { jsx as jsx99, jsxs as jsxs82 } from "react/jsx-runtime";
3662
- var Timeline = forwardRef97(function Timeline2({ items, size = "default", accent = false, className, ...rest }, ref) {
3663
- return /* @__PURE__ */ jsx99("ol", { ref, className: cx("oc-timeline", size === "lg" && "oc-timeline--lg", accent && "oc-timeline--accent", className), ...rest, children: items.map((item, i) => /* @__PURE__ */ jsxs82("li", { className: cx("oc-timeline__item", item.current && "oc-timeline__item--current"), children: [
3664
- item.dateTime ? /* @__PURE__ */ jsx99("time", { className: "oc-timeline__date", dateTime: item.dateTime, children: item.date }) : /* @__PURE__ */ jsx99("span", { className: "oc-timeline__date", children: item.date }),
3665
- item.title != null && /* @__PURE__ */ jsx99("h3", { className: "oc-timeline__title", children: item.title }),
3666
- item.text != null && /* @__PURE__ */ jsx99("p", { className: "oc-timeline__text", children: item.text })
3736
+ import { forwardRef as forwardRef101 } from "react";
3737
+ import { jsx as jsx103, jsxs as jsxs84 } from "react/jsx-runtime";
3738
+ var Timeline = forwardRef101(function Timeline2({ items, size = "default", accent = false, className, ...rest }, ref) {
3739
+ return /* @__PURE__ */ jsx103("ol", { ref, className: cx("oc-timeline", size === "lg" && "oc-timeline--lg", accent && "oc-timeline--accent", className), ...rest, children: items.map((item, i) => /* @__PURE__ */ jsxs84("li", { className: cx("oc-timeline__item", item.current && "oc-timeline__item--current"), children: [
3740
+ item.dateTime ? /* @__PURE__ */ jsx103("time", { className: "oc-timeline__date", dateTime: item.dateTime, children: item.date }) : /* @__PURE__ */ jsx103("span", { className: "oc-timeline__date", children: item.date }),
3741
+ item.title != null && /* @__PURE__ */ jsx103("h3", { className: "oc-timeline__title", children: item.title }),
3742
+ item.text != null && /* @__PURE__ */ jsx103("p", { className: "oc-timeline__text", children: item.text })
3667
3743
  ] }, i)) });
3668
3744
  });
3669
3745
 
3746
+ // src/components/Titlebar.tsx
3747
+ import { forwardRef as forwardRef102 } from "react";
3748
+ import { jsx as jsx104, jsxs as jsxs85 } from "react/jsx-runtime";
3749
+ var TitlebarWindow = forwardRef102(function TitlebarWindow2({ className, ...rest }, ref) {
3750
+ return /* @__PURE__ */ jsx104("div", { ref, className: cx("oc-titlebar-window", className), ...rest });
3751
+ });
3752
+ var Titlebar = forwardRef102(function Titlebar2({ title, subtitle, icon, bordered, size = "md", className, children, ...rest }, ref) {
3753
+ return /* @__PURE__ */ jsxs85("header", { ref, className: cx("oc-titlebar", bordered && "oc-titlebar--bordered", size === "sm" && "oc-titlebar--sm", className), ...rest, children: [
3754
+ /* @__PURE__ */ jsxs85("div", { className: "oc-titlebar__main", children: [
3755
+ icon != null && /* @__PURE__ */ jsx104("span", { className: "oc-titlebar__icon", "aria-hidden": "true", children: icon }),
3756
+ title != null && /* @__PURE__ */ jsx104("span", { className: "oc-titlebar__title", children: title }),
3757
+ subtitle != null && /* @__PURE__ */ jsx104("span", { className: "oc-titlebar__subtitle", children: subtitle })
3758
+ ] }),
3759
+ children != null && /* @__PURE__ */ jsx104("div", { className: "oc-titlebar__actions", children })
3760
+ ] });
3761
+ });
3762
+ var TitlebarButton = forwardRef102(function TitlebarButton2({ label, close, className, type = "button", ...rest }, ref) {
3763
+ return /* @__PURE__ */ jsx104("button", { ref, type, "aria-label": label, title: label, className: cx("oc-titlebar__btn", close && "oc-titlebar__btn--close", className), ...rest });
3764
+ });
3765
+ var TitlebarBody = forwardRef102(function TitlebarBody2({ className, ...rest }, ref) {
3766
+ return /* @__PURE__ */ jsx104("div", { ref, className: cx("oc-titlebar-body", className), ...rest });
3767
+ });
3768
+
3670
3769
  // src/components/Toast.tsx
3671
- import { createContext as createContext2, forwardRef as forwardRef98, useCallback as useCallback2, useContext as useContext2, useEffect as useEffect9, useMemo as useMemo2, useRef as useRef12, useState as useState13 } from "react";
3672
- import { jsx as jsx100, jsxs as jsxs83 } from "react/jsx-runtime";
3770
+ import { createContext as createContext2, forwardRef as forwardRef103, useCallback as useCallback2, useContext as useContext2, useEffect as useEffect9, useMemo as useMemo2, useRef as useRef12, useState as useState13 } from "react";
3771
+ import { jsx as jsx105, jsxs as jsxs86 } from "react/jsx-runtime";
3673
3772
  var GLYPHS3 = { success: "\u2713", error: "!", warning: "!", info: "i" };
3674
- var Toast = forwardRef98(function Toast2({ variant = "info", title, description, icon, onDismiss, dismissLabel = "Dismiss", className, ...rest }, ref) {
3675
- return /* @__PURE__ */ jsxs83("div", { ref, className: cx("oc-toast", `oc-toast--${variant}`, className), role: variant === "error" ? "alert" : "status", ...rest, children: [
3676
- /* @__PURE__ */ jsx100("span", { className: "oc-toast-icon", "aria-hidden": "true", children: icon ?? GLYPHS3[variant] }),
3677
- /* @__PURE__ */ jsxs83("div", { className: "oc-toast-body", children: [
3678
- /* @__PURE__ */ jsx100("p", { className: "oc-toast-title", children: title }),
3679
- description != null && /* @__PURE__ */ jsx100("p", { className: "oc-toast-description", children: description })
3773
+ var Toast = forwardRef103(function Toast2({ variant = "info", title, description, icon, onDismiss, dismissLabel = "Dismiss", className, ...rest }, ref) {
3774
+ return /* @__PURE__ */ jsxs86("div", { ref, className: cx("oc-toast", `oc-toast--${variant}`, className), role: variant === "error" ? "alert" : "status", ...rest, children: [
3775
+ /* @__PURE__ */ jsx105("span", { className: "oc-toast-icon", "aria-hidden": "true", children: icon ?? GLYPHS3[variant] }),
3776
+ /* @__PURE__ */ jsxs86("div", { className: "oc-toast-body", children: [
3777
+ /* @__PURE__ */ jsx105("p", { className: "oc-toast-title", children: title }),
3778
+ description != null && /* @__PURE__ */ jsx105("p", { className: "oc-toast-description", children: description })
3680
3779
  ] }),
3681
- onDismiss && /* @__PURE__ */ jsx100("button", { className: "oc-toast-close", type: "button", "aria-label": dismissLabel, onClick: onDismiss, children: "\xD7" })
3780
+ onDismiss && /* @__PURE__ */ jsx105("button", { className: "oc-toast-close", type: "button", "aria-label": dismissLabel, onClick: onDismiss, children: "\xD7" })
3682
3781
  ] });
3683
3782
  });
3684
- var ToastContainer = forwardRef98(function ToastContainer2({ top, static: isStatic, className, ...rest }, ref) {
3685
- return /* @__PURE__ */ jsx100(
3783
+ var ToastContainer = forwardRef103(function ToastContainer2({ top, static: isStatic, className, ...rest }, ref) {
3784
+ return /* @__PURE__ */ jsx105(
3686
3785
  "div",
3687
3786
  {
3688
3787
  ref,
@@ -3722,9 +3821,9 @@ function ToastProvider({ children, top, duration = 5e3, limit = 5 }) {
3722
3821
  return () => map.forEach(clearTimeout);
3723
3822
  }, []);
3724
3823
  const api = useMemo2(() => ({ toast, dismiss }), [toast, dismiss]);
3725
- return /* @__PURE__ */ jsxs83(ToastContext.Provider, { value: api, children: [
3824
+ return /* @__PURE__ */ jsxs86(ToastContext.Provider, { value: api, children: [
3726
3825
  children,
3727
- /* @__PURE__ */ jsx100(ToastContainer, { top, "aria-live": "polite", children: items.map((t) => /* @__PURE__ */ jsx100(Toast, { variant: t.variant, title: t.title, description: t.description, onDismiss: () => dismiss(t.id) }, t.id)) })
3826
+ /* @__PURE__ */ jsx105(ToastContainer, { top, "aria-live": "polite", children: items.map((t) => /* @__PURE__ */ jsx105(Toast, { variant: t.variant, title: t.title, description: t.description, onDismiss: () => dismiss(t.id) }, t.id)) })
3728
3827
  ] });
3729
3828
  }
3730
3829
  function useToast() {
@@ -3734,41 +3833,41 @@ function useToast() {
3734
3833
  }
3735
3834
 
3736
3835
  // src/components/ToggleField.tsx
3737
- import { forwardRef as forwardRef99, useId as useId33 } from "react";
3738
- import { jsx as jsx101, jsxs as jsxs84 } from "react/jsx-runtime";
3739
- var ToggleField = forwardRef99(function ToggleField2({ label, description, card, reverse, fieldClassName, className, ...rest }, ref) {
3836
+ import { forwardRef as forwardRef104, useId as useId33 } from "react";
3837
+ import { jsx as jsx106, jsxs as jsxs87 } from "react/jsx-runtime";
3838
+ var ToggleField = forwardRef104(function ToggleField2({ label, description, card, reverse, fieldClassName, className, ...rest }, ref) {
3740
3839
  const descId = `oc-toggle-field-${useId33().replace(/:/g, "")}`;
3741
- return /* @__PURE__ */ jsxs84("label", { className: cx("oc-toggle-field", card && "oc-toggle-field--card", reverse && "oc-toggle-field--reverse", fieldClassName), children: [
3742
- /* @__PURE__ */ jsxs84("span", { className: "oc-toggle-field-text", children: [
3743
- /* @__PURE__ */ jsx101("span", { className: "oc-toggle-field-label", children: label }),
3744
- description != null && /* @__PURE__ */ jsx101("span", { className: "oc-toggle-field-description", id: descId, children: description })
3840
+ return /* @__PURE__ */ jsxs87("label", { className: cx("oc-toggle-field", card && "oc-toggle-field--card", reverse && "oc-toggle-field--reverse", fieldClassName), children: [
3841
+ /* @__PURE__ */ jsxs87("span", { className: "oc-toggle-field-text", children: [
3842
+ /* @__PURE__ */ jsx106("span", { className: "oc-toggle-field-label", children: label }),
3843
+ description != null && /* @__PURE__ */ jsx106("span", { className: "oc-toggle-field-description", id: descId, children: description })
3745
3844
  ] }),
3746
- /* @__PURE__ */ jsxs84("span", { className: "oc-switch", children: [
3747
- /* @__PURE__ */ jsx101("input", { ref, type: "checkbox", role: "switch", className, "aria-describedby": description != null ? descId : void 0, ...rest }),
3748
- /* @__PURE__ */ jsx101("span", { className: "oc-switch-track" })
3845
+ /* @__PURE__ */ jsxs87("span", { className: "oc-switch", children: [
3846
+ /* @__PURE__ */ jsx106("input", { ref, type: "checkbox", role: "switch", className, "aria-describedby": description != null ? descId : void 0, ...rest }),
3847
+ /* @__PURE__ */ jsx106("span", { className: "oc-switch-track" })
3749
3848
  ] })
3750
3849
  ] });
3751
3850
  });
3752
3851
 
3753
3852
  // src/components/Tooltip.tsx
3754
- import { forwardRef as forwardRef100 } from "react";
3755
- import { jsx as jsx102, jsxs as jsxs85 } from "react/jsx-runtime";
3756
- var Tooltip = forwardRef100(function Tooltip2({ content, multiline, heading, side, className, children, ...rest }, ref) {
3853
+ import { forwardRef as forwardRef105 } from "react";
3854
+ import { jsx as jsx107, jsxs as jsxs88 } from "react/jsx-runtime";
3855
+ var Tooltip = forwardRef105(function Tooltip2({ content, multiline, heading, side, className, children, ...rest }, ref) {
3757
3856
  const classes = cx("oc-tooltip", multiline && !heading && "oc-tooltip--multiline", side && side !== "top" && `oc-tooltip--${side}`, className);
3758
- if (!heading) return /* @__PURE__ */ jsx102("span", { ref, className: classes, "data-tooltip": content, ...rest, children });
3759
- return /* @__PURE__ */ jsxs85("span", { ref, className: classes, ...rest, children: [
3857
+ if (!heading) return /* @__PURE__ */ jsx107("span", { ref, className: classes, "data-tooltip": content, ...rest, children });
3858
+ return /* @__PURE__ */ jsxs88("span", { ref, className: classes, ...rest, children: [
3760
3859
  children,
3761
- /* @__PURE__ */ jsxs85("span", { className: "oc-tooltip__content", role: "tooltip", children: [
3762
- /* @__PURE__ */ jsx102("span", { className: "oc-tooltip__title", children: heading }),
3860
+ /* @__PURE__ */ jsxs88("span", { className: "oc-tooltip__content", role: "tooltip", children: [
3861
+ /* @__PURE__ */ jsx107("span", { className: "oc-tooltip__title", children: heading }),
3763
3862
  content
3764
3863
  ] })
3765
3864
  ] });
3766
3865
  });
3767
3866
 
3768
3867
  // src/components/TopProgress.tsx
3769
- import { forwardRef as forwardRef101, useEffect as useEffect10, useState as useState14 } from "react";
3770
- import { jsx as jsx103 } from "react/jsx-runtime";
3771
- var TopProgress = forwardRef101(function TopProgress2({ active = true, tone = "default", large, static: inFlow, fadeMs = 400, className, ...rest }, ref) {
3868
+ import { forwardRef as forwardRef106, useEffect as useEffect10, useState as useState14 } from "react";
3869
+ import { jsx as jsx108 } from "react/jsx-runtime";
3870
+ var TopProgress = forwardRef106(function TopProgress2({ active = true, tone = "default", large, static: inFlow, fadeMs = 400, className, ...rest }, ref) {
3772
3871
  const [phase, setPhase] = useState14(active ? "active" : "hidden");
3773
3872
  useEffect10(() => {
3774
3873
  if (active) {
@@ -3787,149 +3886,158 @@ var TopProgress = forwardRef101(function TopProgress2({ active = true, tone = "d
3787
3886
  phase === "done" && "is-done",
3788
3887
  className
3789
3888
  );
3790
- return /* @__PURE__ */ jsx103("progress", { ref, className: cls, hidden: phase === "hidden", ...rest });
3889
+ return /* @__PURE__ */ jsx108("progress", { ref, className: cls, hidden: phase === "hidden", ...rest });
3791
3890
  });
3792
3891
 
3793
3892
  // src/components/Tree.tsx
3794
- import { forwardRef as forwardRef102 } from "react";
3795
- import { Fragment as Fragment24, jsx as jsx104, jsxs as jsxs86 } from "react/jsx-runtime";
3893
+ import { forwardRef as forwardRef107 } from "react";
3894
+ import { Fragment as Fragment24, jsx as jsx109, jsxs as jsxs89 } from "react/jsx-runtime";
3796
3895
  function RowContent({ item }) {
3797
3896
  const isLink = item.href !== void 0;
3798
- return /* @__PURE__ */ jsxs86(Fragment24, { children: [
3799
- item.icon != null && /* @__PURE__ */ jsx104("span", { className: "oc-tree-icon", "aria-hidden": "true", children: item.icon }),
3800
- isLink ? /* @__PURE__ */ jsx104("a", { className: "oc-tree-label", href: item.href, "aria-current": item.current ? "true" : void 0, children: item.label }) : /* @__PURE__ */ jsx104("span", { className: "oc-tree-label", children: item.label }),
3801
- item.count != null && /* @__PURE__ */ jsx104("span", { className: "oc-tree-count", children: item.count }),
3802
- item.actions != null && /* @__PURE__ */ jsx104("span", { className: "oc-tree-actions", children: item.actions })
3897
+ return /* @__PURE__ */ jsxs89(Fragment24, { children: [
3898
+ item.icon != null && /* @__PURE__ */ jsx109("span", { className: "oc-tree-icon", "aria-hidden": "true", children: item.icon }),
3899
+ isLink ? /* @__PURE__ */ jsx109("a", { className: "oc-tree-label", href: item.href, "aria-current": item.current ? "true" : void 0, children: item.label }) : /* @__PURE__ */ jsx109("span", { className: "oc-tree-label", children: item.label }),
3900
+ item.count != null && /* @__PURE__ */ jsx109("span", { className: "oc-tree-count", children: item.count }),
3901
+ item.actions != null && /* @__PURE__ */ jsx109("span", { className: "oc-tree-actions", children: item.actions })
3803
3902
  ] });
3804
3903
  }
3805
3904
  function TreeNode({ item }) {
3806
3905
  const rowCurrent = item.current && item.href === void 0 ? "true" : void 0;
3807
3906
  const rowCls = cx("oc-tree-row", item.muted && "is-muted");
3808
3907
  if (!item.children?.length) {
3809
- return /* @__PURE__ */ jsx104("li", { children: /* @__PURE__ */ jsx104("div", { className: rowCls, "aria-current": rowCurrent, children: /* @__PURE__ */ jsx104(RowContent, { item }) }) });
3908
+ return /* @__PURE__ */ jsx109("li", { children: /* @__PURE__ */ jsx109("div", { className: rowCls, "aria-current": rowCurrent, children: /* @__PURE__ */ jsx109(RowContent, { item }) }) });
3810
3909
  }
3811
- return /* @__PURE__ */ jsx104("li", { children: /* @__PURE__ */ jsxs86("details", { className: "oc-tree-node", open: item.open, children: [
3812
- /* @__PURE__ */ jsx104("summary", { className: rowCls, "aria-current": rowCurrent, children: /* @__PURE__ */ jsx104(RowContent, { item }) }),
3813
- /* @__PURE__ */ jsx104(TreeList, { items: item.children })
3910
+ return /* @__PURE__ */ jsx109("li", { children: /* @__PURE__ */ jsxs89("details", { className: "oc-tree-node", open: item.open, children: [
3911
+ /* @__PURE__ */ jsx109("summary", { className: rowCls, "aria-current": rowCurrent, children: /* @__PURE__ */ jsx109(RowContent, { item }) }),
3912
+ /* @__PURE__ */ jsx109(TreeList, { items: item.children })
3814
3913
  ] }) });
3815
3914
  }
3816
3915
  function TreeList({ items }) {
3817
- return /* @__PURE__ */ jsx104("ul", { className: "oc-tree-list", children: items.map((item, i) => /* @__PURE__ */ jsx104(TreeNode, { item }, i)) });
3916
+ return /* @__PURE__ */ jsx109("ul", { className: "oc-tree-list", children: items.map((item, i) => /* @__PURE__ */ jsx109(TreeNode, { item }, i)) });
3818
3917
  }
3819
- var Tree = forwardRef102(function Tree2({ items, head, headActions, quiet, flush, className, ...rest }, ref) {
3820
- return /* @__PURE__ */ jsxs86("div", { ref, className: cx("oc-tree", quiet && "oc-tree--quiet", flush && "oc-tree--flush", className), ...rest, children: [
3821
- head != null && /* @__PURE__ */ jsxs86("div", { className: "oc-tree-row oc-tree-head", children: [
3822
- /* @__PURE__ */ jsx104("span", { className: "oc-tree-label", children: head }),
3823
- headActions != null && /* @__PURE__ */ jsx104("span", { className: "oc-tree-actions", children: headActions })
3918
+ var Tree = forwardRef107(function Tree2({ items, head, headActions, quiet, flush, className, ...rest }, ref) {
3919
+ return /* @__PURE__ */ jsxs89("div", { ref, className: cx("oc-tree", quiet && "oc-tree--quiet", flush && "oc-tree--flush", className), ...rest, children: [
3920
+ head != null && /* @__PURE__ */ jsxs89("div", { className: "oc-tree-row oc-tree-head", children: [
3921
+ /* @__PURE__ */ jsx109("span", { className: "oc-tree-label", children: head }),
3922
+ headActions != null && /* @__PURE__ */ jsx109("span", { className: "oc-tree-actions", children: headActions })
3824
3923
  ] }),
3825
- /* @__PURE__ */ jsx104(TreeList, { items })
3924
+ /* @__PURE__ */ jsx109(TreeList, { items })
3826
3925
  ] });
3827
3926
  });
3828
3927
 
3829
3928
  // src/components/UpgradeBanner.tsx
3830
- import { forwardRef as forwardRef103 } from "react";
3831
- import { Fragment as Fragment25, jsx as jsx105, jsxs as jsxs87 } from "react/jsx-runtime";
3832
- var UpgradeBanner = forwardRef103(function UpgradeBanner2({ title, plan, text, usage, icon, actions, premium, compact, onDismiss, dismissLabel = "Dismiss", className, children, ...rest }, ref) {
3929
+ import { forwardRef as forwardRef108 } from "react";
3930
+ import { Fragment as Fragment25, jsx as jsx110, jsxs as jsxs90 } from "react/jsx-runtime";
3931
+ var UpgradeBanner = forwardRef108(function UpgradeBanner2({ title, plan, text, usage, icon, actions, premium, compact, onDismiss, dismissLabel = "Dismiss", className, children, ...rest }, ref) {
3833
3932
  const cls = cx("oc-upgrade-banner", premium && "oc-upgrade-banner--premium", compact && "oc-upgrade-banner--compact", className);
3834
3933
  const body = text ?? children;
3835
- return /* @__PURE__ */ jsxs87("aside", { ref, className: cls, ...rest, children: [
3836
- icon != null && /* @__PURE__ */ jsx105("span", { className: "oc-upgrade-banner-icon", "aria-hidden": "true", children: icon }),
3837
- /* @__PURE__ */ jsxs87("div", { className: "oc-upgrade-banner-body", children: [
3838
- /* @__PURE__ */ jsxs87("p", { className: "oc-upgrade-banner-title", children: [
3934
+ return /* @__PURE__ */ jsxs90("aside", { ref, className: cls, ...rest, children: [
3935
+ icon != null && /* @__PURE__ */ jsx110("span", { className: "oc-upgrade-banner-icon", "aria-hidden": "true", children: icon }),
3936
+ /* @__PURE__ */ jsxs90("div", { className: "oc-upgrade-banner-body", children: [
3937
+ /* @__PURE__ */ jsxs90("p", { className: "oc-upgrade-banner-title", children: [
3839
3938
  title,
3840
- plan != null && /* @__PURE__ */ jsxs87(Fragment25, { children: [
3939
+ plan != null && /* @__PURE__ */ jsxs90(Fragment25, { children: [
3841
3940
  " ",
3842
- /* @__PURE__ */ jsx105("span", { className: "oc-upgrade-banner-plan", children: plan })
3941
+ /* @__PURE__ */ jsx110("span", { className: "oc-upgrade-banner-plan", children: plan })
3843
3942
  ] })
3844
3943
  ] }),
3845
- body != null && /* @__PURE__ */ jsx105("p", { className: "oc-upgrade-banner-text", children: body }),
3846
- usage && /* @__PURE__ */ jsxs87("div", { className: "oc-upgrade-banner-usage", children: [
3847
- /* @__PURE__ */ jsx105("span", { children: usage.label }),
3848
- /* @__PURE__ */ jsxs87("meter", { className: "oc-upgrade-banner-meter", min: 0, max: usage.max, low: usage.max * 0.6, high: usage.max * 0.8, optimum: 0, value: usage.value, children: [
3944
+ body != null && /* @__PURE__ */ jsx110("p", { className: "oc-upgrade-banner-text", children: body }),
3945
+ usage && /* @__PURE__ */ jsxs90("div", { className: "oc-upgrade-banner-usage", children: [
3946
+ /* @__PURE__ */ jsx110("span", { children: usage.label }),
3947
+ /* @__PURE__ */ jsxs90("meter", { className: "oc-upgrade-banner-meter", min: 0, max: usage.max, low: usage.max * 0.6, high: usage.max * 0.8, optimum: 0, value: usage.value, children: [
3849
3948
  usage.value,
3850
3949
  " of ",
3851
3950
  usage.max
3852
3951
  ] }),
3853
- /* @__PURE__ */ jsxs87("span", { children: [
3952
+ /* @__PURE__ */ jsxs90("span", { children: [
3854
3953
  usage.value,
3855
3954
  " / ",
3856
3955
  usage.max
3857
3956
  ] })
3858
3957
  ] })
3859
3958
  ] }),
3860
- actions != null && /* @__PURE__ */ jsx105("div", { className: "oc-upgrade-banner-actions", children: actions }),
3861
- onDismiss && /* @__PURE__ */ jsx105("button", { className: "oc-upgrade-banner-dismiss", type: "button", "aria-label": dismissLabel, onClick: onDismiss, children: "\xD7" })
3959
+ actions != null && /* @__PURE__ */ jsx110("div", { className: "oc-upgrade-banner-actions", children: actions }),
3960
+ onDismiss && /* @__PURE__ */ jsx110("button", { className: "oc-upgrade-banner-dismiss", type: "button", "aria-label": dismissLabel, onClick: onDismiss, children: "\xD7" })
3862
3961
  ] });
3863
3962
  });
3864
3963
 
3865
3964
  // src/components/User.tsx
3866
- import { forwardRef as forwardRef104 } from "react";
3867
- import { jsx as jsx106, jsxs as jsxs88 } from "react/jsx-runtime";
3868
- var User = forwardRef104(function User2({ name, email, initials, avatarSrc, avatarSize = "md", className, ...rest }, ref) {
3869
- return /* @__PURE__ */ jsxs88("div", { ref, className: cx("oc-user", className), ...rest, children: [
3870
- /* @__PURE__ */ jsx106(Avatar, { size: avatarSize, src: avatarSrc, children: initials }),
3871
- /* @__PURE__ */ jsxs88("span", { className: "oc-user-text", children: [
3872
- /* @__PURE__ */ jsx106("span", { className: "oc-user-name", children: name }),
3873
- email != null && /* @__PURE__ */ jsx106("span", { className: "oc-user-email", children: email })
3965
+ import { forwardRef as forwardRef109 } from "react";
3966
+ import { jsx as jsx111, jsxs as jsxs91 } from "react/jsx-runtime";
3967
+ var User = forwardRef109(function User2({ name, email, initials, avatarSrc, avatarSize = "md", className, ...rest }, ref) {
3968
+ return /* @__PURE__ */ jsxs91("div", { ref, className: cx("oc-user", className), ...rest, children: [
3969
+ /* @__PURE__ */ jsx111(Avatar, { size: avatarSize, src: avatarSrc, children: initials }),
3970
+ /* @__PURE__ */ jsxs91("span", { className: "oc-user-text", children: [
3971
+ /* @__PURE__ */ jsx111("span", { className: "oc-user-name", children: name }),
3972
+ email != null && /* @__PURE__ */ jsx111("span", { className: "oc-user-email", children: email })
3874
3973
  ] })
3875
3974
  ] });
3876
3975
  });
3877
3976
 
3878
3977
  // src/components/VersionBanner.tsx
3879
- import { forwardRef as forwardRef105 } from "react";
3880
- import { jsx as jsx107, jsxs as jsxs89 } from "react/jsx-runtime";
3881
- var VersionBanner = forwardRef105(function VersionBanner2({ version, text, short = "New version", actionLabel = "Reload", onReload, tone = "warning", floating, className, ...rest }, ref) {
3978
+ import { forwardRef as forwardRef110 } from "react";
3979
+ import { jsx as jsx112, jsxs as jsxs92 } from "react/jsx-runtime";
3980
+ var VersionBanner = forwardRef110(function VersionBanner2({ version, text, short = "New version", actionLabel = "Reload", onReload, tone = "warning", floating, className, ...rest }, ref) {
3882
3981
  if (!version) return null;
3883
3982
  const cls = cx("oc-version-banner", tone !== "warning" && `oc-version-banner--${tone}`, floating && "oc-version-banner--floating", className);
3884
- return /* @__PURE__ */ jsxs89("div", { ref, className: cls, role: "status", ...rest, children: [
3885
- /* @__PURE__ */ jsx107("span", { className: "oc-version-banner-dot", "aria-hidden": "true" }),
3886
- /* @__PURE__ */ jsx107("span", { className: "oc-version-banner-text", children: text ?? `New version (${version}) available - reload the page` }),
3887
- /* @__PURE__ */ jsx107("span", { className: "oc-version-banner-short", children: short }),
3888
- onReload ? /* @__PURE__ */ jsx107("button", { className: "oc-version-banner-action", type: "button", onClick: onReload, children: actionLabel }) : /* @__PURE__ */ jsx107("a", { className: "oc-version-banner-action", href: "", children: actionLabel })
3983
+ return /* @__PURE__ */ jsxs92("div", { ref, className: cls, role: "status", ...rest, children: [
3984
+ /* @__PURE__ */ jsx112("span", { className: "oc-version-banner-dot", "aria-hidden": "true" }),
3985
+ /* @__PURE__ */ jsx112("span", { className: "oc-version-banner-text", children: text ?? `New version (${version}) available - reload the page` }),
3986
+ /* @__PURE__ */ jsx112("span", { className: "oc-version-banner-short", children: short }),
3987
+ onReload ? /* @__PURE__ */ jsx112("button", { className: "oc-version-banner-action", type: "button", onClick: onReload, children: actionLabel }) : /* @__PURE__ */ jsx112("a", { className: "oc-version-banner-action", href: "", children: actionLabel })
3889
3988
  ] });
3890
3989
  });
3891
3990
 
3991
+ // src/components/Watermark.tsx
3992
+ import { forwardRef as forwardRef111, Fragment as Fragment26 } from "react";
3993
+ import { jsx as jsx113 } from "react/jsx-runtime";
3994
+ var Watermark = forwardRef111(function Watermark2({ text = "Concept", variant = "diagonal", tone = "default", repeat = 12, mono = false, className, ...rest }, ref) {
3995
+ const classes = cx("oc-watermark", variant !== "diagonal" && `oc-watermark--${variant}`, tone !== "default" && `oc-watermark--${tone}`, mono && "oc-watermark--mono", className);
3996
+ const count = variant === "tile" ? Math.max(1, repeat) : 1;
3997
+ return /* @__PURE__ */ jsx113("span", { ref, className: classes, "aria-hidden": "true", ...rest, children: Array.from({ length: count }, (_, i) => typeof text === "string" || typeof text === "number" ? /* @__PURE__ */ jsx113("span", { children: text }, i) : /* @__PURE__ */ jsx113(Fragment26, { children: text }, i)) });
3998
+ });
3999
+
3892
4000
  // src/blocks/BlockAboutTimeline.tsx
3893
- import { forwardRef as forwardRef106, useId as useId34 } from "react";
3894
- import { jsx as jsx108, jsxs as jsxs90 } from "react/jsx-runtime";
3895
- var BlockAboutTimeline = forwardRef106(function BlockAboutTimeline2({ eyebrow, title, children, timeline = [], image, imageAlt = "", badge, reverse = false, className, ...rest }, ref) {
4001
+ import { forwardRef as forwardRef112, useId as useId34 } from "react";
4002
+ import { jsx as jsx114, jsxs as jsxs93 } from "react/jsx-runtime";
4003
+ var BlockAboutTimeline = forwardRef112(function BlockAboutTimeline2({ eyebrow, title, children, timeline = [], image, imageAlt = "", badge, reverse = false, className, ...rest }, ref) {
3896
4004
  const titleId = `oc-about-title-${useId34().replace(/[^\w-]/g, "")}`;
3897
- return /* @__PURE__ */ jsx108("section", { ref, className: cx("oc-block-about", reverse && "oc-block-about--reverse", className), "aria-labelledby": titleId, ...rest, children: /* @__PURE__ */ jsxs90("div", { className: "oc-block-about-inner", children: [
3898
- /* @__PURE__ */ jsxs90("figure", { className: "oc-block-about-media", "aria-hidden": image ? void 0 : true, children: [
3899
- image && /* @__PURE__ */ jsx108("img", { src: image, alt: imageAlt, loading: "lazy" }),
3900
- badge != null && /* @__PURE__ */ jsx108("span", { className: "oc-block-about-badge", children: badge })
4005
+ return /* @__PURE__ */ jsx114("section", { ref, className: cx("oc-block-about", reverse && "oc-block-about--reverse", className), "aria-labelledby": titleId, ...rest, children: /* @__PURE__ */ jsxs93("div", { className: "oc-block-about-inner", children: [
4006
+ /* @__PURE__ */ jsxs93("figure", { className: "oc-block-about-media", "aria-hidden": image ? void 0 : true, children: [
4007
+ image && /* @__PURE__ */ jsx114("img", { src: image, alt: imageAlt, loading: "lazy" }),
4008
+ badge != null && /* @__PURE__ */ jsx114("span", { className: "oc-block-about-badge", children: badge })
3901
4009
  ] }),
3902
- /* @__PURE__ */ jsxs90("div", { className: "oc-block-about-copy", children: [
3903
- eyebrow != null && /* @__PURE__ */ jsx108("p", { className: "oc-eyebrow", children: eyebrow }),
3904
- /* @__PURE__ */ jsx108("h2", { className: "oc-block-about-title", id: titleId, children: title }),
4010
+ /* @__PURE__ */ jsxs93("div", { className: "oc-block-about-copy", children: [
4011
+ eyebrow != null && /* @__PURE__ */ jsx114("p", { className: "oc-eyebrow", children: eyebrow }),
4012
+ /* @__PURE__ */ jsx114("h2", { className: "oc-block-about-title", id: titleId, children: title }),
3905
4013
  children,
3906
- timeline.length > 0 && /* @__PURE__ */ jsx108(Timeline, { items: timeline })
4014
+ timeline.length > 0 && /* @__PURE__ */ jsx114(Timeline, { items: timeline })
3907
4015
  ] })
3908
4016
  ] }) });
3909
4017
  });
3910
4018
 
3911
4019
  // src/blocks/BlockAppHeader.tsx
3912
- import { forwardRef as forwardRef107 } from "react";
3913
- import { jsx as jsx109, jsxs as jsxs91 } from "react/jsx-runtime";
3914
- var BlockAppHeader = forwardRef107(function BlockAppHeader2({ toggleFor, toggleLabel = "Toggle sidebar", nav, navLabel = "Module navigation", actions, title, className, ...rest }, ref) {
3915
- return /* @__PURE__ */ jsxs91("header", { ref, className: cx("oc-block-appbar", className), ...rest, children: [
3916
- toggleFor && /* @__PURE__ */ jsxs91("label", { className: "oc-btn oc-btn--ghost oc-btn--icon", htmlFor: toggleFor, title: toggleLabel, children: [
3917
- /* @__PURE__ */ jsx109(Icon, { d: "M4 6h16M4 12h16M4 18h16" }),
3918
- /* @__PURE__ */ jsx109("span", { className: "oc-visually-hidden", children: toggleLabel })
4020
+ import { forwardRef as forwardRef113 } from "react";
4021
+ import { jsx as jsx115, jsxs as jsxs94 } from "react/jsx-runtime";
4022
+ var BlockAppHeader = forwardRef113(function BlockAppHeader2({ toggleFor, toggleLabel = "Toggle sidebar", nav, navLabel = "Module navigation", actions, title, className, ...rest }, ref) {
4023
+ return /* @__PURE__ */ jsxs94("header", { ref, className: cx("oc-block-appbar", className), ...rest, children: [
4024
+ toggleFor && /* @__PURE__ */ jsxs94("label", { className: "oc-btn oc-btn--ghost oc-btn--icon", htmlFor: toggleFor, title: toggleLabel, children: [
4025
+ /* @__PURE__ */ jsx115(Icon, { d: "M4 6h16M4 12h16M4 18h16" }),
4026
+ /* @__PURE__ */ jsx115("span", { className: "oc-visually-hidden", children: toggleLabel })
3919
4027
  ] }),
3920
- title != null && /* @__PURE__ */ jsx109("span", { className: "oc-block-appbar-title", children: title }),
3921
- nav && /* @__PURE__ */ jsx109(Navmenu, { label: navLabel, navClassName: "oc-block-appbar-nav", children: nav.map((item, i) => /* @__PURE__ */ jsx109(NavmenuItem, { children: /* @__PURE__ */ jsx109(NavmenuLink, { href: item.href, current: item.current, children: item.label }) }, i)) }),
3922
- actions != null && /* @__PURE__ */ jsx109("div", { className: "oc-block-appbar-actions", children: actions })
4028
+ title != null && /* @__PURE__ */ jsx115("span", { className: "oc-block-appbar-title", children: title }),
4029
+ nav && /* @__PURE__ */ jsx115(Navmenu, { label: navLabel, navClassName: "oc-block-appbar-nav", children: nav.map((item, i) => /* @__PURE__ */ jsx115(NavmenuItem, { children: /* @__PURE__ */ jsx115(NavmenuLink, { href: item.href, current: item.current, children: item.label }) }, i)) }),
4030
+ actions != null && /* @__PURE__ */ jsx115("div", { className: "oc-block-appbar-actions", children: actions })
3923
4031
  ] });
3924
4032
  });
3925
4033
 
3926
4034
  // src/blocks/BlockAppShell.tsx
3927
- import { forwardRef as forwardRef108, useId as useId35 } from "react";
3928
- import { jsx as jsx110, jsxs as jsxs92 } from "react/jsx-runtime";
3929
- var BlockAppShell = forwardRef108(function BlockAppShell2({ sidebar, header, breadcrumbs, toggleId, height, className, style, children, ...rest }, ref) {
4035
+ import { forwardRef as forwardRef114, useId as useId35 } from "react";
4036
+ import { jsx as jsx116, jsxs as jsxs95 } from "react/jsx-runtime";
4037
+ var BlockAppShell = forwardRef114(function BlockAppShell2({ sidebar, header, breadcrumbs, toggleId, height, className, style, children, ...rest }, ref) {
3930
4038
  const auto = useId35();
3931
4039
  const id = toggleId ?? `oc-shell-toggle-${auto.replace(/:/g, "")}`;
3932
- return /* @__PURE__ */ jsxs92(
4040
+ return /* @__PURE__ */ jsxs95(
3933
4041
  "div",
3934
4042
  {
3935
4043
  ref,
@@ -3937,14 +4045,14 @@ var BlockAppShell = forwardRef108(function BlockAppShell2({ sidebar, header, bre
3937
4045
  style: height ? { "--oc-block-shell-height": height, ...style } : style,
3938
4046
  ...rest,
3939
4047
  children: [
3940
- /* @__PURE__ */ jsx110("input", { className: "oc-block-shell-toggle", type: "checkbox", id, "aria-label": "Collapse sidebar" }),
4048
+ /* @__PURE__ */ jsx116("input", { className: "oc-block-shell-toggle", type: "checkbox", id, "aria-label": "Collapse sidebar" }),
3941
4049
  sidebar,
3942
- /* @__PURE__ */ jsxs92("div", { className: "oc-block-shell-main", children: [
4050
+ /* @__PURE__ */ jsxs95("div", { className: "oc-block-shell-main", children: [
3943
4051
  header,
3944
- breadcrumbs && /* @__PURE__ */ jsx110("div", { className: "oc-block-shell-breadcrumbs", children: /* @__PURE__ */ jsx110("nav", { "aria-label": "Breadcrumb", children: /* @__PURE__ */ jsx110("ol", { className: "oc-breadcrumb", children: breadcrumbs.map(
3945
- (item, i) => item.href && i < breadcrumbs.length - 1 ? /* @__PURE__ */ jsx110("li", { className: "oc-breadcrumb-item", children: /* @__PURE__ */ jsx110("a", { href: item.href, children: item.label }) }, i) : /* @__PURE__ */ jsx110("li", { className: "oc-breadcrumb-item", "aria-current": "page", children: item.label }, i)
4052
+ breadcrumbs && /* @__PURE__ */ jsx116("div", { className: "oc-block-shell-breadcrumbs", children: /* @__PURE__ */ jsx116("nav", { "aria-label": "Breadcrumb", children: /* @__PURE__ */ jsx116("ol", { className: "oc-breadcrumb", children: breadcrumbs.map(
4053
+ (item, i) => item.href && i < breadcrumbs.length - 1 ? /* @__PURE__ */ jsx116("li", { className: "oc-breadcrumb-item", children: /* @__PURE__ */ jsx116("a", { href: item.href, children: item.label }) }, i) : /* @__PURE__ */ jsx116("li", { className: "oc-breadcrumb-item", "aria-current": "page", children: item.label }, i)
3946
4054
  ) }) }) }),
3947
- /* @__PURE__ */ jsx110("main", { className: "oc-block-shell-content", children })
4055
+ /* @__PURE__ */ jsx116("main", { className: "oc-block-shell-content", children })
3948
4056
  ] })
3949
4057
  ]
3950
4058
  }
@@ -3952,41 +4060,41 @@ var BlockAppShell = forwardRef108(function BlockAppShell2({ sidebar, header, bre
3952
4060
  });
3953
4061
 
3954
4062
  // src/blocks/BlockAuth.tsx
3955
- import { forwardRef as forwardRef109, useId as useId36 } from "react";
3956
- import { Fragment as Fragment26, jsx as jsx111, jsxs as jsxs93 } from "react/jsx-runtime";
3957
- var BlockAuth = forwardRef109(function BlockAuth2({ title = "Sign in", subtitle, submitLabel = "Sign in", socialLabel, dividerLabel = "or continue with", footer, onSubmit, onSocial, className, ...rest }, ref) {
4063
+ import { forwardRef as forwardRef115, useId as useId36 } from "react";
4064
+ import { Fragment as Fragment27, jsx as jsx117, jsxs as jsxs96 } from "react/jsx-runtime";
4065
+ var BlockAuth = forwardRef115(function BlockAuth2({ title = "Sign in", subtitle, submitLabel = "Sign in", socialLabel, dividerLabel = "or continue with", footer, onSubmit, onSocial, className, ...rest }, ref) {
3958
4066
  const id = useId36().replace(/:/g, "");
3959
4067
  const submit = (e) => {
3960
4068
  e.preventDefault();
3961
4069
  const data = new FormData(e.currentTarget);
3962
4070
  onSubmit?.({ email: String(data.get("email") ?? ""), password: String(data.get("password") ?? "") });
3963
4071
  };
3964
- return /* @__PURE__ */ jsxs93("div", { ref, className: cx("oc-block-auth", className), ...rest, children: [
3965
- /* @__PURE__ */ jsxs93("form", { className: "oc-block-auth-card", onSubmit: submit, children: [
3966
- /* @__PURE__ */ jsx111("h2", { children: title }),
3967
- subtitle != null && /* @__PURE__ */ jsx111("p", { className: "oc-block-subtitle", children: subtitle }),
3968
- /* @__PURE__ */ jsxs93("div", { className: "oc-form-group", children: [
3969
- /* @__PURE__ */ jsx111("label", { className: "oc-label", htmlFor: `${id}-email`, children: "Email" }),
3970
- /* @__PURE__ */ jsx111("input", { className: "oc-input", id: `${id}-email`, name: "email", type: "email", placeholder: "name@company.com" })
4072
+ return /* @__PURE__ */ jsxs96("div", { ref, className: cx("oc-block-auth", className), ...rest, children: [
4073
+ /* @__PURE__ */ jsxs96("form", { className: "oc-block-auth-card", onSubmit: submit, children: [
4074
+ /* @__PURE__ */ jsx117("h2", { children: title }),
4075
+ subtitle != null && /* @__PURE__ */ jsx117("p", { className: "oc-block-subtitle", children: subtitle }),
4076
+ /* @__PURE__ */ jsxs96("div", { className: "oc-form-group", children: [
4077
+ /* @__PURE__ */ jsx117("label", { className: "oc-label", htmlFor: `${id}-email`, children: "Email" }),
4078
+ /* @__PURE__ */ jsx117("input", { className: "oc-input", id: `${id}-email`, name: "email", type: "email", placeholder: "name@company.com" })
3971
4079
  ] }),
3972
- /* @__PURE__ */ jsxs93("div", { className: "oc-form-group", children: [
3973
- /* @__PURE__ */ jsx111("label", { className: "oc-label", htmlFor: `${id}-password`, children: "Password" }),
3974
- /* @__PURE__ */ jsx111("input", { className: "oc-input", id: `${id}-password`, name: "password", type: "password", placeholder: "********" })
4080
+ /* @__PURE__ */ jsxs96("div", { className: "oc-form-group", children: [
4081
+ /* @__PURE__ */ jsx117("label", { className: "oc-label", htmlFor: `${id}-password`, children: "Password" }),
4082
+ /* @__PURE__ */ jsx117("input", { className: "oc-input", id: `${id}-password`, name: "password", type: "password", placeholder: "********" })
3975
4083
  ] }),
3976
- /* @__PURE__ */ jsx111("button", { className: "oc-btn", type: "submit", style: { width: "100%" }, children: submitLabel }),
3977
- socialLabel != null && /* @__PURE__ */ jsxs93(Fragment26, { children: [
3978
- /* @__PURE__ */ jsx111("div", { className: "oc-block-auth-divider", children: dividerLabel }),
3979
- /* @__PURE__ */ jsx111("button", { className: "oc-btn oc-btn--outline", type: "button", style: { width: "100%" }, onClick: onSocial, children: socialLabel })
4084
+ /* @__PURE__ */ jsx117("button", { className: "oc-btn", type: "submit", style: { width: "100%" }, children: submitLabel }),
4085
+ socialLabel != null && /* @__PURE__ */ jsxs96(Fragment27, { children: [
4086
+ /* @__PURE__ */ jsx117("div", { className: "oc-block-auth-divider", children: dividerLabel }),
4087
+ /* @__PURE__ */ jsx117("button", { className: "oc-btn oc-btn--outline", type: "button", style: { width: "100%" }, onClick: onSocial, children: socialLabel })
3980
4088
  ] })
3981
4089
  ] }),
3982
- footer != null && /* @__PURE__ */ jsx111("div", { className: "oc-block-auth-footer", children: footer })
4090
+ footer != null && /* @__PURE__ */ jsx117("div", { className: "oc-block-auth-footer", children: footer })
3983
4091
  ] });
3984
4092
  });
3985
4093
 
3986
4094
  // src/blocks/BlockAuthSplit.tsx
3987
- import { forwardRef as forwardRef110, useId as useId37 } from "react";
3988
- import { jsx as jsx112, jsxs as jsxs94 } from "react/jsx-runtime";
3989
- var BlockAuthSplit = forwardRef110(function BlockAuthSplit2({
4095
+ import { forwardRef as forwardRef116, useId as useId37 } from "react";
4096
+ import { jsx as jsx118, jsxs as jsxs97 } from "react/jsx-runtime";
4097
+ var BlockAuthSplit = forwardRef116(function BlockAuthSplit2({
3990
4098
  logo,
3991
4099
  logoHref = "#",
3992
4100
  quote,
@@ -4011,60 +4119,60 @@ var BlockAuthSplit = forwardRef110(function BlockAuthSplit2({
4011
4119
  remember: data.get("remember") != null
4012
4120
  });
4013
4121
  };
4014
- return /* @__PURE__ */ jsxs94("div", { ref, className: cx("oc-block-authsplit", className), ...rest, children: [
4015
- /* @__PURE__ */ jsxs94("aside", { className: "oc-block-authsplit-brand", children: [
4016
- logo != null && /* @__PURE__ */ jsx112("a", { className: "oc-block-authsplit-logo", href: logoHref, children: logo }),
4017
- quote != null && /* @__PURE__ */ jsxs94("blockquote", { className: "oc-block-authsplit-quote", children: [
4018
- /* @__PURE__ */ jsx112("p", { children: quote }),
4019
- quoteAuthor != null && /* @__PURE__ */ jsx112("footer", { children: quoteAuthor })
4122
+ return /* @__PURE__ */ jsxs97("div", { ref, className: cx("oc-block-authsplit", className), ...rest, children: [
4123
+ /* @__PURE__ */ jsxs97("aside", { className: "oc-block-authsplit-brand", children: [
4124
+ logo != null && /* @__PURE__ */ jsx118("a", { className: "oc-block-authsplit-logo", href: logoHref, children: logo }),
4125
+ quote != null && /* @__PURE__ */ jsxs97("blockquote", { className: "oc-block-authsplit-quote", children: [
4126
+ /* @__PURE__ */ jsx118("p", { children: quote }),
4127
+ quoteAuthor != null && /* @__PURE__ */ jsx118("footer", { children: quoteAuthor })
4020
4128
  ] })
4021
4129
  ] }),
4022
- /* @__PURE__ */ jsx112("div", { className: "oc-block-authsplit-form", children: /* @__PURE__ */ jsxs94("form", { className: "oc-block-authsplit-card", onSubmit: submit, children: [
4023
- /* @__PURE__ */ jsx112("h1", { className: "oc-block-authsplit-title", children: title }),
4024
- subtitle != null && /* @__PURE__ */ jsx112("p", { className: "oc-block-authsplit-subtitle", children: subtitle }),
4025
- /* @__PURE__ */ jsxs94("div", { className: "oc-block-authsplit-fields", children: [
4026
- /* @__PURE__ */ jsxs94("div", { className: "oc-field", children: [
4027
- /* @__PURE__ */ jsx112("label", { className: "oc-field-label", htmlFor: `${id}-email`, children: "E-mail" }),
4028
- /* @__PURE__ */ jsx112("input", { className: "oc-input", id: `${id}-email`, name: "email", type: "email", autoComplete: "username", placeholder: "name@company.com", required: true })
4130
+ /* @__PURE__ */ jsx118("div", { className: "oc-block-authsplit-form", children: /* @__PURE__ */ jsxs97("form", { className: "oc-block-authsplit-card", onSubmit: submit, children: [
4131
+ /* @__PURE__ */ jsx118("h1", { className: "oc-block-authsplit-title", children: title }),
4132
+ subtitle != null && /* @__PURE__ */ jsx118("p", { className: "oc-block-authsplit-subtitle", children: subtitle }),
4133
+ /* @__PURE__ */ jsxs97("div", { className: "oc-block-authsplit-fields", children: [
4134
+ /* @__PURE__ */ jsxs97("div", { className: "oc-field", children: [
4135
+ /* @__PURE__ */ jsx118("label", { className: "oc-field-label", htmlFor: `${id}-email`, children: "E-mail" }),
4136
+ /* @__PURE__ */ jsx118("input", { className: "oc-input", id: `${id}-email`, name: "email", type: "email", autoComplete: "username", placeholder: "name@company.com", required: true })
4029
4137
  ] }),
4030
- /* @__PURE__ */ jsxs94("div", { className: "oc-field", children: [
4031
- /* @__PURE__ */ jsx112("label", { className: "oc-field-label", htmlFor: `${id}-password`, children: "Password" }),
4032
- /* @__PURE__ */ jsx112(PasswordInput, { id: `${id}-password`, name: "password", required: true })
4138
+ /* @__PURE__ */ jsxs97("div", { className: "oc-field", children: [
4139
+ /* @__PURE__ */ jsx118("label", { className: "oc-field-label", htmlFor: `${id}-password`, children: "Password" }),
4140
+ /* @__PURE__ */ jsx118(PasswordInput, { id: `${id}-password`, name: "password", required: true })
4033
4141
  ] }),
4034
- /* @__PURE__ */ jsxs94("div", { className: "oc-block-authsplit-row", children: [
4035
- /* @__PURE__ */ jsxs94("label", { children: [
4036
- /* @__PURE__ */ jsx112("input", { className: "oc-checkbox", type: "checkbox", name: "remember" }),
4142
+ /* @__PURE__ */ jsxs97("div", { className: "oc-block-authsplit-row", children: [
4143
+ /* @__PURE__ */ jsxs97("label", { children: [
4144
+ /* @__PURE__ */ jsx118("input", { className: "oc-checkbox", type: "checkbox", name: "remember" }),
4037
4145
  " ",
4038
4146
  rememberLabel
4039
4147
  ] }),
4040
- /* @__PURE__ */ jsx112("a", { className: "oc-link", href: forgotHref, children: forgotLabel })
4148
+ /* @__PURE__ */ jsx118("a", { className: "oc-link", href: forgotHref, children: forgotLabel })
4041
4149
  ] }),
4042
- /* @__PURE__ */ jsx112("button", { className: "oc-btn", type: "submit", style: { width: "100%" }, children: submitLabel })
4150
+ /* @__PURE__ */ jsx118("button", { className: "oc-btn", type: "submit", style: { width: "100%" }, children: submitLabel })
4043
4151
  ] })
4044
4152
  ] }) })
4045
4153
  ] });
4046
4154
  });
4047
4155
 
4048
4156
  // src/blocks/BlockContactGrid.tsx
4049
- import { forwardRef as forwardRef111, useId as useId38 } from "react";
4050
- import { jsx as jsx113, jsxs as jsxs95 } from "react/jsx-runtime";
4051
- var BlockContactGrid = forwardRef111(function BlockContactGrid2({ eyebrow, title, lead, cards, plain = false, className, ...rest }, ref) {
4157
+ import { forwardRef as forwardRef117, useId as useId38 } from "react";
4158
+ import { jsx as jsx119, jsxs as jsxs98 } from "react/jsx-runtime";
4159
+ var BlockContactGrid = forwardRef117(function BlockContactGrid2({ eyebrow, title, lead, cards, plain = false, className, ...rest }, ref) {
4052
4160
  const titleId = `oc-contact-title-${useId38().replace(/[^\w-]/g, "")}`;
4053
- return /* @__PURE__ */ jsxs95("section", { ref, className: cx("oc-block-contact", plain && "oc-block-contact--plain", className), "aria-labelledby": title != null ? titleId : void 0, ...rest, children: [
4054
- (eyebrow != null || title != null || lead != null) && /* @__PURE__ */ jsxs95("div", { className: "oc-block-contact-head", children: [
4055
- eyebrow != null && /* @__PURE__ */ jsx113("p", { className: "oc-eyebrow", children: eyebrow }),
4056
- title != null && /* @__PURE__ */ jsx113("h2", { className: "oc-block-contact-heading", id: titleId, children: title }),
4057
- lead != null && /* @__PURE__ */ jsx113("p", { className: "oc-block-contact-lead", children: lead })
4161
+ return /* @__PURE__ */ jsxs98("section", { ref, className: cx("oc-block-contact", plain && "oc-block-contact--plain", className), "aria-labelledby": title != null ? titleId : void 0, ...rest, children: [
4162
+ (eyebrow != null || title != null || lead != null) && /* @__PURE__ */ jsxs98("div", { className: "oc-block-contact-head", children: [
4163
+ eyebrow != null && /* @__PURE__ */ jsx119("p", { className: "oc-eyebrow", children: eyebrow }),
4164
+ title != null && /* @__PURE__ */ jsx119("h2", { className: "oc-block-contact-heading", id: titleId, children: title }),
4165
+ lead != null && /* @__PURE__ */ jsx119("p", { className: "oc-block-contact-lead", children: lead })
4058
4166
  ] }),
4059
- /* @__PURE__ */ jsx113("div", { className: "oc-block-contact-grid", children: cards.map((card, i) => {
4167
+ /* @__PURE__ */ jsx119("div", { className: "oc-block-contact-grid", children: cards.map((card, i) => {
4060
4168
  const Card2 = card.address ? "address" : "article";
4061
4169
  const Title = card.address ? "span" : "h3";
4062
4170
  const Line = card.address ? "span" : "p";
4063
- return /* @__PURE__ */ jsxs95(Card2, { className: "oc-block-contact-card", children: [
4064
- card.icon != null && /* @__PURE__ */ jsx113("span", { className: cx("oc-product-mark oc-product-mark--sm oc-product-mark--soft", card.accent && `oc-accent--${card.accent}`), "aria-hidden": "true", children: card.icon }),
4065
- /* @__PURE__ */ jsx113(Title, { className: "oc-block-contact-title", children: card.title }),
4171
+ return /* @__PURE__ */ jsxs98(Card2, { className: "oc-block-contact-card", children: [
4172
+ card.icon != null && /* @__PURE__ */ jsx119("span", { className: cx("oc-product-mark oc-product-mark--sm oc-product-mark--soft", card.accent && `oc-accent--${card.accent}`), "aria-hidden": "true", children: card.icon }),
4173
+ /* @__PURE__ */ jsx119(Title, { className: "oc-block-contact-title", children: card.title }),
4066
4174
  card.lines.map(
4067
- (line, j) => line.href ? /* @__PURE__ */ jsx113("a", { className: "oc-block-contact-line", href: line.href, children: line.text }, j) : /* @__PURE__ */ jsx113(Line, { className: "oc-block-contact-line", children: line.text }, j)
4175
+ (line, j) => line.href ? /* @__PURE__ */ jsx119("a", { className: "oc-block-contact-line", href: line.href, children: line.text }, j) : /* @__PURE__ */ jsx119(Line, { className: "oc-block-contact-line", children: line.text }, j)
4068
4176
  )
4069
4177
  ] }, i);
4070
4178
  }) })
@@ -4072,160 +4180,160 @@ var BlockContactGrid = forwardRef111(function BlockContactGrid2({ eyebrow, title
4072
4180
  });
4073
4181
 
4074
4182
  // src/blocks/BlockCta.tsx
4075
- import { forwardRef as forwardRef112 } from "react";
4076
- import { jsx as jsx114, jsxs as jsxs96 } from "react/jsx-runtime";
4077
- var BlockCta = forwardRef112(function BlockCta2({ title, description, actions, className, ...rest }, ref) {
4078
- return /* @__PURE__ */ jsxs96("div", { ref, className: cx("oc-block-cta", className), ...rest, children: [
4079
- /* @__PURE__ */ jsx114("h2", { children: title }),
4080
- description != null && /* @__PURE__ */ jsx114("p", { children: description }),
4081
- actions != null && /* @__PURE__ */ jsx114("div", { className: "oc-block-hero-actions", children: actions })
4183
+ import { forwardRef as forwardRef118 } from "react";
4184
+ import { jsx as jsx120, jsxs as jsxs99 } from "react/jsx-runtime";
4185
+ var BlockCta = forwardRef118(function BlockCta2({ title, description, actions, className, ...rest }, ref) {
4186
+ return /* @__PURE__ */ jsxs99("div", { ref, className: cx("oc-block-cta", className), ...rest, children: [
4187
+ /* @__PURE__ */ jsx120("h2", { children: title }),
4188
+ description != null && /* @__PURE__ */ jsx120("p", { children: description }),
4189
+ actions != null && /* @__PURE__ */ jsx120("div", { className: "oc-block-hero-actions", children: actions })
4082
4190
  ] });
4083
4191
  });
4084
4192
 
4085
4193
  // src/blocks/BlockDataTable.tsx
4086
- import { forwardRef as forwardRef113 } from "react";
4087
- import { jsx as jsx115, jsxs as jsxs97 } from "react/jsx-runtime";
4088
- var BlockDataTable = forwardRef113(function BlockDataTable2({ title, description, actions, toolbar, bulk, footer, className, children, ...rest }, ref) {
4089
- return /* @__PURE__ */ jsxs97("section", { ref, className: cx("oc-card oc-block-datatable", className), ...rest, children: [
4090
- /* @__PURE__ */ jsxs97("header", { className: "oc-block-datatable-head", children: [
4091
- /* @__PURE__ */ jsxs97("div", { children: [
4092
- title != null && /* @__PURE__ */ jsx115("h2", { className: "oc-block-datatable-title", children: title }),
4093
- description != null && /* @__PURE__ */ jsx115("p", { className: "oc-block-datatable-description", children: description })
4194
+ import { forwardRef as forwardRef119 } from "react";
4195
+ import { jsx as jsx121, jsxs as jsxs100 } from "react/jsx-runtime";
4196
+ var BlockDataTable = forwardRef119(function BlockDataTable2({ title, description, actions, toolbar, bulk, footer, className, children, ...rest }, ref) {
4197
+ return /* @__PURE__ */ jsxs100("section", { ref, className: cx("oc-card oc-block-datatable", className), ...rest, children: [
4198
+ /* @__PURE__ */ jsxs100("header", { className: "oc-block-datatable-head", children: [
4199
+ /* @__PURE__ */ jsxs100("div", { children: [
4200
+ title != null && /* @__PURE__ */ jsx121("h2", { className: "oc-block-datatable-title", children: title }),
4201
+ description != null && /* @__PURE__ */ jsx121("p", { className: "oc-block-datatable-description", children: description })
4094
4202
  ] }),
4095
- actions != null && /* @__PURE__ */ jsx115("div", { children: actions })
4203
+ actions != null && /* @__PURE__ */ jsx121("div", { children: actions })
4096
4204
  ] }),
4097
- /* @__PURE__ */ jsxs97("div", { className: "oc-block-datatable-body", children: [
4098
- toolbar != null && /* @__PURE__ */ jsx115("div", { className: "oc-table-toolbar", children: toolbar }),
4099
- bulk != null && /* @__PURE__ */ jsx115("div", { className: "oc-block-datatable-bulk", children: bulk }),
4205
+ /* @__PURE__ */ jsxs100("div", { className: "oc-block-datatable-body", children: [
4206
+ toolbar != null && /* @__PURE__ */ jsx121("div", { className: "oc-table-toolbar", children: toolbar }),
4207
+ bulk != null && /* @__PURE__ */ jsx121("div", { className: "oc-block-datatable-bulk", children: bulk }),
4100
4208
  children,
4101
- footer != null && /* @__PURE__ */ jsx115("div", { className: "oc-table-footer", children: footer })
4209
+ footer != null && /* @__PURE__ */ jsx121("div", { className: "oc-table-footer", children: footer })
4102
4210
  ] })
4103
4211
  ] });
4104
4212
  });
4105
4213
  function BlockDataTableSpacer() {
4106
- return /* @__PURE__ */ jsx115("span", { className: "oc-table-toolbar-spacer" });
4214
+ return /* @__PURE__ */ jsx121("span", { className: "oc-table-toolbar-spacer" });
4107
4215
  }
4108
4216
  function FilterPills({ className, ...rest }) {
4109
- return /* @__PURE__ */ jsx115("div", { className: cx("oc-filter-pills", className), role: "group", ...rest });
4217
+ return /* @__PURE__ */ jsx121("div", { className: cx("oc-filter-pills", className), role: "group", ...rest });
4110
4218
  }
4111
4219
  function FilterPill({ current, className, ...rest }) {
4112
- return /* @__PURE__ */ jsx115("a", { className: cx("oc-filter-pill", className), "aria-current": current ? "true" : void 0, ...rest });
4220
+ return /* @__PURE__ */ jsx121("a", { className: cx("oc-filter-pill", className), "aria-current": current ? "true" : void 0, ...rest });
4113
4221
  }
4114
4222
 
4115
4223
  // src/blocks/BlockFaq.tsx
4116
- import { forwardRef as forwardRef114, useId as useId39 } from "react";
4117
- import { jsx as jsx116, jsxs as jsxs98 } from "react/jsx-runtime";
4118
- var BlockFaq = forwardRef114(function BlockFaq2({ eyebrow, title, lead, items, openIndex = 0, more, split = false, name, className, ...rest }, ref) {
4224
+ import { forwardRef as forwardRef120, useId as useId39 } from "react";
4225
+ import { jsx as jsx122, jsxs as jsxs101 } from "react/jsx-runtime";
4226
+ var BlockFaq = forwardRef120(function BlockFaq2({ eyebrow, title, lead, items, openIndex = 0, more, split = false, name, className, ...rest }, ref) {
4119
4227
  const auto = useId39().replace(/[^\w-]/g, "");
4120
4228
  const group = name ?? `oc-faq-${auto}`;
4121
4229
  const titleId = `oc-faq-title-${auto}`;
4122
- return /* @__PURE__ */ jsx116("section", { ref, className: cx("oc-block-faq", split && "oc-block-faq--split", className), "aria-labelledby": titleId, ...rest, children: /* @__PURE__ */ jsxs98("div", { className: "oc-block-faq-inner", children: [
4123
- /* @__PURE__ */ jsxs98("div", { className: "oc-block-faq-head", children: [
4124
- eyebrow != null && /* @__PURE__ */ jsx116("p", { className: "oc-eyebrow", children: eyebrow }),
4125
- /* @__PURE__ */ jsx116("h2", { className: "oc-block-faq-title", id: titleId, children: title }),
4126
- lead != null && /* @__PURE__ */ jsx116("p", { className: "oc-block-faq-lead", children: lead })
4230
+ return /* @__PURE__ */ jsx122("section", { ref, className: cx("oc-block-faq", split && "oc-block-faq--split", className), "aria-labelledby": titleId, ...rest, children: /* @__PURE__ */ jsxs101("div", { className: "oc-block-faq-inner", children: [
4231
+ /* @__PURE__ */ jsxs101("div", { className: "oc-block-faq-head", children: [
4232
+ eyebrow != null && /* @__PURE__ */ jsx122("p", { className: "oc-eyebrow", children: eyebrow }),
4233
+ /* @__PURE__ */ jsx122("h2", { className: "oc-block-faq-title", id: titleId, children: title }),
4234
+ lead != null && /* @__PURE__ */ jsx122("p", { className: "oc-block-faq-lead", children: lead })
4127
4235
  ] }),
4128
- /* @__PURE__ */ jsx116("div", { className: "oc-accordion oc-block-faq-list", children: items.map((item, i) => (
4236
+ /* @__PURE__ */ jsx122("div", { className: "oc-accordion oc-block-faq-list", children: items.map((item, i) => (
4129
4237
  // "name" groups the items; React 19 passes it through, older versions too (unknown attribute on details).
4130
- /* @__PURE__ */ jsxs98("details", { className: "oc-accordion-item", ...{ name: group }, open: i === openIndex || void 0, children: [
4131
- /* @__PURE__ */ jsx116("summary", { className: "oc-accordion-trigger", children: item.question }),
4132
- /* @__PURE__ */ jsx116("div", { className: "oc-accordion-content", children: item.answer })
4238
+ /* @__PURE__ */ jsxs101("details", { className: "oc-accordion-item", ...{ name: group }, open: i === openIndex || void 0, children: [
4239
+ /* @__PURE__ */ jsx122("summary", { className: "oc-accordion-trigger", children: item.question }),
4240
+ /* @__PURE__ */ jsx122("div", { className: "oc-accordion-content", children: item.answer })
4133
4241
  ] }, i)
4134
4242
  )) }),
4135
- more != null && /* @__PURE__ */ jsx116("p", { className: "oc-block-faq-more", children: more })
4243
+ more != null && /* @__PURE__ */ jsx122("p", { className: "oc-block-faq-more", children: more })
4136
4244
  ] }) });
4137
4245
  });
4138
4246
 
4139
4247
  // src/blocks/BlockFeatures.tsx
4140
- import { forwardRef as forwardRef115 } from "react";
4141
- import { jsx as jsx117, jsxs as jsxs99 } from "react/jsx-runtime";
4142
- var BlockFeatures = forwardRef115(function BlockFeatures2({ title, description, features, className, ...rest }, ref) {
4143
- return /* @__PURE__ */ jsxs99("div", { ref, className: cx("oc-block-features", className), ...rest, children: [
4144
- title != null && /* @__PURE__ */ jsx117("h2", { children: title }),
4145
- description != null && /* @__PURE__ */ jsx117("p", { children: description }),
4146
- /* @__PURE__ */ jsx117("div", { className: "oc-block-features-grid", children: features.map((f, i) => /* @__PURE__ */ jsxs99("div", { className: "oc-block-feature-card", children: [
4147
- f.icon != null && /* @__PURE__ */ jsx117("div", { className: "oc-block-feature-icon", children: f.icon }),
4148
- /* @__PURE__ */ jsx117("h3", { children: f.title }),
4149
- f.description != null && /* @__PURE__ */ jsx117("p", { children: f.description })
4248
+ import { forwardRef as forwardRef121 } from "react";
4249
+ import { jsx as jsx123, jsxs as jsxs102 } from "react/jsx-runtime";
4250
+ var BlockFeatures = forwardRef121(function BlockFeatures2({ title, description, features, className, ...rest }, ref) {
4251
+ return /* @__PURE__ */ jsxs102("div", { ref, className: cx("oc-block-features", className), ...rest, children: [
4252
+ title != null && /* @__PURE__ */ jsx123("h2", { children: title }),
4253
+ description != null && /* @__PURE__ */ jsx123("p", { children: description }),
4254
+ /* @__PURE__ */ jsx123("div", { className: "oc-block-features-grid", children: features.map((f, i) => /* @__PURE__ */ jsxs102("div", { className: "oc-block-feature-card", children: [
4255
+ f.icon != null && /* @__PURE__ */ jsx123("div", { className: "oc-block-feature-icon", children: f.icon }),
4256
+ /* @__PURE__ */ jsx123("h3", { children: f.title }),
4257
+ f.description != null && /* @__PURE__ */ jsx123("p", { children: f.description })
4150
4258
  ] }, i)) })
4151
4259
  ] });
4152
4260
  });
4153
4261
 
4154
4262
  // src/blocks/BlockFooter.tsx
4155
- import { forwardRef as forwardRef116 } from "react";
4156
- import { jsx as jsx118, jsxs as jsxs100 } from "react/jsx-runtime";
4157
- var BlockFooter = forwardRef116(function BlockFooter2({ columns, copyright, credit, className, ...rest }, ref) {
4158
- return /* @__PURE__ */ jsxs100("div", { ref, className: cx("oc-block-footer", className), ...rest, children: [
4159
- /* @__PURE__ */ jsx118("div", { className: "oc-block-footer-grid", children: columns.map((col, i) => /* @__PURE__ */ jsxs100("div", { className: "oc-block-footer-col", children: [
4160
- /* @__PURE__ */ jsx118("h4", { children: col.title }),
4161
- /* @__PURE__ */ jsx118("ul", { children: col.links.map((l, j) => /* @__PURE__ */ jsx118("li", { children: /* @__PURE__ */ jsx118("a", { href: l.href, children: l.label }) }, j)) })
4263
+ import { forwardRef as forwardRef122 } from "react";
4264
+ import { jsx as jsx124, jsxs as jsxs103 } from "react/jsx-runtime";
4265
+ var BlockFooter = forwardRef122(function BlockFooter2({ columns, copyright, credit, className, ...rest }, ref) {
4266
+ return /* @__PURE__ */ jsxs103("div", { ref, className: cx("oc-block-footer", className), ...rest, children: [
4267
+ /* @__PURE__ */ jsx124("div", { className: "oc-block-footer-grid", children: columns.map((col, i) => /* @__PURE__ */ jsxs103("div", { className: "oc-block-footer-col", children: [
4268
+ /* @__PURE__ */ jsx124("h4", { children: col.title }),
4269
+ /* @__PURE__ */ jsx124("ul", { children: col.links.map((l, j) => /* @__PURE__ */ jsx124("li", { children: /* @__PURE__ */ jsx124("a", { href: l.href, children: l.label }) }, j)) })
4162
4270
  ] }, i)) }),
4163
- (copyright != null || credit != null) && /* @__PURE__ */ jsxs100("div", { className: "oc-block-footer-bottom", children: [
4164
- /* @__PURE__ */ jsx118("span", { children: copyright }),
4165
- /* @__PURE__ */ jsx118("span", { children: credit })
4271
+ (copyright != null || credit != null) && /* @__PURE__ */ jsxs103("div", { className: "oc-block-footer-bottom", children: [
4272
+ /* @__PURE__ */ jsx124("span", { children: copyright }),
4273
+ /* @__PURE__ */ jsx124("span", { children: credit })
4166
4274
  ] })
4167
4275
  ] });
4168
4276
  });
4169
4277
 
4170
4278
  // src/blocks/BlockFormPage.tsx
4171
- import { forwardRef as forwardRef117 } from "react";
4172
- import { jsx as jsx119, jsxs as jsxs101 } from "react/jsx-runtime";
4173
- var BlockFormPage = forwardRef117(function BlockFormPage2({ actions, className, children, ...rest }, ref) {
4174
- return /* @__PURE__ */ jsxs101("form", { ref, className: cx("oc-block-formpage", className), ...rest, children: [
4279
+ import { forwardRef as forwardRef123 } from "react";
4280
+ import { jsx as jsx125, jsxs as jsxs104 } from "react/jsx-runtime";
4281
+ var BlockFormPage = forwardRef123(function BlockFormPage2({ actions, className, children, ...rest }, ref) {
4282
+ return /* @__PURE__ */ jsxs104("form", { ref, className: cx("oc-block-formpage", className), ...rest, children: [
4175
4283
  children,
4176
- actions != null && /* @__PURE__ */ jsx119("div", { className: "oc-block-formpage-actions", children: actions })
4284
+ actions != null && /* @__PURE__ */ jsx125("div", { className: "oc-block-formpage-actions", children: actions })
4177
4285
  ] });
4178
4286
  });
4179
4287
  function BlockFormPageGrid({ className, ...rest }) {
4180
- return /* @__PURE__ */ jsx119("div", { className: cx("oc-block-formpage-grid", className), ...rest });
4288
+ return /* @__PURE__ */ jsx125("div", { className: cx("oc-block-formpage-grid", className), ...rest });
4181
4289
  }
4182
4290
 
4183
4291
  // src/blocks/BlockHero.tsx
4184
- import { forwardRef as forwardRef118 } from "react";
4185
- import { jsx as jsx120, jsxs as jsxs102 } from "react/jsx-runtime";
4186
- var BlockHero = forwardRef118(function BlockHero2({ badge, title, description, actions, className, ...rest }, ref) {
4187
- return /* @__PURE__ */ jsxs102("div", { ref, className: cx("oc-block-hero", className), ...rest, children: [
4188
- badge != null && /* @__PURE__ */ jsx120("span", { className: "oc-block-hero-badge", children: badge }),
4189
- /* @__PURE__ */ jsx120("h1", { children: title }),
4190
- description != null && /* @__PURE__ */ jsx120("p", { children: description }),
4191
- actions != null && /* @__PURE__ */ jsx120("div", { className: "oc-block-hero-actions", children: actions })
4292
+ import { forwardRef as forwardRef124 } from "react";
4293
+ import { jsx as jsx126, jsxs as jsxs105 } from "react/jsx-runtime";
4294
+ var BlockHero = forwardRef124(function BlockHero2({ badge, title, description, actions, className, ...rest }, ref) {
4295
+ return /* @__PURE__ */ jsxs105("div", { ref, className: cx("oc-block-hero", className), ...rest, children: [
4296
+ badge != null && /* @__PURE__ */ jsx126("span", { className: "oc-block-hero-badge", children: badge }),
4297
+ /* @__PURE__ */ jsx126("h1", { children: title }),
4298
+ description != null && /* @__PURE__ */ jsx126("p", { children: description }),
4299
+ actions != null && /* @__PURE__ */ jsx126("div", { className: "oc-block-hero-actions", children: actions })
4192
4300
  ] });
4193
4301
  });
4194
4302
 
4195
4303
  // src/blocks/BlockHeroCode.tsx
4196
- import { forwardRef as forwardRef119 } from "react";
4197
- import { jsx as jsx121, jsxs as jsxs103 } from "react/jsx-runtime";
4304
+ import { forwardRef as forwardRef125 } from "react";
4305
+ import { jsx as jsx127, jsxs as jsxs106 } from "react/jsx-runtime";
4198
4306
  var DEFAULT_TILES = [
4199
4307
  { glyph: "\u25C6", accent: "green", style: { inset: "-0.5rem auto auto 8%" } },
4200
4308
  { glyph: "\u25C9", accent: "violet", style: { inset: "0 6% auto auto", animationDelay: "-2s" } },
4201
4309
  { glyph: "\u25B2", accent: "orange", style: { inset: "auto 10% -0.5rem auto", animationDelay: "-4s" } }
4202
4310
  ];
4203
- var BlockHeroCode = forwardRef119(function BlockHeroCode2({ eyebrow, title, lead, actions, codeTitle, code, tiles = DEFAULT_TILES, className, ...rest }, ref) {
4204
- return /* @__PURE__ */ jsx121("section", { ref, className: cx("oc-section-pad", className), ...rest, children: /* @__PURE__ */ jsxs103("div", { className: "oc-container oc-split", children: [
4205
- /* @__PURE__ */ jsxs103("div", { children: [
4206
- eyebrow != null && /* @__PURE__ */ jsx121("p", { className: "oc-eyebrow", children: eyebrow }),
4207
- /* @__PURE__ */ jsx121("h1", { className: "oc-display", children: title }),
4208
- lead != null && /* @__PURE__ */ jsx121("p", { className: "oc-lead", children: lead }),
4209
- actions != null && /* @__PURE__ */ jsx121("div", { className: "flex flex-wrap gap-1 mt-2", children: actions })
4311
+ var BlockHeroCode = forwardRef125(function BlockHeroCode2({ eyebrow, title, lead, actions, codeTitle, code, tiles = DEFAULT_TILES, className, ...rest }, ref) {
4312
+ return /* @__PURE__ */ jsx127("section", { ref, className: cx("oc-section-pad", className), ...rest, children: /* @__PURE__ */ jsxs106("div", { className: "oc-container oc-split", children: [
4313
+ /* @__PURE__ */ jsxs106("div", { children: [
4314
+ eyebrow != null && /* @__PURE__ */ jsx127("p", { className: "oc-eyebrow", children: eyebrow }),
4315
+ /* @__PURE__ */ jsx127("h1", { className: "oc-display", children: title }),
4316
+ lead != null && /* @__PURE__ */ jsx127("p", { className: "oc-lead", children: lead }),
4317
+ actions != null && /* @__PURE__ */ jsx127("div", { className: "flex flex-wrap gap-1 mt-2", children: actions })
4210
4318
  ] }),
4211
- /* @__PURE__ */ jsxs103("div", { className: "relative p-2", children: [
4212
- tiles.map((tile, i) => /* @__PURE__ */ jsx121("span", { className: `oc-icon-tile oc-icon-tile--float oc-accent--${tile.accent} absolute`, style: tile.style, "aria-hidden": "true", children: tile.glyph }, i)),
4213
- /* @__PURE__ */ jsxs103("div", { className: "oc-code-window", children: [
4214
- /* @__PURE__ */ jsxs103("div", { className: "oc-code-window__bar", children: [
4215
- /* @__PURE__ */ jsx121("i", {}),
4216
- /* @__PURE__ */ jsx121("i", {}),
4217
- /* @__PURE__ */ jsx121("i", {}),
4218
- codeTitle != null && /* @__PURE__ */ jsx121("span", { className: "oc-code-window__title", children: codeTitle })
4319
+ /* @__PURE__ */ jsxs106("div", { className: "relative p-2", children: [
4320
+ tiles.map((tile, i) => /* @__PURE__ */ jsx127("span", { className: `oc-icon-tile oc-icon-tile--float oc-accent--${tile.accent} absolute`, style: tile.style, "aria-hidden": "true", children: tile.glyph }, i)),
4321
+ /* @__PURE__ */ jsxs106("div", { className: "oc-code-window", children: [
4322
+ /* @__PURE__ */ jsxs106("div", { className: "oc-code-window__bar", children: [
4323
+ /* @__PURE__ */ jsx127("i", {}),
4324
+ /* @__PURE__ */ jsx127("i", {}),
4325
+ /* @__PURE__ */ jsx127("i", {}),
4326
+ codeTitle != null && /* @__PURE__ */ jsx127("span", { className: "oc-code-window__title", children: codeTitle })
4219
4327
  ] }),
4220
- /* @__PURE__ */ jsx121("pre", { className: "oc-code-window__body", children: code })
4328
+ /* @__PURE__ */ jsx127("pre", { className: "oc-code-window__body", children: code })
4221
4329
  ] })
4222
4330
  ] })
4223
4331
  ] }) });
4224
4332
  });
4225
4333
 
4226
4334
  // src/blocks/BlockHeroOrbit.tsx
4227
- import { forwardRef as forwardRef120 } from "react";
4228
- import { jsx as jsx122, jsxs as jsxs104 } from "react/jsx-runtime";
4335
+ import { forwardRef as forwardRef126 } from "react";
4336
+ import { jsx as jsx128, jsxs as jsxs107 } from "react/jsx-runtime";
4229
4337
  var DEFAULT_MARKS = [
4230
4338
  { glyph: "\u25C6", accent: "green" },
4231
4339
  { glyph: "\u25C9", accent: "violet" },
@@ -4234,333 +4342,333 @@ var DEFAULT_MARKS = [
4234
4342
  { glyph: "\u2665", accent: "red" },
4235
4343
  { glyph: "\u2600", accent: "yellow" }
4236
4344
  ];
4237
- var BlockHeroOrbit = forwardRef120(function BlockHeroOrbit2({ eyebrow, title, lead, actions, marks = DEFAULT_MARKS, codeTitle, code = "", center, duration, className, ...rest }, ref) {
4345
+ var BlockHeroOrbit = forwardRef126(function BlockHeroOrbit2({ eyebrow, title, lead, actions, marks = DEFAULT_MARKS, codeTitle, code = "", center, duration, className, ...rest }, ref) {
4238
4346
  const visualStyle = duration ? { "--oc-orbit-duration": duration } : void 0;
4239
- return /* @__PURE__ */ jsx122("section", { ref, className: cx("oc-block-orbit oc-section-pad", className), ...rest, children: /* @__PURE__ */ jsxs104("div", { className: "oc-container oc-split", children: [
4240
- /* @__PURE__ */ jsxs104("div", { children: [
4241
- eyebrow != null && /* @__PURE__ */ jsx122("p", { className: "oc-eyebrow", children: eyebrow }),
4242
- /* @__PURE__ */ jsx122("h1", { className: "oc-display", children: title }),
4243
- lead != null && /* @__PURE__ */ jsx122("p", { className: "oc-lead", children: lead }),
4244
- actions != null && /* @__PURE__ */ jsx122("div", { className: "flex flex-wrap gap-1 mt-2", children: actions })
4347
+ return /* @__PURE__ */ jsx128("section", { ref, className: cx("oc-block-orbit oc-section-pad", className), ...rest, children: /* @__PURE__ */ jsxs107("div", { className: "oc-container oc-split", children: [
4348
+ /* @__PURE__ */ jsxs107("div", { children: [
4349
+ eyebrow != null && /* @__PURE__ */ jsx128("p", { className: "oc-eyebrow", children: eyebrow }),
4350
+ /* @__PURE__ */ jsx128("h1", { className: "oc-display", children: title }),
4351
+ lead != null && /* @__PURE__ */ jsx128("p", { className: "oc-lead", children: lead }),
4352
+ actions != null && /* @__PURE__ */ jsx128("div", { className: "flex flex-wrap gap-1 mt-2", children: actions })
4245
4353
  ] }),
4246
- /* @__PURE__ */ jsxs104("div", { className: "oc-block-orbit-visual", style: visualStyle, children: [
4247
- /* @__PURE__ */ jsx122("div", { className: "oc-block-orbit-ring", "aria-hidden": "true", children: marks.map((mark, i) => /* @__PURE__ */ jsx122("span", { className: "oc-block-orbit-mark", style: { "--oc-orbit-angle": `${360 / marks.length * i}deg` }, children: /* @__PURE__ */ jsx122("span", { className: `oc-product-mark oc-product-mark--sm oc-accent--${mark.accent}`, children: mark.glyph }) }, i)) }),
4248
- center ?? /* @__PURE__ */ jsxs104("div", { className: "oc-code-window oc-block-orbit-center", children: [
4249
- /* @__PURE__ */ jsxs104("div", { className: "oc-code-window__bar", children: [
4250
- /* @__PURE__ */ jsx122("i", {}),
4251
- /* @__PURE__ */ jsx122("i", {}),
4252
- /* @__PURE__ */ jsx122("i", {}),
4253
- codeTitle != null && /* @__PURE__ */ jsx122("span", { className: "oc-code-window__title", children: codeTitle })
4354
+ /* @__PURE__ */ jsxs107("div", { className: "oc-block-orbit-visual", style: visualStyle, children: [
4355
+ /* @__PURE__ */ jsx128("div", { className: "oc-block-orbit-ring", "aria-hidden": "true", children: marks.map((mark, i) => /* @__PURE__ */ jsx128("span", { className: "oc-block-orbit-mark", style: { "--oc-orbit-angle": `${360 / marks.length * i}deg` }, children: /* @__PURE__ */ jsx128("span", { className: `oc-product-mark oc-product-mark--sm oc-accent--${mark.accent}`, children: mark.glyph }) }, i)) }),
4356
+ center ?? /* @__PURE__ */ jsxs107("div", { className: "oc-code-window oc-block-orbit-center", children: [
4357
+ /* @__PURE__ */ jsxs107("div", { className: "oc-code-window__bar", children: [
4358
+ /* @__PURE__ */ jsx128("i", {}),
4359
+ /* @__PURE__ */ jsx128("i", {}),
4360
+ /* @__PURE__ */ jsx128("i", {}),
4361
+ codeTitle != null && /* @__PURE__ */ jsx128("span", { className: "oc-code-window__title", children: codeTitle })
4254
4362
  ] }),
4255
- /* @__PURE__ */ jsx122("pre", { className: "oc-code-window__body", children: code })
4363
+ /* @__PURE__ */ jsx128("pre", { className: "oc-code-window__body", children: code })
4256
4364
  ] })
4257
4365
  ] })
4258
4366
  ] }) });
4259
4367
  });
4260
4368
 
4261
4369
  // src/blocks/BlockHeroSplit.tsx
4262
- import { forwardRef as forwardRef121 } from "react";
4263
- import { jsx as jsx123, jsxs as jsxs105 } from "react/jsx-runtime";
4264
- var BlockHeroSplit = forwardRef121(function BlockHeroSplit2({ title, description, actions, visual, className, ...rest }, ref) {
4265
- return /* @__PURE__ */ jsxs105("div", { ref, className: cx("oc-block-hero-split", className), ...rest, children: [
4266
- /* @__PURE__ */ jsxs105("div", { children: [
4267
- /* @__PURE__ */ jsx123("h1", { children: title }),
4268
- description != null && /* @__PURE__ */ jsx123("p", { children: description }),
4269
- actions != null && /* @__PURE__ */ jsx123("div", { className: "oc-block-hero-actions justify-start", children: actions })
4370
+ import { forwardRef as forwardRef127 } from "react";
4371
+ import { jsx as jsx129, jsxs as jsxs108 } from "react/jsx-runtime";
4372
+ var BlockHeroSplit = forwardRef127(function BlockHeroSplit2({ title, description, actions, visual, className, ...rest }, ref) {
4373
+ return /* @__PURE__ */ jsxs108("div", { ref, className: cx("oc-block-hero-split", className), ...rest, children: [
4374
+ /* @__PURE__ */ jsxs108("div", { children: [
4375
+ /* @__PURE__ */ jsx129("h1", { children: title }),
4376
+ description != null && /* @__PURE__ */ jsx129("p", { children: description }),
4377
+ actions != null && /* @__PURE__ */ jsx129("div", { className: "oc-block-hero-actions justify-start", children: actions })
4270
4378
  ] }),
4271
- /* @__PURE__ */ jsx123("div", { className: "oc-block-hero-visual", children: visual })
4379
+ /* @__PURE__ */ jsx129("div", { className: "oc-block-hero-visual", children: visual })
4272
4380
  ] });
4273
4381
  });
4274
4382
 
4275
4383
  // src/blocks/BlockModuleHeader.tsx
4276
- import { forwardRef as forwardRef122 } from "react";
4277
- import { jsx as jsx124, jsxs as jsxs106 } from "react/jsx-runtime";
4278
- var BlockModuleHeader = forwardRef122(function BlockModuleHeader2({ icon, title, intro, meta, actions, className, ...rest }, ref) {
4279
- return /* @__PURE__ */ jsxs106("header", { ref, className: cx("oc-block-modulehead", className), ...rest, children: [
4280
- /* @__PURE__ */ jsxs106("div", { className: "oc-block-modulehead-band", children: [
4281
- icon != null && /* @__PURE__ */ jsx124("span", { className: "oc-block-modulehead-icon", "aria-hidden": "true", children: icon }),
4282
- /* @__PURE__ */ jsxs106("div", { className: "oc-block-modulehead-body", children: [
4283
- /* @__PURE__ */ jsx124("h1", { className: "oc-block-modulehead-title", children: title }),
4284
- intro != null && /* @__PURE__ */ jsx124("p", { className: "oc-block-modulehead-intro", children: intro }),
4285
- meta != null && /* @__PURE__ */ jsx124("div", { className: "oc-block-modulehead-meta", children: meta })
4384
+ import { forwardRef as forwardRef128 } from "react";
4385
+ import { jsx as jsx130, jsxs as jsxs109 } from "react/jsx-runtime";
4386
+ var BlockModuleHeader = forwardRef128(function BlockModuleHeader2({ icon, title, intro, meta, actions, className, ...rest }, ref) {
4387
+ return /* @__PURE__ */ jsxs109("header", { ref, className: cx("oc-block-modulehead", className), ...rest, children: [
4388
+ /* @__PURE__ */ jsxs109("div", { className: "oc-block-modulehead-band", children: [
4389
+ icon != null && /* @__PURE__ */ jsx130("span", { className: "oc-block-modulehead-icon", "aria-hidden": "true", children: icon }),
4390
+ /* @__PURE__ */ jsxs109("div", { className: "oc-block-modulehead-body", children: [
4391
+ /* @__PURE__ */ jsx130("h1", { className: "oc-block-modulehead-title", children: title }),
4392
+ intro != null && /* @__PURE__ */ jsx130("p", { className: "oc-block-modulehead-intro", children: intro }),
4393
+ meta != null && /* @__PURE__ */ jsx130("div", { className: "oc-block-modulehead-meta", children: meta })
4286
4394
  ] })
4287
4395
  ] }),
4288
- actions != null && /* @__PURE__ */ jsx124("div", { className: "oc-block-modulehead-actions", children: actions })
4396
+ actions != null && /* @__PURE__ */ jsx130("div", { className: "oc-block-modulehead-actions", children: actions })
4289
4397
  ] });
4290
4398
  });
4291
4399
 
4292
4400
  // src/blocks/BlockPageHero.tsx
4293
- import { forwardRef as forwardRef123 } from "react";
4294
- import { jsx as jsx125, jsxs as jsxs107 } from "react/jsx-runtime";
4295
- var BlockPageHero = forwardRef123(function BlockPageHero2({ eyebrow, title, description, actions, className, ...rest }, ref) {
4296
- return /* @__PURE__ */ jsxs107("section", { ref, className: cx("oc-hero", className), ...rest, children: [
4297
- eyebrow != null && /* @__PURE__ */ jsx125("span", { className: "oc-hero-eyebrow", children: eyebrow }),
4298
- /* @__PURE__ */ jsx125("h1", { className: "oc-hero-title", children: title }),
4299
- description != null && /* @__PURE__ */ jsx125("p", { className: "oc-hero-text", children: description }),
4300
- actions != null && /* @__PURE__ */ jsx125("div", { className: "oc-hero-actions", children: actions })
4401
+ import { forwardRef as forwardRef129 } from "react";
4402
+ import { jsx as jsx131, jsxs as jsxs110 } from "react/jsx-runtime";
4403
+ var BlockPageHero = forwardRef129(function BlockPageHero2({ eyebrow, title, description, actions, className, ...rest }, ref) {
4404
+ return /* @__PURE__ */ jsxs110("section", { ref, className: cx("oc-hero", className), ...rest, children: [
4405
+ eyebrow != null && /* @__PURE__ */ jsx131("span", { className: "oc-hero-eyebrow", children: eyebrow }),
4406
+ /* @__PURE__ */ jsx131("h1", { className: "oc-hero-title", children: title }),
4407
+ description != null && /* @__PURE__ */ jsx131("p", { className: "oc-hero-text", children: description }),
4408
+ actions != null && /* @__PURE__ */ jsx131("div", { className: "oc-hero-actions", children: actions })
4301
4409
  ] });
4302
4410
  });
4303
4411
 
4304
4412
  // src/blocks/BlockPortfolioGrid.tsx
4305
- import { forwardRef as forwardRef124, useId as useId40 } from "react";
4306
- import { jsx as jsx126, jsxs as jsxs108 } from "react/jsx-runtime";
4307
- var BlockPortfolioGrid = forwardRef124(function BlockPortfolioGrid2({ eyebrow, title, lead, link, projects, two = false, className, ...rest }, ref) {
4413
+ import { forwardRef as forwardRef130, useId as useId40 } from "react";
4414
+ import { jsx as jsx132, jsxs as jsxs111 } from "react/jsx-runtime";
4415
+ var BlockPortfolioGrid = forwardRef130(function BlockPortfolioGrid2({ eyebrow, title, lead, link, projects, two = false, className, ...rest }, ref) {
4308
4416
  const titleId = `oc-portfolio-title-${useId40().replace(/[^\w-]/g, "")}`;
4309
- return /* @__PURE__ */ jsx126("section", { ref, className: cx("oc-block-portfolio oc-section-pad", two && "oc-block-portfolio--two", className), "aria-labelledby": titleId, ...rest, children: /* @__PURE__ */ jsxs108("div", { className: "oc-container", children: [
4310
- /* @__PURE__ */ jsxs108("div", { className: "oc-block-portfolio-head", children: [
4311
- /* @__PURE__ */ jsxs108("div", { children: [
4312
- eyebrow != null && /* @__PURE__ */ jsx126("p", { className: "oc-eyebrow", children: eyebrow }),
4313
- /* @__PURE__ */ jsx126("h2", { className: "oc-display oc-display--md", id: titleId, children: title }),
4314
- lead != null && /* @__PURE__ */ jsx126("p", { className: "oc-block-portfolio-lead", children: lead })
4417
+ return /* @__PURE__ */ jsx132("section", { ref, className: cx("oc-block-portfolio oc-section-pad", two && "oc-block-portfolio--two", className), "aria-labelledby": titleId, ...rest, children: /* @__PURE__ */ jsxs111("div", { className: "oc-container", children: [
4418
+ /* @__PURE__ */ jsxs111("div", { className: "oc-block-portfolio-head", children: [
4419
+ /* @__PURE__ */ jsxs111("div", { children: [
4420
+ eyebrow != null && /* @__PURE__ */ jsx132("p", { className: "oc-eyebrow", children: eyebrow }),
4421
+ /* @__PURE__ */ jsx132("h2", { className: "oc-display oc-display--md", id: titleId, children: title }),
4422
+ lead != null && /* @__PURE__ */ jsx132("p", { className: "oc-block-portfolio-lead", children: lead })
4315
4423
  ] }),
4316
4424
  link
4317
4425
  ] }),
4318
- /* @__PURE__ */ jsx126("div", { className: "oc-block-portfolio-grid", children: projects.map(({ accent, className: cardClass, ...card }, i) => /* @__PURE__ */ jsx126(ProjectCard, { className: cx(accent && `oc-accent--${accent}`, cardClass), ...card }, i)) })
4426
+ /* @__PURE__ */ jsx132("div", { className: "oc-block-portfolio-grid", children: projects.map(({ accent, className: cardClass, ...card }, i) => /* @__PURE__ */ jsx132(ProjectCard, { className: cx(accent && `oc-accent--${accent}`, cardClass), ...card }, i)) })
4319
4427
  ] }) });
4320
4428
  });
4321
4429
 
4322
4430
  // src/blocks/BlockPricing.tsx
4323
- import { forwardRef as forwardRef125 } from "react";
4324
- import { Fragment as Fragment27, jsx as jsx127, jsxs as jsxs109 } from "react/jsx-runtime";
4325
- var BlockPricing = forwardRef125(function BlockPricing2({ title, description, plans, className, ...rest }, ref) {
4326
- return /* @__PURE__ */ jsxs109("div", { ref, className: cx("oc-block-pricing", className), ...rest, children: [
4327
- title != null && /* @__PURE__ */ jsx127("h2", { children: title }),
4328
- description != null && /* @__PURE__ */ jsx127("p", { children: description }),
4329
- /* @__PURE__ */ jsx127("div", { className: "oc-block-pricing-grid", children: plans.map((plan, i) => {
4431
+ import { forwardRef as forwardRef131 } from "react";
4432
+ import { Fragment as Fragment28, jsx as jsx133, jsxs as jsxs112 } from "react/jsx-runtime";
4433
+ var BlockPricing = forwardRef131(function BlockPricing2({ title, description, plans, className, ...rest }, ref) {
4434
+ return /* @__PURE__ */ jsxs112("div", { ref, className: cx("oc-block-pricing", className), ...rest, children: [
4435
+ title != null && /* @__PURE__ */ jsx133("h2", { children: title }),
4436
+ description != null && /* @__PURE__ */ jsx133("p", { children: description }),
4437
+ /* @__PURE__ */ jsx133("div", { className: "oc-block-pricing-grid", children: plans.map((plan, i) => {
4330
4438
  const variant = plan.featured ? "default" : "outline";
4331
- return /* @__PURE__ */ jsxs109("div", { className: cx("oc-block-pricing-card", plan.featured && "oc-block-pricing-card--featured"), children: [
4332
- /* @__PURE__ */ jsx127("p", { className: "oc-block-pricing-name", children: plan.name }),
4333
- plan.description != null && /* @__PURE__ */ jsx127("p", { className: "oc-block-pricing-desc", children: plan.description }),
4334
- /* @__PURE__ */ jsxs109("p", { className: "oc-block-pricing-price", children: [
4439
+ return /* @__PURE__ */ jsxs112("div", { className: cx("oc-block-pricing-card", plan.featured && "oc-block-pricing-card--featured"), children: [
4440
+ /* @__PURE__ */ jsx133("p", { className: "oc-block-pricing-name", children: plan.name }),
4441
+ plan.description != null && /* @__PURE__ */ jsx133("p", { className: "oc-block-pricing-desc", children: plan.description }),
4442
+ /* @__PURE__ */ jsxs112("p", { className: "oc-block-pricing-price", children: [
4335
4443
  plan.price,
4336
- plan.period != null && /* @__PURE__ */ jsxs109(Fragment27, { children: [
4444
+ plan.period != null && /* @__PURE__ */ jsxs112(Fragment28, { children: [
4337
4445
  " ",
4338
- /* @__PURE__ */ jsx127("span", { children: plan.period })
4446
+ /* @__PURE__ */ jsx133("span", { children: plan.period })
4339
4447
  ] })
4340
4448
  ] }),
4341
- /* @__PURE__ */ jsx127("ul", { className: "oc-block-pricing-features", children: plan.features.map((f, j) => /* @__PURE__ */ jsx127("li", { children: f }, j)) }),
4342
- plan.href ? /* @__PURE__ */ jsx127(ButtonLink, { variant, href: plan.href, style: { width: "100%" }, children: plan.action }) : /* @__PURE__ */ jsx127(Button, { variant, style: { width: "100%" }, onClick: plan.onAction, children: plan.action })
4449
+ /* @__PURE__ */ jsx133("ul", { className: "oc-block-pricing-features", children: plan.features.map((f, j) => /* @__PURE__ */ jsx133("li", { children: f }, j)) }),
4450
+ plan.href ? /* @__PURE__ */ jsx133(ButtonLink, { variant, href: plan.href, style: { width: "100%" }, children: plan.action }) : /* @__PURE__ */ jsx133(Button, { variant, style: { width: "100%" }, onClick: plan.onAction, children: plan.action })
4343
4451
  ] }, i);
4344
4452
  }) })
4345
4453
  ] });
4346
4454
  });
4347
4455
 
4348
4456
  // src/blocks/BlockProcess.tsx
4349
- import { forwardRef as forwardRef126 } from "react";
4350
- import { jsx as jsx128, jsxs as jsxs110 } from "react/jsx-runtime";
4351
- var BlockProcess = forwardRef126(function BlockProcess2({ eyebrow, title, steps, marquee, marqueeLabel = "Technologies", className, ...rest }, ref) {
4352
- return /* @__PURE__ */ jsx128("section", { ref, className: cx("oc-section-pad", className), ...rest, children: /* @__PURE__ */ jsxs110("div", { className: "oc-container", children: [
4353
- eyebrow != null && /* @__PURE__ */ jsx128("p", { className: "oc-eyebrow", children: eyebrow }),
4354
- /* @__PURE__ */ jsx128("h2", { className: "oc-display oc-display--md", children: title }),
4355
- /* @__PURE__ */ jsx128("ol", { className: "oc-steps", children: steps.map((s, i) => /* @__PURE__ */ jsxs110("li", { children: [
4356
- /* @__PURE__ */ jsx128("h3", { children: s.title }),
4357
- s.text != null && /* @__PURE__ */ jsx128("p", { children: s.text })
4457
+ import { forwardRef as forwardRef132 } from "react";
4458
+ import { jsx as jsx134, jsxs as jsxs113 } from "react/jsx-runtime";
4459
+ var BlockProcess = forwardRef132(function BlockProcess2({ eyebrow, title, steps, marquee, marqueeLabel = "Technologies", className, ...rest }, ref) {
4460
+ return /* @__PURE__ */ jsx134("section", { ref, className: cx("oc-section-pad", className), ...rest, children: /* @__PURE__ */ jsxs113("div", { className: "oc-container", children: [
4461
+ eyebrow != null && /* @__PURE__ */ jsx134("p", { className: "oc-eyebrow", children: eyebrow }),
4462
+ /* @__PURE__ */ jsx134("h2", { className: "oc-display oc-display--md", children: title }),
4463
+ /* @__PURE__ */ jsx134("ol", { className: "oc-steps", children: steps.map((s, i) => /* @__PURE__ */ jsxs113("li", { children: [
4464
+ /* @__PURE__ */ jsx134("h3", { children: s.title }),
4465
+ s.text != null && /* @__PURE__ */ jsx134("p", { children: s.text })
4358
4466
  ] }, i)) }),
4359
- marquee && marquee.length > 0 && /* @__PURE__ */ jsx128("div", { className: "oc-marquee mt-4", "aria-label": marqueeLabel, children: /* @__PURE__ */ jsxs110("div", { className: "oc-marquee__track", children: [
4360
- marquee.map((m) => /* @__PURE__ */ jsx128("span", { className: "oc-marquee__item", children: m }, m)),
4361
- marquee.map((m) => /* @__PURE__ */ jsx128("span", { className: "oc-marquee__item", "aria-hidden": "true", children: m }, `dup-${m}`))
4467
+ marquee && marquee.length > 0 && /* @__PURE__ */ jsx134("div", { className: "oc-marquee mt-4", "aria-label": marqueeLabel, children: /* @__PURE__ */ jsxs113("div", { className: "oc-marquee__track", children: [
4468
+ marquee.map((m) => /* @__PURE__ */ jsx134("span", { className: "oc-marquee__item", children: m }, m)),
4469
+ marquee.map((m) => /* @__PURE__ */ jsx134("span", { className: "oc-marquee__item", "aria-hidden": "true", children: m }, `dup-${m}`))
4362
4470
  ] }) })
4363
4471
  ] }) });
4364
4472
  });
4365
4473
 
4366
4474
  // src/blocks/BlockProductGrid.tsx
4367
- import { forwardRef as forwardRef127 } from "react";
4368
- import { jsx as jsx129, jsxs as jsxs111 } from "react/jsx-runtime";
4369
- var BlockProductGrid = forwardRef127(function BlockProductGrid2({ eyebrow, title, products, className, ...rest }, ref) {
4370
- return /* @__PURE__ */ jsx129("section", { ref, className: cx("oc-section-pad", className), ...rest, children: /* @__PURE__ */ jsxs111("div", { className: "oc-container", children: [
4371
- eyebrow != null && /* @__PURE__ */ jsx129("p", { className: "oc-eyebrow", children: eyebrow }),
4372
- /* @__PURE__ */ jsx129("h2", { className: "oc-display oc-display--md", children: title }),
4373
- /* @__PURE__ */ jsx129("div", { className: "oc-card-grid", children: products.map((p, i) => /* @__PURE__ */ jsxs111("a", { className: cx("oc-product-card", p.accent && `oc-accent--${p.accent}`), href: p.href, children: [
4374
- /* @__PURE__ */ jsxs111("div", { className: "oc-product-card__top", children: [
4375
- p.icon != null && /* @__PURE__ */ jsx129("span", { className: "oc-icon-tile", "aria-hidden": "true", children: p.icon }),
4376
- p.pill != null && /* @__PURE__ */ jsx129("span", { className: "oc-pill", children: p.pill })
4475
+ import { forwardRef as forwardRef133 } from "react";
4476
+ import { jsx as jsx135, jsxs as jsxs114 } from "react/jsx-runtime";
4477
+ var BlockProductGrid = forwardRef133(function BlockProductGrid2({ eyebrow, title, products, className, ...rest }, ref) {
4478
+ return /* @__PURE__ */ jsx135("section", { ref, className: cx("oc-section-pad", className), ...rest, children: /* @__PURE__ */ jsxs114("div", { className: "oc-container", children: [
4479
+ eyebrow != null && /* @__PURE__ */ jsx135("p", { className: "oc-eyebrow", children: eyebrow }),
4480
+ /* @__PURE__ */ jsx135("h2", { className: "oc-display oc-display--md", children: title }),
4481
+ /* @__PURE__ */ jsx135("div", { className: "oc-card-grid", children: products.map((p, i) => /* @__PURE__ */ jsxs114("a", { className: cx("oc-product-card", p.accent && `oc-accent--${p.accent}`), href: p.href, children: [
4482
+ /* @__PURE__ */ jsxs114("div", { className: "oc-product-card__top", children: [
4483
+ p.icon != null && /* @__PURE__ */ jsx135("span", { className: "oc-icon-tile", "aria-hidden": "true", children: p.icon }),
4484
+ p.pill != null && /* @__PURE__ */ jsx135("span", { className: "oc-pill", children: p.pill })
4377
4485
  ] }),
4378
- /* @__PURE__ */ jsx129("h3", { className: "oc-product-card__name", children: p.name }),
4379
- p.tagline != null && /* @__PURE__ */ jsx129("p", { className: "oc-product-card__tagline", children: p.tagline }),
4380
- p.summary != null && /* @__PURE__ */ jsx129("p", { className: "oc-product-card__summary", children: p.summary }),
4381
- p.more != null && /* @__PURE__ */ jsx129("span", { className: "oc-product-card__more", children: p.more })
4486
+ /* @__PURE__ */ jsx135("h3", { className: "oc-product-card__name", children: p.name }),
4487
+ p.tagline != null && /* @__PURE__ */ jsx135("p", { className: "oc-product-card__tagline", children: p.tagline }),
4488
+ p.summary != null && /* @__PURE__ */ jsx135("p", { className: "oc-product-card__summary", children: p.summary }),
4489
+ p.more != null && /* @__PURE__ */ jsx135("span", { className: "oc-product-card__more", children: p.more })
4382
4490
  ] }, i)) })
4383
4491
  ] }) });
4384
4492
  });
4385
4493
 
4386
4494
  // src/blocks/BlockProfileHeader.tsx
4387
- import { forwardRef as forwardRef128, useId as useId41 } from "react";
4388
- import { jsx as jsx130, jsxs as jsxs112 } from "react/jsx-runtime";
4389
- var BlockProfileHeader = forwardRef128(function BlockProfileHeader2({ name, meta, bio, avatar, banner, actions, tabs = [], tabsLabel = "Profile sections", compact = false, headingLevel = 1, className, ...rest }, ref) {
4495
+ import { forwardRef as forwardRef134, useId as useId41 } from "react";
4496
+ import { jsx as jsx136, jsxs as jsxs115 } from "react/jsx-runtime";
4497
+ var BlockProfileHeader = forwardRef134(function BlockProfileHeader2({ name, meta, bio, avatar, banner, actions, tabs = [], tabsLabel = "Profile sections", compact = false, headingLevel = 1, className, ...rest }, ref) {
4390
4498
  const nameId = `oc-profile-name-${useId41().replace(/[^\w-]/g, "")}`;
4391
4499
  const Heading3 = headingLevel === 1 ? "h1" : "h2";
4392
4500
  const bannerStyle = banner ? { "--oc-profile-banner": `url("${banner}")` } : void 0;
4393
- return /* @__PURE__ */ jsxs112("section", { ref, className: cx("oc-block-profile", compact && "oc-block-profile--compact", className), "aria-labelledby": nameId, ...rest, children: [
4394
- /* @__PURE__ */ jsx130("div", { className: "oc-block-profile-banner", style: bannerStyle, "aria-hidden": "true" }),
4395
- /* @__PURE__ */ jsxs112("div", { className: "oc-block-profile-bar", children: [
4396
- /* @__PURE__ */ jsx130("span", { className: "oc-avatar oc-block-profile-avatar", "aria-hidden": "true", children: avatar }),
4397
- /* @__PURE__ */ jsxs112("div", { className: "oc-block-profile-info", children: [
4398
- /* @__PURE__ */ jsx130(Heading3, { className: "oc-block-profile-name", id: nameId, children: name }),
4399
- meta != null && /* @__PURE__ */ jsx130("p", { className: "oc-block-profile-meta", children: meta }),
4400
- bio != null && /* @__PURE__ */ jsx130("p", { className: "oc-block-profile-bio", children: bio })
4501
+ return /* @__PURE__ */ jsxs115("section", { ref, className: cx("oc-block-profile", compact && "oc-block-profile--compact", className), "aria-labelledby": nameId, ...rest, children: [
4502
+ /* @__PURE__ */ jsx136("div", { className: "oc-block-profile-banner", style: bannerStyle, "aria-hidden": "true" }),
4503
+ /* @__PURE__ */ jsxs115("div", { className: "oc-block-profile-bar", children: [
4504
+ /* @__PURE__ */ jsx136("span", { className: "oc-avatar oc-block-profile-avatar", "aria-hidden": "true", children: avatar }),
4505
+ /* @__PURE__ */ jsxs115("div", { className: "oc-block-profile-info", children: [
4506
+ /* @__PURE__ */ jsx136(Heading3, { className: "oc-block-profile-name", id: nameId, children: name }),
4507
+ meta != null && /* @__PURE__ */ jsx136("p", { className: "oc-block-profile-meta", children: meta }),
4508
+ bio != null && /* @__PURE__ */ jsx136("p", { className: "oc-block-profile-bio", children: bio })
4401
4509
  ] }),
4402
- actions != null && /* @__PURE__ */ jsx130("div", { className: "oc-block-profile-actions", children: actions })
4510
+ actions != null && /* @__PURE__ */ jsx136("div", { className: "oc-block-profile-actions", children: actions })
4403
4511
  ] }),
4404
- tabs.length > 0 && /* @__PURE__ */ jsx130("nav", { className: "oc-block-profile-tabs", "aria-label": tabsLabel, children: tabs.map((tab, i) => /* @__PURE__ */ jsx130("a", { className: "oc-block-profile-tab", href: tab.href, "aria-current": tab.current ? "page" : void 0, children: tab.label }, i)) })
4512
+ tabs.length > 0 && /* @__PURE__ */ jsx136("nav", { className: "oc-block-profile-tabs", "aria-label": tabsLabel, children: tabs.map((tab, i) => /* @__PURE__ */ jsx136("a", { className: "oc-block-profile-tab", href: tab.href, "aria-current": tab.current ? "page" : void 0, children: tab.label }, i)) })
4405
4513
  ] });
4406
4514
  });
4407
4515
 
4408
4516
  // src/blocks/BlockShowcase.tsx
4409
- import { forwardRef as forwardRef129 } from "react";
4410
- import { jsx as jsx131, jsxs as jsxs113 } from "react/jsx-runtime";
4411
- var BlockShowcase = forwardRef129(function BlockShowcase2({ eyebrow, title, projects, cardMin = "26rem", className, ...rest }, ref) {
4412
- return /* @__PURE__ */ jsx131("section", { ref, className: cx("oc-section-pad", className), ...rest, children: /* @__PURE__ */ jsxs113("div", { className: "oc-container", children: [
4413
- eyebrow != null && /* @__PURE__ */ jsx131("p", { className: "oc-eyebrow", children: eyebrow }),
4414
- /* @__PURE__ */ jsx131("h2", { className: "oc-display oc-display--md", children: title }),
4415
- /* @__PURE__ */ jsx131("div", { className: "oc-card-grid", style: { "--oc-card-min": cardMin }, children: projects.map((p, i) => /* @__PURE__ */ jsxs113("a", { className: cx("oc-product-card", p.accent && `oc-accent--${p.accent}`, "p-0 overflow-hidden"), href: p.href, children: [
4416
- /* @__PURE__ */ jsxs113("span", { className: "oc-browser-frame m-1", children: [
4417
- /* @__PURE__ */ jsxs113("span", { className: "oc-browser-frame__bar", children: [
4418
- /* @__PURE__ */ jsx131("i", {}),
4419
- /* @__PURE__ */ jsx131("i", {}),
4420
- /* @__PURE__ */ jsx131("i", {})
4517
+ import { forwardRef as forwardRef135 } from "react";
4518
+ import { jsx as jsx137, jsxs as jsxs116 } from "react/jsx-runtime";
4519
+ var BlockShowcase = forwardRef135(function BlockShowcase2({ eyebrow, title, projects, cardMin = "26rem", className, ...rest }, ref) {
4520
+ return /* @__PURE__ */ jsx137("section", { ref, className: cx("oc-section-pad", className), ...rest, children: /* @__PURE__ */ jsxs116("div", { className: "oc-container", children: [
4521
+ eyebrow != null && /* @__PURE__ */ jsx137("p", { className: "oc-eyebrow", children: eyebrow }),
4522
+ /* @__PURE__ */ jsx137("h2", { className: "oc-display oc-display--md", children: title }),
4523
+ /* @__PURE__ */ jsx137("div", { className: "oc-card-grid", style: { "--oc-card-min": cardMin }, children: projects.map((p, i) => /* @__PURE__ */ jsxs116("a", { className: cx("oc-product-card", p.accent && `oc-accent--${p.accent}`, "p-0 overflow-hidden"), href: p.href, children: [
4524
+ /* @__PURE__ */ jsxs116("span", { className: "oc-browser-frame m-1", children: [
4525
+ /* @__PURE__ */ jsxs116("span", { className: "oc-browser-frame__bar", children: [
4526
+ /* @__PURE__ */ jsx137("i", {}),
4527
+ /* @__PURE__ */ jsx137("i", {}),
4528
+ /* @__PURE__ */ jsx137("i", {})
4421
4529
  ] }),
4422
- /* @__PURE__ */ jsx131("span", { className: "oc-browser-frame__body", style: p.background ? { background: p.background } : void 0, children: p.image && /* @__PURE__ */ jsx131("img", { src: p.image, alt: p.imageAlt ?? "" }) })
4530
+ /* @__PURE__ */ jsx137("span", { className: "oc-browser-frame__body", style: p.background ? { background: p.background } : void 0, children: p.image && /* @__PURE__ */ jsx137("img", { src: p.image, alt: p.imageAlt ?? "" }) })
4423
4531
  ] }),
4424
- /* @__PURE__ */ jsxs113("span", { className: "grid gap-0.5 p-1.5 pt-0", children: [
4425
- p.pill != null && /* @__PURE__ */ jsx131("span", { className: "oc-pill oc-pill--accent", children: p.pill }),
4426
- /* @__PURE__ */ jsx131("span", { className: "oc-product-card__name", children: p.name }),
4427
- p.summary != null && /* @__PURE__ */ jsx131("span", { className: "oc-product-card__summary", children: p.summary }),
4428
- p.more != null && /* @__PURE__ */ jsx131("span", { className: "oc-product-card__more", children: p.more })
4532
+ /* @__PURE__ */ jsxs116("span", { className: "grid gap-0.5 p-1.5 pt-0", children: [
4533
+ p.pill != null && /* @__PURE__ */ jsx137("span", { className: "oc-pill oc-pill--accent", children: p.pill }),
4534
+ /* @__PURE__ */ jsx137("span", { className: "oc-product-card__name", children: p.name }),
4535
+ p.summary != null && /* @__PURE__ */ jsx137("span", { className: "oc-product-card__summary", children: p.summary }),
4536
+ p.more != null && /* @__PURE__ */ jsx137("span", { className: "oc-product-card__more", children: p.more })
4429
4537
  ] })
4430
4538
  ] }, i)) })
4431
4539
  ] }) });
4432
4540
  });
4433
4541
 
4434
4542
  // src/blocks/BlockSiteFooter.tsx
4435
- import { forwardRef as forwardRef130 } from "react";
4436
- import { jsx as jsx132, jsxs as jsxs114 } from "react/jsx-runtime";
4437
- var BlockSiteFooter = forwardRef130(function BlockSiteFooter2({ brand, brandHref = "/", about, columns, copyright, credit, className, ...rest }, ref) {
4438
- return /* @__PURE__ */ jsx132("footer", { ref, className: cx("oc-site-footer", className), ...rest, children: /* @__PURE__ */ jsxs114("div", { className: "oc-container", children: [
4439
- /* @__PURE__ */ jsxs114("div", { className: "oc-site-footer__grid", children: [
4440
- /* @__PURE__ */ jsxs114("div", { className: "oc-site-footer__about", children: [
4441
- /* @__PURE__ */ jsx132("a", { className: "oc-site-header__brand", href: brandHref, children: brand }),
4442
- about != null && /* @__PURE__ */ jsx132("p", { children: about })
4543
+ import { forwardRef as forwardRef136 } from "react";
4544
+ import { jsx as jsx138, jsxs as jsxs117 } from "react/jsx-runtime";
4545
+ var BlockSiteFooter = forwardRef136(function BlockSiteFooter2({ brand, brandHref = "/", about, columns, copyright, credit, className, ...rest }, ref) {
4546
+ return /* @__PURE__ */ jsx138("footer", { ref, className: cx("oc-site-footer", className), ...rest, children: /* @__PURE__ */ jsxs117("div", { className: "oc-container", children: [
4547
+ /* @__PURE__ */ jsxs117("div", { className: "oc-site-footer__grid", children: [
4548
+ /* @__PURE__ */ jsxs117("div", { className: "oc-site-footer__about", children: [
4549
+ /* @__PURE__ */ jsx138("a", { className: "oc-site-header__brand", href: brandHref, children: brand }),
4550
+ about != null && /* @__PURE__ */ jsx138("p", { children: about })
4443
4551
  ] }),
4444
- columns.map((col, i) => /* @__PURE__ */ jsxs114("div", { children: [
4445
- /* @__PURE__ */ jsx132("h2", { className: "oc-site-footer__title", children: col.title }),
4446
- col.links && /* @__PURE__ */ jsx132("ul", { className: "oc-site-footer__list", children: col.links.map((l, j) => /* @__PURE__ */ jsx132("li", { children: /* @__PURE__ */ jsx132("a", { href: l.href, children: l.label }) }, j)) }),
4447
- col.address != null && /* @__PURE__ */ jsx132("address", { className: "oc-site-footer__list", children: col.address })
4552
+ columns.map((col, i) => /* @__PURE__ */ jsxs117("div", { children: [
4553
+ /* @__PURE__ */ jsx138("h2", { className: "oc-site-footer__title", children: col.title }),
4554
+ col.links && /* @__PURE__ */ jsx138("ul", { className: "oc-site-footer__list", children: col.links.map((l, j) => /* @__PURE__ */ jsx138("li", { children: /* @__PURE__ */ jsx138("a", { href: l.href, children: l.label }) }, j)) }),
4555
+ col.address != null && /* @__PURE__ */ jsx138("address", { className: "oc-site-footer__list", children: col.address })
4448
4556
  ] }, i))
4449
4557
  ] }),
4450
- (copyright != null || credit != null) && /* @__PURE__ */ jsxs114("div", { className: "oc-site-footer__bottom", children: [
4451
- /* @__PURE__ */ jsx132("span", { children: copyright }),
4452
- /* @__PURE__ */ jsx132("span", { children: credit })
4558
+ (copyright != null || credit != null) && /* @__PURE__ */ jsxs117("div", { className: "oc-site-footer__bottom", children: [
4559
+ /* @__PURE__ */ jsx138("span", { children: copyright }),
4560
+ /* @__PURE__ */ jsx138("span", { children: credit })
4453
4561
  ] })
4454
4562
  ] }) });
4455
4563
  });
4456
4564
 
4457
4565
  // src/blocks/BlockSiteHeader.tsx
4458
- import { forwardRef as forwardRef131, useId as useId42 } from "react";
4459
- import { jsx as jsx133, jsxs as jsxs115 } from "react/jsx-runtime";
4460
- var BlockSiteHeader = forwardRef131(function BlockSiteHeader2({ brand, brandHref = "/", links, cta, menuLabel = "Menu", className, ...rest }, ref) {
4566
+ import { forwardRef as forwardRef137, useId as useId42 } from "react";
4567
+ import { jsx as jsx139, jsxs as jsxs118 } from "react/jsx-runtime";
4568
+ var BlockSiteHeader = forwardRef137(function BlockSiteHeader2({ brand, brandHref = "/", links, cta, menuLabel = "Menu", className, ...rest }, ref) {
4461
4569
  const navId = `oc-site-nav-${useId42().replace(/:/g, "")}`;
4462
- return /* @__PURE__ */ jsx133("header", { ref, className: cx("oc-site-header", className), ...rest, children: /* @__PURE__ */ jsxs115("div", { className: "oc-container oc-site-header__inner", children: [
4463
- /* @__PURE__ */ jsx133("a", { className: "oc-site-header__brand", href: brandHref, children: brand }),
4464
- /* @__PURE__ */ jsx133("button", { className: "oc-site-header__toggle", type: "button", "aria-label": menuLabel, popoverTarget: navId, children: "\u2630" }),
4465
- /* @__PURE__ */ jsxs115("nav", { className: "oc-site-header__nav", id: navId, "aria-label": "Main", ...attrs({ popover: "" }), children: [
4466
- links.map((l, i) => /* @__PURE__ */ jsx133("a", { href: l.href, "aria-current": l.current ? "page" : void 0, children: l.label }, i)),
4570
+ return /* @__PURE__ */ jsx139("header", { ref, className: cx("oc-site-header", className), ...rest, children: /* @__PURE__ */ jsxs118("div", { className: "oc-container oc-site-header__inner", children: [
4571
+ /* @__PURE__ */ jsx139("a", { className: "oc-site-header__brand", href: brandHref, children: brand }),
4572
+ /* @__PURE__ */ jsx139("button", { className: "oc-site-header__toggle", type: "button", "aria-label": menuLabel, popoverTarget: navId, children: "\u2630" }),
4573
+ /* @__PURE__ */ jsxs118("nav", { className: "oc-site-header__nav", id: navId, "aria-label": "Main", ...attrs({ popover: "" }), children: [
4574
+ links.map((l, i) => /* @__PURE__ */ jsx139("a", { href: l.href, "aria-current": l.current ? "page" : void 0, children: l.label }, i)),
4467
4575
  cta
4468
4576
  ] })
4469
4577
  ] }) });
4470
4578
  });
4471
4579
 
4472
4580
  // src/blocks/BlockSpotlight.tsx
4473
- import { forwardRef as forwardRef132 } from "react";
4474
- import { jsx as jsx134, jsxs as jsxs116 } from "react/jsx-runtime";
4475
- var BlockSpotlight = forwardRef132(function BlockSpotlight2({ accent, badge, icon, title, tagline, lead, action, modules, className, ...rest }, ref) {
4476
- return /* @__PURE__ */ jsx134("section", { ref, className: cx("oc-section-pad", className), ...rest, children: /* @__PURE__ */ jsx134("div", { className: "oc-container", children: /* @__PURE__ */ jsxs116("div", { className: cx("oc-spotlight", accent && `oc-accent--${accent}`), children: [
4477
- /* @__PURE__ */ jsxs116("div", { children: [
4478
- badge != null && /* @__PURE__ */ jsxs116("span", { className: "oc-pill oc-pill--accent", children: [
4479
- /* @__PURE__ */ jsx134("span", { className: "oc-status-dot" }),
4581
+ import { forwardRef as forwardRef138 } from "react";
4582
+ import { jsx as jsx140, jsxs as jsxs119 } from "react/jsx-runtime";
4583
+ var BlockSpotlight = forwardRef138(function BlockSpotlight2({ accent, badge, icon, title, tagline, lead, action, modules, className, ...rest }, ref) {
4584
+ return /* @__PURE__ */ jsx140("section", { ref, className: cx("oc-section-pad", className), ...rest, children: /* @__PURE__ */ jsx140("div", { className: "oc-container", children: /* @__PURE__ */ jsxs119("div", { className: cx("oc-spotlight", accent && `oc-accent--${accent}`), children: [
4585
+ /* @__PURE__ */ jsxs119("div", { children: [
4586
+ badge != null && /* @__PURE__ */ jsxs119("span", { className: "oc-pill oc-pill--accent", children: [
4587
+ /* @__PURE__ */ jsx140("span", { className: "oc-status-dot" }),
4480
4588
  badge
4481
4589
  ] }),
4482
- /* @__PURE__ */ jsxs116("h2", { className: "oc-spotlight__title", children: [
4483
- icon != null && /* @__PURE__ */ jsx134("span", { className: "oc-icon-tile oc-icon-tile--lg", "aria-hidden": "true", children: icon }),
4590
+ /* @__PURE__ */ jsxs119("h2", { className: "oc-spotlight__title", children: [
4591
+ icon != null && /* @__PURE__ */ jsx140("span", { className: "oc-icon-tile oc-icon-tile--lg", "aria-hidden": "true", children: icon }),
4484
4592
  title
4485
4593
  ] }),
4486
- tagline != null && /* @__PURE__ */ jsx134("p", { className: "oc-spotlight__tagline", children: tagline }),
4487
- lead != null && /* @__PURE__ */ jsx134("p", { className: "oc-lead", children: lead }),
4594
+ tagline != null && /* @__PURE__ */ jsx140("p", { className: "oc-spotlight__tagline", children: tagline }),
4595
+ lead != null && /* @__PURE__ */ jsx140("p", { className: "oc-lead", children: lead }),
4488
4596
  action
4489
4597
  ] }),
4490
- modules && /* @__PURE__ */ jsx134("ul", { className: "oc-spotlight__modules", children: modules.map((m, i) => /* @__PURE__ */ jsxs116("li", { children: [
4491
- m.icon != null && /* @__PURE__ */ jsx134("span", { className: "oc-icon-tile oc-icon-tile--sm", "aria-hidden": "true", children: m.icon }),
4598
+ modules && /* @__PURE__ */ jsx140("ul", { className: "oc-spotlight__modules", children: modules.map((m, i) => /* @__PURE__ */ jsxs119("li", { children: [
4599
+ m.icon != null && /* @__PURE__ */ jsx140("span", { className: "oc-icon-tile oc-icon-tile--sm", "aria-hidden": "true", children: m.icon }),
4492
4600
  m.label
4493
4601
  ] }, i)) })
4494
4602
  ] }) }) });
4495
4603
  });
4496
4604
 
4497
4605
  // src/blocks/BlockStats.tsx
4498
- import { forwardRef as forwardRef133 } from "react";
4499
- import { jsx as jsx135, jsxs as jsxs117 } from "react/jsx-runtime";
4500
- var BlockStats = forwardRef133(function BlockStats2({ stats, className, ...rest }, ref) {
4501
- return /* @__PURE__ */ jsx135("div", { ref, className: cx("oc-block-stats", className), ...rest, children: stats.map((s, i) => /* @__PURE__ */ jsxs117("div", { className: "oc-block-stat", children: [
4502
- /* @__PURE__ */ jsx135("div", { className: "oc-block-stat-value", children: s.value }),
4503
- /* @__PURE__ */ jsx135("div", { className: "oc-block-stat-label", children: s.label })
4606
+ import { forwardRef as forwardRef139 } from "react";
4607
+ import { jsx as jsx141, jsxs as jsxs120 } from "react/jsx-runtime";
4608
+ var BlockStats = forwardRef139(function BlockStats2({ stats, className, ...rest }, ref) {
4609
+ return /* @__PURE__ */ jsx141("div", { ref, className: cx("oc-block-stats", className), ...rest, children: stats.map((s, i) => /* @__PURE__ */ jsxs120("div", { className: "oc-block-stat", children: [
4610
+ /* @__PURE__ */ jsx141("div", { className: "oc-block-stat-value", children: s.value }),
4611
+ /* @__PURE__ */ jsx141("div", { className: "oc-block-stat-label", children: s.label })
4504
4612
  ] }, i)) });
4505
4613
  });
4506
4614
 
4507
4615
  // src/blocks/BlockStatsCounter.tsx
4508
- import { forwardRef as forwardRef134 } from "react";
4509
- import { jsx as jsx136, jsxs as jsxs118 } from "react/jsx-runtime";
4510
- var BlockStatsCounter = forwardRef134(function BlockStatsCounter2({ stats, className, ...rest }, ref) {
4511
- return /* @__PURE__ */ jsx136("div", { ref, className: cx("oc-block-stats", className), ...rest, children: stats.map((s, i) => /* @__PURE__ */ jsxs118("div", { className: "oc-block-stat", children: [
4512
- /* @__PURE__ */ jsx136(Counter, { className: "oc-block-stat-value", to: s.to, suffix: s.suffix }),
4513
- /* @__PURE__ */ jsx136("span", { className: "oc-block-stat-label", children: s.label })
4616
+ import { forwardRef as forwardRef140 } from "react";
4617
+ import { jsx as jsx142, jsxs as jsxs121 } from "react/jsx-runtime";
4618
+ var BlockStatsCounter = forwardRef140(function BlockStatsCounter2({ stats, className, ...rest }, ref) {
4619
+ return /* @__PURE__ */ jsx142("div", { ref, className: cx("oc-block-stats", className), ...rest, children: stats.map((s, i) => /* @__PURE__ */ jsxs121("div", { className: "oc-block-stat", children: [
4620
+ /* @__PURE__ */ jsx142(Counter, { className: "oc-block-stat-value", to: s.to, suffix: s.suffix }),
4621
+ /* @__PURE__ */ jsx142("span", { className: "oc-block-stat-label", children: s.label })
4514
4622
  ] }, i)) });
4515
4623
  });
4516
4624
 
4517
4625
  // src/blocks/BlockTeamList.tsx
4518
- import { forwardRef as forwardRef135 } from "react";
4519
- import { Fragment as Fragment28, jsx as jsx137, jsxs as jsxs119 } from "react/jsx-runtime";
4520
- var BlockTeamList = forwardRef135(function BlockTeamList2({ members, className, ...rest }, ref) {
4521
- return /* @__PURE__ */ jsx137("div", { ref, className: cx("oc-block-team", className), ...rest, children: members.map((m, i) => /* @__PURE__ */ jsxs119("div", { className: "oc-block-team-row", children: [
4522
- /* @__PURE__ */ jsx137(User, { name: m.name, email: m.email, initials: m.initials, avatarSrc: m.avatarSrc }),
4523
- /* @__PURE__ */ jsxs119("div", { className: "oc-block-team-meta", children: [
4524
- m.role != null && /* @__PURE__ */ jsx137(Badge, { variant: m.roleVariant, children: m.role }),
4525
- m.menu != null && /* @__PURE__ */ jsx137(Dropdown, { trigger: /* @__PURE__ */ jsx137(Fragment28, { children: "\u2026" }), triggerProps: { variant: "ghost", icon: true, size: "sm", type: "button", "aria-label": m.menuLabel ?? "Member actions" }, children: m.menu })
4626
+ import { forwardRef as forwardRef141 } from "react";
4627
+ import { Fragment as Fragment29, jsx as jsx143, jsxs as jsxs122 } from "react/jsx-runtime";
4628
+ var BlockTeamList = forwardRef141(function BlockTeamList2({ members, className, ...rest }, ref) {
4629
+ return /* @__PURE__ */ jsx143("div", { ref, className: cx("oc-block-team", className), ...rest, children: members.map((m, i) => /* @__PURE__ */ jsxs122("div", { className: "oc-block-team-row", children: [
4630
+ /* @__PURE__ */ jsx143(User, { name: m.name, email: m.email, initials: m.initials, avatarSrc: m.avatarSrc }),
4631
+ /* @__PURE__ */ jsxs122("div", { className: "oc-block-team-meta", children: [
4632
+ m.role != null && /* @__PURE__ */ jsx143(Badge, { variant: m.roleVariant, children: m.role }),
4633
+ m.menu != null && /* @__PURE__ */ jsx143(Dropdown, { trigger: /* @__PURE__ */ jsx143(Fragment29, { children: "\u2026" }), triggerProps: { variant: "ghost", icon: true, size: "sm", type: "button", "aria-label": m.menuLabel ?? "Member actions" }, children: m.menu })
4526
4634
  ] })
4527
4635
  ] }, i)) });
4528
4636
  });
4529
4637
 
4530
4638
  // src/blocks/BlockTwoFactor.tsx
4531
- import { forwardRef as forwardRef136, useId as useId43, useState as useState15 } from "react";
4532
- import { jsx as jsx138, jsxs as jsxs120 } from "react/jsx-runtime";
4533
- var BlockTwoFactor = forwardRef136(function BlockTwoFactor2({ qr, setupKey, recoveryCodes, codeLength = 6, onSubmit, submitLabel = "Enable two-factor", className, ...rest }, ref) {
4639
+ import { forwardRef as forwardRef142, useId as useId43, useState as useState15 } from "react";
4640
+ import { jsx as jsx144, jsxs as jsxs123 } from "react/jsx-runtime";
4641
+ var BlockTwoFactor = forwardRef142(function BlockTwoFactor2({ qr, setupKey, recoveryCodes, codeLength = 6, onSubmit, submitLabel = "Enable two-factor", className, ...rest }, ref) {
4534
4642
  const id = `oc-twofactor-${useId43().replace(/:/g, "")}`;
4535
4643
  const [code, setCode] = useState15("");
4536
4644
  const submit = (e) => {
4537
4645
  e.preventDefault();
4538
4646
  onSubmit?.(code);
4539
4647
  };
4540
- return /* @__PURE__ */ jsxs120("div", { ref, className: cx("oc-block-twofactor", className), ...rest, children: [
4541
- /* @__PURE__ */ jsxs120("section", { className: "oc-block-twofactor-step", children: [
4542
- /* @__PURE__ */ jsx138(Heading, { size: "sm", title: "1. Scan the QR code", description: "Use an authenticator app, or enter the key manually." }),
4543
- /* @__PURE__ */ jsxs120("div", { className: "oc-block-twofactor-center", children: [
4544
- qr ?? /* @__PURE__ */ jsx138("div", { className: "oc-block-twofactor-qr", role: "img", "aria-label": "QR code", children: "QR code" }),
4545
- /* @__PURE__ */ jsx138(CopyField, { value: setupKey, label: "Setup key" })
4648
+ return /* @__PURE__ */ jsxs123("div", { ref, className: cx("oc-block-twofactor", className), ...rest, children: [
4649
+ /* @__PURE__ */ jsxs123("section", { className: "oc-block-twofactor-step", children: [
4650
+ /* @__PURE__ */ jsx144(Heading, { size: "sm", title: "1. Scan the QR code", description: "Use an authenticator app, or enter the key manually." }),
4651
+ /* @__PURE__ */ jsxs123("div", { className: "oc-block-twofactor-center", children: [
4652
+ qr ?? /* @__PURE__ */ jsx144("div", { className: "oc-block-twofactor-qr", role: "img", "aria-label": "QR code", children: "QR code" }),
4653
+ /* @__PURE__ */ jsx144(CopyField, { value: setupKey, label: "Setup key" })
4546
4654
  ] })
4547
4655
  ] }),
4548
- /* @__PURE__ */ jsxs120("form", { className: "oc-block-twofactor-step", onSubmit: submit, children: [
4549
- /* @__PURE__ */ jsx138(Heading, { size: "sm", title: "2. Confirm with a code" }),
4550
- /* @__PURE__ */ jsxs120("div", { className: "oc-field", children: [
4551
- /* @__PURE__ */ jsx138("label", { className: "oc-field-label", htmlFor: id, children: "Authentication code" }),
4552
- /* @__PURE__ */ jsx138(OtpInput, { id, name: "code", length: codeLength, value: code, onChange: setCode })
4656
+ /* @__PURE__ */ jsxs123("form", { className: "oc-block-twofactor-step", onSubmit: submit, children: [
4657
+ /* @__PURE__ */ jsx144(Heading, { size: "sm", title: "2. Confirm with a code" }),
4658
+ /* @__PURE__ */ jsxs123("div", { className: "oc-field", children: [
4659
+ /* @__PURE__ */ jsx144("label", { className: "oc-field-label", htmlFor: id, children: "Authentication code" }),
4660
+ /* @__PURE__ */ jsx144(OtpInput, { id, name: "code", length: codeLength, value: code, onChange: setCode })
4553
4661
  ] }),
4554
- /* @__PURE__ */ jsx138("button", { className: "oc-btn", type: "submit", children: submitLabel })
4662
+ /* @__PURE__ */ jsx144("button", { className: "oc-btn", type: "submit", children: submitLabel })
4555
4663
  ] }),
4556
- recoveryCodes && /* @__PURE__ */ jsx138("section", { className: "oc-block-twofactor-step", children: /* @__PURE__ */ jsx138(RecoveryCodes, { codes: recoveryCodes }) })
4664
+ recoveryCodes && /* @__PURE__ */ jsx144("section", { className: "oc-block-twofactor-step", children: /* @__PURE__ */ jsx144(RecoveryCodes, { codes: recoveryCodes }) })
4557
4665
  ] });
4558
4666
  });
4559
4667
 
4560
4668
  // src/blocks/BlockWizardDialog.tsx
4561
- import { forwardRef as forwardRef137, useId as useId44, useRef as useRef13 } from "react";
4562
- import { jsx as jsx139, jsxs as jsxs121 } from "react/jsx-runtime";
4563
- var BlockWizardDialog = forwardRef137(function BlockWizardDialog2({
4669
+ import { forwardRef as forwardRef143, useId as useId44, useRef as useRef13 } from "react";
4670
+ import { jsx as jsx145, jsxs as jsxs124 } from "react/jsx-runtime";
4671
+ var BlockWizardDialog = forwardRef143(function BlockWizardDialog2({
4564
4672
  open,
4565
4673
  defaultOpen,
4566
4674
  onOpenChange,
@@ -4584,7 +4692,7 @@ var BlockWizardDialog = forwardRef137(function BlockWizardDialog2({
4584
4692
  const [current, setCurrent] = useControllable(step, defaultStep, onStepChange);
4585
4693
  const last = current >= steps.length - 1;
4586
4694
  const active = steps[current];
4587
- return /* @__PURE__ */ jsx139(
4695
+ return /* @__PURE__ */ jsx145(
4588
4696
  "dialog",
4589
4697
  {
4590
4698
  ref,
@@ -4593,17 +4701,17 @@ var BlockWizardDialog = forwardRef137(function BlockWizardDialog2({
4593
4701
  ...attrs({ closedby: "closerequest" }),
4594
4702
  ...rest,
4595
4703
  onClose: dlg.onClose,
4596
- children: /* @__PURE__ */ jsx139(DialogContext.Provider, { value: { close: dlg.close }, children: /* @__PURE__ */ jsx139("div", { className: "oc-modal-content oc-modal-content--xl", children: /* @__PURE__ */ jsxs121("div", { className: "oc-block-wizard", children: [
4597
- /* @__PURE__ */ jsx139("div", { className: "oc-block-wizard-rail", children: /* @__PURE__ */ jsx139(Stepper, { steps: steps.map((s) => ({ label: s.label })), current, onStepChange: setCurrent, "aria-label": stepperLabel }) }),
4598
- /* @__PURE__ */ jsxs121("div", { className: "oc-block-wizard-main", children: [
4599
- /* @__PURE__ */ jsxs121("div", { className: "oc-modal-header", children: [
4600
- /* @__PURE__ */ jsx139("h2", { className: "oc-modal-title", id: titleId, children: active?.label }),
4601
- /* @__PURE__ */ jsx139("p", { className: "oc-modal-description", children: description ?? `Step ${current + 1} of ${steps.length}` })
4704
+ children: /* @__PURE__ */ jsx145(DialogContext.Provider, { value: { close: dlg.close }, children: /* @__PURE__ */ jsx145("div", { className: "oc-modal-content oc-modal-content--xl", children: /* @__PURE__ */ jsxs124("div", { className: "oc-block-wizard", children: [
4705
+ /* @__PURE__ */ jsx145("div", { className: "oc-block-wizard-rail", children: /* @__PURE__ */ jsx145(Stepper, { steps: steps.map((s) => ({ label: s.label })), current, onStepChange: setCurrent, "aria-label": stepperLabel }) }),
4706
+ /* @__PURE__ */ jsxs124("div", { className: "oc-block-wizard-main", children: [
4707
+ /* @__PURE__ */ jsxs124("div", { className: "oc-modal-header", children: [
4708
+ /* @__PURE__ */ jsx145("h2", { className: "oc-modal-title", id: titleId, children: active?.label }),
4709
+ /* @__PURE__ */ jsx145("p", { className: "oc-modal-description", children: description ?? `Step ${current + 1} of ${steps.length}` })
4602
4710
  ] }),
4603
- /* @__PURE__ */ jsx139("div", { className: "oc-block-wizard-step", children: active?.content }),
4604
- /* @__PURE__ */ jsxs121("div", { className: "oc-modal-footer", children: [
4605
- /* @__PURE__ */ jsx139("button", { className: "oc-btn oc-btn--outline", type: "button", disabled: current === 0, onClick: () => setCurrent(current - 1), children: backLabel }),
4606
- /* @__PURE__ */ jsx139(
4711
+ /* @__PURE__ */ jsx145("div", { className: "oc-block-wizard-step", children: active?.content }),
4712
+ /* @__PURE__ */ jsxs124("div", { className: "oc-modal-footer", children: [
4713
+ /* @__PURE__ */ jsx145("button", { className: "oc-btn oc-btn--outline", type: "button", disabled: current === 0, onClick: () => setCurrent(current - 1), children: backLabel }),
4714
+ /* @__PURE__ */ jsx145(
4607
4715
  "button",
4608
4716
  {
4609
4717
  className: "oc-btn",
@@ -4719,6 +4827,8 @@ export {
4719
4827
  FilterPills,
4720
4828
  FlipCard,
4721
4829
  FormField,
4830
+ Glass,
4831
+ GlassPanel,
4722
4832
  Greeting,
4723
4833
  Heading,
4724
4834
  Icon,
@@ -4729,7 +4839,9 @@ export {
4729
4839
  LauncherCard,
4730
4840
  Lightbox,
4731
4841
  LinkArrow,
4842
+ LinkRow,
4732
4843
  ListToolbar,
4844
+ LiveFrame,
4733
4845
  Marquee,
4734
4846
  MediaCard,
4735
4847
  MediaRow,
@@ -4779,6 +4891,8 @@ export {
4779
4891
  StackList,
4780
4892
  StatCard,
4781
4893
  StatCardGrid,
4894
+ Status,
4895
+ StatusDot,
4782
4896
  Stepper,
4783
4897
  Switch,
4784
4898
  Table,
@@ -4796,6 +4910,10 @@ export {
4796
4910
  ThemeSwitch,
4797
4911
  TimeInput,
4798
4912
  Timeline,
4913
+ Titlebar,
4914
+ TitlebarBody,
4915
+ TitlebarButton,
4916
+ TitlebarWindow,
4799
4917
  Toast,
4800
4918
  ToastContainer,
4801
4919
  ToastProvider,
@@ -4806,6 +4924,7 @@ export {
4806
4924
  UpgradeBanner,
4807
4925
  User,
4808
4926
  VersionBanner,
4927
+ Watermark,
4809
4928
  attachmentMeta,
4810
4929
  attrs,
4811
4930
  buttonClass,
@@ -4823,6 +4942,7 @@ export {
4823
4942
  mod,
4824
4943
  niceMax,
4825
4944
  parseDecimal,
4945
+ progressLevel,
4826
4946
  useControllable,
4827
4947
  useDialog,
4828
4948
  useDialogContext,