@birdycom/omniaui-react 0.12.2 → 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,31 +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 });
2255
2282
  });
2256
2283
 
2257
2284
  // src/components/LinkRow.tsx
2258
- import { forwardRef as forwardRef53 } from "react";
2259
- import { jsx as jsx55 } from "react/jsx-runtime";
2285
+ import { forwardRef as forwardRef54 } from "react";
2286
+ import { jsx as jsx56 } from "react/jsx-runtime";
2260
2287
  var external = (href) => /^https?:\/\//.test(href);
2261
- var LinkRow = forwardRef53(function LinkRow2({ links, tone = "default", size = "default", className, children, ...rest }, ref) {
2288
+ var LinkRow = forwardRef54(function LinkRow2({ links, tone = "default", size = "default", className, children, ...rest }, ref) {
2262
2289
  const classes = cx("oc-link-row", tone !== "default" && `oc-link-row--${tone}`, size !== "default" && `oc-link-row--${size}`, className);
2263
- return /* @__PURE__ */ jsx55("ul", { ref, className: classes, ...rest, children: links ? links.map((l, i) => /* @__PURE__ */ jsx55("li", { children: /* @__PURE__ */ jsx55("a", { href: l.href, rel: external(l.href) ? "noopener" : void 0, children: l.label }) }, i)) : children });
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 });
2264
2291
  });
2265
2292
 
2266
2293
  // src/components/ListToolbar.tsx
2267
- import { forwardRef as forwardRef54, useId as useId19 } from "react";
2268
- import { jsx as jsx56, jsxs as jsxs44 } from "react/jsx-runtime";
2269
- var ListToolbar = forwardRef54(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) {
2270
2297
  const name = `oc-list-view-${useId19().replace(/:/g, "")}`;
2271
2298
  const [current, setCurrent] = useControllable(view, defaultView ?? views?.[0]?.value ?? "", onViewChange);
2272
2299
  const cls = cx("oc-list-toolbar", sticky && "oc-list-toolbar--sticky", bordered && "oc-list-toolbar--bordered", className);
2273
- return /* @__PURE__ */ jsxs44("div", { ref, className: cls, role: "toolbar", ...rest, children: [
2274
- search != null && /* @__PURE__ */ jsx56("div", { className: "oc-list-toolbar-search", children: search }),
2275
- count != null && /* @__PURE__ */ jsx56("span", { className: "oc-list-toolbar-count", children: count }),
2276
- /* @__PURE__ */ jsx56("span", { className: "oc-list-toolbar-spacer" }),
2277
- views && views.length > 0 && /* @__PURE__ */ jsx56("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: [
2278
- /* @__PURE__ */ jsx56(
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(
2279
2306
  "input",
2280
2307
  {
2281
2308
  type: "radio",
@@ -2288,31 +2315,31 @@ var ListToolbar = forwardRef54(function ListToolbar2({ search, count, views, vie
2288
2315
  ),
2289
2316
  v.icon
2290
2317
  ] }, v.value)) }),
2291
- actions != null && /* @__PURE__ */ jsx56("div", { className: "oc-list-toolbar-actions", children: actions })
2318
+ actions != null && /* @__PURE__ */ jsx57("div", { className: "oc-list-toolbar-actions", children: actions })
2292
2319
  ] });
2293
2320
  });
2294
2321
 
2295
2322
  // src/components/LiveFrame.tsx
