@birdycom/omniaui-react 0.12.2 → 0.12.4

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,77 +2944,85 @@ 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,
2950
2977
  monthly,
2951
2978
  yearly,
2979
+ lifetime,
2952
2980
  defaultPeriod = "monthly",
2953
2981
  features = [],
2954
2982
  cta,
2955
2983
  featured = false,
2956
2984
  monthlyLabel = "Monthly",
2957
2985
  yearlyLabel = "Yearly",
2986
+ lifetimeLabel = "Lifetime",
2958
2987
  className,
2959
2988
  ...rest
2960
2989
  }, ref) {
2961
2990
  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 })
2991
+ return /* @__PURE__ */ jsxs60("article", { ref, className: cx("oc-price-card", featured && "oc-price-card--featured", className), ...rest, children: [
2992
+ /* @__PURE__ */ jsxs60("div", { className: "oc-price-card__head", children: [
2993
+ /* @__PURE__ */ jsx76("h3", { className: "oc-price-card__name", children: name }),
2994
+ discount != null && /* @__PURE__ */ jsx76("span", { className: "oc-price-card__discount", children: discount })
2966
2995
  ] }),
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" }),
2996
+ description != null && /* @__PURE__ */ jsx76("p", { className: "oc-price-card__desc", children: description }),
2997
+ yearly && /* @__PURE__ */ jsxs60("div", { className: "oc-segmented oc-price-card__toggle", role: "radiogroup", "aria-label": "Billing period", children: [
2998
+ /* @__PURE__ */ jsxs60("label", { className: "oc-segmented-item", children: [
2999
+ /* @__PURE__ */ jsx76("input", { type: "radio", name: group, value: "monthly", defaultChecked: defaultPeriod === "monthly" }),
2971
3000
  " ",
2972
3001
  monthlyLabel
2973
3002
  ] }),
2974
- /* @__PURE__ */ jsxs59("label", { className: "oc-segmented-item", children: [
2975
- /* @__PURE__ */ jsx75("input", { type: "radio", name: group, value: "yearly", defaultChecked: defaultPeriod === "yearly" }),
3003
+ /* @__PURE__ */ jsxs60("label", { className: "oc-segmented-item", children: [
3004
+ /* @__PURE__ */ jsx76("input", { type: "radio", name: group, value: "yearly", defaultChecked: defaultPeriod === "yearly" }),
2976
3005
  " ",
2977
3006
  yearlyLabel
3007
+ ] }),
3008
+ lifetime && /* @__PURE__ */ jsxs60("label", { className: "oc-segmented-item", children: [
3009
+ /* @__PURE__ */ jsx76("input", { type: "radio", name: group, value: "lifetime", defaultChecked: defaultPeriod === "lifetime" }),
3010
+ " ",
3011
+ lifetimeLabel
2978
3012
  ] })
2979
3013
  ] }),
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)) }),
3014
+ /* @__PURE__ */ jsx76(Price, { kind: "monthly", price: monthly }),
3015
+ yearly && /* @__PURE__ */ jsx76(Price, { kind: "yearly", price: yearly }),
3016
+ yearly && lifetime && /* @__PURE__ */ jsx76(Price, { kind: "lifetime", price: lifetime }),
3017
+ 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
3018
  cta
2984
3019
  ] });
2985
3020
  });
2986
3021
 
2987
3022
  // 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) {
3023
+ import { forwardRef as forwardRef75 } from "react";
3024
+ import { jsx as jsx77 } from "react/jsx-runtime";
3025
+ var ProductMark = forwardRef75(function ProductMark2({ size = "default", accent, soft = false, glow = false, cover = false, className, ...rest }, ref) {
2991
3026
  const classes = cx(
2992
3027
  "oc-product-mark",
2993
3028
  size !== "default" && `oc-product-mark--${size}`,
@@ -2997,132 +3032,132 @@ var ProductMark = forwardRef74(function ProductMark2({ size = "default", accent,
2997
3032
  accent && `oc-accent--${accent}`,
2998
3033
  className
2999
3034
  );
3000
- return /* @__PURE__ */ jsx76("span", { ref, className: classes, "aria-hidden": "true", ...rest });
3035
+ return /* @__PURE__ */ jsx77("span", { ref, className: classes, "aria-hidden": "true", ...rest });
3001
3036
  });
3002
3037
 
3003
3038
  // 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", {})
3039
+ import { forwardRef as forwardRef76 } from "react";
3040
+ import { jsx as jsx78, jsxs as jsxs61 } from "react/jsx-runtime";
3041
+ var ProjectCard = forwardRef76(function ProjectCard2({ name, type, meta, more = "View project", image, imageAlt = "", flat = false, className, ...rest }, ref) {
3042
+ return /* @__PURE__ */ jsxs61("a", { ref, className: cx("oc-project-card", flat && "oc-project-card--flat", className), ...rest, children: [
3043
+ /* @__PURE__ */ jsxs61("span", { className: "oc-project-card__frame", children: [
3044
+ /* @__PURE__ */ jsxs61("span", { className: "oc-project-card__bar", "aria-hidden": "true", children: [
3045
+ /* @__PURE__ */ jsx78("i", {}),
3046
+ /* @__PURE__ */ jsx78("i", {}),
3047
+ /* @__PURE__ */ jsx78("i", {})
3013
3048
  ] }),
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 })
3049
+ 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
3050
  ] }),
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 })
3051
+ /* @__PURE__ */ jsxs61("span", { className: "oc-project-card__body", children: [
3052
+ type != null && /* @__PURE__ */ jsx78("span", { className: "oc-project-card__type", children: type }),
3053
+ /* @__PURE__ */ jsx78("span", { className: "oc-project-card__name", children: name }),
3054
+ meta != null && /* @__PURE__ */ jsx78("span", { className: "oc-project-card__meta", children: meta }),
3055
+ more != null && /* @__PURE__ */ jsx78("span", { className: "oc-project-card__more", children: more })
3021
3056
  ] })
3022
3057
  ] });
3023
3058
  });
3024
3059
 
3025
3060
  // 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";
