@birdycom/omniaui-react 0.12.1 → 0.12.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +129 -5
- package/dist/index.js +1302 -1182
- package/manifest.json +36 -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/LinkRow.tsx +34 -0
- package/src/components/LiveFrame.tsx +37 -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/components/Watermark.tsx +35 -0
- package/src/index.ts +6 -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,22 +2278,31 @@ var LinkArrow = forwardRef52(function LinkArrow2({ direction = "forward", tone =
|
|
|
2251
2278
|
size !== "default" && `oc-link-arrow--${size}`,
|
|
2252
2279
|
className
|
|
2253
2280
|
);
|
|
2254
|
-
return /* @__PURE__ */
|
|
2281
|
+
return /* @__PURE__ */ jsx55("a", { ref, className: classes, ...rest });
|
|
2282
|
+
});
|
|
2283
|
+
|
|
2284
|
+
// src/components/LinkRow.tsx
|
|
2285
|
+
import { forwardRef as forwardRef54 } from "react";
|
|
2286
|
+
import { jsx as jsx56 } from "react/jsx-runtime";
|
|
2287
|
+
var external = (href) => /^https?:\/\//.test(href);
|
|
2288
|
+
var LinkRow = forwardRef54(function LinkRow2({ links, tone = "default", size = "default", className, children, ...rest }, ref) {
|
|
2289
|
+
const classes = cx("oc-link-row", tone !== "default" && `oc-link-row--${tone}`, size !== "default" && `oc-link-row--${size}`, className);
|
|
2290
|
+
return /* @__PURE__ */ jsx56("ul", { ref, className: classes, ...rest, children: links ? links.map((l, i) => /* @__PURE__ */ jsx56("li", { children: /* @__PURE__ */ jsx56("a", { href: l.href, rel: external(l.href) ? "noopener" : void 0, children: l.label }) }, i)) : children });
|
|
2255
2291
|
});
|
|
2256
2292
|
|
|
2257
2293
|
// src/components/ListToolbar.tsx
|
|
2258
|
-
import { forwardRef as
|
|
2259
|
-
import { jsx as
|
|
2260
|
-
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) {
|
|
2261
2297
|
const name = `oc-list-view-${useId19().replace(/:/g, "")}`;
|
|
2262
2298
|
const [current, setCurrent] = useControllable(view, defaultView ?? views?.[0]?.value ?? "", onViewChange);
|
|
2263
2299
|
const cls = cx("oc-list-toolbar", sticky && "oc-list-toolbar--sticky", bordered && "oc-list-toolbar--bordered", className);
|
|
2264
|
-
return /* @__PURE__ */
|
|
2265
|
-
search != null && /* @__PURE__ */
|
|
2266
|
-
count != null && /* @__PURE__ */
|
|
2267
|
-
/* @__PURE__ */
|
|
2268
|
-
views && views.length > 0 && /* @__PURE__ */
|
|
2269
|
-
/* @__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(
|
|
2270
2306
|
"input",
|
|
2271
2307
|
{
|
|
2272
2308
|
type: "radio",
|
|
@@ -2279,14 +2315,31 @@ var ListToolbar = forwardRef53(function ListToolbar2({ search, count, views, vie
|
|
|
2279
2315
|
),
|
|
2280
2316
|
v.icon
|
|
2281
2317
|
] }, v.value)) }),
|
|
2282
|
-
actions != null && /* @__PURE__ */
|
|
2318
|
+
actions != null && /* @__PURE__ */ jsx57("div", { className: "oc-list-toolbar-actions", children: actions })
|
|
2283
2319
|
] });
|
|
2284
2320
|
});
|
|
2285
2321
|
|
|
2322
|
+
// src/components/LiveFrame.tsx
|
|
2323
|
+
import { forwardRef as forwardRef56 } from "react";
|
|
2324
|
+
import { jsx as jsx58 } from "react/jsx-runtime";
|
|
2325
|
+
var LiveFrame = forwardRef56(function LiveFrame2({ src, title = "", width = 1280, height = 720, static: isStatic = false, inBrowserFrame = false, className, style, children, ...rest }, ref) {
|
|
2326
|
+
const size = { "--oc-live-w": width, "--oc-live-h": height };
|
|
2327
|
+
return /* @__PURE__ */ jsx58(
|
|
2328
|
+
"div",
|
|
2329
|
+
{
|
|
2330
|
+
ref,
|
|
2331
|
+
className: cx(inBrowserFrame && "oc-browser-frame__view", "oc-live-frame", isStatic && "oc-live-frame--static", className),
|
|
2332
|
+
style: { ...size, ...style },
|
|
2333
|
+
...rest,
|
|
2334
|
+
children: src ? /* @__PURE__ */ jsx58("iframe", { src, title, loading: "lazy", scrolling: "no", tabIndex: isStatic ? -1 : void 0 }) : children
|
|
2335
|
+
}
|
|
2336
|
+
);
|
|
2337
|
+
});
|
|
2338
|
+
|
|
2286
2339
|
// src/components/Marquee.tsx
|
|
2287
|
-
import { forwardRef as
|
|
2288
|
-
import { jsx as
|
|
2289
|
-
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) {
|
|
2290
2343
|
const classes = cx(
|
|
2291
2344
|
"oc-marquee",
|
|
2292
2345
|
reverse && "oc-marquee--reverse",
|
|
@@ -2295,21 +2348,21 @@ var Marquee = forwardRef54(function Marquee2({ items, reverse = false, speed = "
|
|
|
2295
2348
|
noFade && "oc-marquee--no-fade",
|
|
2296
2349
|
className
|
|
2297
2350
|
);
|
|
2298
|
-
return /* @__PURE__ */
|
|
2299
|
-
items.map((item, i) => /* @__PURE__ */
|
|
2300
|
-
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}`))
|
|
2301
2354
|
] }) });
|
|
2302
2355
|
});
|
|
2303
2356
|
|
|
2304
2357
|
// src/components/MediaCard.tsx
|
|
2305
|
-
import { forwardRef as
|
|
2358
|
+
import { forwardRef as forwardRef59, useId as useId20 } from "react";
|
|
2306
2359
|
|
|
2307
2360
|
// src/components/MediaThumb.tsx
|
|
2308
|
-
import { forwardRef as
|
|
2309
|
-
import { jsx as
|
|
2310
|
-
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) {
|
|
2311
2364
|
const Tag = href ? "a" : "div";
|
|
2312
|
-
return /* @__PURE__ */
|
|
2365
|
+
return /* @__PURE__ */ jsxs47(
|
|
2313
2366
|
Tag,
|
|
2314
2367
|
{
|
|
2315
2368
|
ref,
|
|
@@ -2317,10 +2370,10 @@ var MediaThumb = forwardRef55(function MediaThumb2({ src, alt = "", art: art2, h
|
|
|
2317
2370
|
className: cx("oc-media-thumb", ratio !== "video" && `oc-media-thumb--${ratio}`, watched && "is-watched", className),
|
|
2318
2371
|
...rest,
|
|
2319
2372
|
children: [
|
|
2320
|
-
src ? /* @__PURE__ */
|
|
2321
|
-
badge != null && /* @__PURE__ */
|
|
2322
|
-
duration != null && /* @__PURE__ */
|
|
2323
|
-
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: [
|
|
2324
2377
|
progress,
|
|
2325
2378
|
"%"
|
|
2326
2379
|
] }),
|
|
@@ -2331,93 +2384,93 @@ var MediaThumb = forwardRef55(function MediaThumb2({ src, alt = "", art: art2, h
|
|
|
2331
2384
|
});
|
|
2332
2385
|
|
|
2333
2386
|
// src/components/MediaCard.tsx
|
|
2334
|
-
import { jsx as
|
|
2335
|
-
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) {
|
|
2336
2389
|
const menuId = `oc-media-card-menu-${useId20().replace(/:/g, "")}`;
|
|
2337
|
-
return /* @__PURE__ */
|
|
2338
|
-
/* @__PURE__ */
|
|
2339
|
-
/* @__PURE__ */
|
|
2340
|
-
avatar != null && /* @__PURE__ */
|
|
2341
|
-
/* @__PURE__ */
|
|
2342
|
-
/* @__PURE__ */
|
|
2343
|
-
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 })
|
|
2344
2397
|
] }),
|
|
2345
|
-
menu != null && /* @__PURE__ */
|
|
2398
|
+
menu != null && /* @__PURE__ */ jsx61("button", { type: "button", className: "oc-media-card__menu", "aria-label": "More actions", popoverTarget: menuId, children: "\u22EE" })
|
|
2346
2399
|
] }),
|
|
2347
|
-
menu != null && /* @__PURE__ */
|
|
2400
|
+
menu != null && /* @__PURE__ */ jsx61("div", { className: "oc-dropdown-menu", id: menuId, ...attrs({ popover: "" }), children: menu })
|
|
2348
2401
|
] });
|
|
2349
2402
|
});
|
|
2350
2403
|
|
|
2351
2404
|
// src/components/MediaRow.tsx
|
|
2352
|
-
import { forwardRef as
|
|
2353
|
-
import { Fragment as Fragment13, jsx as
|
|
2354
|
-
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) {
|
|
2355
2408
|
const Tag = numbered ? "ol" : "ul";
|
|
2356
|
-
return /* @__PURE__ */
|
|
2409
|
+
return /* @__PURE__ */ jsx62(Tag, { ref, className: cx("oc-media-row-list", numbered && "oc-media-row-list--numbered", className), ...rest });
|
|
2357
2410
|
});
|
|
2358
|
-
var MediaRow =
|
|
2411
|
+
var MediaRow = forwardRef60(function MediaRow2({ title, href, meta, thumb, current, menu, className, ...rest }, ref) {
|
|
2359
2412
|
const menuId = `oc-media-row-menu-${useId21().replace(/:/g, "")}`;
|
|
2360
|
-
return /* @__PURE__ */
|
|
2361
|
-
/* @__PURE__ */
|
|
2362
|
-
/* @__PURE__ */
|
|
2363
|
-
/* @__PURE__ */
|
|
2364
|
-
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 })
|
|
2365
2418
|
] }),
|
|
2366
|
-
menu != null && /* @__PURE__ */
|
|
2367
|
-
/* @__PURE__ */
|
|
2368
|
-
/* @__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 })
|
|
2369
2422
|
] })
|
|
2370
2423
|
] });
|
|
2371
2424
|
});
|
|
2372
2425
|
|
|
2373
2426
|
// src/components/Message.tsx
|
|
2374
|
-
import { forwardRef as
|
|
2375
|
-
import { Fragment as Fragment14, jsx as
|
|
2376
|
-
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 }) });
|
|
2377
2430
|
var ICONS = { reply: "M9 14 4 9l5-5M4 9h10a6 6 0 0 1 6 6v4", delete: "M3 6h18M8 6V4h8v2M19 6l-1 14H6L5 6M10 11v6M14 11v6" };
|
|
2378
2431
|
var STATUS = { sent: "Sent", read: "Read", failed: "Failed" };
|
|
2379
2432
|
function MessageAttachments({ items }) {
|
|
2380
2433
|
const thumbs = items.every((a) => a.kind === "thumb");
|
|
2381
|
-
return /* @__PURE__ */
|
|
2434
|
+
return /* @__PURE__ */ jsx63("div", { className: "oc-message__attachments", children: thumbs ? /* @__PURE__ */ jsx63("div", { className: "oc-attachment-list", children: items.map((a, i) => /* @__PURE__ */ jsx63(AttachmentThumb, { as: "span", ...a }, i)) }) : items.map((a, i) => {
|
|
2382
2435
|
if (a.kind === "image") {
|
|
2383
2436
|
const { kind: _k2, ...img } = a;
|
|
2384
|
-
return /* @__PURE__ */
|
|
2437
|
+
return /* @__PURE__ */ jsx63(AttachmentImage, { ...img }, i);
|
|
2385
2438
|
}
|
|
2386
2439
|
if (a.kind === "thumb") {
|
|
2387
2440
|
const { kind: _k2, ...t } = a;
|
|
2388
|
-
return /* @__PURE__ */
|
|
2441
|
+
return /* @__PURE__ */ jsx63(AttachmentThumb, { as: "span", ...t }, i);
|
|
2389
2442
|
}
|
|
2390
2443
|
const { kind: _k, ...file } = a;
|
|
2391
|
-
return /* @__PURE__ */
|
|
2444
|
+
return /* @__PURE__ */ jsx63(Attachment, { ...file }, i);
|
|
2392
2445
|
}) });
|
|
2393
2446
|
}
|
|
2394
|
-
var Message =
|
|
2395
|
-
return /* @__PURE__ */
|
|
2396
|
-
/* @__PURE__ */
|
|
2397
|
-
/* @__PURE__ */
|
|
2398
|
-
sender != null && !continued && /* @__PURE__ */
|
|
2399
|
-
quote && /* @__PURE__ */
|
|
2400
|
-
/* @__PURE__ */
|
|
2401
|
-
/* @__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 })
|
|
2402
2455
|
] }),
|
|
2403
|
-
(text != null || children != null) && /* @__PURE__ */
|
|
2404
|
-
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,
|
|
2405
2458
|
children
|
|
2406
2459
|
] }),
|
|
2407
|
-
attachments?.length ? /* @__PURE__ */
|
|
2408
|
-
(time != null || status) && /* @__PURE__ */
|
|
2409
|
-
time != null && /* @__PURE__ */
|
|
2410
|
-
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: [
|
|
2411
2464
|
statusIcon && svg("M2 12.5 7 17.5 18 6.5M13 16.5l1 1L22.5 9", "2.2"),
|
|
2412
2465
|
statusLabel ?? STATUS[status]
|
|
2413
2466
|
] })
|
|
2414
2467
|
] })
|
|
2415
2468
|
] }),
|
|
2416
|
-
actions?.length ? /* @__PURE__ */
|
|
2469
|
+
actions?.length ? /* @__PURE__ */ jsx63("div", { className: "oc-message__actions", children: actions.map((a) => /* @__PURE__ */ jsx63("button", { type: "button", className: cx("oc-message__action", a.destructive && "oc-message__action--destructive"), "aria-label": a.label, onClick: () => onAction?.(a.name), children: typeof a.icon === "string" || a.icon == null ? svg(ICONS[a.icon ?? a.name] ?? ICONS.reply) : a.icon }, a.name)) }) : null
|
|
2417
2470
|
] });
|
|
2418
2471
|
});
|
|
2419
2472
|
function MessageDivider({ system, className, children, ...rest }) {
|
|
2420
|
-
return /* @__PURE__ */
|
|
2473
|
+
return /* @__PURE__ */ jsx63("div", { className: cx("oc-message-divider", system && "oc-message-divider--system", className), role: system ? "note" : void 0, ...rest, children: /* @__PURE__ */ jsx63("span", { children }) });
|
|
2421
2474
|
}
|
|
2422
2475
|
var DEMO5 = [
|
|
2423
2476
|
{ divider: "Tuesday 14 October" },
|
|
@@ -2430,21 +2483,21 @@ var DEMO5 = [
|
|
|
2430
2483
|
label: "Lisa Verbeke, 09:13",
|
|
2431
2484
|
continued: true,
|
|
2432
2485
|
id: "oc-message-demo-question",
|
|
2433
|
-
text: /* @__PURE__ */
|
|
2434
|
-
/* @__PURE__ */
|
|
2435
|
-
/* @__PURE__ */
|
|
2436
|
-
/* @__PURE__ */
|
|
2437
|
-
/* @__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" }),
|
|
2438
2491
|
" matt, 20 mm"
|
|
2439
2492
|
] }),
|
|
2440
|
-
/* @__PURE__ */
|
|
2441
|
-
/* @__PURE__ */
|
|
2493
|
+
/* @__PURE__ */ jsxs50("li", { children: [
|
|
2494
|
+
/* @__PURE__ */ jsx63("strong", { children: "Nero Marquina" }),
|
|
2442
2495
|
" polished, 12 mm"
|
|
2443
2496
|
] })
|
|
2444
2497
|
] }),
|
|
2445
|
-
/* @__PURE__ */
|
|
2498
|
+
/* @__PURE__ */ jsxs50("p", { children: [
|
|
2446
2499
|
"Details are on the ",
|
|
2447
|
-
/* @__PURE__ */
|
|
2500
|
+
/* @__PURE__ */ jsx63("a", { href: "#supplier-sheet", children: "supplier sheet" }),
|
|
2448
2501
|
"."
|
|
2449
2502
|
] })
|
|
2450
2503
|
] })
|
|
@@ -2463,15 +2516,15 @@ var DEMO5 = [
|
|
|
2463
2516
|
},
|
|
2464
2517
|
{ divider: "Lisa Verbeke marked this question as answered", system: true }
|
|
2465
2518
|
];
|
|
2466
|
-
var MessageList =
|
|
2467
|
-
return /* @__PURE__ */
|
|
2468
|
-
(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)
|
|
2469
2522
|
) });
|
|
2470
2523
|
});
|
|
2471
2524
|
|
|
2472
2525
|
// src/components/MessageThread.tsx
|
|
2473
|
-
import { forwardRef as
|
|
2474
|
-
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";
|
|
2475
2528
|
var MENU = [
|
|
2476
2529
|
{ name: "unread", label: "Mark as unread" },
|
|
2477
2530
|
{ name: "archive", label: "Move to archive" },
|
|
@@ -2494,11 +2547,11 @@ var DEMO6 = [
|
|
|
2494
2547
|
time: "09:13",
|
|
2495
2548
|
datetime: "2026-10-14T09:13",
|
|
2496
2549
|
continued: true,
|
|
2497
|
-
text: /* @__PURE__ */
|
|
2550
|
+
text: /* @__PURE__ */ jsxs51("p", { children: [
|
|
2498
2551
|
"Which one should we order: ",
|
|
2499
|
-
/* @__PURE__ */
|
|
2552
|
+
/* @__PURE__ */ jsx64("strong", { children: "Calacatta matt" }),
|
|
2500
2553
|
" or ",
|
|
2501
|
-
/* @__PURE__ */
|
|
2554
|
+
/* @__PURE__ */ jsx64("strong", { children: "Nero Marquina polished" }),
|
|
2502
2555
|
"? The cutting slot is Friday."
|
|
2503
2556
|
] })
|
|
2504
2557
|
},
|
|
@@ -2516,7 +2569,7 @@ var DEMO6 = [
|
|
|
2516
2569
|
{ sender: "Lisa Verbeke", avatar: "LV", time: "10:02", datetime: "2026-10-24T10:02", text: "Client signed. Can you confirm the edge profile before 16:00?" }
|
|
2517
2570
|
];
|
|
2518
2571
|
var isOut = (m) => !!m && !("divider" in m) && m.direction === "out";
|
|
2519
|
-
var MessageThread =
|
|
2572
|
+
var MessageThread = forwardRef62(function MessageThread2({
|
|
2520
2573
|
title = "Kitchen worktop: which finish?",
|
|
2521
2574
|
project = "Villa Dewitte",
|
|
2522
2575
|
meta = "Lisa Verbeke \u2192 Tom Peeters \xB7 14 Oct 2026",
|
|
@@ -2578,55 +2631,55 @@ var MessageThread = forwardRef59(function MessageThread2({
|
|
|
2578
2631
|
e.preventDefault();
|
|
2579
2632
|
e.currentTarget.requestSubmit();
|
|
2580
2633
|
};
|
|
2581
|
-
return /* @__PURE__ */
|
|
2582
|
-
/* @__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: [
|
|
2583
2636
|
back,
|
|
2584
|
-
/* @__PURE__ */
|
|
2585
|
-
/* @__PURE__ */
|
|
2586
|
-
(project != null || meta != null) && /* @__PURE__ */
|
|
2587
|
-
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 }),
|
|
2588
2641
|
project != null && meta != null && " \xB7 ",
|
|
2589
2642
|
meta
|
|
2590
2643
|
] })
|
|
2591
2644
|
] }),
|
|
2592
|
-
participants.length > 0 && /* @__PURE__ */
|
|
2593
|
-
(status || menu) && /* @__PURE__ */
|
|
2594
|
-
status && /* @__PURE__ */
|
|
2595
|
-
menu && /* @__PURE__ */
|
|
2596
|
-
/* @__PURE__ */
|
|
2597
|
-
/* @__PURE__ */
|
|
2598
|
-
/* @__PURE__ */
|
|
2599
|
-
/* @__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" })
|
|
2600
2653
|
] }) }),
|
|
2601
|
-
/* @__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)) })
|
|
2602
2655
|
] })
|
|
2603
2656
|
] })
|
|
2604
2657
|
] }),
|
|
2605
|
-
/* @__PURE__ */
|
|
2606
|
-
/* @__PURE__ */
|
|
2607
|
-
/* @__PURE__ */
|
|
2608
|
-
/* @__PURE__ */
|
|
2609
|
-
/* @__PURE__ */
|
|
2610
|
-
tools.length > 0 && /* @__PURE__ */
|
|
2611
|
-
tools.includes("attach") && /* @__PURE__ */
|
|
2612
|
-
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}" })
|
|
2613
2666
|
] }),
|
|
2614
|
-
hint != null && /* @__PURE__ */
|
|
2615
|
-
/* @__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" })
|
|
2616
2669
|
] })
|
|
2617
2670
|
] }) }),
|
|
2618
|
-
busyTitle != null && /* @__PURE__ */
|
|
2619
|
-
/* @__PURE__ */
|
|
2620
|
-
/* @__PURE__ */
|
|
2621
|
-
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 })
|
|
2622
2675
|
] })
|
|
2623
2676
|
] });
|
|
2624
2677
|
});
|
|
2625
2678
|
|
|
2626
2679
|
// src/components/Modal.tsx
|
|
2627
|
-
import { forwardRef as
|
|
2628
|
-
import { jsx as
|
|
2629
|
-
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) {
|
|
2630
2683
|
const inner = useRef9(null);
|
|
2631
2684
|
const ref = useMergedRef(inner, forwardedRef);
|
|
2632
2685
|
const titleId = useId23();
|
|
@@ -2635,7 +2688,7 @@ var Modal = forwardRef60(function Modal2({ open, defaultOpen, onOpenChange, titl
|
|
|
2635
2688
|
rest.onClick?.(e);
|
|
2636
2689
|
if (closeOnBackdrop && e.target === e.currentTarget) dlg.close();
|
|
2637
2690
|
};
|
|
2638
|
-
return /* @__PURE__ */
|
|
2691
|
+
return /* @__PURE__ */ jsx65(
|
|
2639
2692
|
"dialog",
|
|
2640
2693
|
{
|
|
2641
2694
|
ref,
|
|
@@ -2645,20 +2698,20 @@ var Modal = forwardRef60(function Modal2({ open, defaultOpen, onOpenChange, titl
|
|
|
2645
2698
|
...rest,
|
|
2646
2699
|
onClick,
|
|
2647
2700
|
onClose: dlg.onClose,
|
|
2648
|
-
children: /* @__PURE__ */
|
|
2649
|
-
(title != null || description != null) && /* @__PURE__ */
|
|
2650
|
-
title != null && /* @__PURE__ */
|
|
2651
|
-
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 })
|
|
2652
2705
|
] }),
|
|
2653
2706
|
children,
|
|
2654
|
-
footer != null && /* @__PURE__ */
|
|
2707
|
+
footer != null && /* @__PURE__ */ jsx65("div", { className: "oc-modal-footer", children: footer })
|
|
2655
2708
|
] }) })
|
|
2656
2709
|
}
|
|
2657
2710
|
);
|
|
2658
2711
|
});
|
|
2659
|
-
var ModalClose =
|
|
2712
|
+
var ModalClose = forwardRef63(function ModalClose2({ onClick, ...rest }, ref) {
|
|
2660
2713
|
const ctx = useDialogContext();
|
|
2661
|
-
return /* @__PURE__ */
|
|
2714
|
+
return /* @__PURE__ */ jsx65(
|
|
2662
2715
|
Button,
|
|
2663
2716
|
{
|
|
2664
2717
|
ref,
|
|
@@ -2673,53 +2726,53 @@ var ModalClose = forwardRef60(function ModalClose2({ onClick, ...rest }, ref) {
|
|
|
2673
2726
|
});
|
|
2674
2727
|
|
|
2675
2728
|
// src/components/Navmenu.tsx
|
|
2676
|
-
import { forwardRef as
|
|
2677
|
-
import { jsx as
|
|
2678
|
-
var Navmenu =
|
|
2679
|
-
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 }) });
|
|
2680
2733
|
});
|
|
2681
2734
|
function NavmenuItem(props) {
|
|
2682
|
-
return /* @__PURE__ */
|
|
2735
|
+
return /* @__PURE__ */ jsx66("li", { ...props });
|
|
2683
2736
|
}
|
|
2684
|
-
var NavmenuLink =
|
|
2685
|
-
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 });
|
|
2686
2739
|
});
|
|
2687
|
-
var NavmenuDropdown =
|
|
2740
|
+
var NavmenuDropdown = forwardRef64(function NavmenuDropdown2({ label, className, id, children, ...rest }, ref) {
|
|
2688
2741
|
const auto = useId24();
|
|
2689
2742
|
const menuId = id ?? `oc-navmenu-${auto.replace(/:/g, "")}`;
|
|
2690
|
-
return /* @__PURE__ */
|
|
2691
|
-
/* @__PURE__ */
|
|
2692
|
-
/* @__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 })
|
|
2693
2746
|
] });
|
|
2694
2747
|
});
|
|
2695
2748
|
|
|
2696
2749
|
// src/components/NextTeaser.tsx
|
|
2697
|
-
import { forwardRef as
|
|
2698
|
-
import { jsx as
|
|
2699
|
-
var NextTeaser =
|
|
2700
|
-
return /* @__PURE__ */
|
|
2701
|
-
label != null && /* @__PURE__ */
|
|
2702
|
-
/* @__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: [
|
|
2703
2756
|
mark,
|
|
2704
2757
|
name
|
|
2705
2758
|
] }),
|
|
2706
|
-
tagline != null && /* @__PURE__ */
|
|
2759
|
+
tagline != null && /* @__PURE__ */ jsx67("span", { className: "oc-next-teaser__tagline", children: tagline })
|
|
2707
2760
|
] });
|
|
2708
2761
|
});
|
|
2709
2762
|
|
|
2710
2763
|
// src/components/NumberInput.tsx
|
|
2711
|
-
import { forwardRef as
|
|
2712
|
-
import { jsx as
|
|
2764
|
+
import { forwardRef as forwardRef66 } from "react";
|
|
2765
|
+
import { jsx as jsx68, jsxs as jsxs55 } from "react/jsx-runtime";
|
|
2713
2766
|
function clamp(n, min, max) {
|
|
2714
2767
|
const rounded = Math.round(n * 1e6) / 1e6;
|
|
2715
2768
|
return Math.min(max ?? Infinity, Math.max(min ?? -Infinity, rounded));
|
|
2716
2769
|
}
|
|
2717
|
-
var NumberInput =
|
|
2770
|
+
var NumberInput = forwardRef66(function NumberInput2({ value, defaultValue, onChange, min, max, step = 1, size = "md", block, error, decrementLabel = "Decrease", incrementLabel = "Increase", className, disabled, ...rest }, ref) {
|
|
2718
2771
|
const [current, setCurrent] = useControllable(value, defaultValue ?? null, onChange);
|
|
2719
2772
|
const stepBy = (dir) => setCurrent(clamp((current ?? min ?? 0) + dir * step, min, max));
|
|
2720
|
-
return /* @__PURE__ */
|
|
2721
|
-
/* @__PURE__ */
|
|
2722
|
-
/* @__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(
|
|
2723
2776
|
"input",
|
|
2724
2777
|
{
|
|
2725
2778
|
ref,
|
|
@@ -2735,16 +2788,16 @@ var NumberInput = forwardRef63(function NumberInput2({ value, defaultValue, onCh
|
|
|
2735
2788
|
...rest
|
|
2736
2789
|
}
|
|
2737
2790
|
),
|
|
2738
|
-
/* @__PURE__ */
|
|
2791
|
+
/* @__PURE__ */ jsx68("button", { className: "oc-number-input-step", type: "button", "aria-label": incrementLabel, disabled: disabled || max != null && current != null && current >= max, onClick: () => stepBy(1), children: "+" })
|
|
2739
2792
|
] });
|
|
2740
2793
|
});
|
|
2741
2794
|
|
|
2742
2795
|
// src/components/OtpInput.tsx
|
|
2743
|
-
import { forwardRef as
|
|
2744
|
-
import { jsx as
|
|
2745
|
-
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) {
|
|
2746
2799
|
const [code, setCode] = useControllable(value, defaultValue, onChange);
|
|
2747
|
-
return /* @__PURE__ */
|
|
2800
|
+
return /* @__PURE__ */ jsx69(
|
|
2748
2801
|
"input",
|
|
2749
2802
|
{
|
|
2750
2803
|
ref,
|
|
@@ -2768,29 +2821,29 @@ var OtpInput = forwardRef64(function OtpInput2({ length = 6, value, defaultValue
|
|
|
2768
2821
|
});
|
|
2769
2822
|
|
|
2770
2823
|
// src/components/PageHeader.tsx
|
|
2771
|
-
import { forwardRef as
|
|
2772
|
-
import { jsx as
|
|
2773
|
-
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) {
|
|
2774
2827
|
const Heading3 = `h${level}`;
|
|
2775
2828
|
const cls = cx("oc-page-header", bordered && "oc-page-header--bordered", sticky && "oc-page-header--sticky", size && `oc-page-header--${size}`, className);
|
|
2776
|
-
return /* @__PURE__ */
|
|
2777
|
-
back != null && /* @__PURE__ */
|
|
2778
|
-
/* @__PURE__ */
|
|
2779
|
-
/* @__PURE__ */
|
|
2780
|
-
/* @__PURE__ */
|
|
2781
|
-
subtitle != null && /* @__PURE__ */
|
|
2782
|
-
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 })
|
|
2783
2836
|
] }),
|
|
2784
|
-
actions != null && /* @__PURE__ */
|
|
2837
|
+
actions != null && /* @__PURE__ */ jsx70("div", { className: "oc-page-header-actions", children: actions })
|
|
2785
2838
|
] })
|
|
2786
2839
|
] });
|
|
2787
2840
|
});
|
|
2788
2841
|
|
|
2789
2842
|
// src/components/Pagination.tsx
|
|
2790
|
-
import { forwardRef as
|
|
2791
|
-
import { jsx as
|
|
2792
|
-
var Pagination =
|
|
2793
|
-
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(
|
|
2794
2847
|
"a",
|
|
2795
2848
|
{
|
|
2796
2849
|
className: "oc-pagination-item",
|
|
@@ -2807,12 +2860,12 @@ var Pagination = forwardRef66(function Pagination2({ page, pageCount, onPageChan
|
|
|
2807
2860
|
});
|
|
2808
2861
|
|
|
2809
2862
|
// src/components/PasswordInput.tsx
|
|
2810
|
-
import { forwardRef as
|
|
2811
|
-
import { jsx as
|
|
2812
|
-
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) {
|
|
2813
2866
|
const [shown, setShown] = useState10(false);
|
|
2814
|
-
return /* @__PURE__ */
|
|
2815
|
-
/* @__PURE__ */
|
|
2867
|
+
return /* @__PURE__ */ jsxs57("div", { className: "oc-input-reveal", children: [
|
|
2868
|
+
/* @__PURE__ */ jsx72(
|
|
2816
2869
|
"input",
|
|
2817
2870
|
{
|
|
2818
2871
|
ref,
|
|
@@ -2823,27 +2876,27 @@ var PasswordInput = forwardRef67(function PasswordInput2({ showLabel = "Show", h
|
|
|
2823
2876
|
...rest
|
|
2824
2877
|
}
|
|
2825
2878
|
),
|
|
2826
|
-
/* @__PURE__ */
|
|
2879
|
+
/* @__PURE__ */ jsx72("button", { className: "oc-input-reveal-button", type: "button", "aria-pressed": shown, "aria-label": toggleLabel, onClick: () => setShown((s) => !s), children: shown ? hideLabel : showLabel })
|
|
2827
2880
|
] });
|
|
2828
2881
|
});
|
|
2829
2882
|
|
|
2830
2883
|
// src/components/PasswordRequirements.tsx
|
|
2831
|
-
import { forwardRef as
|
|
2832
|
-
import { jsx as
|
|
2884
|
+
import { forwardRef as forwardRef71 } from "react";
|
|
2885
|
+
import { jsx as jsx73 } from "react/jsx-runtime";
|
|
2833
2886
|
var defaultPasswordRules = [
|
|
2834
2887
|
{ label: "At least 8 characters", test: (p) => p.length >= 8 },
|
|
2835
2888
|
{ label: "One uppercase letter", test: (p) => /[A-Z]/.test(p) },
|
|
2836
2889
|
{ label: "One number", test: (p) => /[0-9]/.test(p) },
|
|
2837
2890
|
{ label: "One symbol", test: (p) => /[^A-Za-z0-9]/.test(p) }
|
|
2838
2891
|
];
|
|
2839
|
-
var PasswordRequirements =
|
|
2892
|
+
var PasswordRequirements = forwardRef71(function PasswordRequirements2({ password, rules = defaultPasswordRules, inline, hideWhenEmpty, className, ...rest }, ref) {
|
|
2840
2893
|
if (hideWhenEmpty && !password) return null;
|
|
2841
|
-
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)) });
|
|
2842
2895
|
});
|
|
2843
2896
|
|
|
2844
2897
|
// src/components/PhoneInput.tsx
|
|
2845
|
-
import { forwardRef as
|
|
2846
|
-
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";
|
|
2847
2900
|
var DEFAULT_COUNTRIES = [
|
|
2848
2901
|
{ dial: "+32", label: "BE +32" },
|
|
2849
2902
|
{ dial: "+31", label: "NL +31" },
|
|
@@ -2860,7 +2913,7 @@ function splitPhone(full, countries) {
|
|
|
2860
2913
|
const match = [...countries].sort((a, b) => b.dial.length - a.dial.length).find((c) => full.startsWith(c.dial));
|
|
2861
2914
|
return match ? { dial: match.dial, national: full.slice(match.dial.length) } : { dial: "", national: full.replace(/^\+/, "") };
|
|
2862
2915
|
}
|
|
2863
|
-
var PhoneInput =
|
|
2916
|
+
var PhoneInput = forwardRef72(function PhoneInput2({ value, defaultValue, onChange, countries = DEFAULT_COUNTRIES, defaultDial, size = "md", error, dialLabel = "Country code", className, disabled, ...rest }, ref) {
|
|
2864
2917
|
const [full, setFull] = useControllable(value, defaultValue ?? "", onChange);
|
|
2865
2918
|
const parsed = splitPhone(full, countries);
|
|
2866
2919
|
const [dialState, setDialState] = useState11(parsed.dial || defaultDial || countries[0]?.dial || "");
|
|
@@ -2870,9 +2923,9 @@ var PhoneInput = forwardRef69(function PhoneInput2({ value, defaultValue, onChan
|
|
|
2870
2923
|
const digits = national.replace(/\D/g, "");
|
|
2871
2924
|
setFull(digits ? nextDial + digits : "");
|
|
2872
2925
|
};
|
|
2873
|
-
return /* @__PURE__ */
|
|
2874
|
-
/* @__PURE__ */
|
|
2875
|
-
/* @__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(
|
|
2876
2929
|
"input",
|
|
2877
2930
|
{
|
|
2878
2931
|
ref,
|
|
@@ -2891,33 +2944,33 @@ var PhoneInput = forwardRef69(function PhoneInput2({ value, defaultValue, onChan
|
|
|
2891
2944
|
});
|
|
2892
2945
|
|
|
2893
2946
|
// src/components/Popover.tsx
|
|
2894
|
-
import { forwardRef as
|
|
2895
|
-
import { Fragment as Fragment16, jsx as
|
|
2896
|
-
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) {
|
|
2897
2950
|
const auto = useId25();
|
|
2898
2951
|
const panelId = id ?? `oc-popover-${auto.replace(/:/g, "")}`;
|
|
2899
|
-
return /* @__PURE__ */
|
|
2900
|
-
/* @__PURE__ */
|
|
2901
|
-
/* @__PURE__ */
|
|
2902
|
-
title != null && /* @__PURE__ */
|
|
2903
|
-
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 }),
|
|
2904
2957
|
children
|
|
2905
2958
|
] })
|
|
2906
2959
|
] });
|
|
2907
2960
|
});
|
|
2908
2961
|
|
|
2909
2962
|
// src/components/PriceCard.tsx
|
|
2910
|
-
import { forwardRef as
|
|
2911
|
-
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";
|
|
2912
2965
|
function Price({ kind, price }) {
|
|
2913
|
-
return /* @__PURE__ */
|
|
2914
|
-
/* @__PURE__ */
|
|
2915
|
-
price.period != null && /* @__PURE__ */
|
|
2916
|
-
price.was != null && /* @__PURE__ */
|
|
2917
|
-
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 })
|
|
2918
2971
|
] });
|
|
2919
2972
|
}
|
|
2920
|
-
var PriceCard =
|
|
2973
|
+
var PriceCard = forwardRef74(function PriceCard2({
|
|
2921
2974
|
name,
|
|
2922
2975
|
description,
|
|
2923
2976
|
discount,
|
|
@@ -2933,35 +2986,35 @@ var PriceCard = forwardRef71(function PriceCard2({
|
|
|
2933
2986
|
...rest
|
|
2934
2987
|
}, ref) {
|
|
2935
2988
|
const group = `oc-price-${useId26().replace(/[^\w-]/g, "")}`;
|
|
2936
|
-
return /* @__PURE__ */
|
|
2937
|
-
/* @__PURE__ */
|
|
2938
|
-
/* @__PURE__ */
|
|
2939
|
-
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 })
|
|
2940
2993
|
] }),
|
|
2941
|
-
description != null && /* @__PURE__ */
|
|
2942
|
-
yearly && /* @__PURE__ */
|
|
2943
|
-
/* @__PURE__ */
|
|
2944
|
-
/* @__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" }),
|
|
2945
2998
|
" ",
|
|
2946
2999
|
monthlyLabel
|
|
2947
3000
|
] }),
|
|
2948
|
-
/* @__PURE__ */
|
|
2949
|
-
/* @__PURE__ */
|
|
3001
|
+
/* @__PURE__ */ jsxs60("label", { className: "oc-segmented-item", children: [
|
|
3002
|
+
/* @__PURE__ */ jsx76("input", { type: "radio", name: group, value: "yearly", defaultChecked: defaultPeriod === "yearly" }),
|
|
2950
3003
|
" ",
|
|
2951
3004
|
yearlyLabel
|
|
2952
3005
|
] })
|
|
2953
3006
|
] }),
|
|
2954
|
-
/* @__PURE__ */
|
|
2955
|
-
yearly && /* @__PURE__ */
|
|
2956
|
-
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)) }),
|
|
2957
3010
|
cta
|
|
2958
3011
|
] });
|
|
2959
3012
|
});
|
|
2960
3013
|
|
|
2961
3014
|
// src/components/ProductMark.tsx
|
|
2962
|
-
import { forwardRef as
|
|
2963
|
-
import { jsx as
|
|
2964
|
-
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) {
|
|
2965
3018
|
const classes = cx(
|
|
2966
3019
|
"oc-product-mark",
|
|
2967
3020
|
size !== "default" && `oc-product-mark--${size}`,
|
|
@@ -2971,132 +3024,132 @@ var ProductMark = forwardRef72(function ProductMark2({ size = "default", accent,
|
|
|
2971
3024
|
accent && `oc-accent--${accent}`,
|
|
2972
3025
|
className
|
|
2973
3026
|
);
|
|
2974
|
-
return /* @__PURE__ */
|
|
3027
|
+
return /* @__PURE__ */ jsx77("span", { ref, className: classes, "aria-hidden": "true", ...rest });
|
|
2975
3028
|
});
|
|
2976
3029
|
|
|
2977
3030
|
// src/components/ProjectCard.tsx
|
|
2978
|
-
import { forwardRef as
|
|
2979
|
-
import { jsx as
|
|
2980
|
-
var ProjectCard =
|
|
2981
|
-
return /* @__PURE__ */
|
|
2982
|
-
/* @__PURE__ */
|
|
2983
|
-
/* @__PURE__ */
|
|
2984
|
-
/* @__PURE__ */
|
|
2985
|
-
/* @__PURE__ */
|
|
2986
|
-
/* @__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", {})
|
|
2987
3040
|
] }),
|
|
2988
|
-
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 })
|
|
2989
3042
|
] }),
|
|
2990
|
-
/* @__PURE__ */
|
|
2991
|
-
type != null && /* @__PURE__ */
|
|
2992
|
-
/* @__PURE__ */
|
|
2993
|
-
meta != null && /* @__PURE__ */
|
|
2994
|
-
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 })
|
|
2995
3048
|
] })
|
|
2996
3049
|
] });
|
|
2997
3050
|
});
|
|
2998
3051
|
|
|
2999
3052
|
// src/components/Prose.tsx
|
|
3000
|
-
import { forwardRef as
|
|
3001
|
-
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";
|
|
3002
3055
|
function ProseLead({ className, ...rest }) {
|
|
3003
|
-
return /* @__PURE__ */
|
|
3056
|
+
return /* @__PURE__ */ jsx79("p", { className: cx("oc-prose-lead", className), ...rest });
|
|
3004
3057
|
}
|
|
3005
|
-
var DEMO7 = /* @__PURE__ */
|
|
3006
|
-
/* @__PURE__ */
|
|
3007
|
-
/* @__PURE__ */
|
|
3008
|
-
/* @__PURE__ */
|
|
3009
|
-
/* @__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: [
|
|
3010
3063
|
"Collect a few photos of kitchens you like and measure the room roughly. Exact measurements are not needed yet: our site manager does that during the visit. Read the ",
|
|
3011
|
-
/* @__PURE__ */
|
|
3064
|
+
/* @__PURE__ */ jsx79("a", { href: "#checklist", children: "preparation checklist" }),
|
|
3012
3065
|
" if you want to be fully ready."
|
|
3013
3066
|
] }),
|
|
3014
|
-
/* @__PURE__ */
|
|
3015
|
-
/* @__PURE__ */
|
|
3067
|
+
/* @__PURE__ */ jsxs62("ul", { children: [
|
|
3068
|
+
/* @__PURE__ */ jsxs62("li", { children: [
|
|
3016
3069
|
"The ",
|
|
3017
|
-
/* @__PURE__ */
|
|
3070
|
+
/* @__PURE__ */ jsx79("strong", { children: "budget range" }),
|
|
3018
3071
|
" you have in mind, including appliances"
|
|
3019
3072
|
] }),
|
|
3020
|
-
/* @__PURE__ */
|
|
3073
|
+
/* @__PURE__ */ jsxs62("li", { children: [
|
|
3021
3074
|
"Which walls, doors and windows can move, and which cannot",
|
|
3022
|
-
/* @__PURE__ */
|
|
3023
|
-
/* @__PURE__ */
|
|
3024
|
-
/* @__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" })
|
|
3025
3078
|
] })
|
|
3026
3079
|
] }),
|
|
3027
|
-
/* @__PURE__ */
|
|
3080
|
+
/* @__PURE__ */ jsx79("li", { children: "Appliances you want to keep" })
|
|
3028
3081
|
] }),
|
|
3029
|
-
/* @__PURE__ */
|
|
3030
|
-
/* @__PURE__ */
|
|
3031
|
-
/* @__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." })
|
|
3032
3085
|
] }),
|
|
3033
|
-
/* @__PURE__ */
|
|
3034
|
-
/* @__PURE__ */
|
|
3035
|
-
/* @__PURE__ */
|
|
3036
|
-
/* @__PURE__ */
|
|
3037
|
-
/* @__PURE__ */
|
|
3038
|
-
/* @__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)" })
|
|
3039
3092
|
] }),
|
|
3040
|
-
/* @__PURE__ */
|
|
3041
|
-
/* @__PURE__ */
|
|
3042
|
-
/* @__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" })
|
|
3043
3096
|
] }),
|
|
3044
|
-
/* @__PURE__ */
|
|
3045
|
-
/* @__PURE__ */
|
|
3046
|
-
/* @__PURE__ */
|
|
3047
|
-
/* @__PURE__ */
|
|
3048
|
-
/* @__PURE__ */
|
|
3049
|
-
/* @__PURE__ */
|
|
3050
|
-
/* @__PURE__ */
|
|
3051
|
-
/* @__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" })
|
|
3052
3105
|
] }) }),
|
|
3053
|
-
/* @__PURE__ */
|
|
3054
|
-
/* @__PURE__ */
|
|
3055
|
-
/* @__PURE__ */
|
|
3056
|
-
/* @__PURE__ */
|
|
3057
|
-
/* @__PURE__ */
|
|
3058
|
-
/* @__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" })
|
|
3059
3112
|
] }),
|
|
3060
|
-
/* @__PURE__ */
|
|
3061
|
-
/* @__PURE__ */
|
|
3062
|
-
/* @__PURE__ */
|
|
3063
|
-
/* @__PURE__ */
|
|
3064
|
-
/* @__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" })
|
|
3065
3118
|
] }),
|
|
3066
|
-
/* @__PURE__ */
|
|
3067
|
-
/* @__PURE__ */
|
|
3068
|
-
/* @__PURE__ */
|
|
3069
|
-
/* @__PURE__ */
|
|
3070
|
-
/* @__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" })
|
|
3071
3124
|
] })
|
|
3072
3125
|
] })
|
|
3073
3126
|
] }),
|
|
3074
|
-
/* @__PURE__ */
|
|
3075
|
-
/* @__PURE__ */
|
|
3127
|
+
/* @__PURE__ */ jsx79("h3", { children: "Sharing your floor plan" }),
|
|
3128
|
+
/* @__PURE__ */ jsxs62("p", { children: [
|
|
3076
3129
|
"Upload a PDF or a photo in the client portal, or send it by e-mail. Press ",
|
|
3077
|
-
/* @__PURE__ */
|
|
3130
|
+
/* @__PURE__ */ jsx79("kbd", { children: "Ctrl" }),
|
|
3078
3131
|
" + ",
|
|
3079
|
-
/* @__PURE__ */
|
|
3132
|
+
/* @__PURE__ */ jsx79("kbd", { children: "V" }),
|
|
3080
3133
|
" in the chat to paste a screenshot. Files are stored as ",
|
|
3081
|
-
/* @__PURE__ */
|
|
3134
|
+
/* @__PURE__ */ jsx79("code", { children: "project-id/plans/" }),
|
|
3082
3135
|
" and only your project team can see them."
|
|
3083
3136
|
] }),
|
|
3084
|
-
/* @__PURE__ */
|
|
3085
|
-
/* @__PURE__ */
|
|
3086
|
-
/* @__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: [
|
|
3087
3140
|
"Lead times are an estimate. ",
|
|
3088
|
-
/* @__PURE__ */
|
|
3141
|
+
/* @__PURE__ */ jsx79("mark", { children: "Natural stone" }),
|
|
3089
3142
|
" can take two weeks longer in summer."
|
|
3090
3143
|
] }) })
|
|
3091
3144
|
] });
|
|
3092
|
-
var Prose =
|
|
3093
|
-
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 });
|
|
3094
3147
|
});
|
|
3095
3148
|
|
|
3096
3149
|
// src/components/RecoveryCodes.tsx
|
|
3097
|
-
import { forwardRef as
|
|
3098
|
-
import { jsx as
|
|
3099
|
-
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({
|
|
3100
3153
|
codes,
|
|
3101
3154
|
title = "Recovery codes",
|
|
3102
3155
|
warning = "Store these codes somewhere safe. Each code works once.",
|
|
@@ -3124,33 +3177,33 @@ var RecoveryCodes = forwardRef75(function RecoveryCodes2({
|
|
|
3124
3177
|
URL.revokeObjectURL(url);
|
|
3125
3178
|
onDownload?.(codes);
|
|
3126
3179
|
};
|
|
3127
|
-
return /* @__PURE__ */
|
|
3128
|
-
/* @__PURE__ */
|
|
3129
|
-
/* @__PURE__ */
|
|
3130
|
-
/* @__PURE__ */
|
|
3131
|
-
/* @__PURE__ */
|
|
3132
|
-
/* @__PURE__ */
|
|
3133
|
-
/* @__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 })
|
|
3134
3187
|
] })
|
|
3135
3188
|
] });
|
|
3136
3189
|
});
|
|
3137
3190
|
|
|
3138
3191
|
// src/components/Segmented.tsx
|
|
3139
|
-
import { forwardRef as
|
|
3140
|
-
import { jsx as
|
|
3141
|
-
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) {
|
|
3142
3195
|
const auto = useId27();
|
|
3143
3196
|
const group = name ?? `oc-segmented-${auto.replace(/:/g, "")}`;
|
|
3144
3197
|
const [current, setCurrent] = useControllable(value, defaultValue ?? options[0]?.value ?? "", onChange);
|
|
3145
|
-
return /* @__PURE__ */
|
|
3198
|
+
return /* @__PURE__ */ jsx81(
|
|
3146
3199
|
"div",
|
|
3147
3200
|
{
|
|
3148
3201
|
ref,
|
|
3149
3202
|
className: cx("oc-segmented", block && "oc-segmented--block", size === "sm" && "oc-segmented--sm", className),
|
|
3150
3203
|
role: "radiogroup",
|
|
3151
3204
|
...rest,
|
|
3152
|
-
children: options.map((o) => /* @__PURE__ */
|
|
3153
|
-
/* @__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) }),
|
|
3154
3207
|
" ",
|
|
3155
3208
|
o.label
|
|
3156
3209
|
] }, o.value))
|
|
@@ -3159,44 +3212,44 @@ var Segmented = forwardRef76(function Segmented2({ options, value, defaultValue,
|
|
|
3159
3212
|
});
|
|
3160
3213
|
|
|
3161
3214
|
// src/components/Select.tsx
|
|
3162
|
-
import { forwardRef as
|
|
3163
|
-
import { jsx as
|
|
3164
|
-
var Select =
|
|
3165
|
-
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: [
|
|
3166
3219
|
options?.map((o) => {
|
|
3167
3220
|
const opt = typeof o === "string" ? { value: o, label: o } : o;
|
|
3168
|
-
return /* @__PURE__ */
|
|
3221
|
+
return /* @__PURE__ */ jsx82("option", { value: opt.value, disabled: opt.disabled, children: opt.label }, opt.value);
|
|
3169
3222
|
}),
|
|
3170
3223
|
children
|
|
3171
3224
|
] });
|
|
3172
3225
|
});
|
|
3173
3226
|
|
|
3174
3227
|
// src/components/SeverityCard.tsx
|
|
3175
|
-
import { forwardRef as
|
|
3176
|
-
import { jsx as
|
|
3228
|
+
import { forwardRef as forwardRef81 } from "react";
|
|
3229
|
+
import { jsx as jsx83, jsxs as jsxs66 } from "react/jsx-runtime";
|
|
3177
3230
|
var LEVEL_TEXT = { low: "Low", medium: "Medium", high: "High", critical: "Critical" };
|
|
3178
|
-
var SeverityCard =
|
|
3231
|
+
var SeverityCard = forwardRef81(function SeverityCard2({ level, title, tags, levelLabel, icon, resolved, actions, className, children, ...rest }, ref) {
|
|
3179
3232
|
const cls = cx("oc-severity-card", `oc-severity-card--${level}`, resolved && "is-resolved", className);
|
|
3180
|
-
return /* @__PURE__ */
|
|
3181
|
-
/* @__PURE__ */
|
|
3182
|
-
icon != null && /* @__PURE__ */
|
|
3183
|
-
/* @__PURE__ */
|
|
3184
|
-
/* @__PURE__ */
|
|
3185
|
-
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)) })
|
|
3186
3239
|
] }),
|
|
3187
|
-
/* @__PURE__ */
|
|
3240
|
+
/* @__PURE__ */ jsx83("span", { className: "oc-severity-card-level", children: levelLabel ?? LEVEL_TEXT[level] })
|
|
3188
3241
|
] }),
|
|
3189
|
-
/* @__PURE__ */
|
|
3242
|
+
/* @__PURE__ */ jsxs66("div", { className: "oc-severity-card-body", children: [
|
|
3190
3243
|
children,
|
|
3191
|
-
actions != null && /* @__PURE__ */
|
|
3244
|
+
actions != null && /* @__PURE__ */ jsx83("div", { className: "oc-severity-card-actions", children: actions })
|
|
3192
3245
|
] })
|
|
3193
3246
|
] });
|
|
3194
3247
|
});
|
|
3195
3248
|
|
|
3196
3249
|
// src/components/Sheet.tsx
|
|
3197
|
-
import { forwardRef as
|
|
3198
|
-
import { jsx as
|
|
3199
|
-
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) {
|
|
3200
3253
|
const inner = useRef10(null);
|
|
3201
3254
|
const ref = useMergedRef(inner, forwardedRef);
|
|
3202
3255
|
const titleId = useId28();
|
|
@@ -3205,7 +3258,7 @@ var Sheet = forwardRef79(function Sheet2({ open, defaultOpen, onOpenChange, side
|
|
|
3205
3258
|
rest.onClick?.(e);
|
|
3206
3259
|
if (e.target === e.currentTarget) dlg.close();
|
|
3207
3260
|
};
|
|
3208
|
-
return /* @__PURE__ */
|
|
3261
|
+
return /* @__PURE__ */ jsx84(
|
|
3209
3262
|
"dialog",
|
|
3210
3263
|
{
|
|
3211
3264
|
ref,
|
|
@@ -3215,57 +3268,57 @@ var Sheet = forwardRef79(function Sheet2({ open, defaultOpen, onOpenChange, side
|
|
|
3215
3268
|
...rest,
|
|
3216
3269
|
onClick,
|
|
3217
3270
|
onClose: dlg.onClose,
|
|
3218
|
-
children: /* @__PURE__ */
|
|
3219
|
-
/* @__PURE__ */
|
|
3220
|
-
(title != null || description != null) && /* @__PURE__ */
|
|
3221
|
-
title != null && /* @__PURE__ */
|
|
3222
|
-
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 })
|
|
3223
3276
|
] }),
|
|
3224
|
-
/* @__PURE__ */
|
|
3225
|
-
footer != null && /* @__PURE__ */
|
|
3277
|
+
/* @__PURE__ */ jsx84("div", { className: "oc-sheet-body", children }),
|
|
3278
|
+
footer != null && /* @__PURE__ */ jsx84("div", { className: "oc-sheet-footer", children: footer })
|
|
3226
3279
|
] }) })
|
|
3227
3280
|
}
|
|
3228
3281
|
);
|
|
3229
3282
|
});
|
|
3230
3283
|
|
|
3231
3284
|
// src/components/Sidebar.tsx
|
|
3232
|
-
import { forwardRef as
|
|
3233
|
-
import { Fragment as Fragment18, jsx as
|
|
3234
|
-
var Sidebar =
|
|
3235
|
-
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(
|
|
3236
3289
|
"aside",
|
|
3237
3290
|
{
|
|
3238
3291
|
ref,
|
|
3239
3292
|
className: cx("oc-sidebar", collapsed && "oc-sidebar--collapsed", right && "oc-sidebar--right", floating && "oc-sidebar--floating", dark && "oc-sidebar--dark", className),
|
|
3240
3293
|
...rest,
|
|
3241
3294
|
children: [
|
|
3242
|
-
header != null && /* @__PURE__ */
|
|
3243
|
-
/* @__PURE__ */
|
|
3244
|
-
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 })
|
|
3245
3298
|
]
|
|
3246
3299
|
}
|
|
3247
3300
|
);
|
|
3248
3301
|
});
|
|
3249
|
-
var SidebarGroup =
|
|
3250
|
-
return /* @__PURE__ */
|
|
3251
|
-
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 }),
|
|
3252
3305
|
children
|
|
3253
3306
|
] });
|
|
3254
3307
|
});
|
|
3255
3308
|
function SidebarSeparator({ className, ...rest }) {
|
|
3256
|
-
return /* @__PURE__ */
|
|
3309
|
+
return /* @__PURE__ */ jsx85("div", { className: cx("oc-sidebar-separator", className), ...rest });
|
|
3257
3310
|
}
|
|
3258
|
-
var SidebarMenu =
|
|
3259
|
-
return /* @__PURE__ */
|
|
3311
|
+
var SidebarMenu = forwardRef83(function SidebarMenu2({ className, ...rest }, ref) {
|
|
3312
|
+
return /* @__PURE__ */ jsx85("ul", { ref, className: cx("oc-sidebar-menu", className), ...rest });
|
|
3260
3313
|
});
|
|
3261
3314
|
function SidebarMenuItem(props) {
|
|
3262
|
-
return /* @__PURE__ */
|
|
3315
|
+
return /* @__PURE__ */ jsx85("li", { ...props });
|
|
3263
3316
|
}
|
|
3264
|
-
var SidebarMenuButton =
|
|
3265
|
-
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: [
|
|
3266
3319
|
icon,
|
|
3267
|
-
label ? /* @__PURE__ */
|
|
3268
|
-
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 })
|
|
3269
3322
|
] });
|
|
3270
3323
|
const props = {
|
|
3271
3324
|
className: cx("oc-sidebar-menu-button", size === "lg" && "oc-sidebar-menu-button--lg", className),
|
|
@@ -3273,13 +3326,13 @@ var SidebarMenuButton = forwardRef80(function SidebarMenuButton2({ icon, badge,
|
|
|
3273
3326
|
"aria-disabled": disabled ? true : void 0
|
|
3274
3327
|
};
|
|
3275
3328
|
if (href === void 0) {
|
|
3276
|
-
return /* @__PURE__ */
|
|
3329
|
+
return /* @__PURE__ */ jsx85("button", { type: "button", ...props, ...rest, children: content });
|
|
3277
3330
|
}
|
|
3278
|
-
return /* @__PURE__ */
|
|
3331
|
+
return /* @__PURE__ */ jsx85("a", { ref, href, ...props, ...rest, children: content });
|
|
3279
3332
|
});
|
|
3280
|
-
var SidebarCollapsible =
|
|
3333
|
+
var SidebarCollapsible = forwardRef83(function SidebarCollapsible2({ icon, label, open, defaultOpen, onOpenChange, className, children, ...rest }, ref) {
|
|
3281
3334
|
const [isOpen, setOpen] = useControllable(open, defaultOpen ?? false, onOpenChange);
|
|
3282
|
-
return /* @__PURE__ */
|
|
3335
|
+
return /* @__PURE__ */ jsxs68(
|
|
3283
3336
|
"details",
|
|
3284
3337
|
{
|
|
3285
3338
|
ref,
|
|
@@ -3290,30 +3343,30 @@ var SidebarCollapsible = forwardRef80(function SidebarCollapsible2({ icon, label
|
|
|
3290
3343
|
},
|
|
3291
3344
|
...rest,
|
|
3292
3345
|
children: [
|
|
3293
|
-
/* @__PURE__ */
|
|
3346
|
+
/* @__PURE__ */ jsxs68("summary", { className: "oc-sidebar-menu-button", children: [
|
|
3294
3347
|
icon,
|
|
3295
|
-
/* @__PURE__ */
|
|
3348
|
+
/* @__PURE__ */ jsx85("span", { className: "oc-sidebar-menu-label", children: label })
|
|
3296
3349
|
] }),
|
|
3297
|
-
/* @__PURE__ */
|
|
3350
|
+
/* @__PURE__ */ jsx85("ul", { className: "oc-sidebar-menu-sub", children })
|
|
3298
3351
|
]
|
|
3299
3352
|
}
|
|
3300
3353
|
);
|
|
3301
3354
|
});
|
|
3302
3355
|
|
|
3303
3356
|
// src/components/Skeleton.tsx
|
|
3304
|
-
import { forwardRef as
|
|
3305
|
-
import { jsx as
|
|
3306
|
-
var Skeleton =
|
|
3307
|
-
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 });
|
|
3308
3361
|
});
|
|
3309
3362
|
|
|
3310
3363
|
// src/components/SortableRow.tsx
|
|
3311
|
-
import { forwardRef as
|
|
3312
|
-
import { jsx as
|
|
3313
|
-
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) {
|
|
3314
3367
|
const cls = cx("oc-sortable-row", dragging && "is-dragging", drop && `is-drop-${drop}`, className);
|
|
3315
|
-
return /* @__PURE__ */
|
|
3316
|
-
/* @__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(
|
|
3317
3370
|
"button",
|
|
3318
3371
|
{
|
|
3319
3372
|
className: "oc-sortable-row-grip",
|
|
@@ -3329,64 +3382,87 @@ var SortableRow = forwardRef82(function SortableRow2({ gripLabel, dragging, drop
|
|
|
3329
3382
|
});
|
|
3330
3383
|
|
|
3331
3384
|
// src/components/StackCard.tsx
|
|
3332
|
-
import { forwardRef as
|
|
3333
|
-
import { jsx as
|
|
3334
|
-
var StackCard =
|
|
3335
|
-
return /* @__PURE__ */
|
|
3336
|
-
/* @__PURE__ */
|
|
3337
|
-
/* @__PURE__ */
|
|
3338
|
-
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 })
|
|
3339
3392
|
] }),
|
|
3340
|
-
/* @__PURE__ */
|
|
3341
|
-
/* @__PURE__ */
|
|
3342
|
-
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 })
|
|
3343
3396
|
] })
|
|
3344
3397
|
] });
|
|
3345
3398
|
});
|
|
3346
3399
|
|
|
3347
3400
|
// src/components/StackList.tsx
|
|
3348
|
-
import { forwardRef as
|
|
3349
|
-
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";
|
|
3350
3403
|
var isItem = (v) => typeof v === "object" && v !== null && "label" in v;
|
|
3351
|
-
var StackList =
|
|
3352
|
-
return /* @__PURE__ */
|
|
3353
|
-
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 }),
|
|
3354
3407
|
item.label
|
|
3355
3408
|
] }) : item }, i)) });
|
|
3356
3409
|
});
|
|
3357
3410
|
|
|
3358
3411
|
// src/components/StatCard.tsx
|
|
3359
|
-
import { forwardRef as
|
|
3360
|
-
import { Fragment as Fragment20, jsx as
|
|
3361
|
-
var StatCardGrid =
|
|
3362
|
-
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 });
|
|
3363
3416
|
});
|
|
3364
3417
|
function StatCard({ value, label, icon, trend, trendDirection = "up", tone = "default", stripe, href, onClick, className, ...rest }) {
|
|
3365
3418
|
const cls = cx("oc-stat-card", tone !== "default" && `oc-stat-card--${tone}`, stripe && "oc-stat-card--stripe", className);
|
|
3366
|
-
const content = /* @__PURE__ */
|
|
3367
|
-
icon != null && /* @__PURE__ */
|
|
3368
|
-
/* @__PURE__ */
|
|
3369
|
-
/* @__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: [
|
|
3370
3423
|
value,
|
|
3371
|
-
trend != null && /* @__PURE__ */
|
|
3424
|
+
trend != null && /* @__PURE__ */ jsx90("span", { className: `oc-stat-card-trend oc-stat-card-trend--${trendDirection}`, children: trend })
|
|
3372
3425
|
] }),
|
|
3373
|
-
/* @__PURE__ */
|
|
3426
|
+
/* @__PURE__ */ jsx90("span", { className: "oc-stat-card-label", children: label })
|
|
3374
3427
|
] })
|
|
3375
3428
|
] });
|
|
3376
|
-
if (href !== void 0) return /* @__PURE__ */
|
|
3377
|
-
if (onClick) return /* @__PURE__ */
|
|
3378
|
-
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 });
|
|
3379
3432
|
}
|
|
3380
3433
|
|
|
3434
|
+
// src/components/StatusDot.tsx
|
|
3435
|
+
import { forwardRef as forwardRef89 } from "react";
|
|
3436
|
+
import { jsx as jsx91, jsxs as jsxs73 } from "react/jsx-runtime";
|
|
3437
|
+
var StatusDot = forwardRef89(function StatusDot2({ tone = "default", size = "md", label, className, ...rest }, ref) {
|
|
3438
|
+
const a11y = label ? { role: "img", "aria-label": label } : { "aria-hidden": true };
|
|
3439
|
+
return /* @__PURE__ */ jsx91(
|
|
3440
|
+
"span",
|
|
3441
|
+
{
|
|
3442
|
+
ref,
|
|
3443
|
+
className: cx("oc-status-dot", tone !== "default" && `oc-status-dot--${tone}`, size !== "md" && `oc-status-dot--${size}`, className),
|
|
3444
|
+
...a11y,
|
|
3445
|
+
...rest
|
|
3446
|
+
}
|
|
3447
|
+
);
|
|
3448
|
+
});
|
|
3449
|
+
var Status = forwardRef89(function Status2({ tone = "default", meta, className, children, ...rest }, ref) {
|
|
3450
|
+
return /* @__PURE__ */ jsxs73("p", { ref, className: cx("oc-status", className), ...rest, children: [
|
|
3451
|
+
/* @__PURE__ */ jsx91(StatusDot, { tone }),
|
|
3452
|
+
/* @__PURE__ */ jsx91("span", { className: "oc-status__text", children }),
|
|
3453
|
+
meta != null && /* @__PURE__ */ jsx91("span", { className: "oc-status__meta", children: meta })
|
|
3454
|
+
] });
|
|
3455
|
+
});
|
|
3456
|
+
|
|
3381
3457
|
// src/components/Stepper.tsx
|
|
3382
|
-
import { forwardRef as
|
|
3383
|
-
import { jsx as
|
|
3384
|
-
var Stepper =
|
|
3385
|
-
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) => {
|
|
3386
3462
|
const done = i < current;
|
|
3387
3463
|
const active = i === current;
|
|
3388
|
-
const label = /* @__PURE__ */
|
|
3389
|
-
return /* @__PURE__ */
|
|
3464
|
+
const label = /* @__PURE__ */ jsx92("span", { className: "oc-stepper-label", children: step.label });
|
|
3465
|
+
return /* @__PURE__ */ jsx92("li", { children: /* @__PURE__ */ jsx92(
|
|
3390
3466
|
"button",
|
|
3391
3467
|
{
|
|
3392
3468
|
className: cx("oc-stepper-item", done && "oc-stepper-item--done", active && "oc-stepper-item--active"),
|
|
@@ -3394,9 +3470,9 @@ var Stepper = forwardRef86(function Stepper2({ steps, current, horizontal, onSte
|
|
|
3394
3470
|
"aria-current": active ? "step" : void 0,
|
|
3395
3471
|
disabled: i > current,
|
|
3396
3472
|
onClick: () => onStepChange?.(i),
|
|
3397
|
-
children: step.meta != null ? /* @__PURE__ */
|
|
3473
|
+
children: step.meta != null ? /* @__PURE__ */ jsxs74("span", { children: [
|
|
3398
3474
|
label,
|
|
3399
|
-
/* @__PURE__ */
|
|
3475
|
+
/* @__PURE__ */ jsx92("span", { className: "oc-stepper-meta", children: step.meta })
|
|
3400
3476
|
] }) : label
|
|
3401
3477
|
}
|
|
3402
3478
|
) }, i);
|
|
@@ -3404,20 +3480,20 @@ var Stepper = forwardRef86(function Stepper2({ steps, current, horizontal, onSte
|
|
|
3404
3480
|
});
|
|
3405
3481
|
|
|
3406
3482
|
// src/components/Switch.tsx
|
|
3407
|
-
import { forwardRef as
|
|
3408
|
-
import { jsx as
|
|
3409
|
-
var Switch =
|
|
3410
|
-
return /* @__PURE__ */
|
|
3411
|
-
/* @__PURE__ */
|
|
3412
|
-
/* @__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" })
|
|
3413
3489
|
] });
|
|
3414
3490
|
});
|
|
3415
3491
|
|
|
3416
3492
|
// src/components/Table.tsx
|
|
3417
|
-
import { forwardRef as
|
|
3418
|
-
import { jsx as
|
|
3419
|
-
var Table =
|
|
3420
|
-
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(
|
|
3421
3497
|
"table",
|
|
3422
3498
|
{
|
|
3423
3499
|
ref,
|
|
@@ -3431,84 +3507,84 @@ var Table = forwardRef88(function Table2({ striped, compact, borderless, sticky,
|
|
|
3431
3507
|
),
|
|
3432
3508
|
...rest,
|
|
3433
3509
|
children: [
|
|
3434
|
-
caption != null && /* @__PURE__ */
|
|
3510
|
+
caption != null && /* @__PURE__ */ jsx94("caption", { children: caption }),
|
|
3435
3511
|
children
|
|
3436
3512
|
]
|
|
3437
3513
|
}
|
|
3438
3514
|
) });
|
|
3439
3515
|
});
|
|
3440
|
-
var TableSort =
|
|
3441
|
-
return /* @__PURE__ */
|
|
3516
|
+
var TableSort = forwardRef92(function TableSort2({ className, ...rest }, ref) {
|
|
3517
|
+
return /* @__PURE__ */ jsx94("a", { ref, className: cx("oc-table-sort", className), ...rest });
|
|
3442
3518
|
});
|
|
3443
3519
|
function TableActions({ className, ...rest }) {
|
|
3444
|
-
return /* @__PURE__ */
|
|
3520
|
+
return /* @__PURE__ */ jsx94("td", { className: cx("oc-table-actions", className), ...rest });
|
|
3445
3521
|
}
|
|
3446
3522
|
function TableRowAction({ tone = "default", className, ...props }) {
|
|
3447
3523
|
const cls = cx("oc-table-row-action", tone !== "default" && `oc-table-row-action--${tone}`, className);
|
|
3448
|
-
if (props.href !== void 0) return /* @__PURE__ */
|
|
3449
|
-
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 });
|
|
3450
3526
|
}
|
|
3451
3527
|
function TableEmpty({ colSpan, children, ...rest }) {
|
|
3452
|
-
return /* @__PURE__ */
|
|
3528
|
+
return /* @__PURE__ */ jsx94("tr", { className: "oc-table-empty", ...rest, children: /* @__PURE__ */ jsx94("td", { colSpan, children }) });
|
|
3453
3529
|
}
|
|
3454
3530
|
|
|
3455
3531
|
// src/components/TableActions.tsx
|
|
3456
|
-
import { forwardRef as
|
|
3457
|
-
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";
|
|
3458
3534
|
function TableActionIcon({ label, tone = "default", className, children, ...props }) {
|
|
3459
3535
|
const cls = cx("oc-table-actions-icon", tone !== "default" && `oc-table-actions-icon--${tone}`, className);
|
|
3460
3536
|
const common = { className: cls, "aria-label": label, title: label };
|
|
3461
3537
|
if (props.href !== void 0) {
|
|
3462
|
-
return /* @__PURE__ */
|
|
3538
|
+
return /* @__PURE__ */ jsx95("a", { ...common, ...props, children });
|
|
3463
3539
|
}
|
|
3464
|
-
return /* @__PURE__ */
|
|
3540
|
+
return /* @__PURE__ */ jsx95("button", { type: "button", ...common, ...props, children });
|
|
3465
3541
|
}
|
|
3466
|
-
var TableActionsMenu =
|
|
3542
|
+
var TableActionsMenu = forwardRef93(function TableActionsMenu2({ label, id, className, children, ...rest }, ref) {
|
|
3467
3543
|
const auto = useId29();
|
|
3468
3544
|
const menuId = id ?? `oc-table-actions-menu-${auto.replace(/:/g, "")}`;
|
|
3469
|
-
return /* @__PURE__ */
|
|
3470
|
-
/* @__PURE__ */
|
|
3471
|
-
/* @__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 })
|
|
3472
3548
|
] });
|
|
3473
3549
|
});
|
|
3474
3550
|
|
|
3475
3551
|
// src/components/TableCompact.tsx
|
|
3476
|
-
import { forwardRef as
|
|
3477
|
-
import { jsx as
|
|
3552
|
+
import { forwardRef as forwardRef94 } from "react";
|
|
3553
|
+
import { jsx as jsx96, jsxs as jsxs78 } from "react/jsx-runtime";
|
|
3478
3554
|
var cellAttrs = (c) => ({
|
|
3479
3555
|
"data-numeric": c.numeric ? "" : void 0,
|
|
3480
3556
|
"data-wrap": c.wrap ? "" : void 0
|
|
3481
3557
|
});
|
|
3482
|
-
var TableCompact =
|
|
3558
|
+
var TableCompact = forwardRef94(function TableCompact2({ columns, rows = [], footer, bordered, plain, className, children, ...rest }, ref) {
|
|
3483
3559
|
const cls = cx("oc-table-compact", bordered && "oc-table-compact--bordered", plain && "oc-table-compact--plain", className);
|
|
3484
|
-
return /* @__PURE__ */
|
|
3485
|
-
/* @__PURE__ */
|
|
3486
|
-
/* @__PURE__ */
|
|
3487
|
-
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)) }) })
|
|
3488
3564
|
] }) : children });
|
|
3489
3565
|
});
|
|
3490
3566
|
|
|
3491
3567
|
// src/components/Tabs.tsx
|
|
3492
|
-
import { forwardRef as
|
|
3493
|
-
import { jsx as
|
|
3494
|
-
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) {
|
|
3495
3571
|
const auto = useId30();
|
|
3496
3572
|
const group = name ?? `oc-tabs-${auto.replace(/:/g, "")}`;
|
|
3497
3573
|
const [current, setCurrent] = useControllable(value, defaultValue ?? tabs[0]?.value ?? "", onChange);
|
|
3498
|
-
return /* @__PURE__ */
|
|
3499
|
-
/* @__PURE__ */
|
|
3500
|
-
/* @__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) }),
|
|
3501
3577
|
" ",
|
|
3502
3578
|
t.label
|
|
3503
3579
|
] }, t.value)) }),
|
|
3504
|
-
tabs.map((t) => /* @__PURE__ */
|
|
3580
|
+
tabs.map((t) => /* @__PURE__ */ jsx97("div", { className: "oc-tab-panel", children: t.content }, t.value))
|
|
3505
3581
|
] });
|
|
3506
3582
|
});
|
|
3507
3583
|
|
|
3508
3584
|
// src/components/TagInput.tsx
|
|
3509
|
-
import { forwardRef as
|
|
3510
|
-
import { Fragment as Fragment22, jsx as
|
|
3511
|
-
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) {
|
|
3512
3588
|
const [tags, setTags] = useControllable(value, defaultValue, onChange);
|
|
3513
3589
|
const [draft, setDraft] = useState12("");
|
|
3514
3590
|
const add = (raw) => {
|
|
@@ -3526,14 +3602,14 @@ var TagInput = forwardRef92(function TagInput2({ value, defaultValue = [], onCha
|
|
|
3526
3602
|
}
|
|
3527
3603
|
};
|
|
3528
3604
|
const open = suggestions?.filter((s) => !tags.includes(s)) ?? [];
|
|
3529
|
-
return /* @__PURE__ */
|
|
3530
|
-
/* @__PURE__ */
|
|
3531
|
-
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: [
|
|
3532
3608
|
tag,
|
|
3533
3609
|
" ",
|
|
3534
|
-
/* @__PURE__ */
|
|
3610
|
+
/* @__PURE__ */ jsx98("button", { className: "oc-tag-remove", type: "button", "aria-label": `Remove ${tag}`, disabled, onClick: () => remove(tag), children: "\xD7" })
|
|
3535
3611
|
] }, tag)),
|
|
3536
|
-
/* @__PURE__ */
|
|
3612
|
+
/* @__PURE__ */ jsx98(
|
|
3537
3613
|
"input",
|
|
3538
3614
|
{
|
|
3539
3615
|
type: "text",
|
|
@@ -3547,43 +3623,43 @@ var TagInput = forwardRef92(function TagInput2({ value, defaultValue = [], onCha
|
|
|
3547
3623
|
}
|
|
3548
3624
|
)
|
|
3549
3625
|
] }),
|
|
3550
|
-
open.length > 0 && /* @__PURE__ */
|
|
3626
|
+
open.length > 0 && /* @__PURE__ */ jsx98("div", { className: "oc-tag-suggestions", children: open.map((s) => /* @__PURE__ */ jsx98("button", { type: "button", disabled, onClick: () => add(s), children: s }, s)) })
|
|
3551
3627
|
] });
|
|
3552
3628
|
});
|
|
3553
3629
|
|
|
3554
3630
|
// src/components/TerminalLog.tsx
|
|
3555
|
-
import { forwardRef as
|
|
3556
|
-
import { jsx as
|
|
3557
|
-
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) {
|
|
3558
3634
|
const body = useRef11(null);
|
|
3559
3635
|
useEffect8(() => {
|
|
3560
3636
|
if (autoScroll && body.current) body.current.scrollTop = body.current.scrollHeight;
|
|
3561
3637
|
}, [lines.length, autoScroll]);
|
|
3562
3638
|
const vars = height ? { "--oc-terminal-log-height": height } : void 0;
|
|
3563
|
-
return /* @__PURE__ */
|
|
3564
|
-
/* @__PURE__ */
|
|
3565
|
-
/* @__PURE__ */
|
|
3566
|
-
/* @__PURE__ */
|
|
3567
|
-
/* @__PURE__ */
|
|
3568
|
-
title != null && /* @__PURE__ */
|
|
3569
|
-
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 })
|
|
3570
3646
|
] }),
|
|
3571
|
-
/* @__PURE__ */
|
|
3572
|
-
lines.map((l, i) => /* @__PURE__ */
|
|
3573
|
-
l.time && /* @__PURE__ */
|
|
3574
|
-
/* @__PURE__ */
|
|
3575
|
-
/* @__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 })
|
|
3576
3652
|
] }, i)),
|
|
3577
|
-
prompt != null && prompt !== false && /* @__PURE__ */
|
|
3653
|
+
prompt != null && prompt !== false && /* @__PURE__ */ jsx99("p", { className: "oc-terminal-log__prompt", children: prompt === true ? null : prompt })
|
|
3578
3654
|
] })
|
|
3579
3655
|
] });
|
|
3580
3656
|
});
|
|
3581
3657
|
|
|
3582
3658
|
// src/components/Textarea.tsx
|
|
3583
|
-
import { forwardRef as
|
|
3584
|
-
import { jsx as
|
|
3585
|
-
var Textarea =
|
|
3586
|
-
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(
|
|
3587
3663
|
"textarea",
|
|
3588
3664
|
{
|
|
3589
3665
|
ref,
|
|
@@ -3595,24 +3671,24 @@ var Textarea = forwardRef94(function Textarea2({ error, className, ...rest }, re
|
|
|
3595
3671
|
});
|
|
3596
3672
|
|
|
3597
3673
|
// src/components/ThemeSwitch.tsx
|
|
3598
|
-
import { forwardRef as
|
|
3599
|
-
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";
|
|
3600
3676
|
var LABELS = { system: "System", light: "Light", dark: "Dark" };
|
|
3601
|
-
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) {
|
|
3602
3678
|
const auto = useId31();
|
|
3603
3679
|
const group = name ?? `oc-theme-${auto.replace(/:/g, "")}`;
|
|
3604
3680
|
const [current, setCurrent] = useControllable(value, defaultValue, onChange);
|
|
3605
|
-
const items = modes.map((m) => /* @__PURE__ */
|
|
3606
|
-
/* @__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) }),
|
|
3607
3683
|
" ",
|
|
3608
3684
|
LABELS[m]
|
|
3609
3685
|
] }, m));
|
|
3610
|
-
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 });
|
|
3611
3687
|
});
|
|
3612
3688
|
|
|
3613
3689
|
// src/components/TimeInput.tsx
|
|
3614
|
-
import { forwardRef as
|
|
3615
|
-
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";
|
|
3616
3692
|
function formatTime24h(raw) {
|
|
3617
3693
|
const digits = raw.replace(/\D/g, "").slice(0, 4);
|
|
3618
3694
|
return digits.length <= 2 ? digits : `${digits.slice(0, 2)}:${digits.slice(2)}`;
|
|
@@ -3623,11 +3699,11 @@ function completeTime(text) {
|
|
|
3623
3699
|
if (digits.length === 3) return `0${digits[0]}:${digits.slice(1)}`;
|
|
3624
3700
|
return text;
|
|
3625
3701
|
}
|
|
3626
|
-
var TimeInput =
|
|
3702
|
+
var TimeInput = forwardRef100(function TimeInput2({ value, defaultValue, onChange, slots, error, className, onBlur, placeholder = "hh:mm", ...rest }, ref) {
|
|
3627
3703
|
const listId = `oc-time-${useId32().replace(/:/g, "")}`;
|
|
3628
3704
|
const [current, setCurrent] = useControllable(value, defaultValue ?? "", onChange);
|
|
3629
|
-
return /* @__PURE__ */
|
|
3630
|
-
/* @__PURE__ */
|
|
3705
|
+
return /* @__PURE__ */ jsxs83(Fragment23, { children: [
|
|
3706
|
+
/* @__PURE__ */ jsx102(
|
|
3631
3707
|
"input",
|
|
3632
3708
|
{
|
|
3633
3709
|
ref,
|
|
@@ -3652,37 +3728,60 @@ var TimeInput = forwardRef96(function TimeInput2({ value, defaultValue, onChange
|
|
|
3652
3728
|
...rest
|
|
3653
3729
|
}
|
|
3654
3730
|
),
|
|
3655
|
-
slots?.length ? /* @__PURE__ */
|
|
3731
|
+
slots?.length ? /* @__PURE__ */ jsx102("datalist", { id: listId, children: slots.map((s) => /* @__PURE__ */ jsx102("option", { value: s }, s)) }) : null
|
|
3656
3732
|
] });
|
|
3657
3733
|
});
|
|
3658
3734
|
|
|
3659
3735
|
// src/components/Timeline.tsx
|
|
3660
|
-
import { forwardRef as
|
|
3661
|
-
import { jsx as
|
|
3662
|
-
var Timeline =
|
|
3663
|
-
return /* @__PURE__ */
|
|
3664
|
-
item.dateTime ? /* @__PURE__ */
|
|
3665
|
-
item.title != null && /* @__PURE__ */
|
|
3666
|
-
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 })
|
|
3667
3743
|
] }, i)) });
|
|
3668
3744
|
});
|
|
3669
3745
|
|
|
3746
|
+
// src/components/Titlebar.tsx
|
|
3747
|
+
import { forwardRef as forwardRef102 } from "react";
|
|
3748
|
+
import { jsx as jsx104, jsxs as jsxs85 } from "react/jsx-runtime";
|
|
3749
|
+
var TitlebarWindow = forwardRef102(function TitlebarWindow2({ className, ...rest }, ref) {
|
|
3750
|
+
return /* @__PURE__ */ jsx104("div", { ref, className: cx("oc-titlebar-window", className), ...rest });
|
|
3751
|
+
});
|
|
3752
|
+
var Titlebar = forwardRef102(function Titlebar2({ title, subtitle, icon, bordered, size = "md", className, children, ...rest }, ref) {
|
|
3753
|
+
return /* @__PURE__ */ jsxs85("header", { ref, className: cx("oc-titlebar", bordered && "oc-titlebar--bordered", size === "sm" && "oc-titlebar--sm", className), ...rest, children: [
|
|
3754
|
+
/* @__PURE__ */ jsxs85("div", { className: "oc-titlebar__main", children: [
|
|
3755
|
+
icon != null && /* @__PURE__ */ jsx104("span", { className: "oc-titlebar__icon", "aria-hidden": "true", children: icon }),
|
|
3756
|
+
title != null && /* @__PURE__ */ jsx104("span", { className: "oc-titlebar__title", children: title }),
|
|
3757
|
+
subtitle != null && /* @__PURE__ */ jsx104("span", { className: "oc-titlebar__subtitle", children: subtitle })
|
|
3758
|
+
] }),
|
|
3759
|
+
children != null && /* @__PURE__ */ jsx104("div", { className: "oc-titlebar__actions", children })
|
|
3760
|
+
] });
|
|
3761
|
+
});
|
|
3762
|
+
var TitlebarButton = forwardRef102(function TitlebarButton2({ label, close, className, type = "button", ...rest }, ref) {
|
|
3763
|
+
return /* @__PURE__ */ jsx104("button", { ref, type, "aria-label": label, title: label, className: cx("oc-titlebar__btn", close && "oc-titlebar__btn--close", className), ...rest });
|
|
3764
|
+
});
|
|
3765
|
+
var TitlebarBody = forwardRef102(function TitlebarBody2({ className, ...rest }, ref) {
|
|
3766
|
+
return /* @__PURE__ */ jsx104("div", { ref, className: cx("oc-titlebar-body", className), ...rest });
|
|
3767
|
+
});
|
|
3768
|
+
|
|
3670
3769
|
// src/components/Toast.tsx
|
|
3671
|
-
import { createContext as createContext2, forwardRef as
|
|
3672
|
-
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";
|
|
3673
3772
|
var GLYPHS3 = { success: "\u2713", error: "!", warning: "!", info: "i" };
|
|
3674
|
-
var Toast =
|
|
3675
|
-
return /* @__PURE__ */
|
|
3676
|
-
/* @__PURE__ */
|
|
3677
|
-
/* @__PURE__ */
|
|
3678
|
-
/* @__PURE__ */
|
|
3679
|
-
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 })
|
|
3680
3779
|
] }),
|
|
3681
|
-
onDismiss && /* @__PURE__ */
|
|
3780
|
+
onDismiss && /* @__PURE__ */ jsx105("button", { className: "oc-toast-close", type: "button", "aria-label": dismissLabel, onClick: onDismiss, children: "\xD7" })
|
|
3682
3781
|
] });
|
|
3683
3782
|
});
|
|
3684
|
-
var ToastContainer =
|
|
3685
|
-
return /* @__PURE__ */
|
|
3783
|
+
var ToastContainer = forwardRef103(function ToastContainer2({ top, static: isStatic, className, ...rest }, ref) {
|
|
3784
|
+
return /* @__PURE__ */ jsx105(
|
|
3686
3785
|
"div",
|
|
3687
3786
|
{
|
|
3688
3787
|
ref,
|
|
@@ -3722,9 +3821,9 @@ function ToastProvider({ children, top, duration = 5e3, limit = 5 }) {
|
|
|
3722
3821
|
return () => map.forEach(clearTimeout);
|
|
3723
3822
|
}, []);
|
|
3724
3823
|
const api = useMemo2(() => ({ toast, dismiss }), [toast, dismiss]);
|
|
3725
|
-
return /* @__PURE__ */
|
|
3824
|
+
return /* @__PURE__ */ jsxs86(ToastContext.Provider, { value: api, children: [
|
|
3726
3825
|
children,
|
|
3727
|
-
/* @__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)) })
|
|
3728
3827
|
] });
|
|
3729
3828
|
}
|
|
3730
3829
|
function useToast() {
|
|
@@ -3734,41 +3833,41 @@ function useToast() {
|
|
|
3734
3833
|
}
|
|
3735
3834
|
|
|
3736
3835
|
// src/components/ToggleField.tsx
|
|
3737
|
-
import { forwardRef as
|
|
3738
|
-
import { jsx as
|
|
3739
|
-
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) {
|
|
3740
3839
|
const descId = `oc-toggle-field-${useId33().replace(/:/g, "")}`;
|
|
3741
|
-
return /* @__PURE__ */
|
|
3742
|
-
/* @__PURE__ */
|
|
3743
|
-
/* @__PURE__ */
|
|
3744
|
-
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 })
|
|
3745
3844
|
] }),
|
|
3746
|
-
/* @__PURE__ */
|
|
3747
|
-
/* @__PURE__ */
|
|
3748
|
-
/* @__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" })
|
|
3749
3848
|
] })
|
|
3750
3849
|
] });
|
|
3751
3850
|
});
|
|
3752
3851
|
|
|
3753
3852
|
// src/components/Tooltip.tsx
|
|
3754
|
-
import { forwardRef as
|
|
3755
|
-
import { jsx as
|
|
3756
|
-
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) {
|
|
3757
3856
|
const classes = cx("oc-tooltip", multiline && !heading && "oc-tooltip--multiline", side && side !== "top" && `oc-tooltip--${side}`, className);
|
|
3758
|
-
if (!heading) return /* @__PURE__ */
|
|
3759
|
-
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: [
|
|
3760
3859
|
children,
|
|
3761
|
-
/* @__PURE__ */
|
|
3762
|
-
/* @__PURE__ */
|
|
3860
|
+
/* @__PURE__ */ jsxs88("span", { className: "oc-tooltip__content", role: "tooltip", children: [
|
|
3861
|
+
/* @__PURE__ */ jsx107("span", { className: "oc-tooltip__title", children: heading }),
|
|
3763
3862
|
content
|
|
3764
3863
|
] })
|
|
3765
3864
|
] });
|
|
3766
3865
|
});
|
|
3767
3866
|
|
|
3768
3867
|
// src/components/TopProgress.tsx
|
|
3769
|
-
import { forwardRef as
|
|
3770
|
-
import { jsx as
|
|
3771
|
-
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) {
|
|
3772
3871
|
const [phase, setPhase] = useState14(active ? "active" : "hidden");
|
|
3773
3872
|
useEffect10(() => {
|
|
3774
3873
|
if (active) {
|
|
@@ -3787,149 +3886,158 @@ var TopProgress = forwardRef101(function TopProgress2({ active = true, tone = "d
|
|
|
3787
3886
|
phase === "done" && "is-done",
|
|
3788
3887
|
className
|
|
3789
3888
|
);
|
|
3790
|
-
return /* @__PURE__ */
|
|
3889
|
+
return /* @__PURE__ */ jsx108("progress", { ref, className: cls, hidden: phase === "hidden", ...rest });
|
|
3791
3890
|
});
|
|
3792
3891
|
|
|
3793
3892
|
// src/components/Tree.tsx
|
|
3794
|
-
import { forwardRef as
|
|
3795
|
-
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";
|
|
3796
3895
|
function RowContent({ item }) {
|
|
3797
3896
|
const isLink = item.href !== void 0;
|
|
3798
|
-
return /* @__PURE__ */
|
|
3799
|
-
item.icon != null && /* @__PURE__ */
|
|
3800
|
-
isLink ? /* @__PURE__ */
|
|
3801
|
-
item.count != null && /* @__PURE__ */
|
|
3802
|
-
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 })
|
|
3803
3902
|
] });
|
|
3804
3903
|
}
|
|
3805
3904
|
function TreeNode({ item }) {
|
|
3806
3905
|
const rowCurrent = item.current && item.href === void 0 ? "true" : void 0;
|
|
3807
3906
|
const rowCls = cx("oc-tree-row", item.muted && "is-muted");
|
|
3808
3907
|
if (!item.children?.length) {
|
|
3809
|
-
return /* @__PURE__ */
|
|
3908
|
+
return /* @__PURE__ */ jsx109("li", { children: /* @__PURE__ */ jsx109("div", { className: rowCls, "aria-current": rowCurrent, children: /* @__PURE__ */ jsx109(RowContent, { item }) }) });
|
|
3810
3909
|
}
|
|
3811
|
-
return /* @__PURE__ */
|
|
3812
|
-
/* @__PURE__ */
|
|
3813
|
-
/* @__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 })
|
|
3814
3913
|
] }) });
|
|
3815
3914
|
}
|
|
3816
3915
|
function TreeList({ items }) {
|
|
3817
|
-
return /* @__PURE__ */
|
|
3916
|
+
return /* @__PURE__ */ jsx109("ul", { className: "oc-tree-list", children: items.map((item, i) => /* @__PURE__ */ jsx109(TreeNode, { item }, i)) });
|
|
3818
3917
|
}
|
|
3819
|
-
var Tree =
|
|
3820
|
-
return /* @__PURE__ */
|
|
3821
|
-
head != null && /* @__PURE__ */
|
|
3822
|
-
/* @__PURE__ */
|
|
3823
|
-
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 })
|
|
3824
3923
|
] }),
|
|
3825
|
-
/* @__PURE__ */
|
|
3924
|
+
/* @__PURE__ */ jsx109(TreeList, { items })
|
|
3826
3925
|
] });
|
|
3827
3926
|
});
|
|
3828
3927
|
|
|
3829
3928
|
// src/components/UpgradeBanner.tsx
|
|
3830
|
-
import { forwardRef as
|
|
3831
|
-
import { Fragment as Fragment25, jsx as
|
|
3832
|
-
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) {
|
|
3833
3932
|
const cls = cx("oc-upgrade-banner", premium && "oc-upgrade-banner--premium", compact && "oc-upgrade-banner--compact", className);
|
|
3834
3933
|
const body = text ?? children;
|
|
3835
|
-
return /* @__PURE__ */
|
|
3836
|
-
icon != null && /* @__PURE__ */
|
|
3837
|
-
/* @__PURE__ */
|
|
3838
|
-
/* @__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: [
|
|
3839
3938
|
title,
|
|
3840
|
-
plan != null && /* @__PURE__ */
|
|
3939
|
+
plan != null && /* @__PURE__ */ jsxs90(Fragment25, { children: [
|
|
3841
3940
|
" ",
|
|
3842
|
-
/* @__PURE__ */
|
|
3941
|
+
/* @__PURE__ */ jsx110("span", { className: "oc-upgrade-banner-plan", children: plan })
|
|
3843
3942
|
] })
|
|
3844
3943
|
] }),
|
|
3845
|
-
body != null && /* @__PURE__ */
|
|
3846
|
-
usage && /* @__PURE__ */
|
|
3847
|
-
/* @__PURE__ */
|
|
3848
|
-
/* @__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: [
|
|
3849
3948
|
usage.value,
|
|
3850
3949
|
" of ",
|
|
3851
3950
|
usage.max
|
|
3852
3951
|
] }),
|
|
3853
|
-
/* @__PURE__ */
|
|
3952
|
+
/* @__PURE__ */ jsxs90("span", { children: [
|
|
3854
3953
|
usage.value,
|
|
3855
3954
|
" / ",
|
|
3856
3955
|
usage.max
|
|
3857
3956
|
] })
|
|
3858
3957
|
] })
|
|
3859
3958
|
] }),
|
|
3860
|
-
actions != null && /* @__PURE__ */
|
|
3861
|
-
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" })
|
|
3862
3961
|
] });
|
|
3863
3962
|
});
|
|
3864
3963
|
|
|
3865
3964
|
// src/components/User.tsx
|
|
3866
|
-
import { forwardRef as
|
|
3867
|
-
import { jsx as
|
|
3868
|
-
var User =
|
|
3869
|
-
return /* @__PURE__ */
|
|
3870
|
-
/* @__PURE__ */
|
|
3871
|
-
/* @__PURE__ */
|
|
3872
|
-
/* @__PURE__ */
|
|
3873
|
-
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 })
|
|
3874
3973
|
] })
|
|
3875
3974
|
] });
|
|
3876
3975
|
});
|
|
3877
3976
|
|
|
3878
3977
|
// src/components/VersionBanner.tsx
|
|
3879
|
-
import { forwardRef as
|
|
3880
|
-
import { jsx as
|
|
3881
|
-
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) {
|
|
3882
3981
|
if (!version) return null;
|
|
3883
3982
|
const cls = cx("oc-version-banner", tone !== "warning" && `oc-version-banner--${tone}`, floating && "oc-version-banner--floating", className);
|
|
3884
|
-
return /* @__PURE__ */
|
|
3885
|
-
/* @__PURE__ */
|
|
3886
|
-
/* @__PURE__ */
|
|
3887
|
-
/* @__PURE__ */
|
|
3888
|
-
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 })
|
|
3889
3988
|
] });
|
|
3890
3989
|
});
|
|
3891
3990
|
|
|
3991
|
+
// src/components/Watermark.tsx
|
|
3992
|
+
import { forwardRef as forwardRef111, Fragment as Fragment26 } from "react";
|
|
3993
|
+
import { jsx as jsx113 } from "react/jsx-runtime";
|
|
3994
|
+
var Watermark = forwardRef111(function Watermark2({ text = "Concept", variant = "diagonal", tone = "default", repeat = 12, mono = false, className, ...rest }, ref) {
|
|
3995
|
+
const classes = cx("oc-watermark", variant !== "diagonal" && `oc-watermark--${variant}`, tone !== "default" && `oc-watermark--${tone}`, mono && "oc-watermark--mono", className);
|
|
3996
|
+
const count = variant === "tile" ? Math.max(1, repeat) : 1;
|
|
3997
|
+
return /* @__PURE__ */ jsx113("span", { ref, className: classes, "aria-hidden": "true", ...rest, children: Array.from({ length: count }, (_, i) => typeof text === "string" || typeof text === "number" ? /* @__PURE__ */ jsx113("span", { children: text }, i) : /* @__PURE__ */ jsx113(Fragment26, { children: text }, i)) });
|
|
3998
|
+
});
|
|
3999
|
+
|
|
3892
4000
|
// src/blocks/BlockAboutTimeline.tsx
|
|
3893
|
-
import { forwardRef as
|
|
3894
|
-
import { jsx as
|
|
3895
|
-
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) {
|
|
3896
4004
|
const titleId = `oc-about-title-${useId34().replace(/[^\w-]/g, "")}`;
|
|
3897
|
-
return /* @__PURE__ */
|
|
3898
|
-
/* @__PURE__ */
|
|
3899
|
-
image && /* @__PURE__ */
|
|
3900
|
-
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 })
|
|
3901
4009
|
] }),
|
|
3902
|
-
/* @__PURE__ */
|
|
3903
|
-
eyebrow != null && /* @__PURE__ */
|
|
3904
|
-
/* @__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 }),
|
|
3905
4013
|
children,
|
|
3906
|
-
timeline.length > 0 && /* @__PURE__ */
|
|
4014
|
+
timeline.length > 0 && /* @__PURE__ */ jsx114(Timeline, { items: timeline })
|
|
3907
4015
|
] })
|
|
3908
4016
|
] }) });
|
|
3909
4017
|
});
|
|
3910
4018
|
|
|
3911
4019
|
// src/blocks/BlockAppHeader.tsx
|
|
3912
|
-
import { forwardRef as
|
|
3913
|
-
import { jsx as
|
|
3914
|
-
var BlockAppHeader =
|
|
3915
|
-
return /* @__PURE__ */
|
|
3916
|
-
toggleFor && /* @__PURE__ */
|
|
3917
|
-
/* @__PURE__ */
|
|
3918
|
-
/* @__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 })
|
|
3919
4027
|
] }),
|
|
3920
|
-
title != null && /* @__PURE__ */
|
|
3921
|
-
nav && /* @__PURE__ */
|
|
3922
|
-
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 })
|
|
3923
4031
|
] });
|
|
3924
4032
|
});
|
|
3925
4033
|
|
|
3926
4034
|
// src/blocks/BlockAppShell.tsx
|
|
3927
|
-
import { forwardRef as
|
|
3928
|
-
import { jsx as
|
|
3929
|
-
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) {
|
|
3930
4038
|
const auto = useId35();
|
|
3931
4039
|
const id = toggleId ?? `oc-shell-toggle-${auto.replace(/:/g, "")}`;
|
|
3932
|
-
return /* @__PURE__ */
|
|
4040
|
+
return /* @__PURE__ */ jsxs95(
|
|
3933
4041
|
"div",
|
|
3934
4042
|
{
|
|
3935
4043
|
ref,
|
|
@@ -3937,14 +4045,14 @@ var BlockAppShell = forwardRef108(function BlockAppShell2({ sidebar, header, bre
|
|
|
3937
4045
|
style: height ? { "--oc-block-shell-height": height, ...style } : style,
|
|
3938
4046
|
...rest,
|
|
3939
4047
|
children: [
|
|
3940
|
-
/* @__PURE__ */
|
|
4048
|
+
/* @__PURE__ */ jsx116("input", { className: "oc-block-shell-toggle", type: "checkbox", id, "aria-label": "Collapse sidebar" }),
|
|
3941
4049
|
sidebar,
|
|
3942
|
-
/* @__PURE__ */
|
|
4050
|
+
/* @__PURE__ */ jsxs95("div", { className: "oc-block-shell-main", children: [
|
|
3943
4051
|
header,
|
|
3944
|
-
breadcrumbs && /* @__PURE__ */
|
|
3945
|
-
(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)
|
|
3946
4054
|
) }) }) }),
|
|
3947
|
-
/* @__PURE__ */
|
|
4055
|
+
/* @__PURE__ */ jsx116("main", { className: "oc-block-shell-content", children })
|
|
3948
4056
|
] })
|
|
3949
4057
|
]
|
|
3950
4058
|
}
|
|
@@ -3952,41 +4060,41 @@ var BlockAppShell = forwardRef108(function BlockAppShell2({ sidebar, header, bre
|
|
|
3952
4060
|
});
|
|
3953
4061
|
|
|
3954
4062
|
// src/blocks/BlockAuth.tsx
|
|
3955
|
-
import { forwardRef as
|
|
3956
|
-
import { Fragment as
|
|
3957
|
-
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) {
|
|
3958
4066
|
const id = useId36().replace(/:/g, "");
|
|
3959
4067
|
const submit = (e) => {
|
|
3960
4068
|
e.preventDefault();
|
|
3961
4069
|
const data = new FormData(e.currentTarget);
|
|
3962
4070
|
onSubmit?.({ email: String(data.get("email") ?? ""), password: String(data.get("password") ?? "") });
|
|
3963
4071
|
};
|
|
3964
|
-
return /* @__PURE__ */
|
|
3965
|
-
/* @__PURE__ */
|
|
3966
|
-
/* @__PURE__ */
|
|
3967
|
-
subtitle != null && /* @__PURE__ */
|
|
3968
|
-
/* @__PURE__ */
|
|
3969
|
-
/* @__PURE__ */
|
|
3970
|
-
/* @__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" })
|
|
3971
4079
|
] }),
|
|
3972
|
-
/* @__PURE__ */
|
|
3973
|
-
/* @__PURE__ */
|
|
3974
|
-
/* @__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: "********" })
|
|
3975
4083
|
] }),
|
|
3976
|
-
/* @__PURE__ */
|
|
3977
|
-
socialLabel != null && /* @__PURE__ */
|
|
3978
|
-
/* @__PURE__ */
|
|
3979
|
-
/* @__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 })
|
|
3980
4088
|
] })
|
|
3981
4089
|
] }),
|
|
3982
|
-
footer != null && /* @__PURE__ */
|
|
4090
|
+
footer != null && /* @__PURE__ */ jsx117("div", { className: "oc-block-auth-footer", children: footer })
|
|
3983
4091
|
] });
|
|
3984
4092
|
});
|
|
3985
4093
|
|
|
3986
4094
|
// src/blocks/BlockAuthSplit.tsx
|
|
3987
|
-
import { forwardRef as
|
|
3988
|
-
import { jsx as
|
|
3989
|
-
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({
|
|
3990
4098
|
logo,
|
|
3991
4099
|
logoHref = "#",
|
|
3992
4100
|
quote,
|
|
@@ -4011,60 +4119,60 @@ var BlockAuthSplit = forwardRef110(function BlockAuthSplit2({
|
|
|
4011
4119
|
remember: data.get("remember") != null
|
|
4012
4120
|
});
|
|
4013
4121
|
};
|
|
4014
|
-
return /* @__PURE__ */
|
|
4015
|
-
/* @__PURE__ */
|
|
4016
|
-
logo != null && /* @__PURE__ */
|
|
4017
|
-
quote != null && /* @__PURE__ */
|
|
4018
|
-
/* @__PURE__ */
|
|
4019
|
-
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 })
|
|
4020
4128
|
] })
|
|
4021
4129
|
] }),
|
|
4022
|
-
/* @__PURE__ */
|
|
4023
|
-
/* @__PURE__ */
|
|
4024
|
-
subtitle != null && /* @__PURE__ */
|
|
4025
|
-
/* @__PURE__ */
|
|
4026
|
-
/* @__PURE__ */
|
|
4027
|
-
/* @__PURE__ */
|
|
4028
|
-
/* @__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 })
|
|
4029
4137
|
] }),
|
|
4030
|
-
/* @__PURE__ */
|
|
4031
|
-
/* @__PURE__ */
|
|
4032
|
-
/* @__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 })
|
|
4033
4141
|
] }),
|
|
4034
|
-
/* @__PURE__ */
|
|
4035
|
-
/* @__PURE__ */
|
|
4036
|
-
/* @__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" }),
|
|
4037
4145
|
" ",
|
|
4038
4146
|
rememberLabel
|
|
4039
4147
|
] }),
|
|
4040
|
-
/* @__PURE__ */
|
|
4148
|
+
/* @__PURE__ */ jsx118("a", { className: "oc-link", href: forgotHref, children: forgotLabel })
|
|
4041
4149
|
] }),
|
|
4042
|
-
/* @__PURE__ */
|
|
4150
|
+
/* @__PURE__ */ jsx118("button", { className: "oc-btn", type: "submit", style: { width: "100%" }, children: submitLabel })
|
|
4043
4151
|
] })
|
|
4044
4152
|
] }) })
|
|
4045
4153
|
] });
|
|
4046
4154
|
});
|
|
4047
4155
|
|
|
4048
4156
|
// src/blocks/BlockContactGrid.tsx
|
|
4049
|
-
import { forwardRef as
|
|
4050
|
-
import { jsx as
|
|
4051
|
-
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) {
|
|
4052
4160
|
const titleId = `oc-contact-title-${useId38().replace(/[^\w-]/g, "")}`;
|
|
4053
|
-
return /* @__PURE__ */
|
|
4054
|
-
(eyebrow != null || title != null || lead != null) && /* @__PURE__ */
|
|
4055
|
-
eyebrow != null && /* @__PURE__ */
|
|
4056
|
-
title != null && /* @__PURE__ */
|
|
4057
|
-
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 })
|
|
4058
4166
|
] }),
|
|
4059
|
-
/* @__PURE__ */
|
|
4167
|
+
/* @__PURE__ */ jsx119("div", { className: "oc-block-contact-grid", children: cards.map((card, i) => {
|
|
4060
4168
|
const Card2 = card.address ? "address" : "article";
|
|
4061
4169
|
const Title = card.address ? "span" : "h3";
|
|
4062
4170
|
const Line = card.address ? "span" : "p";
|
|
4063
|
-
return /* @__PURE__ */
|
|
4064
|
-
card.icon != null && /* @__PURE__ */
|
|
4065
|
-
/* @__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 }),
|
|
4066
4174
|
card.lines.map(
|
|
4067
|
-
(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)
|
|
4068
4176
|
)
|
|
4069
4177
|
] }, i);
|
|
4070
4178
|
}) })
|
|
@@ -4072,160 +4180,160 @@ var BlockContactGrid = forwardRef111(function BlockContactGrid2({ eyebrow, title
|
|
|
4072
4180
|
});
|
|
4073
4181
|
|
|
4074
4182
|
// src/blocks/BlockCta.tsx
|
|
4075
|
-
import { forwardRef as
|
|
4076
|
-
import { jsx as
|
|
4077
|
-
var BlockCta =
|
|
4078
|
-
return /* @__PURE__ */
|
|
4079
|
-
/* @__PURE__ */
|
|
4080
|
-
description != null && /* @__PURE__ */
|
|
4081
|
-
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 })
|
|
4082
4190
|
] });
|
|
4083
4191
|
});
|
|
4084
4192
|
|
|
4085
4193
|
// src/blocks/BlockDataTable.tsx
|
|
4086
|
-
import { forwardRef as
|
|
4087
|
-
import { jsx as
|
|
4088
|
-
var BlockDataTable =
|
|
4089
|
-
return /* @__PURE__ */
|
|
4090
|
-
/* @__PURE__ */
|
|
4091
|
-
/* @__PURE__ */
|
|
4092
|
-
title != null && /* @__PURE__ */
|
|
4093
|
-
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 })
|
|
4094
4202
|
] }),
|
|
4095
|
-
actions != null && /* @__PURE__ */
|
|
4203
|
+
actions != null && /* @__PURE__ */ jsx121("div", { children: actions })
|
|
4096
4204
|
] }),
|
|
4097
|
-
/* @__PURE__ */
|
|
4098
|
-
toolbar != null && /* @__PURE__ */
|
|
4099
|
-
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 }),
|
|
4100
4208
|
children,
|
|
4101
|
-
footer != null && /* @__PURE__ */
|
|
4209
|
+
footer != null && /* @__PURE__ */ jsx121("div", { className: "oc-table-footer", children: footer })
|
|
4102
4210
|
] })
|
|
4103
4211
|
] });
|
|
4104
4212
|
});
|
|
4105
4213
|
function BlockDataTableSpacer() {
|
|
4106
|
-
return /* @__PURE__ */
|
|
4214
|
+
return /* @__PURE__ */ jsx121("span", { className: "oc-table-toolbar-spacer" });
|
|
4107
4215
|
}
|
|
4108
4216
|
function FilterPills({ className, ...rest }) {
|
|
4109
|
-
return /* @__PURE__ */
|
|
4217
|
+
return /* @__PURE__ */ jsx121("div", { className: cx("oc-filter-pills", className), role: "group", ...rest });
|
|
4110
4218
|
}
|
|
4111
4219
|
function FilterPill({ current, className, ...rest }) {
|
|
4112
|
-
return /* @__PURE__ */
|
|
4220
|
+
return /* @__PURE__ */ jsx121("a", { className: cx("oc-filter-pill", className), "aria-current": current ? "true" : void 0, ...rest });
|
|
4113
4221
|
}
|
|
4114
4222
|
|
|
4115
4223
|
// src/blocks/BlockFaq.tsx
|
|
4116
|
-
import { forwardRef as
|
|
4117
|
-
import { jsx as
|
|
4118
|
-
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) {
|
|
4119
4227
|
const auto = useId39().replace(/[^\w-]/g, "");
|
|
4120
4228
|
const group = name ?? `oc-faq-${auto}`;
|
|
4121
4229
|
const titleId = `oc-faq-title-${auto}`;
|
|
4122
|
-
return /* @__PURE__ */
|
|
4123
|
-
/* @__PURE__ */
|
|
4124
|
-
eyebrow != null && /* @__PURE__ */
|
|
4125
|
-
/* @__PURE__ */
|
|
4126
|
-
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 })
|
|
4127
4235
|
] }),
|
|
4128
|
-
/* @__PURE__ */
|
|
4236
|
+
/* @__PURE__ */ jsx122("div", { className: "oc-accordion oc-block-faq-list", children: items.map((item, i) => (
|
|
4129
4237
|
// "name" groups the items; React 19 passes it through, older versions too (unknown attribute on details).
|
|
4130
|
-
/* @__PURE__ */
|
|
4131
|
-
/* @__PURE__ */
|
|
4132
|
-
/* @__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 })
|
|
4133
4241
|
] }, i)
|
|
4134
4242
|
)) }),
|
|
4135
|
-
more != null && /* @__PURE__ */
|
|
4243
|
+
more != null && /* @__PURE__ */ jsx122("p", { className: "oc-block-faq-more", children: more })
|
|
4136
4244
|
] }) });
|
|
4137
4245
|
});
|
|
4138
4246
|
|
|
4139
4247
|
// src/blocks/BlockFeatures.tsx
|
|
4140
|
-
import { forwardRef as
|
|
4141
|
-
import { jsx as
|
|
4142
|
-
var BlockFeatures =
|
|
4143
|
-
return /* @__PURE__ */
|
|
4144
|
-
title != null && /* @__PURE__ */
|
|
4145
|
-
description != null && /* @__PURE__ */
|
|
4146
|
-
/* @__PURE__ */
|
|
4147
|
-
f.icon != null && /* @__PURE__ */
|
|
4148
|
-
/* @__PURE__ */
|
|
4149
|
-
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 })
|
|
4150
4258
|
] }, i)) })
|
|
4151
4259
|
] });
|
|
4152
4260
|
});
|
|
4153
4261
|
|
|
4154
4262
|
// src/blocks/BlockFooter.tsx
|
|
4155
|
-
import { forwardRef as
|
|
4156
|
-
import { jsx as
|
|
4157
|
-
var BlockFooter =
|
|
4158
|
-
return /* @__PURE__ */
|
|
4159
|
-
/* @__PURE__ */
|
|
4160
|
-
/* @__PURE__ */
|
|
4161
|
-
/* @__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)) })
|
|
4162
4270
|
] }, i)) }),
|
|
4163
|
-
(copyright != null || credit != null) && /* @__PURE__ */
|
|
4164
|
-
/* @__PURE__ */
|
|
4165
|
-
/* @__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 })
|
|
4166
4274
|
] })
|
|
4167
4275
|
] });
|
|
4168
4276
|
});
|
|
4169
4277
|
|
|
4170
4278
|
// src/blocks/BlockFormPage.tsx
|
|
4171
|
-
import { forwardRef as
|
|
4172
|
-
import { jsx as
|
|
4173
|
-
var BlockFormPage =
|
|
4174
|
-
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: [
|
|
4175
4283
|
children,
|
|
4176
|
-
actions != null && /* @__PURE__ */
|
|
4284
|
+
actions != null && /* @__PURE__ */ jsx125("div", { className: "oc-block-formpage-actions", children: actions })
|
|
4177
4285
|
] });
|
|
4178
4286
|
});
|
|
4179
4287
|
function BlockFormPageGrid({ className, ...rest }) {
|
|
4180
|
-
return /* @__PURE__ */
|
|
4288
|
+
return /* @__PURE__ */ jsx125("div", { className: cx("oc-block-formpage-grid", className), ...rest });
|
|
4181
4289
|
}
|
|
4182
4290
|
|
|
4183
4291
|
// src/blocks/BlockHero.tsx
|
|
4184
|
-
import { forwardRef as
|
|
4185
|
-
import { jsx as
|
|
4186
|
-
var BlockHero =
|
|
4187
|
-
return /* @__PURE__ */
|
|
4188
|
-
badge != null && /* @__PURE__ */
|
|
4189
|
-
/* @__PURE__ */
|
|
4190
|
-
description != null && /* @__PURE__ */
|
|
4191
|
-
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 })
|
|
4192
4300
|
] });
|
|
4193
4301
|
});
|
|
4194
4302
|
|
|
4195
4303
|
// src/blocks/BlockHeroCode.tsx
|
|
4196
|
-
import { forwardRef as
|
|
4197
|
-
import { jsx as
|
|
4304
|
+
import { forwardRef as forwardRef125 } from "react";
|
|
4305
|
+
import { jsx as jsx127, jsxs as jsxs106 } from "react/jsx-runtime";
|
|
4198
4306
|
var DEFAULT_TILES = [
|
|
4199
4307
|
{ glyph: "\u25C6", accent: "green", style: { inset: "-0.5rem auto auto 8%" } },
|
|
4200
4308
|
{ glyph: "\u25C9", accent: "violet", style: { inset: "0 6% auto auto", animationDelay: "-2s" } },
|
|
4201
4309
|
{ glyph: "\u25B2", accent: "orange", style: { inset: "auto 10% -0.5rem auto", animationDelay: "-4s" } }
|
|
4202
4310
|
];
|
|
4203
|
-
var BlockHeroCode =
|
|
4204
|
-
return /* @__PURE__ */
|
|
4205
|
-
/* @__PURE__ */
|
|
4206
|
-
eyebrow != null && /* @__PURE__ */
|
|
4207
|
-
/* @__PURE__ */
|
|
4208
|
-
lead != null && /* @__PURE__ */
|
|
4209
|
-
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 })
|
|
4210
4318
|
] }),
|
|
4211
|
-
/* @__PURE__ */
|
|
4212
|
-
tiles.map((tile, i) => /* @__PURE__ */
|
|
4213
|
-
/* @__PURE__ */
|
|
4214
|
-
/* @__PURE__ */
|
|
4215
|
-
/* @__PURE__ */
|
|
4216
|
-
/* @__PURE__ */
|
|
4217
|
-
/* @__PURE__ */
|
|
4218
|
-
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 })
|
|
4219
4327
|
] }),
|
|
4220
|
-
/* @__PURE__ */
|
|
4328
|
+
/* @__PURE__ */ jsx127("pre", { className: "oc-code-window__body", children: code })
|
|
4221
4329
|
] })
|
|
4222
4330
|
] })
|
|
4223
4331
|
] }) });
|
|
4224
4332
|
});
|
|
4225
4333
|
|
|
4226
4334
|
// src/blocks/BlockHeroOrbit.tsx
|
|
4227
|
-
import { forwardRef as
|
|
4228
|
-
import { jsx as
|
|
4335
|
+
import { forwardRef as forwardRef126 } from "react";
|
|
4336
|
+
import { jsx as jsx128, jsxs as jsxs107 } from "react/jsx-runtime";
|
|
4229
4337
|
var DEFAULT_MARKS = [
|
|
4230
4338
|
{ glyph: "\u25C6", accent: "green" },
|
|
4231
4339
|
{ glyph: "\u25C9", accent: "violet" },
|
|
@@ -4234,333 +4342,333 @@ var DEFAULT_MARKS = [
|
|
|
4234
4342
|
{ glyph: "\u2665", accent: "red" },
|
|
4235
4343
|
{ glyph: "\u2600", accent: "yellow" }
|
|
4236
4344
|
];
|
|
4237
|
-
var BlockHeroOrbit =
|
|
4345
|
+
var BlockHeroOrbit = forwardRef126(function BlockHeroOrbit2({ eyebrow, title, lead, actions, marks = DEFAULT_MARKS, codeTitle, code = "", center, duration, className, ...rest }, ref) {
|
|
4238
4346
|
const visualStyle = duration ? { "--oc-orbit-duration": duration } : void 0;
|
|
4239
|
-
return /* @__PURE__ */
|
|
4240
|
-
/* @__PURE__ */
|
|
4241
|
-
eyebrow != null && /* @__PURE__ */
|
|
4242
|
-
/* @__PURE__ */
|
|
4243
|
-
lead != null && /* @__PURE__ */
|
|
4244
|
-
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 })
|
|
4245
4353
|
] }),
|
|
4246
|
-
/* @__PURE__ */
|
|
4247
|
-
/* @__PURE__ */
|
|
4248
|
-
center ?? /* @__PURE__ */
|
|
4249
|
-
/* @__PURE__ */
|
|
4250
|
-
/* @__PURE__ */
|
|
4251
|
-
/* @__PURE__ */
|
|
4252
|
-
/* @__PURE__ */
|
|
4253
|
-
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 })
|
|
4254
4362
|
] }),
|
|
4255
|
-
/* @__PURE__ */
|
|
4363
|
+
/* @__PURE__ */ jsx128("pre", { className: "oc-code-window__body", children: code })
|
|
4256
4364
|
] })
|
|
4257
4365
|
] })
|
|
4258
4366
|
] }) });
|
|
4259
4367
|
});
|
|
4260
4368
|
|
|
4261
4369
|
// src/blocks/BlockHeroSplit.tsx
|
|
4262
|
-
import { forwardRef as
|
|
4263
|
-
import { jsx as
|
|
4264
|
-
var BlockHeroSplit =
|
|
4265
|
-
return /* @__PURE__ */
|
|
4266
|
-
/* @__PURE__ */
|
|
4267
|
-
/* @__PURE__ */
|
|
4268
|
-
description != null && /* @__PURE__ */
|
|
4269
|
-
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 })
|
|
4270
4378
|
] }),
|
|
4271
|
-
/* @__PURE__ */
|
|
4379
|
+
/* @__PURE__ */ jsx129("div", { className: "oc-block-hero-visual", children: visual })
|
|
4272
4380
|
] });
|
|
4273
4381
|
});
|
|
4274
4382
|
|
|
4275
4383
|
// src/blocks/BlockModuleHeader.tsx
|
|
4276
|
-
import { forwardRef as
|
|
4277
|
-
import { jsx as
|
|
4278
|
-
var BlockModuleHeader =
|
|
4279
|
-
return /* @__PURE__ */
|
|
4280
|
-
/* @__PURE__ */
|
|
4281
|
-
icon != null && /* @__PURE__ */
|
|
4282
|
-
/* @__PURE__ */
|
|
4283
|
-
/* @__PURE__ */
|
|
4284
|
-
intro != null && /* @__PURE__ */
|
|
4285
|
-
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 })
|
|
4286
4394
|
] })
|
|
4287
4395
|
] }),
|
|
4288
|
-
actions != null && /* @__PURE__ */
|
|
4396
|
+
actions != null && /* @__PURE__ */ jsx130("div", { className: "oc-block-modulehead-actions", children: actions })
|
|
4289
4397
|
] });
|
|
4290
4398
|
});
|
|
4291
4399
|
|
|
4292
4400
|
// src/blocks/BlockPageHero.tsx
|
|
4293
|
-
import { forwardRef as
|
|
4294
|
-
import { jsx as
|
|
4295
|
-
var BlockPageHero =
|
|
4296
|
-
return /* @__PURE__ */
|
|
4297
|
-
eyebrow != null && /* @__PURE__ */
|
|
4298
|
-
/* @__PURE__ */
|
|
4299
|
-
description != null && /* @__PURE__ */
|
|
4300
|
-
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 })
|
|
4301
4409
|
] });
|
|
4302
4410
|
});
|
|
4303
4411
|
|
|
4304
4412
|
// src/blocks/BlockPortfolioGrid.tsx
|
|
4305
|
-
import { forwardRef as
|
|
4306
|
-
import { jsx as
|
|
4307
|
-
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) {
|
|
4308
4416
|
const titleId = `oc-portfolio-title-${useId40().replace(/[^\w-]/g, "")}`;
|
|
4309
|
-
return /* @__PURE__ */
|
|
4310
|
-
/* @__PURE__ */
|
|
4311
|
-
/* @__PURE__ */
|
|
4312
|
-
eyebrow != null && /* @__PURE__ */
|
|
4313
|
-
/* @__PURE__ */
|
|
4314
|
-
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 })
|
|
4315
4423
|
] }),
|
|
4316
4424
|
link
|
|
4317
4425
|
] }),
|
|
4318
|
-
/* @__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)) })
|
|
4319
4427
|
] }) });
|
|
4320
4428
|
});
|
|
4321
4429
|
|
|
4322
4430
|
// src/blocks/BlockPricing.tsx
|
|
4323
|
-
import { forwardRef as
|
|
4324
|
-
import { Fragment as
|
|
4325
|
-
var BlockPricing =
|
|
4326
|
-
return /* @__PURE__ */
|
|
4327
|
-
title != null && /* @__PURE__ */
|
|
4328
|
-
description != null && /* @__PURE__ */
|
|
4329
|
-
/* @__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) => {
|
|
4330
4438
|
const variant = plan.featured ? "default" : "outline";
|
|
4331
|
-
return /* @__PURE__ */
|
|
4332
|
-
/* @__PURE__ */
|
|
4333
|
-
plan.description != null && /* @__PURE__ */
|
|
4334
|
-
/* @__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: [
|
|
4335
4443
|
plan.price,
|
|
4336
|
-
plan.period != null && /* @__PURE__ */
|
|
4444
|
+
plan.period != null && /* @__PURE__ */ jsxs112(Fragment28, { children: [
|
|
4337
4445
|
" ",
|
|
4338
|
-
/* @__PURE__ */
|
|
4446
|
+
/* @__PURE__ */ jsx133("span", { children: plan.period })
|
|
4339
4447
|
] })
|
|
4340
4448
|
] }),
|
|
4341
|
-
/* @__PURE__ */
|
|
4342
|
-
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 })
|
|
4343
4451
|
] }, i);
|
|
4344
4452
|
}) })
|
|
4345
4453
|
] });
|
|
4346
4454
|
});
|
|
4347
4455
|
|
|
4348
4456
|
// src/blocks/BlockProcess.tsx
|
|
4349
|
-
import { forwardRef as
|
|
4350
|
-
import { jsx as
|
|
4351
|
-
var BlockProcess =
|
|
4352
|
-
return /* @__PURE__ */
|
|
4353
|
-
eyebrow != null && /* @__PURE__ */
|
|
4354
|
-
/* @__PURE__ */
|
|
4355
|
-
/* @__PURE__ */
|
|
4356
|
-
/* @__PURE__ */
|
|
4357
|
-
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 })
|
|
4358
4466
|
] }, i)) }),
|
|
4359
|
-
marquee && marquee.length > 0 && /* @__PURE__ */
|
|
4360
|
-
marquee.map((m) => /* @__PURE__ */
|
|
4361
|
-
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}`))
|
|
4362
4470
|
] }) })
|
|
4363
4471
|
] }) });
|
|
4364
4472
|
});
|
|
4365
4473
|
|
|
4366
4474
|
// src/blocks/BlockProductGrid.tsx
|
|
4367
|
-
import { forwardRef as
|
|
4368
|
-
import { jsx as
|
|
4369
|
-
var BlockProductGrid =
|
|
4370
|
-
return /* @__PURE__ */
|
|
4371
|
-
eyebrow != null && /* @__PURE__ */
|
|
4372
|
-
/* @__PURE__ */
|
|
4373
|
-
/* @__PURE__ */
|
|
4374
|
-
/* @__PURE__ */
|
|
4375
|
-
p.icon != null && /* @__PURE__ */
|
|
4376
|
-
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 })
|
|
4377
4485
|
] }),
|
|
4378
|
-
/* @__PURE__ */
|
|
4379
|
-
p.tagline != null && /* @__PURE__ */
|
|
4380
|
-
p.summary != null && /* @__PURE__ */
|
|
4381
|
-
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 })
|
|
4382
4490
|
] }, i)) })
|
|
4383
4491
|
] }) });
|
|
4384
4492
|
});
|
|
4385
4493
|
|
|
4386
4494
|
// src/blocks/BlockProfileHeader.tsx
|
|
4387
|
-
import { forwardRef as
|
|
4388
|
-
import { jsx as
|
|
4389
|
-
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) {
|
|
4390
4498
|
const nameId = `oc-profile-name-${useId41().replace(/[^\w-]/g, "")}`;
|
|
4391
4499
|
const Heading3 = headingLevel === 1 ? "h1" : "h2";
|
|
4392
4500
|
const bannerStyle = banner ? { "--oc-profile-banner": `url("${banner}")` } : void 0;
|
|
4393
|
-
return /* @__PURE__ */
|
|
4394
|
-
/* @__PURE__ */
|
|
4395
|
-
/* @__PURE__ */
|
|
4396
|
-
/* @__PURE__ */
|
|
4397
|
-
/* @__PURE__ */
|
|
4398
|
-
/* @__PURE__ */
|
|
4399
|
-
meta != null && /* @__PURE__ */
|
|
4400
|
-
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 })
|
|
4401
4509
|
] }),
|
|
4402
|
-
actions != null && /* @__PURE__ */
|
|
4510
|
+
actions != null && /* @__PURE__ */ jsx136("div", { className: "oc-block-profile-actions", children: actions })
|
|
4403
4511
|
] }),
|
|
4404
|
-
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)) })
|
|
4405
4513
|
] });
|
|
4406
4514
|
});
|
|
4407
4515
|
|
|
4408
4516
|
// src/blocks/BlockShowcase.tsx
|
|
4409
|
-
import { forwardRef as
|
|
4410
|
-
import { jsx as
|
|
4411
|
-
var BlockShowcase =
|
|
4412
|
-
return /* @__PURE__ */
|
|
4413
|
-
eyebrow != null && /* @__PURE__ */
|
|
4414
|
-
/* @__PURE__ */
|
|
4415
|
-
/* @__PURE__ */
|
|
4416
|
-
/* @__PURE__ */
|
|
4417
|
-
/* @__PURE__ */
|
|
4418
|
-
/* @__PURE__ */
|
|
4419
|
-
/* @__PURE__ */
|
|
4420
|
-
/* @__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", {})
|
|
4421
4529
|
] }),
|
|
4422
|
-
/* @__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 ?? "" }) })
|
|
4423
4531
|
] }),
|
|
4424
|
-
/* @__PURE__ */
|
|
4425
|
-
p.pill != null && /* @__PURE__ */
|
|
4426
|
-
/* @__PURE__ */
|
|
4427
|
-
p.summary != null && /* @__PURE__ */
|
|
4428
|
-
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 })
|
|
4429
4537
|
] })
|
|
4430
4538
|
] }, i)) })
|
|
4431
4539
|
] }) });
|
|
4432
4540
|
});
|
|
4433
4541
|
|
|
4434
4542
|
// src/blocks/BlockSiteFooter.tsx
|
|
4435
|
-
import { forwardRef as
|
|
4436
|
-
import { jsx as
|
|
4437
|
-
var BlockSiteFooter =
|
|
4438
|
-
return /* @__PURE__ */
|
|
4439
|
-
/* @__PURE__ */
|
|
4440
|
-
/* @__PURE__ */
|
|
4441
|
-
/* @__PURE__ */
|
|
4442
|
-
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 })
|
|
4443
4551
|
] }),
|
|
4444
|
-
columns.map((col, i) => /* @__PURE__ */
|
|
4445
|
-
/* @__PURE__ */
|
|
4446
|
-
col.links && /* @__PURE__ */
|
|
4447
|
-
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 })
|
|
4448
4556
|
] }, i))
|
|
4449
4557
|
] }),
|
|
4450
|
-
(copyright != null || credit != null) && /* @__PURE__ */
|
|
4451
|
-
/* @__PURE__ */
|
|
4452
|
-
/* @__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 })
|
|
4453
4561
|
] })
|
|
4454
4562
|
] }) });
|
|
4455
4563
|
});
|
|
4456
4564
|
|
|
4457
4565
|
// src/blocks/BlockSiteHeader.tsx
|
|
4458
|
-
import { forwardRef as
|
|
4459
|
-
import { jsx as
|
|
4460
|
-
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) {
|
|
4461
4569
|
const navId = `oc-site-nav-${useId42().replace(/:/g, "")}`;
|
|
4462
|
-
return /* @__PURE__ */
|
|
4463
|
-
/* @__PURE__ */
|
|
4464
|
-
/* @__PURE__ */
|
|
4465
|
-
/* @__PURE__ */
|
|
4466
|
-
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)),
|
|
4467
4575
|
cta
|
|
4468
4576
|
] })
|
|
4469
4577
|
] }) });
|
|
4470
4578
|
});
|
|
4471
4579
|
|
|
4472
4580
|
// src/blocks/BlockSpotlight.tsx
|
|
4473
|
-
import { forwardRef as
|
|
4474
|
-
import { jsx as
|
|
4475
|
-
var BlockSpotlight =
|
|
4476
|
-
return /* @__PURE__ */
|
|
4477
|
-
/* @__PURE__ */
|
|
4478
|
-
badge != null && /* @__PURE__ */
|
|
4479
|
-
/* @__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" }),
|
|
4480
4588
|
badge
|
|
4481
4589
|
] }),
|
|
4482
|
-
/* @__PURE__ */
|
|
4483
|
-
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 }),
|
|
4484
4592
|
title
|
|
4485
4593
|
] }),
|
|
4486
|
-
tagline != null && /* @__PURE__ */
|
|
4487
|
-
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 }),
|
|
4488
4596
|
action
|
|
4489
4597
|
] }),
|
|
4490
|
-
modules && /* @__PURE__ */
|
|
4491
|
-
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 }),
|
|
4492
4600
|
m.label
|
|
4493
4601
|
] }, i)) })
|
|
4494
4602
|
] }) }) });
|
|
4495
4603
|
});
|
|
4496
4604
|
|
|
4497
4605
|
// src/blocks/BlockStats.tsx
|
|
4498
|
-
import { forwardRef as
|
|
4499
|
-
import { jsx as
|
|
4500
|
-
var BlockStats =
|
|
4501
|
-
return /* @__PURE__ */
|
|
4502
|
-
/* @__PURE__ */
|
|
4503
|
-
/* @__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 })
|
|
4504
4612
|
] }, i)) });
|
|
4505
4613
|
});
|
|
4506
4614
|
|
|
4507
4615
|
// src/blocks/BlockStatsCounter.tsx
|
|
4508
|
-
import { forwardRef as
|
|
4509
|
-
import { jsx as
|
|
4510
|
-
var BlockStatsCounter =
|
|
4511
|
-
return /* @__PURE__ */
|
|
4512
|
-
/* @__PURE__ */
|
|
4513
|
-
/* @__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 })
|
|
4514
4622
|
] }, i)) });
|
|
4515
4623
|
});
|
|
4516
4624
|
|
|
4517
4625
|
// src/blocks/BlockTeamList.tsx
|
|
4518
|
-
import { forwardRef as
|
|
4519
|
-
import { Fragment as
|
|
4520
|
-
var BlockTeamList =
|
|
4521
|
-
return /* @__PURE__ */
|
|
4522
|
-
/* @__PURE__ */
|
|
4523
|
-
/* @__PURE__ */
|
|
4524
|
-
m.role != null && /* @__PURE__ */
|
|
4525
|
-
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 })
|
|
4526
4634
|
] })
|
|
4527
4635
|
] }, i)) });
|
|
4528
4636
|
});
|
|
4529
4637
|
|
|
4530
4638
|
// src/blocks/BlockTwoFactor.tsx
|
|
4531
|
-
import { forwardRef as
|
|
4532
|
-
import { jsx as
|
|
4533
|
-
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) {
|
|
4534
4642
|
const id = `oc-twofactor-${useId43().replace(/:/g, "")}`;
|
|
4535
4643
|
const [code, setCode] = useState15("");
|
|
4536
4644
|
const submit = (e) => {
|
|
4537
4645
|
e.preventDefault();
|
|
4538
4646
|
onSubmit?.(code);
|
|
4539
4647
|
};
|
|
4540
|
-
return /* @__PURE__ */
|
|
4541
|
-
/* @__PURE__ */
|
|
4542
|
-
/* @__PURE__ */
|
|
4543
|
-
/* @__PURE__ */
|
|
4544
|
-
qr ?? /* @__PURE__ */
|
|
4545
|
-
/* @__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" })
|
|
4546
4654
|
] })
|
|
4547
4655
|
] }),
|
|
4548
|
-
/* @__PURE__ */
|
|
4549
|
-
/* @__PURE__ */
|
|
4550
|
-
/* @__PURE__ */
|
|
4551
|
-
/* @__PURE__ */
|
|
4552
|
-
/* @__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 })
|
|
4553
4661
|
] }),
|
|
4554
|
-
/* @__PURE__ */
|
|
4662
|
+
/* @__PURE__ */ jsx144("button", { className: "oc-btn", type: "submit", children: submitLabel })
|
|
4555
4663
|
] }),
|
|
4556
|
-
recoveryCodes && /* @__PURE__ */
|
|
4664
|
+
recoveryCodes && /* @__PURE__ */ jsx144("section", { className: "oc-block-twofactor-step", children: /* @__PURE__ */ jsx144(RecoveryCodes, { codes: recoveryCodes }) })
|
|
4557
4665
|
] });
|
|
4558
4666
|
});
|
|
4559
4667
|
|
|
4560
4668
|
// src/blocks/BlockWizardDialog.tsx
|
|
4561
|
-
import { forwardRef as
|
|
4562
|
-
import { jsx as
|
|
4563
|
-
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({
|
|
4564
4672
|
open,
|
|
4565
4673
|
defaultOpen,
|
|
4566
4674
|
onOpenChange,
|
|
@@ -4584,7 +4692,7 @@ var BlockWizardDialog = forwardRef137(function BlockWizardDialog2({
|
|
|
4584
4692
|
const [current, setCurrent] = useControllable(step, defaultStep, onStepChange);
|
|
4585
4693
|
const last = current >= steps.length - 1;
|
|
4586
4694
|
const active = steps[current];
|
|
4587
|
-
return /* @__PURE__ */
|
|
4695
|
+
return /* @__PURE__ */ jsx145(
|
|
4588
4696
|
"dialog",
|
|
4589
4697
|
{
|
|
4590
4698
|
ref,
|
|
@@ -4593,17 +4701,17 @@ var BlockWizardDialog = forwardRef137(function BlockWizardDialog2({
|
|
|
4593
4701
|
...attrs({ closedby: "closerequest" }),
|
|
4594
4702
|
...rest,
|
|
4595
4703
|
onClose: dlg.onClose,
|
|
4596
|
-
children: /* @__PURE__ */
|
|
4597
|
-
/* @__PURE__ */
|
|
4598
|
-
/* @__PURE__ */
|
|
4599
|
-
/* @__PURE__ */
|
|
4600
|
-
/* @__PURE__ */
|
|
4601
|
-
/* @__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}` })
|
|
4602
4710
|
] }),
|
|
4603
|
-
/* @__PURE__ */
|
|
4604
|
-
/* @__PURE__ */
|
|
4605
|
-
/* @__PURE__ */
|
|
4606
|
-
/* @__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(
|
|
4607
4715
|
"button",
|
|
4608
4716
|
{
|
|
4609
4717
|
className: "oc-btn",
|
|
@@ -4719,6 +4827,8 @@ export {
|
|
|
4719
4827
|
FilterPills,
|
|
4720
4828
|
FlipCard,
|
|
4721
4829
|
FormField,
|
|
4830
|
+
Glass,
|
|
4831
|
+
GlassPanel,
|
|
4722
4832
|
Greeting,
|
|
4723
4833
|
Heading,
|
|
4724
4834
|
Icon,
|
|
@@ -4729,7 +4839,9 @@ export {
|
|
|
4729
4839
|
LauncherCard,
|
|
4730
4840
|
Lightbox,
|
|
4731
4841
|
LinkArrow,
|
|
4842
|
+
LinkRow,
|
|
4732
4843
|
ListToolbar,
|
|
4844
|
+
LiveFrame,
|
|
4733
4845
|
Marquee,
|
|
4734
4846
|
MediaCard,
|
|
4735
4847
|
MediaRow,
|
|
@@ -4779,6 +4891,8 @@ export {
|
|
|
4779
4891
|
StackList,
|
|
4780
4892
|
StatCard,
|
|
4781
4893
|
StatCardGrid,
|
|
4894
|
+
Status,
|
|
4895
|
+
StatusDot,
|
|
4782
4896
|
Stepper,
|
|
4783
4897
|
Switch,
|
|
4784
4898
|
Table,
|
|
@@ -4796,6 +4910,10 @@ export {
|
|
|
4796
4910
|
ThemeSwitch,
|
|
4797
4911
|
TimeInput,
|
|
4798
4912
|
Timeline,
|
|
4913
|
+
Titlebar,
|
|
4914
|
+
TitlebarBody,
|
|
4915
|
+
TitlebarButton,
|
|
4916
|
+
TitlebarWindow,
|
|
4799
4917
|
Toast,
|
|
4800
4918
|
ToastContainer,
|
|
4801
4919
|
ToastProvider,
|
|
@@ -4806,6 +4924,7 @@ export {
|
|
|
4806
4924
|
UpgradeBanner,
|
|
4807
4925
|
User,
|
|
4808
4926
|
VersionBanner,
|
|
4927
|
+
Watermark,
|
|
4809
4928
|
attachmentMeta,
|
|
4810
4929
|
attrs,
|
|
4811
4930
|
buttonClass,
|
|
@@ -4823,6 +4942,7 @@ export {
|
|
|
4823
4942
|
mod,
|
|
4824
4943
|
niceMax,
|
|
4825
4944
|
parseDecimal,
|
|
4945
|
+
progressLevel,
|
|
4826
4946
|
useControllable,
|
|
4827
4947
|
useDialog,
|
|
4828
4948
|
useDialogContext,
|