2296
- import { forwardRef as forwardRef55 } from "react";
2297
- import { jsx as jsx57 } from "react/jsx-runtime";
2298
- var LiveFrame = forwardRef55(function LiveFrame2({ src, title = "", width = 1280, height = 720, static: isStatic = false, inBrowserFrame = false, className, style, children, ...rest }, ref) {
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) {
2299
2326
  const size = { "--oc-live-w": width, "--oc-live-h": height };
2300
- return /* @__PURE__ */ jsx57(
2327
+ return /* @__PURE__ */ jsx58(
2301
2328
  "div",
2302
2329
  {
2303
2330
  ref,
2304
2331
  className: cx(inBrowserFrame && "oc-browser-frame__view", "oc-live-frame", isStatic && "oc-live-frame--static", className),
2305
2332
  style: { ...size, ...style },
2306
2333
  ...rest,
2307
- children: src ? /* @__PURE__ */ jsx57("iframe", { src, title, loading: "lazy", scrolling: "no", tabIndex: isStatic ? -1 : void 0 }) : children
2334
+ children: src ? /* @__PURE__ */ jsx58("iframe", { src, title, loading: "lazy", scrolling: "no", tabIndex: isStatic ? -1 : void 0 }) : children
2308
2335
  }
2309
2336
  );
2310
2337
  });
2311
2338
 
2312
2339
  // src/components/Marquee.tsx
2313
- import { forwardRef as forwardRef56 } from "react";
2314
- import { jsx as jsx58, jsxs as jsxs45 } from "react/jsx-runtime";
2315
- var Marquee = forwardRef56(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) {
2316
2343
  const classes = cx(
2317
2344
  "oc-marquee",
2318
2345
  reverse && "oc-marquee--reverse",
@@ -2321,21 +2348,21 @@ var Marquee = forwardRef56(function Marquee2({ items, reverse = false, speed = "
2321
2348
  noFade && "oc-marquee--no-fade",
2322
2349
  className
2323
2350
  );
2324
- return /* @__PURE__ */ jsx58("div", { ref, className: classes, ...rest, children: /* @__PURE__ */ jsxs45("div", { className: "oc-marquee__track", children: [
2325
- items.map((item, i) => /* @__PURE__ */ jsx58("span", { className: "oc-marquee__item", children: item }, i)),
2326
- items.map((item, i) => /* @__PURE__ */ jsx58("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}`))
2327
2354
  ] }) });
2328
2355
  });
2329
2356
 
2330
2357
  // src/components/MediaCard.tsx
2331
- import { forwardRef as forwardRef58, useId as useId20 } from "react";
2358
+ import { forwardRef as forwardRef59, useId as useId20 } from "react";
2332
2359
 
2333
2360
  // src/components/MediaThumb.tsx
2334
- import { forwardRef as forwardRef57 } from "react";
2335
- import { jsx as jsx59, jsxs as jsxs46 } from "react/jsx-runtime";
2336
- var MediaThumb = forwardRef57(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) {
2337
2364
  const Tag = href ? "a" : "div";
2338
- return /* @__PURE__ */ jsxs46(
2365
+ return /* @__PURE__ */ jsxs47(
2339
2366
  Tag,
2340
2367
  {
2341
2368
  ref,
@@ -2343,10 +2370,10 @@ var MediaThumb = forwardRef57(function MediaThumb2({ src, alt = "", art: art2, h
2343
2370
  className: cx("oc-media-thumb", ratio !== "video" && `oc-media-thumb--${ratio}`, watched && "is-watched", className),
2344
2371
  ...rest,
2345
2372
  children: [
2346
- src ? /* @__PURE__ */ jsx59("img", { src, alt }) : /* @__PURE__ */ jsx59("div", { className: cx("oc-media-art", art2 != null && art2 > 1 && `oc-media-art--${art2}`) }),
2347
- badge != null && /* @__PURE__ */ jsx59("span", { className: cx("oc-media-thumb__badge", live && "oc-media-thumb__badge--live"), children: badge }),
2348
- duration != null && /* @__PURE__ */ jsx59("span", { className: "oc-media-thumb__duration", children: duration }),
2349
- 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: [
2350
2377
  progress,
2351
2378
  "%"
2352
2379
  ] }),
@@ -2357,93 +2384,93 @@ var MediaThumb = forwardRef57(function MediaThumb2({ src, alt = "", art: art2, h
2357
2384
  });
2358
2385
 
2359
2386
  // src/components/MediaCard.tsx
2360
- import { jsx as jsx60, jsxs as jsxs47 } from "react/jsx-runtime";
2361
- var MediaCard = forwardRef58(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) {
2362
2389
  const menuId = `oc-media-card-menu-${useId20().replace(/:/g, "")}`;
2363
- return /* @__PURE__ */ jsxs47("article", { ref, className: cx("oc-media-card", compact && "oc-media-card--compact", className), ...rest, children: [
2364
- /* @__PURE__ */ jsx60(MediaThumb, { ...thumb }),
2365
- /* @__PURE__ */ jsxs47("div", { className: "oc-media-card__body", children: [
2366
- avatar != null && /* @__PURE__ */ jsx60("span", { className: "oc-media-card__avatar", "aria-hidden": "true", children: avatar }),
2367
- /* @__PURE__ */ jsxs47("div", { className: "oc-media-card__text", children: [
2368
- /* @__PURE__ */ jsx60("h3", { className: "oc-media-card__title", children: /* @__PURE__ */ jsx60("a", { href, children: title }) }),
2369
- meta != null && /* @__PURE__ */ jsx60("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 })
2370
2397
  ] }),
2371
- menu != null && /* @__PURE__ */ jsx60("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" })
2372
2399
  ] }),
2373
- menu != null && /* @__PURE__ */ jsx60("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 })
2374
2401
  ] });
2375
2402
  });
2376
2403
 
2377
2404
  // src/components/MediaRow.tsx
2378
- import { forwardRef as forwardRef59, useId as useId21 } from "react";
2379
- import { Fragment as Fragment13, jsx as jsx61, jsxs as jsxs48 } from "react/jsx-runtime";
2380
- var MediaRowList = forwardRef59(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) {
2381
2408
  const Tag = numbered ? "ol" : "ul";
2382
- return /* @__PURE__ */ jsx61(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 });
2383
2410
  });
2384
- var MediaRow = forwardRef59(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) {
2385
2412
  const menuId = `oc-media-row-menu-${useId21().replace(/:/g, "")}`;
2386
- return /* @__PURE__ */ jsxs48("li", { ref, className: cx("oc-media-row", className), "aria-current": current ? "true" : void 0, ...rest, children: [
2387
- /* @__PURE__ */ jsx61(MediaThumb, { ...thumb }),
2388
- /* @__PURE__ */ jsxs48("div", { className: "oc-media-row__text", children: [
2389
- /* @__PURE__ */ jsx61("h3", { className: "oc-media-row__title", children: /* @__PURE__ */ jsx61("a", { href, children: title }) }),
2390
- meta != null && /* @__PURE__ */ jsx61("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 })
2391
2418
  ] }),
2392
- menu != null && /* @__PURE__ */ jsxs48(Fragment13, { children: [
2393
- /* @__PURE__ */ jsx61("button", { type: "button", className: "oc-media-row__menu", "aria-label": "More actions", popoverTarget: menuId, children: "\u22EE" }),
2394
- /* @__PURE__ */ jsx61("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 })
2395
2422
  ] })
2396
2423
  ] });
2397
2424
  });
2398
2425
 
2399
2426
  // src/components/Message.tsx
2400
- import { forwardRef as forwardRef60 } from "react";
2401
- import { Fragment as Fragment14, jsx as jsx62, jsxs as jsxs49 } from "react/jsx-runtime";
2402
- var svg = (d, width = "2") => /* @__PURE__ */ jsx62("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: width, strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: /* @__PURE__ */ jsx62("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 }) });
2403
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" };
2404
2431
  var STATUS = { sent: "Sent", read: "Read", failed: "Failed" };
2405
2432
  function MessageAttachments({ items }) {
2406
2433
  const thumbs = items.every((a) => a.kind === "thumb");
2407
- return /* @__PURE__ */ jsx62("div", { className: "oc-message__attachments", children: thumbs ? /* @__PURE__ */ jsx62("div", { className: "oc-attachment-list", children: items.map((a, i) => /* @__PURE__ */ jsx62(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) => {
2408
2435
  if (a.kind === "image") {
2409
2436
  const { kind: _k2, ...img } = a;
2410
- return /* @__PURE__ */ jsx62(AttachmentImage, { ...img }, i);
2437
+ return /* @__PURE__ */ jsx63(AttachmentImage, { ...img }, i);
2411
2438
  }
2412
2439
  if (a.kind === "thumb") {
2413
2440
  const { kind: _k2, ...t } = a;
2414
- return /* @__PURE__ */ jsx62(AttachmentThumb, { as: "span", ...t }, i);
2441
+ return /* @__PURE__ */ jsx63(AttachmentThumb, { as: "span", ...t }, i);
2415
2442
  }
2416
2443
  const { kind: _k, ...file } = a;
2417
- return /* @__PURE__ */ jsx62(Attachment, { ...file }, i);
2444
+ return /* @__PURE__ */ jsx63(Attachment, { ...file }, i);
2418
2445
  }) });
2419
2446
  }
2420
- var Message = forwardRef60(function Message2({ direction = "in", sender, avatar, time, datetime, status, statusLabel, statusIcon, continued, quote, text, attachments, actions, label, onAction, className, children, ...rest }, ref) {
2421
- return /* @__PURE__ */ jsxs49("article", { ref, className: cx("oc-message", direction === "out" && "oc-message--out", continued && "oc-message--continued", className), "aria-label": label, ...rest, children: [
2422
- /* @__PURE__ */ jsx62("span", { className: "oc-avatar oc-message__avatar", children: avatar }),
2423
- /* @__PURE__ */ jsxs49("div", { className: "oc-message__bubble", children: [
2424
- sender != null && !continued && /* @__PURE__ */ jsx62("p", { className: "oc-message__sender", children: sender }),
2425
- quote && /* @__PURE__ */ jsxs49("a", { className: "oc-message__quote", href: quote.href, children: [
2426
- /* @__PURE__ */ jsx62("strong", { children: quote.sender }),
2427
- /* @__PURE__ */ jsx62("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 })
2428
2455
  ] }),
2429
- (text != null || children != null) && /* @__PURE__ */ jsxs49("div", { className: "oc-message__text", children: [
2430
- typeof text === "string" ? /* @__PURE__ */ jsx62("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,
2431
2458
  children
2432
2459
  ] }),
2433
- attachments?.length ? /* @__PURE__ */ jsx62(MessageAttachments, { items: attachments }) : null,
2434
- (time != null || status) && /* @__PURE__ */ jsxs49("p", { className: "oc-message__meta", children: [
2435
- time != null && /* @__PURE__ */ jsx62("time", { dateTime: datetime, children: time }),
2436
- 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: [
2437
2464
  statusIcon && svg("M2 12.5 7 17.5 18 6.5M13 16.5l1 1L22.5 9", "2.2"),
2438
2465
  statusLabel ?? STATUS[status]
2439
2466
  ] })
2440
2467
  ] })
2441
2468
  ] }),
2442
- actions?.length ? /* @__PURE__ */ jsx62("div", { className: "oc-message__actions", children: actions.map((a) => /* @__PURE__ */ jsx62("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
2443
2470
  ] });
2444
2471
  });
2445
2472
  function MessageDivider({ system, className, children, ...rest }) {
2446
- return /* @__PURE__ */ jsx62("div", { className: cx("oc-message-divider", system && "oc-message-divider--system", className), role: system ? "note" : void 0, ...rest, children: /* @__PURE__ */ jsx62("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 }) });
2447
2474
  }
2448
2475
  var DEMO5 = [
2449
2476
  { divider: "Tuesday 14 October" },
@@ -2456,21 +2483,21 @@ var DEMO5 = [
2456
2483
  label: "Lisa Verbeke, 09:13",
2457
2484
  continued: true,
2458
2485
  id: "oc-message-demo-question",
2459
- text: /* @__PURE__ */ jsxs49(Fragment14, { children: [
2460
- /* @__PURE__ */ jsx62("p", { children: "Which finish should we order?" }),
2461
- /* @__PURE__ */ jsxs49("ul", { children: [
2462
- /* @__PURE__ */ jsxs49("li", { children: [
2463
- /* @__PURE__ */ jsx62("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" }),
2464
2491
  " matt, 20 mm"
2465
2492
  ] }),
2466
- /* @__PURE__ */ jsxs49("li", { children: [
2467
- /* @__PURE__ */ jsx62("strong", { children: "Nero Marquina" }),
2493
+ /* @__PURE__ */ jsxs50("li", { children: [
2494
+ /* @__PURE__ */ jsx63("strong", { children: "Nero Marquina" }),
2468
2495
  " polished, 12 mm"
2469
2496
  ] })
2470
2497
  ] }),
2471
- /* @__PURE__ */ jsxs49("p", { children: [
2498
+ /* @__PURE__ */ jsxs50("p", { children: [
2472
2499
  "Details are on the ",
2473
- /* @__PURE__ */ jsx62("a", { href: "#supplier-sheet", children: "supplier sheet" }),
2500
+ /* @__PURE__ */ jsx63("a", { href: "#supplier-sheet", children: "supplier sheet" }),
2474
2501
  "."
2475
2502
  ] })
2476
2503
  ] })
@@ -2489,15 +2516,15 @@ var DEMO5 = [
2489
2516
  },
2490
2517
  { divider: "Lisa Verbeke marked this question as answered", system: true }
2491
2518
  ];
2492
- var MessageList = forwardRef60(function MessageList2({ items = DEMO5, log = true, onAction, className, children, "aria-label": label = log ? "Conversation with Lisa Verbeke" : void 0, ...rest }, ref) {
2493
- return /* @__PURE__ */ jsx62("div", { ref, className: cx("oc-message-list", className), role: log ? "log" : void 0, "aria-label": label, ...rest, children: children ?? items.map(
2494
- (item, i) => "divider" in item ? /* @__PURE__ */ jsx62(MessageDivider, { system: item.system, children: item.divider }, i) : /* @__PURE__ */ jsx62(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)
2495
2522
  ) });
2496
2523
  });
2497
2524
 
2498
2525
  // src/components/MessageThread.tsx
2499
- import { forwardRef as forwardRef61, useEffect as useEffect7, useId as useId22, useState as useState9 } from "react";
2500
- import { Fragment as Fragment15, jsx as jsx63, 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";
2501
2528
  var MENU = [
2502
2529
  { name: "unread", label: "Mark as unread" },
2503
2530
  { name: "archive", label: "Move to archive" },
@@ -2520,11 +2547,11 @@ var DEMO6 = [
2520
2547
  time: "09:13",
2521
2548
  datetime: "2026-10-14T09:13",
2522
2549
  continued: true,
2523
- text: /* @__PURE__ */ jsxs50("p", { children: [
2550
+ text: /* @__PURE__ */ jsxs51("p", { children: [
2524
2551
  "Which one should we order: ",
2525
- /* @__PURE__ */ jsx63("strong", { children: "Calacatta matt" }),
2552
+ /* @__PURE__ */ jsx64("strong", { children: "Calacatta matt" }),
2526
2553
  " or ",
2527
- /* @__PURE__ */ jsx63("strong", { children: "Nero Marquina polished" }),
2554
+ /* @__PURE__ */ jsx64("strong", { children: "Nero Marquina polished" }),
2528
2555
  "? The cutting slot is Friday."
2529
2556
  ] })
2530
2557
  },
@@ -2542,7 +2569,7 @@ var DEMO6 = [
2542
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?" }
2543
2570
  ];
2544
2571
  var isOut = (m) => !!m && !("divider" in m) && m.direction === "out";
2545
- var MessageThread = forwardRef61(function MessageThread2({
2572
+ var MessageThread = forwardRef62(function MessageThread2({
2546
2573
  title = "Kitchen worktop: which finish?",
2547
2574
  project = "Villa Dewitte",
2548
2575
  meta = "Lisa Verbeke \u2192 Tom Peeters \xB7 14 Oct 2026",
@@ -2604,55 +2631,55 @@ var MessageThread = forwardRef61(function MessageThread2({
2604
2631
  e.preventDefault();
2605
2632
  e.currentTarget.requestSubmit();
2606
2633
  };
2607
- 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: [
2608
- /* @__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: [
2609
2636
  back,
2610
- /* @__PURE__ */ jsxs50("div", { className: "oc-message-thread__heading", children: [
2611
- /* @__PURE__ */ jsx63("h3", { className: "oc-message-thread__title", id: `${base}-title`, children: title }),
2612
- (project != null || meta != null) && /* @__PURE__ */ jsxs50("p", { className: "oc-message-thread__meta", children: [
2613
- project != null && /* @__PURE__ */ jsx63("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 }),
2614
2641
  project != null && meta != null && " \xB7 ",
2615
2642
  meta
2616
2643
  ] })
2617
2644
  ] }),
2618
- participants.length > 0 && /* @__PURE__ */ jsx63("div", { className: "oc-avatar-group oc-message-thread__people", "aria-label": `${participants.length} participants`, children: participants.map((p, i) => /* @__PURE__ */ jsx63("span", { className: "oc-avatar", title: p.name, children: p.initials }, i)) }),
2619
- (status || menu) && /* @__PURE__ */ jsxs50("div", { className: "oc-message-thread__actions", children: [
2620
- status && /* @__PURE__ */ jsx63("span", { className: cx("oc-badge", status.variant && `oc-badge--${status.variant}`), children: status.label }),
2621
- menu && /* @__PURE__ */ jsxs50(Fragment15, { children: [
2622
- /* @__PURE__ */ jsx63("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: [
2623
- /* @__PURE__ */ jsx63("circle", { cx: "12", cy: "5", r: "1.8" }),
2624
- /* @__PURE__ */ jsx63("circle", { cx: "12", cy: "12", r: "1.8" }),
2625
- /* @__PURE__ */ jsx63("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" })
2626
2653
  ] }) }),
2627
- /* @__PURE__ */ jsx63("div", { className: "oc-dropdown-menu", id: `${base}-menu`, ...attrs({ popover: "" }), role: "menu", children: menu.map((m, i) => "separator" in m ? /* @__PURE__ */ jsx63("div", { className: "oc-dropdown-separator", role: "separator" }, i) : /* @__PURE__ */ jsx63("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)) })
2628
2655
  ] })
2629
2656
  ] })
2630
2657
  ] }),
2631
- /* @__PURE__ */ jsx63("div", { className: "oc-message-thread__scroll", tabIndex: 0, role: "log", "aria-label": scrollLabel, "aria-live": live ? "polite" : void 0, children: /* @__PURE__ */ jsx63(MessageList, { items: list, log: false }) }),
2632
- /* @__PURE__ */ jsx63("div", { className: "oc-message-thread__footer", children: note != null ? /* @__PURE__ */ jsx63("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: [
2633
- /* @__PURE__ */ jsx63("label", { className: "oc-visually-hidden", htmlFor: `${base}-input`, children: "Message" }),
2634
- /* @__PURE__ */ jsx63("textarea", { className: "oc-chat-composer__input", id: `${base}-input`, name: "message", rows: 1, placeholder, required: true }),
2635
- /* @__PURE__ */ jsxs50("div", { className: "oc-chat-composer__bar", children: [
2636
- tools.length > 0 && /* @__PURE__ */ jsxs50("div", { className: "oc-chat-composer__tools", children: [
2637
- tools.includes("attach") && /* @__PURE__ */ jsx63("button", { type: "button", className: "oc-chat-composer__tool", "aria-label": "Attach a file", onClick: () => onTool?.("attach"), children: "\u{1F4CE}" }),
2638
- tools.includes("emoji") && /* @__PURE__ */ jsx63("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}" })
2639
2666
  ] }),
2640
- hint != null && /* @__PURE__ */ jsx63("span", { className: "oc-chat-composer__hint", children: hint }),
2641
- /* @__PURE__ */ jsx63("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" })
2642
2669
  ] })
2643
2670
  ] }) }),
2644
- busyTitle != null && /* @__PURE__ */ jsxs50("div", { className: "oc-message-thread__busy", role: "status", children: [
2645
- /* @__PURE__ */ jsx63("span", { className: "oc-spinner oc-spinner--lg", "aria-hidden": "true" }),
2646
- /* @__PURE__ */ jsx63("strong", { children: busyTitle }),
2647
- busyText != null && /* @__PURE__ */ jsx63("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 })
2648
2675
  ] })
2649
2676
  ] });
2650
2677
  });
2651
2678
 
2652
2679
  // src/components/Modal.tsx
2653
- import { forwardRef as forwardRef62, useId as useId23, useRef as useRef9 } from "react";
2654
- import { jsx as jsx64, jsxs as jsxs51 } from "react/jsx-runtime";
2655
- var Modal = forwardRef62(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) {
2656
2683
  const inner = useRef9(null);
2657
2684
  const ref = useMergedRef(inner, forwardedRef);
2658
2685
  const titleId = useId23();
@@ -2661,7 +2688,7 @@ var Modal = forwardRef62(function Modal2({ open, defaultOpen, onOpenChange, titl
2661
2688
  rest.onClick?.(e);
2662
2689
  if (closeOnBackdrop && e.target === e.currentTarget) dlg.close();
2663
2690
  };
2664
- return /* @__PURE__ */ jsx64(
2691
+ return /* @__PURE__ */ jsx65(
2665
2692
  "dialog",
2666
2693
  {
2667
2694
  ref,
@@ -2671,20 +2698,20 @@ var Modal = forwardRef62(function Modal2({ open, defaultOpen, onOpenChange, titl
2671
2698
  ...rest,
2672
2699
  onClick,
2673
2700
  onClose: dlg.onClose,
2674
- children: /* @__PURE__ */ jsx64(DialogContext.Provider, { value: { close: dlg.close }, children: /* @__PURE__ */ jsxs51("div", { className: cx("oc-modal-content", size !== "md" && `oc-modal-content--${size}`), children: [
2675
- (title != null || description != null) && /* @__PURE__ */ jsxs51("div", { className: "oc-modal-header", children: [
2676
- title != null && /* @__PURE__ */ jsx64("h2", { className: "oc-modal-title", id: titleId, children: title }),
2677
- description != null && /* @__PURE__ */ jsx64("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 })
2678
2705
  ] }),
2679
2706
  children,
2680
- footer != null && /* @__PURE__ */ jsx64("div", { className: "oc-modal-footer", children: footer })
2707
+ footer != null && /* @__PURE__ */ jsx65("div", { className: "oc-modal-footer", children: footer })
2681
2708
  ] }) })
2682
2709
  }
2683
2710
  );
2684
2711
  });
2685
- var ModalClose = forwardRef62(function ModalClose2({ onClick, ...rest }, ref) {
2712
+ var ModalClose = forwardRef63(function ModalClose2({ onClick, ...rest }, ref) {
2686
2713
  const ctx = useDialogContext();
2687
- return /* @__PURE__ */ jsx64(
2714
+ return /* @__PURE__ */ jsx65(
2688
2715
  Button,
2689
2716
  {
2690
2717
  ref,
@@ -2699,53 +2726,53 @@ var ModalClose = forwardRef62(function ModalClose2({ onClick, ...rest }, ref) {
2699
2726
  });
2700
2727
 
2701
2728
  // src/components/Navmenu.tsx
2702
- import { forwardRef as forwardRef63, useId as useId24 } from "react";
2703
- import { jsx as jsx65, jsxs as jsxs52 } from "react/jsx-runtime";
2704
- var Navmenu = forwardRef63(function Navmenu2({ label = "Navigation", navClassName, className, ...rest }, ref) {
2705
- return /* @__PURE__ */ jsx65("nav", { "aria-label": label, className: navClassName, children: /* @__PURE__ */ jsx65("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 }) });
2706
2733
  });
2707
2734
  function NavmenuItem(props) {
2708
- return /* @__PURE__ */ jsx65("li", { ...props });
2735
+ return /* @__PURE__ */ jsx66("li", { ...props });
2709
2736
  }
2710
- var NavmenuLink = forwardRef63(function NavmenuLink2({ current, className, ...rest }, ref) {
2711
- return /* @__PURE__ */ jsx65("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 });
2712
2739
  });
2713
- var NavmenuDropdown = forwardRef63(function NavmenuDropdown2({ label, className, id, children, ...rest }, ref) {
2740
+ var NavmenuDropdown = forwardRef64(function NavmenuDropdown2({ label, className, id, children, ...rest }, ref) {
2714
2741
  const auto = useId24();
2715
2742
  const menuId = id ?? `oc-navmenu-${auto.replace(/:/g, "")}`;
2716
- return /* @__PURE__ */ jsxs52("li", { children: [
2717
- /* @__PURE__ */ jsx65("button", { className: "oc-navmenu-link oc-navmenu-link--caret", type: "button", popoverTarget: menuId, children: label }),
2718
- /* @__PURE__ */ jsx65("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 })
2719
2746
  ] });
2720
2747
  });
2721
2748
 
2722
2749
  // src/components/NextTeaser.tsx
2723
- import { forwardRef as forwardRef64 } from "react";
2724
- import { jsx as jsx66, jsxs as jsxs53 } from "react/jsx-runtime";
2725
- var NextTeaser = forwardRef64(function NextTeaser2({ label = "Next product", name, tagline, mark, prev = false, className, ...rest }, ref) {
2726
- return /* @__PURE__ */ jsxs53("a", { ref, className: cx("oc-next-teaser", prev && "oc-next-teaser--prev", className), ...rest, children: [
2727
- label != null && /* @__PURE__ */ jsx66("span", { className: "oc-next-teaser__label", children: label }),
2728
- /* @__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: [
2729
2756
  mark,
2730
2757
  name
2731
2758
  ] }),
2732
- tagline != null && /* @__PURE__ */ jsx66("span", { className: "oc-next-teaser__tagline", children: tagline })
2759
+ tagline != null && /* @__PURE__ */ jsx67("span", { className: "oc-next-teaser__tagline", children: tagline })
2733
2760
  ] });
2734
2761
  });
2735
2762
 
2736
2763
  // src/components/NumberInput.tsx
2737
- import { forwardRef as forwardRef65 } from "react";
2738
- import { jsx as jsx67, 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";
2739
2766
  function clamp(n, min, max) {
2740
2767
  const rounded = Math.round(n * 1e6) / 1e6;
2741
2768
  return Math.min(max ?? Infinity, Math.max(min ?? -Infinity, rounded));
2742
2769
  }
2743
- var NumberInput = forwardRef65(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) {
2744
2771
  const [current, setCurrent] = useControllable(value, defaultValue ?? null, onChange);
2745
2772
  const stepBy = (dir) => setCurrent(clamp((current ?? min ?? 0) + dir * step, min, max));
2746
- 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: [
2747
- /* @__PURE__ */ jsx67("button", { className: "oc-number-input-step", type: "button", "aria-label": decrementLabel, disabled: disabled || min != null && current != null && current <= min, onClick: () => stepBy(-1), children: "\u2212" }),
2748
- /* @__PURE__ */ jsx67(
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(
2749
2776
  "input",
2750
2777
  {
2751
2778
  ref,
@@ -2761,16 +2788,16 @@ var NumberInput = forwardRef65(function NumberInput2({ value, defaultValue, onCh
2761
2788
  ...rest
2762
2789
  }
2763
2790
  ),
2764
- /* @__PURE__ */ jsx67("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: "+" })
2765
2792
  ] });
2766
2793
  });
2767
2794
 
2768
2795
  // src/components/OtpInput.tsx
2769
- import { forwardRef as forwardRef66 } from "react";
2770
- import { jsx as jsx68 } from "react/jsx-runtime";
2771
- var OtpInput = forwardRef66(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) {
2772
2799
  const [code, setCode] = useControllable(value, defaultValue, onChange);
2773
- return /* @__PURE__ */ jsx68(
2800
+ return /* @__PURE__ */ jsx69(
2774
2801
  "input",
2775
2802
  {
2776
2803
  ref,
@@ -2794,29 +2821,29 @@ var OtpInput = forwardRef66(function OtpInput2({ length = 6, value, defaultValue
2794
2821
  });
2795
2822
 
2796
2823
  // src/components/PageHeader.tsx
2797
- import { forwardRef as forwardRef67 } from "react";
2798
- import { jsx as jsx69, jsxs as jsxs55 } from "react/jsx-runtime";
2799
- var PageHeader = forwardRef67(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) {
2800
2827
  const Heading3 = `h${level}`;
2801
2828
  const cls = cx("oc-page-header", bordered && "oc-page-header--bordered", sticky && "oc-page-header--sticky", size && `oc-page-header--${size}`, className);
2802
- return /* @__PURE__ */ jsxs55("header", { ref, className: cls, ...rest, children: [
2803
- back != null && /* @__PURE__ */ jsx69("div", { className: "oc-page-header-back", children: back }),
2804
- /* @__PURE__ */ jsxs55("div", { className: "oc-page-header-main", children: [
2805
- /* @__PURE__ */ jsxs55("div", { className: "oc-page-header-text", children: [
2806
- /* @__PURE__ */ jsx69(Heading3, { className: "oc-page-header-title", children: title }),
2807
- subtitle != null && /* @__PURE__ */ jsx69("p", { className: "oc-page-header-subtitle", children: subtitle }),
2808
- meta != null && /* @__PURE__ */ jsx69("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 })
2809
2836
  ] }),
2810
- actions != null && /* @__PURE__ */ jsx69("div", { className: "oc-page-header-actions", children: actions })
2837
+ actions != null && /* @__PURE__ */ jsx70("div", { className: "oc-page-header-actions", children: actions })
2811
2838
  ] })
2812
2839
  ] });
2813
2840
  });
2814
2841
 
2815
2842
  // src/components/Pagination.tsx
2816
- import { forwardRef as forwardRef68 } from "react";
2817
- import { jsx as jsx70 } from "react/jsx-runtime";
2818
- var Pagination = forwardRef68(function Pagination2({ page, pageCount, onPageChange, hrefFor = (n) => `?page=${n}`, className, "aria-label": ariaLabel = "Pagination", ...rest }, ref) {
2819
- return /* @__PURE__ */ jsx70("nav", { ref, className: cx("oc-pagination", className), "aria-label": ariaLabel, ...rest, children: Array.from({ length: pageCount }, (_, i) => i + 1).map((n) => /* @__PURE__ */ jsx70(
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(
2820
2847
  "a",
2821
2848
  {
2822
2849
  className: "oc-pagination-item",
@@ -2833,12 +2860,12 @@ var Pagination = forwardRef68(function Pagination2({ page, pageCount, onPageChan
2833
2860
  });
2834
2861
 
2835
2862
  // src/components/PasswordInput.tsx
2836
- import { forwardRef as forwardRef69, useState as useState10 } from "react";
2837
- import { jsx as jsx71, jsxs as jsxs56 } from "react/jsx-runtime";
2838
- var PasswordInput = forwardRef69(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) {
2839
2866
  const [shown, setShown] = useState10(false);
2840
- return /* @__PURE__ */ jsxs56("div", { className: "oc-input-reveal", children: [
2841
- /* @__PURE__ */ jsx71(
2867
+ return /* @__PURE__ */ jsxs57("div", { className: "oc-input-reveal", children: [
2868
+ /* @__PURE__ */ jsx72(
2842
2869
  "input",
2843
2870
  {
2844
2871
  ref,
@@ -2849,27 +2876,27 @@ var PasswordInput = forwardRef69(function PasswordInput2({ showLabel = "Show", h
2849
2876
  ...rest
2850
2877
  }
2851
2878
  ),
2852
- /* @__PURE__ */ jsx71("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 })
2853
2880
  ] });
2854
2881
  });
2855
2882
 
2856
2883
  // src/components/PasswordRequirements.tsx
2857
- import { forwardRef as forwardRef70 } from "react";
2858
- import { jsx as jsx72 } from "react/jsx-runtime";
2884
+ import { forwardRef as forwardRef71 } from "react";
2885
+ import { jsx as jsx73 } from "react/jsx-runtime";
2859
2886
  var defaultPasswordRules = [
2860
2887
  { label: "At least 8 characters", test: (p) => p.length >= 8 },
2861
2888
  { label: "One uppercase letter", test: (p) => /[A-Z]/.test(p) },
2862
2889
  { label: "One number", test: (p) => /[0-9]/.test(p) },
2863
2890
  { label: "One symbol", test: (p) => /[^A-Za-z0-9]/.test(p) }
2864
2891
  ];
2865
- var PasswordRequirements = forwardRef70(function PasswordRequirements2({ password, rules = defaultPasswordRules, inline, hideWhenEmpty, className, ...rest }, ref) {
2892
+ var PasswordRequirements = forwardRef71(function PasswordRequirements2({ password, rules = defaultPasswordRules, inline, hideWhenEmpty, className, ...rest }, ref) {
2866
2893
  if (hideWhenEmpty && !password) return null;
2867
- return /* @__PURE__ */ jsx72("ul", { ref, className: cx("oc-password-requirements", inline && "oc-password-requirements--inline", className), "aria-live": "polite", ...rest, children: rules.map((rule, i) => /* @__PURE__ */ jsx72("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)) });
2868
2895
  });
2869
2896
 
2870
2897
  // src/components/PhoneInput.tsx
2871
- import { forwardRef as forwardRef71, useState as useState11 } from "react";
2872
- import { jsx as jsx73, 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";
2873
2900
  var DEFAULT_COUNTRIES = [
2874
2901
  { dial: "+32", label: "BE +32" },
2875
2902
  { dial: "+31", label: "NL +31" },
@@ -2886,7 +2913,7 @@ function splitPhone(full, countries) {
2886
2913
  const match = [...countries].sort((a, b) => b.dial.length - a.dial.length).find((c) => full.startsWith(c.dial));
2887
2914
  return match ? { dial: match.dial, national: full.slice(match.dial.length) } : { dial: "", national: full.replace(/^\+/, "") };
2888
2915
  }
2889
- var PhoneInput = forwardRef71(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) {
2890
2917
  const [full, setFull] = useControllable(value, defaultValue ?? "", onChange);
2891
2918
  const parsed = splitPhone(full, countries);
2892
2919
  const [dialState, setDialState] = useState11(parsed.dial || defaultDial || countries[0]?.dial || "");
@@ -2896,9 +2923,9 @@ var PhoneInput = forwardRef71(function PhoneInput2({ value, defaultValue, onChan
2896
2923
  const digits = national.replace(/\D/g, "");
2897
2924
  setFull(digits ? nextDial + digits : "");
2898
2925
  };
2899
- return /* @__PURE__ */ jsxs57("div", { className: cx("oc-phone-input", size === "sm" && "oc-phone-input--sm", error && "oc-phone-input--error", className), children: [
2900
- /* @__PURE__ */ jsx73("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__ */ jsx73("option", { value: c.dial, children: c.label }, c.dial)) }),
2901
- /* @__PURE__ */ jsx73(
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(
2902
2929
  "input",
2903
2930
  {
2904
2931
  ref,
@@ -2917,33 +2944,33 @@ var PhoneInput = forwardRef71(function PhoneInput2({ value, defaultValue, onChan
2917
2944
  });
2918
2945
 
2919
2946
  // src/components/Popover.tsx
2920
- import { forwardRef as forwardRef72, useId as useId25 } from "react";
2921
- import { Fragment as Fragment16, jsx as jsx74, jsxs as jsxs58 } from "react/jsx-runtime";
2922
- var Popover = forwardRef72(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) {
2923
2950
  const auto = useId25();
2924
2951
  const panelId = id ?? `oc-popover-${auto.replace(/:/g, "")}`;
2925
- return /* @__PURE__ */ jsxs58(Fragment16, { children: [
2926
- /* @__PURE__ */ jsx74(Button, { variant: "outline", type: "button", ...triggerProps, popoverTarget: panelId, children: trigger }),
2927
- /* @__PURE__ */ jsxs58("div", { ref, className: cx("oc-popover", size !== "md" && `oc-popover--${size}`, className), id: panelId, ...attrs({ popover: "" }), ...rest, children: [
2928
- title != null && /* @__PURE__ */ jsx74("h3", { className: "oc-popover-title", children: title }),
2929
- text != null && /* @__PURE__ */ jsx74("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 }),
2930
2957
  children
2931
2958
  ] })
2932
2959
  ] });
2933
2960
  });
2934
2961
 
2935
2962
  // src/components/PriceCard.tsx
2936
- import { forwardRef as forwardRef73, useId as useId26 } from "react";
2937
- import { jsx as jsx75, 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";
2938
2965
  function Price({ kind, price }) {
2939
- return /* @__PURE__ */ jsxs59("p", { className: `oc-price-card__price oc-price-card__price--${kind}`, children: [
2940
- /* @__PURE__ */ jsx75("span", { className: "oc-price-card__amount", children: price.amount }),
2941
- price.period != null && /* @__PURE__ */ jsx75("span", { className: "oc-price-card__period", children: price.period }),
2942
- price.was != null && /* @__PURE__ */ jsx75("s", { className: "oc-price-card__was", children: price.was }),
2943
- price.note != null && /* @__PURE__ */ jsx75("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 })
2944
2971
  ] });
2945
2972
  }
2946
- var PriceCard = forwardRef73(function PriceCard2({
2973
+ var PriceCard = forwardRef74(function PriceCard2({
2947
2974
  name,
2948
2975
  description,
2949
2976
  discount,
@@ -2959,35 +2986,35 @@ var PriceCard = forwardRef73(function PriceCard2({
2959
2986
  ...rest
2960
2987
  }, ref) {
2961
2988
  const group = `oc-price-${useId26().replace(/[^\w-]/g, "")}`;
2962
- return /* @__PURE__ */ jsxs59("article", { ref, className: cx("oc-price-card", featured && "oc-price-card--featured", className), ...rest, children: [
2963
- /* @__PURE__ */ jsxs59("div", { className: "oc-price-card__head", children: [
2964
- /* @__PURE__ */ jsx75("h3", { className: "oc-price-card__name", children: name }),
2965
- discount != null && /* @__PURE__ */ jsx75("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 })
2966
2993
  ] }),
2967
- description != null && /* @__PURE__ */ jsx75("p", { className: "oc-price-card__desc", children: description }),
2968
- yearly && /* @__PURE__ */ jsxs59("div", { className: "oc-segmented oc-price-card__toggle", role: "radiogroup", "aria-label": "Billing period", children: [
2969
- /* @__PURE__ */ jsxs59("label", { className: "oc-segmented-item", children: [
2970
- /* @__PURE__ */ jsx75("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" }),
2971
2998
  " ",
2972
2999
  monthlyLabel
2973
3000
  ] }),
2974
- /* @__PURE__ */ jsxs59("label", { className: "oc-segmented-item", children: [
2975
- /* @__PURE__ */ jsx75("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" }),
2976
3003
  " ",
2977
3004
  yearlyLabel
2978
3005
  ] })
2979
3006
  ] }),
2980
- /* @__PURE__ */ jsx75(Price, { kind: "monthly", price: monthly }),
2981
- yearly && /* @__PURE__ */ jsx75(Price, { kind: "yearly", price: yearly }),
2982
- features.length > 0 && /* @__PURE__ */ jsx75("ul", { className: "oc-price-card__features", children: features.map((f, i) => /* @__PURE__ */ jsx75("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)) }),
2983
3010
  cta
2984
3011
  ] });
2985
3012
  });
2986
3013
 
2987
3014
  // src/components/ProductMark.tsx
2988
- import { forwardRef as forwardRef74 } from "react";
2989
- import { jsx as jsx76 } from "react/jsx-runtime";
2990
- var ProductMark = forwardRef74(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) {
2991
3018
  const classes = cx(
2992
3019
  "oc-product-mark",
2993
3020
  size !== "default" && `oc-product-mark--${size}`,
@@ -2997,132 +3024,132 @@ var ProductMark = forwardRef74(function ProductMark2({ size = "default", accent,
2997
3024
  accent && `oc-accent--${accent}`,
2998
3025
  className
2999
3026
  );
3000
- return /* @__PURE__ */ jsx76("span", { ref, className: classes, "aria-hidden": "true", ...rest });
3027
+ return /* @__PURE__ */ jsx77("span", { ref, className: classes, "aria-hidden": "true", ...rest });
3001
3028
  });
3002
3029
 
3003
3030
  // src/components/ProjectCard.tsx
3004
- import { forwardRef as forwardRef75 } from "react";
3005
- import { jsx as jsx77, jsxs as jsxs60 } from "react/jsx-runtime";
3006
- var ProjectCard = forwardRef75(function ProjectCard2({ name, type, meta, more = "View project", image, imageAlt = "", flat = false, className, ...rest }, ref) {
3007
- return /* @__PURE__ */ jsxs60("a", { ref, className: cx("oc-project-card", flat && "oc-project-card--flat", className), ...rest, children: [
3008
- /* @__PURE__ */ jsxs60("span", { className: "oc-project-card__frame", children: [
3009
- /* @__PURE__ */ jsxs60("span", { className: "oc-project-card__bar", "aria-hidden": "true", children: [
3010
- /* @__PURE__ */ jsx77("i", {}),
3011
- /* @__PURE__ */ jsx77("i", {}),
3012
- /* @__PURE__ */ jsx77("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", {})
3013
3040
  ] }),
3014
- image ? /* @__PURE__ */ jsx77("img", { className: "oc-project-card__shot", src: image, alt: imageAlt, loading: "lazy" }) : /* @__PURE__ */ jsx77("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 })
3015
3042
  ] }),
3016
- /* @__PURE__ */ jsxs60("span", { className: "oc-project-card__body", children: [
3017
- type != null && /* @__PURE__ */ jsx77("span", { className: "oc-project-card__type", children: type }),
3018
- /* @__PURE__ */ jsx77("span", { className: "oc-project-card__name", children: name }),
3019
- meta != null && /* @__PURE__ */ jsx77("span", { className: "oc-project-card__meta", children: meta }),
3020
- more != null && /* @__PURE__ */ jsx77("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 })
3021
3048
  ] })
3022
3049
  ] });
3023
3050
  });
3024
3051
 
3025
3052
  // src/components/Prose.tsx
3026
- import { forwardRef as forwardRef76 } from "react";
3027
- import { Fragment as Fragment17, jsx as jsx78, 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";
3028
3055
  function ProseLead({ className, ...rest }) {
3029
- return /* @__PURE__ */ jsx78("p", { className: cx("oc-prose-lead", className), ...rest });
3056
+ return /* @__PURE__ */ jsx79("p", { className: cx("oc-prose-lead", className), ...rest });
3030
3057
  }
3031
- var DEMO7 = /* @__PURE__ */ jsxs61(Fragment17, { children: [
3032
- /* @__PURE__ */ jsx78("h1", { children: "Planning a kitchen renovation" }),
3033
- /* @__PURE__ */ jsx78(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." }),
3034
- /* @__PURE__ */ jsx78("h2", { children: "Before the first visit" }),
3035
- /* @__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: [
3036
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 ",
3037
- /* @__PURE__ */ jsx78("a", { href: "#checklist", children: "preparation checklist" }),
3064
+ /* @__PURE__ */ jsx79("a", { href: "#checklist", children: "preparation checklist" }),
3038
3065
  " if you want to be fully ready."
3039
3066
  ] }),
3040
- /* @__PURE__ */ jsxs61("ul", { children: [
3041
- /* @__PURE__ */ jsxs61("li", { children: [
3067
+ /* @__PURE__ */ jsxs62("ul", { children: [
3068
+ /* @__PURE__ */ jsxs62("li", { children: [
3042
3069
  "The ",
3043
- /* @__PURE__ */ jsx78("strong", { children: "budget range" }),
3070
+ /* @__PURE__ */ jsx79("strong", { children: "budget range" }),
3044
3071
  " you have in mind, including appliances"
3045
3072
  ] }),
3046
- /* @__PURE__ */ jsxs61("li", { children: [
3073
+ /* @__PURE__ */ jsxs62("li", { children: [
3047
3074
  "Which walls, doors and windows can move, and which cannot",
3048
- /* @__PURE__ */ jsxs61("ul", { children: [
3049
- /* @__PURE__ */ jsx78("li", { children: "Load-bearing walls need a structural engineer" }),
3050
- /* @__PURE__ */ jsx78("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" })
3051
3078
  ] })
3052
3079
  ] }),
3053
- /* @__PURE__ */ jsx78("li", { children: "Appliances you want to keep" })
3080
+ /* @__PURE__ */ jsx79("li", { children: "Appliances you want to keep" })
3054
3081
  ] }),
3055
- /* @__PURE__ */ jsxs61("figure", { children: [
3056
- /* @__PURE__ */ jsx78("div", { className: "oc-media-art oc-media-art--6", role: "img", "aria-label": "Kitchen with oak fronts and a light stone worktop" }),
3057
- /* @__PURE__ */ jsx78("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." })
3058
3085
  ] }),
3059
- /* @__PURE__ */ jsx78("h3", { children: "From design to installation" }),
3060
- /* @__PURE__ */ jsxs61("ol", { children: [
3061
- /* @__PURE__ */ jsx78("li", { children: "Site visit and measurements (week 1)" }),
3062
- /* @__PURE__ */ jsx78("li", { children: "Design and quote, with two revision rounds (weeks 2\u20133)" }),
3063
- /* @__PURE__ */ jsx78("li", { children: "Order and production of the cabinets (weeks 4\u20139)" }),
3064
- /* @__PURE__ */ jsx78("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)" })
3065
3092
  ] }),
3066
- /* @__PURE__ */ jsxs61("blockquote", { children: [
3067
- /* @__PURE__ */ jsx78("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." }),
3068
- /* @__PURE__ */ jsx78("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" })
3069
3096
  ] }),
3070
- /* @__PURE__ */ jsx78("h2", { children: "Worktop materials compared" }),
3071
- /* @__PURE__ */ jsxs61("table", { children: [
3072
- /* @__PURE__ */ jsx78("caption", { children: "Prices per running metre, 60 cm deep, installed." }),
3073
- /* @__PURE__ */ jsx78("thead", { children: /* @__PURE__ */ jsxs61("tr", { children: [
3074
- /* @__PURE__ */ jsx78("th", { children: "Material" }),
3075
- /* @__PURE__ */ jsx78("th", { children: "Thickness" }),
3076
- /* @__PURE__ */ jsx78("th", { children: "Heat resistant" }),
3077
- /* @__PURE__ */ jsx78("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" })
3078
3105
  ] }) }),
3079
- /* @__PURE__ */ jsxs61("tbody", { children: [
3080
- /* @__PURE__ */ jsxs61("tr", { children: [
3081
- /* @__PURE__ */ jsx78("td", { children: "Compact laminate" }),
3082
- /* @__PURE__ */ jsx78("td", { children: "12 mm" }),
3083
- /* @__PURE__ */ jsx78("td", { children: "Up to 180 \xB0C" }),
3084
- /* @__PURE__ */ jsx78("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" })
3085
3112
  ] }),
3086
- /* @__PURE__ */ jsxs61("tr", { children: [
3087
- /* @__PURE__ */ jsx78("td", { children: "Quartz composite" }),
3088
- /* @__PURE__ */ jsx78("td", { children: "20 mm" }),
3089
- /* @__PURE__ */ jsx78("td", { children: "Up to 150 \xB0C" }),
3090
- /* @__PURE__ */ jsx78("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" })
3091
3118
  ] }),
3092
- /* @__PURE__ */ jsxs61("tr", { children: [
3093
- /* @__PURE__ */ jsx78("td", { children: "Natural stone" }),
3094
- /* @__PURE__ */ jsx78("td", { children: "20 mm" }),
3095
- /* @__PURE__ */ jsx78("td", { children: "Yes" }),
3096
- /* @__PURE__ */ jsx78("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" })
3097
3124
  ] })
3098
3125
  ] })
3099
3126
  ] }),
3100
- /* @__PURE__ */ jsx78("h3", { children: "Sharing your floor plan" }),
3101
- /* @__PURE__ */ jsxs61("p", { children: [
3127
+ /* @__PURE__ */ jsx79("h3", { children: "Sharing your floor plan" }),
3128
+ /* @__PURE__ */ jsxs62("p", { children: [
3102
3129
  "Upload a PDF or a photo in the client portal, or send it by e-mail. Press ",
3103
- /* @__PURE__ */ jsx78("kbd", { children: "Ctrl" }),
3130
+ /* @__PURE__ */ jsx79("kbd", { children: "Ctrl" }),
3104
3131
  " + ",
3105
- /* @__PURE__ */ jsx78("kbd", { children: "V" }),
3132
+ /* @__PURE__ */ jsx79("kbd", { children: "V" }),
3106
3133
  " in the chat to paste a screenshot. Files are stored as ",
3107
- /* @__PURE__ */ jsx78("code", { children: "project-id/plans/" }),
3134
+ /* @__PURE__ */ jsx79("code", { children: "project-id/plans/" }),
3108
3135
  " and only your project team can see them."
3109
3136
  ] }),
3110
- /* @__PURE__ */ jsx78("pre", { children: /* @__PURE__ */ jsx78("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)" }) }),
3111
- /* @__PURE__ */ jsx78("hr", {}),
3112
- /* @__PURE__ */ jsx78("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: [
3113
3140
  "Lead times are an estimate. ",
3114
- /* @__PURE__ */ jsx78("mark", { children: "Natural stone" }),
3141
+ /* @__PURE__ */ jsx79("mark", { children: "Natural stone" }),
3115
3142
  " can take two weeks longer in summer."
3116
3143
  ] }) })
3117
3144
  ] });
3118
- var Prose = forwardRef76(function Prose2({ size = "md", full, as: Tag = "article", className, children, ...rest }, ref) {
3119
- return /* @__PURE__ */ jsx78(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 });
3120
3147
  });
3121
3148
 
3122
3149
  // src/components/RecoveryCodes.tsx
3123
- import { forwardRef as forwardRef77 } from "react";
3124
- import { jsx as jsx79, jsxs as jsxs62 } from "react/jsx-runtime";
3125
- var RecoveryCodes = forwardRef77(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({
3126
3153
  codes,
3127
3154
  title = "Recovery codes",
3128
3155
  warning = "Store these codes somewhere safe. Each code works once.",
@@ -3150,33 +3177,33 @@ var RecoveryCodes = forwardRef77(function RecoveryCodes2({
3150
3177
  URL.revokeObjectURL(url);
3151
3178
  onDownload?.(codes);
3152
3179
  };
3153
- return /* @__PURE__ */ jsxs62("div", { ref, className: cx("oc-recovery-codes", className), ...rest, children: [
3154
- /* @__PURE__ */ jsx79("h3", { className: "oc-recovery-codes-title", children: title }),
3155
- /* @__PURE__ */ jsx79("p", { className: "oc-recovery-codes-warning", children: warning }),
3156
- /* @__PURE__ */ jsx79("ul", { className: "oc-recovery-codes-list", children: codes.map((code) => /* @__PURE__ */ jsx79("li", { children: code }, code)) }),
3157
- /* @__PURE__ */ jsxs62("div", { className: "oc-recovery-codes-actions", children: [
3158
- /* @__PURE__ */ jsx79("button", { className: "oc-btn oc-btn--outline oc-btn--sm", type: "button", onClick: copy, children: copyLabel }),
3159
- /* @__PURE__ */ jsx79("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 })
3160
3187
  ] })
3161
3188
  ] });
3162
3189
  });
3163
3190
 
3164
3191
  // src/components/Segmented.tsx
3165
- import { forwardRef as forwardRef78, useId as useId27 } from "react";
3166
- import { jsx as jsx80, jsxs as jsxs63 } from "react/jsx-runtime";
3167
- var Segmented = forwardRef78(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) {
3168
3195
  const auto = useId27();
3169
3196
  const group = name ?? `oc-segmented-${auto.replace(/:/g, "")}`;
3170
3197
  const [current, setCurrent] = useControllable(value, defaultValue ?? options[0]?.value ?? "", onChange);
3171
- return /* @__PURE__ */ jsx80(
3198
+ return /* @__PURE__ */ jsx81(
3172
3199
  "div",
3173
3200
  {
3174
3201
  ref,
3175
3202
  className: cx("oc-segmented", block && "oc-segmented--block", size === "sm" && "oc-segmented--sm", className),
3176
3203
  role: "radiogroup",
3177
3204
  ...rest,
3178
- children: options.map((o) => /* @__PURE__ */ jsxs63("label", { className: "oc-segmented-item", children: [
3179
- /* @__PURE__ */ jsx80("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) }),
3180
3207
  " ",
3181
3208
  o.label
3182
3209
  ] }, o.value))
@@ -3185,44 +3212,44 @@ var Segmented = forwardRef78(function Segmented2({ options, value, defaultValue,
3185
3212
  });
3186
3213
 
3187
3214
  // src/components/Select.tsx
3188
- import { forwardRef as forwardRef79 } from "react";
3189
- import { jsx as jsx81, jsxs as jsxs64 } from "react/jsx-runtime";
3190
- var Select = forwardRef79(function Select2({ options, className, children, ...rest }, ref) {
3191
- 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: [
3192
3219
  options?.map((o) => {
3193
3220
  const opt = typeof o === "string" ? { value: o, label: o } : o;
3194
- return /* @__PURE__ */ jsx81("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);
3195
3222
  }),
3196
3223
  children
3197
3224
  ] });
3198
3225
  });
3199
3226
 
3200
3227
  // src/components/SeverityCard.tsx
3201
- import { forwardRef as forwardRef80 } from "react";
3202
- import { jsx as jsx82, 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";
3203
3230
  var LEVEL_TEXT = { low: "Low", medium: "Medium", high: "High", critical: "Critical" };
3204
- var SeverityCard = forwardRef80(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) {
3205
3232
  const cls = cx("oc-severity-card", `oc-severity-card--${level}`, resolved && "is-resolved", className);
3206
- return /* @__PURE__ */ jsxs65("details", { ref, className: cls, ...rest, children: [
3207
- /* @__PURE__ */ jsxs65("summary", { className: "oc-severity-card-head", children: [
3208
- icon != null && /* @__PURE__ */ jsx82("span", { className: "oc-severity-card-icon", "aria-hidden": "true", children: icon }),
3209
- /* @__PURE__ */ jsxs65("span", { className: "oc-severity-card-main", children: [
3210
- /* @__PURE__ */ jsx82("span", { className: "oc-severity-card-title", children: title }),
3211
- tags && tags.length > 0 && /* @__PURE__ */ jsx82("span", { className: "oc-severity-card-tags", children: tags.map((t, i) => /* @__PURE__ */ jsx82("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)) })
3212
3239
  ] }),
3213
- /* @__PURE__ */ jsx82("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] })
3214
3241
  ] }),
3215
- /* @__PURE__ */ jsxs65("div", { className: "oc-severity-card-body", children: [
3242
+ /* @__PURE__ */ jsxs66("div", { className: "oc-severity-card-body", children: [
3216
3243
  children,
3217
- actions != null && /* @__PURE__ */ jsx82("div", { className: "oc-severity-card-actions", children: actions })
3244
+ actions != null && /* @__PURE__ */ jsx83("div", { className: "oc-severity-card-actions", children: actions })
3218
3245
  ] })
3219
3246
  ] });
3220
3247
  });
3221
3248
 
3222
3249
  // src/components/Sheet.tsx
3223
- import { forwardRef as forwardRef81, useId as useId28, useRef as useRef10 } from "react";
3224
- import { jsx as jsx83, jsxs as jsxs66 } from "react/jsx-runtime";
3225
- var Sheet = forwardRef81(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) {
3226
3253
  const inner = useRef10(null);
3227
3254
  const ref = useMergedRef(inner, forwardedRef);
3228
3255
  const titleId = useId28();
@@ -3231,7 +3258,7 @@ var Sheet = forwardRef81(function Sheet2({ open, defaultOpen, onOpenChange, side
3231
3258
  rest.onClick?.(e);
3232
3259
  if (e.target === e.currentTarget) dlg.close();
3233
3260
  };
3234
- return /* @__PURE__ */ jsx83(
3261
+ return /* @__PURE__ */ jsx84(
3235
3262
  "dialog",
3236
3263
  {
3237
3264
  ref,
@@ -3241,57 +3268,57 @@ var Sheet = forwardRef81(function Sheet2({ open, defaultOpen, onOpenChange, side
3241
3268
  ...rest,
3242
3269
  onClick,
3243
3270
  onClose: dlg.onClose,
3244
- children: /* @__PURE__ */ jsx83(DialogContext.Provider, { value: { close: dlg.close }, children: /* @__PURE__ */ jsxs66("div", { className: cx("oc-sheet-content", wide && "oc-sheet-content--wide"), children: [
3245
- /* @__PURE__ */ jsx83("button", { className: "oc-sheet-close", type: "button", "aria-label": closeLabel, onClick: dlg.close, children: "\xD7" }),
3246
- (title != null || description != null) && /* @__PURE__ */ jsxs66("div", { className: "oc-sheet-header", children: [
3247
- title != null && /* @__PURE__ */ jsx83("h2", { className: "oc-sheet-title", id: titleId, children: title }),
3248
- description != null && /* @__PURE__ */ jsx83("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 })
3249
3276
  ] }),
3250
- /* @__PURE__ */ jsx83("div", { className: "oc-sheet-body", children }),
3251
- footer != null && /* @__PURE__ */ jsx83("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 })
3252
3279
  ] }) })
3253
3280
  }
3254
3281
  );
3255
3282
  });
3256
3283
 
3257
3284
  // src/components/Sidebar.tsx
3258
- import { forwardRef as forwardRef82 } from "react";
3259
- import { Fragment as Fragment18, jsx as jsx84, jsxs as jsxs67 } from "react/jsx-runtime";
3260
- var Sidebar = forwardRef82(function Sidebar2({ collapsed, right, floating, dark, header, footer, className, children, ...rest }, ref) {
3261
- 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(
3262
3289
  "aside",
3263
3290
  {
3264
3291
  ref,
3265
3292
  className: cx("oc-sidebar", collapsed && "oc-sidebar--collapsed", right && "oc-sidebar--right", floating && "oc-sidebar--floating", dark && "oc-sidebar--dark", className),
3266
3293
  ...rest,
3267
3294
  children: [
3268
- header != null && /* @__PURE__ */ jsx84("div", { className: "oc-sidebar-header", children: header }),
3269
- /* @__PURE__ */ jsx84("div", { className: "oc-sidebar-content", children }),
3270
- footer != null && /* @__PURE__ */ jsx84("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 })
3271
3298
  ]
3272
3299
  }
3273
3300
  );
3274
3301
  });
3275
- var SidebarGroup = forwardRef82(function SidebarGroup2({ label, className, children, ...rest }, ref) {
3276
- return /* @__PURE__ */ jsxs67("div", { ref, className: cx("oc-sidebar-group", className), ...rest, children: [
3277
- label != null && /* @__PURE__ */ jsx84("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 }),
3278
3305
  children
3279
3306
  ] });
3280
3307
  });
3281
3308
  function SidebarSeparator({ className, ...rest }) {
3282
- return /* @__PURE__ */ jsx84("div", { className: cx("oc-sidebar-separator", className), ...rest });
3309
+ return /* @__PURE__ */ jsx85("div", { className: cx("oc-sidebar-separator", className), ...rest });
3283
3310
  }
3284
- var SidebarMenu = forwardRef82(function SidebarMenu2({ className, ...rest }, ref) {
3285
- return /* @__PURE__ */ jsx84("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 });
3286
3313
  });
3287
3314
  function SidebarMenuItem(props) {
3288
- return /* @__PURE__ */ jsx84("li", { ...props });
3315
+ return /* @__PURE__ */ jsx85("li", { ...props });
3289
3316
  }
3290
- var SidebarMenuButton = forwardRef82(function SidebarMenuButton2({ icon, badge, current, disabled, size = "md", label = true, className, children, href, ...rest }, ref) {
3291
- 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: [
3292
3319
  icon,
3293
- label ? /* @__PURE__ */ jsx84("span", { className: "oc-sidebar-menu-label", children }) : children,
3294
- badge != null && /* @__PURE__ */ jsx84("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 })
3295
3322
  ] });
3296
3323
  const props = {
3297
3324
  className: cx("oc-sidebar-menu-button", size === "lg" && "oc-sidebar-menu-button--lg", className),
@@ -3299,13 +3326,13 @@ var SidebarMenuButton = forwardRef82(function SidebarMenuButton2({ icon, badge,
3299
3326
  "aria-disabled": disabled ? true : void 0
3300
3327
  };
3301
3328
  if (href === void 0) {
3302
- return /* @__PURE__ */ jsx84("button", { type: "button", ...props, ...rest, children: content });
3329
+ return /* @__PURE__ */ jsx85("button", { type: "button", ...props, ...rest, children: content });
3303
3330
  }
3304
- return /* @__PURE__ */ jsx84("a", { ref, href, ...props, ...rest, children: content });
3331
+ return /* @__PURE__ */ jsx85("a", { ref, href, ...props, ...rest, children: content });
3305
3332
  });
3306
- var SidebarCollapsible = forwardRef82(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) {
3307
3334
  const [isOpen, setOpen] = useControllable(open, defaultOpen ?? false, onOpenChange);
3308
- return /* @__PURE__ */ jsxs67(
3335
+ return /* @__PURE__ */ jsxs68(
3309
3336
  "details",
3310
3337
  {
3311
3338
  ref,
@@ -3316,30 +3343,30 @@ var SidebarCollapsible = forwardRef82(function SidebarCollapsible2({ icon, label
3316
3343
  },
3317
3344
  ...rest,
3318
3345
  children: [
3319
- /* @__PURE__ */ jsxs67("summary", { className: "oc-sidebar-menu-button", children: [
3346
+ /* @__PURE__ */ jsxs68("summary", { className: "oc-sidebar-menu-button", children: [
3320
3347
  icon,
3321
- /* @__PURE__ */ jsx84("span", { className: "oc-sidebar-menu-label", children: label })
3348
+ /* @__PURE__ */ jsx85("span", { className: "oc-sidebar-menu-label", children: label })
3322
3349
  ] }),
3323
- /* @__PURE__ */ jsx84("ul", { className: "oc-sidebar-menu-sub", children })
3350
+ /* @__PURE__ */ jsx85("ul", { className: "oc-sidebar-menu-sub", children })
3324
3351
  ]
3325
3352
  }
3326
3353
  );
3327
3354
  });
3328
3355
 
3329
3356
  // src/components/Skeleton.tsx
3330
- import { forwardRef as forwardRef83 } from "react";
3331
- import { jsx as jsx85 } from "react/jsx-runtime";
3332
- var Skeleton = forwardRef83(function Skeleton2({ variant, className, ...rest }, ref) {
3333
- return /* @__PURE__ */ jsx85("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 });
3334
3361
  });
3335
3362
 
3336
3363
  // src/components/SortableRow.tsx
3337
- import { forwardRef as forwardRef84 } from "react";
3338
- import { jsx as jsx86, jsxs as jsxs68 } from "react/jsx-runtime";
3339
- var SortableRow = forwardRef84(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) {
3340
3367
  const cls = cx("oc-sortable-row", dragging && "is-dragging", drop && `is-drop-${drop}`, className);
3341
- return /* @__PURE__ */ jsxs68("tr", { ref, className: cls, draggable: locked ? void 0 : true, ...rest, children: [
3342
- /* @__PURE__ */ jsx86("td", { className: "oc-sortable-row-grip-cell", children: /* @__PURE__ */ jsx86(
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(
3343
3370
  "button",
3344
3371
  {
3345
3372
  className: "oc-sortable-row-grip",
@@ -3355,64 +3382,87 @@ var SortableRow = forwardRef84(function SortableRow2({ gripLabel, dragging, drop
3355
3382
  });
3356
3383
 
3357
3384
  // src/components/StackCard.tsx
3358
- import { forwardRef as forwardRef85 } from "react";
3359
- import { jsx as jsx87, jsxs as jsxs69 } from "react/jsx-runtime";
3360
- var StackCard = forwardRef85(function StackCard2({ title, href, meta, count, panel, thumb, className, ...rest }, ref) {
3361
- return /* @__PURE__ */ jsxs69("article", { ref, className: cx("oc-stack-card", panel && "oc-stack-card--panel", className), ...rest, children: [
3362
- /* @__PURE__ */ jsxs69("div", { className: "oc-stack-card__deck", children: [
3363
- /* @__PURE__ */ jsx87(MediaThumb, { ...thumb }),
3364
- count != null && /* @__PURE__ */ jsx87("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 })
3365
3392
  ] }),
3366
- /* @__PURE__ */ jsxs69("div", { children: [
3367
- /* @__PURE__ */ jsx87("h3", { className: "oc-stack-card__title", children: /* @__PURE__ */ jsx87("a", { href, children: title }) }),
3368
- meta != null && /* @__PURE__ */ jsx87("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 })
3369
3396
  ] })
3370
3397
  ] });
3371
3398
  });
3372
3399
 
3373
3400
  // src/components/StackList.tsx
3374
- import { forwardRef as forwardRef86 } from "react";
3375
- import { Fragment as Fragment19, jsx as jsx88, 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";
3376
3403
  var isItem = (v) => typeof v === "object" && v !== null && "label" in v;
3377
- var StackList = forwardRef86(function StackList2({ items, neutral = false, size = "default", className, ...rest }, ref) {
3378
- return /* @__PURE__ */ jsx88("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__ */ jsx88("li", { className: "oc-stack-list__item", children: isItem(item) ? /* @__PURE__ */ jsxs70(Fragment19, { children: [
3379
- item.icon != null && /* @__PURE__ */ jsx88("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 }),
3380
3407
  item.label
3381
3408
  ] }) : item }, i)) });
3382
3409
  });
3383
3410
 
3384
3411
  // src/components/StatCard.tsx
3385
- import { forwardRef as forwardRef87 } from "react";
3386
- import { Fragment as Fragment20, jsx as jsx89, jsxs as jsxs71 } from "react/jsx-runtime";
3387
- var StatCardGrid = forwardRef87(function StatCardGrid2({ className, ...rest }, ref) {
3388
- return /* @__PURE__ */ jsx89("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 });
3389
3416
  });
3390
3417
  function StatCard({ value, label, icon, trend, trendDirection = "up", tone = "default", stripe, href, onClick, className, ...rest }) {
3391
3418
  const cls = cx("oc-stat-card", tone !== "default" && `oc-stat-card--${tone}`, stripe && "oc-stat-card--stripe", className);
3392
- const content = /* @__PURE__ */ jsxs71(Fragment20, { children: [
3393
- icon != null && /* @__PURE__ */ jsx89("span", { className: "oc-stat-card-icon", "aria-hidden": "true", children: icon }),
3394
- /* @__PURE__ */ jsxs71("span", { className: "oc-stat-card-body", children: [
3395
- /* @__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: [
3396
3423
  value,
3397
- trend != null && /* @__PURE__ */ jsx89("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 })
3398
3425
  ] }),
3399
- /* @__PURE__ */ jsx89("span", { className: "oc-stat-card-label", children: label })
3426
+ /* @__PURE__ */ jsx90("span", { className: "oc-stat-card-label", children: label })
3400
3427
  ] })
3401
3428
  ] });
3402
- if (href !== void 0) return /* @__PURE__ */ jsx89("a", { className: cls, href, ...rest, children: content });
3403
- if (onClick) return /* @__PURE__ */ jsx89("button", { className: cls, type: "button", onClick, ...rest, children: content });
3404
- return /* @__PURE__ */ jsx89("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 });
3405
3432
  }
3406
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
+
3407
3457
  // src/components/Stepper.tsx
3408
- import { forwardRef as forwardRef88 } from "react";
3409
- import { jsx as jsx90, jsxs as jsxs72 } from "react/jsx-runtime";
3410
- var Stepper = forwardRef88(function Stepper2({ steps, current, horizontal, onStepChange, className, ...rest }, ref) {
3411
- return /* @__PURE__ */ jsx90("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) => {
3412
3462
  const done = i < current;
3413
3463
  const active = i === current;
3414
- const label = /* @__PURE__ */ jsx90("span", { className: "oc-stepper-label", children: step.label });
3415
- return /* @__PURE__ */ jsx90("li", { children: /* @__PURE__ */ jsx90(
3464
+ const label = /* @__PURE__ */ jsx92("span", { className: "oc-stepper-label", children: step.label });
3465
+ return /* @__PURE__ */ jsx92("li", { children: /* @__PURE__ */ jsx92(
3416
3466
  "button",
3417
3467
  {
3418
3468
  className: cx("oc-stepper-item", done && "oc-stepper-item--done", active && "oc-stepper-item--active"),
@@ -3420,9 +3470,9 @@ var Stepper = forwardRef88(function Stepper2({ steps, current, horizontal, onSte
3420
3470
  "aria-current": active ? "step" : void 0,
3421
3471
  disabled: i > current,
3422
3472
  onClick: () => onStepChange?.(i),
3423
- children: step.meta != null ? /* @__PURE__ */ jsxs72("span", { children: [
3473
+ children: step.meta != null ? /* @__PURE__ */ jsxs74("span", { children: [
3424
3474
  label,
3425
- /* @__PURE__ */ jsx90("span", { className: "oc-stepper-meta", children: step.meta })
3475
+ /* @__PURE__ */ jsx92("span", { className: "oc-stepper-meta", children: step.meta })
3426
3476
  ] }) : label
3427
3477
  }
3428
3478
  ) }, i);
@@ -3430,20 +3480,20 @@ var Stepper = forwardRef88(function Stepper2({ steps, current, horizontal, onSte
3430
3480
  });
3431
3481
 
3432
3482
  // src/components/Switch.tsx
3433
- import { forwardRef as forwardRef89 } from "react";
3434
- import { jsx as jsx91, jsxs as jsxs73 } from "react/jsx-runtime";
3435
- var Switch = forwardRef89(function Switch2({ labelClassName, className, ...rest }, ref) {
3436
- return /* @__PURE__ */ jsxs73("label", { className: cx("oc-switch", labelClassName), children: [
3437
- /* @__PURE__ */ jsx91("input", { ref, type: "checkbox", role: "switch", className, ...rest }),
3438
- /* @__PURE__ */ jsx91("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" })
3439
3489
  ] });
3440
3490
  });
3441
3491
 
3442
3492
  // src/components/Table.tsx
3443
- import { forwardRef as forwardRef90 } from "react";
3444
- import { jsx as jsx92, jsxs as jsxs74 } from "react/jsx-runtime";
3445
- var Table = forwardRef90(function Table2({ striped, compact, borderless, sticky, caption, wrapClassName, className, children, ...rest }, ref) {
3446
- return /* @__PURE__ */ jsx92("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(
3447
3497
  "table",
3448
3498
  {
3449
3499
  ref,
@@ -3457,84 +3507,84 @@ var Table = forwardRef90(function Table2({ striped, compact, borderless, sticky,
3457
3507
  ),
3458
3508
  ...rest,
3459
3509
  children: [
3460
- caption != null && /* @__PURE__ */ jsx92("caption", { children: caption }),
3510
+ caption != null && /* @__PURE__ */ jsx94("caption", { children: caption }),
3461
3511
  children
3462
3512
  ]
3463
3513
  }
3464
3514
  ) });
3465
3515
  });
3466
- var TableSort = forwardRef90(function TableSort2({ className, ...rest }, ref) {
3467
- return /* @__PURE__ */ jsx92("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 });
3468
3518
  });
3469
3519
  function TableActions({ className, ...rest }) {
3470
- return /* @__PURE__ */ jsx92("td", { className: cx("oc-table-actions", className), ...rest });
3520
+ return /* @__PURE__ */ jsx94("td", { className: cx("oc-table-actions", className), ...rest });
3471
3521
  }
3472
3522
  function TableRowAction({ tone = "default", className, ...props }) {
3473
3523
  const cls = cx("oc-table-row-action", tone !== "default" && `oc-table-row-action--${tone}`, className);
3474
- if (props.href !== void 0) return /* @__PURE__ */ jsx92("a", { className: cls, ...props });
3475
- return /* @__PURE__ */ jsx92("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 });
3476
3526
  }
3477
3527
  function TableEmpty({ colSpan, children, ...rest }) {
3478
- return /* @__PURE__ */ jsx92("tr", { className: "oc-table-empty", ...rest, children: /* @__PURE__ */ jsx92("td", { colSpan, children }) });
3528
+ return /* @__PURE__ */ jsx94("tr", { className: "oc-table-empty", ...rest, children: /* @__PURE__ */ jsx94("td", { colSpan, children }) });
3479
3529
  }
3480
3530
 
3481
3531
  // src/components/TableActions.tsx
3482
- import { forwardRef as forwardRef91, useId as useId29 } from "react";
3483
- import { Fragment as Fragment21, jsx as jsx93, 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";
3484
3534
  function TableActionIcon({ label, tone = "default", className, children, ...props }) {
3485
3535
  const cls = cx("oc-table-actions-icon", tone !== "default" && `oc-table-actions-icon--${tone}`, className);
3486
3536
  const common = { className: cls, "aria-label": label, title: label };
3487
3537
  if (props.href !== void 0) {
3488
- return /* @__PURE__ */ jsx93("a", { ...common, ...props, children });
3538
+ return /* @__PURE__ */ jsx95("a", { ...common, ...props, children });
3489
3539
  }
3490
- return /* @__PURE__ */ jsx93("button", { type: "button", ...common, ...props, children });
3540
+ return /* @__PURE__ */ jsx95("button", { type: "button", ...common, ...props, children });
3491
3541
  }
3492
- var TableActionsMenu = forwardRef91(function TableActionsMenu2({ label, id, className, children, ...rest }, ref) {
3542
+ var TableActionsMenu = forwardRef93(function TableActionsMenu2({ label, id, className, children, ...rest }, ref) {
3493
3543
  const auto = useId29();
3494
3544
  const menuId = id ?? `oc-table-actions-menu-${auto.replace(/:/g, "")}`;
3495
- return /* @__PURE__ */ jsxs75(Fragment21, { children: [
3496
- /* @__PURE__ */ jsx93("button", { className: "oc-table-actions-more", type: "button", "aria-label": label, popoverTarget: menuId }),
3497
- /* @__PURE__ */ jsx93("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 })
3498
3548
  ] });
3499
3549
  });
3500
3550
 
3501
3551
  // src/components/TableCompact.tsx
3502
- import { forwardRef as forwardRef92 } from "react";
3503
- import { jsx as jsx94, 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";
3504
3554
  var cellAttrs = (c) => ({
3505
3555
  "data-numeric": c.numeric ? "" : void 0,
3506
3556
  "data-wrap": c.wrap ? "" : void 0
3507
3557
  });
3508
- var TableCompact = forwardRef92(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) {
3509
3559
  const cls = cx("oc-table-compact", bordered && "oc-table-compact--bordered", plain && "oc-table-compact--plain", className);
3510
- return /* @__PURE__ */ jsx94("div", { ref, className: cls, ...rest, children: columns ? /* @__PURE__ */ jsxs76("table", { className: "oc-table", children: [
3511
- /* @__PURE__ */ jsx94("thead", { children: /* @__PURE__ */ jsx94("tr", { children: columns.map((c) => /* @__PURE__ */ jsx94("th", { ...cellAttrs(c), children: c.label }, c.key)) }) }),
3512
- /* @__PURE__ */ jsx94("tbody", { children: rows.map((row, i) => /* @__PURE__ */ jsx94("tr", { children: columns.map((c) => /* @__PURE__ */ jsx94("td", { ...cellAttrs(c), children: row[c.key] }, c.key)) }, i)) }),
3513
- footer && /* @__PURE__ */ jsx94("tfoot", { children: /* @__PURE__ */ jsx94("tr", { children: columns.map((c) => /* @__PURE__ */ jsx94("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)) }) })
3514
3564
  ] }) : children });
3515
3565
  });
3516
3566
 
3517
3567
  // src/components/Tabs.tsx
3518
- import { forwardRef as forwardRef93, useId as useId30 } from "react";
3519
- import { jsx as jsx95, jsxs as jsxs77 } from "react/jsx-runtime";
3520
- var Tabs = forwardRef93(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) {
3521
3571
  const auto = useId30();
3522
3572
  const group = name ?? `oc-tabs-${auto.replace(/:/g, "")}`;
3523
3573
  const [current, setCurrent] = useControllable(value, defaultValue ?? tabs[0]?.value ?? "", onChange);
3524
- return /* @__PURE__ */ jsxs77("div", { ref, className: cx("oc-tabset", className), ...rest, children: [
3525
- /* @__PURE__ */ jsx95("div", { className: "oc-tab-list", role: "tablist", children: tabs.map((t) => /* @__PURE__ */ jsxs77("label", { className: "oc-tab-trigger", children: [
3526
- /* @__PURE__ */ jsx95("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) }),
3527
3577
  " ",
3528
3578
  t.label
3529
3579
  ] }, t.value)) }),
3530
- tabs.map((t) => /* @__PURE__ */ jsx95("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))
3531
3581
  ] });
3532
3582
  });
3533
3583
 
3534
3584
  // src/components/TagInput.tsx
3535
- import { forwardRef as forwardRef94, useState as useState12 } from "react";
3536
- import { Fragment as Fragment22, jsx as jsx96, jsxs as jsxs78 } from "react/jsx-runtime";
3537
- var TagInput = forwardRef94(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) {
3538
3588
  const [tags, setTags] = useControllable(value, defaultValue, onChange);
3539
3589
  const [draft, setDraft] = useState12("");
3540
3590
  const add = (raw) => {
@@ -3552,14 +3602,14 @@ var TagInput = forwardRef94(function TagInput2({ value, defaultValue = [], onCha
3552
3602
  }
3553
3603
  };
3554
3604
  const open = suggestions?.filter((s) => !tags.includes(s)) ?? [];
3555
- return /* @__PURE__ */ jsxs78(Fragment22, { children: [
3556
- /* @__PURE__ */ jsxs78("div", { ref, className: cx("oc-tag-input", className), ...rest, children: [
3557
- 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: [
3558
3608
  tag,
3559
3609
  " ",
3560
- /* @__PURE__ */ jsx96("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" })
3561
3611
  ] }, tag)),
3562
- /* @__PURE__ */ jsx96(
3612
+ /* @__PURE__ */ jsx98(
3563
3613
  "input",
3564
3614
  {
3565
3615
  type: "text",
@@ -3573,43 +3623,43 @@ var TagInput = forwardRef94(function TagInput2({ value, defaultValue = [], onCha
3573
3623
  }
3574
3624
  )
3575
3625
  ] }),
3576
- open.length > 0 && /* @__PURE__ */ jsx96("div", { className: "oc-tag-suggestions", children: open.map((s) => /* @__PURE__ */ jsx96("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)) })
3577
3627
  ] });
3578
3628
  });
3579
3629
 
3580
3630
  // src/components/TerminalLog.tsx
3581
- import { forwardRef as forwardRef95, useEffect as useEffect8, useRef as useRef11 } from "react";
3582
- import { jsx as jsx97, jsxs as jsxs79 } from "react/jsx-runtime";
3583
- var TerminalLog = forwardRef95(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) {
3584
3634
  const body = useRef11(null);
3585
3635
  useEffect8(() => {
3586
3636
  if (autoScroll && body.current) body.current.scrollTop = body.current.scrollHeight;
3587
3637
  }, [lines.length, autoScroll]);
3588
3638
  const vars = height ? { "--oc-terminal-log-height": height } : void 0;
3589
- return /* @__PURE__ */ jsxs79("div", { ref, className: cx("oc-terminal-log", className), style: { ...vars, ...style }, ...rest, children: [
3590
- /* @__PURE__ */ jsxs79("div", { className: "oc-terminal-log__bar", children: [
3591
- /* @__PURE__ */ jsx97("i", {}),
3592
- /* @__PURE__ */ jsx97("i", {}),
3593
- /* @__PURE__ */ jsx97("i", {}),
3594
- title != null && /* @__PURE__ */ jsx97("span", { className: "oc-terminal-log__title", children: title }),
3595
- status != null && /* @__PURE__ */ jsx97("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 })
3596
3646
  ] }),
3597
- /* @__PURE__ */ jsxs79("div", { ref: body, className: "oc-terminal-log__body", role: "log", "aria-live": "polite", "aria-label": label, tabIndex: 0, children: [
3598
- lines.map((l, i) => /* @__PURE__ */ jsxs79("p", { className: cx("oc-terminal-log__line", `oc-terminal-log__line--${l.level}`), children: [
3599
- l.time && /* @__PURE__ */ jsx97("time", { className: "oc-terminal-log__time", children: l.time }),
3600
- /* @__PURE__ */ jsx97("span", { className: "oc-terminal-log__level", children: l.label ?? (l.level === "success" ? "ok" : l.level) }),
3601
- /* @__PURE__ */ jsx97("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 })
3602
3652
  ] }, i)),
3603
- prompt != null && prompt !== false && /* @__PURE__ */ jsx97("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 })
3604
3654
  ] })
3605
3655
  ] });
3606
3656
  });
3607
3657
 
3608
3658
  // src/components/Textarea.tsx
3609
- import { forwardRef as forwardRef96 } from "react";
3610
- import { jsx as jsx98 } from "react/jsx-runtime";
3611
- var Textarea = forwardRef96(function Textarea2({ error, className, ...rest }, ref) {
3612
- return /* @__PURE__ */ jsx98(
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(
3613
3663
  "textarea",
3614
3664
  {
3615
3665
  ref,
@@ -3621,24 +3671,24 @@ var Textarea = forwardRef96(function Textarea2({ error, className, ...rest }, re
3621
3671
  });
3622
3672
 
3623
3673
  // src/components/ThemeSwitch.tsx
3624
- import { forwardRef as forwardRef97, useId as useId31 } from "react";
3625
- import { jsx as jsx99, 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";
3626
3676
  var LABELS = { system: "System", light: "Light", dark: "Dark" };
3627
- var ThemeSwitch = forwardRef97(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) {
3628
3678
  const auto = useId31();
3629
3679
  const group = name ?? `oc-theme-${auto.replace(/:/g, "")}`;
3630
3680
  const [current, setCurrent] = useControllable(value, defaultValue, onChange);
3631
- const items = modes.map((m) => /* @__PURE__ */ jsxs80("label", { children: [
3632
- /* @__PURE__ */ jsx99("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) }),
3633
3683
  " ",
3634
3684
  LABELS[m]
3635
3685
  ] }, m));
3636
- return as === "div" ? /* @__PURE__ */ jsx99("div", { ref, className: cx("oc-theme-switch", className), role: "radiogroup", "aria-label": ariaLabel, ...rest, children: items }) : /* @__PURE__ */ jsx99("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 });
3637
3687
  });
3638
3688
 
3639
3689
  // src/components/TimeInput.tsx
3640
- import { forwardRef as forwardRef98, useId as useId32 } from "react";
3641
- import { Fragment as Fragment23, jsx as jsx100, 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";
3642
3692
  function formatTime24h(raw) {
3643
3693
  const digits = raw.replace(/\D/g, "").slice(0, 4);
3644
3694
  return digits.length <= 2 ? digits : `${digits.slice(0, 2)}:${digits.slice(2)}`;
@@ -3649,11 +3699,11 @@ function completeTime(text) {
3649
3699
  if (digits.length === 3) return `0${digits[0]}:${digits.slice(1)}`;
3650
3700
  return text;
3651
3701
  }
3652
- var TimeInput = forwardRef98(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) {
3653
3703
  const listId = `oc-time-${useId32().replace(/:/g, "")}`;
3654
3704
  const [current, setCurrent] = useControllable(value, defaultValue ?? "", onChange);
3655
- return /* @__PURE__ */ jsxs81(Fragment23, { children: [
3656
- /* @__PURE__ */ jsx100(
3705
+ return /* @__PURE__ */ jsxs83(Fragment23, { children: [
3706
+ /* @__PURE__ */ jsx102(
3657
3707
  "input",
3658
3708
  {
3659
3709
  ref,
@@ -3678,37 +3728,60 @@ var TimeInput = forwardRef98(function TimeInput2({ value, defaultValue, onChange
3678
3728
  ...rest
3679
3729
  }
3680
3730
  ),
3681
- slots?.length ? /* @__PURE__ */ jsx100("datalist", { id: listId, children: slots.map((s) => /* @__PURE__ */ jsx100("option", { value: s }, s)) }) : null
3731
+ slots?.length ? /* @__PURE__ */ jsx102("datalist", { id: listId, children: slots.map((s) => /* @__PURE__ */ jsx102("option", { value: s }, s)) }) : null
3682
3732
  ] });
3683
3733
  });
3684
3734
 
3685
3735
  // src/components/Timeline.tsx
3686
- import { forwardRef as forwardRef99 } from "react";
3687
- import { jsx as jsx101, jsxs as jsxs82 } from "react/jsx-runtime";
3688
- var Timeline = forwardRef99(function Timeline2({ items, size = "default", accent = false, className, ...rest }, ref) {
3689
- return /* @__PURE__ */ jsx101("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: [
3690
- item.dateTime ? /* @__PURE__ */ jsx101("time", { className: "oc-timeline__date", dateTime: item.dateTime, children: item.date }) : /* @__PURE__ */ jsx101("span", { className: "oc-timeline__date", children: item.date }),
3691
- item.title != null && /* @__PURE__ */ jsx101("h3", { className: "oc-timeline__title", children: item.title }),
3692
- item.text != null && /* @__PURE__ */ jsx101("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 })
3693
3743
  ] }, i)) });
3694
3744
  });
3695
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
+
3696
3769
  // src/components/Toast.tsx
3697
- import { createContext as createContext2, forwardRef as forwardRef100, useCallback as useCallback2, useContext as useContext2, useEffect as useEffect9, useMemo as useMemo2, useRef as useRef12, useState as useState13 } from "react";
3698
- import { jsx as jsx102, 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";
3699
3772
  var GLYPHS3 = { success: "\u2713", error: "!", warning: "!", info: "i" };
3700
- var Toast = forwardRef100(function Toast2({ variant = "info", title, description, icon, onDismiss, dismissLabel = "Dismiss", className, ...rest }, ref) {
3701
- return /* @__PURE__ */ jsxs83("div", { ref, className: cx("oc-toast", `oc-toast--${variant}`, className), role: variant === "error" ? "alert" : "status", ...rest, children: [
3702
- /* @__PURE__ */ jsx102("span", { className: "oc-toast-icon", "aria-hidden": "true", children: icon ?? GLYPHS3[variant] }),
3703
- /* @__PURE__ */ jsxs83("div", { className: "oc-toast-body", children: [
3704
- /* @__PURE__ */ jsx102("p", { className: "oc-toast-title", children: title }),
3705
- description != null && /* @__PURE__ */ jsx102("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 })
3706
3779
  ] }),
3707
- onDismiss && /* @__PURE__ */ jsx102("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" })
3708
3781
  ] });
3709
3782
  });
3710
- var ToastContainer = forwardRef100(function ToastContainer2({ top, static: isStatic, className, ...rest }, ref) {
3711
- return /* @__PURE__ */ jsx102(
3783
+ var ToastContainer = forwardRef103(function ToastContainer2({ top, static: isStatic, className, ...rest }, ref) {
3784
+ return /* @__PURE__ */ jsx105(
3712
3785
  "div",
3713
3786
  {
3714
3787
  ref,
@@ -3748,9 +3821,9 @@ function ToastProvider({ children, top, duration = 5e3, limit = 5 }) {
3748
3821
  return () => map.forEach(clearTimeout);
3749
3822
  }, []);
3750
3823
  const api = useMemo2(() => ({ toast, dismiss }), [toast, dismiss]);
3751
- return /* @__PURE__ */ jsxs83(ToastContext.Provider, { value: api, children: [
3824
+ return /* @__PURE__ */ jsxs86(ToastContext.Provider, { value: api, children: [
3752
3825
  children,
3753
- /* @__PURE__ */ jsx102(ToastContainer, { top, "aria-live": "polite", children: items.map((t) => /* @__PURE__ */ jsx102(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)) })
3754
3827
  ] });
3755
3828
  }
3756
3829
  function useToast() {
@@ -3760,41 +3833,41 @@ function useToast() {
3760
3833
  }
3761
3834
 
3762
3835
  // src/components/ToggleField.tsx
3763
- import { forwardRef as forwardRef101, useId as useId33 } from "react";
3764
- import { jsx as jsx103, jsxs as jsxs84 } from "react/jsx-runtime";
3765
- var ToggleField = forwardRef101(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) {
3766
3839
  const descId = `oc-toggle-field-${useId33().replace(/:/g, "")}`;
3767
- return /* @__PURE__ */ jsxs84("label", { className: cx("oc-toggle-field", card && "oc-toggle-field--card", reverse && "oc-toggle-field--reverse", fieldClassName), children: [
3768
- /* @__PURE__ */ jsxs84("span", { className: "oc-toggle-field-text", children: [
3769
- /* @__PURE__ */ jsx103("span", { className: "oc-toggle-field-label", children: label }),
3770
- description != null && /* @__PURE__ */ jsx103("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 })
3771
3844
  ] }),
3772
- /* @__PURE__ */ jsxs84("span", { className: "oc-switch", children: [
3773
- /* @__PURE__ */ jsx103("input", { ref, type: "checkbox", role: "switch", className, "aria-describedby": description != null ? descId : void 0, ...rest }),
3774
- /* @__PURE__ */ jsx103("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" })
3775
3848
  ] })
3776
3849
  ] });
3777
3850
  });
3778
3851
 
3779
3852
  // src/components/Tooltip.tsx
3780
- import { forwardRef as forwardRef102 } from "react";
3781
- import { jsx as jsx104, jsxs as jsxs85 } from "react/jsx-runtime";
3782
- var Tooltip = forwardRef102(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) {
3783
3856
  const classes = cx("oc-tooltip", multiline && !heading && "oc-tooltip--multiline", side && side !== "top" && `oc-tooltip--${side}`, className);
3784
- if (!heading) return /* @__PURE__ */ jsx104("span", { ref, className: classes, "data-tooltip": content, ...rest, children });
3785
- 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: [
3786
3859
  children,
3787
- /* @__PURE__ */ jsxs85("span", { className: "oc-tooltip__content", role: "tooltip", children: [
3788
- /* @__PURE__ */ jsx104("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 }),
3789
3862
  content
3790
3863
  ] })
3791
3864
  ] });
3792
3865
  });
3793
3866
 
3794
3867
  // src/components/TopProgress.tsx
3795
- import { forwardRef as forwardRef103, useEffect as useEffect10, useState as useState14 } from "react";
3796
- import { jsx as jsx105 } from "react/jsx-runtime";
3797
- var TopProgress = forwardRef103(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) {
3798
3871
  const [phase, setPhase] = useState14(active ? "active" : "hidden");
3799
3872
  useEffect10(() => {
3800
3873
  if (active) {
@@ -3813,158 +3886,158 @@ var TopProgress = forwardRef103(function TopProgress2({ active = true, tone = "d
3813
3886
  phase === "done" && "is-done",
3814
3887
  className
3815
3888
  );
3816
- return /* @__PURE__ */ jsx105("progress", { ref, className: cls, hidden: phase === "hidden", ...rest });
3889
+ return /* @__PURE__ */ jsx108("progress", { ref, className: cls, hidden: phase === "hidden", ...rest });
3817
3890
  });
3818
3891
 
3819
3892
  // src/components/Tree.tsx
3820
- import { forwardRef as forwardRef104 } from "react";
3821
- import { Fragment as Fragment24, jsx as jsx106, 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";
3822
3895
  function RowContent({ item }) {
3823
3896
  const isLink = item.href !== void 0;
3824
- return /* @__PURE__ */ jsxs86(Fragment24, { children: [
3825
- item.icon != null && /* @__PURE__ */ jsx106("span", { className: "oc-tree-icon", "aria-hidden": "true", children: item.icon }),
3826
- isLink ? /* @__PURE__ */ jsx106("a", { className: "oc-tree-label", href: item.href, "aria-current": item.current ? "true" : void 0, children: item.label }) : /* @__PURE__ */ jsx106("span", { className: "oc-tree-label", children: item.label }),
3827
- item.count != null && /* @__PURE__ */ jsx106("span", { className: "oc-tree-count", children: item.count }),
3828
- item.actions != null && /* @__PURE__ */ jsx106("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 })
3829
3902
  ] });
3830
3903
  }
3831
3904
  function TreeNode({ item }) {
3832
3905
  const rowCurrent = item.current && item.href === void 0 ? "true" : void 0;
3833
3906
  const rowCls = cx("oc-tree-row", item.muted && "is-muted");
3834
3907
  if (!item.children?.length) {
3835
- return /* @__PURE__ */ jsx106("li", { children: /* @__PURE__ */ jsx106("div", { className: rowCls, "aria-current": rowCurrent, children: /* @__PURE__ */ jsx106(RowContent, { item }) }) });
3908
+ return /* @__PURE__ */ jsx109("li", { children: /* @__PURE__ */ jsx109("div", { className: rowCls, "aria-current": rowCurrent, children: /* @__PURE__ */ jsx109(RowContent, { item }) }) });
3836
3909
  }
3837
- return /* @__PURE__ */ jsx106("li", { children: /* @__PURE__ */ jsxs86("details", { className: "oc-tree-node", open: item.open, children: [
3838
- /* @__PURE__ */ jsx106("summary", { className: rowCls, "aria-current": rowCurrent, children: /* @__PURE__ */ jsx106(RowContent, { item }) }),
3839
- /* @__PURE__ */ jsx106(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 })
3840
3913
  ] }) });
3841
3914
  }
3842
3915
  function TreeList({ items }) {
3843
- return /* @__PURE__ */ jsx106("ul", { className: "oc-tree-list", children: items.map((item, i) => /* @__PURE__ */ jsx106(TreeNode, { item }, i)) });
3916
+ return /* @__PURE__ */ jsx109("ul", { className: "oc-tree-list", children: items.map((item, i) => /* @__PURE__ */ jsx109(TreeNode, { item }, i)) });
3844
3917
  }
3845
- var Tree = forwardRef104(function Tree2({ items, head, headActions, quiet, flush, className, ...rest }, ref) {
3846
- return /* @__PURE__ */ jsxs86("div", { ref, className: cx("oc-tree", quiet && "oc-tree--quiet", flush && "oc-tree--flush", className), ...rest, children: [
3847
- head != null && /* @__PURE__ */ jsxs86("div", { className: "oc-tree-row oc-tree-head", children: [
3848
- /* @__PURE__ */ jsx106("span", { className: "oc-tree-label", children: head }),
3849
- headActions != null && /* @__PURE__ */ jsx106("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 })
3850
3923
  ] }),
3851
- /* @__PURE__ */ jsx106(TreeList, { items })
3924
+ /* @__PURE__ */ jsx109(TreeList, { items })
3852
3925
  ] });
3853
3926
  });
3854
3927
 
3855
3928
  // src/components/UpgradeBanner.tsx
3856
- import { forwardRef as forwardRef105 } from "react";
3857
- import { Fragment as Fragment25, jsx as jsx107, jsxs as jsxs87 } from "react/jsx-runtime";
3858
- var UpgradeBanner = forwardRef105(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) {
3859
3932
  const cls = cx("oc-upgrade-banner", premium && "oc-upgrade-banner--premium", compact && "oc-upgrade-banner--compact", className);
3860
3933
  const body = text ?? children;
3861
- return /* @__PURE__ */ jsxs87("aside", { ref, className: cls, ...rest, children: [
3862
- icon != null && /* @__PURE__ */ jsx107("span", { className: "oc-upgrade-banner-icon", "aria-hidden": "true", children: icon }),
3863
- /* @__PURE__ */ jsxs87("div", { className: "oc-upgrade-banner-body", children: [
3864
- /* @__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: [
3865
3938
  title,
3866
- plan != null && /* @__PURE__ */ jsxs87(Fragment25, { children: [
3939
+ plan != null && /* @__PURE__ */ jsxs90(Fragment25, { children: [
3867
3940
  " ",
3868
- /* @__PURE__ */ jsx107("span", { className: "oc-upgrade-banner-plan", children: plan })
3941
+ /* @__PURE__ */ jsx110("span", { className: "oc-upgrade-banner-plan", children: plan })
3869
3942
  ] })
3870
3943
  ] }),
3871
- body != null && /* @__PURE__ */ jsx107("p", { className: "oc-upgrade-banner-text", children: body }),
3872
- usage && /* @__PURE__ */ jsxs87("div", { className: "oc-upgrade-banner-usage", children: [
3873
- /* @__PURE__ */ jsx107("span", { children: usage.label }),
3874
- /* @__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: [
3875
3948
  usage.value,
3876
3949
  " of ",
3877
3950
  usage.max
3878
3951
  ] }),
3879
- /* @__PURE__ */ jsxs87("span", { children: [
3952
+ /* @__PURE__ */ jsxs90("span", { children: [
3880
3953
  usage.value,
3881
3954
  " / ",
3882
3955
  usage.max
3883
3956
  ] })
3884
3957
  ] })
3885
3958
  ] }),
3886
- actions != null && /* @__PURE__ */ jsx107("div", { className: "oc-upgrade-banner-actions", children: actions }),
3887
- onDismiss && /* @__PURE__ */ jsx107("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" })
3888
3961
  ] });
3889
3962
  });
3890
3963
 
3891
3964
  // src/components/User.tsx
3892
- import { forwardRef as forwardRef106 } from "react";
3893
- import { jsx as jsx108, jsxs as jsxs88 } from "react/jsx-runtime";
3894
- var User = forwardRef106(function User2({ name, email, initials, avatarSrc, avatarSize = "md", className, ...rest }, ref) {
3895
- return /* @__PURE__ */ jsxs88("div", { ref, className: cx("oc-user", className), ...rest, children: [
3896
- /* @__PURE__ */ jsx108(Avatar, { size: avatarSize, src: avatarSrc, children: initials }),
3897
- /* @__PURE__ */ jsxs88("span", { className: "oc-user-text", children: [
3898
- /* @__PURE__ */ jsx108("span", { className: "oc-user-name", children: name }),
3899
- email != null && /* @__PURE__ */ jsx108("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 })
3900
3973
  ] })
3901
3974
  ] });
3902
3975
  });
3903
3976
 
3904
3977
  // src/components/VersionBanner.tsx
3905
- import { forwardRef as forwardRef107 } from "react";
3906
- import { jsx as jsx109, jsxs as jsxs89 } from "react/jsx-runtime";
3907
- var VersionBanner = forwardRef107(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) {
3908
3981
  if (!version) return null;
3909
3982
  const cls = cx("oc-version-banner", tone !== "warning" && `oc-version-banner--${tone}`, floating && "oc-version-banner--floating", className);
3910
- return /* @__PURE__ */ jsxs89("div", { ref, className: cls, role: "status", ...rest, children: [
3911
- /* @__PURE__ */ jsx109("span", { className: "oc-version-banner-dot", "aria-hidden": "true" }),
3912
- /* @__PURE__ */ jsx109("span", { className: "oc-version-banner-text", children: text ?? `New version (${version}) available - reload the page` }),
3913
- /* @__PURE__ */ jsx109("span", { className: "oc-version-banner-short", children: short }),
3914
- onReload ? /* @__PURE__ */ jsx109("button", { className: "oc-version-banner-action", type: "button", onClick: onReload, children: actionLabel }) : /* @__PURE__ */ jsx109("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 })
3915
3988
  ] });
3916
3989
  });
3917
3990
 
3918
3991
  // src/components/Watermark.tsx
3919
- import { forwardRef as forwardRef108, Fragment as Fragment26 } from "react";
3920
- import { jsx as jsx110 } from "react/jsx-runtime";
3921
- var Watermark = forwardRef108(function Watermark2({ text = "Concept", variant = "diagonal", tone = "default", repeat = 12, mono = false, className, ...rest }, ref) {
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) {
3922
3995
  const classes = cx("oc-watermark", variant !== "diagonal" && `oc-watermark--${variant}`, tone !== "default" && `oc-watermark--${tone}`, mono && "oc-watermark--mono", className);
3923
3996
  const count = variant === "tile" ? Math.max(1, repeat) : 1;
3924
- return /* @__PURE__ */ jsx110("span", { ref, className: classes, "aria-hidden": "true", ...rest, children: Array.from({ length: count }, (_, i) => typeof text === "string" || typeof text === "number" ? /* @__PURE__ */ jsx110("span", { children: text }, i) : /* @__PURE__ */ jsx110(Fragment26, { children: text }, i)) });
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)) });
3925
3998
  });
3926
3999
 
3927
4000
  // src/blocks/BlockAboutTimeline.tsx
3928
- import { forwardRef as forwardRef109, useId as useId34 } from "react";
3929
- import { jsx as jsx111, jsxs as jsxs90 } from "react/jsx-runtime";
3930
- var BlockAboutTimeline = forwardRef109(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) {
3931
4004
  const titleId = `oc-about-title-${useId34().replace(/[^\w-]/g, "")}`;
3932
- return /* @__PURE__ */ jsx111("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: [
3933
- /* @__PURE__ */ jsxs90("figure", { className: "oc-block-about-media", "aria-hidden": image ? void 0 : true, children: [
3934
- image && /* @__PURE__ */ jsx111("img", { src: image, alt: imageAlt, loading: "lazy" }),
3935
- badge != null && /* @__PURE__ */ jsx111("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 })
3936
4009
  ] }),
3937
- /* @__PURE__ */ jsxs90("div", { className: "oc-block-about-copy", children: [
3938
- eyebrow != null && /* @__PURE__ */ jsx111("p", { className: "oc-eyebrow", children: eyebrow }),
3939
- /* @__PURE__ */ jsx111("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 }),
3940
4013
  children,
3941
- timeline.length > 0 && /* @__PURE__ */ jsx111(Timeline, { items: timeline })
4014
+ timeline.length > 0 && /* @__PURE__ */ jsx114(Timeline, { items: timeline })
3942
4015
  ] })
3943
4016
  ] }) });
3944
4017
  });
3945
4018
 
3946
4019
  // src/blocks/BlockAppHeader.tsx
3947
- import { forwardRef as forwardRef110 } from "react";
3948
- import { jsx as jsx112, jsxs as jsxs91 } from "react/jsx-runtime";
3949
- var BlockAppHeader = forwardRef110(function BlockAppHeader2({ toggleFor, toggleLabel = "Toggle sidebar", nav, navLabel = "Module navigation", actions, title, className, ...rest }, ref) {
3950
- return /* @__PURE__ */ jsxs91("header", { ref, className: cx("oc-block-appbar", className), ...rest, children: [
3951
- toggleFor && /* @__PURE__ */ jsxs91("label", { className: "oc-btn oc-btn--ghost oc-btn--icon", htmlFor: toggleFor, title: toggleLabel, children: [
3952
- /* @__PURE__ */ jsx112(Icon, { d: "M4 6h16M4 12h16M4 18h16" }),
3953
- /* @__PURE__ */ jsx112("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 })
3954
4027
  ] }),
3955
- title != null && /* @__PURE__ */ jsx112("span", { className: "oc-block-appbar-title", children: title }),
3956
- nav && /* @__PURE__ */ jsx112(Navmenu, { label: navLabel, navClassName: "oc-block-appbar-nav", children: nav.map((item, i) => /* @__PURE__ */ jsx112(NavmenuItem, { children: /* @__PURE__ */ jsx112(NavmenuLink, { href: item.href, current: item.current, children: item.label }) }, i)) }),
3957
- actions != null && /* @__PURE__ */ jsx112("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 })
3958
4031
  ] });
3959
4032
  });
3960
4033
 
3961
4034
  // src/blocks/BlockAppShell.tsx
3962
- import { forwardRef as forwardRef111, useId as useId35 } from "react";
3963
- import { jsx as jsx113, jsxs as jsxs92 } from "react/jsx-runtime";
3964
- var BlockAppShell = forwardRef111(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) {
3965
4038
  const auto = useId35();
3966
4039
  const id = toggleId ?? `oc-shell-toggle-${auto.replace(/:/g, "")}`;
3967
- return /* @__PURE__ */ jsxs92(
4040
+ return /* @__PURE__ */ jsxs95(
3968
4041
  "div",
3969
4042
  {
3970
4043
  ref,
@@ -3972,14 +4045,14 @@ var BlockAppShell = forwardRef111(function BlockAppShell2({ sidebar, header, bre
3972
4045
  style: height ? { "--oc-block-shell-height": height, ...style } : style,
3973
4046
  ...rest,
3974
4047
  children: [
3975
- /* @__PURE__ */ jsx113("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" }),
3976
4049
  sidebar,
3977
- /* @__PURE__ */ jsxs92("div", { className: "oc-block-shell-main", children: [
4050
+ /* @__PURE__ */ jsxs95("div", { className: "oc-block-shell-main", children: [
3978
4051
  header,
3979
- breadcrumbs && /* @__PURE__ */ jsx113("div", { className: "oc-block-shell-breadcrumbs", children: /* @__PURE__ */ jsx113("nav", { "aria-label": "Breadcrumb", children: /* @__PURE__ */ jsx113("ol", { className: "oc-breadcrumb", children: breadcrumbs.map(
3980
- (item, i) => item.href && i < breadcrumbs.length - 1 ? /* @__PURE__ */ jsx113("li", { className: "oc-breadcrumb-item", children: /* @__PURE__ */ jsx113("a", { href: item.href, children: item.label }) }, i) : /* @__PURE__ */ jsx113("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)
3981
4054
  ) }) }) }),
3982
- /* @__PURE__ */ jsx113("main", { className: "oc-block-shell-content", children })
4055
+ /* @__PURE__ */ jsx116("main", { className: "oc-block-shell-content", children })
3983
4056
  ] })
3984
4057
  ]
3985
4058
  }
@@ -3987,41 +4060,41 @@ var BlockAppShell = forwardRef111(function BlockAppShell2({ sidebar, header, bre
3987
4060
  });
3988
4061
 
3989
4062
  // src/blocks/BlockAuth.tsx
3990
- import { forwardRef as forwardRef112, useId as useId36 } from "react";
3991
- import { Fragment as Fragment27, jsx as jsx114, jsxs as jsxs93 } from "react/jsx-runtime";
3992
- var BlockAuth = forwardRef112(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) {
3993
4066
  const id = useId36().replace(/:/g, "");
3994
4067
  const submit = (e) => {
3995
4068
  e.preventDefault();
3996
4069
  const data = new FormData(e.currentTarget);
3997
4070
  onSubmit?.({ email: String(data.get("email") ?? ""), password: String(data.get("password") ?? "") });
3998
4071
  };
3999
- return /* @__PURE__ */ jsxs93("div", { ref, className: cx("oc-block-auth", className), ...rest, children: [
4000
- /* @__PURE__ */ jsxs93("form", { className: "oc-block-auth-card", onSubmit: submit, children: [
4001
- /* @__PURE__ */ jsx114("h2", { children: title }),
4002
- subtitle != null && /* @__PURE__ */ jsx114("p", { className: "oc-block-subtitle", children: subtitle }),
4003
- /* @__PURE__ */ jsxs93("div", { className: "oc-form-group", children: [
4004
- /* @__PURE__ */ jsx114("label", { className: "oc-label", htmlFor: `${id}-email`, children: "Email" }),
4005
- /* @__PURE__ */ jsx114("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" })
4006
4079
  ] }),
4007
- /* @__PURE__ */ jsxs93("div", { className: "oc-form-group", children: [
4008
- /* @__PURE__ */ jsx114("label", { className: "oc-label", htmlFor: `${id}-password`, children: "Password" }),
4009
- /* @__PURE__ */ jsx114("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: "********" })
4010
4083
  ] }),
4011
- /* @__PURE__ */ jsx114("button", { className: "oc-btn", type: "submit", style: { width: "100%" }, children: submitLabel }),
4012
- socialLabel != null && /* @__PURE__ */ jsxs93(Fragment27, { children: [
4013
- /* @__PURE__ */ jsx114("div", { className: "oc-block-auth-divider", children: dividerLabel }),
4014
- /* @__PURE__ */ jsx114("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 })
4015
4088
  ] })
4016
4089
  ] }),
4017
- footer != null && /* @__PURE__ */ jsx114("div", { className: "oc-block-auth-footer", children: footer })
4090
+ footer != null && /* @__PURE__ */ jsx117("div", { className: "oc-block-auth-footer", children: footer })
4018
4091
  ] });
4019
4092
  });
4020
4093
 
4021
4094
  // src/blocks/BlockAuthSplit.tsx
4022
- import { forwardRef as forwardRef113, useId as useId37 } from "react";
4023
- import { jsx as jsx115, jsxs as jsxs94 } from "react/jsx-runtime";
4024
- var BlockAuthSplit = forwardRef113(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({
4025
4098
  logo,
4026
4099
  logoHref = "#",
4027
4100
  quote,
@@ -4046,60 +4119,60 @@ var BlockAuthSplit = forwardRef113(function BlockAuthSplit2({
4046
4119
  remember: data.get("remember") != null
4047
4120
  });
4048
4121
  };
4049
- return /* @__PURE__ */ jsxs94("div", { ref, className: cx("oc-block-authsplit", className), ...rest, children: [
4050
- /* @__PURE__ */ jsxs94("aside", { className: "oc-block-authsplit-brand", children: [
4051
- logo != null && /* @__PURE__ */ jsx115("a", { className: "oc-block-authsplit-logo", href: logoHref, children: logo }),
4052
- quote != null && /* @__PURE__ */ jsxs94("blockquote", { className: "oc-block-authsplit-quote", children: [
4053
- /* @__PURE__ */ jsx115("p", { children: quote }),
4054
- quoteAuthor != null && /* @__PURE__ */ jsx115("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 })
4055
4128
  ] })
4056
4129
  ] }),
4057
- /* @__PURE__ */ jsx115("div", { className: "oc-block-authsplit-form", children: /* @__PURE__ */ jsxs94("form", { className: "oc-block-authsplit-card", onSubmit: submit, children: [
4058
- /* @__PURE__ */ jsx115("h1", { className: "oc-block-authsplit-title", children: title }),
4059
- subtitle != null && /* @__PURE__ */ jsx115("p", { className: "oc-block-authsplit-subtitle", children: subtitle }),
4060
- /* @__PURE__ */ jsxs94("div", { className: "oc-block-authsplit-fields", children: [
4061
- /* @__PURE__ */ jsxs94("div", { className: "oc-field", children: [
4062
- /* @__PURE__ */ jsx115("label", { className: "oc-field-label", htmlFor: `${id}-email`, children: "E-mail" }),
4063
- /* @__PURE__ */ jsx115("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 })
4064
4137
  ] }),
4065
- /* @__PURE__ */ jsxs94("div", { className: "oc-field", children: [
4066
- /* @__PURE__ */ jsx115("label", { className: "oc-field-label", htmlFor: `${id}-password`, children: "Password" }),
4067
- /* @__PURE__ */ jsx115(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 })
4068
4141
  ] }),
4069
- /* @__PURE__ */ jsxs94("div", { className: "oc-block-authsplit-row", children: [
4070
- /* @__PURE__ */ jsxs94("label", { children: [
4071
- /* @__PURE__ */ jsx115("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" }),
4072
4145
  " ",
4073
4146
  rememberLabel
4074
4147
  ] }),
4075
- /* @__PURE__ */ jsx115("a", { className: "oc-link", href: forgotHref, children: forgotLabel })
4148
+ /* @__PURE__ */ jsx118("a", { className: "oc-link", href: forgotHref, children: forgotLabel })
4076
4149
  ] }),
4077
- /* @__PURE__ */ jsx115("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 })
4078
4151
  ] })
4079
4152
  ] }) })
4080
4153
  ] });
4081
4154
  });
4082
4155
 
4083
4156
  // src/blocks/BlockContactGrid.tsx
4084
- import { forwardRef as forwardRef114, useId as useId38 } from "react";
4085
- import { jsx as jsx116, jsxs as jsxs95 } from "react/jsx-runtime";
4086
- var BlockContactGrid = forwardRef114(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) {
4087
4160
  const titleId = `oc-contact-title-${useId38().replace(/[^\w-]/g, "")}`;
4088
- 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: [
4089
- (eyebrow != null || title != null || lead != null) && /* @__PURE__ */ jsxs95("div", { className: "oc-block-contact-head", children: [
4090
- eyebrow != null && /* @__PURE__ */ jsx116("p", { className: "oc-eyebrow", children: eyebrow }),
4091
- title != null && /* @__PURE__ */ jsx116("h2", { className: "oc-block-contact-heading", id: titleId, children: title }),
4092
- lead != null && /* @__PURE__ */ jsx116("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 })
4093
4166
  ] }),
4094
- /* @__PURE__ */ jsx116("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) => {
4095
4168
  const Card2 = card.address ? "address" : "article";
4096
4169
  const Title = card.address ? "span" : "h3";
4097
4170
  const Line = card.address ? "span" : "p";
4098
- return /* @__PURE__ */ jsxs95(Card2, { className: "oc-block-contact-card", children: [
4099
- card.icon != null && /* @__PURE__ */ jsx116("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 }),
4100
- /* @__PURE__ */ jsx116(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 }),
4101
4174
  card.lines.map(
4102
- (line, j) => line.href ? /* @__PURE__ */ jsx116("a", { className: "oc-block-contact-line", href: line.href, children: line.text }, j) : /* @__PURE__ */ jsx116(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)
4103
4176
  )
4104
4177
  ] }, i);
4105
4178
  }) })
@@ -4107,160 +4180,160 @@ var BlockContactGrid = forwardRef114(function BlockContactGrid2({ eyebrow, title
4107
4180
  });
4108
4181
 
4109
4182
  // src/blocks/BlockCta.tsx
4110
- import { forwardRef as forwardRef115 } from "react";
4111
- import { jsx as jsx117, jsxs as jsxs96 } from "react/jsx-runtime";
4112
- var BlockCta = forwardRef115(function BlockCta2({ title, description, actions, className, ...rest }, ref) {
4113
- return /* @__PURE__ */ jsxs96("div", { ref, className: cx("oc-block-cta", className), ...rest, children: [
4114
- /* @__PURE__ */ jsx117("h2", { children: title }),
4115
- description != null && /* @__PURE__ */ jsx117("p", { children: description }),
4116
- actions != null && /* @__PURE__ */ jsx117("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 })
4117
4190
  ] });
4118
4191
  });
4119
4192
 
4120
4193
  // src/blocks/BlockDataTable.tsx
4121
- import { forwardRef as forwardRef116 } from "react";
4122
- import { jsx as jsx118, jsxs as jsxs97 } from "react/jsx-runtime";
4123
- var BlockDataTable = forwardRef116(function BlockDataTable2({ title, description, actions, toolbar, bulk, footer, className, children, ...rest }, ref) {
4124
- return /* @__PURE__ */ jsxs97("section", { ref, className: cx("oc-card oc-block-datatable", className), ...rest, children: [
4125
- /* @__PURE__ */ jsxs97("header", { className: "oc-block-datatable-head", children: [
4126
- /* @__PURE__ */ jsxs97("div", { children: [
4127
- title != null && /* @__PURE__ */ jsx118("h2", { className: "oc-block-datatable-title", children: title }),
4128
- description != null && /* @__PURE__ */ jsx118("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 })
4129
4202
  ] }),
4130
- actions != null && /* @__PURE__ */ jsx118("div", { children: actions })
4203
+ actions != null && /* @__PURE__ */ jsx121("div", { children: actions })
4131
4204
  ] }),
4132
- /* @__PURE__ */ jsxs97("div", { className: "oc-block-datatable-body", children: [
4133
- toolbar != null && /* @__PURE__ */ jsx118("div", { className: "oc-table-toolbar", children: toolbar }),
4134
- bulk != null && /* @__PURE__ */ jsx118("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 }),
4135
4208
  children,
4136
- footer != null && /* @__PURE__ */ jsx118("div", { className: "oc-table-footer", children: footer })
4209
+ footer != null && /* @__PURE__ */ jsx121("div", { className: "oc-table-footer", children: footer })
4137
4210
  ] })
4138
4211
  ] });
4139
4212
  });
4140
4213
  function BlockDataTableSpacer() {
4141
- return /* @__PURE__ */ jsx118("span", { className: "oc-table-toolbar-spacer" });
4214
+ return /* @__PURE__ */ jsx121("span", { className: "oc-table-toolbar-spacer" });
4142
4215
  }
4143
4216
  function FilterPills({ className, ...rest }) {
4144
- return /* @__PURE__ */ jsx118("div", { className: cx("oc-filter-pills", className), role: "group", ...rest });
4217
+ return /* @__PURE__ */ jsx121("div", { className: cx("oc-filter-pills", className), role: "group", ...rest });
4145
4218
  }
4146
4219
  function FilterPill({ current, className, ...rest }) {
4147
- return /* @__PURE__ */ jsx118("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 });
4148
4221
  }
4149
4222
 
4150
4223
  // src/blocks/BlockFaq.tsx
4151
- import { forwardRef as forwardRef117, useId as useId39 } from "react";
4152
- import { jsx as jsx119, jsxs as jsxs98 } from "react/jsx-runtime";
4153
- var BlockFaq = forwardRef117(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) {
4154
4227
  const auto = useId39().replace(/[^\w-]/g, "");
4155
4228
  const group = name ?? `oc-faq-${auto}`;
4156
4229
  const titleId = `oc-faq-title-${auto}`;
4157
- return /* @__PURE__ */ jsx119("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: [
4158
- /* @__PURE__ */ jsxs98("div", { className: "oc-block-faq-head", children: [
4159
- eyebrow != null && /* @__PURE__ */ jsx119("p", { className: "oc-eyebrow", children: eyebrow }),
4160
- /* @__PURE__ */ jsx119("h2", { className: "oc-block-faq-title", id: titleId, children: title }),
4161
- lead != null && /* @__PURE__ */ jsx119("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 })
4162
4235
  ] }),
4163
- /* @__PURE__ */ jsx119("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) => (
4164
4237
  // "name" groups the items; React 19 passes it through, older versions too (unknown attribute on details).
4165
- /* @__PURE__ */ jsxs98("details", { className: "oc-accordion-item", ...{ name: group }, open: i === openIndex || void 0, children: [
4166
- /* @__PURE__ */ jsx119("summary", { className: "oc-accordion-trigger", children: item.question }),
4167
- /* @__PURE__ */ jsx119("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 })
4168
4241
  ] }, i)
4169
4242
  )) }),
4170
- more != null && /* @__PURE__ */ jsx119("p", { className: "oc-block-faq-more", children: more })
4243
+ more != null && /* @__PURE__ */ jsx122("p", { className: "oc-block-faq-more", children: more })
4171
4244
  ] }) });
4172
4245
  });
4173
4246
 
4174
4247
  // src/blocks/BlockFeatures.tsx
4175
- import { forwardRef as forwardRef118 } from "react";
4176
- import { jsx as jsx120, jsxs as jsxs99 } from "react/jsx-runtime";
4177
- var BlockFeatures = forwardRef118(function BlockFeatures2({ title, description, features, className, ...rest }, ref) {
4178
- return /* @__PURE__ */ jsxs99("div", { ref, className: cx("oc-block-features", className), ...rest, children: [
4179
- title != null && /* @__PURE__ */ jsx120("h2", { children: title }),
4180
- description != null && /* @__PURE__ */ jsx120("p", { children: description }),
4181
- /* @__PURE__ */ jsx120("div", { className: "oc-block-features-grid", children: features.map((f, i) => /* @__PURE__ */ jsxs99("div", { className: "oc-block-feature-card", children: [
4182
- f.icon != null && /* @__PURE__ */ jsx120("div", { className: "oc-block-feature-icon", children: f.icon }),
4183
- /* @__PURE__ */ jsx120("h3", { children: f.title }),
4184
- f.description != null && /* @__PURE__ */ jsx120("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 })
4185
4258
  ] }, i)) })
4186
4259
  ] });
4187
4260
  });
4188
4261
 
4189
4262
  // src/blocks/BlockFooter.tsx
4190
- import { forwardRef as forwardRef119 } from "react";
4191
- import { jsx as jsx121, jsxs as jsxs100 } from "react/jsx-runtime";
4192
- var BlockFooter = forwardRef119(function BlockFooter2({ columns, copyright, credit, className, ...rest }, ref) {
4193
- return /* @__PURE__ */ jsxs100("div", { ref, className: cx("oc-block-footer", className), ...rest, children: [
4194
- /* @__PURE__ */ jsx121("div", { className: "oc-block-footer-grid", children: columns.map((col, i) => /* @__PURE__ */ jsxs100("div", { className: "oc-block-footer-col", children: [
4195
- /* @__PURE__ */ jsx121("h4", { children: col.title }),
4196
- /* @__PURE__ */ jsx121("ul", { children: col.links.map((l, j) => /* @__PURE__ */ jsx121("li", { children: /* @__PURE__ */ jsx121("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)) })
4197
4270
  ] }, i)) }),
4198
- (copyright != null || credit != null) && /* @__PURE__ */ jsxs100("div", { className: "oc-block-footer-bottom", children: [
4199
- /* @__PURE__ */ jsx121("span", { children: copyright }),
4200
- /* @__PURE__ */ jsx121("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 })
4201
4274
  ] })
4202
4275
  ] });
4203
4276
  });
4204
4277
 
4205
4278
  // src/blocks/BlockFormPage.tsx
4206
- import { forwardRef as forwardRef120 } from "react";
4207
- import { jsx as jsx122, jsxs as jsxs101 } from "react/jsx-runtime";
4208
- var BlockFormPage = forwardRef120(function BlockFormPage2({ actions, className, children, ...rest }, ref) {
4209
- 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: [
4210
4283
  children,
4211
- actions != null && /* @__PURE__ */ jsx122("div", { className: "oc-block-formpage-actions", children: actions })
4284
+ actions != null && /* @__PURE__ */ jsx125("div", { className: "oc-block-formpage-actions", children: actions })
4212
4285
  ] });
4213
4286
  });
4214
4287
  function BlockFormPageGrid({ className, ...rest }) {
4215
- return /* @__PURE__ */ jsx122("div", { className: cx("oc-block-formpage-grid", className), ...rest });
4288
+ return /* @__PURE__ */ jsx125("div", { className: cx("oc-block-formpage-grid", className), ...rest });
4216
4289
  }
4217
4290
 
4218
4291
  // src/blocks/BlockHero.tsx
4219
- import { forwardRef as forwardRef121 } from "react";
4220
- import { jsx as jsx123, jsxs as jsxs102 } from "react/jsx-runtime";
4221
- var BlockHero = forwardRef121(function BlockHero2({ badge, title, description, actions, className, ...rest }, ref) {
4222
- return /* @__PURE__ */ jsxs102("div", { ref, className: cx("oc-block-hero", className), ...rest, children: [
4223
- badge != null && /* @__PURE__ */ jsx123("span", { className: "oc-block-hero-badge", children: badge }),
4224
- /* @__PURE__ */ jsx123("h1", { children: title }),
4225
- description != null && /* @__PURE__ */ jsx123("p", { children: description }),
4226
- actions != null && /* @__PURE__ */ jsx123("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 })
4227
4300
  ] });
4228
4301
  });
4229
4302
 
4230
4303
  // src/blocks/BlockHeroCode.tsx
4231
- import { forwardRef as forwardRef122 } from "react";
4232
- import { jsx as jsx124, 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";
4233
4306
  var DEFAULT_TILES = [
4234
4307
  { glyph: "\u25C6", accent: "green", style: { inset: "-0.5rem auto auto 8%" } },
4235
4308
  { glyph: "\u25C9", accent: "violet", style: { inset: "0 6% auto auto", animationDelay: "-2s" } },
4236
4309
  { glyph: "\u25B2", accent: "orange", style: { inset: "auto 10% -0.5rem auto", animationDelay: "-4s" } }
4237
4310
  ];
4238
- var BlockHeroCode = forwardRef122(function BlockHeroCode2({ eyebrow, title, lead, actions, codeTitle, code, tiles = DEFAULT_TILES, className, ...rest }, ref) {
4239
- return /* @__PURE__ */ jsx124("section", { ref, className: cx("oc-section-pad", className), ...rest, children: /* @__PURE__ */ jsxs103("div", { className: "oc-container oc-split", children: [
4240
- /* @__PURE__ */ jsxs103("div", { children: [
4241
- eyebrow != null && /* @__PURE__ */ jsx124("p", { className: "oc-eyebrow", children: eyebrow }),
4242
- /* @__PURE__ */ jsx124("h1", { className: "oc-display", children: title }),
4243
- lead != null && /* @__PURE__ */ jsx124("p", { className: "oc-lead", children: lead }),
4244
- actions != null && /* @__PURE__ */ jsx124("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 })
4245
4318
  ] }),
4246
- /* @__PURE__ */ jsxs103("div", { className: "relative p-2", children: [
4247
- tiles.map((tile, i) => /* @__PURE__ */ jsx124("span", { className: `oc-icon-tile oc-icon-tile--float oc-accent--${tile.accent} absolute`, style: tile.style, "aria-hidden": "true", children: tile.glyph }, i)),
4248
- /* @__PURE__ */ jsxs103("div", { className: "oc-code-window", children: [
4249
- /* @__PURE__ */ jsxs103("div", { className: "oc-code-window__bar", children: [
4250
- /* @__PURE__ */ jsx124("i", {}),
4251
- /* @__PURE__ */ jsx124("i", {}),
4252
- /* @__PURE__ */ jsx124("i", {}),
4253
- codeTitle != null && /* @__PURE__ */ jsx124("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 })
4254
4327
  ] }),
4255
- /* @__PURE__ */ jsx124("pre", { className: "oc-code-window__body", children: code })
4328
+ /* @__PURE__ */ jsx127("pre", { className: "oc-code-window__body", children: code })
4256
4329
  ] })
4257
4330
  ] })
4258
4331
  ] }) });
4259
4332
  });
4260
4333
 
4261
4334
  // src/blocks/BlockHeroOrbit.tsx
4262
- import { forwardRef as forwardRef123 } from "react";
4263
- import { jsx as jsx125, 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";
4264
4337
  var DEFAULT_MARKS = [
4265
4338
  { glyph: "\u25C6", accent: "green" },
4266
4339
  { glyph: "\u25C9", accent: "violet" },
@@ -4269,333 +4342,333 @@ var DEFAULT_MARKS = [
4269
4342
  { glyph: "\u2665", accent: "red" },
4270
4343
  { glyph: "\u2600", accent: "yellow" }
4271
4344
  ];
4272
- var BlockHeroOrbit = forwardRef123(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) {
4273
4346
  const visualStyle = duration ? { "--oc-orbit-duration": duration } : void 0;
4274
- return /* @__PURE__ */ jsx125("section", { ref, className: cx("oc-block-orbit oc-section-pad", className), ...rest, children: /* @__PURE__ */ jsxs104("div", { className: "oc-container oc-split", children: [
4275
- /* @__PURE__ */ jsxs104("div", { children: [
4276
- eyebrow != null && /* @__PURE__ */ jsx125("p", { className: "oc-eyebrow", children: eyebrow }),
4277
- /* @__PURE__ */ jsx125("h1", { className: "oc-display", children: title }),
4278
- lead != null && /* @__PURE__ */ jsx125("p", { className: "oc-lead", children: lead }),
4279
- actions != null && /* @__PURE__ */ jsx125("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 })
4280
4353
  ] }),
4281
- /* @__PURE__ */ jsxs104("div", { className: "oc-block-orbit-visual", style: visualStyle, children: [
4282
- /* @__PURE__ */ jsx125("div", { className: "oc-block-orbit-ring", "aria-hidden": "true", children: marks.map((mark, i) => /* @__PURE__ */ jsx125("span", { className: "oc-block-orbit-mark", style: { "--oc-orbit-angle": `${360 / marks.length * i}deg` }, children: /* @__PURE__ */ jsx125("span", { className: `oc-product-mark oc-product-mark--sm oc-accent--${mark.accent}`, children: mark.glyph }) }, i)) }),
4283
- center ?? /* @__PURE__ */ jsxs104("div", { className: "oc-code-window oc-block-orbit-center", children: [
4284
- /* @__PURE__ */ jsxs104("div", { className: "oc-code-window__bar", children: [
4285
- /* @__PURE__ */ jsx125("i", {}),
4286
- /* @__PURE__ */ jsx125("i", {}),
4287
- /* @__PURE__ */ jsx125("i", {}),
4288
- codeTitle != null && /* @__PURE__ */ jsx125("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 })
4289
4362
  ] }),
4290
- /* @__PURE__ */ jsx125("pre", { className: "oc-code-window__body", children: code })
4363
+ /* @__PURE__ */ jsx128("pre", { className: "oc-code-window__body", children: code })
4291
4364
  ] })
4292
4365
  ] })
4293
4366
  ] }) });
4294
4367
  });
4295
4368
 
4296
4369
  // src/blocks/BlockHeroSplit.tsx
4297
- import { forwardRef as forwardRef124 } from "react";
4298
- import { jsx as jsx126, jsxs as jsxs105 } from "react/jsx-runtime";
4299
- var BlockHeroSplit = forwardRef124(function BlockHeroSplit2({ title, description, actions, visual, className, ...rest }, ref) {
4300
- return /* @__PURE__ */ jsxs105("div", { ref, className: cx("oc-block-hero-split", className), ...rest, children: [
4301
- /* @__PURE__ */ jsxs105("div", { children: [
4302
- /* @__PURE__ */ jsx126("h1", { children: title }),
4303
- description != null && /* @__PURE__ */ jsx126("p", { children: description }),
4304
- actions != null && /* @__PURE__ */ jsx126("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 })
4305
4378
  ] }),
4306
- /* @__PURE__ */ jsx126("div", { className: "oc-block-hero-visual", children: visual })
4379
+ /* @__PURE__ */ jsx129("div", { className: "oc-block-hero-visual", children: visual })
4307
4380
  ] });
4308
4381
  });
4309
4382
 
4310
4383
  // src/blocks/BlockModuleHeader.tsx
4311
- import { forwardRef as forwardRef125 } from "react";
4312
- import { jsx as jsx127, jsxs as jsxs106 } from "react/jsx-runtime";
4313
- var BlockModuleHeader = forwardRef125(function BlockModuleHeader2({ icon, title, intro, meta, actions, className, ...rest }, ref) {
4314
- return /* @__PURE__ */ jsxs106("header", { ref, className: cx("oc-block-modulehead", className), ...rest, children: [
4315
- /* @__PURE__ */ jsxs106("div", { className: "oc-block-modulehead-band", children: [
4316
- icon != null && /* @__PURE__ */ jsx127("span", { className: "oc-block-modulehead-icon", "aria-hidden": "true", children: icon }),
4317
- /* @__PURE__ */ jsxs106("div", { className: "oc-block-modulehead-body", children: [
4318
- /* @__PURE__ */ jsx127("h1", { className: "oc-block-modulehead-title", children: title }),
4319
- intro != null && /* @__PURE__ */ jsx127("p", { className: "oc-block-modulehead-intro", children: intro }),
4320
- meta != null && /* @__PURE__ */ jsx127("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 })
4321
4394
  ] })
4322
4395
  ] }),
4323
- actions != null && /* @__PURE__ */ jsx127("div", { className: "oc-block-modulehead-actions", children: actions })
4396
+ actions != null && /* @__PURE__ */ jsx130("div", { className: "oc-block-modulehead-actions", children: actions })
4324
4397
  ] });
4325
4398
  });
4326
4399
 
4327
4400
  // src/blocks/BlockPageHero.tsx
4328
- import { forwardRef as forwardRef126 } from "react";
4329
- import { jsx as jsx128, jsxs as jsxs107 } from "react/jsx-runtime";
4330
- var BlockPageHero = forwardRef126(function BlockPageHero2({ eyebrow, title, description, actions, className, ...rest }, ref) {
4331
- return /* @__PURE__ */ jsxs107("section", { ref, className: cx("oc-hero", className), ...rest, children: [
4332
- eyebrow != null && /* @__PURE__ */ jsx128("span", { className: "oc-hero-eyebrow", children: eyebrow }),
4333
- /* @__PURE__ */ jsx128("h1", { className: "oc-hero-title", children: title }),
4334
- description != null && /* @__PURE__ */ jsx128("p", { className: "oc-hero-text", children: description }),
4335
- actions != null && /* @__PURE__ */ jsx128("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 })
4336
4409
  ] });
4337
4410
  });
4338
4411
 
4339
4412
  // src/blocks/BlockPortfolioGrid.tsx
4340
- import { forwardRef as forwardRef127, useId as useId40 } from "react";
4341
- import { jsx as jsx129, jsxs as jsxs108 } from "react/jsx-runtime";
4342
- var BlockPortfolioGrid = forwardRef127(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) {
4343
4416
  const titleId = `oc-portfolio-title-${useId40().replace(/[^\w-]/g, "")}`;
4344
- return /* @__PURE__ */ jsx129("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: [
4345
- /* @__PURE__ */ jsxs108("div", { className: "oc-block-portfolio-head", children: [
4346
- /* @__PURE__ */ jsxs108("div", { children: [
4347
- eyebrow != null && /* @__PURE__ */ jsx129("p", { className: "oc-eyebrow", children: eyebrow }),
4348
- /* @__PURE__ */ jsx129("h2", { className: "oc-display oc-display--md", id: titleId, children: title }),
4349
- lead != null && /* @__PURE__ */ jsx129("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 })
4350
4423
  ] }),
4351
4424
  link
4352
4425
  ] }),
4353
- /* @__PURE__ */ jsx129("div", { className: "oc-block-portfolio-grid", children: projects.map(({ accent, className: cardClass, ...card }, i) => /* @__PURE__ */ jsx129(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)) })
4354
4427
  ] }) });
4355
4428
  });
4356
4429
 
4357
4430
  // src/blocks/BlockPricing.tsx
4358
- import { forwardRef as forwardRef128 } from "react";
4359
- import { Fragment as Fragment28, jsx as jsx130, jsxs as jsxs109 } from "react/jsx-runtime";
4360
- var BlockPricing = forwardRef128(function BlockPricing2({ title, description, plans, className, ...rest }, ref) {
4361
- return /* @__PURE__ */ jsxs109("div", { ref, className: cx("oc-block-pricing", className), ...rest, children: [
4362
- title != null && /* @__PURE__ */ jsx130("h2", { children: title }),
4363
- description != null && /* @__PURE__ */ jsx130("p", { children: description }),
4364
- /* @__PURE__ */ jsx130("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) => {
4365
4438
  const variant = plan.featured ? "default" : "outline";
4366
- return /* @__PURE__ */ jsxs109("div", { className: cx("oc-block-pricing-card", plan.featured && "oc-block-pricing-card--featured"), children: [
4367
- /* @__PURE__ */ jsx130("p", { className: "oc-block-pricing-name", children: plan.name }),
4368
- plan.description != null && /* @__PURE__ */ jsx130("p", { className: "oc-block-pricing-desc", children: plan.description }),
4369
- /* @__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: [
4370
4443
  plan.price,
4371
- plan.period != null && /* @__PURE__ */ jsxs109(Fragment28, { children: [
4444
+ plan.period != null && /* @__PURE__ */ jsxs112(Fragment28, { children: [
4372
4445
  " ",
4373
- /* @__PURE__ */ jsx130("span", { children: plan.period })
4446
+ /* @__PURE__ */ jsx133("span", { children: plan.period })
4374
4447
  ] })
4375
4448
  ] }),
4376
- /* @__PURE__ */ jsx130("ul", { className: "oc-block-pricing-features", children: plan.features.map((f, j) => /* @__PURE__ */ jsx130("li", { children: f }, j)) }),
4377
- plan.href ? /* @__PURE__ */ jsx130(ButtonLink, { variant, href: plan.href, style: { width: "100%" }, children: plan.action }) : /* @__PURE__ */ jsx130(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 })
4378
4451
  ] }, i);
4379
4452
  }) })
4380
4453
  ] });
4381
4454
  });
4382
4455
 
4383
4456
  // src/blocks/BlockProcess.tsx
4384
- import { forwardRef as forwardRef129 } from "react";
4385
- import { jsx as jsx131, jsxs as jsxs110 } from "react/jsx-runtime";
4386
- var BlockProcess = forwardRef129(function BlockProcess2({ eyebrow, title, steps, marquee, marqueeLabel = "Technologies", className, ...rest }, ref) {
4387
- return /* @__PURE__ */ jsx131("section", { ref, className: cx("oc-section-pad", className), ...rest, children: /* @__PURE__ */ jsxs110("div", { className: "oc-container", children: [
4388
- eyebrow != null && /* @__PURE__ */ jsx131("p", { className: "oc-eyebrow", children: eyebrow }),
4389
- /* @__PURE__ */ jsx131("h2", { className: "oc-display oc-display--md", children: title }),
4390
- /* @__PURE__ */ jsx131("ol", { className: "oc-steps", children: steps.map((s, i) => /* @__PURE__ */ jsxs110("li", { children: [
4391
- /* @__PURE__ */ jsx131("h3", { children: s.title }),
4392
- s.text != null && /* @__PURE__ */ jsx131("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 })
4393
4466
  ] }, i)) }),
4394
- marquee && marquee.length > 0 && /* @__PURE__ */ jsx131("div", { className: "oc-marquee mt-4", "aria-label": marqueeLabel, children: /* @__PURE__ */ jsxs110("div", { className: "oc-marquee__track", children: [
4395
- marquee.map((m) => /* @__PURE__ */ jsx131("span", { className: "oc-marquee__item", children: m }, m)),
4396
- marquee.map((m) => /* @__PURE__ */ jsx131("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}`))
4397
4470
  ] }) })
4398
4471
  ] }) });
4399
4472
  });
4400
4473
 
4401
4474
  // src/blocks/BlockProductGrid.tsx
4402
- import { forwardRef as forwardRef130 } from "react";
4403
- import { jsx as jsx132, jsxs as jsxs111 } from "react/jsx-runtime";
4404
- var BlockProductGrid = forwardRef130(function BlockProductGrid2({ eyebrow, title, products, className, ...rest }, ref) {
4405
- return /* @__PURE__ */ jsx132("section", { ref, className: cx("oc-section-pad", className), ...rest, children: /* @__PURE__ */ jsxs111("div", { className: "oc-container", children: [
4406
- eyebrow != null && /* @__PURE__ */ jsx132("p", { className: "oc-eyebrow", children: eyebrow }),
4407
- /* @__PURE__ */ jsx132("h2", { className: "oc-display oc-display--md", children: title }),
4408
- /* @__PURE__ */ jsx132("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: [
4409
- /* @__PURE__ */ jsxs111("div", { className: "oc-product-card__top", children: [
4410
- p.icon != null && /* @__PURE__ */ jsx132("span", { className: "oc-icon-tile", "aria-hidden": "true", children: p.icon }),
4411
- p.pill != null && /* @__PURE__ */ jsx132("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 })
4412
4485
  ] }),
4413
- /* @__PURE__ */ jsx132("h3", { className: "oc-product-card__name", children: p.name }),
4414
- p.tagline != null && /* @__PURE__ */ jsx132("p", { className: "oc-product-card__tagline", children: p.tagline }),
4415
- p.summary != null && /* @__PURE__ */ jsx132("p", { className: "oc-product-card__summary", children: p.summary }),
4416
- p.more != null && /* @__PURE__ */ jsx132("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 })
4417
4490
  ] }, i)) })
4418
4491
  ] }) });
4419
4492
  });
4420
4493
 
4421
4494
  // src/blocks/BlockProfileHeader.tsx
4422
- import { forwardRef as forwardRef131, useId as useId41 } from "react";
4423
- import { jsx as jsx133, jsxs as jsxs112 } from "react/jsx-runtime";
4424
- var BlockProfileHeader = forwardRef131(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) {
4425
4498
  const nameId = `oc-profile-name-${useId41().replace(/[^\w-]/g, "")}`;
4426
4499
  const Heading3 = headingLevel === 1 ? "h1" : "h2";
4427
4500
  const bannerStyle = banner ? { "--oc-profile-banner": `url("${banner}")` } : void 0;
4428
- return /* @__PURE__ */ jsxs112("section", { ref, className: cx("oc-block-profile", compact && "oc-block-profile--compact", className), "aria-labelledby": nameId, ...rest, children: [
4429
- /* @__PURE__ */ jsx133("div", { className: "oc-block-profile-banner", style: bannerStyle, "aria-hidden": "true" }),
4430
- /* @__PURE__ */ jsxs112("div", { className: "oc-block-profile-bar", children: [
4431
- /* @__PURE__ */ jsx133("span", { className: "oc-avatar oc-block-profile-avatar", "aria-hidden": "true", children: avatar }),
4432
- /* @__PURE__ */ jsxs112("div", { className: "oc-block-profile-info", children: [
4433
- /* @__PURE__ */ jsx133(Heading3, { className: "oc-block-profile-name", id: nameId, children: name }),
4434
- meta != null && /* @__PURE__ */ jsx133("p", { className: "oc-block-profile-meta", children: meta }),
4435
- bio != null && /* @__PURE__ */ jsx133("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 })
4436
4509
  ] }),
4437
- actions != null && /* @__PURE__ */ jsx133("div", { className: "oc-block-profile-actions", children: actions })
4510
+ actions != null && /* @__PURE__ */ jsx136("div", { className: "oc-block-profile-actions", children: actions })
4438
4511
  ] }),
4439
- tabs.length > 0 && /* @__PURE__ */ jsx133("nav", { className: "oc-block-profile-tabs", "aria-label": tabsLabel, children: tabs.map((tab, i) => /* @__PURE__ */ jsx133("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)) })
4440
4513
  ] });
4441
4514
  });
4442
4515
 
4443
4516
  // src/blocks/BlockShowcase.tsx
4444
- import { forwardRef as forwardRef132 } from "react";
4445
- import { jsx as jsx134, jsxs as jsxs113 } from "react/jsx-runtime";
4446
- var BlockShowcase = forwardRef132(function BlockShowcase2({ eyebrow, title, projects, cardMin = "26rem", className, ...rest }, ref) {
4447
- return /* @__PURE__ */ jsx134("section", { ref, className: cx("oc-section-pad", className), ...rest, children: /* @__PURE__ */ jsxs113("div", { className: "oc-container", children: [
4448
- eyebrow != null && /* @__PURE__ */ jsx134("p", { className: "oc-eyebrow", children: eyebrow }),
4449
- /* @__PURE__ */ jsx134("h2", { className: "oc-display oc-display--md", children: title }),
4450
- /* @__PURE__ */ jsx134("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: [
4451
- /* @__PURE__ */ jsxs113("span", { className: "oc-browser-frame m-1", children: [
4452
- /* @__PURE__ */ jsxs113("span", { className: "oc-browser-frame__bar", children: [
4453
- /* @__PURE__ */ jsx134("i", {}),
4454
- /* @__PURE__ */ jsx134("i", {}),
4455
- /* @__PURE__ */ jsx134("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", {})
4456
4529
  ] }),
4457
- /* @__PURE__ */ jsx134("span", { className: "oc-browser-frame__body", style: p.background ? { background: p.background } : void 0, children: p.image && /* @__PURE__ */ jsx134("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 ?? "" }) })
4458
4531
  ] }),
4459
- /* @__PURE__ */ jsxs113("span", { className: "grid gap-0.5 p-1.5 pt-0", children: [
4460
- p.pill != null && /* @__PURE__ */ jsx134("span", { className: "oc-pill oc-pill--accent", children: p.pill }),
4461
- /* @__PURE__ */ jsx134("span", { className: "oc-product-card__name", children: p.name }),
4462
- p.summary != null && /* @__PURE__ */ jsx134("span", { className: "oc-product-card__summary", children: p.summary }),
4463
- p.more != null && /* @__PURE__ */ jsx134("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 })
4464
4537
  ] })
4465
4538
  ] }, i)) })
4466
4539
  ] }) });
4467
4540
  });
4468
4541
 
4469
4542
  // src/blocks/BlockSiteFooter.tsx
4470
- import { forwardRef as forwardRef133 } from "react";
4471
- import { jsx as jsx135, jsxs as jsxs114 } from "react/jsx-runtime";
4472
- var BlockSiteFooter = forwardRef133(function BlockSiteFooter2({ brand, brandHref = "/", about, columns, copyright, credit, className, ...rest }, ref) {
4473
- return /* @__PURE__ */ jsx135("footer", { ref, className: cx("oc-site-footer", className), ...rest, children: /* @__PURE__ */ jsxs114("div", { className: "oc-container", children: [
4474
- /* @__PURE__ */ jsxs114("div", { className: "oc-site-footer__grid", children: [
4475
- /* @__PURE__ */ jsxs114("div", { className: "oc-site-footer__about", children: [
4476
- /* @__PURE__ */ jsx135("a", { className: "oc-site-header__brand", href: brandHref, children: brand }),
4477
- about != null && /* @__PURE__ */ jsx135("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 })
4478
4551
  ] }),
4479
- columns.map((col, i) => /* @__PURE__ */ jsxs114("div", { children: [
4480
- /* @__PURE__ */ jsx135("h2", { className: "oc-site-footer__title", children: col.title }),
4481
- col.links && /* @__PURE__ */ jsx135("ul", { className: "oc-site-footer__list", children: col.links.map((l, j) => /* @__PURE__ */ jsx135("li", { children: /* @__PURE__ */ jsx135("a", { href: l.href, children: l.label }) }, j)) }),
4482
- col.address != null && /* @__PURE__ */ jsx135("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 })
4483
4556
  ] }, i))
4484
4557
  ] }),
4485
- (copyright != null || credit != null) && /* @__PURE__ */ jsxs114("div", { className: "oc-site-footer__bottom", children: [
4486
- /* @__PURE__ */ jsx135("span", { children: copyright }),
4487
- /* @__PURE__ */ jsx135("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 })
4488
4561
  ] })
4489
4562
  ] }) });
4490
4563
  });
4491
4564
 
4492
4565
  // src/blocks/BlockSiteHeader.tsx
4493
- import { forwardRef as forwardRef134, useId as useId42 } from "react";
4494
- import { jsx as jsx136, jsxs as jsxs115 } from "react/jsx-runtime";
4495
- var BlockSiteHeader = forwardRef134(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) {
4496
4569
  const navId = `oc-site-nav-${useId42().replace(/:/g, "")}`;
4497
- return /* @__PURE__ */ jsx136("header", { ref, className: cx("oc-site-header", className), ...rest, children: /* @__PURE__ */ jsxs115("div", { className: "oc-container oc-site-header__inner", children: [
4498
- /* @__PURE__ */ jsx136("a", { className: "oc-site-header__brand", href: brandHref, children: brand }),
4499
- /* @__PURE__ */ jsx136("button", { className: "oc-site-header__toggle", type: "button", "aria-label": menuLabel, popoverTarget: navId, children: "\u2630" }),
4500
- /* @__PURE__ */ jsxs115("nav", { className: "oc-site-header__nav", id: navId, "aria-label": "Main", ...attrs({ popover: "" }), children: [
4501
- links.map((l, i) => /* @__PURE__ */ jsx136("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)),
4502
4575
  cta
4503
4576
  ] })
4504
4577
  ] }) });
4505
4578
  });
4506
4579
 
4507
4580
  // src/blocks/BlockSpotlight.tsx
4508
- import { forwardRef as forwardRef135 } from "react";
4509
- import { jsx as jsx137, jsxs as jsxs116 } from "react/jsx-runtime";
4510
- var BlockSpotlight = forwardRef135(function BlockSpotlight2({ accent, badge, icon, title, tagline, lead, action, modules, className, ...rest }, ref) {
4511
- return /* @__PURE__ */ jsx137("section", { ref, className: cx("oc-section-pad", className), ...rest, children: /* @__PURE__ */ jsx137("div", { className: "oc-container", children: /* @__PURE__ */ jsxs116("div", { className: cx("oc-spotlight", accent && `oc-accent--${accent}`), children: [
4512
- /* @__PURE__ */ jsxs116("div", { children: [
4513
- badge != null && /* @__PURE__ */ jsxs116("span", { className: "oc-pill oc-pill--accent", children: [
4514
- /* @__PURE__ */ jsx137("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" }),
4515
4588
  badge
4516
4589
  ] }),
4517
- /* @__PURE__ */ jsxs116("h2", { className: "oc-spotlight__title", children: [
4518
- icon != null && /* @__PURE__ */ jsx137("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 }),
4519
4592
  title
4520
4593
  ] }),
4521
- tagline != null && /* @__PURE__ */ jsx137("p", { className: "oc-spotlight__tagline", children: tagline }),
4522
- lead != null && /* @__PURE__ */ jsx137("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 }),
4523
4596
  action
4524
4597
  ] }),
4525
- modules && /* @__PURE__ */ jsx137("ul", { className: "oc-spotlight__modules", children: modules.map((m, i) => /* @__PURE__ */ jsxs116("li", { children: [
4526
- m.icon != null && /* @__PURE__ */ jsx137("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 }),
4527
4600
  m.label
4528
4601
  ] }, i)) })
4529
4602
  ] }) }) });
4530
4603
  });
4531
4604
 
4532
4605
  // src/blocks/BlockStats.tsx
4533
- import { forwardRef as forwardRef136 } from "react";
4534
- import { jsx as jsx138, jsxs as jsxs117 } from "react/jsx-runtime";
4535
- var BlockStats = forwardRef136(function BlockStats2({ stats, className, ...rest }, ref) {
4536
- return /* @__PURE__ */ jsx138("div", { ref, className: cx("oc-block-stats", className), ...rest, children: stats.map((s, i) => /* @__PURE__ */ jsxs117("div", { className: "oc-block-stat", children: [
4537
- /* @__PURE__ */ jsx138("div", { className: "oc-block-stat-value", children: s.value }),
4538
- /* @__PURE__ */ jsx138("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 })
4539
4612
  ] }, i)) });
4540
4613
  });
4541
4614
 
4542
4615
  // src/blocks/BlockStatsCounter.tsx
4543
- import { forwardRef as forwardRef137 } from "react";
4544
- import { jsx as jsx139, jsxs as jsxs118 } from "react/jsx-runtime";
4545
- var BlockStatsCounter = forwardRef137(function BlockStatsCounter2({ stats, className, ...rest }, ref) {
4546
- return /* @__PURE__ */ jsx139("div", { ref, className: cx("oc-block-stats", className), ...rest, children: stats.map((s, i) => /* @__PURE__ */ jsxs118("div", { className: "oc-block-stat", children: [
4547
- /* @__PURE__ */ jsx139(Counter, { className: "oc-block-stat-value", to: s.to, suffix: s.suffix }),
4548
- /* @__PURE__ */ jsx139("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 })
4549
4622
  ] }, i)) });
4550
4623
  });
4551
4624
 
4552
4625
  // src/blocks/BlockTeamList.tsx
4553
- import { forwardRef as forwardRef138 } from "react";
4554
- import { Fragment as Fragment29, jsx as jsx140, jsxs as jsxs119 } from "react/jsx-runtime";
4555
- var BlockTeamList = forwardRef138(function BlockTeamList2({ members, className, ...rest }, ref) {
4556
- return /* @__PURE__ */ jsx140("div", { ref, className: cx("oc-block-team", className), ...rest, children: members.map((m, i) => /* @__PURE__ */ jsxs119("div", { className: "oc-block-team-row", children: [
4557
- /* @__PURE__ */ jsx140(User, { name: m.name, email: m.email, initials: m.initials, avatarSrc: m.avatarSrc }),
4558
- /* @__PURE__ */ jsxs119("div", { className: "oc-block-team-meta", children: [
4559
- m.role != null && /* @__PURE__ */ jsx140(Badge, { variant: m.roleVariant, children: m.role }),
4560
- m.menu != null && /* @__PURE__ */ jsx140(Dropdown, { trigger: /* @__PURE__ */ jsx140(Fragment29, { 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 })
4561
4634
  ] })
4562
4635
  ] }, i)) });
4563
4636
  });
4564
4637
 
4565
4638
  // src/blocks/BlockTwoFactor.tsx
4566
- import { forwardRef as forwardRef139, useId as useId43, useState as useState15 } from "react";
4567
- import { jsx as jsx141, jsxs as jsxs120 } from "react/jsx-runtime";
4568
- var BlockTwoFactor = forwardRef139(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) {
4569
4642
  const id = `oc-twofactor-${useId43().replace(/:/g, "")}`;
4570
4643
  const [code, setCode] = useState15("");
4571
4644
  const submit = (e) => {
4572
4645
  e.preventDefault();
4573
4646
  onSubmit?.(code);
4574
4647
  };
4575
- return /* @__PURE__ */ jsxs120("div", { ref, className: cx("oc-block-twofactor", className), ...rest, children: [
4576
- /* @__PURE__ */ jsxs120("section", { className: "oc-block-twofactor-step", children: [
4577
- /* @__PURE__ */ jsx141(Heading, { size: "sm", title: "1. Scan the QR code", description: "Use an authenticator app, or enter the key manually." }),
4578
- /* @__PURE__ */ jsxs120("div", { className: "oc-block-twofactor-center", children: [
4579
- qr ?? /* @__PURE__ */ jsx141("div", { className: "oc-block-twofactor-qr", role: "img", "aria-label": "QR code", children: "QR code" }),
4580
- /* @__PURE__ */ jsx141(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" })
4581
4654
  ] })
4582
4655
  ] }),
4583
- /* @__PURE__ */ jsxs120("form", { className: "oc-block-twofactor-step", onSubmit: submit, children: [
4584
- /* @__PURE__ */ jsx141(Heading, { size: "sm", title: "2. Confirm with a code" }),
4585
- /* @__PURE__ */ jsxs120("div", { className: "oc-field", children: [
4586
- /* @__PURE__ */ jsx141("label", { className: "oc-field-label", htmlFor: id, children: "Authentication code" }),
4587
- /* @__PURE__ */ jsx141(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 })
4588
4661
  ] }),
4589
- /* @__PURE__ */ jsx141("button", { className: "oc-btn", type: "submit", children: submitLabel })
4662
+ /* @__PURE__ */ jsx144("button", { className: "oc-btn", type: "submit", children: submitLabel })
4590
4663
  ] }),
4591
- recoveryCodes && /* @__PURE__ */ jsx141("section", { className: "oc-block-twofactor-step", children: /* @__PURE__ */ jsx141(RecoveryCodes, { codes: recoveryCodes }) })
4664
+ recoveryCodes && /* @__PURE__ */ jsx144("section", { className: "oc-block-twofactor-step", children: /* @__PURE__ */ jsx144(RecoveryCodes, { codes: recoveryCodes }) })
4592
4665
  ] });
4593
4666
  });
4594
4667
 
4595
4668
  // src/blocks/BlockWizardDialog.tsx
4596
- import { forwardRef as forwardRef140, useId as useId44, useRef as useRef13 } from "react";
4597
- import { jsx as jsx142, jsxs as jsxs121 } from "react/jsx-runtime";
4598
- var BlockWizardDialog = forwardRef140(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({
4599
4672
  open,
4600
4673
  defaultOpen,
4601
4674
  onOpenChange,
@@ -4619,7 +4692,7 @@ var BlockWizardDialog = forwardRef140(function BlockWizardDialog2({
4619
4692
  const [current, setCurrent] = useControllable(step, defaultStep, onStepChange);
4620
4693
  const last = current >= steps.length - 1;
4621
4694
  const active = steps[current];
4622
- return /* @__PURE__ */ jsx142(
4695
+ return /* @__PURE__ */ jsx145(
4623
4696
  "dialog",
4624
4697
  {
4625
4698
  ref,
@@ -4628,17 +4701,17 @@ var BlockWizardDialog = forwardRef140(function BlockWizardDialog2({
4628
4701
  ...attrs({ closedby: "closerequest" }),
4629
4702
  ...rest,
4630
4703
  onClose: dlg.onClose,
4631
- children: /* @__PURE__ */ jsx142(DialogContext.Provider, { value: { close: dlg.close }, children: /* @__PURE__ */ jsx142("div", { className: "oc-modal-content oc-modal-content--xl", children: /* @__PURE__ */ jsxs121("div", { className: "oc-block-wizard", children: [
4632
- /* @__PURE__ */ jsx142("div", { className: "oc-block-wizard-rail", children: /* @__PURE__ */ jsx142(Stepper, { steps: steps.map((s) => ({ label: s.label })), current, onStepChange: setCurrent, "aria-label": stepperLabel }) }),
4633
- /* @__PURE__ */ jsxs121("div", { className: "oc-block-wizard-main", children: [
4634
- /* @__PURE__ */ jsxs121("div", { className: "oc-modal-header", children: [
4635
- /* @__PURE__ */ jsx142("h2", { className: "oc-modal-title", id: titleId, children: active?.label }),
4636
- /* @__PURE__ */ jsx142("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}` })
4637
4710
  ] }),
4638
- /* @__PURE__ */ jsx142("div", { className: "oc-block-wizard-step", children: active?.content }),
4639
- /* @__PURE__ */ jsxs121("div", { className: "oc-modal-footer", children: [
4640
- /* @__PURE__ */ jsx142("button", { className: "oc-btn oc-btn--outline", type: "button", disabled: current === 0, onClick: () => setCurrent(current - 1), children: backLabel }),
4641
- /* @__PURE__ */ jsx142(
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(
4642
4715
  "button",
4643
4716
  {
4644
4717
  className: "oc-btn",
@@ -4754,6 +4827,8 @@ export {
4754
4827
  FilterPills,
4755
4828
  FlipCard,
4756
4829
  FormField,
4830
+ Glass,
4831
+ GlassPanel,
4757
4832
  Greeting,
4758
4833
  Heading,
4759
4834
  Icon,
@@ -4816,6 +4891,8 @@ export {
4816
4891
  StackList,
4817
4892
  StatCard,
4818
4893
  StatCardGrid,
4894
+ Status,
4895
+ StatusDot,
4819
4896
  Stepper,
4820
4897
  Switch,
4821
4898
  Table,
@@ -4833,6 +4910,10 @@ export {
4833
4910
  ThemeSwitch,
4834
4911
  TimeInput,
4835
4912
  Timeline,
4913
+ Titlebar,
4914
+ TitlebarBody,
4915
+ TitlebarButton,
4916
+ TitlebarWindow,
4836
4917
  Toast,
4837
4918
  ToastContainer,
4838
4919
  ToastProvider,
@@ -4861,6 +4942,7 @@ export {
4861
4942
  mod,
4862
4943
  niceMax,
4863
4944
  parseDecimal,
4945
+ progressLevel,
4864
4946
  useControllable,
4865
4947
  useDialog,
4866
4948
  useDialogContext,