@birdycom/omniaui-react 0.12.2 → 0.12.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +80 -5
- package/dist/index.js +1277 -1195
- package/manifest.json +18 -0
- package/package.json +1 -1
- package/src/components/Alert.tsx +4 -2
- package/src/components/Button.tsx +8 -5
- package/src/components/Glass.tsx +29 -0
- package/src/components/Progress.tsx +22 -5
- package/src/components/Prose.tsx +2 -2
- package/src/components/StatusDot.tsx +51 -0
- package/src/components/Titlebar.tsx +61 -0
- package/src/index.ts +3 -0
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
|
-
|
|
423
|
-
const
|
|
424
|
-
return
|
|
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:
|
|
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
|
|
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__ */
|
|
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
|
|
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__ */
|
|
565
|
-
(title != null || sub != null || value != null) && /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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
|
|
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__ */
|
|
663
|
-
/* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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
|
|
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__ */
|
|
771
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
778
|
-
columns.map((col, i) => /* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
929
|
-
/* @__PURE__ */ jsx28("span", { children: confirmWordLabel ?? /* @__PURE__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
1051
|
+
/* @__PURE__ */ jsxs23("details", { className: "oc-cookie-consent__prefs", children: [
|
|
1042
1052
|
/* @__PURE__ */ jsx29("summary", { children: customizeLabel }),
|
|
1043
|
-
categories.map((c) => /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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
|
-
|
|
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
|
|
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__ */
|
|
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__ */
|
|
1599
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
1648
|
-
/* @__PURE__ */ jsx32("div", { className: "oc-data-table-scroll", children: /* @__PURE__ */
|
|
1649
|
-
/* @__PURE__ */ jsx32("thead", { children: /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
1775
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
1791
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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
|
|
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__ */
|
|
1918
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
1984
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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/
|
|
2041
|
+
// src/components/Glass.tsx
|
|
2025
2042
|
import { forwardRef as forwardRef44 } from "react";
|
|
2026
|
-
import {
|
|
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 =
|
|
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__ */
|
|
2041
|
-
icon != null && /* @__PURE__ */
|
|
2042
|
-
/* @__PURE__ */
|
|
2043
|
-
eyebrow != null && /* @__PURE__ */
|
|
2044
|
-
/* @__PURE__ */
|
|
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__ */
|
|
2073
|
+
name != null && /* @__PURE__ */ jsxs38(Fragment10, { children: [
|
|
2047
2074
|
", ",
|
|
2048
|
-
/* @__PURE__ */
|
|
2075
|
+
/* @__PURE__ */ jsx46("span", { className: "oc-greeting-name", children: name })
|
|
2049
2076
|
] })
|
|
2050
2077
|
] }),
|
|
2051
|
-
!hideDate && /* @__PURE__ */
|
|
2078
|
+
!hideDate && /* @__PURE__ */ jsx46("time", { className: "oc-greeting-date", dateTime: iso, children: dateText })
|
|
2052
2079
|
] }),
|
|
2053
|
-
actions != null && /* @__PURE__ */
|
|
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
|
|
2059
|
-
import { jsx as
|
|
2060
|
-
var Heading =
|
|
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__ */
|
|
2063
|
-
/* @__PURE__ */
|
|
2064
|
-
description != null && /* @__PURE__ */
|
|
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
|
|
2096
|
+
import { jsx as jsx48 } from "react/jsx-runtime";
|
|
2070
2097
|
function Icon({ d, children, className, ...rest }) {
|
|
2071
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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
|
|
2090
|
-
import { jsx as
|
|
2091
|
-
var ImageZoom =
|
|
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__ */
|
|
2097
|
-
levels.length > 0 && /* @__PURE__ */
|
|
2098
|
-
/* @__PURE__ */
|
|
2099
|
-
levels.map((l) => /* @__PURE__ */
|
|
2100
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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
|
|
2111
|
-
import { jsx as
|
|
2112
|
-
var Input =
|
|
2113
|
-
return /* @__PURE__ */
|
|
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
|
|
2127
|
-
import { jsx as
|
|
2128
|
-
var InputGroup =
|
|
2129
|
-
return /* @__PURE__ */
|
|
2130
|
-
prefix != null && /* @__PURE__ */
|
|
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__ */
|
|
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
|
|
2138
|
-
import { jsx as
|
|
2139
|
-
var Globe = () => /* @__PURE__ */
|
|
2140
|
-
/* @__PURE__ */
|
|
2141
|
-
/* @__PURE__ */
|
|
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 =
|
|
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__ */
|
|
2146
|
-
/* @__PURE__ */
|
|
2147
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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
|
|
2164
|
-
import { Fragment as Fragment11, jsx as
|
|
2165
|
-
var LauncherCard =
|
|
2166
|
-
const content = /* @__PURE__ */
|
|
2167
|
-
icon != null && /* @__PURE__ */
|
|
2168
|
-
/* @__PURE__ */
|
|
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__ */
|
|
2197
|
+
badge != null && /* @__PURE__ */ jsxs43(Fragment11, { children: [
|
|
2171
2198
|
" ",
|
|
2172
2199
|
badge
|
|
2173
2200
|
] })
|
|
2174
2201
|
] }),
|
|
2175
|
-
description != null && /* @__PURE__ */
|
|
2176
|
-
footer != null && /* @__PURE__ */
|
|
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__ */
|
|
2208
|
+
return /* @__PURE__ */ jsx53("span", { ref, ...common, "aria-disabled": "true", children: content });
|
|
2182
2209
|
}
|
|
2183
2210
|
if (href === void 0 && onClick) {
|
|
2184
|
-
return /* @__PURE__ */
|
|
2211
|
+
return /* @__PURE__ */ jsx53("button", { ref, type: "button", ...common, onClick, children: content });
|
|
2185
2212
|
}
|
|
2186
|
-
return /* @__PURE__ */
|
|
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
|
|
2191
|
-
import { Fragment as Fragment12, jsx as
|
|
2192
|
-
var media2 = (img, src) => src ? /* @__PURE__ */
|
|
2193
|
-
var Lightbox =
|
|
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__ */
|
|
2216
|
-
thumbnails && /* @__PURE__ */
|
|
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__ */
|
|
2221
|
-
/* @__PURE__ */
|
|
2222
|
-
title != null ? /* @__PURE__ */
|
|
2223
|
-
/* @__PURE__ */
|
|
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__ */
|
|
2226
|
-
/* @__PURE__ */
|
|
2227
|
-
!single && /* @__PURE__ */
|
|
2228
|
-
!single && /* @__PURE__ */
|
|
2229
|
-
/* @__PURE__ */
|
|
2230
|
-
!single && /* @__PURE__ */
|
|
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
|
|
2245
|
-
import { jsx as
|
|
2246
|
-
var LinkArrow =
|
|
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__ */
|
|
2281
|
+
return /* @__PURE__ */ jsx55("a", { ref, className: classes, ...rest });
|
|
2255
2282
|
});
|
|
2256
2283
|
|
|
2257
2284
|
// src/components/LinkRow.tsx
|
|
2258
|
-
import { forwardRef as
|
|
2259
|
-
import { jsx as
|
|
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 =
|
|
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__ */
|
|
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
|
|
2268
|
-
import { jsx as
|
|
2269
|
-
var ListToolbar =
|
|
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__ */
|
|
2274
|
-
search != null && /* @__PURE__ */
|
|
2275
|
-
count != null && /* @__PURE__ */
|
|
2276
|
-
/* @__PURE__ */
|
|
2277
|
-
views && views.length > 0 && /* @__PURE__ */
|
|
2278
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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
|
|
2297
|
-
import { jsx as
|
|
2298
|
-
var LiveFrame =
|
|
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__ */
|
|
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__ */
|
|
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
|
|
2314
|
-
import { jsx as
|
|
2315
|
-
var Marquee =
|
|
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__ */
|
|
2325
|
-
items.map((item, i) => /* @__PURE__ */
|
|
2326
|
-
items.map((item, i) => /* @__PURE__ */
|
|
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
|
|
2358
|
+
import { forwardRef as forwardRef59, useId as useId20 } from "react";
|
|
2332
2359
|
|
|
2333
2360
|
// src/components/MediaThumb.tsx
|
|
2334
|
-
import { forwardRef as
|
|
2335
|
-
import { jsx as
|
|
2336
|
-
var MediaThumb =
|
|
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__ */
|
|
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__ */
|
|
2347
|
-
badge != null && /* @__PURE__ */
|
|
2348
|
-
duration != null && /* @__PURE__ */
|
|
2349
|
-
progress != null && /* @__PURE__ */
|
|
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
|
|
2361
|
-
var MediaCard =
|
|
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__ */
|
|
2364
|
-
/* @__PURE__ */
|
|
2365
|
-
/* @__PURE__ */
|
|
2366
|
-
avatar != null && /* @__PURE__ */
|
|
2367
|
-
/* @__PURE__ */
|
|
2368
|
-
/* @__PURE__ */
|
|
2369
|
-
meta != null && /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
2379
|
-
import { Fragment as Fragment13, jsx as
|
|
2380
|
-
var MediaRowList =
|
|
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__ */
|
|
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 =
|
|
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__ */
|
|
2387
|
-
/* @__PURE__ */
|
|
2388
|
-
/* @__PURE__ */
|
|
2389
|
-
/* @__PURE__ */
|
|
2390
|
-
meta != null && /* @__PURE__ */
|
|
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__ */
|
|
2393
|
-
/* @__PURE__ */
|
|
2394
|
-
/* @__PURE__ */
|
|
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
|
|
2401
|
-
import { Fragment as Fragment14, jsx as
|
|
2402
|
-
var svg = (d, width = "2") => /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
2441
|
+
return /* @__PURE__ */ jsx63(AttachmentThumb, { as: "span", ...t }, i);
|
|
2415
2442
|
}
|
|
2416
2443
|
const { kind: _k, ...file } = a;
|
|
2417
|
-
return /* @__PURE__ */
|
|
2444
|
+
return /* @__PURE__ */ jsx63(Attachment, { ...file }, i);
|
|
2418
2445
|
}) });
|
|
2419
2446
|
}
|
|
2420
|
-
var Message =
|
|
2421
|
-
return /* @__PURE__ */
|
|
2422
|
-
/* @__PURE__ */
|
|
2423
|
-
/* @__PURE__ */
|
|
2424
|
-
sender != null && !continued && /* @__PURE__ */
|
|
2425
|
-
quote && /* @__PURE__ */
|
|
2426
|
-
/* @__PURE__ */
|
|
2427
|
-
/* @__PURE__ */
|
|
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__ */
|
|
2430
|
-
typeof text === "string" ? /* @__PURE__ */
|
|
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__ */
|
|
2434
|
-
(time != null || status) && /* @__PURE__ */
|
|
2435
|
-
time != null && /* @__PURE__ */
|
|
2436
|
-
status && /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
2460
|
-
/* @__PURE__ */
|
|
2461
|
-
/* @__PURE__ */
|
|
2462
|
-
/* @__PURE__ */
|
|
2463
|
-
/* @__PURE__ */
|
|
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__ */
|
|
2467
|
-
/* @__PURE__ */
|
|
2493
|
+
/* @__PURE__ */ jsxs50("li", { children: [
|
|
2494
|
+
/* @__PURE__ */ jsx63("strong", { children: "Nero Marquina" }),
|
|
2468
2495
|
" polished, 12 mm"
|
|
2469
2496
|
] })
|
|
2470
2497
|
] }),
|
|
2471
|
-
/* @__PURE__ */
|
|
2498
|
+
/* @__PURE__ */ jsxs50("p", { children: [
|
|
2472
2499
|
"Details are on the ",
|
|
2473
|
-
/* @__PURE__ */
|
|
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 =
|
|
2493
|
-
return /* @__PURE__ */
|
|
2494
|
-
(item, i) => "divider" in item ? /* @__PURE__ */
|
|
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
|
|
2500
|
-
import { Fragment as Fragment15, jsx as
|
|
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__ */
|
|
2550
|
+
text: /* @__PURE__ */ jsxs51("p", { children: [
|
|
2524
2551
|
"Which one should we order: ",
|
|
2525
|
-
/* @__PURE__ */
|
|
2552
|
+
/* @__PURE__ */ jsx64("strong", { children: "Calacatta matt" }),
|
|
2526
2553
|
" or ",
|
|
2527
|
-
/* @__PURE__ */
|
|
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 =
|
|
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__ */
|
|
2608
|
-
/* @__PURE__ */
|
|
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__ */
|
|
2611
|
-
/* @__PURE__ */
|
|
2612
|
-
(project != null || meta != null) && /* @__PURE__ */
|
|
2613
|
-
project != null && /* @__PURE__ */
|
|
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__ */
|
|
2619
|
-
(status || menu) && /* @__PURE__ */
|
|
2620
|
-
status && /* @__PURE__ */
|
|
2621
|
-
menu && /* @__PURE__ */
|
|
2622
|
-
/* @__PURE__ */
|
|
2623
|
-
/* @__PURE__ */
|
|
2624
|
-
/* @__PURE__ */
|
|
2625
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
2632
|
-
/* @__PURE__ */
|
|
2633
|
-
/* @__PURE__ */
|
|
2634
|
-
/* @__PURE__ */
|
|
2635
|
-
/* @__PURE__ */
|
|
2636
|
-
tools.length > 0 && /* @__PURE__ */
|
|
2637
|
-
tools.includes("attach") && /* @__PURE__ */
|
|
2638
|
-
tools.includes("emoji") && /* @__PURE__ */
|
|
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__ */
|
|
2641
|
-
/* @__PURE__ */
|
|
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__ */
|
|
2645
|
-
/* @__PURE__ */
|
|
2646
|
-
/* @__PURE__ */
|
|
2647
|
-
busyText != null && /* @__PURE__ */
|
|
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
|
|
2654
|
-
import { jsx as
|
|
2655
|
-
var Modal =
|
|
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__ */
|
|
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__ */
|
|
2675
|
-
(title != null || description != null) && /* @__PURE__ */
|
|
2676
|
-
title != null && /* @__PURE__ */
|
|
2677
|
-
description != null && /* @__PURE__ */
|
|
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__ */
|
|
2707
|
+
footer != null && /* @__PURE__ */ jsx65("div", { className: "oc-modal-footer", children: footer })
|
|
2681
2708
|
] }) })
|
|
2682
2709
|
}
|
|
2683
2710
|
);
|
|
2684
2711
|
});
|
|
2685
|
-
var ModalClose =
|
|
2712
|
+
var ModalClose = forwardRef63(function ModalClose2({ onClick, ...rest }, ref) {
|
|
2686
2713
|
const ctx = useDialogContext();
|
|
2687
|
-
return /* @__PURE__ */
|
|
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
|
|
2703
|
-
import { jsx as
|
|
2704
|
-
var Navmenu =
|
|
2705
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
2735
|
+
return /* @__PURE__ */ jsx66("li", { ...props });
|
|
2709
2736
|
}
|
|
2710
|
-
var NavmenuLink =
|
|
2711
|
-
return /* @__PURE__ */
|
|
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 =
|
|
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__ */
|
|
2717
|
-
/* @__PURE__ */
|
|
2718
|
-
/* @__PURE__ */
|
|
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
|
|
2724
|
-
import { jsx as
|
|
2725
|
-
var NextTeaser =
|
|
2726
|
-
return /* @__PURE__ */
|
|
2727
|
-
label != null && /* @__PURE__ */
|
|
2728
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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
|
|
2738
|
-
import { jsx as
|
|
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 =
|
|
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__ */
|
|
2747
|
-
/* @__PURE__ */
|
|
2748
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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
|
|
2770
|
-
import { jsx as
|
|
2771
|
-
var OtpInput =
|
|
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__ */
|
|
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
|
|
2798
|
-
import { jsx as
|
|
2799
|
-
var PageHeader =
|
|
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__ */
|
|
2803
|
-
back != null && /* @__PURE__ */
|
|
2804
|
-
/* @__PURE__ */
|
|
2805
|
-
/* @__PURE__ */
|
|
2806
|
-
/* @__PURE__ */
|
|
2807
|
-
subtitle != null && /* @__PURE__ */
|
|
2808
|
-
meta != null && /* @__PURE__ */
|
|
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__ */
|
|
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
|
|
2817
|
-
import { jsx as
|
|
2818
|
-
var Pagination =
|
|
2819
|
-
return /* @__PURE__ */
|
|
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
|
|
2837
|
-
import { jsx as
|
|
2838
|
-
var PasswordInput =
|
|
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__ */
|
|
2841
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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
|
|
2858
|
-
import { jsx as
|
|
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 =
|
|
2892
|
+
var PasswordRequirements = forwardRef71(function PasswordRequirements2({ password, rules = defaultPasswordRules, inline, hideWhenEmpty, className, ...rest }, ref) {
|
|
2866
2893
|
if (hideWhenEmpty && !password) return null;
|
|
2867
|
-
return /* @__PURE__ */
|
|
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
|
|
2872
|
-
import { jsx as
|
|
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 =
|
|
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__ */
|
|
2900
|
-
/* @__PURE__ */
|
|
2901
|
-
/* @__PURE__ */
|
|
2926
|
+
return /* @__PURE__ */ jsxs58("div", { className: cx("oc-phone-input", size === "sm" && "oc-phone-input--sm", error && "oc-phone-input--error", className), children: [
|
|
2927
|
+
/* @__PURE__ */ jsx74("select", { className: "oc-phone-input-dial", "aria-label": dialLabel, value: dial, disabled, onChange: (e) => emit(e.target.value, parsed.national), children: countries.map((c) => /* @__PURE__ */ jsx74("option", { value: c.dial, children: c.label }, c.dial)) }),
|
|
2928
|
+
/* @__PURE__ */ jsx74(
|
|
2902
2929
|
"input",
|
|
2903
2930
|
{
|
|
2904
2931
|
ref,
|
|
@@ -2917,33 +2944,33 @@ var PhoneInput = forwardRef71(function PhoneInput2({ value, defaultValue, onChan
|
|
|
2917
2944
|
});
|
|
2918
2945
|
|
|
2919
2946
|
// src/components/Popover.tsx
|
|
2920
|
-
import { forwardRef as
|
|
2921
|
-
import { Fragment as Fragment16, jsx as
|
|
2922
|
-
var Popover =
|
|
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__ */
|
|
2926
|
-
/* @__PURE__ */
|
|
2927
|
-
/* @__PURE__ */
|
|
2928
|
-
title != null && /* @__PURE__ */
|
|
2929
|
-
text != null && /* @__PURE__ */
|
|
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
|
|
2937
|
-
import { jsx as
|
|
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__ */
|
|
2940
|
-
/* @__PURE__ */
|
|
2941
|
-
price.period != null && /* @__PURE__ */
|
|
2942
|
-
price.was != null && /* @__PURE__ */
|
|
2943
|
-
price.note != null && /* @__PURE__ */
|
|
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 =
|
|
2973
|
+
var PriceCard = forwardRef74(function PriceCard2({
|
|
2947
2974
|
name,
|
|
2948
2975
|
description,
|
|
2949
2976
|
discount,
|
|
@@ -2959,35 +2986,35 @@ var PriceCard = forwardRef73(function PriceCard2({
|
|
|
2959
2986
|
...rest
|
|
2960
2987
|
}, ref) {
|
|
2961
2988
|
const group = `oc-price-${useId26().replace(/[^\w-]/g, "")}`;
|
|
2962
|
-
return /* @__PURE__ */
|
|
2963
|
-
/* @__PURE__ */
|
|
2964
|
-
/* @__PURE__ */
|
|
2965
|
-
discount != null && /* @__PURE__ */
|
|
2989
|
+
return /* @__PURE__ */ jsxs60("article", { ref, className: cx("oc-price-card", featured && "oc-price-card--featured", className), ...rest, children: [
|
|
2990
|
+
/* @__PURE__ */ jsxs60("div", { className: "oc-price-card__head", children: [
|
|
2991
|
+
/* @__PURE__ */ jsx76("h3", { className: "oc-price-card__name", children: name }),
|
|
2992
|
+
discount != null && /* @__PURE__ */ jsx76("span", { className: "oc-price-card__discount", children: discount })
|
|
2966
2993
|
] }),
|
|
2967
|
-
description != null && /* @__PURE__ */
|
|
2968
|
-
yearly && /* @__PURE__ */
|
|
2969
|
-
/* @__PURE__ */
|
|
2970
|
-
/* @__PURE__ */
|
|
2994
|
+
description != null && /* @__PURE__ */ jsx76("p", { className: "oc-price-card__desc", children: description }),
|
|
2995
|
+
yearly && /* @__PURE__ */ jsxs60("div", { className: "oc-segmented oc-price-card__toggle", role: "radiogroup", "aria-label": "Billing period", children: [
|
|
2996
|
+
/* @__PURE__ */ jsxs60("label", { className: "oc-segmented-item", children: [
|
|
2997
|
+
/* @__PURE__ */ jsx76("input", { type: "radio", name: group, value: "monthly", defaultChecked: defaultPeriod === "monthly" }),
|
|
2971
2998
|
" ",
|
|
2972
2999
|
monthlyLabel
|
|
2973
3000
|
] }),
|
|
2974
|
-
/* @__PURE__ */
|
|
2975
|
-
/* @__PURE__ */
|
|
3001
|
+
/* @__PURE__ */ jsxs60("label", { className: "oc-segmented-item", children: [
|
|
3002
|
+
/* @__PURE__ */ jsx76("input", { type: "radio", name: group, value: "yearly", defaultChecked: defaultPeriod === "yearly" }),
|
|
2976
3003
|
" ",
|
|
2977
3004
|
yearlyLabel
|
|
2978
3005
|
] })
|
|
2979
3006
|
] }),
|
|
2980
|
-
/* @__PURE__ */
|
|
2981
|
-
yearly && /* @__PURE__ */
|
|
2982
|
-
features.length > 0 && /* @__PURE__ */
|
|
3007
|
+
/* @__PURE__ */ jsx76(Price, { kind: "monthly", price: monthly }),
|
|
3008
|
+
yearly && /* @__PURE__ */ jsx76(Price, { kind: "yearly", price: yearly }),
|
|
3009
|
+
features.length > 0 && /* @__PURE__ */ jsx76("ul", { className: "oc-price-card__features", children: features.map((f, i) => /* @__PURE__ */ jsx76("li", { className: cx("oc-price-card__feature", f.excluded && "oc-price-card__feature--excluded"), children: f.label }, i)) }),
|
|
2983
3010
|
cta
|
|
2984
3011
|
] });
|
|
2985
3012
|
});
|
|
2986
3013
|
|
|
2987
3014
|
// src/components/ProductMark.tsx
|
|
2988
|
-
import { forwardRef as
|
|
2989
|
-
import { jsx as
|
|
2990
|
-
var ProductMark =
|
|
3015
|
+
import { forwardRef as forwardRef75 } from "react";
|
|
3016
|
+
import { jsx as jsx77 } from "react/jsx-runtime";
|
|
3017
|
+
var ProductMark = forwardRef75(function ProductMark2({ size = "default", accent, soft = false, glow = false, cover = false, className, ...rest }, ref) {
|
|
2991
3018
|
const classes = cx(
|
|
2992
3019
|
"oc-product-mark",
|
|
2993
3020
|
size !== "default" && `oc-product-mark--${size}`,
|
|
@@ -2997,132 +3024,132 @@ var ProductMark = forwardRef74(function ProductMark2({ size = "default", accent,
|
|
|
2997
3024
|
accent && `oc-accent--${accent}`,
|
|
2998
3025
|
className
|
|
2999
3026
|
);
|
|
3000
|
-
return /* @__PURE__ */
|
|
3027
|
+
return /* @__PURE__ */ jsx77("span", { ref, className: classes, "aria-hidden": "true", ...rest });
|
|
3001
3028
|
});
|
|
3002
3029
|
|
|
3003
3030
|
// src/components/ProjectCard.tsx
|
|
3004
|
-
import { forwardRef as
|
|
3005
|
-
import { jsx as
|
|
3006
|
-
var ProjectCard =
|
|
3007
|
-
return /* @__PURE__ */
|
|
3008
|
-
/* @__PURE__ */
|
|
3009
|
-
/* @__PURE__ */
|
|
3010
|
-
/* @__PURE__ */
|
|
3011
|
-
/* @__PURE__ */
|
|
3012
|
-
/* @__PURE__ */
|
|
3031
|
+
import { forwardRef as forwardRef76 } from "react";
|
|
3032
|
+
import { jsx as jsx78, jsxs as jsxs61 } from "react/jsx-runtime";
|
|
3033
|
+
var ProjectCard = forwardRef76(function ProjectCard2({ name, type, meta, more = "View project", image, imageAlt = "", flat = false, className, ...rest }, ref) {
|
|
3034
|
+
return /* @__PURE__ */ jsxs61("a", { ref, className: cx("oc-project-card", flat && "oc-project-card--flat", className), ...rest, children: [
|
|
3035
|
+
/* @__PURE__ */ jsxs61("span", { className: "oc-project-card__frame", children: [
|
|
3036
|
+
/* @__PURE__ */ jsxs61("span", { className: "oc-project-card__bar", "aria-hidden": "true", children: [
|
|
3037
|
+
/* @__PURE__ */ jsx78("i", {}),
|
|
3038
|
+
/* @__PURE__ */ jsx78("i", {}),
|
|
3039
|
+
/* @__PURE__ */ jsx78("i", {})
|
|
3013
3040
|
] }),
|
|
3014
|
-
image ? /* @__PURE__ */
|
|
3041
|
+
image ? /* @__PURE__ */ jsx78("img", { className: "oc-project-card__shot", src: image, alt: imageAlt, loading: "lazy" }) : /* @__PURE__ */ jsx78("span", { className: "oc-project-card__shot", role: "img", "aria-label": imageAlt || void 0, "aria-hidden": imageAlt ? void 0 : true })
|
|
3015
3042
|
] }),
|
|
3016
|
-
/* @__PURE__ */
|
|
3017
|
-
type != null && /* @__PURE__ */
|
|
3018
|
-
/* @__PURE__ */
|
|
3019
|
-
meta != null && /* @__PURE__ */
|
|
3020
|
-
more != null && /* @__PURE__ */
|
|
3043
|
+
/* @__PURE__ */ jsxs61("span", { className: "oc-project-card__body", children: [
|
|
3044
|
+
type != null && /* @__PURE__ */ jsx78("span", { className: "oc-project-card__type", children: type }),
|
|
3045
|
+
/* @__PURE__ */ jsx78("span", { className: "oc-project-card__name", children: name }),
|
|
3046
|
+
meta != null && /* @__PURE__ */ jsx78("span", { className: "oc-project-card__meta", children: meta }),
|
|
3047
|
+
more != null && /* @__PURE__ */ jsx78("span", { className: "oc-project-card__more", children: more })
|
|
3021
3048
|
] })
|
|
3022
3049
|
] });
|
|
3023
3050
|
});
|
|
3024
3051
|
|
|
3025
3052
|
// src/components/Prose.tsx
|
|
3026
|
-
import { forwardRef as
|
|
3027
|
-
import { Fragment as Fragment17, jsx as
|
|
3053
|
+
import { forwardRef as forwardRef77 } from "react";
|
|
3054
|
+
import { Fragment as Fragment17, jsx as jsx79, jsxs as jsxs62 } from "react/jsx-runtime";
|
|
3028
3055
|
function ProseLead({ className, ...rest }) {
|
|
3029
|
-
return /* @__PURE__ */
|
|
3056
|
+
return /* @__PURE__ */ jsx79("p", { className: cx("oc-prose-lead", className), ...rest });
|
|
3030
3057
|
}
|
|
3031
|
-
var DEMO7 = /* @__PURE__ */
|
|
3032
|
-
/* @__PURE__ */
|
|
3033
|
-
/* @__PURE__ */
|
|
3034
|
-
/* @__PURE__ */
|
|
3035
|
-
/* @__PURE__ */
|
|
3058
|
+
var DEMO7 = /* @__PURE__ */ jsxs62(Fragment17, { children: [
|
|
3059
|
+
/* @__PURE__ */ jsx79("h1", { children: "Planning a kitchen renovation" }),
|
|
3060
|
+
/* @__PURE__ */ jsx79(ProseLead, { children: "A new kitchen takes eight to twelve weeks from the first visit to the last cabinet handle. This guide explains every step, so you know what to expect and when we need you." }),
|
|
3061
|
+
/* @__PURE__ */ jsx79("h2", { children: "Before the first visit" }),
|
|
3062
|
+
/* @__PURE__ */ jsxs62("p", { children: [
|
|
3036
3063
|
"Collect a few photos of kitchens you like and measure the room roughly. Exact measurements are not needed yet: our site manager does that during the visit. Read the ",
|
|
3037
|
-
/* @__PURE__ */
|
|
3064
|
+
/* @__PURE__ */ jsx79("a", { href: "#checklist", children: "preparation checklist" }),
|
|
3038
3065
|
" if you want to be fully ready."
|
|
3039
3066
|
] }),
|
|
3040
|
-
/* @__PURE__ */
|
|
3041
|
-
/* @__PURE__ */
|
|
3067
|
+
/* @__PURE__ */ jsxs62("ul", { children: [
|
|
3068
|
+
/* @__PURE__ */ jsxs62("li", { children: [
|
|
3042
3069
|
"The ",
|
|
3043
|
-
/* @__PURE__ */
|
|
3070
|
+
/* @__PURE__ */ jsx79("strong", { children: "budget range" }),
|
|
3044
3071
|
" you have in mind, including appliances"
|
|
3045
3072
|
] }),
|
|
3046
|
-
/* @__PURE__ */
|
|
3073
|
+
/* @__PURE__ */ jsxs62("li", { children: [
|
|
3047
3074
|
"Which walls, doors and windows can move, and which cannot",
|
|
3048
|
-
/* @__PURE__ */
|
|
3049
|
-
/* @__PURE__ */
|
|
3050
|
-
/* @__PURE__ */
|
|
3075
|
+
/* @__PURE__ */ jsxs62("ul", { children: [
|
|
3076
|
+
/* @__PURE__ */ jsx79("li", { children: "Load-bearing walls need a structural engineer" }),
|
|
3077
|
+
/* @__PURE__ */ jsx79("li", { children: "Moving a window needs a permit in most towns" })
|
|
3051
3078
|
] })
|
|
3052
3079
|
] }),
|
|
3053
|
-
/* @__PURE__ */
|
|
3080
|
+
/* @__PURE__ */ jsx79("li", { children: "Appliances you want to keep" })
|
|
3054
3081
|
] }),
|
|
3055
|
-
/* @__PURE__ */
|
|
3056
|
-
/* @__PURE__ */
|
|
3057
|
-
/* @__PURE__ */
|
|
3082
|
+
/* @__PURE__ */ jsxs62("figure", { children: [
|
|
3083
|
+
/* @__PURE__ */ jsx79("div", { className: "oc-media-art oc-media-art--6", role: "img", "aria-label": "Kitchen with oak fronts and a light stone worktop" }),
|
|
3084
|
+
/* @__PURE__ */ jsx79("figcaption", { children: "Villa Dewitte: oak fronts with a Calacatta matt worktop, finished in October 2026." })
|
|
3058
3085
|
] }),
|
|
3059
|
-
/* @__PURE__ */
|
|
3060
|
-
/* @__PURE__ */
|
|
3061
|
-
/* @__PURE__ */
|
|
3062
|
-
/* @__PURE__ */
|
|
3063
|
-
/* @__PURE__ */
|
|
3064
|
-
/* @__PURE__ */
|
|
3086
|
+
/* @__PURE__ */ jsx79("h3", { children: "From design to installation" }),
|
|
3087
|
+
/* @__PURE__ */ jsxs62("ol", { children: [
|
|
3088
|
+
/* @__PURE__ */ jsx79("li", { children: "Site visit and measurements (week 1)" }),
|
|
3089
|
+
/* @__PURE__ */ jsx79("li", { children: "Design and quote, with two revision rounds (weeks 2\u20133)" }),
|
|
3090
|
+
/* @__PURE__ */ jsx79("li", { children: "Order and production of the cabinets (weeks 4\u20139)" }),
|
|
3091
|
+
/* @__PURE__ */ jsx79("li", { children: "Installation, worktop and finishing (weeks 10\u201311)" })
|
|
3065
3092
|
] }),
|
|
3066
|
-
/* @__PURE__ */
|
|
3067
|
-
/* @__PURE__ */
|
|
3068
|
-
/* @__PURE__ */
|
|
3093
|
+
/* @__PURE__ */ jsxs62("blockquote", { children: [
|
|
3094
|
+
/* @__PURE__ */ jsx79("p", { children: "The planning was clear from day one. We always knew who was coming and when, and the kitchen was ready a week early." }),
|
|
3095
|
+
/* @__PURE__ */ jsx79("footer", { children: "\u2014 Ann Dewitte, client in Ghent" })
|
|
3069
3096
|
] }),
|
|
3070
|
-
/* @__PURE__ */
|
|
3071
|
-
/* @__PURE__ */
|
|
3072
|
-
/* @__PURE__ */
|
|
3073
|
-
/* @__PURE__ */
|
|
3074
|
-
/* @__PURE__ */
|
|
3075
|
-
/* @__PURE__ */
|
|
3076
|
-
/* @__PURE__ */
|
|
3077
|
-
/* @__PURE__ */
|
|
3097
|
+
/* @__PURE__ */ jsx79("h2", { children: "Worktop materials compared" }),
|
|
3098
|
+
/* @__PURE__ */ jsxs62("table", { children: [
|
|
3099
|
+
/* @__PURE__ */ jsx79("caption", { children: "Prices per running metre, 60 cm deep, installed." }),
|
|
3100
|
+
/* @__PURE__ */ jsx79("thead", { children: /* @__PURE__ */ jsxs62("tr", { children: [
|
|
3101
|
+
/* @__PURE__ */ jsx79("th", { children: "Material" }),
|
|
3102
|
+
/* @__PURE__ */ jsx79("th", { children: "Thickness" }),
|
|
3103
|
+
/* @__PURE__ */ jsx79("th", { children: "Heat resistant" }),
|
|
3104
|
+
/* @__PURE__ */ jsx79("th", { children: "Price" })
|
|
3078
3105
|
] }) }),
|
|
3079
|
-
/* @__PURE__ */
|
|
3080
|
-
/* @__PURE__ */
|
|
3081
|
-
/* @__PURE__ */
|
|
3082
|
-
/* @__PURE__ */
|
|
3083
|
-
/* @__PURE__ */
|
|
3084
|
-
/* @__PURE__ */
|
|
3106
|
+
/* @__PURE__ */ jsxs62("tbody", { children: [
|
|
3107
|
+
/* @__PURE__ */ jsxs62("tr", { children: [
|
|
3108
|
+
/* @__PURE__ */ jsx79("td", { children: "Compact laminate" }),
|
|
3109
|
+
/* @__PURE__ */ jsx79("td", { children: "12 mm" }),
|
|
3110
|
+
/* @__PURE__ */ jsx79("td", { children: "Up to 180 \xB0C" }),
|
|
3111
|
+
/* @__PURE__ */ jsx79("td", { children: "\u20AC 290" })
|
|
3085
3112
|
] }),
|
|
3086
|
-
/* @__PURE__ */
|
|
3087
|
-
/* @__PURE__ */
|
|
3088
|
-
/* @__PURE__ */
|
|
3089
|
-
/* @__PURE__ */
|
|
3090
|
-
/* @__PURE__ */
|
|
3113
|
+
/* @__PURE__ */ jsxs62("tr", { children: [
|
|
3114
|
+
/* @__PURE__ */ jsx79("td", { children: "Quartz composite" }),
|
|
3115
|
+
/* @__PURE__ */ jsx79("td", { children: "20 mm" }),
|
|
3116
|
+
/* @__PURE__ */ jsx79("td", { children: "Up to 150 \xB0C" }),
|
|
3117
|
+
/* @__PURE__ */ jsx79("td", { children: "\u20AC 540" })
|
|
3091
3118
|
] }),
|
|
3092
|
-
/* @__PURE__ */
|
|
3093
|
-
/* @__PURE__ */
|
|
3094
|
-
/* @__PURE__ */
|
|
3095
|
-
/* @__PURE__ */
|
|
3096
|
-
/* @__PURE__ */
|
|
3119
|
+
/* @__PURE__ */ jsxs62("tr", { children: [
|
|
3120
|
+
/* @__PURE__ */ jsx79("td", { children: "Natural stone" }),
|
|
3121
|
+
/* @__PURE__ */ jsx79("td", { children: "20 mm" }),
|
|
3122
|
+
/* @__PURE__ */ jsx79("td", { children: "Yes" }),
|
|
3123
|
+
/* @__PURE__ */ jsx79("td", { children: "\u20AC 720" })
|
|
3097
3124
|
] })
|
|
3098
3125
|
] })
|
|
3099
3126
|
] }),
|
|
3100
|
-
/* @__PURE__ */
|
|
3101
|
-
/* @__PURE__ */
|
|
3127
|
+
/* @__PURE__ */ jsx79("h3", { children: "Sharing your floor plan" }),
|
|
3128
|
+
/* @__PURE__ */ jsxs62("p", { children: [
|
|
3102
3129
|
"Upload a PDF or a photo in the client portal, or send it by e-mail. Press ",
|
|
3103
|
-
/* @__PURE__ */
|
|
3130
|
+
/* @__PURE__ */ jsx79("kbd", { children: "Ctrl" }),
|
|
3104
3131
|
" + ",
|
|
3105
|
-
/* @__PURE__ */
|
|
3132
|
+
/* @__PURE__ */ jsx79("kbd", { children: "V" }),
|
|
3106
3133
|
" in the chat to paste a screenshot. Files are stored as ",
|
|
3107
|
-
/* @__PURE__ */
|
|
3134
|
+
/* @__PURE__ */ jsx79("code", { children: "project-id/plans/" }),
|
|
3108
3135
|
" and only your project team can see them."
|
|
3109
3136
|
] }),
|
|
3110
|
-
/* @__PURE__ */
|
|
3111
|
-
/* @__PURE__ */
|
|
3112
|
-
/* @__PURE__ */
|
|
3137
|
+
/* @__PURE__ */ jsx79("pre", { children: /* @__PURE__ */ jsx79("code", { children: "Project: 2026-114 Villa Dewitte\nRoom: Kitchen, ground floor\nWall A: 412 cm (window at 160 cm)\nWall B: 298 cm (door at the left)" }) }),
|
|
3138
|
+
/* @__PURE__ */ jsx79("hr", {}),
|
|
3139
|
+
/* @__PURE__ */ jsx79("p", { children: /* @__PURE__ */ jsxs62("small", { children: [
|
|
3113
3140
|
"Lead times are an estimate. ",
|
|
3114
|
-
/* @__PURE__ */
|
|
3141
|
+
/* @__PURE__ */ jsx79("mark", { children: "Natural stone" }),
|
|
3115
3142
|
" can take two weeks longer in summer."
|
|
3116
3143
|
] }) })
|
|
3117
3144
|
] });
|
|
3118
|
-
var Prose =
|
|
3119
|
-
return /* @__PURE__ */
|
|
3145
|
+
var Prose = forwardRef77(function Prose2({ size = "md", full, as: Tag = "article", className, children, ...rest }, ref) {
|
|
3146
|
+
return /* @__PURE__ */ jsx79(Tag, { ref, className: cx("oc-prose", size !== "md" && `oc-prose--${size}`, full && "oc-prose--full", className), ...rest, children: children ?? DEMO7 });
|
|
3120
3147
|
});
|
|
3121
3148
|
|
|
3122
3149
|
// src/components/RecoveryCodes.tsx
|
|
3123
|
-
import { forwardRef as
|
|
3124
|
-
import { jsx as
|
|
3125
|
-
var RecoveryCodes =
|
|
3150
|
+
import { forwardRef as forwardRef78 } from "react";
|
|
3151
|
+
import { jsx as jsx80, jsxs as jsxs63 } from "react/jsx-runtime";
|
|
3152
|
+
var RecoveryCodes = forwardRef78(function RecoveryCodes2({
|
|
3126
3153
|
codes,
|
|
3127
3154
|
title = "Recovery codes",
|
|
3128
3155
|
warning = "Store these codes somewhere safe. Each code works once.",
|
|
@@ -3150,33 +3177,33 @@ var RecoveryCodes = forwardRef77(function RecoveryCodes2({
|
|
|
3150
3177
|
URL.revokeObjectURL(url);
|
|
3151
3178
|
onDownload?.(codes);
|
|
3152
3179
|
};
|
|
3153
|
-
return /* @__PURE__ */
|
|
3154
|
-
/* @__PURE__ */
|
|
3155
|
-
/* @__PURE__ */
|
|
3156
|
-
/* @__PURE__ */
|
|
3157
|
-
/* @__PURE__ */
|
|
3158
|
-
/* @__PURE__ */
|
|
3159
|
-
/* @__PURE__ */
|
|
3180
|
+
return /* @__PURE__ */ jsxs63("div", { ref, className: cx("oc-recovery-codes", className), ...rest, children: [
|
|
3181
|
+
/* @__PURE__ */ jsx80("h3", { className: "oc-recovery-codes-title", children: title }),
|
|
3182
|
+
/* @__PURE__ */ jsx80("p", { className: "oc-recovery-codes-warning", children: warning }),
|
|
3183
|
+
/* @__PURE__ */ jsx80("ul", { className: "oc-recovery-codes-list", children: codes.map((code) => /* @__PURE__ */ jsx80("li", { children: code }, code)) }),
|
|
3184
|
+
/* @__PURE__ */ jsxs63("div", { className: "oc-recovery-codes-actions", children: [
|
|
3185
|
+
/* @__PURE__ */ jsx80("button", { className: "oc-btn oc-btn--outline oc-btn--sm", type: "button", onClick: copy, children: copyLabel }),
|
|
3186
|
+
/* @__PURE__ */ jsx80("button", { className: "oc-btn oc-btn--outline oc-btn--sm", type: "button", onClick: download2, children: downloadLabel })
|
|
3160
3187
|
] })
|
|
3161
3188
|
] });
|
|
3162
3189
|
});
|
|
3163
3190
|
|
|
3164
3191
|
// src/components/Segmented.tsx
|
|
3165
|
-
import { forwardRef as
|
|
3166
|
-
import { jsx as
|
|
3167
|
-
var Segmented =
|
|
3192
|
+
import { forwardRef as forwardRef79, useId as useId27 } from "react";
|
|
3193
|
+
import { jsx as jsx81, jsxs as jsxs64 } from "react/jsx-runtime";
|
|
3194
|
+
var Segmented = forwardRef79(function Segmented2({ options, value, defaultValue, onChange, name, block, size = "md", className, ...rest }, ref) {
|
|
3168
3195
|
const auto = useId27();
|
|
3169
3196
|
const group = name ?? `oc-segmented-${auto.replace(/:/g, "")}`;
|
|
3170
3197
|
const [current, setCurrent] = useControllable(value, defaultValue ?? options[0]?.value ?? "", onChange);
|
|
3171
|
-
return /* @__PURE__ */
|
|
3198
|
+
return /* @__PURE__ */ jsx81(
|
|
3172
3199
|
"div",
|
|
3173
3200
|
{
|
|
3174
3201
|
ref,
|
|
3175
3202
|
className: cx("oc-segmented", block && "oc-segmented--block", size === "sm" && "oc-segmented--sm", className),
|
|
3176
3203
|
role: "radiogroup",
|
|
3177
3204
|
...rest,
|
|
3178
|
-
children: options.map((o) => /* @__PURE__ */
|
|
3179
|
-
/* @__PURE__ */
|
|
3205
|
+
children: options.map((o) => /* @__PURE__ */ jsxs64("label", { className: "oc-segmented-item", children: [
|
|
3206
|
+
/* @__PURE__ */ jsx81("input", { type: "radio", name: group, value: o.value, checked: current === o.value, onChange: () => setCurrent(o.value) }),
|
|
3180
3207
|
" ",
|
|
3181
3208
|
o.label
|
|
3182
3209
|
] }, o.value))
|
|
@@ -3185,44 +3212,44 @@ var Segmented = forwardRef78(function Segmented2({ options, value, defaultValue,
|
|
|
3185
3212
|
});
|
|
3186
3213
|
|
|
3187
3214
|
// src/components/Select.tsx
|
|
3188
|
-
import { forwardRef as
|
|
3189
|
-
import { jsx as
|
|
3190
|
-
var Select =
|
|
3191
|
-
return /* @__PURE__ */
|
|
3215
|
+
import { forwardRef as forwardRef80 } from "react";
|
|
3216
|
+
import { jsx as jsx82, jsxs as jsxs65 } from "react/jsx-runtime";
|
|
3217
|
+
var Select = forwardRef80(function Select2({ options, className, children, ...rest }, ref) {
|
|
3218
|
+
return /* @__PURE__ */ jsxs65("select", { ref, className: cx("oc-select", className), ...rest, children: [
|
|
3192
3219
|
options?.map((o) => {
|
|
3193
3220
|
const opt = typeof o === "string" ? { value: o, label: o } : o;
|
|
3194
|
-
return /* @__PURE__ */
|
|
3221
|
+
return /* @__PURE__ */ jsx82("option", { value: opt.value, disabled: opt.disabled, children: opt.label }, opt.value);
|
|
3195
3222
|
}),
|
|
3196
3223
|
children
|
|
3197
3224
|
] });
|
|
3198
3225
|
});
|
|
3199
3226
|
|
|
3200
3227
|
// src/components/SeverityCard.tsx
|
|
3201
|
-
import { forwardRef as
|
|
3202
|
-
import { jsx as
|
|
3228
|
+
import { forwardRef as forwardRef81 } from "react";
|
|
3229
|
+
import { jsx as jsx83, jsxs as jsxs66 } from "react/jsx-runtime";
|
|
3203
3230
|
var LEVEL_TEXT = { low: "Low", medium: "Medium", high: "High", critical: "Critical" };
|
|
3204
|
-
var SeverityCard =
|
|
3231
|
+
var SeverityCard = forwardRef81(function SeverityCard2({ level, title, tags, levelLabel, icon, resolved, actions, className, children, ...rest }, ref) {
|
|
3205
3232
|
const cls = cx("oc-severity-card", `oc-severity-card--${level}`, resolved && "is-resolved", className);
|
|
3206
|
-
return /* @__PURE__ */
|
|
3207
|
-
/* @__PURE__ */
|
|
3208
|
-
icon != null && /* @__PURE__ */
|
|
3209
|
-
/* @__PURE__ */
|
|
3210
|
-
/* @__PURE__ */
|
|
3211
|
-
tags && tags.length > 0 && /* @__PURE__ */
|
|
3233
|
+
return /* @__PURE__ */ jsxs66("details", { ref, className: cls, ...rest, children: [
|
|
3234
|
+
/* @__PURE__ */ jsxs66("summary", { className: "oc-severity-card-head", children: [
|
|
3235
|
+
icon != null && /* @__PURE__ */ jsx83("span", { className: "oc-severity-card-icon", "aria-hidden": "true", children: icon }),
|
|
3236
|
+
/* @__PURE__ */ jsxs66("span", { className: "oc-severity-card-main", children: [
|
|
3237
|
+
/* @__PURE__ */ jsx83("span", { className: "oc-severity-card-title", children: title }),
|
|
3238
|
+
tags && tags.length > 0 && /* @__PURE__ */ jsx83("span", { className: "oc-severity-card-tags", children: tags.map((t, i) => /* @__PURE__ */ jsx83("span", { className: "oc-severity-card-tag", children: t }, i)) })
|
|
3212
3239
|
] }),
|
|
3213
|
-
/* @__PURE__ */
|
|
3240
|
+
/* @__PURE__ */ jsx83("span", { className: "oc-severity-card-level", children: levelLabel ?? LEVEL_TEXT[level] })
|
|
3214
3241
|
] }),
|
|
3215
|
-
/* @__PURE__ */
|
|
3242
|
+
/* @__PURE__ */ jsxs66("div", { className: "oc-severity-card-body", children: [
|
|
3216
3243
|
children,
|
|
3217
|
-
actions != null && /* @__PURE__ */
|
|
3244
|
+
actions != null && /* @__PURE__ */ jsx83("div", { className: "oc-severity-card-actions", children: actions })
|
|
3218
3245
|
] })
|
|
3219
3246
|
] });
|
|
3220
3247
|
});
|
|
3221
3248
|
|
|
3222
3249
|
// src/components/Sheet.tsx
|
|
3223
|
-
import { forwardRef as
|
|
3224
|
-
import { jsx as
|
|
3225
|
-
var Sheet =
|
|
3250
|
+
import { forwardRef as forwardRef82, useId as useId28, useRef as useRef10 } from "react";
|
|
3251
|
+
import { jsx as jsx84, jsxs as jsxs67 } from "react/jsx-runtime";
|
|
3252
|
+
var Sheet = forwardRef82(function Sheet2({ open, defaultOpen, onOpenChange, side = "right", wide, title, description, footer, closeLabel = "Close", className, children, ...rest }, forwardedRef) {
|
|
3226
3253
|
const inner = useRef10(null);
|
|
3227
3254
|
const ref = useMergedRef(inner, forwardedRef);
|
|
3228
3255
|
const titleId = useId28();
|
|
@@ -3231,7 +3258,7 @@ var Sheet = forwardRef81(function Sheet2({ open, defaultOpen, onOpenChange, side
|
|
|
3231
3258
|
rest.onClick?.(e);
|
|
3232
3259
|
if (e.target === e.currentTarget) dlg.close();
|
|
3233
3260
|
};
|
|
3234
|
-
return /* @__PURE__ */
|
|
3261
|
+
return /* @__PURE__ */ jsx84(
|
|
3235
3262
|
"dialog",
|
|
3236
3263
|
{
|
|
3237
3264
|
ref,
|
|
@@ -3241,57 +3268,57 @@ var Sheet = forwardRef81(function Sheet2({ open, defaultOpen, onOpenChange, side
|
|
|
3241
3268
|
...rest,
|
|
3242
3269
|
onClick,
|
|
3243
3270
|
onClose: dlg.onClose,
|
|
3244
|
-
children: /* @__PURE__ */
|
|
3245
|
-
/* @__PURE__ */
|
|
3246
|
-
(title != null || description != null) && /* @__PURE__ */
|
|
3247
|
-
title != null && /* @__PURE__ */
|
|
3248
|
-
description != null && /* @__PURE__ */
|
|
3271
|
+
children: /* @__PURE__ */ jsx84(DialogContext.Provider, { value: { close: dlg.close }, children: /* @__PURE__ */ jsxs67("div", { className: cx("oc-sheet-content", wide && "oc-sheet-content--wide"), children: [
|
|
3272
|
+
/* @__PURE__ */ jsx84("button", { className: "oc-sheet-close", type: "button", "aria-label": closeLabel, onClick: dlg.close, children: "\xD7" }),
|
|
3273
|
+
(title != null || description != null) && /* @__PURE__ */ jsxs67("div", { className: "oc-sheet-header", children: [
|
|
3274
|
+
title != null && /* @__PURE__ */ jsx84("h2", { className: "oc-sheet-title", id: titleId, children: title }),
|
|
3275
|
+
description != null && /* @__PURE__ */ jsx84("p", { className: "oc-sheet-description", children: description })
|
|
3249
3276
|
] }),
|
|
3250
|
-
/* @__PURE__ */
|
|
3251
|
-
footer != null && /* @__PURE__ */
|
|
3277
|
+
/* @__PURE__ */ jsx84("div", { className: "oc-sheet-body", children }),
|
|
3278
|
+
footer != null && /* @__PURE__ */ jsx84("div", { className: "oc-sheet-footer", children: footer })
|
|
3252
3279
|
] }) })
|
|
3253
3280
|
}
|
|
3254
3281
|
);
|
|
3255
3282
|
});
|
|
3256
3283
|
|
|
3257
3284
|
// src/components/Sidebar.tsx
|
|
3258
|
-
import { forwardRef as
|
|
3259
|
-
import { Fragment as Fragment18, jsx as
|
|
3260
|
-
var Sidebar =
|
|
3261
|
-
return /* @__PURE__ */
|
|
3285
|
+
import { forwardRef as forwardRef83 } from "react";
|
|
3286
|
+
import { Fragment as Fragment18, jsx as jsx85, jsxs as jsxs68 } from "react/jsx-runtime";
|
|
3287
|
+
var Sidebar = forwardRef83(function Sidebar2({ collapsed, right, floating, dark, header, footer, className, children, ...rest }, ref) {
|
|
3288
|
+
return /* @__PURE__ */ jsxs68(
|
|
3262
3289
|
"aside",
|
|
3263
3290
|
{
|
|
3264
3291
|
ref,
|
|
3265
3292
|
className: cx("oc-sidebar", collapsed && "oc-sidebar--collapsed", right && "oc-sidebar--right", floating && "oc-sidebar--floating", dark && "oc-sidebar--dark", className),
|
|
3266
3293
|
...rest,
|
|
3267
3294
|
children: [
|
|
3268
|
-
header != null && /* @__PURE__ */
|
|
3269
|
-
/* @__PURE__ */
|
|
3270
|
-
footer != null && /* @__PURE__ */
|
|
3295
|
+
header != null && /* @__PURE__ */ jsx85("div", { className: "oc-sidebar-header", children: header }),
|
|
3296
|
+
/* @__PURE__ */ jsx85("div", { className: "oc-sidebar-content", children }),
|
|
3297
|
+
footer != null && /* @__PURE__ */ jsx85("div", { className: "oc-sidebar-footer", children: footer })
|
|
3271
3298
|
]
|
|
3272
3299
|
}
|
|
3273
3300
|
);
|
|
3274
3301
|
});
|
|
3275
|
-
var SidebarGroup =
|
|
3276
|
-
return /* @__PURE__ */
|
|
3277
|
-
label != null && /* @__PURE__ */
|
|
3302
|
+
var SidebarGroup = forwardRef83(function SidebarGroup2({ label, className, children, ...rest }, ref) {
|
|
3303
|
+
return /* @__PURE__ */ jsxs68("div", { ref, className: cx("oc-sidebar-group", className), ...rest, children: [
|
|
3304
|
+
label != null && /* @__PURE__ */ jsx85("div", { className: "oc-sidebar-group-label", children: label }),
|
|
3278
3305
|
children
|
|
3279
3306
|
] });
|
|
3280
3307
|
});
|
|
3281
3308
|
function SidebarSeparator({ className, ...rest }) {
|
|
3282
|
-
return /* @__PURE__ */
|
|
3309
|
+
return /* @__PURE__ */ jsx85("div", { className: cx("oc-sidebar-separator", className), ...rest });
|
|
3283
3310
|
}
|
|
3284
|
-
var SidebarMenu =
|
|
3285
|
-
return /* @__PURE__ */
|
|
3311
|
+
var SidebarMenu = forwardRef83(function SidebarMenu2({ className, ...rest }, ref) {
|
|
3312
|
+
return /* @__PURE__ */ jsx85("ul", { ref, className: cx("oc-sidebar-menu", className), ...rest });
|
|
3286
3313
|
});
|
|
3287
3314
|
function SidebarMenuItem(props) {
|
|
3288
|
-
return /* @__PURE__ */
|
|
3315
|
+
return /* @__PURE__ */ jsx85("li", { ...props });
|
|
3289
3316
|
}
|
|
3290
|
-
var SidebarMenuButton =
|
|
3291
|
-
const content = /* @__PURE__ */
|
|
3317
|
+
var SidebarMenuButton = forwardRef83(function SidebarMenuButton2({ icon, badge, current, disabled, size = "md", label = true, className, children, href, ...rest }, ref) {
|
|
3318
|
+
const content = /* @__PURE__ */ jsxs68(Fragment18, { children: [
|
|
3292
3319
|
icon,
|
|
3293
|
-
label ? /* @__PURE__ */
|
|
3294
|
-
badge != null && /* @__PURE__ */
|
|
3320
|
+
label ? /* @__PURE__ */ jsx85("span", { className: "oc-sidebar-menu-label", children }) : children,
|
|
3321
|
+
badge != null && /* @__PURE__ */ jsx85("span", { className: "oc-sidebar-menu-badge", children: badge })
|
|
3295
3322
|
] });
|
|
3296
3323
|
const props = {
|
|
3297
3324
|
className: cx("oc-sidebar-menu-button", size === "lg" && "oc-sidebar-menu-button--lg", className),
|
|
@@ -3299,13 +3326,13 @@ var SidebarMenuButton = forwardRef82(function SidebarMenuButton2({ icon, badge,
|
|
|
3299
3326
|
"aria-disabled": disabled ? true : void 0
|
|
3300
3327
|
};
|
|
3301
3328
|
if (href === void 0) {
|
|
3302
|
-
return /* @__PURE__ */
|
|
3329
|
+
return /* @__PURE__ */ jsx85("button", { type: "button", ...props, ...rest, children: content });
|
|
3303
3330
|
}
|
|
3304
|
-
return /* @__PURE__ */
|
|
3331
|
+
return /* @__PURE__ */ jsx85("a", { ref, href, ...props, ...rest, children: content });
|
|
3305
3332
|
});
|
|
3306
|
-
var SidebarCollapsible =
|
|
3333
|
+
var SidebarCollapsible = forwardRef83(function SidebarCollapsible2({ icon, label, open, defaultOpen, onOpenChange, className, children, ...rest }, ref) {
|
|
3307
3334
|
const [isOpen, setOpen] = useControllable(open, defaultOpen ?? false, onOpenChange);
|
|
3308
|
-
return /* @__PURE__ */
|
|
3335
|
+
return /* @__PURE__ */ jsxs68(
|
|
3309
3336
|
"details",
|
|
3310
3337
|
{
|
|
3311
3338
|
ref,
|
|
@@ -3316,30 +3343,30 @@ var SidebarCollapsible = forwardRef82(function SidebarCollapsible2({ icon, label
|
|
|
3316
3343
|
},
|
|
3317
3344
|
...rest,
|
|
3318
3345
|
children: [
|
|
3319
|
-
/* @__PURE__ */
|
|
3346
|
+
/* @__PURE__ */ jsxs68("summary", { className: "oc-sidebar-menu-button", children: [
|
|
3320
3347
|
icon,
|
|
3321
|
-
/* @__PURE__ */
|
|
3348
|
+
/* @__PURE__ */ jsx85("span", { className: "oc-sidebar-menu-label", children: label })
|
|
3322
3349
|
] }),
|
|
3323
|
-
/* @__PURE__ */
|
|
3350
|
+
/* @__PURE__ */ jsx85("ul", { className: "oc-sidebar-menu-sub", children })
|
|
3324
3351
|
]
|
|
3325
3352
|
}
|
|
3326
3353
|
);
|
|
3327
3354
|
});
|
|
3328
3355
|
|
|
3329
3356
|
// src/components/Skeleton.tsx
|
|
3330
|
-
import { forwardRef as
|
|
3331
|
-
import { jsx as
|
|
3332
|
-
var Skeleton =
|
|
3333
|
-
return /* @__PURE__ */
|
|
3357
|
+
import { forwardRef as forwardRef84 } from "react";
|
|
3358
|
+
import { jsx as jsx86 } from "react/jsx-runtime";
|
|
3359
|
+
var Skeleton = forwardRef84(function Skeleton2({ variant, className, ...rest }, ref) {
|
|
3360
|
+
return /* @__PURE__ */ jsx86("div", { ref, className: cx("oc-skeleton", variant && `oc-skeleton--${variant}`, className), ...rest });
|
|
3334
3361
|
});
|
|
3335
3362
|
|
|
3336
3363
|
// src/components/SortableRow.tsx
|
|
3337
|
-
import { forwardRef as
|
|
3338
|
-
import { jsx as
|
|
3339
|
-
var SortableRow =
|
|
3364
|
+
import { forwardRef as forwardRef85 } from "react";
|
|
3365
|
+
import { jsx as jsx87, jsxs as jsxs69 } from "react/jsx-runtime";
|
|
3366
|
+
var SortableRow = forwardRef85(function SortableRow2({ gripLabel, dragging, drop, locked, grabbed, onGripKeyDown, className, children, ...rest }, ref) {
|
|
3340
3367
|
const cls = cx("oc-sortable-row", dragging && "is-dragging", drop && `is-drop-${drop}`, className);
|
|
3341
|
-
return /* @__PURE__ */
|
|
3342
|
-
/* @__PURE__ */
|
|
3368
|
+
return /* @__PURE__ */ jsxs69("tr", { ref, className: cls, draggable: locked ? void 0 : true, ...rest, children: [
|
|
3369
|
+
/* @__PURE__ */ jsx87("td", { className: "oc-sortable-row-grip-cell", children: /* @__PURE__ */ jsx87(
|
|
3343
3370
|
"button",
|
|
3344
3371
|
{
|
|
3345
3372
|
className: "oc-sortable-row-grip",
|
|
@@ -3355,64 +3382,87 @@ var SortableRow = forwardRef84(function SortableRow2({ gripLabel, dragging, drop
|
|
|
3355
3382
|
});
|
|
3356
3383
|
|
|
3357
3384
|
// src/components/StackCard.tsx
|
|
3358
|
-
import { forwardRef as
|
|
3359
|
-
import { jsx as
|
|
3360
|
-
var StackCard =
|
|
3361
|
-
return /* @__PURE__ */
|
|
3362
|
-
/* @__PURE__ */
|
|
3363
|
-
/* @__PURE__ */
|
|
3364
|
-
count != null && /* @__PURE__ */
|
|
3385
|
+
import { forwardRef as forwardRef86 } from "react";
|
|
3386
|
+
import { jsx as jsx88, jsxs as jsxs70 } from "react/jsx-runtime";
|
|
3387
|
+
var StackCard = forwardRef86(function StackCard2({ title, href, meta, count, panel, thumb, className, ...rest }, ref) {
|
|
3388
|
+
return /* @__PURE__ */ jsxs70("article", { ref, className: cx("oc-stack-card", panel && "oc-stack-card--panel", className), ...rest, children: [
|
|
3389
|
+
/* @__PURE__ */ jsxs70("div", { className: "oc-stack-card__deck", children: [
|
|
3390
|
+
/* @__PURE__ */ jsx88(MediaThumb, { ...thumb }),
|
|
3391
|
+
count != null && /* @__PURE__ */ jsx88("span", { className: "oc-stack-card__count", children: count })
|
|
3365
3392
|
] }),
|
|
3366
|
-
/* @__PURE__ */
|
|
3367
|
-
/* @__PURE__ */
|
|
3368
|
-
meta != null && /* @__PURE__ */
|
|
3393
|
+
/* @__PURE__ */ jsxs70("div", { children: [
|
|
3394
|
+
/* @__PURE__ */ jsx88("h3", { className: "oc-stack-card__title", children: /* @__PURE__ */ jsx88("a", { href, children: title }) }),
|
|
3395
|
+
meta != null && /* @__PURE__ */ jsx88("p", { className: "oc-stack-card__meta", children: meta })
|
|
3369
3396
|
] })
|
|
3370
3397
|
] });
|
|
3371
3398
|
});
|
|
3372
3399
|
|
|
3373
3400
|
// src/components/StackList.tsx
|
|
3374
|
-
import { forwardRef as
|
|
3375
|
-
import { Fragment as Fragment19, jsx as
|
|
3401
|
+
import { forwardRef as forwardRef87 } from "react";
|
|
3402
|
+
import { Fragment as Fragment19, jsx as jsx89, jsxs as jsxs71 } from "react/jsx-runtime";
|
|
3376
3403
|
var isItem = (v) => typeof v === "object" && v !== null && "label" in v;
|
|
3377
|
-
var StackList =
|
|
3378
|
-
return /* @__PURE__ */
|
|
3379
|
-
item.icon != null && /* @__PURE__ */
|
|
3404
|
+
var StackList = forwardRef87(function StackList2({ items, neutral = false, size = "default", className, ...rest }, ref) {
|
|
3405
|
+
return /* @__PURE__ */ jsx89("ul", { ref, className: cx("oc-stack-list", neutral && "oc-stack-list--neutral", size === "sm" && "oc-stack-list--sm", className), ...rest, children: items.map((item, i) => /* @__PURE__ */ jsx89("li", { className: "oc-stack-list__item", children: isItem(item) ? /* @__PURE__ */ jsxs71(Fragment19, { children: [
|
|
3406
|
+
item.icon != null && /* @__PURE__ */ jsx89("span", { className: "oc-stack-list__icon", "aria-hidden": "true", children: item.icon }),
|
|
3380
3407
|
item.label
|
|
3381
3408
|
] }) : item }, i)) });
|
|
3382
3409
|
});
|
|
3383
3410
|
|
|
3384
3411
|
// src/components/StatCard.tsx
|
|
3385
|
-
import { forwardRef as
|
|
3386
|
-
import { Fragment as Fragment20, jsx as
|
|
3387
|
-
var StatCardGrid =
|
|
3388
|
-
return /* @__PURE__ */
|
|
3412
|
+
import { forwardRef as forwardRef88 } from "react";
|
|
3413
|
+
import { Fragment as Fragment20, jsx as jsx90, jsxs as jsxs72 } from "react/jsx-runtime";
|
|
3414
|
+
var StatCardGrid = forwardRef88(function StatCardGrid2({ className, ...rest }, ref) {
|
|
3415
|
+
return /* @__PURE__ */ jsx90("div", { ref, className: cx("oc-stat-card-grid", className), ...rest });
|
|
3389
3416
|
});
|
|
3390
3417
|
function StatCard({ value, label, icon, trend, trendDirection = "up", tone = "default", stripe, href, onClick, className, ...rest }) {
|
|
3391
3418
|
const cls = cx("oc-stat-card", tone !== "default" && `oc-stat-card--${tone}`, stripe && "oc-stat-card--stripe", className);
|
|
3392
|
-
const content = /* @__PURE__ */
|
|
3393
|
-
icon != null && /* @__PURE__ */
|
|
3394
|
-
/* @__PURE__ */
|
|
3395
|
-
/* @__PURE__ */
|
|
3419
|
+
const content = /* @__PURE__ */ jsxs72(Fragment20, { children: [
|
|
3420
|
+
icon != null && /* @__PURE__ */ jsx90("span", { className: "oc-stat-card-icon", "aria-hidden": "true", children: icon }),
|
|
3421
|
+
/* @__PURE__ */ jsxs72("span", { className: "oc-stat-card-body", children: [
|
|
3422
|
+
/* @__PURE__ */ jsxs72("span", { className: "oc-stat-card-value", children: [
|
|
3396
3423
|
value,
|
|
3397
|
-
trend != null && /* @__PURE__ */
|
|
3424
|
+
trend != null && /* @__PURE__ */ jsx90("span", { className: `oc-stat-card-trend oc-stat-card-trend--${trendDirection}`, children: trend })
|
|
3398
3425
|
] }),
|
|
3399
|
-
/* @__PURE__ */
|
|
3426
|
+
/* @__PURE__ */ jsx90("span", { className: "oc-stat-card-label", children: label })
|
|
3400
3427
|
] })
|
|
3401
3428
|
] });
|
|
3402
|
-
if (href !== void 0) return /* @__PURE__ */
|
|
3403
|
-
if (onClick) return /* @__PURE__ */
|
|
3404
|
-
return /* @__PURE__ */
|
|
3429
|
+
if (href !== void 0) return /* @__PURE__ */ jsx90("a", { className: cls, href, ...rest, children: content });
|
|
3430
|
+
if (onClick) return /* @__PURE__ */ jsx90("button", { className: cls, type: "button", onClick, ...rest, children: content });
|
|
3431
|
+
return /* @__PURE__ */ jsx90("div", { className: cls, ...rest, children: content });
|
|
3405
3432
|
}
|
|
3406
3433
|
|
|
3434
|
+
// src/components/StatusDot.tsx
|
|
3435
|
+
import { forwardRef as forwardRef89 } from "react";
|
|
3436
|
+
import { jsx as jsx91, jsxs as jsxs73 } from "react/jsx-runtime";
|
|
3437
|
+
var StatusDot = forwardRef89(function StatusDot2({ tone = "default", size = "md", label, className, ...rest }, ref) {
|
|
3438
|
+
const a11y = label ? { role: "img", "aria-label": label } : { "aria-hidden": true };
|
|
3439
|
+
return /* @__PURE__ */ jsx91(
|
|
3440
|
+
"span",
|
|
3441
|
+
{
|
|
3442
|
+
ref,
|
|
3443
|
+
className: cx("oc-status-dot", tone !== "default" && `oc-status-dot--${tone}`, size !== "md" && `oc-status-dot--${size}`, className),
|
|
3444
|
+
...a11y,
|
|
3445
|
+
...rest
|
|
3446
|
+
}
|
|
3447
|
+
);
|
|
3448
|
+
});
|
|
3449
|
+
var Status = forwardRef89(function Status2({ tone = "default", meta, className, children, ...rest }, ref) {
|
|
3450
|
+
return /* @__PURE__ */ jsxs73("p", { ref, className: cx("oc-status", className), ...rest, children: [
|
|
3451
|
+
/* @__PURE__ */ jsx91(StatusDot, { tone }),
|
|
3452
|
+
/* @__PURE__ */ jsx91("span", { className: "oc-status__text", children }),
|
|
3453
|
+
meta != null && /* @__PURE__ */ jsx91("span", { className: "oc-status__meta", children: meta })
|
|
3454
|
+
] });
|
|
3455
|
+
});
|
|
3456
|
+
|
|
3407
3457
|
// src/components/Stepper.tsx
|
|
3408
|
-
import { forwardRef as
|
|
3409
|
-
import { jsx as
|
|
3410
|
-
var Stepper =
|
|
3411
|
-
return /* @__PURE__ */
|
|
3458
|
+
import { forwardRef as forwardRef90 } from "react";
|
|
3459
|
+
import { jsx as jsx92, jsxs as jsxs74 } from "react/jsx-runtime";
|
|
3460
|
+
var Stepper = forwardRef90(function Stepper2({ steps, current, horizontal, onStepChange, className, ...rest }, ref) {
|
|
3461
|
+
return /* @__PURE__ */ jsx92("ol", { ref, className: cx("oc-stepper", horizontal && "oc-stepper--horizontal", className), ...rest, children: steps.map((step, i) => {
|
|
3412
3462
|
const done = i < current;
|
|
3413
3463
|
const active = i === current;
|
|
3414
|
-
const label = /* @__PURE__ */
|
|
3415
|
-
return /* @__PURE__ */
|
|
3464
|
+
const label = /* @__PURE__ */ jsx92("span", { className: "oc-stepper-label", children: step.label });
|
|
3465
|
+
return /* @__PURE__ */ jsx92("li", { children: /* @__PURE__ */ jsx92(
|
|
3416
3466
|
"button",
|
|
3417
3467
|
{
|
|
3418
3468
|
className: cx("oc-stepper-item", done && "oc-stepper-item--done", active && "oc-stepper-item--active"),
|
|
@@ -3420,9 +3470,9 @@ var Stepper = forwardRef88(function Stepper2({ steps, current, horizontal, onSte
|
|
|
3420
3470
|
"aria-current": active ? "step" : void 0,
|
|
3421
3471
|
disabled: i > current,
|
|
3422
3472
|
onClick: () => onStepChange?.(i),
|
|
3423
|
-
children: step.meta != null ? /* @__PURE__ */
|
|
3473
|
+
children: step.meta != null ? /* @__PURE__ */ jsxs74("span", { children: [
|
|
3424
3474
|
label,
|
|
3425
|
-
/* @__PURE__ */
|
|
3475
|
+
/* @__PURE__ */ jsx92("span", { className: "oc-stepper-meta", children: step.meta })
|
|
3426
3476
|
] }) : label
|
|
3427
3477
|
}
|
|
3428
3478
|
) }, i);
|
|
@@ -3430,20 +3480,20 @@ var Stepper = forwardRef88(function Stepper2({ steps, current, horizontal, onSte
|
|
|
3430
3480
|
});
|
|
3431
3481
|
|
|
3432
3482
|
// src/components/Switch.tsx
|
|
3433
|
-
import { forwardRef as
|
|
3434
|
-
import { jsx as
|
|
3435
|
-
var Switch =
|
|
3436
|
-
return /* @__PURE__ */
|
|
3437
|
-
/* @__PURE__ */
|
|
3438
|
-
/* @__PURE__ */
|
|
3483
|
+
import { forwardRef as forwardRef91 } from "react";
|
|
3484
|
+
import { jsx as jsx93, jsxs as jsxs75 } from "react/jsx-runtime";
|
|
3485
|
+
var Switch = forwardRef91(function Switch2({ labelClassName, className, ...rest }, ref) {
|
|
3486
|
+
return /* @__PURE__ */ jsxs75("label", { className: cx("oc-switch", labelClassName), children: [
|
|
3487
|
+
/* @__PURE__ */ jsx93("input", { ref, type: "checkbox", role: "switch", className, ...rest }),
|
|
3488
|
+
/* @__PURE__ */ jsx93("span", { className: "oc-switch-track" })
|
|
3439
3489
|
] });
|
|
3440
3490
|
});
|
|
3441
3491
|
|
|
3442
3492
|
// src/components/Table.tsx
|
|
3443
|
-
import { forwardRef as
|
|
3444
|
-
import { jsx as
|
|
3445
|
-
var Table =
|
|
3446
|
-
return /* @__PURE__ */
|
|
3493
|
+
import { forwardRef as forwardRef92 } from "react";
|
|
3494
|
+
import { jsx as jsx94, jsxs as jsxs76 } from "react/jsx-runtime";
|
|
3495
|
+
var Table = forwardRef92(function Table2({ striped, compact, borderless, sticky, caption, wrapClassName, className, children, ...rest }, ref) {
|
|
3496
|
+
return /* @__PURE__ */ jsx94("div", { className: cx("oc-table-wrap", wrapClassName), children: /* @__PURE__ */ jsxs76(
|
|
3447
3497
|
"table",
|
|
3448
3498
|
{
|
|
3449
3499
|
ref,
|
|
@@ -3457,84 +3507,84 @@ var Table = forwardRef90(function Table2({ striped, compact, borderless, sticky,
|
|
|
3457
3507
|
),
|
|
3458
3508
|
...rest,
|
|
3459
3509
|
children: [
|
|
3460
|
-
caption != null && /* @__PURE__ */
|
|
3510
|
+
caption != null && /* @__PURE__ */ jsx94("caption", { children: caption }),
|
|
3461
3511
|
children
|
|
3462
3512
|
]
|
|
3463
3513
|
}
|
|
3464
3514
|
) });
|
|
3465
3515
|
});
|
|
3466
|
-
var TableSort =
|
|
3467
|
-
return /* @__PURE__ */
|
|
3516
|
+
var TableSort = forwardRef92(function TableSort2({ className, ...rest }, ref) {
|
|
3517
|
+
return /* @__PURE__ */ jsx94("a", { ref, className: cx("oc-table-sort", className), ...rest });
|
|
3468
3518
|
});
|
|
3469
3519
|
function TableActions({ className, ...rest }) {
|
|
3470
|
-
return /* @__PURE__ */
|
|
3520
|
+
return /* @__PURE__ */ jsx94("td", { className: cx("oc-table-actions", className), ...rest });
|
|
3471
3521
|
}
|
|
3472
3522
|
function TableRowAction({ tone = "default", className, ...props }) {
|
|
3473
3523
|
const cls = cx("oc-table-row-action", tone !== "default" && `oc-table-row-action--${tone}`, className);
|
|
3474
|
-
if (props.href !== void 0) return /* @__PURE__ */
|
|
3475
|
-
return /* @__PURE__ */
|
|
3524
|
+
if (props.href !== void 0) return /* @__PURE__ */ jsx94("a", { className: cls, ...props });
|
|
3525
|
+
return /* @__PURE__ */ jsx94("button", { type: "button", className: cls, ...props });
|
|
3476
3526
|
}
|
|
3477
3527
|
function TableEmpty({ colSpan, children, ...rest }) {
|
|
3478
|
-
return /* @__PURE__ */
|
|
3528
|
+
return /* @__PURE__ */ jsx94("tr", { className: "oc-table-empty", ...rest, children: /* @__PURE__ */ jsx94("td", { colSpan, children }) });
|
|
3479
3529
|
}
|
|
3480
3530
|
|
|
3481
3531
|
// src/components/TableActions.tsx
|
|
3482
|
-
import { forwardRef as
|
|
3483
|
-
import { Fragment as Fragment21, jsx as
|
|
3532
|
+
import { forwardRef as forwardRef93, useId as useId29 } from "react";
|
|
3533
|
+
import { Fragment as Fragment21, jsx as jsx95, jsxs as jsxs77 } from "react/jsx-runtime";
|
|
3484
3534
|
function TableActionIcon({ label, tone = "default", className, children, ...props }) {
|
|
3485
3535
|
const cls = cx("oc-table-actions-icon", tone !== "default" && `oc-table-actions-icon--${tone}`, className);
|
|
3486
3536
|
const common = { className: cls, "aria-label": label, title: label };
|
|
3487
3537
|
if (props.href !== void 0) {
|
|
3488
|
-
return /* @__PURE__ */
|
|
3538
|
+
return /* @__PURE__ */ jsx95("a", { ...common, ...props, children });
|
|
3489
3539
|
}
|
|
3490
|
-
return /* @__PURE__ */
|
|
3540
|
+
return /* @__PURE__ */ jsx95("button", { type: "button", ...common, ...props, children });
|
|
3491
3541
|
}
|
|
3492
|
-
var TableActionsMenu =
|
|
3542
|
+
var TableActionsMenu = forwardRef93(function TableActionsMenu2({ label, id, className, children, ...rest }, ref) {
|
|
3493
3543
|
const auto = useId29();
|
|
3494
3544
|
const menuId = id ?? `oc-table-actions-menu-${auto.replace(/:/g, "")}`;
|
|
3495
|
-
return /* @__PURE__ */
|
|
3496
|
-
/* @__PURE__ */
|
|
3497
|
-
/* @__PURE__ */
|
|
3545
|
+
return /* @__PURE__ */ jsxs77(Fragment21, { children: [
|
|
3546
|
+
/* @__PURE__ */ jsx95("button", { className: "oc-table-actions-more", type: "button", "aria-label": label, popoverTarget: menuId }),
|
|
3547
|
+
/* @__PURE__ */ jsx95("div", { ref, id: menuId, className: cx("oc-dropdown-menu", className), ...attrs({ popover: "" }), ...rest, children })
|
|
3498
3548
|
] });
|
|
3499
3549
|
});
|
|
3500
3550
|
|
|
3501
3551
|
// src/components/TableCompact.tsx
|
|
3502
|
-
import { forwardRef as
|
|
3503
|
-
import { jsx as
|
|
3552
|
+
import { forwardRef as forwardRef94 } from "react";
|
|
3553
|
+
import { jsx as jsx96, jsxs as jsxs78 } from "react/jsx-runtime";
|
|
3504
3554
|
var cellAttrs = (c) => ({
|
|
3505
3555
|
"data-numeric": c.numeric ? "" : void 0,
|
|
3506
3556
|
"data-wrap": c.wrap ? "" : void 0
|
|
3507
3557
|
});
|
|
3508
|
-
var TableCompact =
|
|
3558
|
+
var TableCompact = forwardRef94(function TableCompact2({ columns, rows = [], footer, bordered, plain, className, children, ...rest }, ref) {
|
|
3509
3559
|
const cls = cx("oc-table-compact", bordered && "oc-table-compact--bordered", plain && "oc-table-compact--plain", className);
|
|
3510
|
-
return /* @__PURE__ */
|
|
3511
|
-
/* @__PURE__ */
|
|
3512
|
-
/* @__PURE__ */
|
|
3513
|
-
footer && /* @__PURE__ */
|
|
3560
|
+
return /* @__PURE__ */ jsx96("div", { ref, className: cls, ...rest, children: columns ? /* @__PURE__ */ jsxs78("table", { className: "oc-table", children: [
|
|
3561
|
+
/* @__PURE__ */ jsx96("thead", { children: /* @__PURE__ */ jsx96("tr", { children: columns.map((c) => /* @__PURE__ */ jsx96("th", { ...cellAttrs(c), children: c.label }, c.key)) }) }),
|
|
3562
|
+
/* @__PURE__ */ jsx96("tbody", { children: rows.map((row, i) => /* @__PURE__ */ jsx96("tr", { children: columns.map((c) => /* @__PURE__ */ jsx96("td", { ...cellAttrs(c), children: row[c.key] }, c.key)) }, i)) }),
|
|
3563
|
+
footer && /* @__PURE__ */ jsx96("tfoot", { children: /* @__PURE__ */ jsx96("tr", { children: columns.map((c) => /* @__PURE__ */ jsx96("td", { ...cellAttrs(c), children: footer[c.key] }, c.key)) }) })
|
|
3514
3564
|
] }) : children });
|
|
3515
3565
|
});
|
|
3516
3566
|
|
|
3517
3567
|
// src/components/Tabs.tsx
|
|
3518
|
-
import { forwardRef as
|
|
3519
|
-
import { jsx as
|
|
3520
|
-
var Tabs =
|
|
3568
|
+
import { forwardRef as forwardRef95, useId as useId30 } from "react";
|
|
3569
|
+
import { jsx as jsx97, jsxs as jsxs79 } from "react/jsx-runtime";
|
|
3570
|
+
var Tabs = forwardRef95(function Tabs2({ tabs, value, defaultValue, onChange, name, className, ...rest }, ref) {
|
|
3521
3571
|
const auto = useId30();
|
|
3522
3572
|
const group = name ?? `oc-tabs-${auto.replace(/:/g, "")}`;
|
|
3523
3573
|
const [current, setCurrent] = useControllable(value, defaultValue ?? tabs[0]?.value ?? "", onChange);
|
|
3524
|
-
return /* @__PURE__ */
|
|
3525
|
-
/* @__PURE__ */
|
|
3526
|
-
/* @__PURE__ */
|
|
3574
|
+
return /* @__PURE__ */ jsxs79("div", { ref, className: cx("oc-tabset", className), ...rest, children: [
|
|
3575
|
+
/* @__PURE__ */ jsx97("div", { className: "oc-tab-list", role: "tablist", children: tabs.map((t) => /* @__PURE__ */ jsxs79("label", { className: "oc-tab-trigger", children: [
|
|
3576
|
+
/* @__PURE__ */ jsx97("input", { type: "radio", name: group, value: t.value, checked: current === t.value, onChange: () => setCurrent(t.value) }),
|
|
3527
3577
|
" ",
|
|
3528
3578
|
t.label
|
|
3529
3579
|
] }, t.value)) }),
|
|
3530
|
-
tabs.map((t) => /* @__PURE__ */
|
|
3580
|
+
tabs.map((t) => /* @__PURE__ */ jsx97("div", { className: "oc-tab-panel", children: t.content }, t.value))
|
|
3531
3581
|
] });
|
|
3532
3582
|
});
|
|
3533
3583
|
|
|
3534
3584
|
// src/components/TagInput.tsx
|
|
3535
|
-
import { forwardRef as
|
|
3536
|
-
import { Fragment as Fragment22, jsx as
|
|
3537
|
-
var TagInput =
|
|
3585
|
+
import { forwardRef as forwardRef96, useState as useState12 } from "react";
|
|
3586
|
+
import { Fragment as Fragment22, jsx as jsx98, jsxs as jsxs80 } from "react/jsx-runtime";
|
|
3587
|
+
var TagInput = forwardRef96(function TagInput2({ value, defaultValue = [], onChange, suggestions, placeholder = "Add tag...", label = "Add tag", disabled, className, ...rest }, ref) {
|
|
3538
3588
|
const [tags, setTags] = useControllable(value, defaultValue, onChange);
|
|
3539
3589
|
const [draft, setDraft] = useState12("");
|
|
3540
3590
|
const add = (raw) => {
|
|
@@ -3552,14 +3602,14 @@ var TagInput = forwardRef94(function TagInput2({ value, defaultValue = [], onCha
|
|
|
3552
3602
|
}
|
|
3553
3603
|
};
|
|
3554
3604
|
const open = suggestions?.filter((s) => !tags.includes(s)) ?? [];
|
|
3555
|
-
return /* @__PURE__ */
|
|
3556
|
-
/* @__PURE__ */
|
|
3557
|
-
tags.map((tag) => /* @__PURE__ */
|
|
3605
|
+
return /* @__PURE__ */ jsxs80(Fragment22, { children: [
|
|
3606
|
+
/* @__PURE__ */ jsxs80("div", { ref, className: cx("oc-tag-input", className), ...rest, children: [
|
|
3607
|
+
tags.map((tag) => /* @__PURE__ */ jsxs80("span", { className: "oc-tag", children: [
|
|
3558
3608
|
tag,
|
|
3559
3609
|
" ",
|
|
3560
|
-
/* @__PURE__ */
|
|
3610
|
+
/* @__PURE__ */ jsx98("button", { className: "oc-tag-remove", type: "button", "aria-label": `Remove ${tag}`, disabled, onClick: () => remove(tag), children: "\xD7" })
|
|
3561
3611
|
] }, tag)),
|
|
3562
|
-
/* @__PURE__ */
|
|
3612
|
+
/* @__PURE__ */ jsx98(
|
|
3563
3613
|
"input",
|
|
3564
3614
|
{
|
|
3565
3615
|
type: "text",
|
|
@@ -3573,43 +3623,43 @@ var TagInput = forwardRef94(function TagInput2({ value, defaultValue = [], onCha
|
|
|
3573
3623
|
}
|
|
3574
3624
|
)
|
|
3575
3625
|
] }),
|
|
3576
|
-
open.length > 0 && /* @__PURE__ */
|
|
3626
|
+
open.length > 0 && /* @__PURE__ */ jsx98("div", { className: "oc-tag-suggestions", children: open.map((s) => /* @__PURE__ */ jsx98("button", { type: "button", disabled, onClick: () => add(s), children: s }, s)) })
|
|
3577
3627
|
] });
|
|
3578
3628
|
});
|
|
3579
3629
|
|
|
3580
3630
|
// src/components/TerminalLog.tsx
|
|
3581
|
-
import { forwardRef as
|
|
3582
|
-
import { jsx as
|
|
3583
|
-
var TerminalLog =
|
|
3631
|
+
import { forwardRef as forwardRef97, useEffect as useEffect8, useRef as useRef11 } from "react";
|
|
3632
|
+
import { jsx as jsx99, jsxs as jsxs81 } from "react/jsx-runtime";
|
|
3633
|
+
var TerminalLog = forwardRef97(function TerminalLog2({ lines, title, status, prompt, height, autoScroll = true, className, style, "aria-label": label = "Log output", ...rest }, ref) {
|
|
3584
3634
|
const body = useRef11(null);
|
|
3585
3635
|
useEffect8(() => {
|
|
3586
3636
|
if (autoScroll && body.current) body.current.scrollTop = body.current.scrollHeight;
|
|
3587
3637
|
}, [lines.length, autoScroll]);
|
|
3588
3638
|
const vars = height ? { "--oc-terminal-log-height": height } : void 0;
|
|
3589
|
-
return /* @__PURE__ */
|
|
3590
|
-
/* @__PURE__ */
|
|
3591
|
-
/* @__PURE__ */
|
|
3592
|
-
/* @__PURE__ */
|
|
3593
|
-
/* @__PURE__ */
|
|
3594
|
-
title != null && /* @__PURE__ */
|
|
3595
|
-
status != null && /* @__PURE__ */
|
|
3639
|
+
return /* @__PURE__ */ jsxs81("div", { ref, className: cx("oc-terminal-log", className), style: { ...vars, ...style }, ...rest, children: [
|
|
3640
|
+
/* @__PURE__ */ jsxs81("div", { className: "oc-terminal-log__bar", children: [
|
|
3641
|
+
/* @__PURE__ */ jsx99("i", {}),
|
|
3642
|
+
/* @__PURE__ */ jsx99("i", {}),
|
|
3643
|
+
/* @__PURE__ */ jsx99("i", {}),
|
|
3644
|
+
title != null && /* @__PURE__ */ jsx99("span", { className: "oc-terminal-log__title", children: title }),
|
|
3645
|
+
status != null && /* @__PURE__ */ jsx99("span", { className: "oc-terminal-log__status", children: status })
|
|
3596
3646
|
] }),
|
|
3597
|
-
/* @__PURE__ */
|
|
3598
|
-
lines.map((l, i) => /* @__PURE__ */
|
|
3599
|
-
l.time && /* @__PURE__ */
|
|
3600
|
-
/* @__PURE__ */
|
|
3601
|
-
/* @__PURE__ */
|
|
3647
|
+
/* @__PURE__ */ jsxs81("div", { ref: body, className: "oc-terminal-log__body", role: "log", "aria-live": "polite", "aria-label": label, tabIndex: 0, children: [
|
|
3648
|
+
lines.map((l, i) => /* @__PURE__ */ jsxs81("p", { className: cx("oc-terminal-log__line", `oc-terminal-log__line--${l.level}`), children: [
|
|
3649
|
+
l.time && /* @__PURE__ */ jsx99("time", { className: "oc-terminal-log__time", children: l.time }),
|
|
3650
|
+
/* @__PURE__ */ jsx99("span", { className: "oc-terminal-log__level", children: l.label ?? (l.level === "success" ? "ok" : l.level) }),
|
|
3651
|
+
/* @__PURE__ */ jsx99("span", { className: "oc-terminal-log__msg", children: l.message })
|
|
3602
3652
|
] }, i)),
|
|
3603
|
-
prompt != null && prompt !== false && /* @__PURE__ */
|
|
3653
|
+
prompt != null && prompt !== false && /* @__PURE__ */ jsx99("p", { className: "oc-terminal-log__prompt", children: prompt === true ? null : prompt })
|
|
3604
3654
|
] })
|
|
3605
3655
|
] });
|
|
3606
3656
|
});
|
|
3607
3657
|
|
|
3608
3658
|
// src/components/Textarea.tsx
|
|
3609
|
-
import { forwardRef as
|
|
3610
|
-
import { jsx as
|
|
3611
|
-
var Textarea =
|
|
3612
|
-
return /* @__PURE__ */
|
|
3659
|
+
import { forwardRef as forwardRef98 } from "react";
|
|
3660
|
+
import { jsx as jsx100 } from "react/jsx-runtime";
|
|
3661
|
+
var Textarea = forwardRef98(function Textarea2({ error, className, ...rest }, ref) {
|
|
3662
|
+
return /* @__PURE__ */ jsx100(
|
|
3613
3663
|
"textarea",
|
|
3614
3664
|
{
|
|
3615
3665
|
ref,
|
|
@@ -3621,24 +3671,24 @@ var Textarea = forwardRef96(function Textarea2({ error, className, ...rest }, re
|
|
|
3621
3671
|
});
|
|
3622
3672
|
|
|
3623
3673
|
// src/components/ThemeSwitch.tsx
|
|
3624
|
-
import { forwardRef as
|
|
3625
|
-
import { jsx as
|
|
3674
|
+
import { forwardRef as forwardRef99, useId as useId31 } from "react";
|
|
3675
|
+
import { jsx as jsx101, jsxs as jsxs82 } from "react/jsx-runtime";
|
|
3626
3676
|
var LABELS = { system: "System", light: "Light", dark: "Dark" };
|
|
3627
|
-
var ThemeSwitch =
|
|
3677
|
+
var ThemeSwitch = forwardRef99(function ThemeSwitch2({ value, defaultValue = "system", onChange, modes = ["system", "light", "dark"], name, as = "fieldset", className, "aria-label": ariaLabel = "Color theme", ...rest }, ref) {
|
|
3628
3678
|
const auto = useId31();
|
|
3629
3679
|
const group = name ?? `oc-theme-${auto.replace(/:/g, "")}`;
|
|
3630
3680
|
const [current, setCurrent] = useControllable(value, defaultValue, onChange);
|
|
3631
|
-
const items = modes.map((m) => /* @__PURE__ */
|
|
3632
|
-
/* @__PURE__ */
|
|
3681
|
+
const items = modes.map((m) => /* @__PURE__ */ jsxs82("label", { children: [
|
|
3682
|
+
/* @__PURE__ */ jsx101("input", { type: "radio", name: group, value: m, checked: current === m, onChange: () => setCurrent(m) }),
|
|
3633
3683
|
" ",
|
|
3634
3684
|
LABELS[m]
|
|
3635
3685
|
] }, m));
|
|
3636
|
-
return as === "div" ? /* @__PURE__ */
|
|
3686
|
+
return as === "div" ? /* @__PURE__ */ jsx101("div", { ref, className: cx("oc-theme-switch", className), role: "radiogroup", "aria-label": ariaLabel, ...rest, children: items }) : /* @__PURE__ */ jsx101("fieldset", { ref, className: cx("oc-theme-switch", className), "aria-label": ariaLabel, ...rest, children: items });
|
|
3637
3687
|
});
|
|
3638
3688
|
|
|
3639
3689
|
// src/components/TimeInput.tsx
|
|
3640
|
-
import { forwardRef as
|
|
3641
|
-
import { Fragment as Fragment23, jsx as
|
|
3690
|
+
import { forwardRef as forwardRef100, useId as useId32 } from "react";
|
|
3691
|
+
import { Fragment as Fragment23, jsx as jsx102, jsxs as jsxs83 } from "react/jsx-runtime";
|
|
3642
3692
|
function formatTime24h(raw) {
|
|
3643
3693
|
const digits = raw.replace(/\D/g, "").slice(0, 4);
|
|
3644
3694
|
return digits.length <= 2 ? digits : `${digits.slice(0, 2)}:${digits.slice(2)}`;
|
|
@@ -3649,11 +3699,11 @@ function completeTime(text) {
|
|
|
3649
3699
|
if (digits.length === 3) return `0${digits[0]}:${digits.slice(1)}`;
|
|
3650
3700
|
return text;
|
|
3651
3701
|
}
|
|
3652
|
-
var TimeInput =
|
|
3702
|
+
var TimeInput = forwardRef100(function TimeInput2({ value, defaultValue, onChange, slots, error, className, onBlur, placeholder = "hh:mm", ...rest }, ref) {
|
|
3653
3703
|
const listId = `oc-time-${useId32().replace(/:/g, "")}`;
|
|
3654
3704
|
const [current, setCurrent] = useControllable(value, defaultValue ?? "", onChange);
|
|
3655
|
-
return /* @__PURE__ */
|
|
3656
|
-
/* @__PURE__ */
|
|
3705
|
+
return /* @__PURE__ */ jsxs83(Fragment23, { children: [
|
|
3706
|
+
/* @__PURE__ */ jsx102(
|
|
3657
3707
|
"input",
|
|
3658
3708
|
{
|
|
3659
3709
|
ref,
|
|
@@ -3678,37 +3728,60 @@ var TimeInput = forwardRef98(function TimeInput2({ value, defaultValue, onChange
|
|
|
3678
3728
|
...rest
|
|
3679
3729
|
}
|
|
3680
3730
|
),
|
|
3681
|
-
slots?.length ? /* @__PURE__ */
|
|
3731
|
+
slots?.length ? /* @__PURE__ */ jsx102("datalist", { id: listId, children: slots.map((s) => /* @__PURE__ */ jsx102("option", { value: s }, s)) }) : null
|
|
3682
3732
|
] });
|
|
3683
3733
|
});
|
|
3684
3734
|
|
|
3685
3735
|
// src/components/Timeline.tsx
|
|
3686
|
-
import { forwardRef as
|
|
3687
|
-
import { jsx as
|
|
3688
|
-
var Timeline =
|
|
3689
|
-
return /* @__PURE__ */
|
|
3690
|
-
item.dateTime ? /* @__PURE__ */
|
|
3691
|
-
item.title != null && /* @__PURE__ */
|
|
3692
|
-
item.text != null && /* @__PURE__ */
|
|
3736
|
+
import { forwardRef as forwardRef101 } from "react";
|
|
3737
|
+
import { jsx as jsx103, jsxs as jsxs84 } from "react/jsx-runtime";
|
|
3738
|
+
var Timeline = forwardRef101(function Timeline2({ items, size = "default", accent = false, className, ...rest }, ref) {
|
|
3739
|
+
return /* @__PURE__ */ jsx103("ol", { ref, className: cx("oc-timeline", size === "lg" && "oc-timeline--lg", accent && "oc-timeline--accent", className), ...rest, children: items.map((item, i) => /* @__PURE__ */ jsxs84("li", { className: cx("oc-timeline__item", item.current && "oc-timeline__item--current"), children: [
|
|
3740
|
+
item.dateTime ? /* @__PURE__ */ jsx103("time", { className: "oc-timeline__date", dateTime: item.dateTime, children: item.date }) : /* @__PURE__ */ jsx103("span", { className: "oc-timeline__date", children: item.date }),
|
|
3741
|
+
item.title != null && /* @__PURE__ */ jsx103("h3", { className: "oc-timeline__title", children: item.title }),
|
|
3742
|
+
item.text != null && /* @__PURE__ */ jsx103("p", { className: "oc-timeline__text", children: item.text })
|
|
3693
3743
|
] }, i)) });
|
|
3694
3744
|
});
|
|
3695
3745
|
|
|
3746
|
+
// src/components/Titlebar.tsx
|
|
3747
|
+
import { forwardRef as forwardRef102 } from "react";
|
|
3748
|
+
import { jsx as jsx104, jsxs as jsxs85 } from "react/jsx-runtime";
|
|
3749
|
+
var TitlebarWindow = forwardRef102(function TitlebarWindow2({ className, ...rest }, ref) {
|
|
3750
|
+
return /* @__PURE__ */ jsx104("div", { ref, className: cx("oc-titlebar-window", className), ...rest });
|
|
3751
|
+
});
|
|
3752
|
+
var Titlebar = forwardRef102(function Titlebar2({ title, subtitle, icon, bordered, size = "md", className, children, ...rest }, ref) {
|
|
3753
|
+
return /* @__PURE__ */ jsxs85("header", { ref, className: cx("oc-titlebar", bordered && "oc-titlebar--bordered", size === "sm" && "oc-titlebar--sm", className), ...rest, children: [
|
|
3754
|
+
/* @__PURE__ */ jsxs85("div", { className: "oc-titlebar__main", children: [
|
|
3755
|
+
icon != null && /* @__PURE__ */ jsx104("span", { className: "oc-titlebar__icon", "aria-hidden": "true", children: icon }),
|
|
3756
|
+
title != null && /* @__PURE__ */ jsx104("span", { className: "oc-titlebar__title", children: title }),
|
|
3757
|
+
subtitle != null && /* @__PURE__ */ jsx104("span", { className: "oc-titlebar__subtitle", children: subtitle })
|
|
3758
|
+
] }),
|
|
3759
|
+
children != null && /* @__PURE__ */ jsx104("div", { className: "oc-titlebar__actions", children })
|
|
3760
|
+
] });
|
|
3761
|
+
});
|
|
3762
|
+
var TitlebarButton = forwardRef102(function TitlebarButton2({ label, close, className, type = "button", ...rest }, ref) {
|
|
3763
|
+
return /* @__PURE__ */ jsx104("button", { ref, type, "aria-label": label, title: label, className: cx("oc-titlebar__btn", close && "oc-titlebar__btn--close", className), ...rest });
|
|
3764
|
+
});
|
|
3765
|
+
var TitlebarBody = forwardRef102(function TitlebarBody2({ className, ...rest }, ref) {
|
|
3766
|
+
return /* @__PURE__ */ jsx104("div", { ref, className: cx("oc-titlebar-body", className), ...rest });
|
|
3767
|
+
});
|
|
3768
|
+
|
|
3696
3769
|
// src/components/Toast.tsx
|
|
3697
|
-
import { createContext as createContext2, forwardRef as
|
|
3698
|
-
import { jsx as
|
|
3770
|
+
import { createContext as createContext2, forwardRef as forwardRef103, useCallback as useCallback2, useContext as useContext2, useEffect as useEffect9, useMemo as useMemo2, useRef as useRef12, useState as useState13 } from "react";
|
|
3771
|
+
import { jsx as jsx105, jsxs as jsxs86 } from "react/jsx-runtime";
|
|
3699
3772
|
var GLYPHS3 = { success: "\u2713", error: "!", warning: "!", info: "i" };
|
|
3700
|
-
var Toast =
|
|
3701
|
-
return /* @__PURE__ */
|
|
3702
|
-
/* @__PURE__ */
|
|
3703
|
-
/* @__PURE__ */
|
|
3704
|
-
/* @__PURE__ */
|
|
3705
|
-
description != null && /* @__PURE__ */
|
|
3773
|
+
var Toast = forwardRef103(function Toast2({ variant = "info", title, description, icon, onDismiss, dismissLabel = "Dismiss", className, ...rest }, ref) {
|
|
3774
|
+
return /* @__PURE__ */ jsxs86("div", { ref, className: cx("oc-toast", `oc-toast--${variant}`, className), role: variant === "error" ? "alert" : "status", ...rest, children: [
|
|
3775
|
+
/* @__PURE__ */ jsx105("span", { className: "oc-toast-icon", "aria-hidden": "true", children: icon ?? GLYPHS3[variant] }),
|
|
3776
|
+
/* @__PURE__ */ jsxs86("div", { className: "oc-toast-body", children: [
|
|
3777
|
+
/* @__PURE__ */ jsx105("p", { className: "oc-toast-title", children: title }),
|
|
3778
|
+
description != null && /* @__PURE__ */ jsx105("p", { className: "oc-toast-description", children: description })
|
|
3706
3779
|
] }),
|
|
3707
|
-
onDismiss && /* @__PURE__ */
|
|
3780
|
+
onDismiss && /* @__PURE__ */ jsx105("button", { className: "oc-toast-close", type: "button", "aria-label": dismissLabel, onClick: onDismiss, children: "\xD7" })
|
|
3708
3781
|
] });
|
|
3709
3782
|
});
|
|
3710
|
-
var ToastContainer =
|
|
3711
|
-
return /* @__PURE__ */
|
|
3783
|
+
var ToastContainer = forwardRef103(function ToastContainer2({ top, static: isStatic, className, ...rest }, ref) {
|
|
3784
|
+
return /* @__PURE__ */ jsx105(
|
|
3712
3785
|
"div",
|
|
3713
3786
|
{
|
|
3714
3787
|
ref,
|
|
@@ -3748,9 +3821,9 @@ function ToastProvider({ children, top, duration = 5e3, limit = 5 }) {
|
|
|
3748
3821
|
return () => map.forEach(clearTimeout);
|
|
3749
3822
|
}, []);
|
|
3750
3823
|
const api = useMemo2(() => ({ toast, dismiss }), [toast, dismiss]);
|
|
3751
|
-
return /* @__PURE__ */
|
|
3824
|
+
return /* @__PURE__ */ jsxs86(ToastContext.Provider, { value: api, children: [
|
|
3752
3825
|
children,
|
|
3753
|
-
/* @__PURE__ */
|
|
3826
|
+
/* @__PURE__ */ jsx105(ToastContainer, { top, "aria-live": "polite", children: items.map((t) => /* @__PURE__ */ jsx105(Toast, { variant: t.variant, title: t.title, description: t.description, onDismiss: () => dismiss(t.id) }, t.id)) })
|
|
3754
3827
|
] });
|
|
3755
3828
|
}
|
|
3756
3829
|
function useToast() {
|
|
@@ -3760,41 +3833,41 @@ function useToast() {
|
|
|
3760
3833
|
}
|
|
3761
3834
|
|
|
3762
3835
|
// src/components/ToggleField.tsx
|
|
3763
|
-
import { forwardRef as
|
|
3764
|
-
import { jsx as
|
|
3765
|
-
var ToggleField =
|
|
3836
|
+
import { forwardRef as forwardRef104, useId as useId33 } from "react";
|
|
3837
|
+
import { jsx as jsx106, jsxs as jsxs87 } from "react/jsx-runtime";
|
|
3838
|
+
var ToggleField = forwardRef104(function ToggleField2({ label, description, card, reverse, fieldClassName, className, ...rest }, ref) {
|
|
3766
3839
|
const descId = `oc-toggle-field-${useId33().replace(/:/g, "")}`;
|
|
3767
|
-
return /* @__PURE__ */
|
|
3768
|
-
/* @__PURE__ */
|
|
3769
|
-
/* @__PURE__ */
|
|
3770
|
-
description != null && /* @__PURE__ */
|
|
3840
|
+
return /* @__PURE__ */ jsxs87("label", { className: cx("oc-toggle-field", card && "oc-toggle-field--card", reverse && "oc-toggle-field--reverse", fieldClassName), children: [
|
|
3841
|
+
/* @__PURE__ */ jsxs87("span", { className: "oc-toggle-field-text", children: [
|
|
3842
|
+
/* @__PURE__ */ jsx106("span", { className: "oc-toggle-field-label", children: label }),
|
|
3843
|
+
description != null && /* @__PURE__ */ jsx106("span", { className: "oc-toggle-field-description", id: descId, children: description })
|
|
3771
3844
|
] }),
|
|
3772
|
-
/* @__PURE__ */
|
|
3773
|
-
/* @__PURE__ */
|
|
3774
|
-
/* @__PURE__ */
|
|
3845
|
+
/* @__PURE__ */ jsxs87("span", { className: "oc-switch", children: [
|
|
3846
|
+
/* @__PURE__ */ jsx106("input", { ref, type: "checkbox", role: "switch", className, "aria-describedby": description != null ? descId : void 0, ...rest }),
|
|
3847
|
+
/* @__PURE__ */ jsx106("span", { className: "oc-switch-track" })
|
|
3775
3848
|
] })
|
|
3776
3849
|
] });
|
|
3777
3850
|
});
|
|
3778
3851
|
|
|
3779
3852
|
// src/components/Tooltip.tsx
|
|
3780
|
-
import { forwardRef as
|
|
3781
|
-
import { jsx as
|
|
3782
|
-
var Tooltip =
|
|
3853
|
+
import { forwardRef as forwardRef105 } from "react";
|
|
3854
|
+
import { jsx as jsx107, jsxs as jsxs88 } from "react/jsx-runtime";
|
|
3855
|
+
var Tooltip = forwardRef105(function Tooltip2({ content, multiline, heading, side, className, children, ...rest }, ref) {
|
|
3783
3856
|
const classes = cx("oc-tooltip", multiline && !heading && "oc-tooltip--multiline", side && side !== "top" && `oc-tooltip--${side}`, className);
|
|
3784
|
-
if (!heading) return /* @__PURE__ */
|
|
3785
|
-
return /* @__PURE__ */
|
|
3857
|
+
if (!heading) return /* @__PURE__ */ jsx107("span", { ref, className: classes, "data-tooltip": content, ...rest, children });
|
|
3858
|
+
return /* @__PURE__ */ jsxs88("span", { ref, className: classes, ...rest, children: [
|
|
3786
3859
|
children,
|
|
3787
|
-
/* @__PURE__ */
|
|
3788
|
-
/* @__PURE__ */
|
|
3860
|
+
/* @__PURE__ */ jsxs88("span", { className: "oc-tooltip__content", role: "tooltip", children: [
|
|
3861
|
+
/* @__PURE__ */ jsx107("span", { className: "oc-tooltip__title", children: heading }),
|
|
3789
3862
|
content
|
|
3790
3863
|
] })
|
|
3791
3864
|
] });
|
|
3792
3865
|
});
|
|
3793
3866
|
|
|
3794
3867
|
// src/components/TopProgress.tsx
|
|
3795
|
-
import { forwardRef as
|
|
3796
|
-
import { jsx as
|
|
3797
|
-
var TopProgress =
|
|
3868
|
+
import { forwardRef as forwardRef106, useEffect as useEffect10, useState as useState14 } from "react";
|
|
3869
|
+
import { jsx as jsx108 } from "react/jsx-runtime";
|
|
3870
|
+
var TopProgress = forwardRef106(function TopProgress2({ active = true, tone = "default", large, static: inFlow, fadeMs = 400, className, ...rest }, ref) {
|
|
3798
3871
|
const [phase, setPhase] = useState14(active ? "active" : "hidden");
|
|
3799
3872
|
useEffect10(() => {
|
|
3800
3873
|
if (active) {
|
|
@@ -3813,158 +3886,158 @@ var TopProgress = forwardRef103(function TopProgress2({ active = true, tone = "d
|
|
|
3813
3886
|
phase === "done" && "is-done",
|
|
3814
3887
|
className
|
|
3815
3888
|
);
|
|
3816
|
-
return /* @__PURE__ */
|
|
3889
|
+
return /* @__PURE__ */ jsx108("progress", { ref, className: cls, hidden: phase === "hidden", ...rest });
|
|
3817
3890
|
});
|
|
3818
3891
|
|
|
3819
3892
|
// src/components/Tree.tsx
|
|
3820
|
-
import { forwardRef as
|
|
3821
|
-
import { Fragment as Fragment24, jsx as
|
|
3893
|
+
import { forwardRef as forwardRef107 } from "react";
|
|
3894
|
+
import { Fragment as Fragment24, jsx as jsx109, jsxs as jsxs89 } from "react/jsx-runtime";
|
|
3822
3895
|
function RowContent({ item }) {
|
|
3823
3896
|
const isLink = item.href !== void 0;
|
|
3824
|
-
return /* @__PURE__ */
|
|
3825
|
-
item.icon != null && /* @__PURE__ */
|
|
3826
|
-
isLink ? /* @__PURE__ */
|
|
3827
|
-
item.count != null && /* @__PURE__ */
|
|
3828
|
-
item.actions != null && /* @__PURE__ */
|
|
3897
|
+
return /* @__PURE__ */ jsxs89(Fragment24, { children: [
|
|
3898
|
+
item.icon != null && /* @__PURE__ */ jsx109("span", { className: "oc-tree-icon", "aria-hidden": "true", children: item.icon }),
|
|
3899
|
+
isLink ? /* @__PURE__ */ jsx109("a", { className: "oc-tree-label", href: item.href, "aria-current": item.current ? "true" : void 0, children: item.label }) : /* @__PURE__ */ jsx109("span", { className: "oc-tree-label", children: item.label }),
|
|
3900
|
+
item.count != null && /* @__PURE__ */ jsx109("span", { className: "oc-tree-count", children: item.count }),
|
|
3901
|
+
item.actions != null && /* @__PURE__ */ jsx109("span", { className: "oc-tree-actions", children: item.actions })
|
|
3829
3902
|
] });
|
|
3830
3903
|
}
|
|
3831
3904
|
function TreeNode({ item }) {
|
|
3832
3905
|
const rowCurrent = item.current && item.href === void 0 ? "true" : void 0;
|
|
3833
3906
|
const rowCls = cx("oc-tree-row", item.muted && "is-muted");
|
|
3834
3907
|
if (!item.children?.length) {
|
|
3835
|
-
return /* @__PURE__ */
|
|
3908
|
+
return /* @__PURE__ */ jsx109("li", { children: /* @__PURE__ */ jsx109("div", { className: rowCls, "aria-current": rowCurrent, children: /* @__PURE__ */ jsx109(RowContent, { item }) }) });
|
|
3836
3909
|
}
|
|
3837
|
-
return /* @__PURE__ */
|
|
3838
|
-
/* @__PURE__ */
|
|
3839
|
-
/* @__PURE__ */
|
|
3910
|
+
return /* @__PURE__ */ jsx109("li", { children: /* @__PURE__ */ jsxs89("details", { className: "oc-tree-node", open: item.open, children: [
|
|
3911
|
+
/* @__PURE__ */ jsx109("summary", { className: rowCls, "aria-current": rowCurrent, children: /* @__PURE__ */ jsx109(RowContent, { item }) }),
|
|
3912
|
+
/* @__PURE__ */ jsx109(TreeList, { items: item.children })
|
|
3840
3913
|
] }) });
|
|
3841
3914
|
}
|
|
3842
3915
|
function TreeList({ items }) {
|
|
3843
|
-
return /* @__PURE__ */
|
|
3916
|
+
return /* @__PURE__ */ jsx109("ul", { className: "oc-tree-list", children: items.map((item, i) => /* @__PURE__ */ jsx109(TreeNode, { item }, i)) });
|
|
3844
3917
|
}
|
|
3845
|
-
var Tree =
|
|
3846
|
-
return /* @__PURE__ */
|
|
3847
|
-
head != null && /* @__PURE__ */
|
|
3848
|
-
/* @__PURE__ */
|
|
3849
|
-
headActions != null && /* @__PURE__ */
|
|
3918
|
+
var Tree = forwardRef107(function Tree2({ items, head, headActions, quiet, flush, className, ...rest }, ref) {
|
|
3919
|
+
return /* @__PURE__ */ jsxs89("div", { ref, className: cx("oc-tree", quiet && "oc-tree--quiet", flush && "oc-tree--flush", className), ...rest, children: [
|
|
3920
|
+
head != null && /* @__PURE__ */ jsxs89("div", { className: "oc-tree-row oc-tree-head", children: [
|
|
3921
|
+
/* @__PURE__ */ jsx109("span", { className: "oc-tree-label", children: head }),
|
|
3922
|
+
headActions != null && /* @__PURE__ */ jsx109("span", { className: "oc-tree-actions", children: headActions })
|
|
3850
3923
|
] }),
|
|
3851
|
-
/* @__PURE__ */
|
|
3924
|
+
/* @__PURE__ */ jsx109(TreeList, { items })
|
|
3852
3925
|
] });
|
|
3853
3926
|
});
|
|
3854
3927
|
|
|
3855
3928
|
// src/components/UpgradeBanner.tsx
|
|
3856
|
-
import { forwardRef as
|
|
3857
|
-
import { Fragment as Fragment25, jsx as
|
|
3858
|
-
var UpgradeBanner =
|
|
3929
|
+
import { forwardRef as forwardRef108 } from "react";
|
|
3930
|
+
import { Fragment as Fragment25, jsx as jsx110, jsxs as jsxs90 } from "react/jsx-runtime";
|
|
3931
|
+
var UpgradeBanner = forwardRef108(function UpgradeBanner2({ title, plan, text, usage, icon, actions, premium, compact, onDismiss, dismissLabel = "Dismiss", className, children, ...rest }, ref) {
|
|
3859
3932
|
const cls = cx("oc-upgrade-banner", premium && "oc-upgrade-banner--premium", compact && "oc-upgrade-banner--compact", className);
|
|
3860
3933
|
const body = text ?? children;
|
|
3861
|
-
return /* @__PURE__ */
|
|
3862
|
-
icon != null && /* @__PURE__ */
|
|
3863
|
-
/* @__PURE__ */
|
|
3864
|
-
/* @__PURE__ */
|
|
3934
|
+
return /* @__PURE__ */ jsxs90("aside", { ref, className: cls, ...rest, children: [
|
|
3935
|
+
icon != null && /* @__PURE__ */ jsx110("span", { className: "oc-upgrade-banner-icon", "aria-hidden": "true", children: icon }),
|
|
3936
|
+
/* @__PURE__ */ jsxs90("div", { className: "oc-upgrade-banner-body", children: [
|
|
3937
|
+
/* @__PURE__ */ jsxs90("p", { className: "oc-upgrade-banner-title", children: [
|
|
3865
3938
|
title,
|
|
3866
|
-
plan != null && /* @__PURE__ */
|
|
3939
|
+
plan != null && /* @__PURE__ */ jsxs90(Fragment25, { children: [
|
|
3867
3940
|
" ",
|
|
3868
|
-
/* @__PURE__ */
|
|
3941
|
+
/* @__PURE__ */ jsx110("span", { className: "oc-upgrade-banner-plan", children: plan })
|
|
3869
3942
|
] })
|
|
3870
3943
|
] }),
|
|
3871
|
-
body != null && /* @__PURE__ */
|
|
3872
|
-
usage && /* @__PURE__ */
|
|
3873
|
-
/* @__PURE__ */
|
|
3874
|
-
/* @__PURE__ */
|
|
3944
|
+
body != null && /* @__PURE__ */ jsx110("p", { className: "oc-upgrade-banner-text", children: body }),
|
|
3945
|
+
usage && /* @__PURE__ */ jsxs90("div", { className: "oc-upgrade-banner-usage", children: [
|
|
3946
|
+
/* @__PURE__ */ jsx110("span", { children: usage.label }),
|
|
3947
|
+
/* @__PURE__ */ jsxs90("meter", { className: "oc-upgrade-banner-meter", min: 0, max: usage.max, low: usage.max * 0.6, high: usage.max * 0.8, optimum: 0, value: usage.value, children: [
|
|
3875
3948
|
usage.value,
|
|
3876
3949
|
" of ",
|
|
3877
3950
|
usage.max
|
|
3878
3951
|
] }),
|
|
3879
|
-
/* @__PURE__ */
|
|
3952
|
+
/* @__PURE__ */ jsxs90("span", { children: [
|
|
3880
3953
|
usage.value,
|
|
3881
3954
|
" / ",
|
|
3882
3955
|
usage.max
|
|
3883
3956
|
] })
|
|
3884
3957
|
] })
|
|
3885
3958
|
] }),
|
|
3886
|
-
actions != null && /* @__PURE__ */
|
|
3887
|
-
onDismiss && /* @__PURE__ */
|
|
3959
|
+
actions != null && /* @__PURE__ */ jsx110("div", { className: "oc-upgrade-banner-actions", children: actions }),
|
|
3960
|
+
onDismiss && /* @__PURE__ */ jsx110("button", { className: "oc-upgrade-banner-dismiss", type: "button", "aria-label": dismissLabel, onClick: onDismiss, children: "\xD7" })
|
|
3888
3961
|
] });
|
|
3889
3962
|
});
|
|
3890
3963
|
|
|
3891
3964
|
// src/components/User.tsx
|
|
3892
|
-
import { forwardRef as
|
|
3893
|
-
import { jsx as
|
|
3894
|
-
var User =
|
|
3895
|
-
return /* @__PURE__ */
|
|
3896
|
-
/* @__PURE__ */
|
|
3897
|
-
/* @__PURE__ */
|
|
3898
|
-
/* @__PURE__ */
|
|
3899
|
-
email != null && /* @__PURE__ */
|
|
3965
|
+
import { forwardRef as forwardRef109 } from "react";
|
|
3966
|
+
import { jsx as jsx111, jsxs as jsxs91 } from "react/jsx-runtime";
|
|
3967
|
+
var User = forwardRef109(function User2({ name, email, initials, avatarSrc, avatarSize = "md", className, ...rest }, ref) {
|
|
3968
|
+
return /* @__PURE__ */ jsxs91("div", { ref, className: cx("oc-user", className), ...rest, children: [
|
|
3969
|
+
/* @__PURE__ */ jsx111(Avatar, { size: avatarSize, src: avatarSrc, children: initials }),
|
|
3970
|
+
/* @__PURE__ */ jsxs91("span", { className: "oc-user-text", children: [
|
|
3971
|
+
/* @__PURE__ */ jsx111("span", { className: "oc-user-name", children: name }),
|
|
3972
|
+
email != null && /* @__PURE__ */ jsx111("span", { className: "oc-user-email", children: email })
|
|
3900
3973
|
] })
|
|
3901
3974
|
] });
|
|
3902
3975
|
});
|
|
3903
3976
|
|
|
3904
3977
|
// src/components/VersionBanner.tsx
|
|
3905
|
-
import { forwardRef as
|
|
3906
|
-
import { jsx as
|
|
3907
|
-
var VersionBanner =
|
|
3978
|
+
import { forwardRef as forwardRef110 } from "react";
|
|
3979
|
+
import { jsx as jsx112, jsxs as jsxs92 } from "react/jsx-runtime";
|
|
3980
|
+
var VersionBanner = forwardRef110(function VersionBanner2({ version, text, short = "New version", actionLabel = "Reload", onReload, tone = "warning", floating, className, ...rest }, ref) {
|
|
3908
3981
|
if (!version) return null;
|
|
3909
3982
|
const cls = cx("oc-version-banner", tone !== "warning" && `oc-version-banner--${tone}`, floating && "oc-version-banner--floating", className);
|
|
3910
|
-
return /* @__PURE__ */
|
|
3911
|
-
/* @__PURE__ */
|
|
3912
|
-
/* @__PURE__ */
|
|
3913
|
-
/* @__PURE__ */
|
|
3914
|
-
onReload ? /* @__PURE__ */
|
|
3983
|
+
return /* @__PURE__ */ jsxs92("div", { ref, className: cls, role: "status", ...rest, children: [
|
|
3984
|
+
/* @__PURE__ */ jsx112("span", { className: "oc-version-banner-dot", "aria-hidden": "true" }),
|
|
3985
|
+
/* @__PURE__ */ jsx112("span", { className: "oc-version-banner-text", children: text ?? `New version (${version}) available - reload the page` }),
|
|
3986
|
+
/* @__PURE__ */ jsx112("span", { className: "oc-version-banner-short", children: short }),
|
|
3987
|
+
onReload ? /* @__PURE__ */ jsx112("button", { className: "oc-version-banner-action", type: "button", onClick: onReload, children: actionLabel }) : /* @__PURE__ */ jsx112("a", { className: "oc-version-banner-action", href: "", children: actionLabel })
|
|
3915
3988
|
] });
|
|
3916
3989
|
});
|
|
3917
3990
|
|
|
3918
3991
|
// src/components/Watermark.tsx
|
|
3919
|
-
import { forwardRef as
|
|
3920
|
-
import { jsx as
|
|
3921
|
-
var Watermark =
|
|
3992
|
+
import { forwardRef as forwardRef111, Fragment as Fragment26 } from "react";
|
|
3993
|
+
import { jsx as jsx113 } from "react/jsx-runtime";
|
|
3994
|
+
var Watermark = forwardRef111(function Watermark2({ text = "Concept", variant = "diagonal", tone = "default", repeat = 12, mono = false, className, ...rest }, ref) {
|
|
3922
3995
|
const classes = cx("oc-watermark", variant !== "diagonal" && `oc-watermark--${variant}`, tone !== "default" && `oc-watermark--${tone}`, mono && "oc-watermark--mono", className);
|
|
3923
3996
|
const count = variant === "tile" ? Math.max(1, repeat) : 1;
|
|
3924
|
-
return /* @__PURE__ */
|
|
3997
|
+
return /* @__PURE__ */ jsx113("span", { ref, className: classes, "aria-hidden": "true", ...rest, children: Array.from({ length: count }, (_, i) => typeof text === "string" || typeof text === "number" ? /* @__PURE__ */ jsx113("span", { children: text }, i) : /* @__PURE__ */ jsx113(Fragment26, { children: text }, i)) });
|
|
3925
3998
|
});
|
|
3926
3999
|
|
|
3927
4000
|
// src/blocks/BlockAboutTimeline.tsx
|
|
3928
|
-
import { forwardRef as
|
|
3929
|
-
import { jsx as
|
|
3930
|
-
var BlockAboutTimeline =
|
|
4001
|
+
import { forwardRef as forwardRef112, useId as useId34 } from "react";
|
|
4002
|
+
import { jsx as jsx114, jsxs as jsxs93 } from "react/jsx-runtime";
|
|
4003
|
+
var BlockAboutTimeline = forwardRef112(function BlockAboutTimeline2({ eyebrow, title, children, timeline = [], image, imageAlt = "", badge, reverse = false, className, ...rest }, ref) {
|
|
3931
4004
|
const titleId = `oc-about-title-${useId34().replace(/[^\w-]/g, "")}`;
|
|
3932
|
-
return /* @__PURE__ */
|
|
3933
|
-
/* @__PURE__ */
|
|
3934
|
-
image && /* @__PURE__ */
|
|
3935
|
-
badge != null && /* @__PURE__ */
|
|
4005
|
+
return /* @__PURE__ */ jsx114("section", { ref, className: cx("oc-block-about", reverse && "oc-block-about--reverse", className), "aria-labelledby": titleId, ...rest, children: /* @__PURE__ */ jsxs93("div", { className: "oc-block-about-inner", children: [
|
|
4006
|
+
/* @__PURE__ */ jsxs93("figure", { className: "oc-block-about-media", "aria-hidden": image ? void 0 : true, children: [
|
|
4007
|
+
image && /* @__PURE__ */ jsx114("img", { src: image, alt: imageAlt, loading: "lazy" }),
|
|
4008
|
+
badge != null && /* @__PURE__ */ jsx114("span", { className: "oc-block-about-badge", children: badge })
|
|
3936
4009
|
] }),
|
|
3937
|
-
/* @__PURE__ */
|
|
3938
|
-
eyebrow != null && /* @__PURE__ */
|
|
3939
|
-
/* @__PURE__ */
|
|
4010
|
+
/* @__PURE__ */ jsxs93("div", { className: "oc-block-about-copy", children: [
|
|
4011
|
+
eyebrow != null && /* @__PURE__ */ jsx114("p", { className: "oc-eyebrow", children: eyebrow }),
|
|
4012
|
+
/* @__PURE__ */ jsx114("h2", { className: "oc-block-about-title", id: titleId, children: title }),
|
|
3940
4013
|
children,
|
|
3941
|
-
timeline.length > 0 && /* @__PURE__ */
|
|
4014
|
+
timeline.length > 0 && /* @__PURE__ */ jsx114(Timeline, { items: timeline })
|
|
3942
4015
|
] })
|
|
3943
4016
|
] }) });
|
|
3944
4017
|
});
|
|
3945
4018
|
|
|
3946
4019
|
// src/blocks/BlockAppHeader.tsx
|
|
3947
|
-
import { forwardRef as
|
|
3948
|
-
import { jsx as
|
|
3949
|
-
var BlockAppHeader =
|
|
3950
|
-
return /* @__PURE__ */
|
|
3951
|
-
toggleFor && /* @__PURE__ */
|
|
3952
|
-
/* @__PURE__ */
|
|
3953
|
-
/* @__PURE__ */
|
|
4020
|
+
import { forwardRef as forwardRef113 } from "react";
|
|
4021
|
+
import { jsx as jsx115, jsxs as jsxs94 } from "react/jsx-runtime";
|
|
4022
|
+
var BlockAppHeader = forwardRef113(function BlockAppHeader2({ toggleFor, toggleLabel = "Toggle sidebar", nav, navLabel = "Module navigation", actions, title, className, ...rest }, ref) {
|
|
4023
|
+
return /* @__PURE__ */ jsxs94("header", { ref, className: cx("oc-block-appbar", className), ...rest, children: [
|
|
4024
|
+
toggleFor && /* @__PURE__ */ jsxs94("label", { className: "oc-btn oc-btn--ghost oc-btn--icon", htmlFor: toggleFor, title: toggleLabel, children: [
|
|
4025
|
+
/* @__PURE__ */ jsx115(Icon, { d: "M4 6h16M4 12h16M4 18h16" }),
|
|
4026
|
+
/* @__PURE__ */ jsx115("span", { className: "oc-visually-hidden", children: toggleLabel })
|
|
3954
4027
|
] }),
|
|
3955
|
-
title != null && /* @__PURE__ */
|
|
3956
|
-
nav && /* @__PURE__ */
|
|
3957
|
-
actions != null && /* @__PURE__ */
|
|
4028
|
+
title != null && /* @__PURE__ */ jsx115("span", { className: "oc-block-appbar-title", children: title }),
|
|
4029
|
+
nav && /* @__PURE__ */ jsx115(Navmenu, { label: navLabel, navClassName: "oc-block-appbar-nav", children: nav.map((item, i) => /* @__PURE__ */ jsx115(NavmenuItem, { children: /* @__PURE__ */ jsx115(NavmenuLink, { href: item.href, current: item.current, children: item.label }) }, i)) }),
|
|
4030
|
+
actions != null && /* @__PURE__ */ jsx115("div", { className: "oc-block-appbar-actions", children: actions })
|
|
3958
4031
|
] });
|
|
3959
4032
|
});
|
|
3960
4033
|
|
|
3961
4034
|
// src/blocks/BlockAppShell.tsx
|
|
3962
|
-
import { forwardRef as
|
|
3963
|
-
import { jsx as
|
|
3964
|
-
var BlockAppShell =
|
|
4035
|
+
import { forwardRef as forwardRef114, useId as useId35 } from "react";
|
|
4036
|
+
import { jsx as jsx116, jsxs as jsxs95 } from "react/jsx-runtime";
|
|
4037
|
+
var BlockAppShell = forwardRef114(function BlockAppShell2({ sidebar, header, breadcrumbs, toggleId, height, className, style, children, ...rest }, ref) {
|
|
3965
4038
|
const auto = useId35();
|
|
3966
4039
|
const id = toggleId ?? `oc-shell-toggle-${auto.replace(/:/g, "")}`;
|
|
3967
|
-
return /* @__PURE__ */
|
|
4040
|
+
return /* @__PURE__ */ jsxs95(
|
|
3968
4041
|
"div",
|
|
3969
4042
|
{
|
|
3970
4043
|
ref,
|
|
@@ -3972,14 +4045,14 @@ var BlockAppShell = forwardRef111(function BlockAppShell2({ sidebar, header, bre
|
|
|
3972
4045
|
style: height ? { "--oc-block-shell-height": height, ...style } : style,
|
|
3973
4046
|
...rest,
|
|
3974
4047
|
children: [
|
|
3975
|
-
/* @__PURE__ */
|
|
4048
|
+
/* @__PURE__ */ jsx116("input", { className: "oc-block-shell-toggle", type: "checkbox", id, "aria-label": "Collapse sidebar" }),
|
|
3976
4049
|
sidebar,
|
|
3977
|
-
/* @__PURE__ */
|
|
4050
|
+
/* @__PURE__ */ jsxs95("div", { className: "oc-block-shell-main", children: [
|
|
3978
4051
|
header,
|
|
3979
|
-
breadcrumbs && /* @__PURE__ */
|
|
3980
|
-
(item, i) => item.href && i < breadcrumbs.length - 1 ? /* @__PURE__ */
|
|
4052
|
+
breadcrumbs && /* @__PURE__ */ jsx116("div", { className: "oc-block-shell-breadcrumbs", children: /* @__PURE__ */ jsx116("nav", { "aria-label": "Breadcrumb", children: /* @__PURE__ */ jsx116("ol", { className: "oc-breadcrumb", children: breadcrumbs.map(
|
|
4053
|
+
(item, i) => item.href && i < breadcrumbs.length - 1 ? /* @__PURE__ */ jsx116("li", { className: "oc-breadcrumb-item", children: /* @__PURE__ */ jsx116("a", { href: item.href, children: item.label }) }, i) : /* @__PURE__ */ jsx116("li", { className: "oc-breadcrumb-item", "aria-current": "page", children: item.label }, i)
|
|
3981
4054
|
) }) }) }),
|
|
3982
|
-
/* @__PURE__ */
|
|
4055
|
+
/* @__PURE__ */ jsx116("main", { className: "oc-block-shell-content", children })
|
|
3983
4056
|
] })
|
|
3984
4057
|
]
|
|
3985
4058
|
}
|
|
@@ -3987,41 +4060,41 @@ var BlockAppShell = forwardRef111(function BlockAppShell2({ sidebar, header, bre
|
|
|
3987
4060
|
});
|
|
3988
4061
|
|
|
3989
4062
|
// src/blocks/BlockAuth.tsx
|
|
3990
|
-
import { forwardRef as
|
|
3991
|
-
import { Fragment as Fragment27, jsx as
|
|
3992
|
-
var BlockAuth =
|
|
4063
|
+
import { forwardRef as forwardRef115, useId as useId36 } from "react";
|
|
4064
|
+
import { Fragment as Fragment27, jsx as jsx117, jsxs as jsxs96 } from "react/jsx-runtime";
|
|
4065
|
+
var BlockAuth = forwardRef115(function BlockAuth2({ title = "Sign in", subtitle, submitLabel = "Sign in", socialLabel, dividerLabel = "or continue with", footer, onSubmit, onSocial, className, ...rest }, ref) {
|
|
3993
4066
|
const id = useId36().replace(/:/g, "");
|
|
3994
4067
|
const submit = (e) => {
|
|
3995
4068
|
e.preventDefault();
|
|
3996
4069
|
const data = new FormData(e.currentTarget);
|
|
3997
4070
|
onSubmit?.({ email: String(data.get("email") ?? ""), password: String(data.get("password") ?? "") });
|
|
3998
4071
|
};
|
|
3999
|
-
return /* @__PURE__ */
|
|
4000
|
-
/* @__PURE__ */
|
|
4001
|
-
/* @__PURE__ */
|
|
4002
|
-
subtitle != null && /* @__PURE__ */
|
|
4003
|
-
/* @__PURE__ */
|
|
4004
|
-
/* @__PURE__ */
|
|
4005
|
-
/* @__PURE__ */
|
|
4072
|
+
return /* @__PURE__ */ jsxs96("div", { ref, className: cx("oc-block-auth", className), ...rest, children: [
|
|
4073
|
+
/* @__PURE__ */ jsxs96("form", { className: "oc-block-auth-card", onSubmit: submit, children: [
|
|
4074
|
+
/* @__PURE__ */ jsx117("h2", { children: title }),
|
|
4075
|
+
subtitle != null && /* @__PURE__ */ jsx117("p", { className: "oc-block-subtitle", children: subtitle }),
|
|
4076
|
+
/* @__PURE__ */ jsxs96("div", { className: "oc-form-group", children: [
|
|
4077
|
+
/* @__PURE__ */ jsx117("label", { className: "oc-label", htmlFor: `${id}-email`, children: "Email" }),
|
|
4078
|
+
/* @__PURE__ */ jsx117("input", { className: "oc-input", id: `${id}-email`, name: "email", type: "email", placeholder: "name@company.com" })
|
|
4006
4079
|
] }),
|
|
4007
|
-
/* @__PURE__ */
|
|
4008
|
-
/* @__PURE__ */
|
|
4009
|
-
/* @__PURE__ */
|
|
4080
|
+
/* @__PURE__ */ jsxs96("div", { className: "oc-form-group", children: [
|
|
4081
|
+
/* @__PURE__ */ jsx117("label", { className: "oc-label", htmlFor: `${id}-password`, children: "Password" }),
|
|
4082
|
+
/* @__PURE__ */ jsx117("input", { className: "oc-input", id: `${id}-password`, name: "password", type: "password", placeholder: "********" })
|
|
4010
4083
|
] }),
|
|
4011
|
-
/* @__PURE__ */
|
|
4012
|
-
socialLabel != null && /* @__PURE__ */
|
|
4013
|
-
/* @__PURE__ */
|
|
4014
|
-
/* @__PURE__ */
|
|
4084
|
+
/* @__PURE__ */ jsx117("button", { className: "oc-btn", type: "submit", style: { width: "100%" }, children: submitLabel }),
|
|
4085
|
+
socialLabel != null && /* @__PURE__ */ jsxs96(Fragment27, { children: [
|
|
4086
|
+
/* @__PURE__ */ jsx117("div", { className: "oc-block-auth-divider", children: dividerLabel }),
|
|
4087
|
+
/* @__PURE__ */ jsx117("button", { className: "oc-btn oc-btn--outline", type: "button", style: { width: "100%" }, onClick: onSocial, children: socialLabel })
|
|
4015
4088
|
] })
|
|
4016
4089
|
] }),
|
|
4017
|
-
footer != null && /* @__PURE__ */
|
|
4090
|
+
footer != null && /* @__PURE__ */ jsx117("div", { className: "oc-block-auth-footer", children: footer })
|
|
4018
4091
|
] });
|
|
4019
4092
|
});
|
|
4020
4093
|
|
|
4021
4094
|
// src/blocks/BlockAuthSplit.tsx
|
|
4022
|
-
import { forwardRef as
|
|
4023
|
-
import { jsx as
|
|
4024
|
-
var BlockAuthSplit =
|
|
4095
|
+
import { forwardRef as forwardRef116, useId as useId37 } from "react";
|
|
4096
|
+
import { jsx as jsx118, jsxs as jsxs97 } from "react/jsx-runtime";
|
|
4097
|
+
var BlockAuthSplit = forwardRef116(function BlockAuthSplit2({
|
|
4025
4098
|
logo,
|
|
4026
4099
|
logoHref = "#",
|
|
4027
4100
|
quote,
|
|
@@ -4046,60 +4119,60 @@ var BlockAuthSplit = forwardRef113(function BlockAuthSplit2({
|
|
|
4046
4119
|
remember: data.get("remember") != null
|
|
4047
4120
|
});
|
|
4048
4121
|
};
|
|
4049
|
-
return /* @__PURE__ */
|
|
4050
|
-
/* @__PURE__ */
|
|
4051
|
-
logo != null && /* @__PURE__ */
|
|
4052
|
-
quote != null && /* @__PURE__ */
|
|
4053
|
-
/* @__PURE__ */
|
|
4054
|
-
quoteAuthor != null && /* @__PURE__ */
|
|
4122
|
+
return /* @__PURE__ */ jsxs97("div", { ref, className: cx("oc-block-authsplit", className), ...rest, children: [
|
|
4123
|
+
/* @__PURE__ */ jsxs97("aside", { className: "oc-block-authsplit-brand", children: [
|
|
4124
|
+
logo != null && /* @__PURE__ */ jsx118("a", { className: "oc-block-authsplit-logo", href: logoHref, children: logo }),
|
|
4125
|
+
quote != null && /* @__PURE__ */ jsxs97("blockquote", { className: "oc-block-authsplit-quote", children: [
|
|
4126
|
+
/* @__PURE__ */ jsx118("p", { children: quote }),
|
|
4127
|
+
quoteAuthor != null && /* @__PURE__ */ jsx118("footer", { children: quoteAuthor })
|
|
4055
4128
|
] })
|
|
4056
4129
|
] }),
|
|
4057
|
-
/* @__PURE__ */
|
|
4058
|
-
/* @__PURE__ */
|
|
4059
|
-
subtitle != null && /* @__PURE__ */
|
|
4060
|
-
/* @__PURE__ */
|
|
4061
|
-
/* @__PURE__ */
|
|
4062
|
-
/* @__PURE__ */
|
|
4063
|
-
/* @__PURE__ */
|
|
4130
|
+
/* @__PURE__ */ jsx118("div", { className: "oc-block-authsplit-form", children: /* @__PURE__ */ jsxs97("form", { className: "oc-block-authsplit-card", onSubmit: submit, children: [
|
|
4131
|
+
/* @__PURE__ */ jsx118("h1", { className: "oc-block-authsplit-title", children: title }),
|
|
4132
|
+
subtitle != null && /* @__PURE__ */ jsx118("p", { className: "oc-block-authsplit-subtitle", children: subtitle }),
|
|
4133
|
+
/* @__PURE__ */ jsxs97("div", { className: "oc-block-authsplit-fields", children: [
|
|
4134
|
+
/* @__PURE__ */ jsxs97("div", { className: "oc-field", children: [
|
|
4135
|
+
/* @__PURE__ */ jsx118("label", { className: "oc-field-label", htmlFor: `${id}-email`, children: "E-mail" }),
|
|
4136
|
+
/* @__PURE__ */ jsx118("input", { className: "oc-input", id: `${id}-email`, name: "email", type: "email", autoComplete: "username", placeholder: "name@company.com", required: true })
|
|
4064
4137
|
] }),
|
|
4065
|
-
/* @__PURE__ */
|
|
4066
|
-
/* @__PURE__ */
|
|
4067
|
-
/* @__PURE__ */
|
|
4138
|
+
/* @__PURE__ */ jsxs97("div", { className: "oc-field", children: [
|
|
4139
|
+
/* @__PURE__ */ jsx118("label", { className: "oc-field-label", htmlFor: `${id}-password`, children: "Password" }),
|
|
4140
|
+
/* @__PURE__ */ jsx118(PasswordInput, { id: `${id}-password`, name: "password", required: true })
|
|
4068
4141
|
] }),
|
|
4069
|
-
/* @__PURE__ */
|
|
4070
|
-
/* @__PURE__ */
|
|
4071
|
-
/* @__PURE__ */
|
|
4142
|
+
/* @__PURE__ */ jsxs97("div", { className: "oc-block-authsplit-row", children: [
|
|
4143
|
+
/* @__PURE__ */ jsxs97("label", { children: [
|
|
4144
|
+
/* @__PURE__ */ jsx118("input", { className: "oc-checkbox", type: "checkbox", name: "remember" }),
|
|
4072
4145
|
" ",
|
|
4073
4146
|
rememberLabel
|
|
4074
4147
|
] }),
|
|
4075
|
-
/* @__PURE__ */
|
|
4148
|
+
/* @__PURE__ */ jsx118("a", { className: "oc-link", href: forgotHref, children: forgotLabel })
|
|
4076
4149
|
] }),
|
|
4077
|
-
/* @__PURE__ */
|
|
4150
|
+
/* @__PURE__ */ jsx118("button", { className: "oc-btn", type: "submit", style: { width: "100%" }, children: submitLabel })
|
|
4078
4151
|
] })
|
|
4079
4152
|
] }) })
|
|
4080
4153
|
] });
|
|
4081
4154
|
});
|
|
4082
4155
|
|
|
4083
4156
|
// src/blocks/BlockContactGrid.tsx
|
|
4084
|
-
import { forwardRef as
|
|
4085
|
-
import { jsx as
|
|
4086
|
-
var BlockContactGrid =
|
|
4157
|
+
import { forwardRef as forwardRef117, useId as useId38 } from "react";
|
|
4158
|
+
import { jsx as jsx119, jsxs as jsxs98 } from "react/jsx-runtime";
|
|
4159
|
+
var BlockContactGrid = forwardRef117(function BlockContactGrid2({ eyebrow, title, lead, cards, plain = false, className, ...rest }, ref) {
|
|
4087
4160
|
const titleId = `oc-contact-title-${useId38().replace(/[^\w-]/g, "")}`;
|
|
4088
|
-
return /* @__PURE__ */
|
|
4089
|
-
(eyebrow != null || title != null || lead != null) && /* @__PURE__ */
|
|
4090
|
-
eyebrow != null && /* @__PURE__ */
|
|
4091
|
-
title != null && /* @__PURE__ */
|
|
4092
|
-
lead != null && /* @__PURE__ */
|
|
4161
|
+
return /* @__PURE__ */ jsxs98("section", { ref, className: cx("oc-block-contact", plain && "oc-block-contact--plain", className), "aria-labelledby": title != null ? titleId : void 0, ...rest, children: [
|
|
4162
|
+
(eyebrow != null || title != null || lead != null) && /* @__PURE__ */ jsxs98("div", { className: "oc-block-contact-head", children: [
|
|
4163
|
+
eyebrow != null && /* @__PURE__ */ jsx119("p", { className: "oc-eyebrow", children: eyebrow }),
|
|
4164
|
+
title != null && /* @__PURE__ */ jsx119("h2", { className: "oc-block-contact-heading", id: titleId, children: title }),
|
|
4165
|
+
lead != null && /* @__PURE__ */ jsx119("p", { className: "oc-block-contact-lead", children: lead })
|
|
4093
4166
|
] }),
|
|
4094
|
-
/* @__PURE__ */
|
|
4167
|
+
/* @__PURE__ */ jsx119("div", { className: "oc-block-contact-grid", children: cards.map((card, i) => {
|
|
4095
4168
|
const Card2 = card.address ? "address" : "article";
|
|
4096
4169
|
const Title = card.address ? "span" : "h3";
|
|
4097
4170
|
const Line = card.address ? "span" : "p";
|
|
4098
|
-
return /* @__PURE__ */
|
|
4099
|
-
card.icon != null && /* @__PURE__ */
|
|
4100
|
-
/* @__PURE__ */
|
|
4171
|
+
return /* @__PURE__ */ jsxs98(Card2, { className: "oc-block-contact-card", children: [
|
|
4172
|
+
card.icon != null && /* @__PURE__ */ jsx119("span", { className: cx("oc-product-mark oc-product-mark--sm oc-product-mark--soft", card.accent && `oc-accent--${card.accent}`), "aria-hidden": "true", children: card.icon }),
|
|
4173
|
+
/* @__PURE__ */ jsx119(Title, { className: "oc-block-contact-title", children: card.title }),
|
|
4101
4174
|
card.lines.map(
|
|
4102
|
-
(line, j) => line.href ? /* @__PURE__ */
|
|
4175
|
+
(line, j) => line.href ? /* @__PURE__ */ jsx119("a", { className: "oc-block-contact-line", href: line.href, children: line.text }, j) : /* @__PURE__ */ jsx119(Line, { className: "oc-block-contact-line", children: line.text }, j)
|
|
4103
4176
|
)
|
|
4104
4177
|
] }, i);
|
|
4105
4178
|
}) })
|
|
@@ -4107,160 +4180,160 @@ var BlockContactGrid = forwardRef114(function BlockContactGrid2({ eyebrow, title
|
|
|
4107
4180
|
});
|
|
4108
4181
|
|
|
4109
4182
|
// src/blocks/BlockCta.tsx
|
|
4110
|
-
import { forwardRef as
|
|
4111
|
-
import { jsx as
|
|
4112
|
-
var BlockCta =
|
|
4113
|
-
return /* @__PURE__ */
|
|
4114
|
-
/* @__PURE__ */
|
|
4115
|
-
description != null && /* @__PURE__ */
|
|
4116
|
-
actions != null && /* @__PURE__ */
|
|
4183
|
+
import { forwardRef as forwardRef118 } from "react";
|
|
4184
|
+
import { jsx as jsx120, jsxs as jsxs99 } from "react/jsx-runtime";
|
|
4185
|
+
var BlockCta = forwardRef118(function BlockCta2({ title, description, actions, className, ...rest }, ref) {
|
|
4186
|
+
return /* @__PURE__ */ jsxs99("div", { ref, className: cx("oc-block-cta", className), ...rest, children: [
|
|
4187
|
+
/* @__PURE__ */ jsx120("h2", { children: title }),
|
|
4188
|
+
description != null && /* @__PURE__ */ jsx120("p", { children: description }),
|
|
4189
|
+
actions != null && /* @__PURE__ */ jsx120("div", { className: "oc-block-hero-actions", children: actions })
|
|
4117
4190
|
] });
|
|
4118
4191
|
});
|
|
4119
4192
|
|
|
4120
4193
|
// src/blocks/BlockDataTable.tsx
|
|
4121
|
-
import { forwardRef as
|
|
4122
|
-
import { jsx as
|
|
4123
|
-
var BlockDataTable =
|
|
4124
|
-
return /* @__PURE__ */
|
|
4125
|
-
/* @__PURE__ */
|
|
4126
|
-
/* @__PURE__ */
|
|
4127
|
-
title != null && /* @__PURE__ */
|
|
4128
|
-
description != null && /* @__PURE__ */
|
|
4194
|
+
import { forwardRef as forwardRef119 } from "react";
|
|
4195
|
+
import { jsx as jsx121, jsxs as jsxs100 } from "react/jsx-runtime";
|
|
4196
|
+
var BlockDataTable = forwardRef119(function BlockDataTable2({ title, description, actions, toolbar, bulk, footer, className, children, ...rest }, ref) {
|
|
4197
|
+
return /* @__PURE__ */ jsxs100("section", { ref, className: cx("oc-card oc-block-datatable", className), ...rest, children: [
|
|
4198
|
+
/* @__PURE__ */ jsxs100("header", { className: "oc-block-datatable-head", children: [
|
|
4199
|
+
/* @__PURE__ */ jsxs100("div", { children: [
|
|
4200
|
+
title != null && /* @__PURE__ */ jsx121("h2", { className: "oc-block-datatable-title", children: title }),
|
|
4201
|
+
description != null && /* @__PURE__ */ jsx121("p", { className: "oc-block-datatable-description", children: description })
|
|
4129
4202
|
] }),
|
|
4130
|
-
actions != null && /* @__PURE__ */
|
|
4203
|
+
actions != null && /* @__PURE__ */ jsx121("div", { children: actions })
|
|
4131
4204
|
] }),
|
|
4132
|
-
/* @__PURE__ */
|
|
4133
|
-
toolbar != null && /* @__PURE__ */
|
|
4134
|
-
bulk != null && /* @__PURE__ */
|
|
4205
|
+
/* @__PURE__ */ jsxs100("div", { className: "oc-block-datatable-body", children: [
|
|
4206
|
+
toolbar != null && /* @__PURE__ */ jsx121("div", { className: "oc-table-toolbar", children: toolbar }),
|
|
4207
|
+
bulk != null && /* @__PURE__ */ jsx121("div", { className: "oc-block-datatable-bulk", children: bulk }),
|
|
4135
4208
|
children,
|
|
4136
|
-
footer != null && /* @__PURE__ */
|
|
4209
|
+
footer != null && /* @__PURE__ */ jsx121("div", { className: "oc-table-footer", children: footer })
|
|
4137
4210
|
] })
|
|
4138
4211
|
] });
|
|
4139
4212
|
});
|
|
4140
4213
|
function BlockDataTableSpacer() {
|
|
4141
|
-
return /* @__PURE__ */
|
|
4214
|
+
return /* @__PURE__ */ jsx121("span", { className: "oc-table-toolbar-spacer" });
|
|
4142
4215
|
}
|
|
4143
4216
|
function FilterPills({ className, ...rest }) {
|
|
4144
|
-
return /* @__PURE__ */
|
|
4217
|
+
return /* @__PURE__ */ jsx121("div", { className: cx("oc-filter-pills", className), role: "group", ...rest });
|
|
4145
4218
|
}
|
|
4146
4219
|
function FilterPill({ current, className, ...rest }) {
|
|
4147
|
-
return /* @__PURE__ */
|
|
4220
|
+
return /* @__PURE__ */ jsx121("a", { className: cx("oc-filter-pill", className), "aria-current": current ? "true" : void 0, ...rest });
|
|
4148
4221
|
}
|
|
4149
4222
|
|
|
4150
4223
|
// src/blocks/BlockFaq.tsx
|
|
4151
|
-
import { forwardRef as
|
|
4152
|
-
import { jsx as
|
|
4153
|
-
var BlockFaq =
|
|
4224
|
+
import { forwardRef as forwardRef120, useId as useId39 } from "react";
|
|
4225
|
+
import { jsx as jsx122, jsxs as jsxs101 } from "react/jsx-runtime";
|
|
4226
|
+
var BlockFaq = forwardRef120(function BlockFaq2({ eyebrow, title, lead, items, openIndex = 0, more, split = false, name, className, ...rest }, ref) {
|
|
4154
4227
|
const auto = useId39().replace(/[^\w-]/g, "");
|
|
4155
4228
|
const group = name ?? `oc-faq-${auto}`;
|
|
4156
4229
|
const titleId = `oc-faq-title-${auto}`;
|
|
4157
|
-
return /* @__PURE__ */
|
|
4158
|
-
/* @__PURE__ */
|
|
4159
|
-
eyebrow != null && /* @__PURE__ */
|
|
4160
|
-
/* @__PURE__ */
|
|
4161
|
-
lead != null && /* @__PURE__ */
|
|
4230
|
+
return /* @__PURE__ */ jsx122("section", { ref, className: cx("oc-block-faq", split && "oc-block-faq--split", className), "aria-labelledby": titleId, ...rest, children: /* @__PURE__ */ jsxs101("div", { className: "oc-block-faq-inner", children: [
|
|
4231
|
+
/* @__PURE__ */ jsxs101("div", { className: "oc-block-faq-head", children: [
|
|
4232
|
+
eyebrow != null && /* @__PURE__ */ jsx122("p", { className: "oc-eyebrow", children: eyebrow }),
|
|
4233
|
+
/* @__PURE__ */ jsx122("h2", { className: "oc-block-faq-title", id: titleId, children: title }),
|
|
4234
|
+
lead != null && /* @__PURE__ */ jsx122("p", { className: "oc-block-faq-lead", children: lead })
|
|
4162
4235
|
] }),
|
|
4163
|
-
/* @__PURE__ */
|
|
4236
|
+
/* @__PURE__ */ jsx122("div", { className: "oc-accordion oc-block-faq-list", children: items.map((item, i) => (
|
|
4164
4237
|
// "name" groups the items; React 19 passes it through, older versions too (unknown attribute on details).
|
|
4165
|
-
/* @__PURE__ */
|
|
4166
|
-
/* @__PURE__ */
|
|
4167
|
-
/* @__PURE__ */
|
|
4238
|
+
/* @__PURE__ */ jsxs101("details", { className: "oc-accordion-item", ...{ name: group }, open: i === openIndex || void 0, children: [
|
|
4239
|
+
/* @__PURE__ */ jsx122("summary", { className: "oc-accordion-trigger", children: item.question }),
|
|
4240
|
+
/* @__PURE__ */ jsx122("div", { className: "oc-accordion-content", children: item.answer })
|
|
4168
4241
|
] }, i)
|
|
4169
4242
|
)) }),
|
|
4170
|
-
more != null && /* @__PURE__ */
|
|
4243
|
+
more != null && /* @__PURE__ */ jsx122("p", { className: "oc-block-faq-more", children: more })
|
|
4171
4244
|
] }) });
|
|
4172
4245
|
});
|
|
4173
4246
|
|
|
4174
4247
|
// src/blocks/BlockFeatures.tsx
|
|
4175
|
-
import { forwardRef as
|
|
4176
|
-
import { jsx as
|
|
4177
|
-
var BlockFeatures =
|
|
4178
|
-
return /* @__PURE__ */
|
|
4179
|
-
title != null && /* @__PURE__ */
|
|
4180
|
-
description != null && /* @__PURE__ */
|
|
4181
|
-
/* @__PURE__ */
|
|
4182
|
-
f.icon != null && /* @__PURE__ */
|
|
4183
|
-
/* @__PURE__ */
|
|
4184
|
-
f.description != null && /* @__PURE__ */
|
|
4248
|
+
import { forwardRef as forwardRef121 } from "react";
|
|
4249
|
+
import { jsx as jsx123, jsxs as jsxs102 } from "react/jsx-runtime";
|
|
4250
|
+
var BlockFeatures = forwardRef121(function BlockFeatures2({ title, description, features, className, ...rest }, ref) {
|
|
4251
|
+
return /* @__PURE__ */ jsxs102("div", { ref, className: cx("oc-block-features", className), ...rest, children: [
|
|
4252
|
+
title != null && /* @__PURE__ */ jsx123("h2", { children: title }),
|
|
4253
|
+
description != null && /* @__PURE__ */ jsx123("p", { children: description }),
|
|
4254
|
+
/* @__PURE__ */ jsx123("div", { className: "oc-block-features-grid", children: features.map((f, i) => /* @__PURE__ */ jsxs102("div", { className: "oc-block-feature-card", children: [
|
|
4255
|
+
f.icon != null && /* @__PURE__ */ jsx123("div", { className: "oc-block-feature-icon", children: f.icon }),
|
|
4256
|
+
/* @__PURE__ */ jsx123("h3", { children: f.title }),
|
|
4257
|
+
f.description != null && /* @__PURE__ */ jsx123("p", { children: f.description })
|
|
4185
4258
|
] }, i)) })
|
|
4186
4259
|
] });
|
|
4187
4260
|
});
|
|
4188
4261
|
|
|
4189
4262
|
// src/blocks/BlockFooter.tsx
|
|
4190
|
-
import { forwardRef as
|
|
4191
|
-
import { jsx as
|
|
4192
|
-
var BlockFooter =
|
|
4193
|
-
return /* @__PURE__ */
|
|
4194
|
-
/* @__PURE__ */
|
|
4195
|
-
/* @__PURE__ */
|
|
4196
|
-
/* @__PURE__ */
|
|
4263
|
+
import { forwardRef as forwardRef122 } from "react";
|
|
4264
|
+
import { jsx as jsx124, jsxs as jsxs103 } from "react/jsx-runtime";
|
|
4265
|
+
var BlockFooter = forwardRef122(function BlockFooter2({ columns, copyright, credit, className, ...rest }, ref) {
|
|
4266
|
+
return /* @__PURE__ */ jsxs103("div", { ref, className: cx("oc-block-footer", className), ...rest, children: [
|
|
4267
|
+
/* @__PURE__ */ jsx124("div", { className: "oc-block-footer-grid", children: columns.map((col, i) => /* @__PURE__ */ jsxs103("div", { className: "oc-block-footer-col", children: [
|
|
4268
|
+
/* @__PURE__ */ jsx124("h4", { children: col.title }),
|
|
4269
|
+
/* @__PURE__ */ jsx124("ul", { children: col.links.map((l, j) => /* @__PURE__ */ jsx124("li", { children: /* @__PURE__ */ jsx124("a", { href: l.href, children: l.label }) }, j)) })
|
|
4197
4270
|
] }, i)) }),
|
|
4198
|
-
(copyright != null || credit != null) && /* @__PURE__ */
|
|
4199
|
-
/* @__PURE__ */
|
|
4200
|
-
/* @__PURE__ */
|
|
4271
|
+
(copyright != null || credit != null) && /* @__PURE__ */ jsxs103("div", { className: "oc-block-footer-bottom", children: [
|
|
4272
|
+
/* @__PURE__ */ jsx124("span", { children: copyright }),
|
|
4273
|
+
/* @__PURE__ */ jsx124("span", { children: credit })
|
|
4201
4274
|
] })
|
|
4202
4275
|
] });
|
|
4203
4276
|
});
|
|
4204
4277
|
|
|
4205
4278
|
// src/blocks/BlockFormPage.tsx
|
|
4206
|
-
import { forwardRef as
|
|
4207
|
-
import { jsx as
|
|
4208
|
-
var BlockFormPage =
|
|
4209
|
-
return /* @__PURE__ */
|
|
4279
|
+
import { forwardRef as forwardRef123 } from "react";
|
|
4280
|
+
import { jsx as jsx125, jsxs as jsxs104 } from "react/jsx-runtime";
|
|
4281
|
+
var BlockFormPage = forwardRef123(function BlockFormPage2({ actions, className, children, ...rest }, ref) {
|
|
4282
|
+
return /* @__PURE__ */ jsxs104("form", { ref, className: cx("oc-block-formpage", className), ...rest, children: [
|
|
4210
4283
|
children,
|
|
4211
|
-
actions != null && /* @__PURE__ */
|
|
4284
|
+
actions != null && /* @__PURE__ */ jsx125("div", { className: "oc-block-formpage-actions", children: actions })
|
|
4212
4285
|
] });
|
|
4213
4286
|
});
|
|
4214
4287
|
function BlockFormPageGrid({ className, ...rest }) {
|
|
4215
|
-
return /* @__PURE__ */
|
|
4288
|
+
return /* @__PURE__ */ jsx125("div", { className: cx("oc-block-formpage-grid", className), ...rest });
|
|
4216
4289
|
}
|
|
4217
4290
|
|
|
4218
4291
|
// src/blocks/BlockHero.tsx
|
|
4219
|
-
import { forwardRef as
|
|
4220
|
-
import { jsx as
|
|
4221
|
-
var BlockHero =
|
|
4222
|
-
return /* @__PURE__ */
|
|
4223
|
-
badge != null && /* @__PURE__ */
|
|
4224
|
-
/* @__PURE__ */
|
|
4225
|
-
description != null && /* @__PURE__ */
|
|
4226
|
-
actions != null && /* @__PURE__ */
|
|
4292
|
+
import { forwardRef as forwardRef124 } from "react";
|
|
4293
|
+
import { jsx as jsx126, jsxs as jsxs105 } from "react/jsx-runtime";
|
|
4294
|
+
var BlockHero = forwardRef124(function BlockHero2({ badge, title, description, actions, className, ...rest }, ref) {
|
|
4295
|
+
return /* @__PURE__ */ jsxs105("div", { ref, className: cx("oc-block-hero", className), ...rest, children: [
|
|
4296
|
+
badge != null && /* @__PURE__ */ jsx126("span", { className: "oc-block-hero-badge", children: badge }),
|
|
4297
|
+
/* @__PURE__ */ jsx126("h1", { children: title }),
|
|
4298
|
+
description != null && /* @__PURE__ */ jsx126("p", { children: description }),
|
|
4299
|
+
actions != null && /* @__PURE__ */ jsx126("div", { className: "oc-block-hero-actions", children: actions })
|
|
4227
4300
|
] });
|
|
4228
4301
|
});
|
|
4229
4302
|
|
|
4230
4303
|
// src/blocks/BlockHeroCode.tsx
|
|
4231
|
-
import { forwardRef as
|
|
4232
|
-
import { jsx as
|
|
4304
|
+
import { forwardRef as forwardRef125 } from "react";
|
|
4305
|
+
import { jsx as jsx127, jsxs as jsxs106 } from "react/jsx-runtime";
|
|
4233
4306
|
var DEFAULT_TILES = [
|
|
4234
4307
|
{ glyph: "\u25C6", accent: "green", style: { inset: "-0.5rem auto auto 8%" } },
|
|
4235
4308
|
{ glyph: "\u25C9", accent: "violet", style: { inset: "0 6% auto auto", animationDelay: "-2s" } },
|
|
4236
4309
|
{ glyph: "\u25B2", accent: "orange", style: { inset: "auto 10% -0.5rem auto", animationDelay: "-4s" } }
|
|
4237
4310
|
];
|
|
4238
|
-
var BlockHeroCode =
|
|
4239
|
-
return /* @__PURE__ */
|
|
4240
|
-
/* @__PURE__ */
|
|
4241
|
-
eyebrow != null && /* @__PURE__ */
|
|
4242
|
-
/* @__PURE__ */
|
|
4243
|
-
lead != null && /* @__PURE__ */
|
|
4244
|
-
actions != null && /* @__PURE__ */
|
|
4311
|
+
var BlockHeroCode = forwardRef125(function BlockHeroCode2({ eyebrow, title, lead, actions, codeTitle, code, tiles = DEFAULT_TILES, className, ...rest }, ref) {
|
|
4312
|
+
return /* @__PURE__ */ jsx127("section", { ref, className: cx("oc-section-pad", className), ...rest, children: /* @__PURE__ */ jsxs106("div", { className: "oc-container oc-split", children: [
|
|
4313
|
+
/* @__PURE__ */ jsxs106("div", { children: [
|
|
4314
|
+
eyebrow != null && /* @__PURE__ */ jsx127("p", { className: "oc-eyebrow", children: eyebrow }),
|
|
4315
|
+
/* @__PURE__ */ jsx127("h1", { className: "oc-display", children: title }),
|
|
4316
|
+
lead != null && /* @__PURE__ */ jsx127("p", { className: "oc-lead", children: lead }),
|
|
4317
|
+
actions != null && /* @__PURE__ */ jsx127("div", { className: "flex flex-wrap gap-1 mt-2", children: actions })
|
|
4245
4318
|
] }),
|
|
4246
|
-
/* @__PURE__ */
|
|
4247
|
-
tiles.map((tile, i) => /* @__PURE__ */
|
|
4248
|
-
/* @__PURE__ */
|
|
4249
|
-
/* @__PURE__ */
|
|
4250
|
-
/* @__PURE__ */
|
|
4251
|
-
/* @__PURE__ */
|
|
4252
|
-
/* @__PURE__ */
|
|
4253
|
-
codeTitle != null && /* @__PURE__ */
|
|
4319
|
+
/* @__PURE__ */ jsxs106("div", { className: "relative p-2", children: [
|
|
4320
|
+
tiles.map((tile, i) => /* @__PURE__ */ jsx127("span", { className: `oc-icon-tile oc-icon-tile--float oc-accent--${tile.accent} absolute`, style: tile.style, "aria-hidden": "true", children: tile.glyph }, i)),
|
|
4321
|
+
/* @__PURE__ */ jsxs106("div", { className: "oc-code-window", children: [
|
|
4322
|
+
/* @__PURE__ */ jsxs106("div", { className: "oc-code-window__bar", children: [
|
|
4323
|
+
/* @__PURE__ */ jsx127("i", {}),
|
|
4324
|
+
/* @__PURE__ */ jsx127("i", {}),
|
|
4325
|
+
/* @__PURE__ */ jsx127("i", {}),
|
|
4326
|
+
codeTitle != null && /* @__PURE__ */ jsx127("span", { className: "oc-code-window__title", children: codeTitle })
|
|
4254
4327
|
] }),
|
|
4255
|
-
/* @__PURE__ */
|
|
4328
|
+
/* @__PURE__ */ jsx127("pre", { className: "oc-code-window__body", children: code })
|
|
4256
4329
|
] })
|
|
4257
4330
|
] })
|
|
4258
4331
|
] }) });
|
|
4259
4332
|
});
|
|
4260
4333
|
|
|
4261
4334
|
// src/blocks/BlockHeroOrbit.tsx
|
|
4262
|
-
import { forwardRef as
|
|
4263
|
-
import { jsx as
|
|
4335
|
+
import { forwardRef as forwardRef126 } from "react";
|
|
4336
|
+
import { jsx as jsx128, jsxs as jsxs107 } from "react/jsx-runtime";
|
|
4264
4337
|
var DEFAULT_MARKS = [
|
|
4265
4338
|
{ glyph: "\u25C6", accent: "green" },
|
|
4266
4339
|
{ glyph: "\u25C9", accent: "violet" },
|
|
@@ -4269,333 +4342,333 @@ var DEFAULT_MARKS = [
|
|
|
4269
4342
|
{ glyph: "\u2665", accent: "red" },
|
|
4270
4343
|
{ glyph: "\u2600", accent: "yellow" }
|
|
4271
4344
|
];
|
|
4272
|
-
var BlockHeroOrbit =
|
|
4345
|
+
var BlockHeroOrbit = forwardRef126(function BlockHeroOrbit2({ eyebrow, title, lead, actions, marks = DEFAULT_MARKS, codeTitle, code = "", center, duration, className, ...rest }, ref) {
|
|
4273
4346
|
const visualStyle = duration ? { "--oc-orbit-duration": duration } : void 0;
|
|
4274
|
-
return /* @__PURE__ */
|
|
4275
|
-
/* @__PURE__ */
|
|
4276
|
-
eyebrow != null && /* @__PURE__ */
|
|
4277
|
-
/* @__PURE__ */
|
|
4278
|
-
lead != null && /* @__PURE__ */
|
|
4279
|
-
actions != null && /* @__PURE__ */
|
|
4347
|
+
return /* @__PURE__ */ jsx128("section", { ref, className: cx("oc-block-orbit oc-section-pad", className), ...rest, children: /* @__PURE__ */ jsxs107("div", { className: "oc-container oc-split", children: [
|
|
4348
|
+
/* @__PURE__ */ jsxs107("div", { children: [
|
|
4349
|
+
eyebrow != null && /* @__PURE__ */ jsx128("p", { className: "oc-eyebrow", children: eyebrow }),
|
|
4350
|
+
/* @__PURE__ */ jsx128("h1", { className: "oc-display", children: title }),
|
|
4351
|
+
lead != null && /* @__PURE__ */ jsx128("p", { className: "oc-lead", children: lead }),
|
|
4352
|
+
actions != null && /* @__PURE__ */ jsx128("div", { className: "flex flex-wrap gap-1 mt-2", children: actions })
|
|
4280
4353
|
] }),
|
|
4281
|
-
/* @__PURE__ */
|
|
4282
|
-
/* @__PURE__ */
|
|
4283
|
-
center ?? /* @__PURE__ */
|
|
4284
|
-
/* @__PURE__ */
|
|
4285
|
-
/* @__PURE__ */
|
|
4286
|
-
/* @__PURE__ */
|
|
4287
|
-
/* @__PURE__ */
|
|
4288
|
-
codeTitle != null && /* @__PURE__ */
|
|
4354
|
+
/* @__PURE__ */ jsxs107("div", { className: "oc-block-orbit-visual", style: visualStyle, children: [
|
|
4355
|
+
/* @__PURE__ */ jsx128("div", { className: "oc-block-orbit-ring", "aria-hidden": "true", children: marks.map((mark, i) => /* @__PURE__ */ jsx128("span", { className: "oc-block-orbit-mark", style: { "--oc-orbit-angle": `${360 / marks.length * i}deg` }, children: /* @__PURE__ */ jsx128("span", { className: `oc-product-mark oc-product-mark--sm oc-accent--${mark.accent}`, children: mark.glyph }) }, i)) }),
|
|
4356
|
+
center ?? /* @__PURE__ */ jsxs107("div", { className: "oc-code-window oc-block-orbit-center", children: [
|
|
4357
|
+
/* @__PURE__ */ jsxs107("div", { className: "oc-code-window__bar", children: [
|
|
4358
|
+
/* @__PURE__ */ jsx128("i", {}),
|
|
4359
|
+
/* @__PURE__ */ jsx128("i", {}),
|
|
4360
|
+
/* @__PURE__ */ jsx128("i", {}),
|
|
4361
|
+
codeTitle != null && /* @__PURE__ */ jsx128("span", { className: "oc-code-window__title", children: codeTitle })
|
|
4289
4362
|
] }),
|
|
4290
|
-
/* @__PURE__ */
|
|
4363
|
+
/* @__PURE__ */ jsx128("pre", { className: "oc-code-window__body", children: code })
|
|
4291
4364
|
] })
|
|
4292
4365
|
] })
|
|
4293
4366
|
] }) });
|
|
4294
4367
|
});
|
|
4295
4368
|
|
|
4296
4369
|
// src/blocks/BlockHeroSplit.tsx
|
|
4297
|
-
import { forwardRef as
|
|
4298
|
-
import { jsx as
|
|
4299
|
-
var BlockHeroSplit =
|
|
4300
|
-
return /* @__PURE__ */
|
|
4301
|
-
/* @__PURE__ */
|
|
4302
|
-
/* @__PURE__ */
|
|
4303
|
-
description != null && /* @__PURE__ */
|
|
4304
|
-
actions != null && /* @__PURE__ */
|
|
4370
|
+
import { forwardRef as forwardRef127 } from "react";
|
|
4371
|
+
import { jsx as jsx129, jsxs as jsxs108 } from "react/jsx-runtime";
|
|
4372
|
+
var BlockHeroSplit = forwardRef127(function BlockHeroSplit2({ title, description, actions, visual, className, ...rest }, ref) {
|
|
4373
|
+
return /* @__PURE__ */ jsxs108("div", { ref, className: cx("oc-block-hero-split", className), ...rest, children: [
|
|
4374
|
+
/* @__PURE__ */ jsxs108("div", { children: [
|
|
4375
|
+
/* @__PURE__ */ jsx129("h1", { children: title }),
|
|
4376
|
+
description != null && /* @__PURE__ */ jsx129("p", { children: description }),
|
|
4377
|
+
actions != null && /* @__PURE__ */ jsx129("div", { className: "oc-block-hero-actions justify-start", children: actions })
|
|
4305
4378
|
] }),
|
|
4306
|
-
/* @__PURE__ */
|
|
4379
|
+
/* @__PURE__ */ jsx129("div", { className: "oc-block-hero-visual", children: visual })
|
|
4307
4380
|
] });
|
|
4308
4381
|
});
|
|
4309
4382
|
|
|
4310
4383
|
// src/blocks/BlockModuleHeader.tsx
|
|
4311
|
-
import { forwardRef as
|
|
4312
|
-
import { jsx as
|
|
4313
|
-
var BlockModuleHeader =
|
|
4314
|
-
return /* @__PURE__ */
|
|
4315
|
-
/* @__PURE__ */
|
|
4316
|
-
icon != null && /* @__PURE__ */
|
|
4317
|
-
/* @__PURE__ */
|
|
4318
|
-
/* @__PURE__ */
|
|
4319
|
-
intro != null && /* @__PURE__ */
|
|
4320
|
-
meta != null && /* @__PURE__ */
|
|
4384
|
+
import { forwardRef as forwardRef128 } from "react";
|
|
4385
|
+
import { jsx as jsx130, jsxs as jsxs109 } from "react/jsx-runtime";
|
|
4386
|
+
var BlockModuleHeader = forwardRef128(function BlockModuleHeader2({ icon, title, intro, meta, actions, className, ...rest }, ref) {
|
|
4387
|
+
return /* @__PURE__ */ jsxs109("header", { ref, className: cx("oc-block-modulehead", className), ...rest, children: [
|
|
4388
|
+
/* @__PURE__ */ jsxs109("div", { className: "oc-block-modulehead-band", children: [
|
|
4389
|
+
icon != null && /* @__PURE__ */ jsx130("span", { className: "oc-block-modulehead-icon", "aria-hidden": "true", children: icon }),
|
|
4390
|
+
/* @__PURE__ */ jsxs109("div", { className: "oc-block-modulehead-body", children: [
|
|
4391
|
+
/* @__PURE__ */ jsx130("h1", { className: "oc-block-modulehead-title", children: title }),
|
|
4392
|
+
intro != null && /* @__PURE__ */ jsx130("p", { className: "oc-block-modulehead-intro", children: intro }),
|
|
4393
|
+
meta != null && /* @__PURE__ */ jsx130("div", { className: "oc-block-modulehead-meta", children: meta })
|
|
4321
4394
|
] })
|
|
4322
4395
|
] }),
|
|
4323
|
-
actions != null && /* @__PURE__ */
|
|
4396
|
+
actions != null && /* @__PURE__ */ jsx130("div", { className: "oc-block-modulehead-actions", children: actions })
|
|
4324
4397
|
] });
|
|
4325
4398
|
});
|
|
4326
4399
|
|
|
4327
4400
|
// src/blocks/BlockPageHero.tsx
|
|
4328
|
-
import { forwardRef as
|
|
4329
|
-
import { jsx as
|
|
4330
|
-
var BlockPageHero =
|
|
4331
|
-
return /* @__PURE__ */
|
|
4332
|
-
eyebrow != null && /* @__PURE__ */
|
|
4333
|
-
/* @__PURE__ */
|
|
4334
|
-
description != null && /* @__PURE__ */
|
|
4335
|
-
actions != null && /* @__PURE__ */
|
|
4401
|
+
import { forwardRef as forwardRef129 } from "react";
|
|
4402
|
+
import { jsx as jsx131, jsxs as jsxs110 } from "react/jsx-runtime";
|
|
4403
|
+
var BlockPageHero = forwardRef129(function BlockPageHero2({ eyebrow, title, description, actions, className, ...rest }, ref) {
|
|
4404
|
+
return /* @__PURE__ */ jsxs110("section", { ref, className: cx("oc-hero", className), ...rest, children: [
|
|
4405
|
+
eyebrow != null && /* @__PURE__ */ jsx131("span", { className: "oc-hero-eyebrow", children: eyebrow }),
|
|
4406
|
+
/* @__PURE__ */ jsx131("h1", { className: "oc-hero-title", children: title }),
|
|
4407
|
+
description != null && /* @__PURE__ */ jsx131("p", { className: "oc-hero-text", children: description }),
|
|
4408
|
+
actions != null && /* @__PURE__ */ jsx131("div", { className: "oc-hero-actions", children: actions })
|
|
4336
4409
|
] });
|
|
4337
4410
|
});
|
|
4338
4411
|
|
|
4339
4412
|
// src/blocks/BlockPortfolioGrid.tsx
|
|
4340
|
-
import { forwardRef as
|
|
4341
|
-
import { jsx as
|
|
4342
|
-
var BlockPortfolioGrid =
|
|
4413
|
+
import { forwardRef as forwardRef130, useId as useId40 } from "react";
|
|
4414
|
+
import { jsx as jsx132, jsxs as jsxs111 } from "react/jsx-runtime";
|
|
4415
|
+
var BlockPortfolioGrid = forwardRef130(function BlockPortfolioGrid2({ eyebrow, title, lead, link, projects, two = false, className, ...rest }, ref) {
|
|
4343
4416
|
const titleId = `oc-portfolio-title-${useId40().replace(/[^\w-]/g, "")}`;
|
|
4344
|
-
return /* @__PURE__ */
|
|
4345
|
-
/* @__PURE__ */
|
|
4346
|
-
/* @__PURE__ */
|
|
4347
|
-
eyebrow != null && /* @__PURE__ */
|
|
4348
|
-
/* @__PURE__ */
|
|
4349
|
-
lead != null && /* @__PURE__ */
|
|
4417
|
+
return /* @__PURE__ */ jsx132("section", { ref, className: cx("oc-block-portfolio oc-section-pad", two && "oc-block-portfolio--two", className), "aria-labelledby": titleId, ...rest, children: /* @__PURE__ */ jsxs111("div", { className: "oc-container", children: [
|
|
4418
|
+
/* @__PURE__ */ jsxs111("div", { className: "oc-block-portfolio-head", children: [
|
|
4419
|
+
/* @__PURE__ */ jsxs111("div", { children: [
|
|
4420
|
+
eyebrow != null && /* @__PURE__ */ jsx132("p", { className: "oc-eyebrow", children: eyebrow }),
|
|
4421
|
+
/* @__PURE__ */ jsx132("h2", { className: "oc-display oc-display--md", id: titleId, children: title }),
|
|
4422
|
+
lead != null && /* @__PURE__ */ jsx132("p", { className: "oc-block-portfolio-lead", children: lead })
|
|
4350
4423
|
] }),
|
|
4351
4424
|
link
|
|
4352
4425
|
] }),
|
|
4353
|
-
/* @__PURE__ */
|
|
4426
|
+
/* @__PURE__ */ jsx132("div", { className: "oc-block-portfolio-grid", children: projects.map(({ accent, className: cardClass, ...card }, i) => /* @__PURE__ */ jsx132(ProjectCard, { className: cx(accent && `oc-accent--${accent}`, cardClass), ...card }, i)) })
|
|
4354
4427
|
] }) });
|
|
4355
4428
|
});
|
|
4356
4429
|
|
|
4357
4430
|
// src/blocks/BlockPricing.tsx
|
|
4358
|
-
import { forwardRef as
|
|
4359
|
-
import { Fragment as Fragment28, jsx as
|
|
4360
|
-
var BlockPricing =
|
|
4361
|
-
return /* @__PURE__ */
|
|
4362
|
-
title != null && /* @__PURE__ */
|
|
4363
|
-
description != null && /* @__PURE__ */
|
|
4364
|
-
/* @__PURE__ */
|
|
4431
|
+
import { forwardRef as forwardRef131 } from "react";
|
|
4432
|
+
import { Fragment as Fragment28, jsx as jsx133, jsxs as jsxs112 } from "react/jsx-runtime";
|
|
4433
|
+
var BlockPricing = forwardRef131(function BlockPricing2({ title, description, plans, className, ...rest }, ref) {
|
|
4434
|
+
return /* @__PURE__ */ jsxs112("div", { ref, className: cx("oc-block-pricing", className), ...rest, children: [
|
|
4435
|
+
title != null && /* @__PURE__ */ jsx133("h2", { children: title }),
|
|
4436
|
+
description != null && /* @__PURE__ */ jsx133("p", { children: description }),
|
|
4437
|
+
/* @__PURE__ */ jsx133("div", { className: "oc-block-pricing-grid", children: plans.map((plan, i) => {
|
|
4365
4438
|
const variant = plan.featured ? "default" : "outline";
|
|
4366
|
-
return /* @__PURE__ */
|
|
4367
|
-
/* @__PURE__ */
|
|
4368
|
-
plan.description != null && /* @__PURE__ */
|
|
4369
|
-
/* @__PURE__ */
|
|
4439
|
+
return /* @__PURE__ */ jsxs112("div", { className: cx("oc-block-pricing-card", plan.featured && "oc-block-pricing-card--featured"), children: [
|
|
4440
|
+
/* @__PURE__ */ jsx133("p", { className: "oc-block-pricing-name", children: plan.name }),
|
|
4441
|
+
plan.description != null && /* @__PURE__ */ jsx133("p", { className: "oc-block-pricing-desc", children: plan.description }),
|
|
4442
|
+
/* @__PURE__ */ jsxs112("p", { className: "oc-block-pricing-price", children: [
|
|
4370
4443
|
plan.price,
|
|
4371
|
-
plan.period != null && /* @__PURE__ */
|
|
4444
|
+
plan.period != null && /* @__PURE__ */ jsxs112(Fragment28, { children: [
|
|
4372
4445
|
" ",
|
|
4373
|
-
/* @__PURE__ */
|
|
4446
|
+
/* @__PURE__ */ jsx133("span", { children: plan.period })
|
|
4374
4447
|
] })
|
|
4375
4448
|
] }),
|
|
4376
|
-
/* @__PURE__ */
|
|
4377
|
-
plan.href ? /* @__PURE__ */
|
|
4449
|
+
/* @__PURE__ */ jsx133("ul", { className: "oc-block-pricing-features", children: plan.features.map((f, j) => /* @__PURE__ */ jsx133("li", { children: f }, j)) }),
|
|
4450
|
+
plan.href ? /* @__PURE__ */ jsx133(ButtonLink, { variant, href: plan.href, style: { width: "100%" }, children: plan.action }) : /* @__PURE__ */ jsx133(Button, { variant, style: { width: "100%" }, onClick: plan.onAction, children: plan.action })
|
|
4378
4451
|
] }, i);
|
|
4379
4452
|
}) })
|
|
4380
4453
|
] });
|
|
4381
4454
|
});
|
|
4382
4455
|
|
|
4383
4456
|
// src/blocks/BlockProcess.tsx
|
|
4384
|
-
import { forwardRef as
|
|
4385
|
-
import { jsx as
|
|
4386
|
-
var BlockProcess =
|
|
4387
|
-
return /* @__PURE__ */
|
|
4388
|
-
eyebrow != null && /* @__PURE__ */
|
|
4389
|
-
/* @__PURE__ */
|
|
4390
|
-
/* @__PURE__ */
|
|
4391
|
-
/* @__PURE__ */
|
|
4392
|
-
s.text != null && /* @__PURE__ */
|
|
4457
|
+
import { forwardRef as forwardRef132 } from "react";
|
|
4458
|
+
import { jsx as jsx134, jsxs as jsxs113 } from "react/jsx-runtime";
|
|
4459
|
+
var BlockProcess = forwardRef132(function BlockProcess2({ eyebrow, title, steps, marquee, marqueeLabel = "Technologies", className, ...rest }, ref) {
|
|
4460
|
+
return /* @__PURE__ */ jsx134("section", { ref, className: cx("oc-section-pad", className), ...rest, children: /* @__PURE__ */ jsxs113("div", { className: "oc-container", children: [
|
|
4461
|
+
eyebrow != null && /* @__PURE__ */ jsx134("p", { className: "oc-eyebrow", children: eyebrow }),
|
|
4462
|
+
/* @__PURE__ */ jsx134("h2", { className: "oc-display oc-display--md", children: title }),
|
|
4463
|
+
/* @__PURE__ */ jsx134("ol", { className: "oc-steps", children: steps.map((s, i) => /* @__PURE__ */ jsxs113("li", { children: [
|
|
4464
|
+
/* @__PURE__ */ jsx134("h3", { children: s.title }),
|
|
4465
|
+
s.text != null && /* @__PURE__ */ jsx134("p", { children: s.text })
|
|
4393
4466
|
] }, i)) }),
|
|
4394
|
-
marquee && marquee.length > 0 && /* @__PURE__ */
|
|
4395
|
-
marquee.map((m) => /* @__PURE__ */
|
|
4396
|
-
marquee.map((m) => /* @__PURE__ */
|
|
4467
|
+
marquee && marquee.length > 0 && /* @__PURE__ */ jsx134("div", { className: "oc-marquee mt-4", "aria-label": marqueeLabel, children: /* @__PURE__ */ jsxs113("div", { className: "oc-marquee__track", children: [
|
|
4468
|
+
marquee.map((m) => /* @__PURE__ */ jsx134("span", { className: "oc-marquee__item", children: m }, m)),
|
|
4469
|
+
marquee.map((m) => /* @__PURE__ */ jsx134("span", { className: "oc-marquee__item", "aria-hidden": "true", children: m }, `dup-${m}`))
|
|
4397
4470
|
] }) })
|
|
4398
4471
|
] }) });
|
|
4399
4472
|
});
|
|
4400
4473
|
|
|
4401
4474
|
// src/blocks/BlockProductGrid.tsx
|
|
4402
|
-
import { forwardRef as
|
|
4403
|
-
import { jsx as
|
|
4404
|
-
var BlockProductGrid =
|
|
4405
|
-
return /* @__PURE__ */
|
|
4406
|
-
eyebrow != null && /* @__PURE__ */
|
|
4407
|
-
/* @__PURE__ */
|
|
4408
|
-
/* @__PURE__ */
|
|
4409
|
-
/* @__PURE__ */
|
|
4410
|
-
p.icon != null && /* @__PURE__ */
|
|
4411
|
-
p.pill != null && /* @__PURE__ */
|
|
4475
|
+
import { forwardRef as forwardRef133 } from "react";
|
|
4476
|
+
import { jsx as jsx135, jsxs as jsxs114 } from "react/jsx-runtime";
|
|
4477
|
+
var BlockProductGrid = forwardRef133(function BlockProductGrid2({ eyebrow, title, products, className, ...rest }, ref) {
|
|
4478
|
+
return /* @__PURE__ */ jsx135("section", { ref, className: cx("oc-section-pad", className), ...rest, children: /* @__PURE__ */ jsxs114("div", { className: "oc-container", children: [
|
|
4479
|
+
eyebrow != null && /* @__PURE__ */ jsx135("p", { className: "oc-eyebrow", children: eyebrow }),
|
|
4480
|
+
/* @__PURE__ */ jsx135("h2", { className: "oc-display oc-display--md", children: title }),
|
|
4481
|
+
/* @__PURE__ */ jsx135("div", { className: "oc-card-grid", children: products.map((p, i) => /* @__PURE__ */ jsxs114("a", { className: cx("oc-product-card", p.accent && `oc-accent--${p.accent}`), href: p.href, children: [
|
|
4482
|
+
/* @__PURE__ */ jsxs114("div", { className: "oc-product-card__top", children: [
|
|
4483
|
+
p.icon != null && /* @__PURE__ */ jsx135("span", { className: "oc-icon-tile", "aria-hidden": "true", children: p.icon }),
|
|
4484
|
+
p.pill != null && /* @__PURE__ */ jsx135("span", { className: "oc-pill", children: p.pill })
|
|
4412
4485
|
] }),
|
|
4413
|
-
/* @__PURE__ */
|
|
4414
|
-
p.tagline != null && /* @__PURE__ */
|
|
4415
|
-
p.summary != null && /* @__PURE__ */
|
|
4416
|
-
p.more != null && /* @__PURE__ */
|
|
4486
|
+
/* @__PURE__ */ jsx135("h3", { className: "oc-product-card__name", children: p.name }),
|
|
4487
|
+
p.tagline != null && /* @__PURE__ */ jsx135("p", { className: "oc-product-card__tagline", children: p.tagline }),
|
|
4488
|
+
p.summary != null && /* @__PURE__ */ jsx135("p", { className: "oc-product-card__summary", children: p.summary }),
|
|
4489
|
+
p.more != null && /* @__PURE__ */ jsx135("span", { className: "oc-product-card__more", children: p.more })
|
|
4417
4490
|
] }, i)) })
|
|
4418
4491
|
] }) });
|
|
4419
4492
|
});
|
|
4420
4493
|
|
|
4421
4494
|
// src/blocks/BlockProfileHeader.tsx
|
|
4422
|
-
import { forwardRef as
|
|
4423
|
-
import { jsx as
|
|
4424
|
-
var BlockProfileHeader =
|
|
4495
|
+
import { forwardRef as forwardRef134, useId as useId41 } from "react";
|
|
4496
|
+
import { jsx as jsx136, jsxs as jsxs115 } from "react/jsx-runtime";
|
|
4497
|
+
var BlockProfileHeader = forwardRef134(function BlockProfileHeader2({ name, meta, bio, avatar, banner, actions, tabs = [], tabsLabel = "Profile sections", compact = false, headingLevel = 1, className, ...rest }, ref) {
|
|
4425
4498
|
const nameId = `oc-profile-name-${useId41().replace(/[^\w-]/g, "")}`;
|
|
4426
4499
|
const Heading3 = headingLevel === 1 ? "h1" : "h2";
|
|
4427
4500
|
const bannerStyle = banner ? { "--oc-profile-banner": `url("${banner}")` } : void 0;
|
|
4428
|
-
return /* @__PURE__ */
|
|
4429
|
-
/* @__PURE__ */
|
|
4430
|
-
/* @__PURE__ */
|
|
4431
|
-
/* @__PURE__ */
|
|
4432
|
-
/* @__PURE__ */
|
|
4433
|
-
/* @__PURE__ */
|
|
4434
|
-
meta != null && /* @__PURE__ */
|
|
4435
|
-
bio != null && /* @__PURE__ */
|
|
4501
|
+
return /* @__PURE__ */ jsxs115("section", { ref, className: cx("oc-block-profile", compact && "oc-block-profile--compact", className), "aria-labelledby": nameId, ...rest, children: [
|
|
4502
|
+
/* @__PURE__ */ jsx136("div", { className: "oc-block-profile-banner", style: bannerStyle, "aria-hidden": "true" }),
|
|
4503
|
+
/* @__PURE__ */ jsxs115("div", { className: "oc-block-profile-bar", children: [
|
|
4504
|
+
/* @__PURE__ */ jsx136("span", { className: "oc-avatar oc-block-profile-avatar", "aria-hidden": "true", children: avatar }),
|
|
4505
|
+
/* @__PURE__ */ jsxs115("div", { className: "oc-block-profile-info", children: [
|
|
4506
|
+
/* @__PURE__ */ jsx136(Heading3, { className: "oc-block-profile-name", id: nameId, children: name }),
|
|
4507
|
+
meta != null && /* @__PURE__ */ jsx136("p", { className: "oc-block-profile-meta", children: meta }),
|
|
4508
|
+
bio != null && /* @__PURE__ */ jsx136("p", { className: "oc-block-profile-bio", children: bio })
|
|
4436
4509
|
] }),
|
|
4437
|
-
actions != null && /* @__PURE__ */
|
|
4510
|
+
actions != null && /* @__PURE__ */ jsx136("div", { className: "oc-block-profile-actions", children: actions })
|
|
4438
4511
|
] }),
|
|
4439
|
-
tabs.length > 0 && /* @__PURE__ */
|
|
4512
|
+
tabs.length > 0 && /* @__PURE__ */ jsx136("nav", { className: "oc-block-profile-tabs", "aria-label": tabsLabel, children: tabs.map((tab, i) => /* @__PURE__ */ jsx136("a", { className: "oc-block-profile-tab", href: tab.href, "aria-current": tab.current ? "page" : void 0, children: tab.label }, i)) })
|
|
4440
4513
|
] });
|
|
4441
4514
|
});
|
|
4442
4515
|
|
|
4443
4516
|
// src/blocks/BlockShowcase.tsx
|
|
4444
|
-
import { forwardRef as
|
|
4445
|
-
import { jsx as
|
|
4446
|
-
var BlockShowcase =
|
|
4447
|
-
return /* @__PURE__ */
|
|
4448
|
-
eyebrow != null && /* @__PURE__ */
|
|
4449
|
-
/* @__PURE__ */
|
|
4450
|
-
/* @__PURE__ */
|
|
4451
|
-
/* @__PURE__ */
|
|
4452
|
-
/* @__PURE__ */
|
|
4453
|
-
/* @__PURE__ */
|
|
4454
|
-
/* @__PURE__ */
|
|
4455
|
-
/* @__PURE__ */
|
|
4517
|
+
import { forwardRef as forwardRef135 } from "react";
|
|
4518
|
+
import { jsx as jsx137, jsxs as jsxs116 } from "react/jsx-runtime";
|
|
4519
|
+
var BlockShowcase = forwardRef135(function BlockShowcase2({ eyebrow, title, projects, cardMin = "26rem", className, ...rest }, ref) {
|
|
4520
|
+
return /* @__PURE__ */ jsx137("section", { ref, className: cx("oc-section-pad", className), ...rest, children: /* @__PURE__ */ jsxs116("div", { className: "oc-container", children: [
|
|
4521
|
+
eyebrow != null && /* @__PURE__ */ jsx137("p", { className: "oc-eyebrow", children: eyebrow }),
|
|
4522
|
+
/* @__PURE__ */ jsx137("h2", { className: "oc-display oc-display--md", children: title }),
|
|
4523
|
+
/* @__PURE__ */ jsx137("div", { className: "oc-card-grid", style: { "--oc-card-min": cardMin }, children: projects.map((p, i) => /* @__PURE__ */ jsxs116("a", { className: cx("oc-product-card", p.accent && `oc-accent--${p.accent}`, "p-0 overflow-hidden"), href: p.href, children: [
|
|
4524
|
+
/* @__PURE__ */ jsxs116("span", { className: "oc-browser-frame m-1", children: [
|
|
4525
|
+
/* @__PURE__ */ jsxs116("span", { className: "oc-browser-frame__bar", children: [
|
|
4526
|
+
/* @__PURE__ */ jsx137("i", {}),
|
|
4527
|
+
/* @__PURE__ */ jsx137("i", {}),
|
|
4528
|
+
/* @__PURE__ */ jsx137("i", {})
|
|
4456
4529
|
] }),
|
|
4457
|
-
/* @__PURE__ */
|
|
4530
|
+
/* @__PURE__ */ jsx137("span", { className: "oc-browser-frame__body", style: p.background ? { background: p.background } : void 0, children: p.image && /* @__PURE__ */ jsx137("img", { src: p.image, alt: p.imageAlt ?? "" }) })
|
|
4458
4531
|
] }),
|
|
4459
|
-
/* @__PURE__ */
|
|
4460
|
-
p.pill != null && /* @__PURE__ */
|
|
4461
|
-
/* @__PURE__ */
|
|
4462
|
-
p.summary != null && /* @__PURE__ */
|
|
4463
|
-
p.more != null && /* @__PURE__ */
|
|
4532
|
+
/* @__PURE__ */ jsxs116("span", { className: "grid gap-0.5 p-1.5 pt-0", children: [
|
|
4533
|
+
p.pill != null && /* @__PURE__ */ jsx137("span", { className: "oc-pill oc-pill--accent", children: p.pill }),
|
|
4534
|
+
/* @__PURE__ */ jsx137("span", { className: "oc-product-card__name", children: p.name }),
|
|
4535
|
+
p.summary != null && /* @__PURE__ */ jsx137("span", { className: "oc-product-card__summary", children: p.summary }),
|
|
4536
|
+
p.more != null && /* @__PURE__ */ jsx137("span", { className: "oc-product-card__more", children: p.more })
|
|
4464
4537
|
] })
|
|
4465
4538
|
] }, i)) })
|
|
4466
4539
|
] }) });
|
|
4467
4540
|
});
|
|
4468
4541
|
|
|
4469
4542
|
// src/blocks/BlockSiteFooter.tsx
|
|
4470
|
-
import { forwardRef as
|
|
4471
|
-
import { jsx as
|
|
4472
|
-
var BlockSiteFooter =
|
|
4473
|
-
return /* @__PURE__ */
|
|
4474
|
-
/* @__PURE__ */
|
|
4475
|
-
/* @__PURE__ */
|
|
4476
|
-
/* @__PURE__ */
|
|
4477
|
-
about != null && /* @__PURE__ */
|
|
4543
|
+
import { forwardRef as forwardRef136 } from "react";
|
|
4544
|
+
import { jsx as jsx138, jsxs as jsxs117 } from "react/jsx-runtime";
|
|
4545
|
+
var BlockSiteFooter = forwardRef136(function BlockSiteFooter2({ brand, brandHref = "/", about, columns, copyright, credit, className, ...rest }, ref) {
|
|
4546
|
+
return /* @__PURE__ */ jsx138("footer", { ref, className: cx("oc-site-footer", className), ...rest, children: /* @__PURE__ */ jsxs117("div", { className: "oc-container", children: [
|
|
4547
|
+
/* @__PURE__ */ jsxs117("div", { className: "oc-site-footer__grid", children: [
|
|
4548
|
+
/* @__PURE__ */ jsxs117("div", { className: "oc-site-footer__about", children: [
|
|
4549
|
+
/* @__PURE__ */ jsx138("a", { className: "oc-site-header__brand", href: brandHref, children: brand }),
|
|
4550
|
+
about != null && /* @__PURE__ */ jsx138("p", { children: about })
|
|
4478
4551
|
] }),
|
|
4479
|
-
columns.map((col, i) => /* @__PURE__ */
|
|
4480
|
-
/* @__PURE__ */
|
|
4481
|
-
col.links && /* @__PURE__ */
|
|
4482
|
-
col.address != null && /* @__PURE__ */
|
|
4552
|
+
columns.map((col, i) => /* @__PURE__ */ jsxs117("div", { children: [
|
|
4553
|
+
/* @__PURE__ */ jsx138("h2", { className: "oc-site-footer__title", children: col.title }),
|
|
4554
|
+
col.links && /* @__PURE__ */ jsx138("ul", { className: "oc-site-footer__list", children: col.links.map((l, j) => /* @__PURE__ */ jsx138("li", { children: /* @__PURE__ */ jsx138("a", { href: l.href, children: l.label }) }, j)) }),
|
|
4555
|
+
col.address != null && /* @__PURE__ */ jsx138("address", { className: "oc-site-footer__list", children: col.address })
|
|
4483
4556
|
] }, i))
|
|
4484
4557
|
] }),
|
|
4485
|
-
(copyright != null || credit != null) && /* @__PURE__ */
|
|
4486
|
-
/* @__PURE__ */
|
|
4487
|
-
/* @__PURE__ */
|
|
4558
|
+
(copyright != null || credit != null) && /* @__PURE__ */ jsxs117("div", { className: "oc-site-footer__bottom", children: [
|
|
4559
|
+
/* @__PURE__ */ jsx138("span", { children: copyright }),
|
|
4560
|
+
/* @__PURE__ */ jsx138("span", { children: credit })
|
|
4488
4561
|
] })
|
|
4489
4562
|
] }) });
|
|
4490
4563
|
});
|
|
4491
4564
|
|
|
4492
4565
|
// src/blocks/BlockSiteHeader.tsx
|
|
4493
|
-
import { forwardRef as
|
|
4494
|
-
import { jsx as
|
|
4495
|
-
var BlockSiteHeader =
|
|
4566
|
+
import { forwardRef as forwardRef137, useId as useId42 } from "react";
|
|
4567
|
+
import { jsx as jsx139, jsxs as jsxs118 } from "react/jsx-runtime";
|
|
4568
|
+
var BlockSiteHeader = forwardRef137(function BlockSiteHeader2({ brand, brandHref = "/", links, cta, menuLabel = "Menu", className, ...rest }, ref) {
|
|
4496
4569
|
const navId = `oc-site-nav-${useId42().replace(/:/g, "")}`;
|
|
4497
|
-
return /* @__PURE__ */
|
|
4498
|
-
/* @__PURE__ */
|
|
4499
|
-
/* @__PURE__ */
|
|
4500
|
-
/* @__PURE__ */
|
|
4501
|
-
links.map((l, i) => /* @__PURE__ */
|
|
4570
|
+
return /* @__PURE__ */ jsx139("header", { ref, className: cx("oc-site-header", className), ...rest, children: /* @__PURE__ */ jsxs118("div", { className: "oc-container oc-site-header__inner", children: [
|
|
4571
|
+
/* @__PURE__ */ jsx139("a", { className: "oc-site-header__brand", href: brandHref, children: brand }),
|
|
4572
|
+
/* @__PURE__ */ jsx139("button", { className: "oc-site-header__toggle", type: "button", "aria-label": menuLabel, popoverTarget: navId, children: "\u2630" }),
|
|
4573
|
+
/* @__PURE__ */ jsxs118("nav", { className: "oc-site-header__nav", id: navId, "aria-label": "Main", ...attrs({ popover: "" }), children: [
|
|
4574
|
+
links.map((l, i) => /* @__PURE__ */ jsx139("a", { href: l.href, "aria-current": l.current ? "page" : void 0, children: l.label }, i)),
|
|
4502
4575
|
cta
|
|
4503
4576
|
] })
|
|
4504
4577
|
] }) });
|
|
4505
4578
|
});
|
|
4506
4579
|
|
|
4507
4580
|
// src/blocks/BlockSpotlight.tsx
|
|
4508
|
-
import { forwardRef as
|
|
4509
|
-
import { jsx as
|
|
4510
|
-
var BlockSpotlight =
|
|
4511
|
-
return /* @__PURE__ */
|
|
4512
|
-
/* @__PURE__ */
|
|
4513
|
-
badge != null && /* @__PURE__ */
|
|
4514
|
-
/* @__PURE__ */
|
|
4581
|
+
import { forwardRef as forwardRef138 } from "react";
|
|
4582
|
+
import { jsx as jsx140, jsxs as jsxs119 } from "react/jsx-runtime";
|
|
4583
|
+
var BlockSpotlight = forwardRef138(function BlockSpotlight2({ accent, badge, icon, title, tagline, lead, action, modules, className, ...rest }, ref) {
|
|
4584
|
+
return /* @__PURE__ */ jsx140("section", { ref, className: cx("oc-section-pad", className), ...rest, children: /* @__PURE__ */ jsx140("div", { className: "oc-container", children: /* @__PURE__ */ jsxs119("div", { className: cx("oc-spotlight", accent && `oc-accent--${accent}`), children: [
|
|
4585
|
+
/* @__PURE__ */ jsxs119("div", { children: [
|
|
4586
|
+
badge != null && /* @__PURE__ */ jsxs119("span", { className: "oc-pill oc-pill--accent", children: [
|
|
4587
|
+
/* @__PURE__ */ jsx140("span", { className: "oc-status-dot" }),
|
|
4515
4588
|
badge
|
|
4516
4589
|
] }),
|
|
4517
|
-
/* @__PURE__ */
|
|
4518
|
-
icon != null && /* @__PURE__ */
|
|
4590
|
+
/* @__PURE__ */ jsxs119("h2", { className: "oc-spotlight__title", children: [
|
|
4591
|
+
icon != null && /* @__PURE__ */ jsx140("span", { className: "oc-icon-tile oc-icon-tile--lg", "aria-hidden": "true", children: icon }),
|
|
4519
4592
|
title
|
|
4520
4593
|
] }),
|
|
4521
|
-
tagline != null && /* @__PURE__ */
|
|
4522
|
-
lead != null && /* @__PURE__ */
|
|
4594
|
+
tagline != null && /* @__PURE__ */ jsx140("p", { className: "oc-spotlight__tagline", children: tagline }),
|
|
4595
|
+
lead != null && /* @__PURE__ */ jsx140("p", { className: "oc-lead", children: lead }),
|
|
4523
4596
|
action
|
|
4524
4597
|
] }),
|
|
4525
|
-
modules && /* @__PURE__ */
|
|
4526
|
-
m.icon != null && /* @__PURE__ */
|
|
4598
|
+
modules && /* @__PURE__ */ jsx140("ul", { className: "oc-spotlight__modules", children: modules.map((m, i) => /* @__PURE__ */ jsxs119("li", { children: [
|
|
4599
|
+
m.icon != null && /* @__PURE__ */ jsx140("span", { className: "oc-icon-tile oc-icon-tile--sm", "aria-hidden": "true", children: m.icon }),
|
|
4527
4600
|
m.label
|
|
4528
4601
|
] }, i)) })
|
|
4529
4602
|
] }) }) });
|
|
4530
4603
|
});
|
|
4531
4604
|
|
|
4532
4605
|
// src/blocks/BlockStats.tsx
|
|
4533
|
-
import { forwardRef as
|
|
4534
|
-
import { jsx as
|
|
4535
|
-
var BlockStats =
|
|
4536
|
-
return /* @__PURE__ */
|
|
4537
|
-
/* @__PURE__ */
|
|
4538
|
-
/* @__PURE__ */
|
|
4606
|
+
import { forwardRef as forwardRef139 } from "react";
|
|
4607
|
+
import { jsx as jsx141, jsxs as jsxs120 } from "react/jsx-runtime";
|
|
4608
|
+
var BlockStats = forwardRef139(function BlockStats2({ stats, className, ...rest }, ref) {
|
|
4609
|
+
return /* @__PURE__ */ jsx141("div", { ref, className: cx("oc-block-stats", className), ...rest, children: stats.map((s, i) => /* @__PURE__ */ jsxs120("div", { className: "oc-block-stat", children: [
|
|
4610
|
+
/* @__PURE__ */ jsx141("div", { className: "oc-block-stat-value", children: s.value }),
|
|
4611
|
+
/* @__PURE__ */ jsx141("div", { className: "oc-block-stat-label", children: s.label })
|
|
4539
4612
|
] }, i)) });
|
|
4540
4613
|
});
|
|
4541
4614
|
|
|
4542
4615
|
// src/blocks/BlockStatsCounter.tsx
|
|
4543
|
-
import { forwardRef as
|
|
4544
|
-
import { jsx as
|
|
4545
|
-
var BlockStatsCounter =
|
|
4546
|
-
return /* @__PURE__ */
|
|
4547
|
-
/* @__PURE__ */
|
|
4548
|
-
/* @__PURE__ */
|
|
4616
|
+
import { forwardRef as forwardRef140 } from "react";
|
|
4617
|
+
import { jsx as jsx142, jsxs as jsxs121 } from "react/jsx-runtime";
|
|
4618
|
+
var BlockStatsCounter = forwardRef140(function BlockStatsCounter2({ stats, className, ...rest }, ref) {
|
|
4619
|
+
return /* @__PURE__ */ jsx142("div", { ref, className: cx("oc-block-stats", className), ...rest, children: stats.map((s, i) => /* @__PURE__ */ jsxs121("div", { className: "oc-block-stat", children: [
|
|
4620
|
+
/* @__PURE__ */ jsx142(Counter, { className: "oc-block-stat-value", to: s.to, suffix: s.suffix }),
|
|
4621
|
+
/* @__PURE__ */ jsx142("span", { className: "oc-block-stat-label", children: s.label })
|
|
4549
4622
|
] }, i)) });
|
|
4550
4623
|
});
|
|
4551
4624
|
|
|
4552
4625
|
// src/blocks/BlockTeamList.tsx
|
|
4553
|
-
import { forwardRef as
|
|
4554
|
-
import { Fragment as Fragment29, jsx as
|
|
4555
|
-
var BlockTeamList =
|
|
4556
|
-
return /* @__PURE__ */
|
|
4557
|
-
/* @__PURE__ */
|
|
4558
|
-
/* @__PURE__ */
|
|
4559
|
-
m.role != null && /* @__PURE__ */
|
|
4560
|
-
m.menu != null && /* @__PURE__ */
|
|
4626
|
+
import { forwardRef as forwardRef141 } from "react";
|
|
4627
|
+
import { Fragment as Fragment29, jsx as jsx143, jsxs as jsxs122 } from "react/jsx-runtime";
|
|
4628
|
+
var BlockTeamList = forwardRef141(function BlockTeamList2({ members, className, ...rest }, ref) {
|
|
4629
|
+
return /* @__PURE__ */ jsx143("div", { ref, className: cx("oc-block-team", className), ...rest, children: members.map((m, i) => /* @__PURE__ */ jsxs122("div", { className: "oc-block-team-row", children: [
|
|
4630
|
+
/* @__PURE__ */ jsx143(User, { name: m.name, email: m.email, initials: m.initials, avatarSrc: m.avatarSrc }),
|
|
4631
|
+
/* @__PURE__ */ jsxs122("div", { className: "oc-block-team-meta", children: [
|
|
4632
|
+
m.role != null && /* @__PURE__ */ jsx143(Badge, { variant: m.roleVariant, children: m.role }),
|
|
4633
|
+
m.menu != null && /* @__PURE__ */ jsx143(Dropdown, { trigger: /* @__PURE__ */ jsx143(Fragment29, { children: "\u2026" }), triggerProps: { variant: "ghost", icon: true, size: "sm", type: "button", "aria-label": m.menuLabel ?? "Member actions" }, children: m.menu })
|
|
4561
4634
|
] })
|
|
4562
4635
|
] }, i)) });
|
|
4563
4636
|
});
|
|
4564
4637
|
|
|
4565
4638
|
// src/blocks/BlockTwoFactor.tsx
|
|
4566
|
-
import { forwardRef as
|
|
4567
|
-
import { jsx as
|
|
4568
|
-
var BlockTwoFactor =
|
|
4639
|
+
import { forwardRef as forwardRef142, useId as useId43, useState as useState15 } from "react";
|
|
4640
|
+
import { jsx as jsx144, jsxs as jsxs123 } from "react/jsx-runtime";
|
|
4641
|
+
var BlockTwoFactor = forwardRef142(function BlockTwoFactor2({ qr, setupKey, recoveryCodes, codeLength = 6, onSubmit, submitLabel = "Enable two-factor", className, ...rest }, ref) {
|
|
4569
4642
|
const id = `oc-twofactor-${useId43().replace(/:/g, "")}`;
|
|
4570
4643
|
const [code, setCode] = useState15("");
|
|
4571
4644
|
const submit = (e) => {
|
|
4572
4645
|
e.preventDefault();
|
|
4573
4646
|
onSubmit?.(code);
|
|
4574
4647
|
};
|
|
4575
|
-
return /* @__PURE__ */
|
|
4576
|
-
/* @__PURE__ */
|
|
4577
|
-
/* @__PURE__ */
|
|
4578
|
-
/* @__PURE__ */
|
|
4579
|
-
qr ?? /* @__PURE__ */
|
|
4580
|
-
/* @__PURE__ */
|
|
4648
|
+
return /* @__PURE__ */ jsxs123("div", { ref, className: cx("oc-block-twofactor", className), ...rest, children: [
|
|
4649
|
+
/* @__PURE__ */ jsxs123("section", { className: "oc-block-twofactor-step", children: [
|
|
4650
|
+
/* @__PURE__ */ jsx144(Heading, { size: "sm", title: "1. Scan the QR code", description: "Use an authenticator app, or enter the key manually." }),
|
|
4651
|
+
/* @__PURE__ */ jsxs123("div", { className: "oc-block-twofactor-center", children: [
|
|
4652
|
+
qr ?? /* @__PURE__ */ jsx144("div", { className: "oc-block-twofactor-qr", role: "img", "aria-label": "QR code", children: "QR code" }),
|
|
4653
|
+
/* @__PURE__ */ jsx144(CopyField, { value: setupKey, label: "Setup key" })
|
|
4581
4654
|
] })
|
|
4582
4655
|
] }),
|
|
4583
|
-
/* @__PURE__ */
|
|
4584
|
-
/* @__PURE__ */
|
|
4585
|
-
/* @__PURE__ */
|
|
4586
|
-
/* @__PURE__ */
|
|
4587
|
-
/* @__PURE__ */
|
|
4656
|
+
/* @__PURE__ */ jsxs123("form", { className: "oc-block-twofactor-step", onSubmit: submit, children: [
|
|
4657
|
+
/* @__PURE__ */ jsx144(Heading, { size: "sm", title: "2. Confirm with a code" }),
|
|
4658
|
+
/* @__PURE__ */ jsxs123("div", { className: "oc-field", children: [
|
|
4659
|
+
/* @__PURE__ */ jsx144("label", { className: "oc-field-label", htmlFor: id, children: "Authentication code" }),
|
|
4660
|
+
/* @__PURE__ */ jsx144(OtpInput, { id, name: "code", length: codeLength, value: code, onChange: setCode })
|
|
4588
4661
|
] }),
|
|
4589
|
-
/* @__PURE__ */
|
|
4662
|
+
/* @__PURE__ */ jsx144("button", { className: "oc-btn", type: "submit", children: submitLabel })
|
|
4590
4663
|
] }),
|
|
4591
|
-
recoveryCodes && /* @__PURE__ */
|
|
4664
|
+
recoveryCodes && /* @__PURE__ */ jsx144("section", { className: "oc-block-twofactor-step", children: /* @__PURE__ */ jsx144(RecoveryCodes, { codes: recoveryCodes }) })
|
|
4592
4665
|
] });
|
|
4593
4666
|
});
|
|
4594
4667
|
|
|
4595
4668
|
// src/blocks/BlockWizardDialog.tsx
|
|
4596
|
-
import { forwardRef as
|
|
4597
|
-
import { jsx as
|
|
4598
|
-
var BlockWizardDialog =
|
|
4669
|
+
import { forwardRef as forwardRef143, useId as useId44, useRef as useRef13 } from "react";
|
|
4670
|
+
import { jsx as jsx145, jsxs as jsxs124 } from "react/jsx-runtime";
|
|
4671
|
+
var BlockWizardDialog = forwardRef143(function BlockWizardDialog2({
|
|
4599
4672
|
open,
|
|
4600
4673
|
defaultOpen,
|
|
4601
4674
|
onOpenChange,
|
|
@@ -4619,7 +4692,7 @@ var BlockWizardDialog = forwardRef140(function BlockWizardDialog2({
|
|
|
4619
4692
|
const [current, setCurrent] = useControllable(step, defaultStep, onStepChange);
|
|
4620
4693
|
const last = current >= steps.length - 1;
|
|
4621
4694
|
const active = steps[current];
|
|
4622
|
-
return /* @__PURE__ */
|
|
4695
|
+
return /* @__PURE__ */ jsx145(
|
|
4623
4696
|
"dialog",
|
|
4624
4697
|
{
|
|
4625
4698
|
ref,
|
|
@@ -4628,17 +4701,17 @@ var BlockWizardDialog = forwardRef140(function BlockWizardDialog2({
|
|
|
4628
4701
|
...attrs({ closedby: "closerequest" }),
|
|
4629
4702
|
...rest,
|
|
4630
4703
|
onClose: dlg.onClose,
|
|
4631
|
-
children: /* @__PURE__ */
|
|
4632
|
-
/* @__PURE__ */
|
|
4633
|
-
/* @__PURE__ */
|
|
4634
|
-
/* @__PURE__ */
|
|
4635
|
-
/* @__PURE__ */
|
|
4636
|
-
/* @__PURE__ */
|
|
4704
|
+
children: /* @__PURE__ */ jsx145(DialogContext.Provider, { value: { close: dlg.close }, children: /* @__PURE__ */ jsx145("div", { className: "oc-modal-content oc-modal-content--xl", children: /* @__PURE__ */ jsxs124("div", { className: "oc-block-wizard", children: [
|
|
4705
|
+
/* @__PURE__ */ jsx145("div", { className: "oc-block-wizard-rail", children: /* @__PURE__ */ jsx145(Stepper, { steps: steps.map((s) => ({ label: s.label })), current, onStepChange: setCurrent, "aria-label": stepperLabel }) }),
|
|
4706
|
+
/* @__PURE__ */ jsxs124("div", { className: "oc-block-wizard-main", children: [
|
|
4707
|
+
/* @__PURE__ */ jsxs124("div", { className: "oc-modal-header", children: [
|
|
4708
|
+
/* @__PURE__ */ jsx145("h2", { className: "oc-modal-title", id: titleId, children: active?.label }),
|
|
4709
|
+
/* @__PURE__ */ jsx145("p", { className: "oc-modal-description", children: description ?? `Step ${current + 1} of ${steps.length}` })
|
|
4637
4710
|
] }),
|
|
4638
|
-
/* @__PURE__ */
|
|
4639
|
-
/* @__PURE__ */
|
|
4640
|
-
/* @__PURE__ */
|
|
4641
|
-
/* @__PURE__ */
|
|
4711
|
+
/* @__PURE__ */ jsx145("div", { className: "oc-block-wizard-step", children: active?.content }),
|
|
4712
|
+
/* @__PURE__ */ jsxs124("div", { className: "oc-modal-footer", children: [
|
|
4713
|
+
/* @__PURE__ */ jsx145("button", { className: "oc-btn oc-btn--outline", type: "button", disabled: current === 0, onClick: () => setCurrent(current - 1), children: backLabel }),
|
|
4714
|
+
/* @__PURE__ */ jsx145(
|
|
4642
4715
|
"button",
|
|
4643
4716
|
{
|
|
4644
4717
|
className: "oc-btn",
|
|
@@ -4754,6 +4827,8 @@ export {
|
|
|
4754
4827
|
FilterPills,
|
|
4755
4828
|
FlipCard,
|
|
4756
4829
|
FormField,
|
|
4830
|
+
Glass,
|
|
4831
|
+
GlassPanel,
|
|
4757
4832
|
Greeting,
|
|
4758
4833
|
Heading,
|
|
4759
4834
|
Icon,
|
|
@@ -4816,6 +4891,8 @@ export {
|
|
|
4816
4891
|
StackList,
|
|
4817
4892
|
StatCard,
|
|
4818
4893
|
StatCardGrid,
|
|
4894
|
+
Status,
|
|
4895
|
+
StatusDot,
|
|
4819
4896
|
Stepper,
|
|
4820
4897
|
Switch,
|
|
4821
4898
|
Table,
|
|
@@ -4833,6 +4910,10 @@ export {
|
|
|
4833
4910
|
ThemeSwitch,
|
|
4834
4911
|
TimeInput,
|
|
4835
4912
|
Timeline,
|
|
4913
|
+
Titlebar,
|
|
4914
|
+
TitlebarBody,
|
|
4915
|
+
TitlebarButton,
|
|
4916
|
+
TitlebarWindow,
|
|
4836
4917
|
Toast,
|
|
4837
4918
|
ToastContainer,
|
|
4838
4919
|
ToastProvider,
|
|
@@ -4861,6 +4942,7 @@ export {
|
|
|
4861
4942
|
mod,
|
|
4862
4943
|
niceMax,
|
|
4863
4944
|
parseDecimal,
|
|
4945
|
+
progressLevel,
|
|
4864
4946
|
useControllable,
|
|
4865
4947
|
useDialog,
|
|
4866
4948
|
useDialogContext,
|