@birdycom/omniaui-react 0.11.2 → 0.12.1
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 +8 -2
- package/dist/index.js +186 -167
- package/package.json +1 -1
- package/src/blocks/BlockSiteHeader.tsx +1 -1
- package/src/components/ColumnMenu.tsx +1 -1
- package/src/components/Dropdown.tsx +2 -2
- package/src/components/EmojiPicker.tsx +1 -1
- package/src/components/Lightbox.tsx +17 -3
- package/src/components/MediaCard.tsx +1 -1
- package/src/components/MediaRow.tsx +1 -1
- package/src/components/MessageThread.tsx +1 -1
- package/src/components/Navmenu.tsx +1 -1
- package/src/components/Popover.tsx +1 -1
- package/src/components/TableActions.tsx +1 -1
- package/src/components/Tooltip.tsx +19 -3
package/dist/index.d.ts
CHANGED
|
@@ -713,7 +713,7 @@ interface DropdownProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
713
713
|
triggerProps?: ButtonProps;
|
|
714
714
|
}
|
|
715
715
|
/**
|
|
716
|
-
* Trigger button + `<div class="oc-dropdown-menu" popover>`, wired with `
|
|
716
|
+
* Trigger button + `<div class="oc-dropdown-menu" popover>`, wired with `popoverTarget`
|
|
717
717
|
* (native popover and anchor positioning, no state needed).
|
|
718
718
|
*/
|
|
719
719
|
declare const Dropdown: react.ForwardRefExoticComponent<DropdownProps & react.RefAttributes<HTMLDivElement>>;
|
|
@@ -1977,8 +1977,14 @@ interface ToggleFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "
|
|
|
1977
1977
|
declare const ToggleField: react.ForwardRefExoticComponent<ToggleFieldProps & react.RefAttributes<HTMLInputElement>>;
|
|
1978
1978
|
|
|
1979
1979
|
interface TooltipProps extends Omit<HTMLAttributes<HTMLSpanElement>, "content"> {
|
|
1980
|
-
/** Tooltip text (`data-tooltip`). */
|
|
1980
|
+
/** Tooltip text (`data-tooltip`); with `heading`, the lines under the title. */
|
|
1981
1981
|
content: string;
|
|
1982
|
+
/** Keep the line breaks of `content` (`oc-tooltip--multiline`). */
|
|
1983
|
+
multiline?: boolean;
|
|
1984
|
+
/** Title above `content` (`.oc-tooltip__title`: larger, capital first letter); renders `.oc-tooltip__content`. */
|
|
1985
|
+
heading?: string;
|
|
1986
|
+
/** Preferred side (default top); with anchor positioning it moves to the other side when there is no room. */
|
|
1987
|
+
side?: "top" | "bottom" | "left" | "right";
|
|
1982
1988
|
children: ReactNode;
|
|
1983
1989
|
}
|
|
1984
1990
|
/** `<span class="oc-tooltip" data-tooltip>`: CSS-only tooltip around its children. */
|
package/dist/index.js
CHANGED
|
@@ -770,7 +770,7 @@ var ColumnMenu = forwardRef26(function ColumnMenu2({ columns, children, triggerL
|
|
|
770
770
|
return /* @__PURE__ */ jsxs19("div", { ref, className: cx("oc-column-menu-scope", className), ...rest, children: [
|
|
771
771
|
/* @__PURE__ */ jsxs19("div", { className: "oc-table-toolbar", children: [
|
|
772
772
|
/* @__PURE__ */ jsx26("span", { className: "oc-table-toolbar-spacer" }),
|
|
773
|
-
/* @__PURE__ */ jsx26("button", { className: "oc-btn oc-btn--outline oc-btn--sm", type: "button",
|
|
773
|
+
/* @__PURE__ */ jsx26("button", { className: "oc-btn oc-btn--outline oc-btn--sm", type: "button", popoverTarget: menuId, children: triggerLabel })
|
|
774
774
|
] }),
|
|
775
775
|
/* @__PURE__ */ jsxs19("div", { className: "oc-column-menu", id: menuId, ...attrs({ popover: "" }), children: [
|
|
776
776
|
/* @__PURE__ */ jsx26("p", { className: "oc-column-menu-title", children: title }),
|
|
@@ -1811,7 +1811,7 @@ var Dropdown = forwardRef35(function Dropdown2({ trigger, triggerProps, classNam
|
|
|
1811
1811
|
const auto = useId12();
|
|
1812
1812
|
const menuId = id ?? `oc-menu-${auto.replace(/:/g, "")}`;
|
|
1813
1813
|
return /* @__PURE__ */ jsxs28(Fragment7, { children: [
|
|
1814
|
-
/* @__PURE__ */ jsx36(Button, { variant: "outline", ...triggerProps,
|
|
1814
|
+
/* @__PURE__ */ jsx36(Button, { variant: "outline", ...triggerProps, popoverTarget: menuId, children: trigger }),
|
|
1815
1815
|
/* @__PURE__ */ jsx36("div", { ref, className: cx("oc-dropdown-menu", className), id: menuId, ...attrs({ popover: "" }), ...rest, children })
|
|
1816
1816
|
] });
|
|
1817
1817
|
});
|
|
@@ -1892,7 +1892,7 @@ var EmojiPicker = forwardRef37(function EmojiPicker2({ groups = defaultGroups, o
|
|
|
1892
1892
|
);
|
|
1893
1893
|
if (inline) return panel;
|
|
1894
1894
|
return /* @__PURE__ */ jsxs30(Fragment8, { children: [
|
|
1895
|
-
/* @__PURE__ */ jsx38("button", { type: "button", className: "oc-emoji-picker__trigger", "aria-label": triggerLabel,
|
|
1895
|
+
/* @__PURE__ */ jsx38("button", { type: "button", className: "oc-emoji-picker__trigger", "aria-label": triggerLabel, popoverTarget: panelId, children: trigger }),
|
|
1896
1896
|
panel
|
|
1897
1897
|
] });
|
|
1898
1898
|
});
|
|
@@ -2198,6 +2198,17 @@ var Lightbox = forwardRef51(function Lightbox2({ images, title, thumbnails = tru
|
|
|
2198
2198
|
const dlg = useDialog(inner, { open, defaultOpen, onOpenChange });
|
|
2199
2199
|
const single = images.length === 1;
|
|
2200
2200
|
const slideId = (i) => `${base}-${(i % images.length + images.length) % images.length + 1}`;
|
|
2201
|
+
const go = (i) => (e) => {
|
|
2202
|
+
const slide = document.getElementById(slideId(i));
|
|
2203
|
+
if (!slide) return;
|
|
2204
|
+
e.preventDefault();
|
|
2205
|
+
slide.scrollIntoView?.({ behavior: matchMedia("(prefers-reduced-motion: reduce)").matches ? "instant" : "smooth", block: "nearest", inline: "center" });
|
|
2206
|
+
};
|
|
2207
|
+
const onClose = (...args) => {
|
|
2208
|
+
const slide = location.hash && document.getElementById(decodeURIComponent(location.hash.slice(1)));
|
|
2209
|
+
if (slide && inner.current?.contains(slide)) history.replaceState(history.state, "", location.pathname + location.search);
|
|
2210
|
+
return dlg.onClose(...args);
|
|
2211
|
+
};
|
|
2201
2212
|
useEffect6(() => {
|
|
2202
2213
|
if (dlg.open) document.getElementById(slideId(start))?.scrollIntoView?.({ behavior: "instant", block: "nearest", inline: "center" });
|
|
2203
2214
|
}, [dlg.open, start]);
|
|
@@ -2206,15 +2217,15 @@ var Lightbox = forwardRef51(function Lightbox2({ images, title, thumbnails = tru
|
|
|
2206
2217
|
setStart(i);
|
|
2207
2218
|
dlg.setOpen(true);
|
|
2208
2219
|
}, children: media2(img, img.thumb ?? img.src) }, i)) }),
|
|
2209
|
-
/* @__PURE__ */ jsxs43("dialog", { ref, className: cx("oc-lightbox", single && "oc-lightbox--single", className), "aria-label": label, ...attrs({ closedby: "any" }), ...rest, onClose
|
|
2220
|
+
/* @__PURE__ */ jsxs43("dialog", { ref, className: cx("oc-lightbox", single && "oc-lightbox--single", className), "aria-label": label, ...attrs({ closedby: "any" }), ...rest, onClose, children: [
|
|
2210
2221
|
/* @__PURE__ */ jsxs43("div", { className: "oc-lightbox__bar", children: [
|
|
2211
2222
|
title != null ? /* @__PURE__ */ jsx53("h2", { className: "oc-lightbox__title", children: title }) : /* @__PURE__ */ jsx53("span", {}),
|
|
2212
2223
|
/* @__PURE__ */ jsx53("button", { type: "button", className: "oc-lightbox__close", "aria-label": "Close", onClick: dlg.close, children: "\u2715" })
|
|
2213
2224
|
] }),
|
|
2214
2225
|
/* @__PURE__ */ jsx53("div", { className: "oc-lightbox__track", tabIndex: 0, "aria-label": "Photos, use the arrow keys", children: images.map((img, i) => /* @__PURE__ */ jsxs43("figure", { className: "oc-lightbox__slide", id: slideId(i), children: [
|
|
2215
2226
|
/* @__PURE__ */ jsx53("div", { className: "oc-lightbox__media", children: media2(img, img.src) }),
|
|
2216
|
-
!single && /* @__PURE__ */ jsx53("a", { className: "oc-lightbox__nav oc-lightbox__nav--prev", href: `#${slideId(i - 1)}`, "aria-label": "Previous photo", children: "\u2190" }),
|
|
2217
|
-
!single && /* @__PURE__ */ jsx53("a", { className: "oc-lightbox__nav oc-lightbox__nav--next", href: `#${slideId(i + 1)}`, "aria-label": "Next photo", children: "\u2192" }),
|
|
2227
|
+
!single && /* @__PURE__ */ jsx53("a", { className: "oc-lightbox__nav oc-lightbox__nav--prev", href: `#${slideId(i - 1)}`, onClick: go(i - 1), "aria-label": "Previous photo", children: "\u2190" }),
|
|
2228
|
+
!single && /* @__PURE__ */ jsx53("a", { className: "oc-lightbox__nav oc-lightbox__nav--next", href: `#${slideId(i + 1)}`, onClick: go(i + 1), "aria-label": "Next photo", children: "\u2192" }),
|
|
2218
2229
|
/* @__PURE__ */ jsxs43("figcaption", { className: "oc-lightbox__caption", children: [
|
|
2219
2230
|
!single && /* @__PURE__ */ jsxs43("span", { className: "oc-lightbox__counter", children: [
|
|
2220
2231
|
i + 1,
|
|
@@ -2331,7 +2342,7 @@ var MediaCard = forwardRef56(function MediaCard2({ title, href, meta, avatar, th
|
|
|
2331
2342
|
/* @__PURE__ */ jsx58("h3", { className: "oc-media-card__title", children: /* @__PURE__ */ jsx58("a", { href, children: title }) }),
|
|
2332
2343
|
meta != null && /* @__PURE__ */ jsx58("p", { className: "oc-media-card__meta", children: meta })
|
|
2333
2344
|
] }),
|
|
2334
|
-
menu != null && /* @__PURE__ */ jsx58("button", { type: "button", className: "oc-media-card__menu", "aria-label": "More actions",
|
|
2345
|
+
menu != null && /* @__PURE__ */ jsx58("button", { type: "button", className: "oc-media-card__menu", "aria-label": "More actions", popoverTarget: menuId, children: "\u22EE" })
|
|
2335
2346
|
] }),
|
|
2336
2347
|
menu != null && /* @__PURE__ */ jsx58("div", { className: "oc-dropdown-menu", id: menuId, ...attrs({ popover: "" }), children: menu })
|
|
2337
2348
|
] });
|
|
@@ -2353,7 +2364,7 @@ var MediaRow = forwardRef57(function MediaRow2({ title, href, meta, thumb, curre
|
|
|
2353
2364
|
meta != null && /* @__PURE__ */ jsx59("p", { className: "oc-media-row__meta", children: meta })
|
|
2354
2365
|
] }),
|
|
2355
2366
|
menu != null && /* @__PURE__ */ jsxs48(Fragment13, { children: [
|
|
2356
|
-
/* @__PURE__ */ jsx59("button", { type: "button", className: "oc-media-row__menu", "aria-label": "More actions",
|
|
2367
|
+
/* @__PURE__ */ jsx59("button", { type: "button", className: "oc-media-row__menu", "aria-label": "More actions", popoverTarget: menuId, children: "\u22EE" }),
|
|
2357
2368
|
/* @__PURE__ */ jsx59("div", { className: "oc-dropdown-menu", id: menuId, ...attrs({ popover: "" }), children: menu })
|
|
2358
2369
|
] })
|
|
2359
2370
|
] });
|
|
@@ -2582,7 +2593,7 @@ var MessageThread = forwardRef59(function MessageThread2({
|
|
|
2582
2593
|
(status || menu) && /* @__PURE__ */ jsxs50("div", { className: "oc-message-thread__actions", children: [
|
|
2583
2594
|
status && /* @__PURE__ */ jsx61("span", { className: cx("oc-badge", status.variant && `oc-badge--${status.variant}`), children: status.label }),
|
|
2584
2595
|
menu && /* @__PURE__ */ jsxs50(Fragment15, { children: [
|
|
2585
|
-
/* @__PURE__ */ jsx61("button", { type: "button", className: "oc-message-thread__icon-btn",
|
|
2596
|
+
/* @__PURE__ */ jsx61("button", { type: "button", className: "oc-message-thread__icon-btn", popoverTarget: `${base}-menu`, "aria-label": "Conversation actions", children: /* @__PURE__ */ jsxs50("svg", { viewBox: "0 0 24 24", fill: "currentColor", "aria-hidden": "true", children: [
|
|
2586
2597
|
/* @__PURE__ */ jsx61("circle", { cx: "12", cy: "5", r: "1.8" }),
|
|
2587
2598
|
/* @__PURE__ */ jsx61("circle", { cx: "12", cy: "12", r: "1.8" }),
|
|
2588
2599
|
/* @__PURE__ */ jsx61("circle", { cx: "12", cy: "19", r: "1.8" })
|
|
@@ -2677,7 +2688,7 @@ var NavmenuDropdown = forwardRef61(function NavmenuDropdown2({ label, className,
|
|
|
2677
2688
|
const auto = useId24();
|
|
2678
2689
|
const menuId = id ?? `oc-navmenu-${auto.replace(/:/g, "")}`;
|
|
2679
2690
|
return /* @__PURE__ */ jsxs52("li", { children: [
|
|
2680
|
-
/* @__PURE__ */ jsx63("button", { className: "oc-navmenu-link oc-navmenu-link--caret", type: "button",
|
|
2691
|
+
/* @__PURE__ */ jsx63("button", { className: "oc-navmenu-link oc-navmenu-link--caret", type: "button", popoverTarget: menuId, children: label }),
|
|
2681
2692
|
/* @__PURE__ */ jsx63("div", { ref, className: cx("oc-dropdown-menu", className), id: menuId, ...attrs({ popover: "" }), ...rest, children })
|
|
2682
2693
|
] });
|
|
2683
2694
|
});
|
|
@@ -2886,7 +2897,7 @@ var Popover = forwardRef70(function Popover2({ trigger, triggerProps, size = "md
|
|
|
2886
2897
|
const auto = useId25();
|
|
2887
2898
|
const panelId = id ?? `oc-popover-${auto.replace(/:/g, "")}`;
|
|
2888
2899
|
return /* @__PURE__ */ jsxs58(Fragment16, { children: [
|
|
2889
|
-
/* @__PURE__ */ jsx72(Button, { variant: "outline", type: "button", ...triggerProps,
|
|
2900
|
+
/* @__PURE__ */ jsx72(Button, { variant: "outline", type: "button", ...triggerProps, popoverTarget: panelId, children: trigger }),
|
|
2890
2901
|
/* @__PURE__ */ jsxs58("div", { ref, className: cx("oc-popover", size !== "md" && `oc-popover--${size}`, className), id: panelId, ...attrs({ popover: "" }), ...rest, children: [
|
|
2891
2902
|
title != null && /* @__PURE__ */ jsx72("h3", { className: "oc-popover-title", children: title }),
|
|
2892
2903
|
text != null && /* @__PURE__ */ jsx72("p", { className: "oc-popover-text", children: text }),
|
|
@@ -3456,7 +3467,7 @@ var TableActionsMenu = forwardRef89(function TableActionsMenu2({ label, id, clas
|
|
|
3456
3467
|
const auto = useId29();
|
|
3457
3468
|
const menuId = id ?? `oc-table-actions-menu-${auto.replace(/:/g, "")}`;
|
|
3458
3469
|
return /* @__PURE__ */ jsxs75(Fragment21, { children: [
|
|
3459
|
-
/* @__PURE__ */ jsx91("button", { className: "oc-table-actions-more", type: "button", "aria-label": label,
|
|
3470
|
+
/* @__PURE__ */ jsx91("button", { className: "oc-table-actions-more", type: "button", "aria-label": label, popoverTarget: menuId }),
|
|
3460
3471
|
/* @__PURE__ */ jsx91("div", { ref, id: menuId, className: cx("oc-dropdown-menu", className), ...attrs({ popover: "" }), ...rest, children })
|
|
3461
3472
|
] });
|
|
3462
3473
|
});
|
|
@@ -3741,9 +3752,17 @@ var ToggleField = forwardRef99(function ToggleField2({ label, description, card,
|
|
|
3741
3752
|
|
|
3742
3753
|
// src/components/Tooltip.tsx
|
|
3743
3754
|
import { forwardRef as forwardRef100 } from "react";
|
|
3744
|
-
import { jsx as jsx102 } from "react/jsx-runtime";
|
|
3745
|
-
var Tooltip = forwardRef100(function Tooltip2({ content, className, ...rest }, ref) {
|
|
3746
|
-
|
|
3755
|
+
import { jsx as jsx102, jsxs as jsxs85 } from "react/jsx-runtime";
|
|
3756
|
+
var Tooltip = forwardRef100(function Tooltip2({ content, multiline, heading, side, className, children, ...rest }, ref) {
|
|
3757
|
+
const classes = cx("oc-tooltip", multiline && !heading && "oc-tooltip--multiline", side && side !== "top" && `oc-tooltip--${side}`, className);
|
|
3758
|
+
if (!heading) return /* @__PURE__ */ jsx102("span", { ref, className: classes, "data-tooltip": content, ...rest, children });
|
|
3759
|
+
return /* @__PURE__ */ jsxs85("span", { ref, className: classes, ...rest, children: [
|
|
3760
|
+
children,
|
|
3761
|
+
/* @__PURE__ */ jsxs85("span", { className: "oc-tooltip__content", role: "tooltip", children: [
|
|
3762
|
+
/* @__PURE__ */ jsx102("span", { className: "oc-tooltip__title", children: heading }),
|
|
3763
|
+
content
|
|
3764
|
+
] })
|
|
3765
|
+
] });
|
|
3747
3766
|
});
|
|
3748
3767
|
|
|
3749
3768
|
// src/components/TopProgress.tsx
|
|
@@ -3773,10 +3792,10 @@ var TopProgress = forwardRef101(function TopProgress2({ active = true, tone = "d
|
|
|
3773
3792
|
|
|
3774
3793
|
// src/components/Tree.tsx
|
|
3775
3794
|
import { forwardRef as forwardRef102 } from "react";
|
|
3776
|
-
import { Fragment as Fragment24, jsx as jsx104, jsxs as
|
|
3795
|
+
import { Fragment as Fragment24, jsx as jsx104, jsxs as jsxs86 } from "react/jsx-runtime";
|
|
3777
3796
|
function RowContent({ item }) {
|
|
3778
3797
|
const isLink = item.href !== void 0;
|
|
3779
|
-
return /* @__PURE__ */
|
|
3798
|
+
return /* @__PURE__ */ jsxs86(Fragment24, { children: [
|
|
3780
3799
|
item.icon != null && /* @__PURE__ */ jsx104("span", { className: "oc-tree-icon", "aria-hidden": "true", children: item.icon }),
|
|
3781
3800
|
isLink ? /* @__PURE__ */ jsx104("a", { className: "oc-tree-label", href: item.href, "aria-current": item.current ? "true" : void 0, children: item.label }) : /* @__PURE__ */ jsx104("span", { className: "oc-tree-label", children: item.label }),
|
|
3782
3801
|
item.count != null && /* @__PURE__ */ jsx104("span", { className: "oc-tree-count", children: item.count }),
|
|
@@ -3789,7 +3808,7 @@ function TreeNode({ item }) {
|
|
|
3789
3808
|
if (!item.children?.length) {
|
|
3790
3809
|
return /* @__PURE__ */ jsx104("li", { children: /* @__PURE__ */ jsx104("div", { className: rowCls, "aria-current": rowCurrent, children: /* @__PURE__ */ jsx104(RowContent, { item }) }) });
|
|
3791
3810
|
}
|
|
3792
|
-
return /* @__PURE__ */ jsx104("li", { children: /* @__PURE__ */
|
|
3811
|
+
return /* @__PURE__ */ jsx104("li", { children: /* @__PURE__ */ jsxs86("details", { className: "oc-tree-node", open: item.open, children: [
|
|
3793
3812
|
/* @__PURE__ */ jsx104("summary", { className: rowCls, "aria-current": rowCurrent, children: /* @__PURE__ */ jsx104(RowContent, { item }) }),
|
|
3794
3813
|
/* @__PURE__ */ jsx104(TreeList, { items: item.children })
|
|
3795
3814
|
] }) });
|
|
@@ -3798,8 +3817,8 @@ function TreeList({ items }) {
|
|
|
3798
3817
|
return /* @__PURE__ */ jsx104("ul", { className: "oc-tree-list", children: items.map((item, i) => /* @__PURE__ */ jsx104(TreeNode, { item }, i)) });
|
|
3799
3818
|
}
|
|
3800
3819
|
var Tree = forwardRef102(function Tree2({ items, head, headActions, quiet, flush, className, ...rest }, ref) {
|
|
3801
|
-
return /* @__PURE__ */
|
|
3802
|
-
head != null && /* @__PURE__ */
|
|
3820
|
+
return /* @__PURE__ */ jsxs86("div", { ref, className: cx("oc-tree", quiet && "oc-tree--quiet", flush && "oc-tree--flush", className), ...rest, children: [
|
|
3821
|
+
head != null && /* @__PURE__ */ jsxs86("div", { className: "oc-tree-row oc-tree-head", children: [
|
|
3803
3822
|
/* @__PURE__ */ jsx104("span", { className: "oc-tree-label", children: head }),
|
|
3804
3823
|
headActions != null && /* @__PURE__ */ jsx104("span", { className: "oc-tree-actions", children: headActions })
|
|
3805
3824
|
] }),
|
|
@@ -3809,29 +3828,29 @@ var Tree = forwardRef102(function Tree2({ items, head, headActions, quiet, flush
|
|
|
3809
3828
|
|
|
3810
3829
|
// src/components/UpgradeBanner.tsx
|
|
3811
3830
|
import { forwardRef as forwardRef103 } from "react";
|
|
3812
|
-
import { Fragment as Fragment25, jsx as jsx105, jsxs as
|
|
3831
|
+
import { Fragment as Fragment25, jsx as jsx105, jsxs as jsxs87 } from "react/jsx-runtime";
|
|
3813
3832
|
var UpgradeBanner = forwardRef103(function UpgradeBanner2({ title, plan, text, usage, icon, actions, premium, compact, onDismiss, dismissLabel = "Dismiss", className, children, ...rest }, ref) {
|
|
3814
3833
|
const cls = cx("oc-upgrade-banner", premium && "oc-upgrade-banner--premium", compact && "oc-upgrade-banner--compact", className);
|
|
3815
3834
|
const body = text ?? children;
|
|
3816
|
-
return /* @__PURE__ */
|
|
3835
|
+
return /* @__PURE__ */ jsxs87("aside", { ref, className: cls, ...rest, children: [
|
|
3817
3836
|
icon != null && /* @__PURE__ */ jsx105("span", { className: "oc-upgrade-banner-icon", "aria-hidden": "true", children: icon }),
|
|
3818
|
-
/* @__PURE__ */
|
|
3819
|
-
/* @__PURE__ */
|
|
3837
|
+
/* @__PURE__ */ jsxs87("div", { className: "oc-upgrade-banner-body", children: [
|
|
3838
|
+
/* @__PURE__ */ jsxs87("p", { className: "oc-upgrade-banner-title", children: [
|
|
3820
3839
|
title,
|
|
3821
|
-
plan != null && /* @__PURE__ */
|
|
3840
|
+
plan != null && /* @__PURE__ */ jsxs87(Fragment25, { children: [
|
|
3822
3841
|
" ",
|
|
3823
3842
|
/* @__PURE__ */ jsx105("span", { className: "oc-upgrade-banner-plan", children: plan })
|
|
3824
3843
|
] })
|
|
3825
3844
|
] }),
|
|
3826
3845
|
body != null && /* @__PURE__ */ jsx105("p", { className: "oc-upgrade-banner-text", children: body }),
|
|
3827
|
-
usage && /* @__PURE__ */
|
|
3846
|
+
usage && /* @__PURE__ */ jsxs87("div", { className: "oc-upgrade-banner-usage", children: [
|
|
3828
3847
|
/* @__PURE__ */ jsx105("span", { children: usage.label }),
|
|
3829
|
-
/* @__PURE__ */
|
|
3848
|
+
/* @__PURE__ */ jsxs87("meter", { className: "oc-upgrade-banner-meter", min: 0, max: usage.max, low: usage.max * 0.6, high: usage.max * 0.8, optimum: 0, value: usage.value, children: [
|
|
3830
3849
|
usage.value,
|
|
3831
3850
|
" of ",
|
|
3832
3851
|
usage.max
|
|
3833
3852
|
] }),
|
|
3834
|
-
/* @__PURE__ */
|
|
3853
|
+
/* @__PURE__ */ jsxs87("span", { children: [
|
|
3835
3854
|
usage.value,
|
|
3836
3855
|
" / ",
|
|
3837
3856
|
usage.max
|
|
@@ -3845,11 +3864,11 @@ var UpgradeBanner = forwardRef103(function UpgradeBanner2({ title, plan, text, u
|
|
|
3845
3864
|
|
|
3846
3865
|
// src/components/User.tsx
|
|
3847
3866
|
import { forwardRef as forwardRef104 } from "react";
|
|
3848
|
-
import { jsx as jsx106, jsxs as
|
|
3867
|
+
import { jsx as jsx106, jsxs as jsxs88 } from "react/jsx-runtime";
|
|
3849
3868
|
var User = forwardRef104(function User2({ name, email, initials, avatarSrc, avatarSize = "md", className, ...rest }, ref) {
|
|
3850
|
-
return /* @__PURE__ */
|
|
3869
|
+
return /* @__PURE__ */ jsxs88("div", { ref, className: cx("oc-user", className), ...rest, children: [
|
|
3851
3870
|
/* @__PURE__ */ jsx106(Avatar, { size: avatarSize, src: avatarSrc, children: initials }),
|
|
3852
|
-
/* @__PURE__ */
|
|
3871
|
+
/* @__PURE__ */ jsxs88("span", { className: "oc-user-text", children: [
|
|
3853
3872
|
/* @__PURE__ */ jsx106("span", { className: "oc-user-name", children: name }),
|
|
3854
3873
|
email != null && /* @__PURE__ */ jsx106("span", { className: "oc-user-email", children: email })
|
|
3855
3874
|
] })
|
|
@@ -3858,11 +3877,11 @@ var User = forwardRef104(function User2({ name, email, initials, avatarSrc, avat
|
|
|
3858
3877
|
|
|
3859
3878
|
// src/components/VersionBanner.tsx
|
|
3860
3879
|
import { forwardRef as forwardRef105 } from "react";
|
|
3861
|
-
import { jsx as jsx107, jsxs as
|
|
3880
|
+
import { jsx as jsx107, jsxs as jsxs89 } from "react/jsx-runtime";
|
|
3862
3881
|
var VersionBanner = forwardRef105(function VersionBanner2({ version, text, short = "New version", actionLabel = "Reload", onReload, tone = "warning", floating, className, ...rest }, ref) {
|
|
3863
3882
|
if (!version) return null;
|
|
3864
3883
|
const cls = cx("oc-version-banner", tone !== "warning" && `oc-version-banner--${tone}`, floating && "oc-version-banner--floating", className);
|
|
3865
|
-
return /* @__PURE__ */
|
|
3884
|
+
return /* @__PURE__ */ jsxs89("div", { ref, className: cls, role: "status", ...rest, children: [
|
|
3866
3885
|
/* @__PURE__ */ jsx107("span", { className: "oc-version-banner-dot", "aria-hidden": "true" }),
|
|
3867
3886
|
/* @__PURE__ */ jsx107("span", { className: "oc-version-banner-text", children: text ?? `New version (${version}) available - reload the page` }),
|
|
3868
3887
|
/* @__PURE__ */ jsx107("span", { className: "oc-version-banner-short", children: short }),
|
|
@@ -3872,15 +3891,15 @@ var VersionBanner = forwardRef105(function VersionBanner2({ version, text, short
|
|
|
3872
3891
|
|
|
3873
3892
|
// src/blocks/BlockAboutTimeline.tsx
|
|
3874
3893
|
import { forwardRef as forwardRef106, useId as useId34 } from "react";
|
|
3875
|
-
import { jsx as jsx108, jsxs as
|
|
3894
|
+
import { jsx as jsx108, jsxs as jsxs90 } from "react/jsx-runtime";
|
|
3876
3895
|
var BlockAboutTimeline = forwardRef106(function BlockAboutTimeline2({ eyebrow, title, children, timeline = [], image, imageAlt = "", badge, reverse = false, className, ...rest }, ref) {
|
|
3877
3896
|
const titleId = `oc-about-title-${useId34().replace(/[^\w-]/g, "")}`;
|
|
3878
|
-
return /* @__PURE__ */ jsx108("section", { ref, className: cx("oc-block-about", reverse && "oc-block-about--reverse", className), "aria-labelledby": titleId, ...rest, children: /* @__PURE__ */
|
|
3879
|
-
/* @__PURE__ */
|
|
3897
|
+
return /* @__PURE__ */ jsx108("section", { ref, className: cx("oc-block-about", reverse && "oc-block-about--reverse", className), "aria-labelledby": titleId, ...rest, children: /* @__PURE__ */ jsxs90("div", { className: "oc-block-about-inner", children: [
|
|
3898
|
+
/* @__PURE__ */ jsxs90("figure", { className: "oc-block-about-media", "aria-hidden": image ? void 0 : true, children: [
|
|
3880
3899
|
image && /* @__PURE__ */ jsx108("img", { src: image, alt: imageAlt, loading: "lazy" }),
|
|
3881
3900
|
badge != null && /* @__PURE__ */ jsx108("span", { className: "oc-block-about-badge", children: badge })
|
|
3882
3901
|
] }),
|
|
3883
|
-
/* @__PURE__ */
|
|
3902
|
+
/* @__PURE__ */ jsxs90("div", { className: "oc-block-about-copy", children: [
|
|
3884
3903
|
eyebrow != null && /* @__PURE__ */ jsx108("p", { className: "oc-eyebrow", children: eyebrow }),
|
|
3885
3904
|
/* @__PURE__ */ jsx108("h2", { className: "oc-block-about-title", id: titleId, children: title }),
|
|
3886
3905
|
children,
|
|
@@ -3891,10 +3910,10 @@ var BlockAboutTimeline = forwardRef106(function BlockAboutTimeline2({ eyebrow, t
|
|
|
3891
3910
|
|
|
3892
3911
|
// src/blocks/BlockAppHeader.tsx
|
|
3893
3912
|
import { forwardRef as forwardRef107 } from "react";
|
|
3894
|
-
import { jsx as jsx109, jsxs as
|
|
3913
|
+
import { jsx as jsx109, jsxs as jsxs91 } from "react/jsx-runtime";
|
|
3895
3914
|
var BlockAppHeader = forwardRef107(function BlockAppHeader2({ toggleFor, toggleLabel = "Toggle sidebar", nav, navLabel = "Module navigation", actions, title, className, ...rest }, ref) {
|
|
3896
|
-
return /* @__PURE__ */
|
|
3897
|
-
toggleFor && /* @__PURE__ */
|
|
3915
|
+
return /* @__PURE__ */ jsxs91("header", { ref, className: cx("oc-block-appbar", className), ...rest, children: [
|
|
3916
|
+
toggleFor && /* @__PURE__ */ jsxs91("label", { className: "oc-btn oc-btn--ghost oc-btn--icon", htmlFor: toggleFor, title: toggleLabel, children: [
|
|
3898
3917
|
/* @__PURE__ */ jsx109(Icon, { d: "M4 6h16M4 12h16M4 18h16" }),
|
|
3899
3918
|
/* @__PURE__ */ jsx109("span", { className: "oc-visually-hidden", children: toggleLabel })
|
|
3900
3919
|
] }),
|
|
@@ -3906,11 +3925,11 @@ var BlockAppHeader = forwardRef107(function BlockAppHeader2({ toggleFor, toggleL
|
|
|
3906
3925
|
|
|
3907
3926
|
// src/blocks/BlockAppShell.tsx
|
|
3908
3927
|
import { forwardRef as forwardRef108, useId as useId35 } from "react";
|
|
3909
|
-
import { jsx as jsx110, jsxs as
|
|
3928
|
+
import { jsx as jsx110, jsxs as jsxs92 } from "react/jsx-runtime";
|
|
3910
3929
|
var BlockAppShell = forwardRef108(function BlockAppShell2({ sidebar, header, breadcrumbs, toggleId, height, className, style, children, ...rest }, ref) {
|
|
3911
3930
|
const auto = useId35();
|
|
3912
3931
|
const id = toggleId ?? `oc-shell-toggle-${auto.replace(/:/g, "")}`;
|
|
3913
|
-
return /* @__PURE__ */
|
|
3932
|
+
return /* @__PURE__ */ jsxs92(
|
|
3914
3933
|
"div",
|
|
3915
3934
|
{
|
|
3916
3935
|
ref,
|
|
@@ -3920,7 +3939,7 @@ var BlockAppShell = forwardRef108(function BlockAppShell2({ sidebar, header, bre
|
|
|
3920
3939
|
children: [
|
|
3921
3940
|
/* @__PURE__ */ jsx110("input", { className: "oc-block-shell-toggle", type: "checkbox", id, "aria-label": "Collapse sidebar" }),
|
|
3922
3941
|
sidebar,
|
|
3923
|
-
/* @__PURE__ */
|
|
3942
|
+
/* @__PURE__ */ jsxs92("div", { className: "oc-block-shell-main", children: [
|
|
3924
3943
|
header,
|
|
3925
3944
|
breadcrumbs && /* @__PURE__ */ jsx110("div", { className: "oc-block-shell-breadcrumbs", children: /* @__PURE__ */ jsx110("nav", { "aria-label": "Breadcrumb", children: /* @__PURE__ */ jsx110("ol", { className: "oc-breadcrumb", children: breadcrumbs.map(
|
|
3926
3945
|
(item, i) => item.href && i < breadcrumbs.length - 1 ? /* @__PURE__ */ jsx110("li", { className: "oc-breadcrumb-item", children: /* @__PURE__ */ jsx110("a", { href: item.href, children: item.label }) }, i) : /* @__PURE__ */ jsx110("li", { className: "oc-breadcrumb-item", "aria-current": "page", children: item.label }, i)
|
|
@@ -3934,7 +3953,7 @@ var BlockAppShell = forwardRef108(function BlockAppShell2({ sidebar, header, bre
|
|
|
3934
3953
|
|
|
3935
3954
|
// src/blocks/BlockAuth.tsx
|
|
3936
3955
|
import { forwardRef as forwardRef109, useId as useId36 } from "react";
|
|
3937
|
-
import { Fragment as Fragment26, jsx as jsx111, jsxs as
|
|
3956
|
+
import { Fragment as Fragment26, jsx as jsx111, jsxs as jsxs93 } from "react/jsx-runtime";
|
|
3938
3957
|
var BlockAuth = forwardRef109(function BlockAuth2({ title = "Sign in", subtitle, submitLabel = "Sign in", socialLabel, dividerLabel = "or continue with", footer, onSubmit, onSocial, className, ...rest }, ref) {
|
|
3939
3958
|
const id = useId36().replace(/:/g, "");
|
|
3940
3959
|
const submit = (e) => {
|
|
@@ -3942,20 +3961,20 @@ var BlockAuth = forwardRef109(function BlockAuth2({ title = "Sign in", subtitle,
|
|
|
3942
3961
|
const data = new FormData(e.currentTarget);
|
|
3943
3962
|
onSubmit?.({ email: String(data.get("email") ?? ""), password: String(data.get("password") ?? "") });
|
|
3944
3963
|
};
|
|
3945
|
-
return /* @__PURE__ */
|
|
3946
|
-
/* @__PURE__ */
|
|
3964
|
+
return /* @__PURE__ */ jsxs93("div", { ref, className: cx("oc-block-auth", className), ...rest, children: [
|
|
3965
|
+
/* @__PURE__ */ jsxs93("form", { className: "oc-block-auth-card", onSubmit: submit, children: [
|
|
3947
3966
|
/* @__PURE__ */ jsx111("h2", { children: title }),
|
|
3948
3967
|
subtitle != null && /* @__PURE__ */ jsx111("p", { className: "oc-block-subtitle", children: subtitle }),
|
|
3949
|
-
/* @__PURE__ */
|
|
3968
|
+
/* @__PURE__ */ jsxs93("div", { className: "oc-form-group", children: [
|
|
3950
3969
|
/* @__PURE__ */ jsx111("label", { className: "oc-label", htmlFor: `${id}-email`, children: "Email" }),
|
|
3951
3970
|
/* @__PURE__ */ jsx111("input", { className: "oc-input", id: `${id}-email`, name: "email", type: "email", placeholder: "name@company.com" })
|
|
3952
3971
|
] }),
|
|
3953
|
-
/* @__PURE__ */
|
|
3972
|
+
/* @__PURE__ */ jsxs93("div", { className: "oc-form-group", children: [
|
|
3954
3973
|
/* @__PURE__ */ jsx111("label", { className: "oc-label", htmlFor: `${id}-password`, children: "Password" }),
|
|
3955
3974
|
/* @__PURE__ */ jsx111("input", { className: "oc-input", id: `${id}-password`, name: "password", type: "password", placeholder: "********" })
|
|
3956
3975
|
] }),
|
|
3957
3976
|
/* @__PURE__ */ jsx111("button", { className: "oc-btn", type: "submit", style: { width: "100%" }, children: submitLabel }),
|
|
3958
|
-
socialLabel != null && /* @__PURE__ */
|
|
3977
|
+
socialLabel != null && /* @__PURE__ */ jsxs93(Fragment26, { children: [
|
|
3959
3978
|
/* @__PURE__ */ jsx111("div", { className: "oc-block-auth-divider", children: dividerLabel }),
|
|
3960
3979
|
/* @__PURE__ */ jsx111("button", { className: "oc-btn oc-btn--outline", type: "button", style: { width: "100%" }, onClick: onSocial, children: socialLabel })
|
|
3961
3980
|
] })
|
|
@@ -3966,7 +3985,7 @@ var BlockAuth = forwardRef109(function BlockAuth2({ title = "Sign in", subtitle,
|
|
|
3966
3985
|
|
|
3967
3986
|
// src/blocks/BlockAuthSplit.tsx
|
|
3968
3987
|
import { forwardRef as forwardRef110, useId as useId37 } from "react";
|
|
3969
|
-
import { jsx as jsx112, jsxs as
|
|
3988
|
+
import { jsx as jsx112, jsxs as jsxs94 } from "react/jsx-runtime";
|
|
3970
3989
|
var BlockAuthSplit = forwardRef110(function BlockAuthSplit2({
|
|
3971
3990
|
logo,
|
|
3972
3991
|
logoHref = "#",
|
|
@@ -3992,28 +4011,28 @@ var BlockAuthSplit = forwardRef110(function BlockAuthSplit2({
|
|
|
3992
4011
|
remember: data.get("remember") != null
|
|
3993
4012
|
});
|
|
3994
4013
|
};
|
|
3995
|
-
return /* @__PURE__ */
|
|
3996
|
-
/* @__PURE__ */
|
|
4014
|
+
return /* @__PURE__ */ jsxs94("div", { ref, className: cx("oc-block-authsplit", className), ...rest, children: [
|
|
4015
|
+
/* @__PURE__ */ jsxs94("aside", { className: "oc-block-authsplit-brand", children: [
|
|
3997
4016
|
logo != null && /* @__PURE__ */ jsx112("a", { className: "oc-block-authsplit-logo", href: logoHref, children: logo }),
|
|
3998
|
-
quote != null && /* @__PURE__ */
|
|
4017
|
+
quote != null && /* @__PURE__ */ jsxs94("blockquote", { className: "oc-block-authsplit-quote", children: [
|
|
3999
4018
|
/* @__PURE__ */ jsx112("p", { children: quote }),
|
|
4000
4019
|
quoteAuthor != null && /* @__PURE__ */ jsx112("footer", { children: quoteAuthor })
|
|
4001
4020
|
] })
|
|
4002
4021
|
] }),
|
|
4003
|
-
/* @__PURE__ */ jsx112("div", { className: "oc-block-authsplit-form", children: /* @__PURE__ */
|
|
4022
|
+
/* @__PURE__ */ jsx112("div", { className: "oc-block-authsplit-form", children: /* @__PURE__ */ jsxs94("form", { className: "oc-block-authsplit-card", onSubmit: submit, children: [
|
|
4004
4023
|
/* @__PURE__ */ jsx112("h1", { className: "oc-block-authsplit-title", children: title }),
|
|
4005
4024
|
subtitle != null && /* @__PURE__ */ jsx112("p", { className: "oc-block-authsplit-subtitle", children: subtitle }),
|
|
4006
|
-
/* @__PURE__ */
|
|
4007
|
-
/* @__PURE__ */
|
|
4025
|
+
/* @__PURE__ */ jsxs94("div", { className: "oc-block-authsplit-fields", children: [
|
|
4026
|
+
/* @__PURE__ */ jsxs94("div", { className: "oc-field", children: [
|
|
4008
4027
|
/* @__PURE__ */ jsx112("label", { className: "oc-field-label", htmlFor: `${id}-email`, children: "E-mail" }),
|
|
4009
4028
|
/* @__PURE__ */ jsx112("input", { className: "oc-input", id: `${id}-email`, name: "email", type: "email", autoComplete: "username", placeholder: "name@company.com", required: true })
|
|
4010
4029
|
] }),
|
|
4011
|
-
/* @__PURE__ */
|
|
4030
|
+
/* @__PURE__ */ jsxs94("div", { className: "oc-field", children: [
|
|
4012
4031
|
/* @__PURE__ */ jsx112("label", { className: "oc-field-label", htmlFor: `${id}-password`, children: "Password" }),
|
|
4013
4032
|
/* @__PURE__ */ jsx112(PasswordInput, { id: `${id}-password`, name: "password", required: true })
|
|
4014
4033
|
] }),
|
|
4015
|
-
/* @__PURE__ */
|
|
4016
|
-
/* @__PURE__ */
|
|
4034
|
+
/* @__PURE__ */ jsxs94("div", { className: "oc-block-authsplit-row", children: [
|
|
4035
|
+
/* @__PURE__ */ jsxs94("label", { children: [
|
|
4017
4036
|
/* @__PURE__ */ jsx112("input", { className: "oc-checkbox", type: "checkbox", name: "remember" }),
|
|
4018
4037
|
" ",
|
|
4019
4038
|
rememberLabel
|
|
@@ -4028,11 +4047,11 @@ var BlockAuthSplit = forwardRef110(function BlockAuthSplit2({
|
|
|
4028
4047
|
|
|
4029
4048
|
// src/blocks/BlockContactGrid.tsx
|
|
4030
4049
|
import { forwardRef as forwardRef111, useId as useId38 } from "react";
|
|
4031
|
-
import { jsx as jsx113, jsxs as
|
|
4050
|
+
import { jsx as jsx113, jsxs as jsxs95 } from "react/jsx-runtime";
|
|
4032
4051
|
var BlockContactGrid = forwardRef111(function BlockContactGrid2({ eyebrow, title, lead, cards, plain = false, className, ...rest }, ref) {
|
|
4033
4052
|
const titleId = `oc-contact-title-${useId38().replace(/[^\w-]/g, "")}`;
|
|
4034
|
-
return /* @__PURE__ */
|
|
4035
|
-
(eyebrow != null || title != null || lead != null) && /* @__PURE__ */
|
|
4053
|
+
return /* @__PURE__ */ jsxs95("section", { ref, className: cx("oc-block-contact", plain && "oc-block-contact--plain", className), "aria-labelledby": title != null ? titleId : void 0, ...rest, children: [
|
|
4054
|
+
(eyebrow != null || title != null || lead != null) && /* @__PURE__ */ jsxs95("div", { className: "oc-block-contact-head", children: [
|
|
4036
4055
|
eyebrow != null && /* @__PURE__ */ jsx113("p", { className: "oc-eyebrow", children: eyebrow }),
|
|
4037
4056
|
title != null && /* @__PURE__ */ jsx113("h2", { className: "oc-block-contact-heading", id: titleId, children: title }),
|
|
4038
4057
|
lead != null && /* @__PURE__ */ jsx113("p", { className: "oc-block-contact-lead", children: lead })
|
|
@@ -4041,7 +4060,7 @@ var BlockContactGrid = forwardRef111(function BlockContactGrid2({ eyebrow, title
|
|
|
4041
4060
|
const Card2 = card.address ? "address" : "article";
|
|
4042
4061
|
const Title = card.address ? "span" : "h3";
|
|
4043
4062
|
const Line = card.address ? "span" : "p";
|
|
4044
|
-
return /* @__PURE__ */
|
|
4063
|
+
return /* @__PURE__ */ jsxs95(Card2, { className: "oc-block-contact-card", children: [
|
|
4045
4064
|
card.icon != null && /* @__PURE__ */ jsx113("span", { className: cx("oc-product-mark oc-product-mark--sm oc-product-mark--soft", card.accent && `oc-accent--${card.accent}`), "aria-hidden": "true", children: card.icon }),
|
|
4046
4065
|
/* @__PURE__ */ jsx113(Title, { className: "oc-block-contact-title", children: card.title }),
|
|
4047
4066
|
card.lines.map(
|
|
@@ -4054,9 +4073,9 @@ var BlockContactGrid = forwardRef111(function BlockContactGrid2({ eyebrow, title
|
|
|
4054
4073
|
|
|
4055
4074
|
// src/blocks/BlockCta.tsx
|
|
4056
4075
|
import { forwardRef as forwardRef112 } from "react";
|
|
4057
|
-
import { jsx as jsx114, jsxs as
|
|
4076
|
+
import { jsx as jsx114, jsxs as jsxs96 } from "react/jsx-runtime";
|
|
4058
4077
|
var BlockCta = forwardRef112(function BlockCta2({ title, description, actions, className, ...rest }, ref) {
|
|
4059
|
-
return /* @__PURE__ */
|
|
4078
|
+
return /* @__PURE__ */ jsxs96("div", { ref, className: cx("oc-block-cta", className), ...rest, children: [
|
|
4060
4079
|
/* @__PURE__ */ jsx114("h2", { children: title }),
|
|
4061
4080
|
description != null && /* @__PURE__ */ jsx114("p", { children: description }),
|
|
4062
4081
|
actions != null && /* @__PURE__ */ jsx114("div", { className: "oc-block-hero-actions", children: actions })
|
|
@@ -4065,17 +4084,17 @@ var BlockCta = forwardRef112(function BlockCta2({ title, description, actions, c
|
|
|
4065
4084
|
|
|
4066
4085
|
// src/blocks/BlockDataTable.tsx
|
|
4067
4086
|
import { forwardRef as forwardRef113 } from "react";
|
|
4068
|
-
import { jsx as jsx115, jsxs as
|
|
4087
|
+
import { jsx as jsx115, jsxs as jsxs97 } from "react/jsx-runtime";
|
|
4069
4088
|
var BlockDataTable = forwardRef113(function BlockDataTable2({ title, description, actions, toolbar, bulk, footer, className, children, ...rest }, ref) {
|
|
4070
|
-
return /* @__PURE__ */
|
|
4071
|
-
/* @__PURE__ */
|
|
4072
|
-
/* @__PURE__ */
|
|
4089
|
+
return /* @__PURE__ */ jsxs97("section", { ref, className: cx("oc-card oc-block-datatable", className), ...rest, children: [
|
|
4090
|
+
/* @__PURE__ */ jsxs97("header", { className: "oc-block-datatable-head", children: [
|
|
4091
|
+
/* @__PURE__ */ jsxs97("div", { children: [
|
|
4073
4092
|
title != null && /* @__PURE__ */ jsx115("h2", { className: "oc-block-datatable-title", children: title }),
|
|
4074
4093
|
description != null && /* @__PURE__ */ jsx115("p", { className: "oc-block-datatable-description", children: description })
|
|
4075
4094
|
] }),
|
|
4076
4095
|
actions != null && /* @__PURE__ */ jsx115("div", { children: actions })
|
|
4077
4096
|
] }),
|
|
4078
|
-
/* @__PURE__ */
|
|
4097
|
+
/* @__PURE__ */ jsxs97("div", { className: "oc-block-datatable-body", children: [
|
|
4079
4098
|
toolbar != null && /* @__PURE__ */ jsx115("div", { className: "oc-table-toolbar", children: toolbar }),
|
|
4080
4099
|
bulk != null && /* @__PURE__ */ jsx115("div", { className: "oc-block-datatable-bulk", children: bulk }),
|
|
4081
4100
|
children,
|
|
@@ -4095,20 +4114,20 @@ function FilterPill({ current, className, ...rest }) {
|
|
|
4095
4114
|
|
|
4096
4115
|
// src/blocks/BlockFaq.tsx
|
|
4097
4116
|
import { forwardRef as forwardRef114, useId as useId39 } from "react";
|
|
4098
|
-
import { jsx as jsx116, jsxs as
|
|
4117
|
+
import { jsx as jsx116, jsxs as jsxs98 } from "react/jsx-runtime";
|
|
4099
4118
|
var BlockFaq = forwardRef114(function BlockFaq2({ eyebrow, title, lead, items, openIndex = 0, more, split = false, name, className, ...rest }, ref) {
|
|
4100
4119
|
const auto = useId39().replace(/[^\w-]/g, "");
|
|
4101
4120
|
const group = name ?? `oc-faq-${auto}`;
|
|
4102
4121
|
const titleId = `oc-faq-title-${auto}`;
|
|
4103
|
-
return /* @__PURE__ */ jsx116("section", { ref, className: cx("oc-block-faq", split && "oc-block-faq--split", className), "aria-labelledby": titleId, ...rest, children: /* @__PURE__ */
|
|
4104
|
-
/* @__PURE__ */
|
|
4122
|
+
return /* @__PURE__ */ jsx116("section", { ref, className: cx("oc-block-faq", split && "oc-block-faq--split", className), "aria-labelledby": titleId, ...rest, children: /* @__PURE__ */ jsxs98("div", { className: "oc-block-faq-inner", children: [
|
|
4123
|
+
/* @__PURE__ */ jsxs98("div", { className: "oc-block-faq-head", children: [
|
|
4105
4124
|
eyebrow != null && /* @__PURE__ */ jsx116("p", { className: "oc-eyebrow", children: eyebrow }),
|
|
4106
4125
|
/* @__PURE__ */ jsx116("h2", { className: "oc-block-faq-title", id: titleId, children: title }),
|
|
4107
4126
|
lead != null && /* @__PURE__ */ jsx116("p", { className: "oc-block-faq-lead", children: lead })
|
|
4108
4127
|
] }),
|
|
4109
4128
|
/* @__PURE__ */ jsx116("div", { className: "oc-accordion oc-block-faq-list", children: items.map((item, i) => (
|
|
4110
4129
|
// "name" groups the items; React 19 passes it through, older versions too (unknown attribute on details).
|
|
4111
|
-
/* @__PURE__ */
|
|
4130
|
+
/* @__PURE__ */ jsxs98("details", { className: "oc-accordion-item", ...{ name: group }, open: i === openIndex || void 0, children: [
|
|
4112
4131
|
/* @__PURE__ */ jsx116("summary", { className: "oc-accordion-trigger", children: item.question }),
|
|
4113
4132
|
/* @__PURE__ */ jsx116("div", { className: "oc-accordion-content", children: item.answer })
|
|
4114
4133
|
] }, i)
|
|
@@ -4119,12 +4138,12 @@ var BlockFaq = forwardRef114(function BlockFaq2({ eyebrow, title, lead, items, o
|
|
|
4119
4138
|
|
|
4120
4139
|
// src/blocks/BlockFeatures.tsx
|
|
4121
4140
|
import { forwardRef as forwardRef115 } from "react";
|
|
4122
|
-
import { jsx as jsx117, jsxs as
|
|
4141
|
+
import { jsx as jsx117, jsxs as jsxs99 } from "react/jsx-runtime";
|
|
4123
4142
|
var BlockFeatures = forwardRef115(function BlockFeatures2({ title, description, features, className, ...rest }, ref) {
|
|
4124
|
-
return /* @__PURE__ */
|
|
4143
|
+
return /* @__PURE__ */ jsxs99("div", { ref, className: cx("oc-block-features", className), ...rest, children: [
|
|
4125
4144
|
title != null && /* @__PURE__ */ jsx117("h2", { children: title }),
|
|
4126
4145
|
description != null && /* @__PURE__ */ jsx117("p", { children: description }),
|
|
4127
|
-
/* @__PURE__ */ jsx117("div", { className: "oc-block-features-grid", children: features.map((f, i) => /* @__PURE__ */
|
|
4146
|
+
/* @__PURE__ */ jsx117("div", { className: "oc-block-features-grid", children: features.map((f, i) => /* @__PURE__ */ jsxs99("div", { className: "oc-block-feature-card", children: [
|
|
4128
4147
|
f.icon != null && /* @__PURE__ */ jsx117("div", { className: "oc-block-feature-icon", children: f.icon }),
|
|
4129
4148
|
/* @__PURE__ */ jsx117("h3", { children: f.title }),
|
|
4130
4149
|
f.description != null && /* @__PURE__ */ jsx117("p", { children: f.description })
|
|
@@ -4134,14 +4153,14 @@ var BlockFeatures = forwardRef115(function BlockFeatures2({ title, description,
|
|
|
4134
4153
|
|
|
4135
4154
|
// src/blocks/BlockFooter.tsx
|
|
4136
4155
|
import { forwardRef as forwardRef116 } from "react";
|
|
4137
|
-
import { jsx as jsx118, jsxs as
|
|
4156
|
+
import { jsx as jsx118, jsxs as jsxs100 } from "react/jsx-runtime";
|
|
4138
4157
|
var BlockFooter = forwardRef116(function BlockFooter2({ columns, copyright, credit, className, ...rest }, ref) {
|
|
4139
|
-
return /* @__PURE__ */
|
|
4140
|
-
/* @__PURE__ */ jsx118("div", { className: "oc-block-footer-grid", children: columns.map((col, i) => /* @__PURE__ */
|
|
4158
|
+
return /* @__PURE__ */ jsxs100("div", { ref, className: cx("oc-block-footer", className), ...rest, children: [
|
|
4159
|
+
/* @__PURE__ */ jsx118("div", { className: "oc-block-footer-grid", children: columns.map((col, i) => /* @__PURE__ */ jsxs100("div", { className: "oc-block-footer-col", children: [
|
|
4141
4160
|
/* @__PURE__ */ jsx118("h4", { children: col.title }),
|
|
4142
4161
|
/* @__PURE__ */ jsx118("ul", { children: col.links.map((l, j) => /* @__PURE__ */ jsx118("li", { children: /* @__PURE__ */ jsx118("a", { href: l.href, children: l.label }) }, j)) })
|
|
4143
4162
|
] }, i)) }),
|
|
4144
|
-
(copyright != null || credit != null) && /* @__PURE__ */
|
|
4163
|
+
(copyright != null || credit != null) && /* @__PURE__ */ jsxs100("div", { className: "oc-block-footer-bottom", children: [
|
|
4145
4164
|
/* @__PURE__ */ jsx118("span", { children: copyright }),
|
|
4146
4165
|
/* @__PURE__ */ jsx118("span", { children: credit })
|
|
4147
4166
|
] })
|
|
@@ -4150,9 +4169,9 @@ var BlockFooter = forwardRef116(function BlockFooter2({ columns, copyright, cred
|
|
|
4150
4169
|
|
|
4151
4170
|
// src/blocks/BlockFormPage.tsx
|
|
4152
4171
|
import { forwardRef as forwardRef117 } from "react";
|
|
4153
|
-
import { jsx as jsx119, jsxs as
|
|
4172
|
+
import { jsx as jsx119, jsxs as jsxs101 } from "react/jsx-runtime";
|
|
4154
4173
|
var BlockFormPage = forwardRef117(function BlockFormPage2({ actions, className, children, ...rest }, ref) {
|
|
4155
|
-
return /* @__PURE__ */
|
|
4174
|
+
return /* @__PURE__ */ jsxs101("form", { ref, className: cx("oc-block-formpage", className), ...rest, children: [
|
|
4156
4175
|
children,
|
|
4157
4176
|
actions != null && /* @__PURE__ */ jsx119("div", { className: "oc-block-formpage-actions", children: actions })
|
|
4158
4177
|
] });
|
|
@@ -4163,9 +4182,9 @@ function BlockFormPageGrid({ className, ...rest }) {
|
|
|
4163
4182
|
|
|
4164
4183
|
// src/blocks/BlockHero.tsx
|
|
4165
4184
|
import { forwardRef as forwardRef118 } from "react";
|
|
4166
|
-
import { jsx as jsx120, jsxs as
|
|
4185
|
+
import { jsx as jsx120, jsxs as jsxs102 } from "react/jsx-runtime";
|
|
4167
4186
|
var BlockHero = forwardRef118(function BlockHero2({ badge, title, description, actions, className, ...rest }, ref) {
|
|
4168
|
-
return /* @__PURE__ */
|
|
4187
|
+
return /* @__PURE__ */ jsxs102("div", { ref, className: cx("oc-block-hero", className), ...rest, children: [
|
|
4169
4188
|
badge != null && /* @__PURE__ */ jsx120("span", { className: "oc-block-hero-badge", children: badge }),
|
|
4170
4189
|
/* @__PURE__ */ jsx120("h1", { children: title }),
|
|
4171
4190
|
description != null && /* @__PURE__ */ jsx120("p", { children: description }),
|
|
@@ -4175,24 +4194,24 @@ var BlockHero = forwardRef118(function BlockHero2({ badge, title, description, a
|
|
|
4175
4194
|
|
|
4176
4195
|
// src/blocks/BlockHeroCode.tsx
|
|
4177
4196
|
import { forwardRef as forwardRef119 } from "react";
|
|
4178
|
-
import { jsx as jsx121, jsxs as
|
|
4197
|
+
import { jsx as jsx121, jsxs as jsxs103 } from "react/jsx-runtime";
|
|
4179
4198
|
var DEFAULT_TILES = [
|
|
4180
4199
|
{ glyph: "\u25C6", accent: "green", style: { inset: "-0.5rem auto auto 8%" } },
|
|
4181
4200
|
{ glyph: "\u25C9", accent: "violet", style: { inset: "0 6% auto auto", animationDelay: "-2s" } },
|
|
4182
4201
|
{ glyph: "\u25B2", accent: "orange", style: { inset: "auto 10% -0.5rem auto", animationDelay: "-4s" } }
|
|
4183
4202
|
];
|
|
4184
4203
|
var BlockHeroCode = forwardRef119(function BlockHeroCode2({ eyebrow, title, lead, actions, codeTitle, code, tiles = DEFAULT_TILES, className, ...rest }, ref) {
|
|
4185
|
-
return /* @__PURE__ */ jsx121("section", { ref, className: cx("oc-section-pad", className), ...rest, children: /* @__PURE__ */
|
|
4186
|
-
/* @__PURE__ */
|
|
4204
|
+
return /* @__PURE__ */ jsx121("section", { ref, className: cx("oc-section-pad", className), ...rest, children: /* @__PURE__ */ jsxs103("div", { className: "oc-container oc-split", children: [
|
|
4205
|
+
/* @__PURE__ */ jsxs103("div", { children: [
|
|
4187
4206
|
eyebrow != null && /* @__PURE__ */ jsx121("p", { className: "oc-eyebrow", children: eyebrow }),
|
|
4188
4207
|
/* @__PURE__ */ jsx121("h1", { className: "oc-display", children: title }),
|
|
4189
4208
|
lead != null && /* @__PURE__ */ jsx121("p", { className: "oc-lead", children: lead }),
|
|
4190
4209
|
actions != null && /* @__PURE__ */ jsx121("div", { className: "flex flex-wrap gap-1 mt-2", children: actions })
|
|
4191
4210
|
] }),
|
|
4192
|
-
/* @__PURE__ */
|
|
4211
|
+
/* @__PURE__ */ jsxs103("div", { className: "relative p-2", children: [
|
|
4193
4212
|
tiles.map((tile, i) => /* @__PURE__ */ jsx121("span", { className: `oc-icon-tile oc-icon-tile--float oc-accent--${tile.accent} absolute`, style: tile.style, "aria-hidden": "true", children: tile.glyph }, i)),
|
|
4194
|
-
/* @__PURE__ */
|
|
4195
|
-
/* @__PURE__ */
|
|
4213
|
+
/* @__PURE__ */ jsxs103("div", { className: "oc-code-window", children: [
|
|
4214
|
+
/* @__PURE__ */ jsxs103("div", { className: "oc-code-window__bar", children: [
|
|
4196
4215
|
/* @__PURE__ */ jsx121("i", {}),
|
|
4197
4216
|
/* @__PURE__ */ jsx121("i", {}),
|
|
4198
4217
|
/* @__PURE__ */ jsx121("i", {}),
|
|
@@ -4206,7 +4225,7 @@ var BlockHeroCode = forwardRef119(function BlockHeroCode2({ eyebrow, title, lead
|
|
|
4206
4225
|
|
|
4207
4226
|
// src/blocks/BlockHeroOrbit.tsx
|
|
4208
4227
|
import { forwardRef as forwardRef120 } from "react";
|
|
4209
|
-
import { jsx as jsx122, jsxs as
|
|
4228
|
+
import { jsx as jsx122, jsxs as jsxs104 } from "react/jsx-runtime";
|
|
4210
4229
|
var DEFAULT_MARKS = [
|
|
4211
4230
|
{ glyph: "\u25C6", accent: "green" },
|
|
4212
4231
|
{ glyph: "\u25C9", accent: "violet" },
|
|
@@ -4217,17 +4236,17 @@ var DEFAULT_MARKS = [
|
|
|
4217
4236
|
];
|
|
4218
4237
|
var BlockHeroOrbit = forwardRef120(function BlockHeroOrbit2({ eyebrow, title, lead, actions, marks = DEFAULT_MARKS, codeTitle, code = "", center, duration, className, ...rest }, ref) {
|
|
4219
4238
|
const visualStyle = duration ? { "--oc-orbit-duration": duration } : void 0;
|
|
4220
|
-
return /* @__PURE__ */ jsx122("section", { ref, className: cx("oc-block-orbit oc-section-pad", className), ...rest, children: /* @__PURE__ */
|
|
4221
|
-
/* @__PURE__ */
|
|
4239
|
+
return /* @__PURE__ */ jsx122("section", { ref, className: cx("oc-block-orbit oc-section-pad", className), ...rest, children: /* @__PURE__ */ jsxs104("div", { className: "oc-container oc-split", children: [
|
|
4240
|
+
/* @__PURE__ */ jsxs104("div", { children: [
|
|
4222
4241
|
eyebrow != null && /* @__PURE__ */ jsx122("p", { className: "oc-eyebrow", children: eyebrow }),
|
|
4223
4242
|
/* @__PURE__ */ jsx122("h1", { className: "oc-display", children: title }),
|
|
4224
4243
|
lead != null && /* @__PURE__ */ jsx122("p", { className: "oc-lead", children: lead }),
|
|
4225
4244
|
actions != null && /* @__PURE__ */ jsx122("div", { className: "flex flex-wrap gap-1 mt-2", children: actions })
|
|
4226
4245
|
] }),
|
|
4227
|
-
/* @__PURE__ */
|
|
4246
|
+
/* @__PURE__ */ jsxs104("div", { className: "oc-block-orbit-visual", style: visualStyle, children: [
|
|
4228
4247
|
/* @__PURE__ */ jsx122("div", { className: "oc-block-orbit-ring", "aria-hidden": "true", children: marks.map((mark, i) => /* @__PURE__ */ jsx122("span", { className: "oc-block-orbit-mark", style: { "--oc-orbit-angle": `${360 / marks.length * i}deg` }, children: /* @__PURE__ */ jsx122("span", { className: `oc-product-mark oc-product-mark--sm oc-accent--${mark.accent}`, children: mark.glyph }) }, i)) }),
|
|
4229
|
-
center ?? /* @__PURE__ */
|
|
4230
|
-
/* @__PURE__ */
|
|
4248
|
+
center ?? /* @__PURE__ */ jsxs104("div", { className: "oc-code-window oc-block-orbit-center", children: [
|
|
4249
|
+
/* @__PURE__ */ jsxs104("div", { className: "oc-code-window__bar", children: [
|
|
4231
4250
|
/* @__PURE__ */ jsx122("i", {}),
|
|
4232
4251
|
/* @__PURE__ */ jsx122("i", {}),
|
|
4233
4252
|
/* @__PURE__ */ jsx122("i", {}),
|
|
@@ -4241,10 +4260,10 @@ var BlockHeroOrbit = forwardRef120(function BlockHeroOrbit2({ eyebrow, title, le
|
|
|
4241
4260
|
|
|
4242
4261
|
// src/blocks/BlockHeroSplit.tsx
|
|
4243
4262
|
import { forwardRef as forwardRef121 } from "react";
|
|
4244
|
-
import { jsx as jsx123, jsxs as
|
|
4263
|
+
import { jsx as jsx123, jsxs as jsxs105 } from "react/jsx-runtime";
|
|
4245
4264
|
var BlockHeroSplit = forwardRef121(function BlockHeroSplit2({ title, description, actions, visual, className, ...rest }, ref) {
|
|
4246
|
-
return /* @__PURE__ */
|
|
4247
|
-
/* @__PURE__ */
|
|
4265
|
+
return /* @__PURE__ */ jsxs105("div", { ref, className: cx("oc-block-hero-split", className), ...rest, children: [
|
|
4266
|
+
/* @__PURE__ */ jsxs105("div", { children: [
|
|
4248
4267
|
/* @__PURE__ */ jsx123("h1", { children: title }),
|
|
4249
4268
|
description != null && /* @__PURE__ */ jsx123("p", { children: description }),
|
|
4250
4269
|
actions != null && /* @__PURE__ */ jsx123("div", { className: "oc-block-hero-actions justify-start", children: actions })
|
|
@@ -4255,12 +4274,12 @@ var BlockHeroSplit = forwardRef121(function BlockHeroSplit2({ title, description
|
|
|
4255
4274
|
|
|
4256
4275
|
// src/blocks/BlockModuleHeader.tsx
|
|
4257
4276
|
import { forwardRef as forwardRef122 } from "react";
|
|
4258
|
-
import { jsx as jsx124, jsxs as
|
|
4277
|
+
import { jsx as jsx124, jsxs as jsxs106 } from "react/jsx-runtime";
|
|
4259
4278
|
var BlockModuleHeader = forwardRef122(function BlockModuleHeader2({ icon, title, intro, meta, actions, className, ...rest }, ref) {
|
|
4260
|
-
return /* @__PURE__ */
|
|
4261
|
-
/* @__PURE__ */
|
|
4279
|
+
return /* @__PURE__ */ jsxs106("header", { ref, className: cx("oc-block-modulehead", className), ...rest, children: [
|
|
4280
|
+
/* @__PURE__ */ jsxs106("div", { className: "oc-block-modulehead-band", children: [
|
|
4262
4281
|
icon != null && /* @__PURE__ */ jsx124("span", { className: "oc-block-modulehead-icon", "aria-hidden": "true", children: icon }),
|
|
4263
|
-
/* @__PURE__ */
|
|
4282
|
+
/* @__PURE__ */ jsxs106("div", { className: "oc-block-modulehead-body", children: [
|
|
4264
4283
|
/* @__PURE__ */ jsx124("h1", { className: "oc-block-modulehead-title", children: title }),
|
|
4265
4284
|
intro != null && /* @__PURE__ */ jsx124("p", { className: "oc-block-modulehead-intro", children: intro }),
|
|
4266
4285
|
meta != null && /* @__PURE__ */ jsx124("div", { className: "oc-block-modulehead-meta", children: meta })
|
|
@@ -4272,9 +4291,9 @@ var BlockModuleHeader = forwardRef122(function BlockModuleHeader2({ icon, title,
|
|
|
4272
4291
|
|
|
4273
4292
|
// src/blocks/BlockPageHero.tsx
|
|
4274
4293
|
import { forwardRef as forwardRef123 } from "react";
|
|
4275
|
-
import { jsx as jsx125, jsxs as
|
|
4294
|
+
import { jsx as jsx125, jsxs as jsxs107 } from "react/jsx-runtime";
|
|
4276
4295
|
var BlockPageHero = forwardRef123(function BlockPageHero2({ eyebrow, title, description, actions, className, ...rest }, ref) {
|
|
4277
|
-
return /* @__PURE__ */
|
|
4296
|
+
return /* @__PURE__ */ jsxs107("section", { ref, className: cx("oc-hero", className), ...rest, children: [
|
|
4278
4297
|
eyebrow != null && /* @__PURE__ */ jsx125("span", { className: "oc-hero-eyebrow", children: eyebrow }),
|
|
4279
4298
|
/* @__PURE__ */ jsx125("h1", { className: "oc-hero-title", children: title }),
|
|
4280
4299
|
description != null && /* @__PURE__ */ jsx125("p", { className: "oc-hero-text", children: description }),
|
|
@@ -4284,12 +4303,12 @@ var BlockPageHero = forwardRef123(function BlockPageHero2({ eyebrow, title, desc
|
|
|
4284
4303
|
|
|
4285
4304
|
// src/blocks/BlockPortfolioGrid.tsx
|
|
4286
4305
|
import { forwardRef as forwardRef124, useId as useId40 } from "react";
|
|
4287
|
-
import { jsx as jsx126, jsxs as
|
|
4306
|
+
import { jsx as jsx126, jsxs as jsxs108 } from "react/jsx-runtime";
|
|
4288
4307
|
var BlockPortfolioGrid = forwardRef124(function BlockPortfolioGrid2({ eyebrow, title, lead, link, projects, two = false, className, ...rest }, ref) {
|
|
4289
4308
|
const titleId = `oc-portfolio-title-${useId40().replace(/[^\w-]/g, "")}`;
|
|
4290
|
-
return /* @__PURE__ */ jsx126("section", { ref, className: cx("oc-block-portfolio oc-section-pad", two && "oc-block-portfolio--two", className), "aria-labelledby": titleId, ...rest, children: /* @__PURE__ */
|
|
4291
|
-
/* @__PURE__ */
|
|
4292
|
-
/* @__PURE__ */
|
|
4309
|
+
return /* @__PURE__ */ jsx126("section", { ref, className: cx("oc-block-portfolio oc-section-pad", two && "oc-block-portfolio--two", className), "aria-labelledby": titleId, ...rest, children: /* @__PURE__ */ jsxs108("div", { className: "oc-container", children: [
|
|
4310
|
+
/* @__PURE__ */ jsxs108("div", { className: "oc-block-portfolio-head", children: [
|
|
4311
|
+
/* @__PURE__ */ jsxs108("div", { children: [
|
|
4293
4312
|
eyebrow != null && /* @__PURE__ */ jsx126("p", { className: "oc-eyebrow", children: eyebrow }),
|
|
4294
4313
|
/* @__PURE__ */ jsx126("h2", { className: "oc-display oc-display--md", id: titleId, children: title }),
|
|
4295
4314
|
lead != null && /* @__PURE__ */ jsx126("p", { className: "oc-block-portfolio-lead", children: lead })
|
|
@@ -4302,19 +4321,19 @@ var BlockPortfolioGrid = forwardRef124(function BlockPortfolioGrid2({ eyebrow, t
|
|
|
4302
4321
|
|
|
4303
4322
|
// src/blocks/BlockPricing.tsx
|
|
4304
4323
|
import { forwardRef as forwardRef125 } from "react";
|
|
4305
|
-
import { Fragment as Fragment27, jsx as jsx127, jsxs as
|
|
4324
|
+
import { Fragment as Fragment27, jsx as jsx127, jsxs as jsxs109 } from "react/jsx-runtime";
|
|
4306
4325
|
var BlockPricing = forwardRef125(function BlockPricing2({ title, description, plans, className, ...rest }, ref) {
|
|
4307
|
-
return /* @__PURE__ */
|
|
4326
|
+
return /* @__PURE__ */ jsxs109("div", { ref, className: cx("oc-block-pricing", className), ...rest, children: [
|
|
4308
4327
|
title != null && /* @__PURE__ */ jsx127("h2", { children: title }),
|
|
4309
4328
|
description != null && /* @__PURE__ */ jsx127("p", { children: description }),
|
|
4310
4329
|
/* @__PURE__ */ jsx127("div", { className: "oc-block-pricing-grid", children: plans.map((plan, i) => {
|
|
4311
4330
|
const variant = plan.featured ? "default" : "outline";
|
|
4312
|
-
return /* @__PURE__ */
|
|
4331
|
+
return /* @__PURE__ */ jsxs109("div", { className: cx("oc-block-pricing-card", plan.featured && "oc-block-pricing-card--featured"), children: [
|
|
4313
4332
|
/* @__PURE__ */ jsx127("p", { className: "oc-block-pricing-name", children: plan.name }),
|
|
4314
4333
|
plan.description != null && /* @__PURE__ */ jsx127("p", { className: "oc-block-pricing-desc", children: plan.description }),
|
|
4315
|
-
/* @__PURE__ */
|
|
4334
|
+
/* @__PURE__ */ jsxs109("p", { className: "oc-block-pricing-price", children: [
|
|
4316
4335
|
plan.price,
|
|
4317
|
-
plan.period != null && /* @__PURE__ */
|
|
4336
|
+
plan.period != null && /* @__PURE__ */ jsxs109(Fragment27, { children: [
|
|
4318
4337
|
" ",
|
|
4319
4338
|
/* @__PURE__ */ jsx127("span", { children: plan.period })
|
|
4320
4339
|
] })
|
|
@@ -4328,16 +4347,16 @@ var BlockPricing = forwardRef125(function BlockPricing2({ title, description, pl
|
|
|
4328
4347
|
|
|
4329
4348
|
// src/blocks/BlockProcess.tsx
|
|
4330
4349
|
import { forwardRef as forwardRef126 } from "react";
|
|
4331
|
-
import { jsx as jsx128, jsxs as
|
|
4350
|
+
import { jsx as jsx128, jsxs as jsxs110 } from "react/jsx-runtime";
|
|
4332
4351
|
var BlockProcess = forwardRef126(function BlockProcess2({ eyebrow, title, steps, marquee, marqueeLabel = "Technologies", className, ...rest }, ref) {
|
|
4333
|
-
return /* @__PURE__ */ jsx128("section", { ref, className: cx("oc-section-pad", className), ...rest, children: /* @__PURE__ */
|
|
4352
|
+
return /* @__PURE__ */ jsx128("section", { ref, className: cx("oc-section-pad", className), ...rest, children: /* @__PURE__ */ jsxs110("div", { className: "oc-container", children: [
|
|
4334
4353
|
eyebrow != null && /* @__PURE__ */ jsx128("p", { className: "oc-eyebrow", children: eyebrow }),
|
|
4335
4354
|
/* @__PURE__ */ jsx128("h2", { className: "oc-display oc-display--md", children: title }),
|
|
4336
|
-
/* @__PURE__ */ jsx128("ol", { className: "oc-steps", children: steps.map((s, i) => /* @__PURE__ */
|
|
4355
|
+
/* @__PURE__ */ jsx128("ol", { className: "oc-steps", children: steps.map((s, i) => /* @__PURE__ */ jsxs110("li", { children: [
|
|
4337
4356
|
/* @__PURE__ */ jsx128("h3", { children: s.title }),
|
|
4338
4357
|
s.text != null && /* @__PURE__ */ jsx128("p", { children: s.text })
|
|
4339
4358
|
] }, i)) }),
|
|
4340
|
-
marquee && marquee.length > 0 && /* @__PURE__ */ jsx128("div", { className: "oc-marquee mt-4", "aria-label": marqueeLabel, children: /* @__PURE__ */
|
|
4359
|
+
marquee && marquee.length > 0 && /* @__PURE__ */ jsx128("div", { className: "oc-marquee mt-4", "aria-label": marqueeLabel, children: /* @__PURE__ */ jsxs110("div", { className: "oc-marquee__track", children: [
|
|
4341
4360
|
marquee.map((m) => /* @__PURE__ */ jsx128("span", { className: "oc-marquee__item", children: m }, m)),
|
|
4342
4361
|
marquee.map((m) => /* @__PURE__ */ jsx128("span", { className: "oc-marquee__item", "aria-hidden": "true", children: m }, `dup-${m}`))
|
|
4343
4362
|
] }) })
|
|
@@ -4346,13 +4365,13 @@ var BlockProcess = forwardRef126(function BlockProcess2({ eyebrow, title, steps,
|
|
|
4346
4365
|
|
|
4347
4366
|
// src/blocks/BlockProductGrid.tsx
|
|
4348
4367
|
import { forwardRef as forwardRef127 } from "react";
|
|
4349
|
-
import { jsx as jsx129, jsxs as
|
|
4368
|
+
import { jsx as jsx129, jsxs as jsxs111 } from "react/jsx-runtime";
|
|
4350
4369
|
var BlockProductGrid = forwardRef127(function BlockProductGrid2({ eyebrow, title, products, className, ...rest }, ref) {
|
|
4351
|
-
return /* @__PURE__ */ jsx129("section", { ref, className: cx("oc-section-pad", className), ...rest, children: /* @__PURE__ */
|
|
4370
|
+
return /* @__PURE__ */ jsx129("section", { ref, className: cx("oc-section-pad", className), ...rest, children: /* @__PURE__ */ jsxs111("div", { className: "oc-container", children: [
|
|
4352
4371
|
eyebrow != null && /* @__PURE__ */ jsx129("p", { className: "oc-eyebrow", children: eyebrow }),
|
|
4353
4372
|
/* @__PURE__ */ jsx129("h2", { className: "oc-display oc-display--md", children: title }),
|
|
4354
|
-
/* @__PURE__ */ jsx129("div", { className: "oc-card-grid", children: products.map((p, i) => /* @__PURE__ */
|
|
4355
|
-
/* @__PURE__ */
|
|
4373
|
+
/* @__PURE__ */ jsx129("div", { className: "oc-card-grid", children: products.map((p, i) => /* @__PURE__ */ jsxs111("a", { className: cx("oc-product-card", p.accent && `oc-accent--${p.accent}`), href: p.href, children: [
|
|
4374
|
+
/* @__PURE__ */ jsxs111("div", { className: "oc-product-card__top", children: [
|
|
4356
4375
|
p.icon != null && /* @__PURE__ */ jsx129("span", { className: "oc-icon-tile", "aria-hidden": "true", children: p.icon }),
|
|
4357
4376
|
p.pill != null && /* @__PURE__ */ jsx129("span", { className: "oc-pill", children: p.pill })
|
|
4358
4377
|
] }),
|
|
@@ -4366,16 +4385,16 @@ var BlockProductGrid = forwardRef127(function BlockProductGrid2({ eyebrow, title
|
|
|
4366
4385
|
|
|
4367
4386
|
// src/blocks/BlockProfileHeader.tsx
|
|
4368
4387
|
import { forwardRef as forwardRef128, useId as useId41 } from "react";
|
|
4369
|
-
import { jsx as jsx130, jsxs as
|
|
4388
|
+
import { jsx as jsx130, jsxs as jsxs112 } from "react/jsx-runtime";
|
|
4370
4389
|
var BlockProfileHeader = forwardRef128(function BlockProfileHeader2({ name, meta, bio, avatar, banner, actions, tabs = [], tabsLabel = "Profile sections", compact = false, headingLevel = 1, className, ...rest }, ref) {
|
|
4371
4390
|
const nameId = `oc-profile-name-${useId41().replace(/[^\w-]/g, "")}`;
|
|
4372
4391
|
const Heading3 = headingLevel === 1 ? "h1" : "h2";
|
|
4373
4392
|
const bannerStyle = banner ? { "--oc-profile-banner": `url("${banner}")` } : void 0;
|
|
4374
|
-
return /* @__PURE__ */
|
|
4393
|
+
return /* @__PURE__ */ jsxs112("section", { ref, className: cx("oc-block-profile", compact && "oc-block-profile--compact", className), "aria-labelledby": nameId, ...rest, children: [
|
|
4375
4394
|
/* @__PURE__ */ jsx130("div", { className: "oc-block-profile-banner", style: bannerStyle, "aria-hidden": "true" }),
|
|
4376
|
-
/* @__PURE__ */
|
|
4395
|
+
/* @__PURE__ */ jsxs112("div", { className: "oc-block-profile-bar", children: [
|
|
4377
4396
|
/* @__PURE__ */ jsx130("span", { className: "oc-avatar oc-block-profile-avatar", "aria-hidden": "true", children: avatar }),
|
|
4378
|
-
/* @__PURE__ */
|
|
4397
|
+
/* @__PURE__ */ jsxs112("div", { className: "oc-block-profile-info", children: [
|
|
4379
4398
|
/* @__PURE__ */ jsx130(Heading3, { className: "oc-block-profile-name", id: nameId, children: name }),
|
|
4380
4399
|
meta != null && /* @__PURE__ */ jsx130("p", { className: "oc-block-profile-meta", children: meta }),
|
|
4381
4400
|
bio != null && /* @__PURE__ */ jsx130("p", { className: "oc-block-profile-bio", children: bio })
|
|
@@ -4388,21 +4407,21 @@ var BlockProfileHeader = forwardRef128(function BlockProfileHeader2({ name, meta
|
|
|
4388
4407
|
|
|
4389
4408
|
// src/blocks/BlockShowcase.tsx
|
|
4390
4409
|
import { forwardRef as forwardRef129 } from "react";
|
|
4391
|
-
import { jsx as jsx131, jsxs as
|
|
4410
|
+
import { jsx as jsx131, jsxs as jsxs113 } from "react/jsx-runtime";
|
|
4392
4411
|
var BlockShowcase = forwardRef129(function BlockShowcase2({ eyebrow, title, projects, cardMin = "26rem", className, ...rest }, ref) {
|
|
4393
|
-
return /* @__PURE__ */ jsx131("section", { ref, className: cx("oc-section-pad", className), ...rest, children: /* @__PURE__ */
|
|
4412
|
+
return /* @__PURE__ */ jsx131("section", { ref, className: cx("oc-section-pad", className), ...rest, children: /* @__PURE__ */ jsxs113("div", { className: "oc-container", children: [
|
|
4394
4413
|
eyebrow != null && /* @__PURE__ */ jsx131("p", { className: "oc-eyebrow", children: eyebrow }),
|
|
4395
4414
|
/* @__PURE__ */ jsx131("h2", { className: "oc-display oc-display--md", children: title }),
|
|
4396
|
-
/* @__PURE__ */ jsx131("div", { className: "oc-card-grid", style: { "--oc-card-min": cardMin }, children: projects.map((p, i) => /* @__PURE__ */
|
|
4397
|
-
/* @__PURE__ */
|
|
4398
|
-
/* @__PURE__ */
|
|
4415
|
+
/* @__PURE__ */ jsx131("div", { className: "oc-card-grid", style: { "--oc-card-min": cardMin }, children: projects.map((p, i) => /* @__PURE__ */ jsxs113("a", { className: cx("oc-product-card", p.accent && `oc-accent--${p.accent}`, "p-0 overflow-hidden"), href: p.href, children: [
|
|
4416
|
+
/* @__PURE__ */ jsxs113("span", { className: "oc-browser-frame m-1", children: [
|
|
4417
|
+
/* @__PURE__ */ jsxs113("span", { className: "oc-browser-frame__bar", children: [
|
|
4399
4418
|
/* @__PURE__ */ jsx131("i", {}),
|
|
4400
4419
|
/* @__PURE__ */ jsx131("i", {}),
|
|
4401
4420
|
/* @__PURE__ */ jsx131("i", {})
|
|
4402
4421
|
] }),
|
|
4403
4422
|
/* @__PURE__ */ jsx131("span", { className: "oc-browser-frame__body", style: p.background ? { background: p.background } : void 0, children: p.image && /* @__PURE__ */ jsx131("img", { src: p.image, alt: p.imageAlt ?? "" }) })
|
|
4404
4423
|
] }),
|
|
4405
|
-
/* @__PURE__ */
|
|
4424
|
+
/* @__PURE__ */ jsxs113("span", { className: "grid gap-0.5 p-1.5 pt-0", children: [
|
|
4406
4425
|
p.pill != null && /* @__PURE__ */ jsx131("span", { className: "oc-pill oc-pill--accent", children: p.pill }),
|
|
4407
4426
|
/* @__PURE__ */ jsx131("span", { className: "oc-product-card__name", children: p.name }),
|
|
4408
4427
|
p.summary != null && /* @__PURE__ */ jsx131("span", { className: "oc-product-card__summary", children: p.summary }),
|
|
@@ -4414,21 +4433,21 @@ var BlockShowcase = forwardRef129(function BlockShowcase2({ eyebrow, title, proj
|
|
|
4414
4433
|
|
|
4415
4434
|
// src/blocks/BlockSiteFooter.tsx
|
|
4416
4435
|
import { forwardRef as forwardRef130 } from "react";
|
|
4417
|
-
import { jsx as jsx132, jsxs as
|
|
4436
|
+
import { jsx as jsx132, jsxs as jsxs114 } from "react/jsx-runtime";
|
|
4418
4437
|
var BlockSiteFooter = forwardRef130(function BlockSiteFooter2({ brand, brandHref = "/", about, columns, copyright, credit, className, ...rest }, ref) {
|
|
4419
|
-
return /* @__PURE__ */ jsx132("footer", { ref, className: cx("oc-site-footer", className), ...rest, children: /* @__PURE__ */
|
|
4420
|
-
/* @__PURE__ */
|
|
4421
|
-
/* @__PURE__ */
|
|
4438
|
+
return /* @__PURE__ */ jsx132("footer", { ref, className: cx("oc-site-footer", className), ...rest, children: /* @__PURE__ */ jsxs114("div", { className: "oc-container", children: [
|
|
4439
|
+
/* @__PURE__ */ jsxs114("div", { className: "oc-site-footer__grid", children: [
|
|
4440
|
+
/* @__PURE__ */ jsxs114("div", { className: "oc-site-footer__about", children: [
|
|
4422
4441
|
/* @__PURE__ */ jsx132("a", { className: "oc-site-header__brand", href: brandHref, children: brand }),
|
|
4423
4442
|
about != null && /* @__PURE__ */ jsx132("p", { children: about })
|
|
4424
4443
|
] }),
|
|
4425
|
-
columns.map((col, i) => /* @__PURE__ */
|
|
4444
|
+
columns.map((col, i) => /* @__PURE__ */ jsxs114("div", { children: [
|
|
4426
4445
|
/* @__PURE__ */ jsx132("h2", { className: "oc-site-footer__title", children: col.title }),
|
|
4427
4446
|
col.links && /* @__PURE__ */ jsx132("ul", { className: "oc-site-footer__list", children: col.links.map((l, j) => /* @__PURE__ */ jsx132("li", { children: /* @__PURE__ */ jsx132("a", { href: l.href, children: l.label }) }, j)) }),
|
|
4428
4447
|
col.address != null && /* @__PURE__ */ jsx132("address", { className: "oc-site-footer__list", children: col.address })
|
|
4429
4448
|
] }, i))
|
|
4430
4449
|
] }),
|
|
4431
|
-
(copyright != null || credit != null) && /* @__PURE__ */
|
|
4450
|
+
(copyright != null || credit != null) && /* @__PURE__ */ jsxs114("div", { className: "oc-site-footer__bottom", children: [
|
|
4432
4451
|
/* @__PURE__ */ jsx132("span", { children: copyright }),
|
|
4433
4452
|
/* @__PURE__ */ jsx132("span", { children: credit })
|
|
4434
4453
|
] })
|
|
@@ -4437,13 +4456,13 @@ var BlockSiteFooter = forwardRef130(function BlockSiteFooter2({ brand, brandHref
|
|
|
4437
4456
|
|
|
4438
4457
|
// src/blocks/BlockSiteHeader.tsx
|
|
4439
4458
|
import { forwardRef as forwardRef131, useId as useId42 } from "react";
|
|
4440
|
-
import { jsx as jsx133, jsxs as
|
|
4459
|
+
import { jsx as jsx133, jsxs as jsxs115 } from "react/jsx-runtime";
|
|
4441
4460
|
var BlockSiteHeader = forwardRef131(function BlockSiteHeader2({ brand, brandHref = "/", links, cta, menuLabel = "Menu", className, ...rest }, ref) {
|
|
4442
4461
|
const navId = `oc-site-nav-${useId42().replace(/:/g, "")}`;
|
|
4443
|
-
return /* @__PURE__ */ jsx133("header", { ref, className: cx("oc-site-header", className), ...rest, children: /* @__PURE__ */
|
|
4462
|
+
return /* @__PURE__ */ jsx133("header", { ref, className: cx("oc-site-header", className), ...rest, children: /* @__PURE__ */ jsxs115("div", { className: "oc-container oc-site-header__inner", children: [
|
|
4444
4463
|
/* @__PURE__ */ jsx133("a", { className: "oc-site-header__brand", href: brandHref, children: brand }),
|
|
4445
|
-
/* @__PURE__ */ jsx133("button", { className: "oc-site-header__toggle", type: "button", "aria-label": menuLabel,
|
|
4446
|
-
/* @__PURE__ */
|
|
4464
|
+
/* @__PURE__ */ jsx133("button", { className: "oc-site-header__toggle", type: "button", "aria-label": menuLabel, popoverTarget: navId, children: "\u2630" }),
|
|
4465
|
+
/* @__PURE__ */ jsxs115("nav", { className: "oc-site-header__nav", id: navId, "aria-label": "Main", ...attrs({ popover: "" }), children: [
|
|
4447
4466
|
links.map((l, i) => /* @__PURE__ */ jsx133("a", { href: l.href, "aria-current": l.current ? "page" : void 0, children: l.label }, i)),
|
|
4448
4467
|
cta
|
|
4449
4468
|
] })
|
|
@@ -4452,15 +4471,15 @@ var BlockSiteHeader = forwardRef131(function BlockSiteHeader2({ brand, brandHref
|
|
|
4452
4471
|
|
|
4453
4472
|
// src/blocks/BlockSpotlight.tsx
|
|
4454
4473
|
import { forwardRef as forwardRef132 } from "react";
|
|
4455
|
-
import { jsx as jsx134, jsxs as
|
|
4474
|
+
import { jsx as jsx134, jsxs as jsxs116 } from "react/jsx-runtime";
|
|
4456
4475
|
var BlockSpotlight = forwardRef132(function BlockSpotlight2({ accent, badge, icon, title, tagline, lead, action, modules, className, ...rest }, ref) {
|
|
4457
|
-
return /* @__PURE__ */ jsx134("section", { ref, className: cx("oc-section-pad", className), ...rest, children: /* @__PURE__ */ jsx134("div", { className: "oc-container", children: /* @__PURE__ */
|
|
4458
|
-
/* @__PURE__ */
|
|
4459
|
-
badge != null && /* @__PURE__ */
|
|
4476
|
+
return /* @__PURE__ */ jsx134("section", { ref, className: cx("oc-section-pad", className), ...rest, children: /* @__PURE__ */ jsx134("div", { className: "oc-container", children: /* @__PURE__ */ jsxs116("div", { className: cx("oc-spotlight", accent && `oc-accent--${accent}`), children: [
|
|
4477
|
+
/* @__PURE__ */ jsxs116("div", { children: [
|
|
4478
|
+
badge != null && /* @__PURE__ */ jsxs116("span", { className: "oc-pill oc-pill--accent", children: [
|
|
4460
4479
|
/* @__PURE__ */ jsx134("span", { className: "oc-status-dot" }),
|
|
4461
4480
|
badge
|
|
4462
4481
|
] }),
|
|
4463
|
-
/* @__PURE__ */
|
|
4482
|
+
/* @__PURE__ */ jsxs116("h2", { className: "oc-spotlight__title", children: [
|
|
4464
4483
|
icon != null && /* @__PURE__ */ jsx134("span", { className: "oc-icon-tile oc-icon-tile--lg", "aria-hidden": "true", children: icon }),
|
|
4465
4484
|
title
|
|
4466
4485
|
] }),
|
|
@@ -4468,7 +4487,7 @@ var BlockSpotlight = forwardRef132(function BlockSpotlight2({ accent, badge, ico
|
|
|
4468
4487
|
lead != null && /* @__PURE__ */ jsx134("p", { className: "oc-lead", children: lead }),
|
|
4469
4488
|
action
|
|
4470
4489
|
] }),
|
|
4471
|
-
modules && /* @__PURE__ */ jsx134("ul", { className: "oc-spotlight__modules", children: modules.map((m, i) => /* @__PURE__ */
|
|
4490
|
+
modules && /* @__PURE__ */ jsx134("ul", { className: "oc-spotlight__modules", children: modules.map((m, i) => /* @__PURE__ */ jsxs116("li", { children: [
|
|
4472
4491
|
m.icon != null && /* @__PURE__ */ jsx134("span", { className: "oc-icon-tile oc-icon-tile--sm", "aria-hidden": "true", children: m.icon }),
|
|
4473
4492
|
m.label
|
|
4474
4493
|
] }, i)) })
|
|
@@ -4477,9 +4496,9 @@ var BlockSpotlight = forwardRef132(function BlockSpotlight2({ accent, badge, ico
|
|
|
4477
4496
|
|
|
4478
4497
|
// src/blocks/BlockStats.tsx
|
|
4479
4498
|
import { forwardRef as forwardRef133 } from "react";
|
|
4480
|
-
import { jsx as jsx135, jsxs as
|
|
4499
|
+
import { jsx as jsx135, jsxs as jsxs117 } from "react/jsx-runtime";
|
|
4481
4500
|
var BlockStats = forwardRef133(function BlockStats2({ stats, className, ...rest }, ref) {
|
|
4482
|
-
return /* @__PURE__ */ jsx135("div", { ref, className: cx("oc-block-stats", className), ...rest, children: stats.map((s, i) => /* @__PURE__ */
|
|
4501
|
+
return /* @__PURE__ */ jsx135("div", { ref, className: cx("oc-block-stats", className), ...rest, children: stats.map((s, i) => /* @__PURE__ */ jsxs117("div", { className: "oc-block-stat", children: [
|
|
4483
4502
|
/* @__PURE__ */ jsx135("div", { className: "oc-block-stat-value", children: s.value }),
|
|
4484
4503
|
/* @__PURE__ */ jsx135("div", { className: "oc-block-stat-label", children: s.label })
|
|
4485
4504
|
] }, i)) });
|
|
@@ -4487,9 +4506,9 @@ var BlockStats = forwardRef133(function BlockStats2({ stats, className, ...rest
|
|
|
4487
4506
|
|
|
4488
4507
|
// src/blocks/BlockStatsCounter.tsx
|
|
4489
4508
|
import { forwardRef as forwardRef134 } from "react";
|
|
4490
|
-
import { jsx as jsx136, jsxs as
|
|
4509
|
+
import { jsx as jsx136, jsxs as jsxs118 } from "react/jsx-runtime";
|
|
4491
4510
|
var BlockStatsCounter = forwardRef134(function BlockStatsCounter2({ stats, className, ...rest }, ref) {
|
|
4492
|
-
return /* @__PURE__ */ jsx136("div", { ref, className: cx("oc-block-stats", className), ...rest, children: stats.map((s, i) => /* @__PURE__ */
|
|
4511
|
+
return /* @__PURE__ */ jsx136("div", { ref, className: cx("oc-block-stats", className), ...rest, children: stats.map((s, i) => /* @__PURE__ */ jsxs118("div", { className: "oc-block-stat", children: [
|
|
4493
4512
|
/* @__PURE__ */ jsx136(Counter, { className: "oc-block-stat-value", to: s.to, suffix: s.suffix }),
|
|
4494
4513
|
/* @__PURE__ */ jsx136("span", { className: "oc-block-stat-label", children: s.label })
|
|
4495
4514
|
] }, i)) });
|
|
@@ -4497,11 +4516,11 @@ var BlockStatsCounter = forwardRef134(function BlockStatsCounter2({ stats, class
|
|
|
4497
4516
|
|
|
4498
4517
|
// src/blocks/BlockTeamList.tsx
|
|
4499
4518
|
import { forwardRef as forwardRef135 } from "react";
|
|
4500
|
-
import { Fragment as Fragment28, jsx as jsx137, jsxs as
|
|
4519
|
+
import { Fragment as Fragment28, jsx as jsx137, jsxs as jsxs119 } from "react/jsx-runtime";
|
|
4501
4520
|
var BlockTeamList = forwardRef135(function BlockTeamList2({ members, className, ...rest }, ref) {
|
|
4502
|
-
return /* @__PURE__ */ jsx137("div", { ref, className: cx("oc-block-team", className), ...rest, children: members.map((m, i) => /* @__PURE__ */
|
|
4521
|
+
return /* @__PURE__ */ jsx137("div", { ref, className: cx("oc-block-team", className), ...rest, children: members.map((m, i) => /* @__PURE__ */ jsxs119("div", { className: "oc-block-team-row", children: [
|
|
4503
4522
|
/* @__PURE__ */ jsx137(User, { name: m.name, email: m.email, initials: m.initials, avatarSrc: m.avatarSrc }),
|
|
4504
|
-
/* @__PURE__ */
|
|
4523
|
+
/* @__PURE__ */ jsxs119("div", { className: "oc-block-team-meta", children: [
|
|
4505
4524
|
m.role != null && /* @__PURE__ */ jsx137(Badge, { variant: m.roleVariant, children: m.role }),
|
|
4506
4525
|
m.menu != null && /* @__PURE__ */ jsx137(Dropdown, { trigger: /* @__PURE__ */ jsx137(Fragment28, { children: "\u2026" }), triggerProps: { variant: "ghost", icon: true, size: "sm", type: "button", "aria-label": m.menuLabel ?? "Member actions" }, children: m.menu })
|
|
4507
4526
|
] })
|
|
@@ -4510,7 +4529,7 @@ var BlockTeamList = forwardRef135(function BlockTeamList2({ members, className,
|
|
|
4510
4529
|
|
|
4511
4530
|
// src/blocks/BlockTwoFactor.tsx
|
|
4512
4531
|
import { forwardRef as forwardRef136, useId as useId43, useState as useState15 } from "react";
|
|
4513
|
-
import { jsx as jsx138, jsxs as
|
|
4532
|
+
import { jsx as jsx138, jsxs as jsxs120 } from "react/jsx-runtime";
|
|
4514
4533
|
var BlockTwoFactor = forwardRef136(function BlockTwoFactor2({ qr, setupKey, recoveryCodes, codeLength = 6, onSubmit, submitLabel = "Enable two-factor", className, ...rest }, ref) {
|
|
4515
4534
|
const id = `oc-twofactor-${useId43().replace(/:/g, "")}`;
|
|
4516
4535
|
const [code, setCode] = useState15("");
|
|
@@ -4518,17 +4537,17 @@ var BlockTwoFactor = forwardRef136(function BlockTwoFactor2({ qr, setupKey, reco
|
|
|
4518
4537
|
e.preventDefault();
|
|
4519
4538
|
onSubmit?.(code);
|
|
4520
4539
|
};
|
|
4521
|
-
return /* @__PURE__ */
|
|
4522
|
-
/* @__PURE__ */
|
|
4540
|
+
return /* @__PURE__ */ jsxs120("div", { ref, className: cx("oc-block-twofactor", className), ...rest, children: [
|
|
4541
|
+
/* @__PURE__ */ jsxs120("section", { className: "oc-block-twofactor-step", children: [
|
|
4523
4542
|
/* @__PURE__ */ jsx138(Heading, { size: "sm", title: "1. Scan the QR code", description: "Use an authenticator app, or enter the key manually." }),
|
|
4524
|
-
/* @__PURE__ */
|
|
4543
|
+
/* @__PURE__ */ jsxs120("div", { className: "oc-block-twofactor-center", children: [
|
|
4525
4544
|
qr ?? /* @__PURE__ */ jsx138("div", { className: "oc-block-twofactor-qr", role: "img", "aria-label": "QR code", children: "QR code" }),
|
|
4526
4545
|
/* @__PURE__ */ jsx138(CopyField, { value: setupKey, label: "Setup key" })
|
|
4527
4546
|
] })
|
|
4528
4547
|
] }),
|
|
4529
|
-
/* @__PURE__ */
|
|
4548
|
+
/* @__PURE__ */ jsxs120("form", { className: "oc-block-twofactor-step", onSubmit: submit, children: [
|
|
4530
4549
|
/* @__PURE__ */ jsx138(Heading, { size: "sm", title: "2. Confirm with a code" }),
|
|
4531
|
-
/* @__PURE__ */
|
|
4550
|
+
/* @__PURE__ */ jsxs120("div", { className: "oc-field", children: [
|
|
4532
4551
|
/* @__PURE__ */ jsx138("label", { className: "oc-field-label", htmlFor: id, children: "Authentication code" }),
|
|
4533
4552
|
/* @__PURE__ */ jsx138(OtpInput, { id, name: "code", length: codeLength, value: code, onChange: setCode })
|
|
4534
4553
|
] }),
|
|
@@ -4540,7 +4559,7 @@ var BlockTwoFactor = forwardRef136(function BlockTwoFactor2({ qr, setupKey, reco
|
|
|
4540
4559
|
|
|
4541
4560
|
// src/blocks/BlockWizardDialog.tsx
|
|
4542
4561
|
import { forwardRef as forwardRef137, useId as useId44, useRef as useRef13 } from "react";
|
|
4543
|
-
import { jsx as jsx139, jsxs as
|
|
4562
|
+
import { jsx as jsx139, jsxs as jsxs121 } from "react/jsx-runtime";
|
|
4544
4563
|
var BlockWizardDialog = forwardRef137(function BlockWizardDialog2({
|
|
4545
4564
|
open,
|
|
4546
4565
|
defaultOpen,
|
|
@@ -4574,15 +4593,15 @@ var BlockWizardDialog = forwardRef137(function BlockWizardDialog2({
|
|
|
4574
4593
|
...attrs({ closedby: "closerequest" }),
|
|
4575
4594
|
...rest,
|
|
4576
4595
|
onClose: dlg.onClose,
|
|
4577
|
-
children: /* @__PURE__ */ jsx139(DialogContext.Provider, { value: { close: dlg.close }, children: /* @__PURE__ */ jsx139("div", { className: "oc-modal-content oc-modal-content--xl", children: /* @__PURE__ */
|
|
4596
|
+
children: /* @__PURE__ */ jsx139(DialogContext.Provider, { value: { close: dlg.close }, children: /* @__PURE__ */ jsx139("div", { className: "oc-modal-content oc-modal-content--xl", children: /* @__PURE__ */ jsxs121("div", { className: "oc-block-wizard", children: [
|
|
4578
4597
|
/* @__PURE__ */ jsx139("div", { className: "oc-block-wizard-rail", children: /* @__PURE__ */ jsx139(Stepper, { steps: steps.map((s) => ({ label: s.label })), current, onStepChange: setCurrent, "aria-label": stepperLabel }) }),
|
|
4579
|
-
/* @__PURE__ */
|
|
4580
|
-
/* @__PURE__ */
|
|
4598
|
+
/* @__PURE__ */ jsxs121("div", { className: "oc-block-wizard-main", children: [
|
|
4599
|
+
/* @__PURE__ */ jsxs121("div", { className: "oc-modal-header", children: [
|
|
4581
4600
|
/* @__PURE__ */ jsx139("h2", { className: "oc-modal-title", id: titleId, children: active?.label }),
|
|
4582
4601
|
/* @__PURE__ */ jsx139("p", { className: "oc-modal-description", children: description ?? `Step ${current + 1} of ${steps.length}` })
|
|
4583
4602
|
] }),
|
|
4584
4603
|
/* @__PURE__ */ jsx139("div", { className: "oc-block-wizard-step", children: active?.content }),
|
|
4585
|
-
/* @__PURE__ */
|
|
4604
|
+
/* @__PURE__ */ jsxs121("div", { className: "oc-modal-footer", children: [
|
|
4586
4605
|
/* @__PURE__ */ jsx139("button", { className: "oc-btn oc-btn--outline", type: "button", disabled: current === 0, onClick: () => setCurrent(current - 1), children: backLabel }),
|
|
4587
4606
|
/* @__PURE__ */ jsx139(
|
|
4588
4607
|
"button",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@birdycom/omniaui-react",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.1",
|
|
4
4
|
"description": "OmniaUI for React: typed function components and page blocks that render the exact @birdycom/omniaui and @birdycom/omniaui-blocks markup.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -29,7 +29,7 @@ export const BlockSiteHeader = forwardRef<HTMLElement, BlockSiteHeaderProps>(fun
|
|
|
29
29
|
<header ref={ref} className={cx("oc-site-header", className)} {...rest}>
|
|
30
30
|
<div className="oc-container oc-site-header__inner">
|
|
31
31
|
<a className="oc-site-header__brand" href={brandHref}>{brand}</a>
|
|
32
|
-
<button className="oc-site-header__toggle" type="button" aria-label={menuLabel} {
|
|
32
|
+
<button className="oc-site-header__toggle" type="button" aria-label={menuLabel} popoverTarget={navId}>☰</button>
|
|
33
33
|
<nav className="oc-site-header__nav" id={navId} aria-label="Main" {...attrs({ popover: "" })}>
|
|
34
34
|
{links.map((l, i) => (
|
|
35
35
|
<a key={i} href={l.href} aria-current={l.current ? "page" : undefined}>{l.label}</a>
|
|
@@ -36,7 +36,7 @@ export const ColumnMenu = forwardRef<HTMLDivElement, ColumnMenuProps>(function C
|
|
|
36
36
|
<div ref={ref} className={cx("oc-column-menu-scope", className)} {...rest}>
|
|
37
37
|
<div className="oc-table-toolbar">
|
|
38
38
|
<span className="oc-table-toolbar-spacer" />
|
|
39
|
-
<button className="oc-btn oc-btn--outline oc-btn--sm" type="button" {
|
|
39
|
+
<button className="oc-btn oc-btn--outline oc-btn--sm" type="button" popoverTarget={menuId}>
|
|
40
40
|
{triggerLabel}
|
|
41
41
|
</button>
|
|
42
42
|
</div>
|
|
@@ -12,7 +12,7 @@ export interface DropdownProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
|
-
* Trigger button + `<div class="oc-dropdown-menu" popover>`, wired with `
|
|
15
|
+
* Trigger button + `<div class="oc-dropdown-menu" popover>`, wired with `popoverTarget`
|
|
16
16
|
* (native popover and anchor positioning, no state needed).
|
|
17
17
|
*/
|
|
18
18
|
export const Dropdown = forwardRef<HTMLDivElement, DropdownProps>(function Dropdown(
|
|
@@ -23,7 +23,7 @@ export const Dropdown = forwardRef<HTMLDivElement, DropdownProps>(function Dropd
|
|
|
23
23
|
const menuId = id ?? `oc-menu-${auto.replace(/:/g, "")}`;
|
|
24
24
|
return (
|
|
25
25
|
<>
|
|
26
|
-
<Button variant="outline" {...triggerProps} {
|
|
26
|
+
<Button variant="outline" {...triggerProps} popoverTarget={menuId}>{trigger}</Button>
|
|
27
27
|
<div ref={ref} className={cx("oc-dropdown-menu", className)} id={menuId} {...attrs({ popover: "" })} {...rest}>
|
|
28
28
|
{children}
|
|
29
29
|
</div>
|
|
@@ -65,7 +65,7 @@ export const EmojiPicker = forwardRef<HTMLDivElement, EmojiPickerProps>(function
|
|
|
65
65
|
if (inline) return panel;
|
|
66
66
|
return (
|
|
67
67
|
<>
|
|
68
|
-
<button type="button" className="oc-emoji-picker__trigger" aria-label={triggerLabel} {
|
|
68
|
+
<button type="button" className="oc-emoji-picker__trigger" aria-label={triggerLabel} popoverTarget={panelId}>{trigger}</button>
|
|
69
69
|
{panel}
|
|
70
70
|
</>
|
|
71
71
|
);
|
|
@@ -43,6 +43,20 @@ export const Lightbox = forwardRef<HTMLDialogElement, LightboxProps>(function Li
|
|
|
43
43
|
const single = images.length === 1;
|
|
44
44
|
const slideId = (i: number) => `${base}-${((i % images.length) + images.length) % images.length + 1}`;
|
|
45
45
|
|
|
46
|
+
// Prev / next stay links (they work without JavaScript), but scroll without putting #slide in the address and the
|
|
47
|
+
// history; on close a slide hash of this viewer is removed (it was there when the links were followed natively).
|
|
48
|
+
const go = (i: number) => (e: { preventDefault(): void }) => {
|
|
49
|
+
const slide = document.getElementById(slideId(i));
|
|
50
|
+
if (!slide) return;
|
|
51
|
+
e.preventDefault();
|
|
52
|
+
slide.scrollIntoView?.({ behavior: matchMedia("(prefers-reduced-motion: reduce)").matches ? "instant" as ScrollBehavior : "smooth", block: "nearest", inline: "center" });
|
|
53
|
+
};
|
|
54
|
+
const onClose: typeof dlg.onClose = (...args) => {
|
|
55
|
+
const slide = location.hash && document.getElementById(decodeURIComponent(location.hash.slice(1)));
|
|
56
|
+
if (slide && inner.current?.contains(slide)) history.replaceState(history.state, "", location.pathname + location.search);
|
|
57
|
+
return dlg.onClose(...args);
|
|
58
|
+
};
|
|
59
|
+
|
|
46
60
|
// After opening: jump (without animation) to the photo that was clicked.
|
|
47
61
|
useEffect(() => {
|
|
48
62
|
if (dlg.open) document.getElementById(slideId(start))?.scrollIntoView?.({ behavior: "instant" as ScrollBehavior, block: "nearest", inline: "center" });
|
|
@@ -60,7 +74,7 @@ export const Lightbox = forwardRef<HTMLDialogElement, LightboxProps>(function Li
|
|
|
60
74
|
))}
|
|
61
75
|
</div>
|
|
62
76
|
)}
|
|
63
|
-
<dialog ref={ref} className={cx("oc-lightbox", single && "oc-lightbox--single", className)} aria-label={label} {...attrs({ closedby: "any" })} {...rest} onClose={
|
|
77
|
+
<dialog ref={ref} className={cx("oc-lightbox", single && "oc-lightbox--single", className)} aria-label={label} {...attrs({ closedby: "any" })} {...rest} onClose={onClose}>
|
|
64
78
|
<div className="oc-lightbox__bar">
|
|
65
79
|
{title != null ? <h2 className="oc-lightbox__title">{title}</h2> : <span />}
|
|
66
80
|
<button type="button" className="oc-lightbox__close" aria-label="Close" onClick={dlg.close}>✕</button>
|
|
@@ -69,8 +83,8 @@ export const Lightbox = forwardRef<HTMLDialogElement, LightboxProps>(function Li
|
|
|
69
83
|
{images.map((img, i) => (
|
|
70
84
|
<figure key={i} className="oc-lightbox__slide" id={slideId(i)}>
|
|
71
85
|
<div className="oc-lightbox__media">{media(img, img.src)}</div>
|
|
72
|
-
{!single && <a className="oc-lightbox__nav oc-lightbox__nav--prev" href={`#${slideId(i - 1)}`} aria-label="Previous photo">←</a>}
|
|
73
|
-
{!single && <a className="oc-lightbox__nav oc-lightbox__nav--next" href={`#${slideId(i + 1)}`} aria-label="Next photo">→</a>}
|
|
86
|
+
{!single && <a className="oc-lightbox__nav oc-lightbox__nav--prev" href={`#${slideId(i - 1)}`} onClick={go(i - 1)} aria-label="Previous photo">←</a>}
|
|
87
|
+
{!single && <a className="oc-lightbox__nav oc-lightbox__nav--next" href={`#${slideId(i + 1)}`} onClick={go(i + 1)} aria-label="Next photo">→</a>}
|
|
74
88
|
<figcaption className="oc-lightbox__caption">
|
|
75
89
|
{!single && <span className="oc-lightbox__counter">{i + 1} / {images.length}</span>} {img.caption ?? img.alt}
|
|
76
90
|
</figcaption>
|
|
@@ -38,7 +38,7 @@ export const MediaCard = forwardRef<HTMLElement, MediaCardProps>(function MediaC
|
|
|
38
38
|
{meta != null && <p className="oc-media-card__meta">{meta}</p>}
|
|
39
39
|
</div>
|
|
40
40
|
{menu != null && (
|
|
41
|
-
<button type="button" className="oc-media-card__menu" aria-label="More actions" {
|
|
41
|
+
<button type="button" className="oc-media-card__menu" aria-label="More actions" popoverTarget={menuId}>⋮</button>
|
|
42
42
|
)}
|
|
43
43
|
</div>
|
|
44
44
|
{menu != null && <div className="oc-dropdown-menu" id={menuId} {...attrs({ popover: "" })}>{menu}</div>}
|
|
@@ -44,7 +44,7 @@ export const MediaRow = forwardRef<HTMLLIElement, MediaRowProps>(function MediaR
|
|
|
44
44
|
</div>
|
|
45
45
|
{menu != null && (
|
|
46
46
|
<>
|
|
47
|
-
<button type="button" className="oc-media-row__menu" aria-label="More actions" {
|
|
47
|
+
<button type="button" className="oc-media-row__menu" aria-label="More actions" popoverTarget={menuId}>⋮</button>
|
|
48
48
|
<div className="oc-dropdown-menu" id={menuId} {...attrs({ popover: "" })}>{menu}</div>
|
|
49
49
|
</>
|
|
50
50
|
)}
|
|
@@ -131,7 +131,7 @@ export const MessageThread = forwardRef<HTMLElement, MessageThreadProps>(functio
|
|
|
131
131
|
{status && <span className={cx("oc-badge", status.variant && `oc-badge--${status.variant}`)}>{status.label}</span>}
|
|
132
132
|
{menu && (
|
|
133
133
|
<>
|
|
134
|
-
<button type="button" className="oc-message-thread__icon-btn" {
|
|
134
|
+
<button type="button" className="oc-message-thread__icon-btn" popoverTarget={`${base}-menu`} aria-label="Conversation actions">
|
|
135
135
|
<svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><circle cx="12" cy="5" r="1.8" /><circle cx="12" cy="12" r="1.8" /><circle cx="12" cy="19" r="1.8" /></svg>
|
|
136
136
|
</button>
|
|
137
137
|
<div className="oc-dropdown-menu" id={`${base}-menu`} {...attrs({ popover: "" })} role="menu">
|
|
@@ -53,7 +53,7 @@ export const NavmenuDropdown = forwardRef<HTMLDivElement, NavmenuDropdownProps>(
|
|
|
53
53
|
const menuId = id ?? `oc-navmenu-${auto.replace(/:/g, "")}`;
|
|
54
54
|
return (
|
|
55
55
|
<li>
|
|
56
|
-
<button className="oc-navmenu-link oc-navmenu-link--caret" type="button" {
|
|
56
|
+
<button className="oc-navmenu-link oc-navmenu-link--caret" type="button" popoverTarget={menuId}>{label}</button>
|
|
57
57
|
<div ref={ref} className={cx("oc-dropdown-menu", className)} id={menuId} {...attrs({ popover: "" })} {...rest}>
|
|
58
58
|
{children}
|
|
59
59
|
</div>
|
|
@@ -23,7 +23,7 @@ export const Popover = forwardRef<HTMLDivElement, PopoverProps>(function Popover
|
|
|
23
23
|
const panelId = id ?? `oc-popover-${auto.replace(/:/g, "")}`;
|
|
24
24
|
return (
|
|
25
25
|
<>
|
|
26
|
-
<Button variant="outline" type="button" {...triggerProps} {
|
|
26
|
+
<Button variant="outline" type="button" {...triggerProps} popoverTarget={panelId}>{trigger}</Button>
|
|
27
27
|
<div ref={ref} className={cx("oc-popover", size !== "md" && `oc-popover--${size}`, className)} id={panelId} {...attrs({ popover: "" })} {...rest}>
|
|
28
28
|
{title != null && <h3 className="oc-popover-title">{title}</h3>}
|
|
29
29
|
{text != null && <p className="oc-popover-text">{text}</p>}
|
|
@@ -45,7 +45,7 @@ export const TableActionsMenu = forwardRef<HTMLDivElement, TableActionsMenuProps
|
|
|
45
45
|
const menuId = id ?? `oc-table-actions-menu-${auto.replace(/:/g, "")}`;
|
|
46
46
|
return (
|
|
47
47
|
<>
|
|
48
|
-
<button className="oc-table-actions-more" type="button" aria-label={label} {
|
|
48
|
+
<button className="oc-table-actions-more" type="button" aria-label={label} popoverTarget={menuId} />
|
|
49
49
|
<div ref={ref} id={menuId} className={cx("oc-dropdown-menu", className)} {...attrs({ popover: "" })} {...rest}>
|
|
50
50
|
{children}
|
|
51
51
|
</div>
|
|
@@ -3,12 +3,28 @@ import type { HTMLAttributes, ReactNode } from "react";
|
|
|
3
3
|
import { cx } from "../utils";
|
|
4
4
|
|
|
5
5
|
export interface TooltipProps extends Omit<HTMLAttributes<HTMLSpanElement>, "content"> {
|
|
6
|
-
/** Tooltip text (`data-tooltip`). */
|
|
6
|
+
/** Tooltip text (`data-tooltip`); with `heading`, the lines under the title. */
|
|
7
7
|
content: string;
|
|
8
|
+
/** Keep the line breaks of `content` (`oc-tooltip--multiline`). */
|
|
9
|
+
multiline?: boolean;
|
|
10
|
+
/** Title above `content` (`.oc-tooltip__title`: larger, capital first letter); renders `.oc-tooltip__content`. */
|
|
11
|
+
heading?: string;
|
|
12
|
+
/** Preferred side (default top); with anchor positioning it moves to the other side when there is no room. */
|
|
13
|
+
side?: "top" | "bottom" | "left" | "right";
|
|
8
14
|
children: ReactNode;
|
|
9
15
|
}
|
|
10
16
|
|
|
11
17
|
/** `<span class="oc-tooltip" data-tooltip>`: CSS-only tooltip around its children. */
|
|
12
|
-
export const Tooltip = forwardRef<HTMLSpanElement, TooltipProps>(function Tooltip({ content, className, ...rest }, ref) {
|
|
13
|
-
|
|
18
|
+
export const Tooltip = forwardRef<HTMLSpanElement, TooltipProps>(function Tooltip({ content, multiline, heading, side, className, children, ...rest }, ref) {
|
|
19
|
+
const classes = cx("oc-tooltip", multiline && !heading && "oc-tooltip--multiline", side && side !== "top" && `oc-tooltip--${side}`, className);
|
|
20
|
+
if (!heading) return <span ref={ref} className={classes} data-tooltip={content} {...rest}>{children}</span>;
|
|
21
|
+
return (
|
|
22
|
+
<span ref={ref} className={classes} {...rest}>
|
|
23
|
+
{children}
|
|
24
|
+
<span className="oc-tooltip__content" role="tooltip">
|
|
25
|
+
<span className="oc-tooltip__title">{heading}</span>
|
|
26
|
+
{content}
|
|
27
|
+
</span>
|
|
28
|
+
</span>
|
|
29
|
+
);
|
|
14
30
|
});
|