3061
+ import { forwardRef as forwardRef77 } from "react";
3062
+ import { Fragment as Fragment17, jsx as jsx79, jsxs as jsxs62 } from "react/jsx-runtime";
3028
3063
  function ProseLead({ className, ...rest }) {
3029
- return /* @__PURE__ */ jsx78("p", { className: cx("oc-prose-lead", className), ...rest });
3064
+ return /* @__PURE__ */ jsx79("p", { className: cx("oc-prose-lead", className), ...rest });
3030
3065
  }
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: [
3066
+ var DEMO7 = /* @__PURE__ */ jsxs62(Fragment17, { children: [
3067
+ /* @__PURE__ */ jsx79("h1", { children: "Planning a kitchen renovation" }),
3068
+ /* @__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." }),
3069
+ /* @__PURE__ */ jsx79("h2", { children: "Before the first visit" }),
3070
+ /* @__PURE__ */ jsxs62("p", { children: [
3036
3071
  "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" }),
3072
+ /* @__PURE__ */ jsx79("a", { href: "#checklist", children: "preparation checklist" }),
3038
3073
  " if you want to be fully ready."
3039
3074
  ] }),
3040
- /* @__PURE__ */ jsxs61("ul", { children: [
3041
- /* @__PURE__ */ jsxs61("li", { children: [
3075
+ /* @__PURE__ */ jsxs62("ul", { children: [
3076
+ /* @__PURE__ */ jsxs62("li", { children: [
3042
3077
  "The ",
3043
- /* @__PURE__ */ jsx78("strong", { children: "budget range" }),
3078
+ /* @__PURE__ */ jsx79("strong", { children: "budget range" }),
3044
3079
  " you have in mind, including appliances"
3045
3080
  ] }),
3046
- /* @__PURE__ */ jsxs61("li", { children: [
3081
+ /* @__PURE__ */ jsxs62("li", { children: [
3047
3082
  "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" })
3083
+ /* @__PURE__ */ jsxs62("ul", { children: [
3084
+ /* @__PURE__ */ jsx79("li", { children: "Load-bearing walls need a structural engineer" }),
3085
+ /* @__PURE__ */ jsx79("li", { children: "Moving a window needs a permit in most towns" })
3051
3086
  ] })
3052
3087
  ] }),
3053
- /* @__PURE__ */ jsx78("li", { children: "Appliances you want to keep" })
3088
+ /* @__PURE__ */ jsx79("li", { children: "Appliances you want to keep" })
3054
3089
  ] }),
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." })
3090
+ /* @__PURE__ */ jsxs62("figure", { children: [
3091
+ /* @__PURE__ */ jsx79("div", { className: "oc-media-art oc-media-art--6", role: "img", "aria-label": "Kitchen with oak fronts and a light stone worktop" }),
3092
+ /* @__PURE__ */ jsx79("figcaption", { children: "Villa Dewitte: oak fronts with a Calacatta matt worktop, finished in October 2026." })
3058
3093
  ] }),
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)" })
3094
+ /* @__PURE__ */ jsx79("h3", { children: "From design to installation" }),
3095
+ /* @__PURE__ */ jsxs62("ol", { children: [
3096
+ /* @__PURE__ */ jsx79("li", { children: "Site visit and measurements (week 1)" }),
3097
+ /* @__PURE__ */ jsx79("li", { children: "Design and quote, with two revision rounds (weeks 2\u20133)" }),
3098
+ /* @__PURE__ */ jsx79("li", { children: "Order and production of the cabinets (weeks 4\u20139)" }),
3099
+ /* @__PURE__ */ jsx79("li", { children: "Installation, worktop and finishing (weeks 10\u201311)" })
3065
3100
  ] }),
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" })
3101
+ /* @__PURE__ */ jsxs62("blockquote", { children: [
3102
+ /* @__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." }),
3103
+ /* @__PURE__ */ jsx79("footer", { children: "\u2014 Ann Dewitte, client in Ghent" })
3069
3104
  ] }),
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" })
3105
+ /* @__PURE__ */ jsx79("h2", { children: "Worktop materials compared" }),
3106
+ /* @__PURE__ */ jsxs62("table", { children: [
3107
+ /* @__PURE__ */ jsx79("caption", { children: "Prices per running metre, 60 cm deep, installed." }),
3108
+ /* @__PURE__ */ jsx79("thead", { children: /* @__PURE__ */ jsxs62("tr", { children: [
3109
+ /* @__PURE__ */ jsx79("th", { children: "Material" }),
3110
+ /* @__PURE__ */ jsx79("th", { children: "Thickness" }),
3111
+ /* @__PURE__ */ jsx79("th", { children: "Heat resistant" }),
3112
+ /* @__PURE__ */ jsx79("th", { children: "Price" })
3078
3113
  ] }) }),
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" })
3114
+ /* @__PURE__ */ jsxs62("tbody", { children: [
3115
+ /* @__PURE__ */ jsxs62("tr", { children: [
3116
+ /* @__PURE__ */ jsx79("td", { children: "Compact laminate" }),
3117
+ /* @__PURE__ */ jsx79("td", { children: "12 mm" }),
3118
+ /* @__PURE__ */ jsx79("td", { children: "Up to 180 \xB0C" }),
3119
+ /* @__PURE__ */ jsx79("td", { children: "\u20AC 290" })
3085
3120
  ] }),
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" })
3121
+ /* @__PURE__ */ jsxs62("tr", { children: [
3122
+ /* @__PURE__ */ jsx79("td", { children: "Quartz composite" }),
3123
+ /* @__PURE__ */ jsx79("td", { children: "20 mm" }),
3124
+ /* @__PURE__ */ jsx79("td", { children: "Up to 150 \xB0C" }),
3125
+ /* @__PURE__ */ jsx79("td", { children: "\u20AC 540" })
3091
3126
  ] }),
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" })
3127
+ /* @__PURE__ */ jsxs62("tr", { children: [
3128
+ /* @__PURE__ */ jsx79("td", { children: "Natural stone" }),
3129
+ /* @__PURE__ */ jsx79("td", { children: "20 mm" }),
3130
+ /* @__PURE__ */ jsx79("td", { children: "Yes" }),
3131
+ /* @__PURE__ */ jsx79("td", { children: "\u20AC 720" })
3097
3132
  ] })
3098
3133
  ] })
3099
3134
  ] }),
3100
- /* @__PURE__ */ jsx78("h3", { children: "Sharing your floor plan" }),
3101
- /* @__PURE__ */ jsxs61("p", { children: [
3135
+ /* @__PURE__ */ jsx79("h3", { children: "Sharing your floor plan" }),
3136
+ /* @__PURE__ */ jsxs62("p", { children: [
3102
3137
  "Upload a PDF or a photo in the client portal, or send it by e-mail. Press ",
3103
- /* @__PURE__ */ jsx78("kbd", { children: "Ctrl" }),
3138
+ /* @__PURE__ */ jsx79("kbd", { children: "Ctrl" }),
3104
3139
  " + ",
3105
- /* @__PURE__ */ jsx78("kbd", { children: "V" }),
3140
+ /* @__PURE__ */ jsx79("kbd", { children: "V" }),
3106
3141
  " in the chat to paste a screenshot. Files are stored as ",
3107
- /* @__PURE__ */ jsx78("code", { children: "project-id/plans/" }),
3142
+ /* @__PURE__ */ jsx79("code", { children: "project-id/plans/" }),
3108
3143
  " and only your project team can see them."
3109
3144
  ] }),
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: [
3145
+ /* @__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)" }) }),
3146
+ /* @__PURE__ */ jsx79("hr", {}),
3147
+ /* @__PURE__ */ jsx79("p", { children: /* @__PURE__ */ jsxs62("small", { children: [
3113
3148
  "Lead times are an estimate. ",
3114
- /* @__PURE__ */ jsx78("mark", { children: "Natural stone" }),
3149
+ /* @__PURE__ */ jsx79("mark", { children: "Natural stone" }),
3115
3150
  " can take two weeks longer in summer."
3116
3151
  ] }) })
3117
3152
  ] });
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 });
3153
+ var Prose = forwardRef77(function Prose2({ size = "md", full, as: Tag = "article", className, children, ...rest }, ref) {
3154
+ return /* @__PURE__ */ jsx79(Tag, { ref, className: cx("oc-prose", size !== "md" && `oc-prose--${size}`, full && "oc-prose--full", className), ...rest, children: children ?? DEMO7 });
3120
3155
  });
3121
3156
 
3122
3157
  // 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({
3158
+ import { forwardRef as forwardRef78 } from "react";
3159
+ import { jsx as jsx80, jsxs as jsxs63 } from "react/jsx-runtime";
3160
+ var RecoveryCodes = forwardRef78(function RecoveryCodes2({
3126
3161
  codes,
3127
3162
  title = "Recovery codes",
3128
3163
  warning = "Store these codes somewhere safe. Each code works once.",
@@ -3150,33 +3185,33 @@ var RecoveryCodes = forwardRef77(function RecoveryCodes2({
3150
3185
  URL.revokeObjectURL(url);
3151
3186
  onDownload?.(codes);
3152
3187
  };
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 })
3188
+ return /* @__PURE__ */ jsxs63("div", { ref, className: cx("oc-recovery-codes", className), ...rest, children: [
3189
+ /* @__PURE__ */ jsx80("h3", { className: "oc-recovery-codes-title", children: title }),
3190
+ /* @__PURE__ */ jsx80("p", { className: "oc-recovery-codes-warning", children: warning }),
3191
+ /* @__PURE__ */ jsx80("ul", { className: "oc-recovery-codes-list", children: codes.map((code) => /* @__PURE__ */ jsx80("li", { children: code }, code)) }),
3192
+ /* @__PURE__ */ jsxs63("div", { className: "oc-recovery-codes-actions", children: [
3193
+ /* @__PURE__ */ jsx80("button", { className: "oc-btn oc-btn--outline oc-btn--sm", type: "button", onClick: copy, children: copyLabel }),
3194
+ /* @__PURE__ */ jsx80("button", { className: "oc-btn oc-btn--outline oc-btn--sm", type: "button", onClick: download2, children: downloadLabel })
3160
3195
  ] })
3161
3196
  ] });
3162
3197
  });
3163
3198
 
3164
3199
  // 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) {
3200
+ import { forwardRef as forwardRef79, useId as useId27 } from "react";
3201
+ import { jsx as jsx81, jsxs as jsxs64 } from "react/jsx-runtime";
3202
+ var Segmented = forwardRef79(function Segmented2({ options, value, defaultValue, onChange, name, block, size = "md", className, ...rest }, ref) {
3168
3203
  const auto = useId27();
3169
3204
  const group = name ?? `oc-segmented-${auto.replace(/:/g, "")}`;
3170
3205
  const [current, setCurrent] = useControllable(value, defaultValue ?? options[0]?.value ?? "", onChange);
3171
- return /* @__PURE__ */ jsx80(
3206
+ return /* @__PURE__ */ jsx81(
3172
3207
  "div",
3173
3208
  {
3174
3209
  ref,
3175
3210
  className: cx("oc-segmented", block && "oc-segmented--block", size === "sm" && "oc-segmented--sm", className),
3176
3211
  role: "radiogroup",
3177
3212
  ...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) }),
3213
+ children: options.map((o) => /* @__PURE__ */ jsxs64("label", { className: "oc-segmented-item", children: [
3214
+ /* @__PURE__ */ jsx81("input", { type: "radio", name: group, value: o.value, checked: current === o.value, onChange: () => setCurrent(o.value) }),
3180
3215
  " ",
3181
3216
  o.label
3182
3217
  ] }, o.value))
@@ -3185,44 +3220,44 @@ var Segmented = forwardRef78(function Segmented2({ options, value, defaultValue,
3185
3220
  });
3186
3221
 
3187
3222
  // 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: [
3223
+ import { forwardRef as forwardRef80 } from "react";
3224
+ import { jsx as jsx82, jsxs as jsxs65 } from "react/jsx-runtime";
3225
+ var Select = forwardRef80(function Select2({ options, className, children, ...rest }, ref) {
3226
+ return /* @__PURE__ */ jsxs65("select", { ref, className: cx("oc-select", className), ...rest, children: [
3192
3227
  options?.map((o) => {
3193
3228
  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);
3229
+ return /* @__PURE__ */ jsx82("option", { value: opt.value, disabled: opt.disabled, children: opt.label }, opt.value);
3195
3230
  }),
3196
3231
  children
3197
3232
  ] });
3198
3233
  });
3199
3234
 
3200
3235
  // src/components/SeverityCard.tsx
3201
- import { forwardRef as forwardRef80 } from "react";
3202
- import { jsx as jsx82, jsxs as jsxs65 } from "react/jsx-runtime";
3236
+ import { forwardRef as forwardRef81 } from "react";
3237
+ import { jsx as jsx83, jsxs as jsxs66 } from "react/jsx-runtime";
3203
3238
  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) {
3239
+ var SeverityCard = forwardRef81(function SeverityCard2({ level, title, tags, levelLabel, icon, resolved, actions, className, children, ...rest }, ref) {
3205
3240
  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)) })
3241
+ return /* @__PURE__ */ jsxs66("details", { ref, className: cls, ...rest, children: [
3242
+ /* @__PURE__ */ jsxs66("summary", { className: "oc-severity-card-head", children: [
3243
+ icon != null && /* @__PURE__ */ jsx83("span", { className: "oc-severity-card-icon", "aria-hidden": "true", children: icon }),
3244
+ /* @__PURE__ */ jsxs66("span", { className: "oc-severity-card-main", children: [
3245
+ /* @__PURE__ */ jsx83("span", { className: "oc-severity-card-title", children: title }),
3246
+ 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
3247
  ] }),
3213
- /* @__PURE__ */ jsx82("span", { className: "oc-severity-card-level", children: levelLabel ?? LEVEL_TEXT[level] })
3248
+ /* @__PURE__ */ jsx83("span", { className: "oc-severity-card-level", children: levelLabel ?? LEVEL_TEXT[level] })
3214
3249
  ] }),
3215
- /* @__PURE__ */ jsxs65("div", { className: "oc-severity-card-body", children: [
3250
+ /* @__PURE__ */ jsxs66("div", { className: "oc-severity-card-body", children: [
3216
3251
  children,
3217
- actions != null && /* @__PURE__ */ jsx82("div", { className: "oc-severity-card-actions", children: actions })
3252
+ actions != null && /* @__PURE__ */ jsx83("div", { className: "oc-severity-card-actions", children: actions })
3218
3253
  ] })
3219
3254
  ] });
3220
3255
  });
3221
3256
 
3222
3257
  // 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) {
3258
+ import { forwardRef as forwardRef82, useId as useId28, useRef as useRef10 } from "react";
3259
+ import { jsx as jsx84, jsxs as jsxs67 } from "react/jsx-runtime";
3260
+ var Sheet = forwardRef82(function Sheet2({ open, defaultOpen, onOpenChange, side = "right", wide, title, description, footer, closeLabel = "Close", className, children, ...rest }, forwardedRef) {
3226
3261
  const inner = useRef10(null);
3227
3262
  const ref = useMergedRef(inner, forwardedRef);
3228
3263
  const titleId = useId28();
@@ -3231,7 +3266,7 @@ var Sheet = forwardRef81(function Sheet2({ open, defaultOpen, onOpenChange, side
3231
3266
  rest.onClick?.(e);
3232
3267
  if (e.target === e.currentTarget) dlg.close();
3233
3268
  };
3234
- return /* @__PURE__ */ jsx83(
3269
+ return /* @__PURE__ */ jsx84(
3235
3270
  "dialog",
3236
3271
  {
3237
3272
  ref,
@@ -3241,57 +3276,57 @@ var Sheet = forwardRef81(function Sheet2({ open, defaultOpen, onOpenChange, side
3241
3276
  ...rest,
3242
3277
  onClick,
3243
3278
  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 })
3279
+ children: /* @__PURE__ */ jsx84(DialogContext.Provider, { value: { close: dlg.close }, children: /* @__PURE__ */ jsxs67("div", { className: cx("oc-sheet-content", wide && "oc-sheet-content--wide"), children: [
3280
+ /* @__PURE__ */ jsx84("button", { className: "oc-sheet-close", type: "button", "aria-label": closeLabel, onClick: dlg.close, children: "\xD7" }),
3281
+ (title != null || description != null) && /* @__PURE__ */ jsxs67("div", { className: "oc-sheet-header", children: [
3282
+ title != null && /* @__PURE__ */ jsx84("h2", { className: "oc-sheet-title", id: titleId, children: title }),
3283
+ description != null && /* @__PURE__ */ jsx84("p", { className: "oc-sheet-description", children: description })
3249
3284
  ] }),
3250
- /* @__PURE__ */ jsx83("div", { className: "oc-sheet-body", children }),
3251
- footer != null && /* @__PURE__ */ jsx83("div", { className: "oc-sheet-footer", children: footer })
3285
+ /* @__PURE__ */ jsx84("div", { className: "oc-sheet-body", children }),
3286
+ footer != null && /* @__PURE__ */ jsx84("div", { className: "oc-sheet-footer", children: footer })
3252
3287
  ] }) })
3253
3288
  }
3254
3289
  );
3255
3290
  });
3256
3291
 
3257
3292
  // 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(
3293
+ import { forwardRef as forwardRef83 } from "react";
3294
+ import { Fragment as Fragment18, jsx as jsx85, jsxs as jsxs68 } from "react/jsx-runtime";
3295
+ var Sidebar = forwardRef83(function Sidebar2({ collapsed, right, floating, dark, header, footer, className, children, ...rest }, ref) {
3296
+ return /* @__PURE__ */ jsxs68(
3262
3297
  "aside",
3263
3298
  {
3264
3299
  ref,
3265
3300
  className: cx("oc-sidebar", collapsed && "oc-sidebar--collapsed", right && "oc-sidebar--right", floating && "oc-sidebar--floating", dark && "oc-sidebar--dark", className),
3266
3301
  ...rest,
3267
3302
  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 })
3303
+ header != null && /* @__PURE__ */ jsx85("div", { className: "oc-sidebar-header", children: header }),
3304
+ /* @__PURE__ */ jsx85("div", { className: "oc-sidebar-content", children }),
3305
+ footer != null && /* @__PURE__ */ jsx85("div", { className: "oc-sidebar-footer", children: footer })
3271
3306
  ]
3272
3307
  }
3273
3308
  );
3274
3309
  });
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 }),
3310
+ var SidebarGroup = forwardRef83(function SidebarGroup2({ label, className, children, ...rest }, ref) {
3311
+ return /* @__PURE__ */ jsxs68("div", { ref, className: cx("oc-sidebar-group", className), ...rest, children: [
3312
+ label != null && /* @__PURE__ */ jsx85("div", { className: "oc-sidebar-group-label", children: label }),
3278
3313
  children
3279
3314
  ] });
3280
3315
  });
3281
3316
  function SidebarSeparator({ className, ...rest }) {
3282
- return /* @__PURE__ */ jsx84("div", { className: cx("oc-sidebar-separator", className), ...rest });
3317
+ return /* @__PURE__ */ jsx85("div", { className: cx("oc-sidebar-separator", className), ...rest });
3283
3318
  }
3284
- var SidebarMenu = forwardRef82(function SidebarMenu2({ className, ...rest }, ref) {
3285
- return /* @__PURE__ */ jsx84("ul", { ref, className: cx("oc-sidebar-menu", className), ...rest });
3319
+ var SidebarMenu = forwardRef83(function SidebarMenu2({ className, ...rest }, ref) {
3320
+ return /* @__PURE__ */ jsx85("ul", { ref, className: cx("oc-sidebar-menu", className), ...rest });
3286
3321
  });
3287
3322
  function SidebarMenuItem(props) {
3288
- return /* @__PURE__ */ jsx84("li", { ...props });
3323
+ return /* @__PURE__ */ jsx85("li", { ...props });
3289
3324
  }
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: [
3325
+ var SidebarMenuButton = forwardRef83(function SidebarMenuButton2({ icon, badge, current, disabled, size = "md", label = true, className, children, href, ...rest }, ref) {
3326
+ const content = /* @__PURE__ */ jsxs68(Fragment18, { children: [
3292
3327
  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 })
3328
+ label ? /* @__PURE__ */ jsx85("span", { className: "oc-sidebar-menu-label", children }) : children,
3329
+ badge != null && /* @__PURE__ */ jsx85("span", { className: "oc-sidebar-menu-badge", children: badge })
3295
3330
  ] });
3296
3331
  const props = {
3297
3332
  className: cx("oc-sidebar-menu-button", size === "lg" && "oc-sidebar-menu-button--lg", className),
@@ -3299,13 +3334,13 @@ var SidebarMenuButton = forwardRef82(function SidebarMenuButton2({ icon, badge,
3299
3334
  "aria-disabled": disabled ? true : void 0
3300
3335
  };
3301
3336
  if (href === void 0) {
3302
- return /* @__PURE__ */ jsx84("button", { type: "button", ...props, ...rest, children: content });
3337
+ return /* @__PURE__ */ jsx85("button", { type: "button", ...props, ...rest, children: content });
3303
3338
  }
3304
- return /* @__PURE__ */ jsx84("a", { ref, href, ...props, ...rest, children: content });
3339
+ return /* @__PURE__ */ jsx85("a", { ref, href, ...props, ...rest, children: content });
3305
3340
  });
3306
- var SidebarCollapsible = forwardRef82(function SidebarCollapsible2({ icon, label, open, defaultOpen, onOpenChange, className, children, ...rest }, ref) {
3341
+ var SidebarCollapsible = forwardRef83(function SidebarCollapsible2({ icon, label, open, defaultOpen, onOpenChange, className, children, ...rest }, ref) {
3307
3342
  const [isOpen, setOpen] = useControllable(open, defaultOpen ?? false, onOpenChange);
3308
- return /* @__PURE__ */ jsxs67(
3343
+ return /* @__PURE__ */ jsxs68(
3309
3344
  "details",
3310
3345
  {
3311
3346
  ref,
@@ -3316,30 +3351,30 @@ var SidebarCollapsible = forwardRef82(function SidebarCollapsible2({ icon, label
3316
3351
  },
3317
3352
  ...rest,
3318
3353
  children: [
3319
- /* @__PURE__ */ jsxs67("summary", { className: "oc-sidebar-menu-button", children: [
3354
+ /* @__PURE__ */ jsxs68("summary", { className: "oc-sidebar-menu-button", children: [
3320
3355
  icon,
3321
- /* @__PURE__ */ jsx84("span", { className: "oc-sidebar-menu-label", children: label })
3356
+ /* @__PURE__ */ jsx85("span", { className: "oc-sidebar-menu-label", children: label })
3322
3357
  ] }),
3323
- /* @__PURE__ */ jsx84("ul", { className: "oc-sidebar-menu-sub", children })
3358
+ /* @__PURE__ */ jsx85("ul", { className: "oc-sidebar-menu-sub", children })
3324
3359
  ]
3325
3360
  }
3326
3361
  );
3327
3362
  });
3328
3363
 
3329
3364
  // 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 });
3365
+ import { forwardRef as forwardRef84 } from "react";
3366
+ import { jsx as jsx86 } from "react/jsx-runtime";
3367
+ var Skeleton = forwardRef84(function Skeleton2({ variant, className, ...rest }, ref) {
3368
+ return /* @__PURE__ */ jsx86("div", { ref, className: cx("oc-skeleton", variant && `oc-skeleton--${variant}`, className), ...rest });
3334
3369
  });
3335
3370
 
3336
3371
  // 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) {
3372
+ import { forwardRef as forwardRef85 } from "react";
3373
+ import { jsx as jsx87, jsxs as jsxs69 } from "react/jsx-runtime";
3374
+ var SortableRow = forwardRef85(function SortableRow2({ gripLabel, dragging, drop, locked, grabbed, onGripKeyDown, className, children, ...rest }, ref) {
3340
3375
  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(
3376
+ return /* @__PURE__ */ jsxs69("tr", { ref, className: cls, draggable: locked ? void 0 : true, ...rest, children: [
3377
+ /* @__PURE__ */ jsx87("td", { className: "oc-sortable-row-grip-cell", children: /* @__PURE__ */ jsx87(
3343
3378
  "button",
3344
3379
  {
3345
3380
  className: "oc-sortable-row-grip",
@@ -3355,64 +3390,87 @@ var SortableRow = forwardRef84(function SortableRow2({ gripLabel, dragging, drop
3355
3390
  });
3356
3391
 
3357
3392
  // 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 })
3393
+ import { forwardRef as forwardRef86 } from "react";
3394
+ import { jsx as jsx88, jsxs as jsxs70 } from "react/jsx-runtime";
3395
+ var StackCard = forwardRef86(function StackCard2({ title, href, meta, count, panel, thumb, className, ...rest }, ref) {
3396
+ return /* @__PURE__ */ jsxs70("article", { ref, className: cx("oc-stack-card", panel && "oc-stack-card--panel", className), ...rest, children: [
3397
+ /* @__PURE__ */ jsxs70("div", { className: "oc-stack-card__deck", children: [
3398
+ /* @__PURE__ */ jsx88(MediaThumb, { ...thumb }),
3399
+ count != null && /* @__PURE__ */ jsx88("span", { className: "oc-stack-card__count", children: count })
3365
3400
  ] }),
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 })
3401
+ /* @__PURE__ */ jsxs70("div", { children: [
3402
+ /* @__PURE__ */ jsx88("h3", { className: "oc-stack-card__title", children: /* @__PURE__ */ jsx88("a", { href, children: title }) }),
3403
+ meta != null && /* @__PURE__ */ jsx88("p", { className: "oc-stack-card__meta", children: meta })
3369
3404
  ] })
3370
3405
  ] });
3371
3406
  });
3372
3407
 
3373
3408
  // 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";
3409
+ import { forwardRef as forwardRef87 } from "react";
3410
+ import { Fragment as Fragment19, jsx as jsx89, jsxs as jsxs71 } from "react/jsx-runtime";
3376
3411
  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 }),
3412
+ var StackList = forwardRef87(function StackList2({ items, neutral = false, size = "default", className, ...rest }, ref) {
3413
+ 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: [
3414
+ item.icon != null && /* @__PURE__ */ jsx89("span", { className: "oc-stack-list__icon", "aria-hidden": "true", children: item.icon }),
3380
3415
  item.label
3381
3416
  ] }) : item }, i)) });
3382
3417
  });
3383
3418
 
3384
3419
  // 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 });
3420
+ import { forwardRef as forwardRef88 } from "react";
3421
+ import { Fragment as Fragment20, jsx as jsx90, jsxs as jsxs72 } from "react/jsx-runtime";
3422
+ var StatCardGrid = forwardRef88(function StatCardGrid2({ className, ...rest }, ref) {
3423
+ return /* @__PURE__ */ jsx90("div", { ref, className: cx("oc-stat-card-grid", className), ...rest });
3389
3424
  });
3390
3425
  function StatCard({ value, label, icon, trend, trendDirection = "up", tone = "default", stripe, href, onClick, className, ...rest }) {
3391
3426
  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: [
3427
+ const content = /* @__PURE__ */ jsxs72(Fragment20, { children: [
3428
+ icon != null && /* @__PURE__ */ jsx90("span", { className: "oc-stat-card-icon", "aria-hidden": "true", children: icon }),
3429
+ /* @__PURE__ */ jsxs72("span", { className: "oc-stat-card-body", children: [
3430
+ /* @__PURE__ */ jsxs72("span", { className: "oc-stat-card-value", children: [
3396
3431
  value,
3397
- trend != null && /* @__PURE__ */ jsx89("span", { className: `oc-stat-card-trend oc-stat-card-trend--${trendDirection}`, children: trend })
3432
+ trend != null && /* @__PURE__ */ jsx90("span", { className: `oc-stat-card-trend oc-stat-card-trend--${trendDirection}`, children: trend })
3398
3433
  ] }),
3399
- /* @__PURE__ */ jsx89("span", { className: "oc-stat-card-label", children: label })
3434
+ /* @__PURE__ */ jsx90("span", { className: "oc-stat-card-label", children: label })
3400
3435
  ] })
3401
3436
  ] });
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 });
3437
+ if (href !== void 0) return /* @__PURE__ */ jsx90("a", { className: cls, href, ...rest, children: content });
3438
+ if (onClick) return /* @__PURE__ */ jsx90("button", { className: cls, type: "button", onClick, ...rest, children: content });
3439
+ return /* @__PURE__ */ jsx90("div", { className: cls, ...rest, children: content });
3405
3440
  }
3406
3441
 
3442
+ // src/components/StatusDot.tsx
3443
+ import { forwardRef as forwardRef89 } from "react";
3444
+ import { jsx as jsx91, jsxs as jsxs73 } from "react/jsx-runtime";
3445
+ var StatusDot = forwardRef89(function StatusDot2({ tone = "default", size = "md", label, className, ...rest }, ref) {
3446
+ const a11y = label ? { role: "img", "aria-label": label } : { "aria-hidden": true };
3447
+ return /* @__PURE__ */ jsx91(
3448
+ "span",
3449
+ {
3450
+ ref,
3451
+ className: cx("oc-status-dot", tone !== "default" && `oc-status-dot--${tone}`, size !== "md" && `oc-status-dot--${size}`, className),
3452
+ ...a11y,
3453
+ ...rest
3454
+ }
3455
+ );
3456
+ });
3457
+ var Status = forwardRef89(function Status2({ tone = "default", meta, className, children, ...rest }, ref) {
3458
+ return /* @__PURE__ */ jsxs73("p", { ref, className: cx("oc-status", className), ...rest, children: [
3459
+ /* @__PURE__ */ jsx91(StatusDot, { tone }),
3460
+ /* @__PURE__ */ jsx91("span", { className: "oc-status__text", children }),
3461
+ meta != null && /* @__PURE__ */ jsx91("span", { className: "oc-status__meta", children: meta })
3462
+ ] });
3463
+ });
3464
+
3407
3465
  // 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) => {
3466
+ import { forwardRef as forwardRef90 } from "react";
3467
+ import { jsx as jsx92, jsxs as jsxs74 } from "react/jsx-runtime";
3468
+ var Stepper = forwardRef90(function Stepper2({ steps, current, horizontal, onStepChange, className, ...rest }, ref) {
3469
+ return /* @__PURE__ */ jsx92("ol", { ref, className: cx("oc-stepper", horizontal && "oc-stepper--horizontal", className), ...rest, children: steps.map((step, i) => {
3412
3470
  const done = i < current;
3413
3471
  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(
3472
+ const label = /* @__PURE__ */ jsx92("span", { className: "oc-stepper-label", children: step.label });
3473
+ return /* @__PURE__ */ jsx92("li", { children: /* @__PURE__ */ jsx92(
3416
3474
  "button",
3417
3475
  {
3418
3476
  className: cx("oc-stepper-item", done && "oc-stepper-item--done", active && "oc-stepper-item--active"),
@@ -3420,9 +3478,9 @@ var Stepper = forwardRef88(function Stepper2({ steps, current, horizontal, onSte
3420
3478
  "aria-current": active ? "step" : void 0,
3421
3479
  disabled: i > current,
3422
3480
  onClick: () => onStepChange?.(i),
3423
- children: step.meta != null ? /* @__PURE__ */ jsxs72("span", { children: [
3481
+ children: step.meta != null ? /* @__PURE__ */ jsxs74("span", { children: [
3424
3482
  label,
3425
- /* @__PURE__ */ jsx90("span", { className: "oc-stepper-meta", children: step.meta })
3483
+ /* @__PURE__ */ jsx92("span", { className: "oc-stepper-meta", children: step.meta })
3426
3484
  ] }) : label
3427
3485
  }
3428
3486
  ) }, i);
@@ -3430,20 +3488,20 @@ var Stepper = forwardRef88(function Stepper2({ steps, current, horizontal, onSte
3430
3488
  });
3431
3489
 
3432
3490
  // 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" })
3491
+ import { forwardRef as forwardRef91 } from "react";
3492
+ import { jsx as jsx93, jsxs as jsxs75 } from "react/jsx-runtime";
3493
+ var Switch = forwardRef91(function Switch2({ labelClassName, className, ...rest }, ref) {
3494
+ return /* @__PURE__ */ jsxs75("label", { className: cx("oc-switch", labelClassName), children: [
3495
+ /* @__PURE__ */ jsx93("input", { ref, type: "checkbox", role: "switch", className, ...rest }),
3496
+ /* @__PURE__ */ jsx93("span", { className: "oc-switch-track" })
3439
3497
  ] });
3440
3498
  });
3441
3499
 
3442
3500
  // 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(
3501
+ import { forwardRef as forwardRef92 } from "react";
3502
+ import { jsx as jsx94, jsxs as jsxs76 } from "react/jsx-runtime";
3503
+ var Table = forwardRef92(function Table2({ striped, compact, borderless, sticky, caption, wrapClassName, className, children, ...rest }, ref) {
3504
+ return /* @__PURE__ */ jsx94("div", { className: cx("oc-table-wrap", wrapClassName), children: /* @__PURE__ */ jsxs76(
3447
3505
  "table",
3448
3506
  {
3449
3507
  ref,
@@ -3457,84 +3515,84 @@ var Table = forwardRef90(function Table2({ striped, compact, borderless, sticky,
3457
3515
  ),
3458
3516
  ...rest,
3459
3517
  children: [
3460
- caption != null && /* @__PURE__ */ jsx92("caption", { children: caption }),
3518
+ caption != null && /* @__PURE__ */ jsx94("caption", { children: caption }),
3461
3519
  children
3462
3520
  ]
3463
3521
  }
3464
3522
  ) });
3465
3523
  });
3466
- var TableSort = forwardRef90(function TableSort2({ className, ...rest }, ref) {
3467
- return /* @__PURE__ */ jsx92("a", { ref, className: cx("oc-table-sort", className), ...rest });
3524
+ var TableSort = forwardRef92(function TableSort2({ className, ...rest }, ref) {
3525
+ return /* @__PURE__ */ jsx94("a", { ref, className: cx("oc-table-sort", className), ...rest });
3468
3526
  });
3469
3527
  function TableActions({ className, ...rest }) {
3470
- return /* @__PURE__ */ jsx92("td", { className: cx("oc-table-actions", className), ...rest });
3528
+ return /* @__PURE__ */ jsx94("td", { className: cx("oc-table-actions", className), ...rest });
3471
3529
  }
3472
3530
  function TableRowAction({ tone = "default", className, ...props }) {
3473
3531
  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 });
3532
+ if (props.href !== void 0) return /* @__PURE__ */ jsx94("a", { className: cls, ...props });
3533
+ return /* @__PURE__ */ jsx94("button", { type: "button", className: cls, ...props });
3476
3534
  }
3477
3535
  function TableEmpty({ colSpan, children, ...rest }) {
3478
- return /* @__PURE__ */ jsx92("tr", { className: "oc-table-empty", ...rest, children: /* @__PURE__ */ jsx92("td", { colSpan, children }) });
3536
+ return /* @__PURE__ */ jsx94("tr", { className: "oc-table-empty", ...rest, children: /* @__PURE__ */ jsx94("td", { colSpan, children }) });
3479
3537
  }
3480
3538
 
3481
3539
  // 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";
3540
+ import { forwardRef as forwardRef93, useId as useId29 } from "react";
3541
+ import { Fragment as Fragment21, jsx as jsx95, jsxs as jsxs77 } from "react/jsx-runtime";
3484
3542
  function TableActionIcon({ label, tone = "default", className, children, ...props }) {
3485
3543
  const cls = cx("oc-table-actions-icon", tone !== "default" && `oc-table-actions-icon--${tone}`, className);
3486
3544
  const common = { className: cls, "aria-label": label, title: label };
3487
3545
  if (props.href !== void 0) {
3488
- return /* @__PURE__ */ jsx93("a", { ...common, ...props, children });
3546
+ return /* @__PURE__ */ jsx95("a", { ...common, ...props, children });
3489
3547
  }
3490
- return /* @__PURE__ */ jsx93("button", { type: "button", ...common, ...props, children });
3548
+ return /* @__PURE__ */ jsx95("button", { type: "button", ...common, ...props, children });
3491
3549
  }
3492
- var TableActionsMenu = forwardRef91(function TableActionsMenu2({ label, id, className, children, ...rest }, ref) {
3550
+ var TableActionsMenu = forwardRef93(function TableActionsMenu2({ label, id, className, children, ...rest }, ref) {
3493
3551
  const auto = useId29();
3494
3552
  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 })
3553
+ return /* @__PURE__ */ jsxs77(Fragment21, { children: [
3554
+ /* @__PURE__ */ jsx95("button", { className: "oc-table-actions-more", type: "button", "aria-label": label, popoverTarget: menuId }),
3555
+ /* @__PURE__ */ jsx95("div", { ref, id: menuId, className: cx("oc-dropdown-menu", className), ...attrs({ popover: "" }), ...rest, children })
3498
3556
  ] });
3499
3557
  });
3500
3558
 
3501
3559
  // src/components/TableCompact.tsx
3502
- import { forwardRef as forwardRef92 } from "react";
3503
- import { jsx as jsx94, jsxs as jsxs76 } from "react/jsx-runtime";
3560
+ import { forwardRef as forwardRef94 } from "react";
3561
+ import { jsx as jsx96, jsxs as jsxs78 } from "react/jsx-runtime";
3504
3562
  var cellAttrs = (c) => ({
3505
3563
  "data-numeric": c.numeric ? "" : void 0,
3506
3564
  "data-wrap": c.wrap ? "" : void 0
3507
3565
  });
3508
- var TableCompact = forwardRef92(function TableCompact2({ columns, rows = [], footer, bordered, plain, className, children, ...rest }, ref) {
3566
+ var TableCompact = forwardRef94(function TableCompact2({ columns, rows = [], footer, bordered, plain, className, children, ...rest }, ref) {
3509
3567
  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)) }) })
3568
+ return /* @__PURE__ */ jsx96("div", { ref, className: cls, ...rest, children: columns ? /* @__PURE__ */ jsxs78("table", { className: "oc-table", children: [
3569
+ /* @__PURE__ */ jsx96("thead", { children: /* @__PURE__ */ jsx96("tr", { children: columns.map((c) => /* @__PURE__ */ jsx96("th", { ...cellAttrs(c), children: c.label }, c.key)) }) }),
3570
+ /* @__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)) }),
3571
+ footer && /* @__PURE__ */ jsx96("tfoot", { children: /* @__PURE__ */ jsx96("tr", { children: columns.map((c) => /* @__PURE__ */ jsx96("td", { ...cellAttrs(c), children: footer[c.key] }, c.key)) }) })
3514
3572
  ] }) : children });
3515
3573
  });
3516
3574
 
3517
3575
  // 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) {
3576
+ import { forwardRef as forwardRef95, useId as useId30 } from "react";
3577
+ import { jsx as jsx97, jsxs as jsxs79 } from "react/jsx-runtime";
3578
+ var Tabs = forwardRef95(function Tabs2({ tabs, value, defaultValue, onChange, name, className, ...rest }, ref) {
3521
3579
  const auto = useId30();
3522
3580
  const group = name ?? `oc-tabs-${auto.replace(/:/g, "")}`;
3523
3581
  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) }),
3582
+ return /* @__PURE__ */ jsxs79("div", { ref, className: cx("oc-tabset", className), ...rest, children: [
3583
+ /* @__PURE__ */ jsx97("div", { className: "oc-tab-list", role: "tablist", children: tabs.map((t) => /* @__PURE__ */ jsxs79("label", { className: "oc-tab-trigger", children: [
3584
+ /* @__PURE__ */ jsx97("input", { type: "radio", name: group, value: t.value, checked: current === t.value, onChange: () => setCurrent(t.value) }),
3527
3585
  " ",
3528
3586
  t.label
3529
3587
  ] }, t.value)) }),
3530
- tabs.map((t) => /* @__PURE__ */ jsx95("div", { className: "oc-tab-panel", children: t.content }, t.value))
3588
+ tabs.map((t) => /* @__PURE__ */ jsx97("div", { className: "oc-tab-panel", children: t.content }, t.value))
3531
3589
  ] });
3532
3590
  });
3533
3591
 
3534
3592
  // 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) {
3593
+ import { forwardRef as forwardRef96, useState as useState12 } from "react";
3594
+ import { Fragment as Fragment22, jsx as jsx98, jsxs as jsxs80 } from "react/jsx-runtime";
3595
+ var TagInput = forwardRef96(function TagInput2({ value, defaultValue = [], onChange, suggestions, placeholder = "Add tag...", label = "Add tag", disabled, className, ...rest }, ref) {
3538
3596
  const [tags, setTags] = useControllable(value, defaultValue, onChange);
3539
3597
  const [draft, setDraft] = useState12("");
3540
3598
  const add = (raw) => {
@@ -3552,14 +3610,14 @@ var TagInput = forwardRef94(function TagInput2({ value, defaultValue = [], onCha
3552
3610
  }
3553
3611
  };
3554
3612
  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: [
3613
+ return /* @__PURE__ */ jsxs80(Fragment22, { children: [
3614
+ /* @__PURE__ */ jsxs80("div", { ref, className: cx("oc-tag-input", className), ...rest, children: [
3615
+ tags.map((tag) => /* @__PURE__ */ jsxs80("span", { className: "oc-tag", children: [
3558
3616
  tag,
3559
3617
  " ",
3560
- /* @__PURE__ */ jsx96("button", { className: "oc-tag-remove", type: "button", "aria-label": `Remove ${tag}`, disabled, onClick: () => remove(tag), children: "\xD7" })
3618
+ /* @__PURE__ */ jsx98("button", { className: "oc-tag-remove", type: "button", "aria-label": `Remove ${tag}`, disabled, onClick: () => remove(tag), children: "\xD7" })
3561
3619
  ] }, tag)),
3562
- /* @__PURE__ */ jsx96(
3620
+ /* @__PURE__ */ jsx98(
3563
3621
  "input",
3564
3622
  {
3565
3623
  type: "text",
@@ -3573,43 +3631,43 @@ var TagInput = forwardRef94(function TagInput2({ value, defaultValue = [], onCha
3573
3631
  }
3574
3632
  )
3575
3633
  ] }),
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)) })
3634
+ 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
3635
  ] });
3578
3636
  });
3579
3637
 
3580
3638
  // 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) {
3639
+ import { forwardRef as forwardRef97, useEffect as useEffect8, useRef as useRef11 } from "react";
3640
+ import { jsx as jsx99, jsxs as jsxs81 } from "react/jsx-runtime";
3641
+ var TerminalLog = forwardRef97(function TerminalLog2({ lines, title, status, prompt, height, autoScroll = true, className, style, "aria-label": label = "Log output", ...rest }, ref) {
3584
3642
  const body = useRef11(null);
3585
3643
  useEffect8(() => {
3586
3644
  if (autoScroll && body.current) body.current.scrollTop = body.current.scrollHeight;
3587
3645
  }, [lines.length, autoScroll]);
3588
3646
  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 })
3647
+ return /* @__PURE__ */ jsxs81("div", { ref, className: cx("oc-terminal-log", className), style: { ...vars, ...style }, ...rest, children: [
3648
+ /* @__PURE__ */ jsxs81("div", { className: "oc-terminal-log__bar", children: [
3649
+ /* @__PURE__ */ jsx99("i", {}),
3650
+ /* @__PURE__ */ jsx99("i", {}),
3651
+ /* @__PURE__ */ jsx99("i", {}),
3652
+ title != null && /* @__PURE__ */ jsx99("span", { className: "oc-terminal-log__title", children: title }),
3653
+ status != null && /* @__PURE__ */ jsx99("span", { className: "oc-terminal-log__status", children: status })
3596
3654
  ] }),
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 })
3655
+ /* @__PURE__ */ jsxs81("div", { ref: body, className: "oc-terminal-log__body", role: "log", "aria-live": "polite", "aria-label": label, tabIndex: 0, children: [
3656
+ lines.map((l, i) => /* @__PURE__ */ jsxs81("p", { className: cx("oc-terminal-log__line", `oc-terminal-log__line--${l.level}`), children: [
3657
+ l.time && /* @__PURE__ */ jsx99("time", { className: "oc-terminal-log__time", children: l.time }),
3658
+ /* @__PURE__ */ jsx99("span", { className: "oc-terminal-log__level", children: l.label ?? (l.level === "success" ? "ok" : l.level) }),
3659
+ /* @__PURE__ */ jsx99("span", { className: "oc-terminal-log__msg", children: l.message })
3602
3660
  ] }, i)),
3603
- prompt != null && prompt !== false && /* @__PURE__ */ jsx97("p", { className: "oc-terminal-log__prompt", children: prompt === true ? null : prompt })
3661
+ prompt != null && prompt !== false && /* @__PURE__ */ jsx99("p", { className: "oc-terminal-log__prompt", children: prompt === true ? null : prompt })
3604
3662
  ] })
3605
3663
  ] });
3606
3664
  });
3607
3665
 
3608
3666
  // 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(
3667
+ import { forwardRef as forwardRef98 } from "react";
3668
+ import { jsx as jsx100 } from "react/jsx-runtime";
3669
+ var Textarea = forwardRef98(function Textarea2({ error, className, ...rest }, ref) {
3670
+ return /* @__PURE__ */ jsx100(
3613
3671
  "textarea",
3614
3672
  {
3615
3673
  ref,
@@ -3621,24 +3679,24 @@ var Textarea = forwardRef96(function Textarea2({ error, className, ...rest }, re
3621
3679
  });
3622
3680
 
3623
3681
  // 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";
3682
+ import { forwardRef as forwardRef99, useId as useId31 } from "react";
3683
+ import { jsx as jsx101, jsxs as jsxs82 } from "react/jsx-runtime";
3626
3684
  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) {
3685
+ 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
3686
  const auto = useId31();
3629
3687
  const group = name ?? `oc-theme-${auto.replace(/:/g, "")}`;
3630
3688
  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) }),
3689
+ const items = modes.map((m) => /* @__PURE__ */ jsxs82("label", { children: [
3690
+ /* @__PURE__ */ jsx101("input", { type: "radio", name: group, value: m, checked: current === m, onChange: () => setCurrent(m) }),
3633
3691
  " ",
3634
3692
  LABELS[m]
3635
3693
  ] }, 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 });
3694
+ 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
3695
  });
3638
3696
 
3639
3697
  // 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";
3698
+ import { forwardRef as forwardRef100, useId as useId32 } from "react";
3699
+ import { Fragment as Fragment23, jsx as jsx102, jsxs as jsxs83 } from "react/jsx-runtime";
3642
3700
  function formatTime24h(raw) {
3643
3701
  const digits = raw.replace(/\D/g, "").slice(0, 4);
3644
3702
  return digits.length <= 2 ? digits : `${digits.slice(0, 2)}:${digits.slice(2)}`;
@@ -3649,11 +3707,11 @@ function completeTime(text) {
3649
3707
  if (digits.length === 3) return `0${digits[0]}:${digits.slice(1)}`;
3650
3708
  return text;
3651
3709
  }
3652
- var TimeInput = forwardRef98(function TimeInput2({ value, defaultValue, onChange, slots, error, className, onBlur, placeholder = "hh:mm", ...rest }, ref) {
3710
+ var TimeInput = forwardRef100(function TimeInput2({ value, defaultValue, onChange, slots, error, className, onBlur, placeholder = "hh:mm", ...rest }, ref) {
3653
3711
  const listId = `oc-time-${useId32().replace(/:/g, "")}`;
3654
3712
  const [current, setCurrent] = useControllable(value, defaultValue ?? "", onChange);
3655
- return /* @__PURE__ */ jsxs81(Fragment23, { children: [
3656
- /* @__PURE__ */ jsx100(
3713
+ return /* @__PURE__ */ jsxs83(Fragment23, { children: [
3714
+ /* @__PURE__ */ jsx102(
3657
3715
  "input",
3658
3716
  {
3659
3717
  ref,
@@ -3678,37 +3736,60 @@ var TimeInput = forwardRef98(function TimeInput2({ value, defaultValue, onChange
3678
3736
  ...rest
3679
3737
  }
3680
3738
  ),
3681
- slots?.length ? /* @__PURE__ */ jsx100("datalist", { id: listId, children: slots.map((s) => /* @__PURE__ */ jsx100("option", { value: s }, s)) }) : null
3739
+ slots?.length ? /* @__PURE__ */ jsx102("datalist", { id: listId, children: slots.map((s) => /* @__PURE__ */ jsx102("option", { value: s }, s)) }) : null
3682
3740
  ] });
3683
3741
  });
3684
3742
 
3685
3743
  // 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 })
3744
+ import { forwardRef as forwardRef101 } from "react";
3745
+ import { jsx as jsx103, jsxs as jsxs84 } from "react/jsx-runtime";
3746
+ var Timeline = forwardRef101(function Timeline2({ items, size = "default", accent = false, className, ...rest }, ref) {
3747
+ 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: [
3748
+ 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 }),
3749
+ item.title != null && /* @__PURE__ */ jsx103("h3", { className: "oc-timeline__title", children: item.title }),
3750
+ item.text != null && /* @__PURE__ */ jsx103("p", { className: "oc-timeline__text", children: item.text })
3693
3751
  ] }, i)) });
3694
3752
  });
3695
3753
 
3754
+ // src/components/Titlebar.tsx
3755
+ import { forwardRef as forwardRef102 } from "react";
3756
+ import { jsx as jsx104, jsxs as jsxs85 } from "react/jsx-runtime";
3757
+ var TitlebarWindow = forwardRef102(function TitlebarWindow2({ className, ...rest }, ref) {
3758
+ return /* @__PURE__ */ jsx104("div", { ref, className: cx("oc-titlebar-window", className), ...rest });
3759
+ });
3760
+ var Titlebar = forwardRef102(function Titlebar2({ title, subtitle, icon, bordered, size = "md", className, children, ...rest }, ref) {
3761
+ return /* @__PURE__ */ jsxs85("header", { ref, className: cx("oc-titlebar", bordered && "oc-titlebar--bordered", size === "sm" && "oc-titlebar--sm", className), ...rest, children: [
3762
+ /* @__PURE__ */ jsxs85("div", { className: "oc-titlebar__main", children: [
3763
+ icon != null && /* @__PURE__ */ jsx104("span", { className: "oc-titlebar__icon", "aria-hidden": "true", children: icon }),
3764
+ title != null && /* @__PURE__ */ jsx104("span", { className: "oc-titlebar__title", children: title }),
3765
+ subtitle != null && /* @__PURE__ */ jsx104("span", { className: "oc-titlebar__subtitle", children: subtitle })
3766
+ ] }),
3767
+ children != null && /* @__PURE__ */ jsx104("div", { className: "oc-titlebar__actions", children })
3768
+ ] });
3769
+ });
3770
+ var TitlebarButton = forwardRef102(function TitlebarButton2({ label, close, className, type = "button", ...rest }, ref) {
3771
+ return /* @__PURE__ */ jsx104("button", { ref, type, "aria-label": label, title: label, className: cx("oc-titlebar__btn", close && "oc-titlebar__btn--close", className), ...rest });
3772
+ });
3773
+ var TitlebarBody = forwardRef102(function TitlebarBody2({ className, ...rest }, ref) {
3774
+ return /* @__PURE__ */ jsx104("div", { ref, className: cx("oc-titlebar-body", className), ...rest });
3775
+ });
3776
+
3696
3777
  // 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";
3778
+ 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";
3779
+ import { jsx as jsx105, jsxs as jsxs86 } from "react/jsx-runtime";
3699
3780
  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 })
3781
+ var Toast = forwardRef103(function Toast2({ variant = "info", title, description, icon, onDismiss, dismissLabel = "Dismiss", className, ...rest }, ref) {
3782
+ return /* @__PURE__ */ jsxs86("div", { ref, className: cx("oc-toast", `oc-toast--${variant}`, className), role: variant === "error" ? "alert" : "status", ...rest, children: [
3783
+ /* @__PURE__ */ jsx105("span", { className: "oc-toast-icon", "aria-hidden": "true", children: icon ?? GLYPHS3[variant] }),
3784
+ /* @__PURE__ */ jsxs86("div", { className: "oc-toast-body", children: [
3785
+ /* @__PURE__ */ jsx105("p", { className: "oc-toast-title", children: title }),
3786
+ description != null && /* @__PURE__ */ jsx105("p", { className: "oc-toast-description", children: description })
3706
3787
  ] }),
3707
- onDismiss && /* @__PURE__ */ jsx102("button", { className: "oc-toast-close", type: "button", "aria-label": dismissLabel, onClick: onDismiss, children: "\xD7" })
3788
+ onDismiss && /* @__PURE__ */ jsx105("button", { className: "oc-toast-close", type: "button", "aria-label": dismissLabel, onClick: onDismiss, children: "\xD7" })
3708
3789
  ] });
3709
3790
  });
3710
- var ToastContainer = forwardRef100(function ToastContainer2({ top, static: isStatic, className, ...rest }, ref) {
3711
- return /* @__PURE__ */ jsx102(
3791
+ var ToastContainer = forwardRef103(function ToastContainer2({ top, static: isStatic, className, ...rest }, ref) {
3792
+ return /* @__PURE__ */ jsx105(
3712
3793
  "div",
3713
3794
  {
3714
3795
  ref,
@@ -3748,9 +3829,9 @@ function ToastProvider({ children, top, duration = 5e3, limit = 5 }) {
3748
3829
  return () => map.forEach(clearTimeout);
3749
3830
  }, []);
3750
3831
  const api = useMemo2(() => ({ toast, dismiss }), [toast, dismiss]);
3751
- return /* @__PURE__ */ jsxs83(ToastContext.Provider, { value: api, children: [
3832
+ return /* @__PURE__ */ jsxs86(ToastContext.Provider, { value: api, children: [
3752
3833
  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)) })
3834
+ /* @__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
3835
  ] });
3755
3836
  }
3756
3837
  function useToast() {
@@ -3760,41 +3841,41 @@ function useToast() {
3760
3841
  }
3761
3842
 
3762
3843
  // 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) {
3844
+ import { forwardRef as forwardRef104, useId as useId33 } from "react";
3845
+ import { jsx as jsx106, jsxs as jsxs87 } from "react/jsx-runtime";
3846
+ var ToggleField = forwardRef104(function ToggleField2({ label, description, card, reverse, fieldClassName, className, ...rest }, ref) {
3766
3847
  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 })
3848
+ return /* @__PURE__ */ jsxs87("label", { className: cx("oc-toggle-field", card && "oc-toggle-field--card", reverse && "oc-toggle-field--reverse", fieldClassName), children: [
3849
+ /* @__PURE__ */ jsxs87("span", { className: "oc-toggle-field-text", children: [
3850
+ /* @__PURE__ */ jsx106("span", { className: "oc-toggle-field-label", children: label }),
3851
+ description != null && /* @__PURE__ */ jsx106("span", { className: "oc-toggle-field-description", id: descId, children: description })
3771
3852
  ] }),
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" })
3853
+ /* @__PURE__ */ jsxs87("span", { className: "oc-switch", children: [
3854
+ /* @__PURE__ */ jsx106("input", { ref, type: "checkbox", role: "switch", className, "aria-describedby": description != null ? descId : void 0, ...rest }),
3855
+ /* @__PURE__ */ jsx106("span", { className: "oc-switch-track" })
3775
3856
  ] })
3776
3857
  ] });
3777
3858
  });
3778
3859
 
3779
3860
  // 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) {
3861
+ import { forwardRef as forwardRef105 } from "react";
3862
+ import { jsx as jsx107, jsxs as jsxs88 } from "react/jsx-runtime";
3863
+ var Tooltip = forwardRef105(function Tooltip2({ content, multiline, heading, side, className, children, ...rest }, ref) {
3783
3864
  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: [
3865
+ if (!heading) return /* @__PURE__ */ jsx107("span", { ref, className: classes, "data-tooltip": content, ...rest, children });
3866
+ return /* @__PURE__ */ jsxs88("span", { ref, className: classes, ...rest, children: [
3786
3867
  children,
3787
- /* @__PURE__ */ jsxs85("span", { className: "oc-tooltip__content", role: "tooltip", children: [
3788
- /* @__PURE__ */ jsx104("span", { className: "oc-tooltip__title", children: heading }),
3868
+ /* @__PURE__ */ jsxs88("span", { className: "oc-tooltip__content", role: "tooltip", children: [
3869
+ /* @__PURE__ */ jsx107("span", { className: "oc-tooltip__title", children: heading }),
3789
3870
  content
3790
3871
  ] })
3791
3872
  ] });
3792
3873
  });
3793
3874
 
3794
3875
  // 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) {
3876
+ import { forwardRef as forwardRef106, useEffect as useEffect10, useState as useState14 } from "react";
3877
+ import { jsx as jsx108 } from "react/jsx-runtime";
3878
+ var TopProgress = forwardRef106(function TopProgress2({ active = true, tone = "default", large, static: inFlow, fadeMs = 400, className, ...rest }, ref) {
3798
3879
  const [phase, setPhase] = useState14(active ? "active" : "hidden");
3799
3880
  useEffect10(() => {
3800
3881
  if (active) {
@@ -3813,158 +3894,158 @@ var TopProgress = forwardRef103(function TopProgress2({ active = true, tone = "d
3813
3894
  phase === "done" && "is-done",
3814
3895
  className
3815
3896
  );
3816
- return /* @__PURE__ */ jsx105("progress", { ref, className: cls, hidden: phase === "hidden", ...rest });
3897
+ return /* @__PURE__ */ jsx108("progress", { ref, className: cls, hidden: phase === "hidden", ...rest });
3817
3898
  });
3818
3899
 
3819
3900
  // 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";
3901
+ import { forwardRef as forwardRef107 } from "react";
3902
+ import { Fragment as Fragment24, jsx as jsx109, jsxs as jsxs89 } from "react/jsx-runtime";
3822
3903
  function RowContent({ item }) {
3823
3904
  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 })
3905
+ return /* @__PURE__ */ jsxs89(Fragment24, { children: [
3906
+ item.icon != null && /* @__PURE__ */ jsx109("span", { className: "oc-tree-icon", "aria-hidden": "true", children: item.icon }),
3907
+ 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 }),
3908
+ item.count != null && /* @__PURE__ */ jsx109("span", { className: "oc-tree-count", children: item.count }),
3909
+ item.actions != null && /* @__PURE__ */ jsx109("span", { className: "oc-tree-actions", children: item.actions })
3829
3910
  ] });
3830
3911
  }
3831
3912
  function TreeNode({ item }) {
3832
3913
  const rowCurrent = item.current && item.href === void 0 ? "true" : void 0;
3833
3914
  const rowCls = cx("oc-tree-row", item.muted && "is-muted");
3834
3915
  if (!item.children?.length) {
3835
- return /* @__PURE__ */ jsx106("li", { children: /* @__PURE__ */ jsx106("div", { className: rowCls, "aria-current": rowCurrent, children: /* @__PURE__ */ jsx106(RowContent, { item }) }) });
3916
+ return /* @__PURE__ */ jsx109("li", { children: /* @__PURE__ */ jsx109("div", { className: rowCls, "aria-current": rowCurrent, children: /* @__PURE__ */ jsx109(RowContent, { item }) }) });
3836
3917
  }
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 })
3918
+ return /* @__PURE__ */ jsx109("li", { children: /* @__PURE__ */ jsxs89("details", { className: "oc-tree-node", open: item.open, children: [
3919
+ /* @__PURE__ */ jsx109("summary", { className: rowCls, "aria-current": rowCurrent, children: /* @__PURE__ */ jsx109(RowContent, { item }) }),
3920
+ /* @__PURE__ */ jsx109(TreeList, { items: item.children })
3840
3921
  ] }) });
3841
3922
  }
3842
3923
  function TreeList({ items }) {
3843
- return /* @__PURE__ */ jsx106("ul", { className: "oc-tree-list", children: items.map((item, i) => /* @__PURE__ */ jsx106(TreeNode, { item }, i)) });
3924
+ return /* @__PURE__ */ jsx109("ul", { className: "oc-tree-list", children: items.map((item, i) => /* @__PURE__ */ jsx109(TreeNode, { item }, i)) });
3844
3925
  }
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 })
3926
+ var Tree = forwardRef107(function Tree2({ items, head, headActions, quiet, flush, className, ...rest }, ref) {
3927
+ return /* @__PURE__ */ jsxs89("div", { ref, className: cx("oc-tree", quiet && "oc-tree--quiet", flush && "oc-tree--flush", className), ...rest, children: [
3928
+ head != null && /* @__PURE__ */ jsxs89("div", { className: "oc-tree-row oc-tree-head", children: [
3929
+ /* @__PURE__ */ jsx109("span", { className: "oc-tree-label", children: head }),
3930
+ headActions != null && /* @__PURE__ */ jsx109("span", { className: "oc-tree-actions", children: headActions })
3850
3931
  ] }),
3851
- /* @__PURE__ */ jsx106(TreeList, { items })
3932
+ /* @__PURE__ */ jsx109(TreeList, { items })
3852
3933
  ] });
3853
3934
  });
3854
3935
 
3855
3936
  // 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) {
3937
+ import { forwardRef as forwardRef108 } from "react";
3938
+ import { Fragment as Fragment25, jsx as jsx110, jsxs as jsxs90 } from "react/jsx-runtime";
3939
+ var UpgradeBanner = forwardRef108(function UpgradeBanner2({ title, plan, text, usage, icon, actions, premium, compact, onDismiss, dismissLabel = "Dismiss", className, children, ...rest }, ref) {
3859
3940
  const cls = cx("oc-upgrade-banner", premium && "oc-upgrade-banner--premium", compact && "oc-upgrade-banner--compact", className);
3860
3941
  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: [
3942
+ return /* @__PURE__ */ jsxs90("aside", { ref, className: cls, ...rest, children: [
3943
+ icon != null && /* @__PURE__ */ jsx110("span", { className: "oc-upgrade-banner-icon", "aria-hidden": "true", children: icon }),
3944
+ /* @__PURE__ */ jsxs90("div", { className: "oc-upgrade-banner-body", children: [
3945
+ /* @__PURE__ */ jsxs90("p", { className: "oc-upgrade-banner-title", children: [
3865
3946
  title,
3866
- plan != null && /* @__PURE__ */ jsxs87(Fragment25, { children: [
3947
+ plan != null && /* @__PURE__ */ jsxs90(Fragment25, { children: [
3867
3948
  " ",
3868
- /* @__PURE__ */ jsx107("span", { className: "oc-upgrade-banner-plan", children: plan })
3949
+ /* @__PURE__ */ jsx110("span", { className: "oc-upgrade-banner-plan", children: plan })
3869
3950
  ] })
3870
3951
  ] }),
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: [
3952
+ body != null && /* @__PURE__ */ jsx110("p", { className: "oc-upgrade-banner-text", children: body }),
3953
+ usage && /* @__PURE__ */ jsxs90("div", { className: "oc-upgrade-banner-usage", children: [
3954
+ /* @__PURE__ */ jsx110("span", { children: usage.label }),
3955
+ /* @__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
3956
  usage.value,
3876
3957
  " of ",
3877
3958
  usage.max
3878
3959
  ] }),
3879
- /* @__PURE__ */ jsxs87("span", { children: [
3960
+ /* @__PURE__ */ jsxs90("span", { children: [
3880
3961
  usage.value,
3881
3962
  " / ",
3882
3963
  usage.max
3883
3964
  ] })
3884
3965
  ] })
3885
3966
  ] }),
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" })
3967
+ actions != null && /* @__PURE__ */ jsx110("div", { className: "oc-upgrade-banner-actions", children: actions }),
3968
+ onDismiss && /* @__PURE__ */ jsx110("button", { className: "oc-upgrade-banner-dismiss", type: "button", "aria-label": dismissLabel, onClick: onDismiss, children: "\xD7" })
3888
3969
  ] });
3889
3970
  });
3890
3971
 
3891
3972
  // 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 })
3973
+ import { forwardRef as forwardRef109 } from "react";
3974
+ import { jsx as jsx111, jsxs as jsxs91 } from "react/jsx-runtime";
3975
+ var User = forwardRef109(function User2({ name, email, initials, avatarSrc, avatarSize = "md", className, ...rest }, ref) {
3976
+ return /* @__PURE__ */ jsxs91("div", { ref, className: cx("oc-user", className), ...rest, children: [
3977
+ /* @__PURE__ */ jsx111(Avatar, { size: avatarSize, src: avatarSrc, children: initials }),
3978
+ /* @__PURE__ */ jsxs91("span", { className: "oc-user-text", children: [
3979
+ /* @__PURE__ */ jsx111("span", { className: "oc-user-name", children: name }),
3980
+ email != null && /* @__PURE__ */ jsx111("span", { className: "oc-user-email", children: email })
3900
3981
  ] })
3901
3982
  ] });
3902
3983
  });
3903
3984
 
3904
3985
  // 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) {
3986
+ import { forwardRef as forwardRef110 } from "react";
3987
+ import { jsx as jsx112, jsxs as jsxs92 } from "react/jsx-runtime";
3988
+ var VersionBanner = forwardRef110(function VersionBanner2({ version, text, short = "New version", actionLabel = "Reload", onReload, tone = "warning", floating, className, ...rest }, ref) {
3908
3989
  if (!version) return null;
3909
3990
  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 })
3991
+ return /* @__PURE__ */ jsxs92("div", { ref, className: cls, role: "status", ...rest, children: [
3992
+ /* @__PURE__ */ jsx112("span", { className: "oc-version-banner-dot", "aria-hidden": "true" }),
3993
+ /* @__PURE__ */ jsx112("span", { className: "oc-version-banner-text", children: text ?? `New version (${version}) available - reload the page` }),
3994
+ /* @__PURE__ */ jsx112("span", { className: "oc-version-banner-short", children: short }),
3995
+ 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
3996
  ] });
3916
3997
  });
3917
3998
 
3918
3999
  // 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) {
4000
+ import { forwardRef as forwardRef111, Fragment as Fragment26 } from "react";
4001
+ import { jsx as jsx113 } from "react/jsx-runtime";
4002
+ var Watermark = forwardRef111(function Watermark2({ text = "Concept", variant = "diagonal", tone = "default", repeat = 12, mono = false, className, ...rest }, ref) {
3922
4003
  const classes = cx("oc-watermark", variant !== "diagonal" && `oc-watermark--${variant}`, tone !== "default" && `oc-watermark--${tone}`, mono && "oc-watermark--mono", className);
3923
4004
  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)) });
4005
+ 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
4006
  });
3926
4007
 
3927
4008
  // 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) {
4009
+ import { forwardRef as forwardRef112, useId as useId34 } from "react";
4010
+ import { jsx as jsx114, jsxs as jsxs93 } from "react/jsx-runtime";
4011
+ var BlockAboutTimeline = forwardRef112(function BlockAboutTimeline2({ eyebrow, title, children, timeline = [], image, imageAlt = "", badge, reverse = false, className, ...rest }, ref) {
3931
4012
  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 })
4013
+ 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: [
4014
+ /* @__PURE__ */ jsxs93("figure", { className: "oc-block-about-media", "aria-hidden": image ? void 0 : true, children: [
4015
+ image && /* @__PURE__ */ jsx114("img", { src: image, alt: imageAlt, loading: "lazy" }),
4016
+ badge != null && /* @__PURE__ */ jsx114("span", { className: "oc-block-about-badge", children: badge })
3936
4017
  ] }),
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 }),
4018
+ /* @__PURE__ */ jsxs93("div", { className: "oc-block-about-copy", children: [
4019
+ eyebrow != null && /* @__PURE__ */ jsx114("p", { className: "oc-eyebrow", children: eyebrow }),
4020
+ /* @__PURE__ */ jsx114("h2", { className: "oc-block-about-title", id: titleId, children: title }),
3940
4021
  children,
3941
- timeline.length > 0 && /* @__PURE__ */ jsx111(Timeline, { items: timeline })
4022
+ timeline.length > 0 && /* @__PURE__ */ jsx114(Timeline, { items: timeline })
3942
4023
  ] })
3943
4024
  ] }) });
3944
4025
  });
3945
4026
 
3946
4027
  // 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 })
4028
+ import { forwardRef as forwardRef113 } from "react";
4029
+ import { jsx as jsx115, jsxs as jsxs94 } from "react/jsx-runtime";
4030
+ var BlockAppHeader = forwardRef113(function BlockAppHeader2({ toggleFor, toggleLabel = "Toggle sidebar", nav, navLabel = "Module navigation", actions, title, className, ...rest }, ref) {
4031
+ return /* @__PURE__ */ jsxs94("header", { ref, className: cx("oc-block-appbar", className), ...rest, children: [
4032
+ toggleFor && /* @__PURE__ */ jsxs94("label", { className: "oc-btn oc-btn--ghost oc-btn--icon", htmlFor: toggleFor, title: toggleLabel, children: [
4033
+ /* @__PURE__ */ jsx115(Icon, { d: "M4 6h16M4 12h16M4 18h16" }),
4034
+ /* @__PURE__ */ jsx115("span", { className: "oc-visually-hidden", children: toggleLabel })
3954
4035
  ] }),
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 })
4036
+ title != null && /* @__PURE__ */ jsx115("span", { className: "oc-block-appbar-title", children: title }),
4037
+ 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)) }),
4038
+ actions != null && /* @__PURE__ */ jsx115("div", { className: "oc-block-appbar-actions", children: actions })
3958
4039
  ] });
3959
4040
  });
3960
4041
 
3961
4042
  // 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) {
4043
+ import { forwardRef as forwardRef114, useId as useId35 } from "react";
4044
+ import { jsx as jsx116, jsxs as jsxs95 } from "react/jsx-runtime";
4045
+ var BlockAppShell = forwardRef114(function BlockAppShell2({ sidebar, header, breadcrumbs, toggleId, height, className, style, children, ...rest }, ref) {
3965
4046
  const auto = useId35();
3966
4047
  const id = toggleId ?? `oc-shell-toggle-${auto.replace(/:/g, "")}`;
3967
- return /* @__PURE__ */ jsxs92(
4048
+ return /* @__PURE__ */ jsxs95(
3968
4049
  "div",
3969
4050
  {
3970
4051
  ref,
@@ -3972,14 +4053,14 @@ var BlockAppShell = forwardRef111(function BlockAppShell2({ sidebar, header, bre
3972
4053
  style: height ? { "--oc-block-shell-height": height, ...style } : style,
3973
4054
  ...rest,
3974
4055
  children: [
3975
- /* @__PURE__ */ jsx113("input", { className: "oc-block-shell-toggle", type: "checkbox", id, "aria-label": "Collapse sidebar" }),
4056
+ /* @__PURE__ */ jsx116("input", { className: "oc-block-shell-toggle", type: "checkbox", id, "aria-label": "Collapse sidebar" }),
3976
4057
  sidebar,
3977
- /* @__PURE__ */ jsxs92("div", { className: "oc-block-shell-main", children: [
4058
+ /* @__PURE__ */ jsxs95("div", { className: "oc-block-shell-main", children: [
3978
4059
  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)
4060
+ 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(
4061
+ (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
4062
  ) }) }) }),
3982
- /* @__PURE__ */ jsx113("main", { className: "oc-block-shell-content", children })
4063
+ /* @__PURE__ */ jsx116("main", { className: "oc-block-shell-content", children })
3983
4064
  ] })
3984
4065
  ]
3985
4066
  }
@@ -3987,41 +4068,41 @@ var BlockAppShell = forwardRef111(function BlockAppShell2({ sidebar, header, bre
3987
4068
  });
3988
4069
 
3989
4070
  // 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) {
4071
+ import { forwardRef as forwardRef115, useId as useId36 } from "react";
4072
+ import { Fragment as Fragment27, jsx as jsx117, jsxs as jsxs96 } from "react/jsx-runtime";
4073
+ var BlockAuth = forwardRef115(function BlockAuth2({ title = "Sign in", subtitle, submitLabel = "Sign in", socialLabel, dividerLabel = "or continue with", footer, onSubmit, onSocial, className, ...rest }, ref) {
3993
4074
  const id = useId36().replace(/:/g, "");
3994
4075
  const submit = (e) => {
3995
4076
  e.preventDefault();
3996
4077
  const data = new FormData(e.currentTarget);
3997
4078
  onSubmit?.({ email: String(data.get("email") ?? ""), password: String(data.get("password") ?? "") });
3998
4079
  };
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" })
4080
+ return /* @__PURE__ */ jsxs96("div", { ref, className: cx("oc-block-auth", className), ...rest, children: [
4081
+ /* @__PURE__ */ jsxs96("form", { className: "oc-block-auth-card", onSubmit: submit, children: [
4082
+ /* @__PURE__ */ jsx117("h2", { children: title }),
4083
+ subtitle != null && /* @__PURE__ */ jsx117("p", { className: "oc-block-subtitle", children: subtitle }),
4084
+ /* @__PURE__ */ jsxs96("div", { className: "oc-form-group", children: [
4085
+ /* @__PURE__ */ jsx117("label", { className: "oc-label", htmlFor: `${id}-email`, children: "Email" }),
4086
+ /* @__PURE__ */ jsx117("input", { className: "oc-input", id: `${id}-email`, name: "email", type: "email", placeholder: "name@company.com" })
4006
4087
  ] }),
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: "********" })
4088
+ /* @__PURE__ */ jsxs96("div", { className: "oc-form-group", children: [
4089
+ /* @__PURE__ */ jsx117("label", { className: "oc-label", htmlFor: `${id}-password`, children: "Password" }),
4090
+ /* @__PURE__ */ jsx117("input", { className: "oc-input", id: `${id}-password`, name: "password", type: "password", placeholder: "********" })
4010
4091
  ] }),
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 })
4092
+ /* @__PURE__ */ jsx117("button", { className: "oc-btn", type: "submit", style: { width: "100%" }, children: submitLabel }),
4093
+ socialLabel != null && /* @__PURE__ */ jsxs96(Fragment27, { children: [
4094
+ /* @__PURE__ */ jsx117("div", { className: "oc-block-auth-divider", children: dividerLabel }),
4095
+ /* @__PURE__ */ jsx117("button", { className: "oc-btn oc-btn--outline", type: "button", style: { width: "100%" }, onClick: onSocial, children: socialLabel })
4015
4096
  ] })
4016
4097
  ] }),
4017
- footer != null && /* @__PURE__ */ jsx114("div", { className: "oc-block-auth-footer", children: footer })
4098
+ footer != null && /* @__PURE__ */ jsx117("div", { className: "oc-block-auth-footer", children: footer })
4018
4099
  ] });
4019
4100
  });
4020
4101
 
4021
4102
  // 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({
4103
+ import { forwardRef as forwardRef116, useId as useId37 } from "react";
4104
+ import { jsx as jsx118, jsxs as jsxs97 } from "react/jsx-runtime";
4105
+ var BlockAuthSplit = forwardRef116(function BlockAuthSplit2({
4025
4106
  logo,
4026
4107
  logoHref = "#",
4027
4108
  quote,
@@ -4046,60 +4127,60 @@ var BlockAuthSplit = forwardRef113(function BlockAuthSplit2({
4046
4127
  remember: data.get("remember") != null
4047
4128
  });
4048
4129
  };
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 })
4130
+ return /* @__PURE__ */ jsxs97("div", { ref, className: cx("oc-block-authsplit", className), ...rest, children: [
4131
+ /* @__PURE__ */ jsxs97("aside", { className: "oc-block-authsplit-brand", children: [
4132
+ logo != null && /* @__PURE__ */ jsx118("a", { className: "oc-block-authsplit-logo", href: logoHref, children: logo }),
4133
+ quote != null && /* @__PURE__ */ jsxs97("blockquote", { className: "oc-block-authsplit-quote", children: [
4134
+ /* @__PURE__ */ jsx118("p", { children: quote }),
4135
+ quoteAuthor != null && /* @__PURE__ */ jsx118("footer", { children: quoteAuthor })
4055
4136
  ] })
4056
4137
  ] }),
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 })
4138
+ /* @__PURE__ */ jsx118("div", { className: "oc-block-authsplit-form", children: /* @__PURE__ */ jsxs97("form", { className: "oc-block-authsplit-card", onSubmit: submit, children: [
4139
+ /* @__PURE__ */ jsx118("h1", { className: "oc-block-authsplit-title", children: title }),
4140
+ subtitle != null && /* @__PURE__ */ jsx118("p", { className: "oc-block-authsplit-subtitle", children: subtitle }),
4141
+ /* @__PURE__ */ jsxs97("div", { className: "oc-block-authsplit-fields", children: [
4142
+ /* @__PURE__ */ jsxs97("div", { className: "oc-field", children: [
4143
+ /* @__PURE__ */ jsx118("label", { className: "oc-field-label", htmlFor: `${id}-email`, children: "E-mail" }),
4144
+ /* @__PURE__ */ jsx118("input", { className: "oc-input", id: `${id}-email`, name: "email", type: "email", autoComplete: "username", placeholder: "name@company.com", required: true })
4064
4145
  ] }),
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 })
4146
+ /* @__PURE__ */ jsxs97("div", { className: "oc-field", children: [
4147
+ /* @__PURE__ */ jsx118("label", { className: "oc-field-label", htmlFor: `${id}-password`, children: "Password" }),
4148
+ /* @__PURE__ */ jsx118(PasswordInput, { id: `${id}-password`, name: "password", required: true })
4068
4149
  ] }),
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" }),
4150
+ /* @__PURE__ */ jsxs97("div", { className: "oc-block-authsplit-row", children: [
4151
+ /* @__PURE__ */ jsxs97("label", { children: [
4152
+ /* @__PURE__ */ jsx118("input", { className: "oc-checkbox", type: "checkbox", name: "remember" }),
4072
4153
  " ",
4073
4154
  rememberLabel
4074
4155
  ] }),
4075
- /* @__PURE__ */ jsx115("a", { className: "oc-link", href: forgotHref, children: forgotLabel })
4156
+ /* @__PURE__ */ jsx118("a", { className: "oc-link", href: forgotHref, children: forgotLabel })
4076
4157
  ] }),
4077
- /* @__PURE__ */ jsx115("button", { className: "oc-btn", type: "submit", style: { width: "100%" }, children: submitLabel })
4158
+ /* @__PURE__ */ jsx118("button", { className: "oc-btn", type: "submit", style: { width: "100%" }, children: submitLabel })
4078
4159
  ] })
4079
4160
  ] }) })
4080
4161
  ] });
4081
4162
  });
4082
4163
 
4083
4164
  // 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) {
4165
+ import { forwardRef as forwardRef117, useId as useId38 } from "react";
4166
+ import { jsx as jsx119, jsxs as jsxs98 } from "react/jsx-runtime";
4167
+ var BlockContactGrid = forwardRef117(function BlockContactGrid2({ eyebrow, title, lead, cards, plain = false, className, ...rest }, ref) {
4087
4168
  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 })
4169
+ 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: [
4170
+ (eyebrow != null || title != null || lead != null) && /* @__PURE__ */ jsxs98("div", { className: "oc-block-contact-head", children: [
4171
+ eyebrow != null && /* @__PURE__ */ jsx119("p", { className: "oc-eyebrow", children: eyebrow }),
4172
+ title != null && /* @__PURE__ */ jsx119("h2", { className: "oc-block-contact-heading", id: titleId, children: title }),
4173
+ lead != null && /* @__PURE__ */ jsx119("p", { className: "oc-block-contact-lead", children: lead })
4093
4174
  ] }),
4094
- /* @__PURE__ */ jsx116("div", { className: "oc-block-contact-grid", children: cards.map((card, i) => {
4175
+ /* @__PURE__ */ jsx119("div", { className: "oc-block-contact-grid", children: cards.map((card, i) => {
4095
4176
  const Card2 = card.address ? "address" : "article";
4096
4177
  const Title = card.address ? "span" : "h3";
4097
4178
  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 }),
4179
+ return /* @__PURE__ */ jsxs98(Card2, { className: "oc-block-contact-card", children: [
4180
+ 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 }),
4181
+ /* @__PURE__ */ jsx119(Title, { className: "oc-block-contact-title", children: card.title }),
4101
4182
  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)
4183
+ (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
4184
  )
4104
4185
  ] }, i);
4105
4186
  }) })
@@ -4107,160 +4188,160 @@ var BlockContactGrid = forwardRef114(function BlockContactGrid2({ eyebrow, title
4107
4188
  });
4108
4189
 
4109
4190
  // 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 })
4191
+ import { forwardRef as forwardRef118 } from "react";
4192
+ import { jsx as jsx120, jsxs as jsxs99 } from "react/jsx-runtime";
4193
+ var BlockCta = forwardRef118(function BlockCta2({ title, description, actions, className, ...rest }, ref) {
4194
+ return /* @__PURE__ */ jsxs99("div", { ref, className: cx("oc-block-cta", className), ...rest, children: [
4195
+ /* @__PURE__ */ jsx120("h2", { children: title }),
4196
+ description != null && /* @__PURE__ */ jsx120("p", { children: description }),
4197
+ actions != null && /* @__PURE__ */ jsx120("div", { className: "oc-block-hero-actions", children: actions })
4117
4198
  ] });
4118
4199
  });
4119
4200
 
4120
4201
  // 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 })
4202
+ import { forwardRef as forwardRef119 } from "react";
4203
+ import { jsx as jsx121, jsxs as jsxs100 } from "react/jsx-runtime";
4204
+ var BlockDataTable = forwardRef119(function BlockDataTable2({ title, description, actions, toolbar, bulk, footer, className, children, ...rest }, ref) {
4205
+ return /* @__PURE__ */ jsxs100("section", { ref, className: cx("oc-card oc-block-datatable", className), ...rest, children: [
4206
+ /* @__PURE__ */ jsxs100("header", { className: "oc-block-datatable-head", children: [
4207
+ /* @__PURE__ */ jsxs100("div", { children: [
4208
+ title != null && /* @__PURE__ */ jsx121("h2", { className: "oc-block-datatable-title", children: title }),
4209
+ description != null && /* @__PURE__ */ jsx121("p", { className: "oc-block-datatable-description", children: description })
4129
4210
  ] }),
4130
- actions != null && /* @__PURE__ */ jsx118("div", { children: actions })
4211
+ actions != null && /* @__PURE__ */ jsx121("div", { children: actions })
4131
4212
  ] }),
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 }),
4213
+ /* @__PURE__ */ jsxs100("div", { className: "oc-block-datatable-body", children: [
4214
+ toolbar != null && /* @__PURE__ */ jsx121("div", { className: "oc-table-toolbar", children: toolbar }),
4215
+ bulk != null && /* @__PURE__ */ jsx121("div", { className: "oc-block-datatable-bulk", children: bulk }),
4135
4216
  children,
4136
- footer != null && /* @__PURE__ */ jsx118("div", { className: "oc-table-footer", children: footer })
4217
+ footer != null && /* @__PURE__ */ jsx121("div", { className: "oc-table-footer", children: footer })
4137
4218
  ] })
4138
4219
  ] });
4139
4220
  });
4140
4221
  function BlockDataTableSpacer() {
4141
- return /* @__PURE__ */ jsx118("span", { className: "oc-table-toolbar-spacer" });
4222
+ return /* @__PURE__ */ jsx121("span", { className: "oc-table-toolbar-spacer" });
4142
4223
  }
4143
4224
  function FilterPills({ className, ...rest }) {
4144
- return /* @__PURE__ */ jsx118("div", { className: cx("oc-filter-pills", className), role: "group", ...rest });
4225
+ return /* @__PURE__ */ jsx121("div", { className: cx("oc-filter-pills", className), role: "group", ...rest });
4145
4226
  }
4146
4227
  function FilterPill({ current, className, ...rest }) {
4147
- return /* @__PURE__ */ jsx118("a", { className: cx("oc-filter-pill", className), "aria-current": current ? "true" : void 0, ...rest });
4228
+ return /* @__PURE__ */ jsx121("a", { className: cx("oc-filter-pill", className), "aria-current": current ? "true" : void 0, ...rest });
4148
4229
  }
4149
4230
 
4150
4231
  // 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) {
4232
+ import { forwardRef as forwardRef120, useId as useId39 } from "react";
4233
+ import { jsx as jsx122, jsxs as jsxs101 } from "react/jsx-runtime";
4234
+ var BlockFaq = forwardRef120(function BlockFaq2({ eyebrow, title, lead, items, openIndex = 0, more, split = false, name, className, ...rest }, ref) {
4154
4235
  const auto = useId39().replace(/[^\w-]/g, "");
4155
4236
  const group = name ?? `oc-faq-${auto}`;
4156
4237
  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 })
4238
+ 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: [
4239
+ /* @__PURE__ */ jsxs101("div", { className: "oc-block-faq-head", children: [
4240
+ eyebrow != null && /* @__PURE__ */ jsx122("p", { className: "oc-eyebrow", children: eyebrow }),
4241
+ /* @__PURE__ */ jsx122("h2", { className: "oc-block-faq-title", id: titleId, children: title }),
4242
+ lead != null && /* @__PURE__ */ jsx122("p", { className: "oc-block-faq-lead", children: lead })
4162
4243
  ] }),
4163
- /* @__PURE__ */ jsx119("div", { className: "oc-accordion oc-block-faq-list", children: items.map((item, i) => (
4244
+ /* @__PURE__ */ jsx122("div", { className: "oc-accordion oc-block-faq-list", children: items.map((item, i) => (
4164
4245
  // "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 })
4246
+ /* @__PURE__ */ jsxs101("details", { className: "oc-accordion-item", ...{ name: group }, open: i === openIndex || void 0, children: [
4247
+ /* @__PURE__ */ jsx122("summary", { className: "oc-accordion-trigger", children: item.question }),
4248
+ /* @__PURE__ */ jsx122("div", { className: "oc-accordion-content", children: item.answer })
4168
4249
  ] }, i)
4169
4250
  )) }),
4170
- more != null && /* @__PURE__ */ jsx119("p", { className: "oc-block-faq-more", children: more })
4251
+ more != null && /* @__PURE__ */ jsx122("p", { className: "oc-block-faq-more", children: more })
4171
4252
  ] }) });
4172
4253
  });
4173
4254
 
4174
4255
  // 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 })
4256
+ import { forwardRef as forwardRef121 } from "react";
4257
+ import { jsx as jsx123, jsxs as jsxs102 } from "react/jsx-runtime";
4258
+ var BlockFeatures = forwardRef121(function BlockFeatures2({ title, description, features, className, ...rest }, ref) {
4259
+ return /* @__PURE__ */ jsxs102("div", { ref, className: cx("oc-block-features", className), ...rest, children: [
4260
+ title != null && /* @__PURE__ */ jsx123("h2", { children: title }),
4261
+ description != null && /* @__PURE__ */ jsx123("p", { children: description }),
4262
+ /* @__PURE__ */ jsx123("div", { className: "oc-block-features-grid", children: features.map((f, i) => /* @__PURE__ */ jsxs102("div", { className: "oc-block-feature-card", children: [
4263
+ f.icon != null && /* @__PURE__ */ jsx123("div", { className: "oc-block-feature-icon", children: f.icon }),
4264
+ /* @__PURE__ */ jsx123("h3", { children: f.title }),
4265
+ f.description != null && /* @__PURE__ */ jsx123("p", { children: f.description })
4185
4266
  ] }, i)) })
4186
4267
  ] });
4187
4268
  });
4188
4269
 
4189
4270
  // 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)) })
4271
+ import { forwardRef as forwardRef122 } from "react";
4272
+ import { jsx as jsx124, jsxs as jsxs103 } from "react/jsx-runtime";
4273
+ var BlockFooter = forwardRef122(function BlockFooter2({ columns, copyright, credit, className, ...rest }, ref) {
4274
+ return /* @__PURE__ */ jsxs103("div", { ref, className: cx("oc-block-footer", className), ...rest, children: [
4275
+ /* @__PURE__ */ jsx124("div", { className: "oc-block-footer-grid", children: columns.map((col, i) => /* @__PURE__ */ jsxs103("div", { className: "oc-block-footer-col", children: [
4276
+ /* @__PURE__ */ jsx124("h4", { children: col.title }),
4277
+ /* @__PURE__ */ jsx124("ul", { children: col.links.map((l, j) => /* @__PURE__ */ jsx124("li", { children: /* @__PURE__ */ jsx124("a", { href: l.href, children: l.label }) }, j)) })
4197
4278
  ] }, 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 })
4279
+ (copyright != null || credit != null) && /* @__PURE__ */ jsxs103("div", { className: "oc-block-footer-bottom", children: [
4280
+ /* @__PURE__ */ jsx124("span", { children: copyright }),
4281
+ /* @__PURE__ */ jsx124("span", { children: credit })
4201
4282
  ] })
4202
4283
  ] });
4203
4284
  });
4204
4285
 
4205
4286
  // 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: [
4287
+ import { forwardRef as forwardRef123 } from "react";
4288
+ import { jsx as jsx125, jsxs as jsxs104 } from "react/jsx-runtime";
4289
+ var BlockFormPage = forwardRef123(function BlockFormPage2({ actions, className, children, ...rest }, ref) {
4290
+ return /* @__PURE__ */ jsxs104("form", { ref, className: cx("oc-block-formpage", className), ...rest, children: [
4210
4291
  children,
4211
- actions != null && /* @__PURE__ */ jsx122("div", { className: "oc-block-formpage-actions", children: actions })
4292
+ actions != null && /* @__PURE__ */ jsx125("div", { className: "oc-block-formpage-actions", children: actions })
4212
4293
  ] });
4213
4294
  });
4214
4295
  function BlockFormPageGrid({ className, ...rest }) {
4215
- return /* @__PURE__ */ jsx122("div", { className: cx("oc-block-formpage-grid", className), ...rest });
4296
+ return /* @__PURE__ */ jsx125("div", { className: cx("oc-block-formpage-grid", className), ...rest });
4216
4297
  }
4217
4298
 
4218
4299
  // 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 })
4300
+ import { forwardRef as forwardRef124 } from "react";
4301
+ import { jsx as jsx126, jsxs as jsxs105 } from "react/jsx-runtime";
4302
+ var BlockHero = forwardRef124(function BlockHero2({ badge, title, description, actions, className, ...rest }, ref) {
4303
+ return /* @__PURE__ */ jsxs105("div", { ref, className: cx("oc-block-hero", className), ...rest, children: [
4304
+ badge != null && /* @__PURE__ */ jsx126("span", { className: "oc-block-hero-badge", children: badge }),
4305
+ /* @__PURE__ */ jsx126("h1", { children: title }),
4306
+ description != null && /* @__PURE__ */ jsx126("p", { children: description }),
4307
+ actions != null && /* @__PURE__ */ jsx126("div", { className: "oc-block-hero-actions", children: actions })
4227
4308
  ] });
4228
4309
  });
4229
4310
 
4230
4311
  // src/blocks/BlockHeroCode.tsx
4231
- import { forwardRef as forwardRef122 } from "react";
4232
- import { jsx as jsx124, jsxs as jsxs103 } from "react/jsx-runtime";
4312
+ import { forwardRef as forwardRef125 } from "react";
4313
+ import { jsx as jsx127, jsxs as jsxs106 } from "react/jsx-runtime";
4233
4314
  var DEFAULT_TILES = [
4234
4315
  { glyph: "\u25C6", accent: "green", style: { inset: "-0.5rem auto auto 8%" } },
4235
4316
  { glyph: "\u25C9", accent: "violet", style: { inset: "0 6% auto auto", animationDelay: "-2s" } },
4236
4317
  { glyph: "\u25B2", accent: "orange", style: { inset: "auto 10% -0.5rem auto", animationDelay: "-4s" } }
4237
4318
  ];
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 })
4319
+ var BlockHeroCode = forwardRef125(function BlockHeroCode2({ eyebrow, title, lead, actions, codeTitle, code, tiles = DEFAULT_TILES, className, ...rest }, ref) {
4320
+ return /* @__PURE__ */ jsx127("section", { ref, className: cx("oc-section-pad", className), ...rest, children: /* @__PURE__ */ jsxs106("div", { className: "oc-container oc-split", children: [
4321
+ /* @__PURE__ */ jsxs106("div", { children: [
4322
+ eyebrow != null && /* @__PURE__ */ jsx127("p", { className: "oc-eyebrow", children: eyebrow }),
4323
+ /* @__PURE__ */ jsx127("h1", { className: "oc-display", children: title }),
4324
+ lead != null && /* @__PURE__ */ jsx127("p", { className: "oc-lead", children: lead }),
4325
+ actions != null && /* @__PURE__ */ jsx127("div", { className: "flex flex-wrap gap-1 mt-2", children: actions })
4245
4326
  ] }),
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 })
4327
+ /* @__PURE__ */ jsxs106("div", { className: "relative p-2", children: [
4328
+ 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)),
4329
+ /* @__PURE__ */ jsxs106("div", { className: "oc-code-window", children: [
4330
+ /* @__PURE__ */ jsxs106("div", { className: "oc-code-window__bar", children: [
4331
+ /* @__PURE__ */ jsx127("i", {}),
4332
+ /* @__PURE__ */ jsx127("i", {}),
4333
+ /* @__PURE__ */ jsx127("i", {}),
4334
+ codeTitle != null && /* @__PURE__ */ jsx127("span", { className: "oc-code-window__title", children: codeTitle })
4254
4335
  ] }),
4255
- /* @__PURE__ */ jsx124("pre", { className: "oc-code-window__body", children: code })
4336
+ /* @__PURE__ */ jsx127("pre", { className: "oc-code-window__body", children: code })
4256
4337
  ] })
4257
4338
  ] })
4258
4339
  ] }) });
4259
4340
  });
4260
4341
 
4261
4342
  // src/blocks/BlockHeroOrbit.tsx
4262
- import { forwardRef as forwardRef123 } from "react";
4263
- import { jsx as jsx125, jsxs as jsxs104 } from "react/jsx-runtime";
4343
+ import { forwardRef as forwardRef126 } from "react";
4344
+ import { jsx as jsx128, jsxs as jsxs107 } from "react/jsx-runtime";
4264
4345
  var DEFAULT_MARKS = [
4265
4346
  { glyph: "\u25C6", accent: "green" },
4266
4347
  { glyph: "\u25C9", accent: "violet" },
@@ -4269,333 +4350,333 @@ var DEFAULT_MARKS = [
4269
4350
  { glyph: "\u2665", accent: "red" },
4270
4351
  { glyph: "\u2600", accent: "yellow" }
4271
4352
  ];
4272
- var BlockHeroOrbit = forwardRef123(function BlockHeroOrbit2({ eyebrow, title, lead, actions, marks = DEFAULT_MARKS, codeTitle, code = "", center, duration, className, ...rest }, ref) {
4353
+ var BlockHeroOrbit = forwardRef126(function BlockHeroOrbit2({ eyebrow, title, lead, actions, marks = DEFAULT_MARKS, codeTitle, code = "", center, duration, className, ...rest }, ref) {
4273
4354
  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 })
4355
+ 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: [
4356
+ /* @__PURE__ */ jsxs107("div", { children: [
4357
+ eyebrow != null && /* @__PURE__ */ jsx128("p", { className: "oc-eyebrow", children: eyebrow }),
4358
+ /* @__PURE__ */ jsx128("h1", { className: "oc-display", children: title }),
4359
+ lead != null && /* @__PURE__ */ jsx128("p", { className: "oc-lead", children: lead }),
4360
+ actions != null && /* @__PURE__ */ jsx128("div", { className: "flex flex-wrap gap-1 mt-2", children: actions })
4280
4361
  ] }),
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 })
4362
+ /* @__PURE__ */ jsxs107("div", { className: "oc-block-orbit-visual", style: visualStyle, children: [
4363
+ /* @__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)) }),
4364
+ center ?? /* @__PURE__ */ jsxs107("div", { className: "oc-code-window oc-block-orbit-center", children: [
4365
+ /* @__PURE__ */ jsxs107("div", { className: "oc-code-window__bar", children: [
4366
+ /* @__PURE__ */ jsx128("i", {}),
4367
+ /* @__PURE__ */ jsx128("i", {}),
4368
+ /* @__PURE__ */ jsx128("i", {}),
4369
+ codeTitle != null && /* @__PURE__ */ jsx128("span", { className: "oc-code-window__title", children: codeTitle })
4289
4370
  ] }),
4290
- /* @__PURE__ */ jsx125("pre", { className: "oc-code-window__body", children: code })
4371
+ /* @__PURE__ */ jsx128("pre", { className: "oc-code-window__body", children: code })
4291
4372
  ] })
4292
4373
  ] })
4293
4374
  ] }) });
4294
4375
  });
4295
4376
 
4296
4377
  // 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 })
4378
+ import { forwardRef as forwardRef127 } from "react";
4379
+ import { jsx as jsx129, jsxs as jsxs108 } from "react/jsx-runtime";
4380
+ var BlockHeroSplit = forwardRef127(function BlockHeroSplit2({ title, description, actions, visual, className, ...rest }, ref) {
4381
+ return /* @__PURE__ */ jsxs108("div", { ref, className: cx("oc-block-hero-split", className), ...rest, children: [
4382
+ /* @__PURE__ */ jsxs108("div", { children: [
4383
+ /* @__PURE__ */ jsx129("h1", { children: title }),
4384
+ description != null && /* @__PURE__ */ jsx129("p", { children: description }),
4385
+ actions != null && /* @__PURE__ */ jsx129("div", { className: "oc-block-hero-actions justify-start", children: actions })
4305
4386
  ] }),
4306
- /* @__PURE__ */ jsx126("div", { className: "oc-block-hero-visual", children: visual })
4387
+ /* @__PURE__ */ jsx129("div", { className: "oc-block-hero-visual", children: visual })
4307
4388
  ] });
4308
4389
  });
4309
4390
 
4310
4391
  // 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 })
4392
+ import { forwardRef as forwardRef128 } from "react";
4393
+ import { jsx as jsx130, jsxs as jsxs109 } from "react/jsx-runtime";
4394
+ var BlockModuleHeader = forwardRef128(function BlockModuleHeader2({ icon, title, intro, meta, actions, className, ...rest }, ref) {
4395
+ return /* @__PURE__ */ jsxs109("header", { ref, className: cx("oc-block-modulehead", className), ...rest, children: [
4396
+ /* @__PURE__ */ jsxs109("div", { className: "oc-block-modulehead-band", children: [
4397
+ icon != null && /* @__PURE__ */ jsx130("span", { className: "oc-block-modulehead-icon", "aria-hidden": "true", children: icon }),
4398
+ /* @__PURE__ */ jsxs109("div", { className: "oc-block-modulehead-body", children: [
4399
+ /* @__PURE__ */ jsx130("h1", { className: "oc-block-modulehead-title", children: title }),
4400
+ intro != null && /* @__PURE__ */ jsx130("p", { className: "oc-block-modulehead-intro", children: intro }),
4401
+ meta != null && /* @__PURE__ */ jsx130("div", { className: "oc-block-modulehead-meta", children: meta })
4321
4402
  ] })
4322
4403
  ] }),
4323
- actions != null && /* @__PURE__ */ jsx127("div", { className: "oc-block-modulehead-actions", children: actions })
4404
+ actions != null && /* @__PURE__ */ jsx130("div", { className: "oc-block-modulehead-actions", children: actions })
4324
4405
  ] });
4325
4406
  });
4326
4407
 
4327
4408
  // 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 })
4409
+ import { forwardRef as forwardRef129 } from "react";
4410
+ import { jsx as jsx131, jsxs as jsxs110 } from "react/jsx-runtime";
4411
+ var BlockPageHero = forwardRef129(function BlockPageHero2({ eyebrow, title, description, actions, className, ...rest }, ref) {
4412
+ return /* @__PURE__ */ jsxs110("section", { ref, className: cx("oc-hero", className), ...rest, children: [
4413
+ eyebrow != null && /* @__PURE__ */ jsx131("span", { className: "oc-hero-eyebrow", children: eyebrow }),
4414
+ /* @__PURE__ */ jsx131("h1", { className: "oc-hero-title", children: title }),
4415
+ description != null && /* @__PURE__ */ jsx131("p", { className: "oc-hero-text", children: description }),
4416
+ actions != null && /* @__PURE__ */ jsx131("div", { className: "oc-hero-actions", children: actions })
4336
4417
  ] });
4337
4418
  });
4338
4419
 
4339
4420
  // 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) {
4421
+ import { forwardRef as forwardRef130, useId as useId40 } from "react";
4422
+ import { jsx as jsx132, jsxs as jsxs111 } from "react/jsx-runtime";
4423
+ var BlockPortfolioGrid = forwardRef130(function BlockPortfolioGrid2({ eyebrow, title, lead, link, projects, two = false, className, ...rest }, ref) {
4343
4424
  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 })
4425
+ 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: [
4426
+ /* @__PURE__ */ jsxs111("div", { className: "oc-block-portfolio-head", children: [
4427
+ /* @__PURE__ */ jsxs111("div", { children: [
4428
+ eyebrow != null && /* @__PURE__ */ jsx132("p", { className: "oc-eyebrow", children: eyebrow }),
4429
+ /* @__PURE__ */ jsx132("h2", { className: "oc-display oc-display--md", id: titleId, children: title }),
4430
+ lead != null && /* @__PURE__ */ jsx132("p", { className: "oc-block-portfolio-lead", children: lead })
4350
4431
  ] }),
4351
4432
  link
4352
4433
  ] }),
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)) })
4434
+ /* @__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
4435
  ] }) });
4355
4436
  });
4356
4437
 
4357
4438
  // 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) => {
4439
+ import { forwardRef as forwardRef131 } from "react";
4440
+ import { Fragment as Fragment28, jsx as jsx133, jsxs as jsxs112 } from "react/jsx-runtime";
4441
+ var BlockPricing = forwardRef131(function BlockPricing2({ title, description, plans, className, ...rest }, ref) {
4442
+ return /* @__PURE__ */ jsxs112("div", { ref, className: cx("oc-block-pricing", className), ...rest, children: [
4443
+ title != null && /* @__PURE__ */ jsx133("h2", { children: title }),
4444
+ description != null && /* @__PURE__ */ jsx133("p", { children: description }),
4445
+ /* @__PURE__ */ jsx133("div", { className: "oc-block-pricing-grid", children: plans.map((plan, i) => {
4365
4446
  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: [
4447
+ return /* @__PURE__ */ jsxs112("div", { className: cx("oc-block-pricing-card", plan.featured && "oc-block-pricing-card--featured"), children: [
4448
+ /* @__PURE__ */ jsx133("p", { className: "oc-block-pricing-name", children: plan.name }),
4449
+ plan.description != null && /* @__PURE__ */ jsx133("p", { className: "oc-block-pricing-desc", children: plan.description }),
4450
+ /* @__PURE__ */ jsxs112("p", { className: "oc-block-pricing-price", children: [
4370
4451
  plan.price,
4371
- plan.period != null && /* @__PURE__ */ jsxs109(Fragment28, { children: [
4452
+ plan.period != null && /* @__PURE__ */ jsxs112(Fragment28, { children: [
4372
4453
  " ",
4373
- /* @__PURE__ */ jsx130("span", { children: plan.period })
4454
+ /* @__PURE__ */ jsx133("span", { children: plan.period })
4374
4455
  ] })
4375
4456
  ] }),
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 })
4457
+ /* @__PURE__ */ jsx133("ul", { className: "oc-block-pricing-features", children: plan.features.map((f, j) => /* @__PURE__ */ jsx133("li", { children: f }, j)) }),
4458
+ 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
4459
  ] }, i);
4379
4460
  }) })
4380
4461
  ] });
4381
4462
  });
4382
4463
 
4383
4464
  // 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 })
4465
+ import { forwardRef as forwardRef132 } from "react";
4466
+ import { jsx as jsx134, jsxs as jsxs113 } from "react/jsx-runtime";
4467
+ var BlockProcess = forwardRef132(function BlockProcess2({ eyebrow, title, steps, marquee, marqueeLabel = "Technologies", className, ...rest }, ref) {
4468
+ return /* @__PURE__ */ jsx134("section", { ref, className: cx("oc-section-pad", className), ...rest, children: /* @__PURE__ */ jsxs113("div", { className: "oc-container", children: [
4469
+ eyebrow != null && /* @__PURE__ */ jsx134("p", { className: "oc-eyebrow", children: eyebrow }),
4470
+ /* @__PURE__ */ jsx134("h2", { className: "oc-display oc-display--md", children: title }),
4471
+ /* @__PURE__ */ jsx134("ol", { className: "oc-steps", children: steps.map((s, i) => /* @__PURE__ */ jsxs113("li", { children: [
4472
+ /* @__PURE__ */ jsx134("h3", { children: s.title }),
4473
+ s.text != null && /* @__PURE__ */ jsx134("p", { children: s.text })
4393
4474
  ] }, 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}`))
4475
+ marquee && marquee.length > 0 && /* @__PURE__ */ jsx134("div", { className: "oc-marquee mt-4", "aria-label": marqueeLabel, children: /* @__PURE__ */ jsxs113("div", { className: "oc-marquee__track", children: [
4476
+ marquee.map((m) => /* @__PURE__ */ jsx134("span", { className: "oc-marquee__item", children: m }, m)),
4477
+ marquee.map((m) => /* @__PURE__ */ jsx134("span", { className: "oc-marquee__item", "aria-hidden": "true", children: m }, `dup-${m}`))
4397
4478
  ] }) })
4398
4479
  ] }) });
4399
4480
  });
4400
4481
 
4401
4482
  // 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 })
4483
+ import { forwardRef as forwardRef133 } from "react";
4484
+ import { jsx as jsx135, jsxs as jsxs114 } from "react/jsx-runtime";
4485
+ var BlockProductGrid = forwardRef133(function BlockProductGrid2({ eyebrow, title, products, className, ...rest }, ref) {
4486
+ return /* @__PURE__ */ jsx135("section", { ref, className: cx("oc-section-pad", className), ...rest, children: /* @__PURE__ */ jsxs114("div", { className: "oc-container", children: [
4487
+ eyebrow != null && /* @__PURE__ */ jsx135("p", { className: "oc-eyebrow", children: eyebrow }),
4488
+ /* @__PURE__ */ jsx135("h2", { className: "oc-display oc-display--md", children: title }),
4489
+ /* @__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: [
4490
+ /* @__PURE__ */ jsxs114("div", { className: "oc-product-card__top", children: [
4491
+ p.icon != null && /* @__PURE__ */ jsx135("span", { className: "oc-icon-tile", "aria-hidden": "true", children: p.icon }),
4492
+ p.pill != null && /* @__PURE__ */ jsx135("span", { className: "oc-pill", children: p.pill })
4412
4493
  ] }),
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 })
4494
+ /* @__PURE__ */ jsx135("h3", { className: "oc-product-card__name", children: p.name }),
4495
+ p.tagline != null && /* @__PURE__ */ jsx135("p", { className: "oc-product-card__tagline", children: p.tagline }),
4496
+ p.summary != null && /* @__PURE__ */ jsx135("p", { className: "oc-product-card__summary", children: p.summary }),
4497
+ p.more != null && /* @__PURE__ */ jsx135("span", { className: "oc-product-card__more", children: p.more })
4417
4498
  ] }, i)) })
4418
4499
  ] }) });
4419
4500
  });
4420
4501
 
4421
4502
  // 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) {
4503
+ import { forwardRef as forwardRef134, useId as useId41 } from "react";
4504
+ import { jsx as jsx136, jsxs as jsxs115 } from "react/jsx-runtime";
4505
+ var BlockProfileHeader = forwardRef134(function BlockProfileHeader2({ name, meta, bio, avatar, banner, actions, tabs = [], tabsLabel = "Profile sections", compact = false, headingLevel = 1, className, ...rest }, ref) {
4425
4506
  const nameId = `oc-profile-name-${useId41().replace(/[^\w-]/g, "")}`;
4426
4507
  const Heading3 = headingLevel === 1 ? "h1" : "h2";
4427
4508
  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 })
4509
+ return /* @__PURE__ */ jsxs115("section", { ref, className: cx("oc-block-profile", compact && "oc-block-profile--compact", className), "aria-labelledby": nameId, ...rest, children: [
4510
+ /* @__PURE__ */ jsx136("div", { className: "oc-block-profile-banner", style: bannerStyle, "aria-hidden": "true" }),
4511
+ /* @__PURE__ */ jsxs115("div", { className: "oc-block-profile-bar", children: [
4512
+ /* @__PURE__ */ jsx136("span", { className: "oc-avatar oc-block-profile-avatar", "aria-hidden": "true", children: avatar }),
4513
+ /* @__PURE__ */ jsxs115("div", { className: "oc-block-profile-info", children: [
4514
+ /* @__PURE__ */ jsx136(Heading3, { className: "oc-block-profile-name", id: nameId, children: name }),
4515
+ meta != null && /* @__PURE__ */ jsx136("p", { className: "oc-block-profile-meta", children: meta }),
4516
+ bio != null && /* @__PURE__ */ jsx136("p", { className: "oc-block-profile-bio", children: bio })
4436
4517
  ] }),
4437
- actions != null && /* @__PURE__ */ jsx133("div", { className: "oc-block-profile-actions", children: actions })
4518
+ actions != null && /* @__PURE__ */ jsx136("div", { className: "oc-block-profile-actions", children: actions })
4438
4519
  ] }),
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)) })
4520
+ 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
4521
  ] });
4441
4522
  });
4442
4523
 
4443
4524
  // 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", {})
4525
+ import { forwardRef as forwardRef135 } from "react";
4526
+ import { jsx as jsx137, jsxs as jsxs116 } from "react/jsx-runtime";
4527
+ var BlockShowcase = forwardRef135(function BlockShowcase2({ eyebrow, title, projects, cardMin = "26rem", className, ...rest }, ref) {
4528
+ return /* @__PURE__ */ jsx137("section", { ref, className: cx("oc-section-pad", className), ...rest, children: /* @__PURE__ */ jsxs116("div", { className: "oc-container", children: [
4529
+ eyebrow != null && /* @__PURE__ */ jsx137("p", { className: "oc-eyebrow", children: eyebrow }),
4530
+ /* @__PURE__ */ jsx137("h2", { className: "oc-display oc-display--md", children: title }),
4531
+ /* @__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: [
4532
+ /* @__PURE__ */ jsxs116("span", { className: "oc-browser-frame m-1", children: [
4533
+ /* @__PURE__ */ jsxs116("span", { className: "oc-browser-frame__bar", children: [
4534
+ /* @__PURE__ */ jsx137("i", {}),
4535
+ /* @__PURE__ */ jsx137("i", {}),
4536
+ /* @__PURE__ */ jsx137("i", {})
4456
4537
  ] }),
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 ?? "" }) })
4538
+ /* @__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
4539
  ] }),
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 })
4540
+ /* @__PURE__ */ jsxs116("span", { className: "grid gap-0.5 p-1.5 pt-0", children: [
4541
+ p.pill != null && /* @__PURE__ */ jsx137("span", { className: "oc-pill oc-pill--accent", children: p.pill }),
4542
+ /* @__PURE__ */ jsx137("span", { className: "oc-product-card__name", children: p.name }),
4543
+ p.summary != null && /* @__PURE__ */ jsx137("span", { className: "oc-product-card__summary", children: p.summary }),
4544
+ p.more != null && /* @__PURE__ */ jsx137("span", { className: "oc-product-card__more", children: p.more })
4464
4545
  ] })
4465
4546
  ] }, i)) })
4466
4547
  ] }) });
4467
4548
  });
4468
4549
 
4469
4550
  // 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 })
4551
+ import { forwardRef as forwardRef136 } from "react";
4552
+ import { jsx as jsx138, jsxs as jsxs117 } from "react/jsx-runtime";
4553
+ var BlockSiteFooter = forwardRef136(function BlockSiteFooter2({ brand, brandHref = "/", about, columns, copyright, credit, className, ...rest }, ref) {
4554
+ return /* @__PURE__ */ jsx138("footer", { ref, className: cx("oc-site-footer", className), ...rest, children: /* @__PURE__ */ jsxs117("div", { className: "oc-container", children: [
4555
+ /* @__PURE__ */ jsxs117("div", { className: "oc-site-footer__grid", children: [
4556
+ /* @__PURE__ */ jsxs117("div", { className: "oc-site-footer__about", children: [
4557
+ /* @__PURE__ */ jsx138("a", { className: "oc-site-header__brand", href: brandHref, children: brand }),
4558
+ about != null && /* @__PURE__ */ jsx138("p", { children: about })
4478
4559
  ] }),
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 })
4560
+ columns.map((col, i) => /* @__PURE__ */ jsxs117("div", { children: [
4561
+ /* @__PURE__ */ jsx138("h2", { className: "oc-site-footer__title", children: col.title }),
4562
+ 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)) }),
4563
+ col.address != null && /* @__PURE__ */ jsx138("address", { className: "oc-site-footer__list", children: col.address })
4483
4564
  ] }, i))
4484
4565
  ] }),
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 })
4566
+ (copyright != null || credit != null) && /* @__PURE__ */ jsxs117("div", { className: "oc-site-footer__bottom", children: [
4567
+ /* @__PURE__ */ jsx138("span", { children: copyright }),
4568
+ /* @__PURE__ */ jsx138("span", { children: credit })
4488
4569
  ] })
4489
4570
  ] }) });
4490
4571
  });
4491
4572
 
4492
4573
  // 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) {
4574
+ import { forwardRef as forwardRef137, useId as useId42 } from "react";
4575
+ import { jsx as jsx139, jsxs as jsxs118 } from "react/jsx-runtime";
4576
+ var BlockSiteHeader = forwardRef137(function BlockSiteHeader2({ brand, brandHref = "/", links, cta, menuLabel = "Menu", className, ...rest }, ref) {
4496
4577
  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)),
4578
+ return /* @__PURE__ */ jsx139("header", { ref, className: cx("oc-site-header", className), ...rest, children: /* @__PURE__ */ jsxs118("div", { className: "oc-container oc-site-header__inner", children: [
4579
+ /* @__PURE__ */ jsx139("a", { className: "oc-site-header__brand", href: brandHref, children: brand }),
4580
+ /* @__PURE__ */ jsx139("button", { className: "oc-site-header__toggle", type: "button", "aria-label": menuLabel, popoverTarget: navId, children: "\u2630" }),
4581
+ /* @__PURE__ */ jsxs118("nav", { className: "oc-site-header__nav", id: navId, "aria-label": "Main", ...attrs({ popover: "" }), children: [
4582
+ links.map((l, i) => /* @__PURE__ */ jsx139("a", { href: l.href, "aria-current": l.current ? "page" : void 0, children: l.label }, i)),
4502
4583
  cta
4503
4584
  ] })
4504
4585
  ] }) });
4505
4586
  });
4506
4587
 
4507
4588
  // 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" }),
4589
+ import { forwardRef as forwardRef138 } from "react";
4590
+ import { jsx as jsx140, jsxs as jsxs119 } from "react/jsx-runtime";
4591
+ var BlockSpotlight = forwardRef138(function BlockSpotlight2({ accent, badge, icon, title, tagline, lead, action, modules, className, ...rest }, ref) {
4592
+ 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: [
4593
+ /* @__PURE__ */ jsxs119("div", { children: [
4594
+ badge != null && /* @__PURE__ */ jsxs119("span", { className: "oc-pill oc-pill--accent", children: [
4595
+ /* @__PURE__ */ jsx140("span", { className: "oc-status-dot" }),
4515
4596
  badge
4516
4597
  ] }),
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 }),
4598
+ /* @__PURE__ */ jsxs119("h2", { className: "oc-spotlight__title", children: [
4599
+ icon != null && /* @__PURE__ */ jsx140("span", { className: "oc-icon-tile oc-icon-tile--lg", "aria-hidden": "true", children: icon }),
4519
4600
  title
4520
4601
  ] }),
4521
- tagline != null && /* @__PURE__ */ jsx137("p", { className: "oc-spotlight__tagline", children: tagline }),
4522
- lead != null && /* @__PURE__ */ jsx137("p", { className: "oc-lead", children: lead }),
4602
+ tagline != null && /* @__PURE__ */ jsx140("p", { className: "oc-spotlight__tagline", children: tagline }),
4603
+ lead != null && /* @__PURE__ */ jsx140("p", { className: "oc-lead", children: lead }),
4523
4604
  action
4524
4605
  ] }),
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 }),
4606
+ modules && /* @__PURE__ */ jsx140("ul", { className: "oc-spotlight__modules", children: modules.map((m, i) => /* @__PURE__ */ jsxs119("li", { children: [
4607
+ m.icon != null && /* @__PURE__ */ jsx140("span", { className: "oc-icon-tile oc-icon-tile--sm", "aria-hidden": "true", children: m.icon }),
4527
4608
  m.label
4528
4609
  ] }, i)) })
4529
4610
  ] }) }) });
4530
4611
  });
4531
4612
 
4532
4613
  // 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 })
4614
+ import { forwardRef as forwardRef139 } from "react";
4615
+ import { jsx as jsx141, jsxs as jsxs120 } from "react/jsx-runtime";
4616
+ var BlockStats = forwardRef139(function BlockStats2({ stats, className, ...rest }, ref) {
4617
+ 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: [
4618
+ /* @__PURE__ */ jsx141("div", { className: "oc-block-stat-value", children: s.value }),
4619
+ /* @__PURE__ */ jsx141("div", { className: "oc-block-stat-label", children: s.label })
4539
4620
  ] }, i)) });
4540
4621
  });
4541
4622
 
4542
4623
  // 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 })
4624
+ import { forwardRef as forwardRef140 } from "react";
4625
+ import { jsx as jsx142, jsxs as jsxs121 } from "react/jsx-runtime";
4626
+ var BlockStatsCounter = forwardRef140(function BlockStatsCounter2({ stats, className, ...rest }, ref) {
4627
+ 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: [
4628
+ /* @__PURE__ */ jsx142(Counter, { className: "oc-block-stat-value", to: s.to, suffix: s.suffix }),
4629
+ /* @__PURE__ */ jsx142("span", { className: "oc-block-stat-label", children: s.label })
4549
4630
  ] }, i)) });
4550
4631
  });
4551
4632
 
4552
4633
  // 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 })
4634
+ import { forwardRef as forwardRef141 } from "react";
4635
+ import { Fragment as Fragment29, jsx as jsx143, jsxs as jsxs122 } from "react/jsx-runtime";
4636
+ var BlockTeamList = forwardRef141(function BlockTeamList2({ members, className, ...rest }, ref) {
4637
+ 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: [
4638
+ /* @__PURE__ */ jsx143(User, { name: m.name, email: m.email, initials: m.initials, avatarSrc: m.avatarSrc }),
4639
+ /* @__PURE__ */ jsxs122("div", { className: "oc-block-team-meta", children: [
4640
+ m.role != null && /* @__PURE__ */ jsx143(Badge, { variant: m.roleVariant, children: m.role }),
4641
+ 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
4642
  ] })
4562
4643
  ] }, i)) });
4563
4644
  });
4564
4645
 
4565
4646
  // 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) {
4647
+ import { forwardRef as forwardRef142, useId as useId43, useState as useState15 } from "react";
4648
+ import { jsx as jsx144, jsxs as jsxs123 } from "react/jsx-runtime";
4649
+ var BlockTwoFactor = forwardRef142(function BlockTwoFactor2({ qr, setupKey, recoveryCodes, codeLength = 6, onSubmit, submitLabel = "Enable two-factor", className, ...rest }, ref) {
4569
4650
  const id = `oc-twofactor-${useId43().replace(/:/g, "")}`;
4570
4651
  const [code, setCode] = useState15("");
4571
4652
  const submit = (e) => {
4572
4653
  e.preventDefault();
4573
4654
  onSubmit?.(code);
4574
4655
  };
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" })
4656
+ return /* @__PURE__ */ jsxs123("div", { ref, className: cx("oc-block-twofactor", className), ...rest, children: [
4657
+ /* @__PURE__ */ jsxs123("section", { className: "oc-block-twofactor-step", children: [
4658
+ /* @__PURE__ */ jsx144(Heading, { size: "sm", title: "1. Scan the QR code", description: "Use an authenticator app, or enter the key manually." }),
4659
+ /* @__PURE__ */ jsxs123("div", { className: "oc-block-twofactor-center", children: [
4660
+ qr ?? /* @__PURE__ */ jsx144("div", { className: "oc-block-twofactor-qr", role: "img", "aria-label": "QR code", children: "QR code" }),
4661
+ /* @__PURE__ */ jsx144(CopyField, { value: setupKey, label: "Setup key" })
4581
4662
  ] })
4582
4663
  ] }),
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 })
4664
+ /* @__PURE__ */ jsxs123("form", { className: "oc-block-twofactor-step", onSubmit: submit, children: [
4665
+ /* @__PURE__ */ jsx144(Heading, { size: "sm", title: "2. Confirm with a code" }),
4666
+ /* @__PURE__ */ jsxs123("div", { className: "oc-field", children: [
4667
+ /* @__PURE__ */ jsx144("label", { className: "oc-field-label", htmlFor: id, children: "Authentication code" }),
4668
+ /* @__PURE__ */ jsx144(OtpInput, { id, name: "code", length: codeLength, value: code, onChange: setCode })
4588
4669
  ] }),
4589
- /* @__PURE__ */ jsx141("button", { className: "oc-btn", type: "submit", children: submitLabel })
4670
+ /* @__PURE__ */ jsx144("button", { className: "oc-btn", type: "submit", children: submitLabel })
4590
4671
  ] }),
4591
- recoveryCodes && /* @__PURE__ */ jsx141("section", { className: "oc-block-twofactor-step", children: /* @__PURE__ */ jsx141(RecoveryCodes, { codes: recoveryCodes }) })
4672
+ recoveryCodes && /* @__PURE__ */ jsx144("section", { className: "oc-block-twofactor-step", children: /* @__PURE__ */ jsx144(RecoveryCodes, { codes: recoveryCodes }) })
4592
4673
  ] });
4593
4674
  });
4594
4675
 
4595
4676
  // 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({
4677
+ import { forwardRef as forwardRef143, useId as useId44, useRef as useRef13 } from "react";
4678
+ import { jsx as jsx145, jsxs as jsxs124 } from "react/jsx-runtime";
4679
+ var BlockWizardDialog = forwardRef143(function BlockWizardDialog2({
4599
4680
  open,
4600
4681
  defaultOpen,
4601
4682
  onOpenChange,
@@ -4619,7 +4700,7 @@ var BlockWizardDialog = forwardRef140(function BlockWizardDialog2({
4619
4700
  const [current, setCurrent] = useControllable(step, defaultStep, onStepChange);
4620
4701
  const last = current >= steps.length - 1;
4621
4702
  const active = steps[current];
4622
- return /* @__PURE__ */ jsx142(
4703
+ return /* @__PURE__ */ jsx145(
4623
4704
  "dialog",
4624
4705
  {
4625
4706
  ref,
@@ -4628,17 +4709,17 @@ var BlockWizardDialog = forwardRef140(function BlockWizardDialog2({
4628
4709
  ...attrs({ closedby: "closerequest" }),
4629
4710
  ...rest,
4630
4711
  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}` })
4712
+ 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: [
4713
+ /* @__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 }) }),
4714
+ /* @__PURE__ */ jsxs124("div", { className: "oc-block-wizard-main", children: [
4715
+ /* @__PURE__ */ jsxs124("div", { className: "oc-modal-header", children: [
4716
+ /* @__PURE__ */ jsx145("h2", { className: "oc-modal-title", id: titleId, children: active?.label }),
4717
+ /* @__PURE__ */ jsx145("p", { className: "oc-modal-description", children: description ?? `Step ${current + 1} of ${steps.length}` })
4637
4718
  ] }),
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(
4719
+ /* @__PURE__ */ jsx145("div", { className: "oc-block-wizard-step", children: active?.content }),
4720
+ /* @__PURE__ */ jsxs124("div", { className: "oc-modal-footer", children: [
4721
+ /* @__PURE__ */ jsx145("button", { className: "oc-btn oc-btn--outline", type: "button", disabled: current === 0, onClick: () => setCurrent(current - 1), children: backLabel }),
4722
+ /* @__PURE__ */ jsx145(
4642
4723
  "button",
4643
4724
  {
4644
4725
  className: "oc-btn",
@@ -4754,6 +4835,8 @@ export {
4754
4835
  FilterPills,
4755
4836
  FlipCard,
4756
4837
  FormField,
4838
+ Glass,
4839
+ GlassPanel,
4757
4840
  Greeting,
4758
4841
  Heading,
4759
4842
  Icon,
@@ -4816,6 +4899,8 @@ export {
4816
4899
  StackList,
4817
4900
  StatCard,
4818
4901
  StatCardGrid,
4902
+ Status,
4903
+ StatusDot,
4819
4904
  Stepper,
4820
4905
  Switch,
4821
4906
  Table,
@@ -4833,6 +4918,10 @@ export {
4833
4918
  ThemeSwitch,
4834
4919
  TimeInput,
4835
4920
  Timeline,
4921
+ Titlebar,
4922
+ TitlebarBody,
4923
+ TitlebarButton,
4924
+ TitlebarWindow,
4836
4925
  Toast,
4837
4926
  ToastContainer,
4838
4927
  ToastProvider,
@@ -4861,6 +4950,7 @@ export {
4861
4950
  mod,
4862
4951
  niceMax,
4863
4952
  parseDecimal,
4953
+ progressLevel,
4864
4954
  useControllable,
4865
4955
  useDialog,
4866
4956
  useDialogContext,