@flamingo-stack/openframe-frontend-core 0.0.260 → 0.0.261
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/{chunk-LCYDTEEK.cjs → chunk-2XUWR7AH.cjs} +18 -16
- package/dist/chunk-2XUWR7AH.cjs.map +1 -0
- package/dist/{chunk-FBH73RRM.cjs → chunk-36HLBLDK.cjs} +297 -295
- package/dist/chunk-36HLBLDK.cjs.map +1 -0
- package/dist/{chunk-CBIQDPHK.js → chunk-6AIXHYBZ.js} +5 -3
- package/dist/{chunk-CBIQDPHK.js.map → chunk-6AIXHYBZ.js.map} +1 -1
- package/dist/{chunk-EB76VWM4.cjs → chunk-7MNBE7XA.cjs} +2 -95
- package/dist/chunk-7MNBE7XA.cjs.map +1 -0
- package/dist/{chunk-KQQDN2WK.cjs → chunk-A56L7UQG.cjs} +12 -12
- package/dist/{chunk-KQQDN2WK.cjs.map → chunk-A56L7UQG.cjs.map} +1 -1
- package/dist/{chunk-2VZQJIVA.js → chunk-ALEKX56R.js} +3 -3
- package/dist/{chunk-NNDLCSGR.cjs → chunk-C3FAOQAH.cjs} +25 -25
- package/dist/{chunk-NNDLCSGR.cjs.map → chunk-C3FAOQAH.cjs.map} +1 -1
- package/dist/chunk-ERFO4JFK.js +104 -0
- package/dist/chunk-ERFO4JFK.js.map +1 -0
- package/dist/{chunk-LQKMMVCC.js → chunk-GBUGYHDY.js} +14 -3
- package/dist/chunk-GBUGYHDY.js.map +1 -0
- package/dist/{chunk-D4ESVTUT.cjs → chunk-J5R3QIOJ.cjs} +14 -3
- package/dist/chunk-J5R3QIOJ.cjs.map +1 -0
- package/dist/chunk-TT2VBR7P.cjs +104 -0
- package/dist/chunk-TT2VBR7P.cjs.map +1 -0
- package/dist/{chunk-ACJPRIZC.js → chunk-TZ3PV5NT.js} +2 -2
- package/dist/{chunk-RUMSS73U.js → chunk-U7UDESAU.js} +7 -5
- package/dist/{chunk-RUMSS73U.js.map → chunk-U7UDESAU.js.map} +1 -1
- package/dist/{chunk-NAOTZAKM.js → chunk-URJQGMNH.js} +247 -340
- package/dist/chunk-URJQGMNH.js.map +1 -0
- package/dist/{chunk-AIQ4DGO7.cjs → chunk-XKA7UFED.cjs} +34 -34
- package/dist/{chunk-AIQ4DGO7.cjs.map → chunk-XKA7UFED.cjs.map} +1 -1
- package/dist/{chunk-YMZZ5THD.js → chunk-YC357BPF.js} +2 -2
- package/dist/components/chat/index.cjs +4 -3
- package/dist/components/chat/index.cjs.map +1 -1
- package/dist/components/chat/index.js +3 -2
- package/dist/components/contact/index.cjs +5 -4
- package/dist/components/contact/index.cjs.map +1 -1
- package/dist/components/contact/index.js +4 -3
- package/dist/components/faq/index.cjs +3 -2
- package/dist/components/faq/index.cjs.map +1 -1
- package/dist/components/faq/index.js +2 -1
- package/dist/components/faq-accordion.d.ts +4 -3
- package/dist/components/faq-accordion.d.ts.map +1 -1
- package/dist/components/features/entity-tag-badges.d.ts +1 -0
- package/dist/components/features/entity-tag-badges.d.ts.map +1 -1
- package/dist/components/features/index.cjs +8 -4
- package/dist/components/features/index.cjs.map +1 -1
- package/dist/components/features/index.js +7 -3
- package/dist/components/index.cjs +85 -81
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +13 -9
- package/dist/components/index.js.map +1 -1
- package/dist/components/navigation/index.cjs +4 -3
- package/dist/components/navigation/index.cjs.map +1 -1
- package/dist/components/navigation/index.js +3 -2
- package/dist/components/onboarding-guides/index.cjs +25 -23
- package/dist/components/onboarding-guides/index.cjs.map +1 -1
- package/dist/components/onboarding-guides/index.js +5 -3
- package/dist/components/onboarding-guides/index.js.map +1 -1
- package/dist/components/related-content/index.cjs +5 -4
- package/dist/components/related-content/index.cjs.map +1 -1
- package/dist/components/related-content/index.js +4 -3
- package/dist/components/tickets/index.cjs +67 -65
- package/dist/components/tickets/index.cjs.map +1 -1
- package/dist/components/tickets/index.js +8 -6
- package/dist/components/tickets/index.js.map +1 -1
- package/dist/components/ui/index.cjs +7 -5
- package/dist/components/ui/index.cjs.map +1 -1
- package/dist/components/ui/index.js +6 -4
- package/dist/index.cjs +10 -6
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +9 -5
- package/package.json +1 -1
- package/src/components/faq-accordion.tsx +12 -7
- package/src/components/features/entity-tag-badges.tsx +4 -1
- package/dist/chunk-D4ESVTUT.cjs.map +0 -1
- package/dist/chunk-EB76VWM4.cjs.map +0 -1
- package/dist/chunk-FBH73RRM.cjs.map +0 -1
- package/dist/chunk-LCYDTEEK.cjs.map +0 -1
- package/dist/chunk-LQKMMVCC.js.map +0 -1
- package/dist/chunk-NAOTZAKM.js.map +0 -1
- /package/dist/{chunk-2VZQJIVA.js.map → chunk-ALEKX56R.js.map} +0 -0
- /package/dist/{chunk-ACJPRIZC.js.map → chunk-TZ3PV5NT.js.map} +0 -0
- /package/dist/{chunk-YMZZ5THD.js.map → chunk-YC357BPF.js.map} +0 -0
|
@@ -325,66 +325,6 @@ var TabsContent = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
325
325
|
));
|
|
326
326
|
TabsContent.displayName = TabsPrimitive.Content.displayName;
|
|
327
327
|
|
|
328
|
-
// src/components/ui/status-badge.tsx
|
|
329
|
-
init_cn();
|
|
330
|
-
import { cva as cva2 } from "class-variance-authority";
|
|
331
|
-
import { jsx as jsx5 } from "react/jsx-runtime";
|
|
332
|
-
var statusBadgeVariants = cva2(
|
|
333
|
-
"inline-flex items-center justify-center rounded font-mono font-medium uppercase tracking-wide",
|
|
334
|
-
{
|
|
335
|
-
variants: {
|
|
336
|
-
variant: {
|
|
337
|
-
card: "px-3 py-1.5 text-sm",
|
|
338
|
-
button: "px-2 py-0.5 text-[10px] leading-none"
|
|
339
|
-
},
|
|
340
|
-
colorScheme: {
|
|
341
|
-
cyan: "bg-[var(--ods-flamingo-cyan-base)] text-ods-text-on-accent",
|
|
342
|
-
pink: "bg-[var(--ods-flamingo-pink-base)] text-ods-text-on-accent",
|
|
343
|
-
yellow: "bg-[var(--ods-flamingo-yellow-base)] text-ods-text-on-accent border border-[var(--ods-system-greys-black)]",
|
|
344
|
-
green: "bg-[var(--ods-flamingo-green-base)] text-ods-text-on-accent",
|
|
345
|
-
purple: "bg-[var(--ods-flamingo-purple-base)] text-ods-text-on-accent",
|
|
346
|
-
success: "bg-[var(--ods-attention-green-success-secondary)] text-[var(--ods-attention-green-success)]",
|
|
347
|
-
error: "bg-[var(--ods-attention-red-error-secondary)] text-[var(--ods-attention-red-error)]",
|
|
348
|
-
warning: "bg-[var(--ods-attention-yellow-warning-secondary)] text-[var(--ods-attention-yellow-warning)]",
|
|
349
|
-
default: "bg-ods-bg-secondary text-ods-text-primary",
|
|
350
|
-
// Border-only variants (no background) - for task type badges
|
|
351
|
-
accentBorder: "bg-transparent border-2 text-ods-accent border-ods-accent",
|
|
352
|
-
errorBorder: "bg-transparent border-2 text-[var(--ods-attention-red-error)] border-[var(--ods-attention-red-error)]",
|
|
353
|
-
whiteBorder: "bg-transparent border-2 text-ods-text-primary border-ods-text-primary"
|
|
354
|
-
}
|
|
355
|
-
},
|
|
356
|
-
defaultVariants: {
|
|
357
|
-
variant: "card",
|
|
358
|
-
colorScheme: "default"
|
|
359
|
-
}
|
|
360
|
-
}
|
|
361
|
-
);
|
|
362
|
-
function StatusBadge({
|
|
363
|
-
text,
|
|
364
|
-
variant,
|
|
365
|
-
colorScheme,
|
|
366
|
-
className,
|
|
367
|
-
singleLine,
|
|
368
|
-
...props
|
|
369
|
-
}) {
|
|
370
|
-
const renderText = () => {
|
|
371
|
-
if (singleLine) return text;
|
|
372
|
-
if (variant === "button" && text.includes(" ")) {
|
|
373
|
-
const words = text.split(" ");
|
|
374
|
-
return /* @__PURE__ */ jsx5("span", { className: "flex flex-col items-center justify-center text-center gap-0", children: words.map((word, index) => /* @__PURE__ */ jsx5("span", { className: "block", children: word }, index)) });
|
|
375
|
-
}
|
|
376
|
-
return text;
|
|
377
|
-
};
|
|
378
|
-
return /* @__PURE__ */ jsx5(
|
|
379
|
-
"span",
|
|
380
|
-
{
|
|
381
|
-
className: cn(statusBadgeVariants({ variant, colorScheme }), className),
|
|
382
|
-
...props,
|
|
383
|
-
children: renderText()
|
|
384
|
-
}
|
|
385
|
-
);
|
|
386
|
-
}
|
|
387
|
-
|
|
388
328
|
// src/components/ui/simple-markdown-renderer.tsx
|
|
389
329
|
import { useEffect, useState, useRef, useMemo, useCallback, memo } from "react";
|
|
390
330
|
import ReactMarkdown, { defaultUrlTransform } from "react-markdown";
|
|
@@ -394,7 +334,7 @@ import rehypeHighlight from "rehype-highlight";
|
|
|
394
334
|
import rehypeRaw from "rehype-raw";
|
|
395
335
|
import { visit } from "unist-util-visit";
|
|
396
336
|
init_cn();
|
|
397
|
-
import { jsx as
|
|
337
|
+
import { jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
398
338
|
var EVENT_HANDLER_ATTR_RE = /^on[a-z]+$/i;
|
|
399
339
|
var JAVASCRIPT_URL_RE = /^[\s\x00-\x1f]*javascript:/i;
|
|
400
340
|
var DATA_URL_RE = /^[\s\x00-\x1f]*data:/i;
|
|
@@ -704,15 +644,15 @@ var MermaidDiagram = ({ chart }) => {
|
|
|
704
644
|
}, [chart, mounted]);
|
|
705
645
|
if (error) {
|
|
706
646
|
return /* @__PURE__ */ jsxs4("div", { className: "error-state bg-ods-card border border-ods-border rounded-lg p-6 my-6", children: [
|
|
707
|
-
/* @__PURE__ */
|
|
708
|
-
/* @__PURE__ */
|
|
709
|
-
/* @__PURE__ */
|
|
647
|
+
/* @__PURE__ */ jsx5("div", { className: "error-icon flex justify-center mb-4", children: /* @__PURE__ */ jsx5(AlertCircleIcon, { className: "w-12 h-12 text-ods-error" }) }),
|
|
648
|
+
/* @__PURE__ */ jsx5("div", { className: "error-title text-center font-sans font-semibold text-lg text-ods-error mb-2", children: "Diagram Error" }),
|
|
649
|
+
/* @__PURE__ */ jsx5("div", { className: "error-description text-center font-sans text-sm text-ods-text-secondary mb-4 break-words overflow-hidden max-w-full", children: /* @__PURE__ */ jsx5("div", { className: "overflow-x-auto", children: /* @__PURE__ */ jsx5("pre", { className: "whitespace-pre-wrap break-words text-xs", children: error }) }) })
|
|
710
650
|
] });
|
|
711
651
|
}
|
|
712
652
|
if (isLoading || !svg) {
|
|
713
|
-
return /* @__PURE__ */
|
|
653
|
+
return /* @__PURE__ */ jsx5("div", { className: "skeleton-code bg-ods-card border border-ods-border rounded-lg p-6 min-h-[120px] flex items-center justify-center", children: /* @__PURE__ */ jsx5("div", { className: "animate-pulse text-ods-text-tertiary font-sans", children: isLoading ? "Loading diagram renderer..." : "Rendering diagram..." }) });
|
|
714
654
|
}
|
|
715
|
-
return /* @__PURE__ */
|
|
655
|
+
return /* @__PURE__ */ jsx5("div", { className: "mermaid-container rounded-lg p-4 md:p-6 lg:p-8 my-6 overflow-x-auto bg-ods-card border border-ods-border", children: /* @__PURE__ */ jsx5("div", { className: "flex justify-center items-center w-full min-h-[200px] md:min-h-[250px] lg:min-h-[300px]", children: /* @__PURE__ */ jsx5(
|
|
716
656
|
"div",
|
|
717
657
|
{
|
|
718
658
|
className: "mermaid-svg-container w-full flex justify-center max-w-full",
|
|
@@ -843,7 +783,7 @@ var SimpleMarkdownRendererImpl = ({
|
|
|
843
783
|
const effectiveLevel = Tag2 === "h1" && demoteMarkdownH1ToH2 ? 2 : level;
|
|
844
784
|
const id = generateHeadingId(text, effectiveLevel);
|
|
845
785
|
const EffectiveTag = Tag2 === "h1" && demoteMarkdownH1ToH2 ? "h2" : Tag2;
|
|
846
|
-
return /* @__PURE__ */
|
|
786
|
+
return /* @__PURE__ */ jsx5(EffectiveTag, { id, className: headingClassName, children });
|
|
847
787
|
},
|
|
848
788
|
[generateHeadingId, demoteMarkdownH1ToH2]
|
|
849
789
|
);
|
|
@@ -853,12 +793,12 @@ var SimpleMarkdownRendererImpl = ({
|
|
|
853
793
|
const match = /language-(\w+)/.exec(codeClassName || "");
|
|
854
794
|
const language = match ? match[1] : "";
|
|
855
795
|
if (!inline && language === "mermaid") {
|
|
856
|
-
return /* @__PURE__ */
|
|
796
|
+
return /* @__PURE__ */ jsx5(MermaidDiagram, { chart: String(children).replace(/\n$/, "") });
|
|
857
797
|
}
|
|
858
798
|
if (!inline && match) {
|
|
859
799
|
return /* @__PURE__ */ jsxs4("div", { className: "code-block-container border rounded-lg my-6 overflow-hidden bg-ods-card border-ods-border", children: [
|
|
860
|
-
/* @__PURE__ */
|
|
861
|
-
/* @__PURE__ */
|
|
800
|
+
/* @__PURE__ */ jsx5("div", { className: "code-header border-b px-4 py-2 bg-ods-card border-ods-border", children: /* @__PURE__ */ jsx5("span", { className: "font-sans text-xs uppercase tracking-wide text-ods-text-tertiary", children: language || "code" }) }),
|
|
801
|
+
/* @__PURE__ */ jsx5("div", { className: "p-4", children: /* @__PURE__ */ jsx5("pre", { className: "overflow-x-auto", children: /* @__PURE__ */ jsx5(
|
|
862
802
|
"code",
|
|
863
803
|
{
|
|
864
804
|
className: cn(`language-${language} hljs`, textSizes.code),
|
|
@@ -873,12 +813,12 @@ var SimpleMarkdownRendererImpl = ({
|
|
|
873
813
|
) }) })
|
|
874
814
|
] });
|
|
875
815
|
}
|
|
876
|
-
return /* @__PURE__ */
|
|
816
|
+
return /* @__PURE__ */ jsx5("code", { className: "font-mono text-[0.9em] px-1.5 py-0.5 rounded border bg-ods-card text-ods-text-primary border-ods-border", ...props, children });
|
|
877
817
|
},
|
|
878
818
|
// --- div (pass-through, overridable for embeds) ---
|
|
879
|
-
div: ({ node, className: divClassName, children, ...props }) => /* @__PURE__ */
|
|
819
|
+
div: ({ node, className: divClassName, children, ...props }) => /* @__PURE__ */ jsx5("div", { className: divClassName, ...props, children }),
|
|
880
820
|
// --- blockquote ---
|
|
881
|
-
blockquote: ({ children }) => /* @__PURE__ */
|
|
821
|
+
blockquote: ({ children }) => /* @__PURE__ */ jsx5("blockquote", { className: "border-l-4 border-ods-accent ml-0 pl-6 my-8 py-4 rounded-r-lg bg-ods-bg-secondary", children: /* @__PURE__ */ jsx5("div", { className: cn("font-sans leading-relaxed text-ods-text-secondary", textSizes.blockquote), children }) }),
|
|
882
822
|
// --- headings ---
|
|
883
823
|
h1: makeHeading("h1", 1, cn("font-sans font-bold mt-8 mb-4 first:mt-0 text-ods-text-primary", textSizes.h1)),
|
|
884
824
|
h2: makeHeading("h2", 2, cn("font-sans font-semibold mt-8 mb-4 pb-2 border-b text-ods-text-primary border-ods-border", textSizes.h2)),
|
|
@@ -887,7 +827,7 @@ var SimpleMarkdownRendererImpl = ({
|
|
|
887
827
|
h5: makeHeading("h5", 5, cn("font-sans font-semibold mt-3 mb-2 text-ods-text-primary", textSizes.h5)),
|
|
888
828
|
h6: makeHeading("h6", 6, cn("font-sans font-semibold mt-3 mb-1 text-ods-text-primary", textSizes.h6)),
|
|
889
829
|
// --- paragraph ---
|
|
890
|
-
p: ({ children }) => /* @__PURE__ */
|
|
830
|
+
p: ({ children }) => /* @__PURE__ */ jsx5("p", { className: cn("leading-relaxed mb-4 first:mt-0 last:mb-0 text-ods-text-primary", textSizes.p), children }),
|
|
891
831
|
// --- links ---
|
|
892
832
|
a: ({ href, children, className: linkClassName }) => {
|
|
893
833
|
const isBroken = brokenLinks.includes(href);
|
|
@@ -895,12 +835,12 @@ var SimpleMarkdownRendererImpl = ({
|
|
|
895
835
|
if (isBroken) {
|
|
896
836
|
return /* @__PURE__ */ jsxs4("span", { className: "text-ods-accent cursor-not-allowed", children: [
|
|
897
837
|
children,
|
|
898
|
-
/* @__PURE__ */
|
|
838
|
+
/* @__PURE__ */ jsx5("sup", { className: "ml-1 text-xs font-bold text-ods-attention-red-error", children: "[BROKEN]" })
|
|
899
839
|
] });
|
|
900
840
|
}
|
|
901
841
|
if (isInternalDocLink && onInternalLinkClick) {
|
|
902
842
|
const currentPath = propCurrentPath ?? "";
|
|
903
|
-
return /* @__PURE__ */
|
|
843
|
+
return /* @__PURE__ */ jsx5(
|
|
904
844
|
"span",
|
|
905
845
|
{
|
|
906
846
|
className: "text-ods-accent no-underline relative transition-colors duration-200 hover:after:w-full after:content-[''] after:absolute after:w-0 after:h-0.5 after:-bottom-0.5 after:left-0 after:bg-ods-accent after:transition-all after:duration-300 cursor-pointer",
|
|
@@ -935,7 +875,7 @@ var SimpleMarkdownRendererImpl = ({
|
|
|
935
875
|
}
|
|
936
876
|
);
|
|
937
877
|
}
|
|
938
|
-
return /* @__PURE__ */
|
|
878
|
+
return /* @__PURE__ */ jsx5(
|
|
939
879
|
"a",
|
|
940
880
|
{
|
|
941
881
|
href,
|
|
@@ -996,7 +936,7 @@ var SimpleMarkdownRendererImpl = ({
|
|
|
996
936
|
// (cached re-renders pop in without a perceptible shift).
|
|
997
937
|
img: ({ src, alt }) => {
|
|
998
938
|
if (!src || typeof src !== "string" || src.trim() === "") return null;
|
|
999
|
-
return /* @__PURE__ */
|
|
939
|
+
return /* @__PURE__ */ jsx5(
|
|
1000
940
|
next_image_default,
|
|
1001
941
|
{
|
|
1002
942
|
src,
|
|
@@ -1010,22 +950,22 @@ var SimpleMarkdownRendererImpl = ({
|
|
|
1010
950
|
);
|
|
1011
951
|
},
|
|
1012
952
|
// --- lists ---
|
|
1013
|
-
ul: ({ children }) => /* @__PURE__ */
|
|
1014
|
-
ol: ({ children }) => /* @__PURE__ */
|
|
1015
|
-
li: ({ children }) => /* @__PURE__ */
|
|
953
|
+
ul: ({ children }) => /* @__PURE__ */ jsx5("ul", { className: "list-disc list-outside my-4 ml-8 space-y-2 text-ods-text-primary", children }),
|
|
954
|
+
ol: ({ children }) => /* @__PURE__ */ jsx5("ol", { className: "list-decimal list-outside my-4 ml-8 space-y-2 text-ods-text-primary", children }),
|
|
955
|
+
li: ({ children }) => /* @__PURE__ */ jsx5("li", { className: cn("leading-relaxed pl-2", textSizes.li), children }),
|
|
1016
956
|
// --- tables ---
|
|
1017
|
-
table: ({ children }) => /* @__PURE__ */
|
|
1018
|
-
thead: ({ children }) => /* @__PURE__ */
|
|
1019
|
-
th: ({ children }) => /* @__PURE__ */
|
|
1020
|
-
td: ({ children }) => /* @__PURE__ */
|
|
957
|
+
table: ({ children }) => /* @__PURE__ */ jsx5("div", { className: "table-container my-6 overflow-x-auto", children: /* @__PURE__ */ jsx5("div", { className: "min-w-full border rounded-lg border-ods-border bg-ods-card", children: /* @__PURE__ */ jsx5("table", { className: "w-full table-fixed md:table-auto", children }) }) }),
|
|
958
|
+
thead: ({ children }) => /* @__PURE__ */ jsx5("thead", { className: "bg-ods-bg-secondary", children }),
|
|
959
|
+
th: ({ children }) => /* @__PURE__ */ jsx5("th", { className: cn("px-2 md:px-4 py-3 text-left font-semibold text-ods-accent border-r last:border-r-0 break-words border-ods-border", textSizes.th), children }),
|
|
960
|
+
td: ({ children }) => /* @__PURE__ */ jsx5("td", { className: cn("px-2 md:px-4 py-3 border-r last:border-r-0 border-b break-words whitespace-normal text-ods-text-primary border-ods-border", textSizes.td), children }),
|
|
1021
961
|
// --- horizontal rule ---
|
|
1022
|
-
hr: () => /* @__PURE__ */
|
|
962
|
+
hr: () => /* @__PURE__ */ jsx5("hr", { className: "border-0 border-t my-8 border-ods-border" }),
|
|
1023
963
|
// --- merge overrides ---
|
|
1024
964
|
...componentOverrides
|
|
1025
965
|
}), [makeHeading, brokenLinks, propCurrentPath, onInternalLinkClick, onResolveLink, componentOverrides, textSizes]);
|
|
1026
966
|
return /* @__PURE__ */ jsxs4("div", { className: `simple-markdown-renderer ${className}`, children: [
|
|
1027
|
-
/* @__PURE__ */
|
|
1028
|
-
/* @__PURE__ */
|
|
967
|
+
/* @__PURE__ */ jsx5("style", { dangerouslySetInnerHTML: { __html: mermaidStyles } }),
|
|
968
|
+
/* @__PURE__ */ jsx5("div", { className: "content-wrapper max-w-none break-words", children: /* @__PURE__ */ jsx5("article", { className: "prose prose-lg max-w-none", children: /* @__PURE__ */ jsx5(
|
|
1029
969
|
ReactMarkdown,
|
|
1030
970
|
{
|
|
1031
971
|
remarkPlugins: [remarkGfm, remarkBreaks, ...additionalRemarkPlugins ?? []],
|
|
@@ -1350,7 +1290,7 @@ function formatBioText(aboutHtml, fallback = "") {
|
|
|
1350
1290
|
// src/components/ui/square-avatar.tsx
|
|
1351
1291
|
import * as React4 from "react";
|
|
1352
1292
|
init_cn();
|
|
1353
|
-
import { jsx as
|
|
1293
|
+
import { jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
1354
1294
|
var SquareAvatar = React4.memo(React4.forwardRef(
|
|
1355
1295
|
({ className, src, alt, size = "md", fallback, variant = "square", initialsClassName, ...props }, ref) => {
|
|
1356
1296
|
const sizeClasses = {
|
|
@@ -1381,7 +1321,7 @@ var SquareAvatar = React4.memo(React4.forwardRef(
|
|
|
1381
1321
|
ref,
|
|
1382
1322
|
...props,
|
|
1383
1323
|
children: [
|
|
1384
|
-
/* @__PURE__ */
|
|
1324
|
+
/* @__PURE__ */ jsx6("div", { className: cn(
|
|
1385
1325
|
// Initials use `text-ods-text-primary` so they stay readable
|
|
1386
1326
|
// both on the default `bg-ods-bg` AND on accent-fill backgrounds
|
|
1387
1327
|
// (`bg-ods-flamingo-pink` for the current user, `bg-ods-flamingo-cyan`
|
|
@@ -1394,7 +1334,7 @@ var SquareAvatar = React4.memo(React4.forwardRef(
|
|
|
1394
1334
|
initialsClassName,
|
|
1395
1335
|
src && "hidden"
|
|
1396
1336
|
), children: getFirstLastInitials(fallback || alt) || "?" }),
|
|
1397
|
-
src && /* @__PURE__ */
|
|
1337
|
+
src && /* @__PURE__ */ jsx6(
|
|
1398
1338
|
next_image_default,
|
|
1399
1339
|
{
|
|
1400
1340
|
className: "absolute inset-0 h-full w-full object-cover",
|
|
@@ -1500,7 +1440,7 @@ import { Check } from "lucide-react";
|
|
|
1500
1440
|
import React7, { useCallback as useCallback3 } from "react";
|
|
1501
1441
|
init_cn();
|
|
1502
1442
|
init_button();
|
|
1503
|
-
import { Fragment, jsx as
|
|
1443
|
+
import { Fragment, jsx as jsx7, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
1504
1444
|
var ROW_CLASSES = "flex flex-1 min-w-0 items-center gap-[var(--spacing-system-xsf)] p-[var(--spacing-system-s)] cursor-pointer transition-colors bg-ods-bg outline-none";
|
|
1505
1445
|
var WRAPPER_CLASSES = "relative flex items-stretch border-b border-ods-border last:border-b-0";
|
|
1506
1446
|
var SECONDARY_ACTION_CLASSES = "flex p-[var(--spacing-system-s)] shrink-0 items-center justify-center self-stretch border-l border-ods-border transition-colors hover:bg-ods-bg-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ods-focus [&_svg]:w-4 [&_svg]:h-4 md:[&_svg]:w-6 md:[&_svg]:h-6";
|
|
@@ -1521,7 +1461,7 @@ var SecondaryAction = ({ action }) => {
|
|
|
1521
1461
|
action.disabled && "cursor-not-allowed opacity-60 pointer-events-none"
|
|
1522
1462
|
);
|
|
1523
1463
|
if (action.href) {
|
|
1524
|
-
return /* @__PURE__ */
|
|
1464
|
+
return /* @__PURE__ */ jsx7(
|
|
1525
1465
|
next_link_default,
|
|
1526
1466
|
{
|
|
1527
1467
|
href: action.href,
|
|
@@ -1537,7 +1477,7 @@ var SecondaryAction = ({ action }) => {
|
|
|
1537
1477
|
}
|
|
1538
1478
|
);
|
|
1539
1479
|
}
|
|
1540
|
-
return /* @__PURE__ */
|
|
1480
|
+
return /* @__PURE__ */ jsx7(
|
|
1541
1481
|
"button",
|
|
1542
1482
|
{
|
|
1543
1483
|
type: "button",
|
|
@@ -1591,7 +1531,7 @@ var MenuItem = ({ item, onItemClick }) => {
|
|
|
1591
1531
|
[item, onItemClick]
|
|
1592
1532
|
);
|
|
1593
1533
|
if (item.type === "separator") {
|
|
1594
|
-
return /* @__PURE__ */
|
|
1534
|
+
return /* @__PURE__ */ jsx7("div", { className: "bg-ods-system-greys-soft-grey h-1 w-full" });
|
|
1595
1535
|
}
|
|
1596
1536
|
const itemClasses = cn(
|
|
1597
1537
|
ROW_CLASSES,
|
|
@@ -1603,7 +1543,7 @@ var MenuItem = ({ item, onItemClick }) => {
|
|
|
1603
1543
|
);
|
|
1604
1544
|
const renderAsLink = !!item.href && item.type !== "submenu" && item.type !== "checkbox";
|
|
1605
1545
|
const rowContent = /* @__PURE__ */ jsxs6(Fragment, { children: [
|
|
1606
|
-
item.icon && /* @__PURE__ */
|
|
1546
|
+
item.icon && /* @__PURE__ */ jsx7(
|
|
1607
1547
|
"div",
|
|
1608
1548
|
{
|
|
1609
1549
|
className: cn(
|
|
@@ -1614,7 +1554,7 @@ var MenuItem = ({ item, onItemClick }) => {
|
|
|
1614
1554
|
children: item.icon
|
|
1615
1555
|
}
|
|
1616
1556
|
),
|
|
1617
|
-
/* @__PURE__ */
|
|
1557
|
+
/* @__PURE__ */ jsx7(
|
|
1618
1558
|
"span",
|
|
1619
1559
|
{
|
|
1620
1560
|
className: cn(
|
|
@@ -1624,21 +1564,21 @@ var MenuItem = ({ item, onItemClick }) => {
|
|
|
1624
1564
|
children: item.label
|
|
1625
1565
|
}
|
|
1626
1566
|
),
|
|
1627
|
-
item.type === "checkbox" && /* @__PURE__ */
|
|
1567
|
+
item.type === "checkbox" && /* @__PURE__ */ jsx7(
|
|
1628
1568
|
"div",
|
|
1629
1569
|
{
|
|
1630
1570
|
className: cn(
|
|
1631
1571
|
"w-4 h-4 md:w-6 md:h-6 flex items-center justify-center rounded-md transition-colors",
|
|
1632
1572
|
item.checked ? "bg-ods-accent" : "border-2 border-ods-border bg-transparent"
|
|
1633
1573
|
),
|
|
1634
|
-
children: item.checked && /* @__PURE__ */
|
|
1574
|
+
children: item.checked && /* @__PURE__ */ jsx7(Check, { className: "w-3 h-3 md:w-4 md:h-4 text-ods-text-on-accent", strokeWidth: 3 })
|
|
1635
1575
|
}
|
|
1636
1576
|
),
|
|
1637
|
-
item.type === "submenu" && /* @__PURE__ */
|
|
1577
|
+
item.type === "submenu" && /* @__PURE__ */ jsx7(Chevron02RightIcon, { className: "w-4 h-4 md:w-6 md:h-6 text-ods-text-secondary" })
|
|
1638
1578
|
] });
|
|
1639
1579
|
if (renderAsLink && item.href) {
|
|
1640
1580
|
return /* @__PURE__ */ jsxs6("div", { className: WRAPPER_CLASSES, children: [
|
|
1641
|
-
/* @__PURE__ */
|
|
1581
|
+
/* @__PURE__ */ jsx7(
|
|
1642
1582
|
next_link_default,
|
|
1643
1583
|
{
|
|
1644
1584
|
href: item.href,
|
|
@@ -1650,13 +1590,13 @@ var MenuItem = ({ item, onItemClick }) => {
|
|
|
1650
1590
|
children: rowContent
|
|
1651
1591
|
}
|
|
1652
1592
|
),
|
|
1653
|
-
item.iconAction && /* @__PURE__ */
|
|
1593
|
+
item.iconAction && /* @__PURE__ */ jsx7(SecondaryAction, { action: item.iconAction })
|
|
1654
1594
|
] });
|
|
1655
1595
|
}
|
|
1656
1596
|
if (item.type === "submenu" && item.submenu) {
|
|
1657
1597
|
return /* @__PURE__ */ jsxs6("div", { className: WRAPPER_CLASSES, children: [
|
|
1658
1598
|
/* @__PURE__ */ jsxs6(DropdownMenuPrimitive.Sub, { children: [
|
|
1659
|
-
/* @__PURE__ */
|
|
1599
|
+
/* @__PURE__ */ jsx7(
|
|
1660
1600
|
DropdownMenuPrimitive.SubTrigger,
|
|
1661
1601
|
{
|
|
1662
1602
|
disabled: item.disabled,
|
|
@@ -1664,12 +1604,12 @@ var MenuItem = ({ item, onItemClick }) => {
|
|
|
1664
1604
|
children: rowContent
|
|
1665
1605
|
}
|
|
1666
1606
|
),
|
|
1667
|
-
/* @__PURE__ */
|
|
1607
|
+
/* @__PURE__ */ jsx7(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx7(
|
|
1668
1608
|
DropdownMenuPrimitive.SubContent,
|
|
1669
1609
|
{
|
|
1670
1610
|
sideOffset: 4,
|
|
1671
1611
|
className: "z-[1500] min-w-[256px] max-h-[var(--radix-popper-available-height)] bg-ods-bg border border-ods-border rounded-md shadow-xl overflow-y-auto p-0",
|
|
1672
|
-
children: item.submenu.map((subItem, index) => /* @__PURE__ */
|
|
1612
|
+
children: item.submenu.map((subItem, index) => /* @__PURE__ */ jsx7(
|
|
1673
1613
|
MenuItem,
|
|
1674
1614
|
{
|
|
1675
1615
|
item: subItem,
|
|
@@ -1680,11 +1620,11 @@ var MenuItem = ({ item, onItemClick }) => {
|
|
|
1680
1620
|
}
|
|
1681
1621
|
) })
|
|
1682
1622
|
] }),
|
|
1683
|
-
item.iconAction && /* @__PURE__ */
|
|
1623
|
+
item.iconAction && /* @__PURE__ */ jsx7(SecondaryAction, { action: item.iconAction })
|
|
1684
1624
|
] });
|
|
1685
1625
|
}
|
|
1686
1626
|
return /* @__PURE__ */ jsxs6("div", { className: WRAPPER_CLASSES, children: [
|
|
1687
|
-
/* @__PURE__ */
|
|
1627
|
+
/* @__PURE__ */ jsx7(
|
|
1688
1628
|
"div",
|
|
1689
1629
|
{
|
|
1690
1630
|
role: "menuitem",
|
|
@@ -1696,23 +1636,23 @@ var MenuItem = ({ item, onItemClick }) => {
|
|
|
1696
1636
|
children: rowContent
|
|
1697
1637
|
}
|
|
1698
1638
|
),
|
|
1699
|
-
item.iconAction && /* @__PURE__ */
|
|
1639
|
+
item.iconAction && /* @__PURE__ */ jsx7(SecondaryAction, { action: item.iconAction })
|
|
1700
1640
|
] });
|
|
1701
1641
|
};
|
|
1702
|
-
var GroupSeparator = () => /* @__PURE__ */
|
|
1642
|
+
var GroupSeparator = () => /* @__PURE__ */ jsx7("div", { className: "bg-ods-bg-surface h-[3px] w-full" });
|
|
1703
1643
|
var ActionsMenu = ({
|
|
1704
1644
|
groups,
|
|
1705
1645
|
className = "",
|
|
1706
1646
|
onItemClick
|
|
1707
1647
|
}) => {
|
|
1708
|
-
return /* @__PURE__ */
|
|
1648
|
+
return /* @__PURE__ */ jsx7(
|
|
1709
1649
|
"div",
|
|
1710
1650
|
{
|
|
1711
1651
|
className: `relative min-w-[256px] max-h-[var(--radix-popper-available-height)] bg-ods-bg border border-ods-border rounded-md shadow-lg overflow-y-auto ${className}`,
|
|
1712
1652
|
children: groups.map((group, groupIndex) => {
|
|
1713
1653
|
const groupKey = group.id || group.items.map((i) => i.id).join("|");
|
|
1714
1654
|
return /* @__PURE__ */ jsxs6(React7.Fragment, { children: [
|
|
1715
|
-
group.items.map((item, itemIndex) => /* @__PURE__ */
|
|
1655
|
+
group.items.map((item, itemIndex) => /* @__PURE__ */ jsx7(
|
|
1716
1656
|
MenuItem,
|
|
1717
1657
|
{
|
|
1718
1658
|
item,
|
|
@@ -1720,7 +1660,7 @@ var ActionsMenu = ({
|
|
|
1720
1660
|
},
|
|
1721
1661
|
item.id || `${groupKey}-${itemIndex}`
|
|
1722
1662
|
)),
|
|
1723
|
-
group.separator && groupIndex < groups.length - 1 && /* @__PURE__ */
|
|
1663
|
+
group.separator && groupIndex < groups.length - 1 && /* @__PURE__ */ jsx7(GroupSeparator, {})
|
|
1724
1664
|
] }, groupKey);
|
|
1725
1665
|
})
|
|
1726
1666
|
}
|
|
@@ -1757,17 +1697,17 @@ var ActionsMenuDropdown = ({
|
|
|
1757
1697
|
[onItemClick, setOpen]
|
|
1758
1698
|
);
|
|
1759
1699
|
return /* @__PURE__ */ jsxs6(DropdownMenu, { open, onOpenChange: setOpen, modal: false, children: [
|
|
1760
|
-
/* @__PURE__ */
|
|
1700
|
+
/* @__PURE__ */ jsx7(DropdownMenuTrigger, { asChild: true, children: customTrigger ?? /* @__PURE__ */ jsx7(
|
|
1761
1701
|
Button,
|
|
1762
1702
|
{
|
|
1763
1703
|
variant: "outline",
|
|
1764
1704
|
size: "icon",
|
|
1765
1705
|
"aria-label": triggerAriaLabel,
|
|
1766
1706
|
className: triggerClassName || "bg-ods-card border-ods-border hover:bg-ods-bg-hover flex items-center justify-center focus-visible:ring-0",
|
|
1767
|
-
leftIcon: trigger ?? /* @__PURE__ */
|
|
1707
|
+
leftIcon: trigger ?? /* @__PURE__ */ jsx7(Ellipsis01Icon, { size: 24, className: "text-ods-text-primary" })
|
|
1768
1708
|
}
|
|
1769
1709
|
) }),
|
|
1770
|
-
/* @__PURE__ */
|
|
1710
|
+
/* @__PURE__ */ jsx7(
|
|
1771
1711
|
DropdownMenuContent,
|
|
1772
1712
|
{
|
|
1773
1713
|
align,
|
|
@@ -1778,7 +1718,7 @@ var ActionsMenuDropdown = ({
|
|
|
1778
1718
|
"p-0 border-0 bg-transparent shadow-none overflow-visible",
|
|
1779
1719
|
contentClassName
|
|
1780
1720
|
),
|
|
1781
|
-
children: /* @__PURE__ */
|
|
1721
|
+
children: /* @__PURE__ */ jsx7(
|
|
1782
1722
|
ActionsMenu,
|
|
1783
1723
|
{
|
|
1784
1724
|
groups,
|
|
@@ -1920,7 +1860,7 @@ function resolveExternalNavigation(args) {
|
|
|
1920
1860
|
|
|
1921
1861
|
// src/components/chat/entity-cards/entity-author-card.tsx
|
|
1922
1862
|
init_next_link();
|
|
1923
|
-
import { jsx as
|
|
1863
|
+
import { jsx as jsx8, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
1924
1864
|
var EMPTY_AUTHOR_PLACEHOLDER = {
|
|
1925
1865
|
full_name: "\u2014",
|
|
1926
1866
|
avatar_url: null,
|
|
@@ -1932,9 +1872,9 @@ function EntityMetadataValueCell({
|
|
|
1932
1872
|
className,
|
|
1933
1873
|
uppercase = true
|
|
1934
1874
|
}) {
|
|
1935
|
-
return /* @__PURE__ */
|
|
1936
|
-
/* @__PURE__ */
|
|
1937
|
-
/* @__PURE__ */
|
|
1875
|
+
return /* @__PURE__ */ jsx8("div", { className: `bg-ods-card p-4 flex flex-col gap-3 ${className ?? ""}`, children: /* @__PURE__ */ jsxs7("div", { className: "flex flex-col gap-0", children: [
|
|
1876
|
+
/* @__PURE__ */ jsx8("p", { className: "text-h4 text-ods-text-primary", children: uppercase ? value.toLocaleUpperCase() : value }),
|
|
1877
|
+
/* @__PURE__ */ jsx8("p", { className: "font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary", children: label })
|
|
1938
1878
|
] }) });
|
|
1939
1879
|
}
|
|
1940
1880
|
function EntityMetadataAuthorCell({
|
|
@@ -1946,7 +1886,7 @@ function EntityMetadataAuthorCell({
|
|
|
1946
1886
|
const trimmedName = typeof author.full_name === "string" ? author.full_name.trim() : "";
|
|
1947
1887
|
const fullName = trimmedName || "Unknown Author";
|
|
1948
1888
|
return /* @__PURE__ */ jsxs7("div", { className: `bg-ods-card p-4 flex items-center gap-3 ${className ?? ""}`, children: [
|
|
1949
|
-
/* @__PURE__ */
|
|
1889
|
+
/* @__PURE__ */ jsx8(
|
|
1950
1890
|
SquareAvatar,
|
|
1951
1891
|
{
|
|
1952
1892
|
src: author.avatar_url || "",
|
|
@@ -1957,8 +1897,8 @@ function EntityMetadataAuthorCell({
|
|
|
1957
1897
|
}
|
|
1958
1898
|
),
|
|
1959
1899
|
/* @__PURE__ */ jsxs7("div", { className: "flex flex-col gap-0 flex-1 min-w-0", children: [
|
|
1960
|
-
/* @__PURE__ */
|
|
1961
|
-
/* @__PURE__ */
|
|
1900
|
+
/* @__PURE__ */ jsx8("p", { className: "text-h3 tracking-[-0.36px] text-ods-text-primary truncate", title: fullName, children: authorHref && trimmedName ? /* @__PURE__ */ jsx8(next_link_default, { href: authorHref, className: "hover:text-ods-accent transition-colors", children: fullName }) : fullName }),
|
|
1901
|
+
/* @__PURE__ */ jsx8("p", { className: "font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary", children: author.job_title || roleLabel })
|
|
1962
1902
|
] })
|
|
1963
1903
|
] });
|
|
1964
1904
|
}
|
|
@@ -1987,7 +1927,7 @@ function EntityAuthorCard({
|
|
|
1987
1927
|
{
|
|
1988
1928
|
className: `grid grid-cols-1 ${gridColsClass} border border-ods-border rounded-md overflow-hidden w-full ${className ?? ""}`,
|
|
1989
1929
|
children: [
|
|
1990
|
-
extras.map((cell, i) => /* @__PURE__ */
|
|
1930
|
+
extras.map((cell, i) => /* @__PURE__ */ jsx8(
|
|
1991
1931
|
EntityMetadataValueCell,
|
|
1992
1932
|
{
|
|
1993
1933
|
value: cell.value,
|
|
@@ -1997,7 +1937,7 @@ function EntityAuthorCard({
|
|
|
1997
1937
|
},
|
|
1998
1938
|
`${cell.label}-${i}`
|
|
1999
1939
|
)),
|
|
2000
|
-
showDateCell && /* @__PURE__ */
|
|
1940
|
+
showDateCell && /* @__PURE__ */ jsx8(
|
|
2001
1941
|
EntityMetadataValueCell,
|
|
2002
1942
|
{
|
|
2003
1943
|
value: dateLabel,
|
|
@@ -2006,21 +1946,21 @@ function EntityAuthorCard({
|
|
|
2006
1946
|
className: dividerClass
|
|
2007
1947
|
}
|
|
2008
1948
|
),
|
|
2009
|
-
/* @__PURE__ */
|
|
1949
|
+
/* @__PURE__ */ jsx8(EntityMetadataAuthorCell, { author: effectiveAuthor, roleLabel, authorHref })
|
|
2010
1950
|
]
|
|
2011
1951
|
}
|
|
2012
1952
|
);
|
|
2013
1953
|
}
|
|
2014
1954
|
|
|
2015
1955
|
// src/components/chat/entity-cards/blog-image-placeholder.tsx
|
|
2016
|
-
import { jsx as
|
|
1956
|
+
import { jsx as jsx9 } from "react/jsx-runtime";
|
|
2017
1957
|
function BlogImagePlaceholder({
|
|
2018
1958
|
imageUrl,
|
|
2019
1959
|
title,
|
|
2020
1960
|
className = ""
|
|
2021
1961
|
}) {
|
|
2022
1962
|
if (!imageUrl) return null;
|
|
2023
|
-
return /* @__PURE__ */
|
|
1963
|
+
return /* @__PURE__ */ jsx9("span", { className: `relative block w-full h-full overflow-hidden bg-ods-bg ${className}`, children: /* @__PURE__ */ jsx9(
|
|
2024
1964
|
"img",
|
|
2025
1965
|
{
|
|
2026
1966
|
src: imageUrl,
|
|
@@ -2046,7 +1986,7 @@ function fetchPriorityProp(priority) {
|
|
|
2046
1986
|
// src/components/features/video.tsx
|
|
2047
1987
|
import { useEffect as useEffect4, useMemo as useMemo3, useRef as useRef4, useState as useState3 } from "react";
|
|
2048
1988
|
import MuxPlayer from "@mux/mux-player-react";
|
|
2049
|
-
import { jsx as
|
|
1989
|
+
import { jsx as jsx10, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
2050
1990
|
if (typeof window !== "undefined") {
|
|
2051
1991
|
const w = window;
|
|
2052
1992
|
if (!w.chrome?.cast) {
|
|
@@ -2107,7 +2047,7 @@ function Video(props) {
|
|
|
2107
2047
|
if (!url) return null;
|
|
2108
2048
|
const effectiveKind = resolveKind(props, url);
|
|
2109
2049
|
const layout = props.layout ?? "native";
|
|
2110
|
-
const inner = effectiveKind === "youtube" ? /* @__PURE__ */
|
|
2050
|
+
const inner = effectiveKind === "youtube" ? /* @__PURE__ */ jsx10(
|
|
2111
2051
|
YouTubeFacade,
|
|
2112
2052
|
{
|
|
2113
2053
|
url,
|
|
@@ -2116,7 +2056,7 @@ function Video(props) {
|
|
|
2116
2056
|
className: props.className,
|
|
2117
2057
|
minimalControls: props.minimalControls
|
|
2118
2058
|
}
|
|
2119
|
-
) : /* @__PURE__ */
|
|
2059
|
+
) : /* @__PURE__ */ jsx10(
|
|
2120
2060
|
FilePlayer,
|
|
2121
2061
|
{
|
|
2122
2062
|
url,
|
|
@@ -2140,9 +2080,9 @@ function resolveKind(props, url) {
|
|
|
2140
2080
|
function wrapWithLayout(inner, layout) {
|
|
2141
2081
|
switch (layout) {
|
|
2142
2082
|
case "centered":
|
|
2143
|
-
return /* @__PURE__ */
|
|
2083
|
+
return /* @__PURE__ */ jsx10("div", { className: "flex justify-center w-full", children: /* @__PURE__ */ jsx10("div", { className: "w-full max-w-3xl aspect-video rounded-lg overflow-hidden border border-ods-border", children: inner }) });
|
|
2144
2084
|
case "fill":
|
|
2145
|
-
return /* @__PURE__ */
|
|
2085
|
+
return /* @__PURE__ */ jsx10("div", { className: "absolute inset-0 w-full h-full", children: inner });
|
|
2146
2086
|
case "native":
|
|
2147
2087
|
default:
|
|
2148
2088
|
return inner;
|
|
@@ -2161,7 +2101,7 @@ function FilePlayer({
|
|
|
2161
2101
|
"[Video] srtContent supplied without captionsUrl \u2014 captions will not render. Pass captionsUrl (the VTT URL) instead; raw SRT text overlays are no longer supported."
|
|
2162
2102
|
);
|
|
2163
2103
|
}
|
|
2164
|
-
return /* @__PURE__ */
|
|
2104
|
+
return /* @__PURE__ */ jsx10(
|
|
2165
2105
|
MuxPlayer,
|
|
2166
2106
|
{
|
|
2167
2107
|
src: url,
|
|
@@ -2173,7 +2113,7 @@ function FilePlayer({
|
|
|
2173
2113
|
accentColor: "var(--ods-accent, var(--color-accent-primary))",
|
|
2174
2114
|
className,
|
|
2175
2115
|
style: { width: "100%", height: "100%" },
|
|
2176
|
-
children: captionsUrl ? /* @__PURE__ */
|
|
2116
|
+
children: captionsUrl ? /* @__PURE__ */ jsx10(
|
|
2177
2117
|
"track",
|
|
2178
2118
|
{
|
|
2179
2119
|
kind: "captions",
|
|
@@ -2195,7 +2135,7 @@ function YouTubeFacade({
|
|
|
2195
2135
|
}) {
|
|
2196
2136
|
const videoId = extractYouTubeId(url);
|
|
2197
2137
|
if (!videoId) return null;
|
|
2198
|
-
return /* @__PURE__ */
|
|
2138
|
+
return /* @__PURE__ */ jsx10(YouTubeFacadeInner, { videoId, title, priority, className, minimalControls });
|
|
2199
2139
|
}
|
|
2200
2140
|
var YT_NOCOOKIE_ORIGIN = "https://www.youtube-nocookie.com";
|
|
2201
2141
|
var YT_STATE_ENDED = 0;
|
|
@@ -2281,7 +2221,7 @@ function YouTubeFacadeInner({
|
|
|
2281
2221
|
const wrapperClass = `relative w-full ${className ?? ""}`;
|
|
2282
2222
|
const wrapperStyle = { paddingBottom: "56.25%" };
|
|
2283
2223
|
if (activated) {
|
|
2284
|
-
return /* @__PURE__ */
|
|
2224
|
+
return /* @__PURE__ */ jsx10("div", { className: wrapperClass, style: wrapperStyle, children: /* @__PURE__ */ jsx10(
|
|
2285
2225
|
"iframe",
|
|
2286
2226
|
{
|
|
2287
2227
|
ref: iframeRef,
|
|
@@ -2293,7 +2233,7 @@ function YouTubeFacadeInner({
|
|
|
2293
2233
|
}
|
|
2294
2234
|
) });
|
|
2295
2235
|
}
|
|
2296
|
-
return /* @__PURE__ */
|
|
2236
|
+
return /* @__PURE__ */ jsx10("div", { className: wrapperClass, style: wrapperStyle, children: /* @__PURE__ */ jsxs8(
|
|
2297
2237
|
"button",
|
|
2298
2238
|
{
|
|
2299
2239
|
type: "button",
|
|
@@ -2302,8 +2242,8 @@ function YouTubeFacadeInner({
|
|
|
2302
2242
|
className: "group absolute inset-0 p-0 m-0 border border-ods-border rounded-lg overflow-hidden bg-ods-card cursor-pointer",
|
|
2303
2243
|
children: [
|
|
2304
2244
|
/* @__PURE__ */ jsxs8("picture", { children: [
|
|
2305
|
-
/* @__PURE__ */
|
|
2306
|
-
/* @__PURE__ */
|
|
2245
|
+
/* @__PURE__ */ jsx10("source", { type: "image/webp", srcSet: posterWebp }),
|
|
2246
|
+
/* @__PURE__ */ jsx10(
|
|
2307
2247
|
"img",
|
|
2308
2248
|
{
|
|
2309
2249
|
src: posterJpg,
|
|
@@ -2315,14 +2255,14 @@ function YouTubeFacadeInner({
|
|
|
2315
2255
|
}
|
|
2316
2256
|
)
|
|
2317
2257
|
] }),
|
|
2318
|
-
/* @__PURE__ */
|
|
2258
|
+
/* @__PURE__ */ jsx10("div", { className: "absolute inset-0 flex items-center justify-center bg-ods-bg-inverse bg-opacity-20 transition-opacity duration-200 group-hover:bg-opacity-30", children: /* @__PURE__ */ jsx10("span", { className: "flex items-center justify-center w-16 h-16 rounded-full bg-ods-accent text-ods-text-on-accent shadow-lg transition-transform duration-200 group-hover:scale-110", children: /* @__PURE__ */ jsx10(PlayIcon, { size: 24, color: "currentColor", className: "ml-1" }) }) })
|
|
2319
2259
|
]
|
|
2320
2260
|
}
|
|
2321
2261
|
) });
|
|
2322
2262
|
}
|
|
2323
2263
|
|
|
2324
2264
|
// src/components/features/video-ratio-tabs.tsx
|
|
2325
|
-
import { Fragment as Fragment2, jsx as
|
|
2265
|
+
import { Fragment as Fragment2, jsx as jsx11, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
2326
2266
|
var TAB_TRIGGER_CLASS = "rounded-none border-b-2 border-transparent data-[state=active]:border-ods-accent data-[state=active]:bg-transparent data-[state=active]:shadow-none px-4 py-2 text-sm text-ods-text-secondary data-[state=active]:text-ods-text-primary";
|
|
2327
2267
|
var RATIO_GRID_CLASS = {
|
|
2328
2268
|
portrait: "grid grid-cols-2 md:grid-cols-3 gap-4",
|
|
@@ -2347,17 +2287,17 @@ function RatioTabs({
|
|
|
2347
2287
|
const activeTabs = RATIO_TAB_CONFIG.filter((t) => groups[t.key].count > 0);
|
|
2348
2288
|
if (activeTabs.length <= 1) {
|
|
2349
2289
|
const active = activeTabs[0];
|
|
2350
|
-
return active ? /* @__PURE__ */
|
|
2290
|
+
return active ? /* @__PURE__ */ jsx11(Fragment2, { children: groups[active.key].render() }) : null;
|
|
2351
2291
|
}
|
|
2352
2292
|
const firstTab = defaultTab && groups[defaultTab].count > 0 ? defaultTab : activeTabs[0].key;
|
|
2353
2293
|
return /* @__PURE__ */ jsxs9(Tabs, { defaultValue: firstTab, className: `w-full ${className}`, children: [
|
|
2354
|
-
/* @__PURE__ */
|
|
2294
|
+
/* @__PURE__ */ jsx11(TabsList, { className: "inline-flex justify-start rounded-none bg-transparent h-auto p-0 gap-0 mb-2", children: activeTabs.map((t) => /* @__PURE__ */ jsxs9(TabsTrigger, { value: t.key, className: TAB_TRIGGER_CLASS, children: [
|
|
2355
2295
|
t.label,
|
|
2356
2296
|
" (",
|
|
2357
2297
|
groups[t.key].count,
|
|
2358
2298
|
")"
|
|
2359
2299
|
] }, t.key)) }),
|
|
2360
|
-
activeTabs.map((t) => /* @__PURE__ */
|
|
2300
|
+
activeTabs.map((t) => /* @__PURE__ */ jsx11(
|
|
2361
2301
|
TabsContent,
|
|
2362
2302
|
{
|
|
2363
2303
|
value: t.key,
|
|
@@ -2400,7 +2340,7 @@ function groupByAspectRatio(items, getAspectRatio) {
|
|
|
2400
2340
|
|
|
2401
2341
|
// src/components/features/video-bites-display.tsx
|
|
2402
2342
|
import { useMemo as useMemo4 } from "react";
|
|
2403
|
-
import { jsx as
|
|
2343
|
+
import { jsx as jsx12, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
2404
2344
|
var RATIO_TO_CSS_ASPECT = {
|
|
2405
2345
|
portrait: "9 / 16",
|
|
2406
2346
|
square: "1 / 1",
|
|
@@ -2408,7 +2348,7 @@ var RATIO_TO_CSS_ASPECT = {
|
|
|
2408
2348
|
};
|
|
2409
2349
|
function LazyBite({ ratio, children }) {
|
|
2410
2350
|
const { ref, isNear } = useNearViewport("500px");
|
|
2411
|
-
return /* @__PURE__ */
|
|
2351
|
+
return /* @__PURE__ */ jsx12("div", { ref, style: { aspectRatio: RATIO_TO_CSS_ASPECT[ratio] }, children: isNear ? children : /* @__PURE__ */ jsx12("div", { className: "w-full h-full bg-ods-card rounded-md" }) });
|
|
2412
2352
|
}
|
|
2413
2353
|
function VideoBitesDisplay({
|
|
2414
2354
|
bites,
|
|
@@ -2432,26 +2372,26 @@ function VideoBitesDisplay({
|
|
|
2432
2372
|
const totalCount = grouped.portrait.length + grouped.square.length + grouped.landscape.length;
|
|
2433
2373
|
if (totalCount === 0) return null;
|
|
2434
2374
|
return /* @__PURE__ */ jsxs10("div", { className: "flex flex-col gap-6 w-full min-w-0", children: [
|
|
2435
|
-
showTitle && /* @__PURE__ */
|
|
2436
|
-
grouped.hasMultiple ? /* @__PURE__ */
|
|
2375
|
+
showTitle && /* @__PURE__ */ jsx12("h2", { className: "text-h1 tracking-[-1.12px] text-ods-text-primary break-words", children: title }),
|
|
2376
|
+
grouped.hasMultiple ? /* @__PURE__ */ jsx12(
|
|
2437
2377
|
RatioTabs,
|
|
2438
2378
|
{
|
|
2439
2379
|
groups: {
|
|
2440
2380
|
portrait: {
|
|
2441
2381
|
count: grouped.portrait.length,
|
|
2442
|
-
render: () => /* @__PURE__ */
|
|
2382
|
+
render: () => /* @__PURE__ */ jsx12(BiteGrid, { bites: grouped.portrait, ratio: "portrait" })
|
|
2443
2383
|
},
|
|
2444
2384
|
square: {
|
|
2445
2385
|
count: grouped.square.length,
|
|
2446
|
-
render: () => /* @__PURE__ */
|
|
2386
|
+
render: () => /* @__PURE__ */ jsx12(BiteGrid, { bites: grouped.square, ratio: "square" })
|
|
2447
2387
|
},
|
|
2448
2388
|
landscape: {
|
|
2449
2389
|
count: grouped.landscape.length,
|
|
2450
|
-
render: () => /* @__PURE__ */
|
|
2390
|
+
render: () => /* @__PURE__ */ jsx12(BiteGrid, { bites: grouped.landscape, ratio: "landscape" })
|
|
2451
2391
|
}
|
|
2452
2392
|
}
|
|
2453
2393
|
}
|
|
2454
|
-
) : /* @__PURE__ */
|
|
2394
|
+
) : /* @__PURE__ */ jsx12(
|
|
2455
2395
|
BiteGrid,
|
|
2456
2396
|
{
|
|
2457
2397
|
bites: grouped.portrait.length > 0 ? grouped.portrait : grouped.square.length > 0 ? grouped.square : grouped.landscape,
|
|
@@ -2461,17 +2401,17 @@ function VideoBitesDisplay({
|
|
|
2461
2401
|
] });
|
|
2462
2402
|
}
|
|
2463
2403
|
function BiteGrid({ bites, ratio }) {
|
|
2464
|
-
return /* @__PURE__ */
|
|
2404
|
+
return /* @__PURE__ */ jsx12("div", { className: RATIO_DISPLAY_GRID_CLASS[ratio], children: bites.map((bite, index) => /* @__PURE__ */ jsx12(LazyBite, { ratio, children: /* @__PURE__ */ jsx12(VideoBiteCard, { url: bite.url, title: bite.title, thumbnailUrl: bite.thumbnail_url }) }, bite.url || index)) });
|
|
2465
2405
|
}
|
|
2466
2406
|
function VideoBiteCard({ url, title, thumbnailUrl }) {
|
|
2467
2407
|
return /* @__PURE__ */ jsxs10(Card, { className: "overflow-hidden border border-ods-border bg-ods-card hover:border-ods-accent transition-colors flex flex-col h-full", children: [
|
|
2468
|
-
/* @__PURE__ */
|
|
2469
|
-
title && /* @__PURE__ */
|
|
2408
|
+
/* @__PURE__ */ jsx12("div", { className: "relative flex-1 min-h-0", children: /* @__PURE__ */ jsx12(Video, { url, poster: thumbnailUrl || void 0, layout: "fill" }) }),
|
|
2409
|
+
title && /* @__PURE__ */ jsx12("div", { className: "p-4", children: /* @__PURE__ */ jsx12("p", { className: "text-h4 text-ods-text-primary line-clamp-2", title, children: title }) })
|
|
2470
2410
|
] });
|
|
2471
2411
|
}
|
|
2472
2412
|
|
|
2473
2413
|
// src/components/features/entity-video-section.tsx
|
|
2474
|
-
import { Fragment as Fragment3, jsx as
|
|
2414
|
+
import { Fragment as Fragment3, jsx as jsx13, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
2475
2415
|
function EntityVideoSection({
|
|
2476
2416
|
mainVideoUrl,
|
|
2477
2417
|
youtubeUrl,
|
|
@@ -2499,7 +2439,7 @@ function EntityVideoSection({
|
|
|
2499
2439
|
return /* @__PURE__ */ jsxs11(Fragment3, { children: [
|
|
2500
2440
|
hasVideo && (hasFullVideo && hasHighlight ? /* @__PURE__ */ jsxs11(Tabs, { defaultValue: "full-video", className: "w-full", children: [
|
|
2501
2441
|
/* @__PURE__ */ jsxs11(TabsList, { className: "inline-flex justify-start rounded-none bg-transparent h-auto p-0 gap-0", children: [
|
|
2502
|
-
/* @__PURE__ */
|
|
2442
|
+
/* @__PURE__ */ jsx13(
|
|
2503
2443
|
TabsTrigger,
|
|
2504
2444
|
{
|
|
2505
2445
|
value: "full-video",
|
|
@@ -2507,7 +2447,7 @@ function EntityVideoSection({
|
|
|
2507
2447
|
children: "Full Video"
|
|
2508
2448
|
}
|
|
2509
2449
|
),
|
|
2510
|
-
/* @__PURE__ */
|
|
2450
|
+
/* @__PURE__ */ jsx13(
|
|
2511
2451
|
TabsTrigger,
|
|
2512
2452
|
{
|
|
2513
2453
|
value: "highlights",
|
|
@@ -2516,7 +2456,7 @@ function EntityVideoSection({
|
|
|
2516
2456
|
}
|
|
2517
2457
|
)
|
|
2518
2458
|
] }),
|
|
2519
|
-
/* @__PURE__ */
|
|
2459
|
+
/* @__PURE__ */ jsx13(TabsContent, { value: "full-video", className: "mt-4", children: /* @__PURE__ */ jsx13(
|
|
2520
2460
|
Video,
|
|
2521
2461
|
{
|
|
2522
2462
|
kind: fullVideoKind,
|
|
@@ -2529,7 +2469,7 @@ function EntityVideoSection({
|
|
|
2529
2469
|
priority
|
|
2530
2470
|
}
|
|
2531
2471
|
) }),
|
|
2532
|
-
/* @__PURE__ */
|
|
2472
|
+
/* @__PURE__ */ jsx13(TabsContent, { value: "highlights", className: "mt-4", children: /* @__PURE__ */ jsx13(
|
|
2533
2473
|
Video,
|
|
2534
2474
|
{
|
|
2535
2475
|
url: highlightVideoUrl,
|
|
@@ -2537,7 +2477,7 @@ function EntityVideoSection({
|
|
|
2537
2477
|
layout: "centered"
|
|
2538
2478
|
}
|
|
2539
2479
|
) })
|
|
2540
|
-
] }) : hasFullVideo ? /* @__PURE__ */
|
|
2480
|
+
] }) : hasFullVideo ? /* @__PURE__ */ jsx13(
|
|
2541
2481
|
Video,
|
|
2542
2482
|
{
|
|
2543
2483
|
kind: fullVideoKind,
|
|
@@ -2549,7 +2489,7 @@ function EntityVideoSection({
|
|
|
2549
2489
|
layout: "centered",
|
|
2550
2490
|
priority
|
|
2551
2491
|
}
|
|
2552
|
-
) : /* @__PURE__ */
|
|
2492
|
+
) : /* @__PURE__ */ jsx13(
|
|
2553
2493
|
Video,
|
|
2554
2494
|
{
|
|
2555
2495
|
url: highlightVideoUrl,
|
|
@@ -2559,10 +2499,10 @@ function EntityVideoSection({
|
|
|
2559
2499
|
}
|
|
2560
2500
|
)),
|
|
2561
2501
|
videoSummary && MarkdownRenderer && /* @__PURE__ */ jsxs11("div", { className: "flex flex-col gap-6 w-full min-w-0", children: [
|
|
2562
|
-
/* @__PURE__ */
|
|
2563
|
-
/* @__PURE__ */
|
|
2502
|
+
/* @__PURE__ */ jsx13("h2", { className: "text-h1 tracking-[-1.12px] text-ods-text-primary break-words", children: "Summary" }),
|
|
2503
|
+
/* @__PURE__ */ jsx13("div", { className: "text-h4 text-ods-text-primary break-words overflow-hidden", children: /* @__PURE__ */ jsx13(MarkdownRenderer, { content: videoSummary }) })
|
|
2564
2504
|
] }),
|
|
2565
|
-
videoBites && videoBites.length > 0 && /* @__PURE__ */
|
|
2505
|
+
videoBites && videoBites.length > 0 && /* @__PURE__ */ jsx13(
|
|
2566
2506
|
VideoBitesDisplay,
|
|
2567
2507
|
{
|
|
2568
2508
|
bites: videoBites,
|
|
@@ -2647,7 +2587,7 @@ function useEntityCardPlaceholder({
|
|
|
2647
2587
|
}
|
|
2648
2588
|
|
|
2649
2589
|
// src/components/chat/entity-cards/onboarding-guide-card.tsx
|
|
2650
|
-
import { jsx as
|
|
2590
|
+
import { jsx as jsx14, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
2651
2591
|
function stripMarkdownPreview(text) {
|
|
2652
2592
|
return text.replace(/```[\s\S]*?```/g, " ").replace(/^#{1,6}\s+/gm, "").replace(/!?\[([^\]]*)\]\([^)]*\)/g, "$1").replace(/[*_~`>]/g, "").replace(/^\s*[-+]\s+/gm, "").replace(/-{3,}/g, " ").replace(/\s+/g, " ").trim().replace(/^([\s\S]{240})[\s\S]+$/, "$1\u2026");
|
|
2653
2593
|
}
|
|
@@ -2663,35 +2603,35 @@ function OnboardingGuideCardSkeleton({ size = "default" }) {
|
|
|
2663
2603
|
if (size === "catalog") {
|
|
2664
2604
|
return /* @__PURE__ */ jsxs12("div", { className: "bg-ods-system-greys-black border border-ods-border rounded-lg overflow-hidden flex flex-col p-6 gap-4 animate-pulse", children: [
|
|
2665
2605
|
/* @__PURE__ */ jsxs12("div", { className: "flex flex-col md:flex-row gap-4 md:gap-6", children: [
|
|
2666
|
-
/* @__PURE__ */
|
|
2606
|
+
/* @__PURE__ */ jsx14("div", { className: "w-full md:w-[256px] aspect-[1200/630] bg-ods-border rounded-lg flex-shrink-0" }),
|
|
2667
2607
|
/* @__PURE__ */ jsxs12("div", { className: "flex-1 min-w-0 flex flex-col", children: [
|
|
2668
2608
|
/* @__PURE__ */ jsxs12("div", { className: "min-h-[60px] md:min-h-[72px] flex flex-col gap-1.5 justify-start mb-3", children: [
|
|
2669
|
-
/* @__PURE__ */
|
|
2670
|
-
/* @__PURE__ */
|
|
2609
|
+
/* @__PURE__ */ jsx14("div", { className: "h-[25px] md:h-[30px] w-3/4 bg-ods-border rounded" }),
|
|
2610
|
+
/* @__PURE__ */ jsx14("div", { className: "h-[25px] md:h-[30px] w-1/2 bg-ods-border rounded" })
|
|
2671
2611
|
] }),
|
|
2672
2612
|
/* @__PURE__ */ jsxs12("div", { className: "min-h-[46px] md:min-h-[52px] flex flex-col gap-2 justify-start", children: [
|
|
2673
|
-
/* @__PURE__ */
|
|
2674
|
-
/* @__PURE__ */
|
|
2613
|
+
/* @__PURE__ */ jsx14("div", { className: "h-3 w-full bg-ods-border/70 rounded" }),
|
|
2614
|
+
/* @__PURE__ */ jsx14("div", { className: "h-3 w-5/6 bg-ods-border/70 rounded" })
|
|
2675
2615
|
] })
|
|
2676
2616
|
] })
|
|
2677
2617
|
] }),
|
|
2678
2618
|
/* @__PURE__ */ jsxs12("div", { className: "grid grid-cols-1 md:grid-cols-3 border border-ods-border rounded-md overflow-hidden w-full", children: [
|
|
2679
|
-
[0, 1].map((i) => /* @__PURE__ */
|
|
2619
|
+
[0, 1].map((i) => /* @__PURE__ */ jsx14(
|
|
2680
2620
|
"div",
|
|
2681
2621
|
{
|
|
2682
2622
|
className: "bg-ods-card p-4 flex flex-col gap-3 border-b md:border-b-0 md:border-r border-ods-border",
|
|
2683
2623
|
children: /* @__PURE__ */ jsxs12("div", { className: "flex flex-col gap-2", children: [
|
|
2684
|
-
/* @__PURE__ */
|
|
2685
|
-
/* @__PURE__ */
|
|
2624
|
+
/* @__PURE__ */ jsx14("div", { className: "h-6 w-32 bg-ods-bg rounded" }),
|
|
2625
|
+
/* @__PURE__ */ jsx14("div", { className: "h-3 w-20 bg-ods-bg/60 rounded" })
|
|
2686
2626
|
] })
|
|
2687
2627
|
},
|
|
2688
2628
|
`cell-${i}`
|
|
2689
2629
|
)),
|
|
2690
2630
|
/* @__PURE__ */ jsxs12("div", { className: "bg-ods-card p-4 flex items-center gap-3", children: [
|
|
2691
|
-
/* @__PURE__ */
|
|
2631
|
+
/* @__PURE__ */ jsx14("div", { className: "h-10 w-10 rounded-full bg-ods-bg shrink-0" }),
|
|
2692
2632
|
/* @__PURE__ */ jsxs12("div", { className: "flex flex-col gap-2 flex-1 min-w-0", children: [
|
|
2693
|
-
/* @__PURE__ */
|
|
2694
|
-
/* @__PURE__ */
|
|
2633
|
+
/* @__PURE__ */ jsx14("div", { className: "h-4 w-3/4 bg-ods-bg rounded" }),
|
|
2634
|
+
/* @__PURE__ */ jsx14("div", { className: "h-3 w-1/2 bg-ods-bg/60 rounded" })
|
|
2695
2635
|
] })
|
|
2696
2636
|
] })
|
|
2697
2637
|
] })
|
|
@@ -2699,13 +2639,13 @@ function OnboardingGuideCardSkeleton({ size = "default" }) {
|
|
|
2699
2639
|
}
|
|
2700
2640
|
if (size === "sm") {
|
|
2701
2641
|
return /* @__PURE__ */ jsxs12("span", { className: COMPACT_CARD_SKELETON_OUTER, children: [
|
|
2702
|
-
/* @__PURE__ */
|
|
2642
|
+
/* @__PURE__ */ jsx14("span", { className: COMPACT_CARD_SKELETON_IMAGE_SLOT }),
|
|
2703
2643
|
/* @__PURE__ */ jsxs12("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
2704
|
-
/* @__PURE__ */
|
|
2705
|
-
/* @__PURE__ */
|
|
2706
|
-
/* @__PURE__ */
|
|
2644
|
+
/* @__PURE__ */ jsx14("span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ jsx14("span", { className: "h-3.5 w-3/5 rounded bg-ods-bg" }) }),
|
|
2645
|
+
/* @__PURE__ */ jsx14("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx14("span", { className: "h-3 w-2/5 rounded bg-ods-bg/70" }) }),
|
|
2646
|
+
/* @__PURE__ */ jsx14("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx14("span", { className: "h-3 w-11/12 rounded bg-ods-bg/40" }) })
|
|
2707
2647
|
] }),
|
|
2708
|
-
/* @__PURE__ */
|
|
2648
|
+
/* @__PURE__ */ jsx14("span", { className: "flex shrink-0 items-center self-start h-5", children: /* @__PURE__ */ jsx14("span", { className: "h-3.5 w-3.5 rounded bg-ods-bg" }) })
|
|
2709
2649
|
] });
|
|
2710
2650
|
}
|
|
2711
2651
|
const t = HORIZONTAL_SIZE_TOKENS.default;
|
|
@@ -2714,11 +2654,11 @@ function OnboardingGuideCardSkeleton({ size = "default" }) {
|
|
|
2714
2654
|
{
|
|
2715
2655
|
className: `flex items-start gap-3 rounded-md border border-ods-border bg-ods-card ${t.padding} animate-pulse`,
|
|
2716
2656
|
children: [
|
|
2717
|
-
/* @__PURE__ */
|
|
2657
|
+
/* @__PURE__ */ jsx14("span", { className: `shrink-0 inline-flex items-center justify-center rounded-full bg-ods-bg ${t.step}` }),
|
|
2718
2658
|
/* @__PURE__ */ jsxs12("span", { className: "flex flex-col gap-2 flex-1 min-w-0", children: [
|
|
2719
|
-
/* @__PURE__ */
|
|
2720
|
-
/* @__PURE__ */
|
|
2721
|
-
/* @__PURE__ */
|
|
2659
|
+
/* @__PURE__ */ jsx14("span", { className: "block h-4 w-2/3 rounded bg-ods-bg" }),
|
|
2660
|
+
/* @__PURE__ */ jsx14("span", { className: "block h-3 w-1/3 rounded bg-ods-bg/70" }),
|
|
2661
|
+
/* @__PURE__ */ jsx14("span", { className: "block h-3 w-full rounded bg-ods-bg/40" })
|
|
2722
2662
|
] })
|
|
2723
2663
|
]
|
|
2724
2664
|
}
|
|
@@ -2750,7 +2690,7 @@ function OnboardingGuideCard({
|
|
|
2750
2690
|
const hasVideoCover = !!(guide.main_video_thumbnail || guide.highlight_video_thumbnail);
|
|
2751
2691
|
const stepLabel = typeof guide.step_order === "number" ? String(guide.step_order).padStart(2, "0") : "\u2014";
|
|
2752
2692
|
const durationLabel = typeof guide.highlight_video_duration_ms === "number" && guide.highlight_video_duration_ms > 0 ? formatDurationMMSS(Math.floor(guide.highlight_video_duration_ms / 1e3)) : "";
|
|
2753
|
-
return /* @__PURE__ */
|
|
2693
|
+
return /* @__PURE__ */ jsx14(
|
|
2754
2694
|
next_link_default,
|
|
2755
2695
|
{
|
|
2756
2696
|
href,
|
|
@@ -2768,8 +2708,8 @@ function OnboardingGuideCard({
|
|
|
2768
2708
|
"aria-label": `Open ${guide.title}`,
|
|
2769
2709
|
children: /* @__PURE__ */ jsxs12("div", { className: "flex flex-col p-6 gap-4", children: [
|
|
2770
2710
|
/* @__PURE__ */ jsxs12("div", { className: "flex flex-col md:flex-row gap-4 md:gap-6", children: [
|
|
2771
|
-
/* @__PURE__ */
|
|
2772
|
-
coverImage ? /* @__PURE__ */
|
|
2711
|
+
/* @__PURE__ */ jsx14("div", { className: "w-full md:w-[256px] flex-shrink-0", children: /* @__PURE__ */ jsxs12("div", { className: "relative rounded-lg overflow-hidden w-full aspect-[1200/630] bg-ods-bg", children: [
|
|
2712
|
+
coverImage ? /* @__PURE__ */ jsx14(
|
|
2773
2713
|
next_image_default,
|
|
2774
2714
|
{
|
|
2775
2715
|
src: coverImage,
|
|
@@ -2779,7 +2719,7 @@ function OnboardingGuideCard({
|
|
|
2779
2719
|
className: "object-cover",
|
|
2780
2720
|
unoptimized: true
|
|
2781
2721
|
}
|
|
2782
|
-
) : /* @__PURE__ */
|
|
2722
|
+
) : /* @__PURE__ */ jsx14(
|
|
2783
2723
|
BlogImagePlaceholder,
|
|
2784
2724
|
{
|
|
2785
2725
|
title: guide.title,
|
|
@@ -2787,18 +2727,18 @@ function OnboardingGuideCard({
|
|
|
2787
2727
|
className: "absolute inset-0"
|
|
2788
2728
|
}
|
|
2789
2729
|
),
|
|
2790
|
-
hasVideoCover && coverImage && /* @__PURE__ */
|
|
2730
|
+
hasVideoCover && coverImage && /* @__PURE__ */ jsx14("span", { className: "absolute inset-0 flex items-center justify-center bg-black/30", children: /* @__PURE__ */ jsx14(Play, { className: "w-10 h-10 text-white", fill: "white" }) }),
|
|
2791
2731
|
durationLabel && /* @__PURE__ */ jsxs12("span", { className: "absolute bottom-2 right-2 inline-flex items-center gap-1 px-2 py-1 rounded bg-black/60 text-white text-xs font-medium font-mono", children: [
|
|
2792
|
-
/* @__PURE__ */
|
|
2732
|
+
/* @__PURE__ */ jsx14(Clock, { className: "w-3 h-3" }),
|
|
2793
2733
|
durationLabel
|
|
2794
2734
|
] })
|
|
2795
2735
|
] }) }),
|
|
2796
2736
|
/* @__PURE__ */ jsxs12("div", { className: "flex-1 min-w-0 flex flex-col", children: [
|
|
2797
|
-
/* @__PURE__ */
|
|
2798
|
-
/* @__PURE__ */
|
|
2737
|
+
/* @__PURE__ */ jsx14("div", { className: "min-h-[60px] md:min-h-[72px] flex items-start mb-3", children: /* @__PURE__ */ jsx14("h3", { className: "font-['Azeret_Mono'] font-semibold text-xl md:text-2xl text-ods-text-primary leading-tight line-clamp-2", children: guide.title }) }),
|
|
2738
|
+
/* @__PURE__ */ jsx14("div", { className: "min-h-[46px] md:min-h-[52px]", children: /* @__PURE__ */ jsx14("p", { className: "font-['DM_Sans'] text-sm md:text-base text-ods-text-secondary leading-relaxed line-clamp-2", children: stripMarkdownPreview(guide.video_summary || guide.content || "") }) })
|
|
2799
2739
|
] })
|
|
2800
2740
|
] }),
|
|
2801
|
-
/* @__PURE__ */
|
|
2741
|
+
/* @__PURE__ */ jsx14(
|
|
2802
2742
|
EntityAuthorCard,
|
|
2803
2743
|
{
|
|
2804
2744
|
author: guide.author,
|
|
@@ -2830,7 +2770,7 @@ function OnboardingGuideCard({
|
|
|
2830
2770
|
].filter((s) => typeof s === "string" && s.length > 0);
|
|
2831
2771
|
return /* @__PURE__ */ jsxs12(next_link_default, { href, target, rel, prefetch: false, className: cn(COMPACT_CARD_OUTER, className), children: [
|
|
2832
2772
|
/* @__PURE__ */ jsxs12("span", { className: COMPACT_CARD_IMAGE_SLOT, children: [
|
|
2833
|
-
compactCover ? /* @__PURE__ */
|
|
2773
|
+
compactCover ? /* @__PURE__ */ jsx14(
|
|
2834
2774
|
next_image_default,
|
|
2835
2775
|
{
|
|
2836
2776
|
src: compactCover,
|
|
@@ -2840,15 +2780,15 @@ function OnboardingGuideCard({
|
|
|
2840
2780
|
className: "object-contain",
|
|
2841
2781
|
unoptimized: true
|
|
2842
2782
|
}
|
|
2843
|
-
) : /* @__PURE__ */
|
|
2844
|
-
hasVideoCover && compactCover && /* @__PURE__ */
|
|
2783
|
+
) : /* @__PURE__ */ jsx14("span", { className: "flex h-full w-full items-center justify-center text-ods-accent", children: /* @__PURE__ */ jsx14(GraduationCap, { className: "w-4 h-4" }) }),
|
|
2784
|
+
hasVideoCover && compactCover && /* @__PURE__ */ jsx14("span", { className: "absolute inset-0 flex items-center justify-center bg-black/30", children: /* @__PURE__ */ jsx14(Play, { className: "h-4 w-4 text-white", fill: "white" }) })
|
|
2845
2785
|
] }),
|
|
2846
2786
|
/* @__PURE__ */ jsxs12("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
2847
|
-
/* @__PURE__ */
|
|
2848
|
-
/* @__PURE__ */
|
|
2849
|
-
/* @__PURE__ */
|
|
2787
|
+
/* @__PURE__ */ jsx14("span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ jsx14("span", { className: cn(COMPACT_CARD_TITLE, "font-['Azeret_Mono']"), children: guide.title }) }),
|
|
2788
|
+
/* @__PURE__ */ jsx14("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx14("span", { className: "truncate text-[11px] leading-4 text-[var(--color-accent-primary)]", children: subtitleParts.join(" \xB7 ") }) }),
|
|
2789
|
+
/* @__PURE__ */ jsx14("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx14("span", { className: COMPACT_CARD_SUMMARY, children: summary2 || COMPACT_CARD_ROW_FILLER }) })
|
|
2850
2790
|
] }),
|
|
2851
|
-
/* @__PURE__ */
|
|
2791
|
+
/* @__PURE__ */ jsx14("span", { className: "flex shrink-0 items-center self-start h-5 text-ods-text-secondary", children: /* @__PURE__ */ jsx14(ExternalLink, { className: "w-3.5 h-3.5" }) })
|
|
2852
2792
|
] });
|
|
2853
2793
|
}
|
|
2854
2794
|
const t = HORIZONTAL_SIZE_TOKENS.default;
|
|
@@ -2865,7 +2805,7 @@ function OnboardingGuideCard({
|
|
|
2865
2805
|
className
|
|
2866
2806
|
),
|
|
2867
2807
|
children: [
|
|
2868
|
-
/* @__PURE__ */
|
|
2808
|
+
/* @__PURE__ */ jsx14(
|
|
2869
2809
|
"span",
|
|
2870
2810
|
{
|
|
2871
2811
|
className: `shrink-0 inline-flex items-center justify-center rounded-full bg-ods-accent/10 text-ods-accent font-semibold ${t.step}`,
|
|
@@ -2874,12 +2814,12 @@ function OnboardingGuideCard({
|
|
|
2874
2814
|
}
|
|
2875
2815
|
),
|
|
2876
2816
|
/* @__PURE__ */ jsxs12("span", { className: "flex flex-col gap-0.5 flex-1 min-w-0", children: [
|
|
2877
|
-
/* @__PURE__ */
|
|
2817
|
+
/* @__PURE__ */ jsx14("span", { className: `block ${t.title} text-ods-text-primary truncate`, children: guide.title }),
|
|
2878
2818
|
/* @__PURE__ */ jsxs12("span", { className: "inline-flex items-center gap-1 font-['DM_Sans'] text-[12px] leading-[16px] text-ods-text-secondary", children: [
|
|
2879
|
-
/* @__PURE__ */
|
|
2880
|
-
/* @__PURE__ */
|
|
2819
|
+
/* @__PURE__ */ jsx14(GraduationCap, { className: "h-3 w-3 shrink-0" }),
|
|
2820
|
+
/* @__PURE__ */ jsx14("span", { className: "truncate", children: guide.section })
|
|
2881
2821
|
] }),
|
|
2882
|
-
summary && /* @__PURE__ */
|
|
2822
|
+
summary && /* @__PURE__ */ jsx14("span", { className: `font-['DM_Sans'] text-[14px] leading-[20px] text-ods-text-secondary ${t.summaryClamp}`, children: summary })
|
|
2883
2823
|
] })
|
|
2884
2824
|
]
|
|
2885
2825
|
}
|
|
@@ -3298,7 +3238,7 @@ function resolveSourceIcon(input, ctx = {}) {
|
|
|
3298
3238
|
init_cn();
|
|
3299
3239
|
import React11 from "react";
|
|
3300
3240
|
init_button();
|
|
3301
|
-
import { Fragment as Fragment4, jsx as
|
|
3241
|
+
import { Fragment as Fragment4, jsx as jsx15, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
3302
3242
|
function actionKey(action, idx) {
|
|
3303
3243
|
return `${action.label ?? action.ariaLabel ?? "action"}-${idx}`;
|
|
3304
3244
|
}
|
|
@@ -3330,7 +3270,7 @@ function actionToMenuItems(action, idx) {
|
|
|
3330
3270
|
}
|
|
3331
3271
|
function renderActionButton(action, opts = {}) {
|
|
3332
3272
|
if (action.iconAction) {
|
|
3333
|
-
return /* @__PURE__ */
|
|
3273
|
+
return /* @__PURE__ */ jsx15(
|
|
3334
3274
|
SplitButton,
|
|
3335
3275
|
{
|
|
3336
3276
|
variant: action.variant ?? void 0,
|
|
@@ -3348,18 +3288,18 @@ function renderActionButton(action, opts = {}) {
|
|
|
3348
3288
|
);
|
|
3349
3289
|
}
|
|
3350
3290
|
if (action.submenu && action.submenu.length > 0) {
|
|
3351
|
-
return /* @__PURE__ */
|
|
3291
|
+
return /* @__PURE__ */ jsx15(
|
|
3352
3292
|
ActionsMenuDropdown,
|
|
3353
3293
|
{
|
|
3354
3294
|
groups: [{ items: action.submenu }],
|
|
3355
|
-
customTrigger: /* @__PURE__ */
|
|
3295
|
+
customTrigger: /* @__PURE__ */ jsx15(
|
|
3356
3296
|
Button,
|
|
3357
3297
|
{
|
|
3358
3298
|
variant: "outline",
|
|
3359
3299
|
disabled: action.disabled,
|
|
3360
3300
|
loading: action.loading,
|
|
3361
3301
|
leftIcon: action.icon,
|
|
3362
|
-
splitIcon: /* @__PURE__ */
|
|
3302
|
+
splitIcon: /* @__PURE__ */ jsx15(Chevron02DownIcon, { className: "h-4 w-4" }),
|
|
3363
3303
|
className: opts.fullWidth ? "flex-1" : void 0,
|
|
3364
3304
|
children: action.label
|
|
3365
3305
|
}
|
|
@@ -3369,8 +3309,8 @@ function renderActionButton(action, opts = {}) {
|
|
|
3369
3309
|
}
|
|
3370
3310
|
const isIconOnly = opts.iconOnly || !action.label || action.iconOnlyOnDesktop;
|
|
3371
3311
|
if (isIconOnly) {
|
|
3372
|
-
const iconNode = action.iconOnlyOnDesktop ? /* @__PURE__ */
|
|
3373
|
-
return /* @__PURE__ */
|
|
3312
|
+
const iconNode = action.iconOnlyOnDesktop ? /* @__PURE__ */ jsx15("span", { className: "inline-flex [&_svg]:!text-ods-text-primary", children: action.icon }) : action.icon;
|
|
3313
|
+
return /* @__PURE__ */ jsx15(
|
|
3374
3314
|
Button,
|
|
3375
3315
|
{
|
|
3376
3316
|
variant: action.variant,
|
|
@@ -3386,7 +3326,7 @@ function renderActionButton(action, opts = {}) {
|
|
|
3386
3326
|
}
|
|
3387
3327
|
);
|
|
3388
3328
|
}
|
|
3389
|
-
return /* @__PURE__ */
|
|
3329
|
+
return /* @__PURE__ */ jsx15(
|
|
3390
3330
|
Button,
|
|
3391
3331
|
{
|
|
3392
3332
|
variant: action.variant,
|
|
@@ -3411,12 +3351,12 @@ function PageActions({
|
|
|
3411
3351
|
className
|
|
3412
3352
|
}) {
|
|
3413
3353
|
if (variant === "icon-buttons") {
|
|
3414
|
-
return /* @__PURE__ */
|
|
3354
|
+
return /* @__PURE__ */ jsx15(IconButtonsVariant, { actions, menuActions, selector, className });
|
|
3415
3355
|
}
|
|
3416
3356
|
if (variant === "menu-primary") {
|
|
3417
|
-
return /* @__PURE__ */
|
|
3357
|
+
return /* @__PURE__ */ jsx15(MenuPrimaryVariant, { actions, menuActions: menuActions || [], selector, className });
|
|
3418
3358
|
}
|
|
3419
|
-
return /* @__PURE__ */
|
|
3359
|
+
return /* @__PURE__ */ jsx15(PrimaryButtonsVariant, { actions, className });
|
|
3420
3360
|
}
|
|
3421
3361
|
function IconButtonsVariant({
|
|
3422
3362
|
actions,
|
|
@@ -3432,10 +3372,10 @@ function IconButtonsVariant({
|
|
|
3432
3372
|
return /* @__PURE__ */ jsxs13(Fragment4, { children: [
|
|
3433
3373
|
/* @__PURE__ */ jsxs13("div", { className: cn("hidden md:flex items-center", ACTIONS_GAP, className), children: [
|
|
3434
3374
|
selector,
|
|
3435
|
-
desktopActions.map((action, idx) => /* @__PURE__ */
|
|
3436
|
-
hasMenuActions && /* @__PURE__ */
|
|
3375
|
+
desktopActions.map((action, idx) => /* @__PURE__ */ jsx15(React11.Fragment, { children: renderActionButton(action) }, actionKey(action, idx))),
|
|
3376
|
+
hasMenuActions && /* @__PURE__ */ jsx15(ActionsMenuDropdown, { groups: menuActions })
|
|
3437
3377
|
] }),
|
|
3438
|
-
/* @__PURE__ */
|
|
3378
|
+
/* @__PURE__ */ jsx15("div", { className: cn("flex md:hidden", className), children: useSingleActionMobile && singleAction ? renderActionButton(singleAction, { iconOnly: true }) : /* @__PURE__ */ jsx15(
|
|
3439
3379
|
ActionsMenuDropdown,
|
|
3440
3380
|
{
|
|
3441
3381
|
groups: [
|
|
@@ -3457,8 +3397,8 @@ function PrimaryButtonsVariant({
|
|
|
3457
3397
|
});
|
|
3458
3398
|
const desktopActions = sortedActions.filter((a) => !a.showOnlyMobile);
|
|
3459
3399
|
return /* @__PURE__ */ jsxs13(Fragment4, { children: [
|
|
3460
|
-
/* @__PURE__ */
|
|
3461
|
-
/* @__PURE__ */
|
|
3400
|
+
/* @__PURE__ */ jsx15("div", { className: cn("hidden md:flex items-center", ACTIONS_GAP, className), children: desktopActions.map((action, idx) => /* @__PURE__ */ jsx15(React11.Fragment, { children: renderActionButton(action) }, `desktop-${actionKey(action, idx)}`)) }),
|
|
3401
|
+
/* @__PURE__ */ jsx15(MobileBottomActions, { actions: sortedActions })
|
|
3462
3402
|
] });
|
|
3463
3403
|
}
|
|
3464
3404
|
function MenuPrimaryVariant({
|
|
@@ -3472,10 +3412,10 @@ function MenuPrimaryVariant({
|
|
|
3472
3412
|
return /* @__PURE__ */ jsxs13(Fragment4, { children: [
|
|
3473
3413
|
/* @__PURE__ */ jsxs13("div", { className: cn("hidden md:flex items-center", ACTIONS_GAP, className), children: [
|
|
3474
3414
|
selector,
|
|
3475
|
-
hasMenuActions && /* @__PURE__ */
|
|
3476
|
-
desktopActions.map((action, idx) => /* @__PURE__ */
|
|
3415
|
+
hasMenuActions && /* @__PURE__ */ jsx15(ActionsMenuDropdown, { groups: menuActions }),
|
|
3416
|
+
desktopActions.map((action, idx) => /* @__PURE__ */ jsx15(React11.Fragment, { children: renderActionButton({ ...action, variant: action.variant || "accent" }) }, `desktop-${actionKey(action, idx)}`))
|
|
3477
3417
|
] }),
|
|
3478
|
-
/* @__PURE__ */
|
|
3418
|
+
/* @__PURE__ */ jsx15("div", { className: cn("flex md:hidden", className), children: /* @__PURE__ */ jsx15(
|
|
3479
3419
|
ActionsMenuDropdown,
|
|
3480
3420
|
{
|
|
3481
3421
|
groups: [
|
|
@@ -3487,12 +3427,12 @@ function MenuPrimaryVariant({
|
|
|
3487
3427
|
] });
|
|
3488
3428
|
}
|
|
3489
3429
|
function MobileBottomActions({ actions }) {
|
|
3490
|
-
return /* @__PURE__ */
|
|
3430
|
+
return /* @__PURE__ */ jsx15("div", { className: cn(
|
|
3491
3431
|
"fixed md:hidden bottom-0 left-0 right-0 z-50",
|
|
3492
3432
|
"bg-ods-card border-t border-ods-border",
|
|
3493
3433
|
"flex items-start pt-6 pb-6 px-6",
|
|
3494
3434
|
ACTIONS_GAP
|
|
3495
|
-
), children: actions.map((action, idx) => /* @__PURE__ */
|
|
3435
|
+
), children: actions.map((action, idx) => /* @__PURE__ */ jsx15(React11.Fragment, { children: renderActionButton(action, { fullWidth: !!action.label }) }, `mobile-${actionKey(action, idx)}`)) });
|
|
3496
3436
|
}
|
|
3497
3437
|
function usePageActionsBottomPadding(variant) {
|
|
3498
3438
|
return variant === "primary-buttons" || variant === "menu-primary" ? "pb-40 md:pb-0" : "";
|
|
@@ -3503,7 +3443,7 @@ init_cn();
|
|
|
3503
3443
|
|
|
3504
3444
|
// src/components/layout/back-button.tsx
|
|
3505
3445
|
init_cn();
|
|
3506
|
-
import { jsx as
|
|
3446
|
+
import { jsx as jsx16, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
3507
3447
|
function BackButton({ label = "Back", className, type = "button", ...props }) {
|
|
3508
3448
|
return /* @__PURE__ */ jsxs14(
|
|
3509
3449
|
"button",
|
|
@@ -3519,15 +3459,15 @@ function BackButton({ label = "Back", className, type = "button", ...props }) {
|
|
|
3519
3459
|
),
|
|
3520
3460
|
...props,
|
|
3521
3461
|
children: [
|
|
3522
|
-
/* @__PURE__ */
|
|
3523
|
-
/* @__PURE__ */
|
|
3462
|
+
/* @__PURE__ */ jsx16(Chevron02LeftIcon, { className: "size-6 shrink-0" }),
|
|
3463
|
+
/* @__PURE__ */ jsx16("span", { className: "text-h4", children: label })
|
|
3524
3464
|
]
|
|
3525
3465
|
}
|
|
3526
3466
|
);
|
|
3527
3467
|
}
|
|
3528
3468
|
|
|
3529
3469
|
// src/components/layout/page-container.tsx
|
|
3530
|
-
import { jsx as
|
|
3470
|
+
import { jsx as jsx17, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
3531
3471
|
function isAdvancedProps(props) {
|
|
3532
3472
|
return "variant" in props || "title" in props || "subtitle" in props || "backButton" in props || "headerActions" in props || "headerContent" in props || "showHeader" in props || "contentClassName" in props || "actions" in props || "actionsVariant" in props;
|
|
3533
3473
|
}
|
|
@@ -3549,9 +3489,9 @@ function renderLegacyPageContainer({
|
|
|
3549
3489
|
as: Component = "section",
|
|
3550
3490
|
id
|
|
3551
3491
|
}) {
|
|
3552
|
-
const content = /* @__PURE__ */
|
|
3492
|
+
const content = /* @__PURE__ */ jsx17("div", { className: cn(maxWidth, contentPadding, "mx-auto", className), children });
|
|
3553
3493
|
if (fullWidthBackground) {
|
|
3554
|
-
return /* @__PURE__ */
|
|
3494
|
+
return /* @__PURE__ */ jsx17(
|
|
3555
3495
|
Component,
|
|
3556
3496
|
{
|
|
3557
3497
|
className: cn("w-full", backgroundClassName),
|
|
@@ -3561,7 +3501,7 @@ function renderLegacyPageContainer({
|
|
|
3561
3501
|
}
|
|
3562
3502
|
);
|
|
3563
3503
|
}
|
|
3564
|
-
return /* @__PURE__ */
|
|
3504
|
+
return /* @__PURE__ */ jsx17(Component, { className: "w-full", id, children: /* @__PURE__ */ jsx17("div", { className: cn(maxWidth, contentPadding, "mx-auto", backgroundClassName, className), style: backgroundStyle, children }) });
|
|
3565
3505
|
}
|
|
3566
3506
|
function renderAdvancedPageContainer({
|
|
3567
3507
|
children,
|
|
@@ -3587,7 +3527,7 @@ function renderAdvancedPageContainer({
|
|
|
3587
3527
|
};
|
|
3588
3528
|
const renderActions = () => {
|
|
3589
3529
|
if (!actions || actions.length === 0) return null;
|
|
3590
|
-
return /* @__PURE__ */
|
|
3530
|
+
return /* @__PURE__ */ jsx17(PageActions, { variant: getActionsVariant(), actions, menuActions });
|
|
3591
3531
|
};
|
|
3592
3532
|
const needsBottomPadding = actions && actions.length > 0 && getActionsVariant() === "primary-buttons";
|
|
3593
3533
|
const paddingClasses = {
|
|
@@ -3604,14 +3544,14 @@ function renderAdvancedPageContainer({
|
|
|
3604
3544
|
const renderHeader = () => {
|
|
3605
3545
|
if (!showHeader) return null;
|
|
3606
3546
|
if (headerContent) {
|
|
3607
|
-
return /* @__PURE__ */
|
|
3547
|
+
return /* @__PURE__ */ jsx17("div", { className: cn(
|
|
3608
3548
|
"flex items-end justify-between gap-4"
|
|
3609
3549
|
), children: headerContent });
|
|
3610
3550
|
}
|
|
3611
3551
|
if (variant === "detail") {
|
|
3612
3552
|
return /* @__PURE__ */ jsxs15("div", { className: "flex items-end justify-between md:flex-col md:items-start md:justify-start lg:flex-row lg:items-end lg:justify-between gap-4", children: [
|
|
3613
3553
|
/* @__PURE__ */ jsxs15("div", { className: "flex flex-col gap-2 flex-1 min-w-0", children: [
|
|
3614
|
-
backButton && /* @__PURE__ */
|
|
3554
|
+
backButton && /* @__PURE__ */ jsx17(
|
|
3615
3555
|
BackButton,
|
|
3616
3556
|
{
|
|
3617
3557
|
onClick: backButton.onClick,
|
|
@@ -3619,8 +3559,8 @@ function renderAdvancedPageContainer({
|
|
|
3619
3559
|
className: "hidden md:inline-flex"
|
|
3620
3560
|
}
|
|
3621
3561
|
),
|
|
3622
|
-
title && /* @__PURE__ */
|
|
3623
|
-
subtitle && /* @__PURE__ */
|
|
3562
|
+
title && /* @__PURE__ */ jsx17("h1", { className: "text-h2 tracking-[-0.64px] text-ods-text-primary", children: title }),
|
|
3563
|
+
subtitle && /* @__PURE__ */ jsx17("div", { className: "text-ods-text-secondary font-['DM_Sans'] font-medium text-[16px]", children: subtitle })
|
|
3624
3564
|
] }),
|
|
3625
3565
|
(headerActions || actions) && /* @__PURE__ */ jsxs15("div", { className: "flex gap-2 items-center shrink-0", children: [
|
|
3626
3566
|
headerActions,
|
|
@@ -3631,7 +3571,7 @@ function renderAdvancedPageContainer({
|
|
|
3631
3571
|
if (variant === "list") {
|
|
3632
3572
|
return /* @__PURE__ */ jsxs15("div", { className: "flex items-center justify-between md:flex-col md:items-start md:justify-start lg:flex-row lg:items-center lg:justify-between gap-4", children: [
|
|
3633
3573
|
/* @__PURE__ */ jsxs15("div", { className: "flex flex-col gap-1 flex-1 min-w-0", children: [
|
|
3634
|
-
backButton && /* @__PURE__ */
|
|
3574
|
+
backButton && /* @__PURE__ */ jsx17(
|
|
3635
3575
|
BackButton,
|
|
3636
3576
|
{
|
|
3637
3577
|
onClick: backButton.onClick,
|
|
@@ -3639,8 +3579,8 @@ function renderAdvancedPageContainer({
|
|
|
3639
3579
|
className: "hidden md:inline-flex"
|
|
3640
3580
|
}
|
|
3641
3581
|
),
|
|
3642
|
-
title && /* @__PURE__ */
|
|
3643
|
-
subtitle && /* @__PURE__ */
|
|
3582
|
+
title && /* @__PURE__ */ jsx17("h1", { className: "text-h2 tracking-[-0.48px] text-ods-text-primary", children: title }),
|
|
3583
|
+
subtitle && /* @__PURE__ */ jsx17("div", { className: "text-ods-text-secondary font-['DM_Sans'] font-medium text-[16px]", children: subtitle })
|
|
3644
3584
|
] }),
|
|
3645
3585
|
(headerActions || actions) && /* @__PURE__ */ jsxs15("div", { className: "flex gap-3 items-center shrink-0", children: [
|
|
3646
3586
|
headerActions,
|
|
@@ -3651,7 +3591,7 @@ function renderAdvancedPageContainer({
|
|
|
3651
3591
|
if (variant === "form") {
|
|
3652
3592
|
return /* @__PURE__ */ jsxs15("div", { className: "flex items-end justify-between md:flex-col md:items-start md:justify-start lg:flex-row lg:items-end lg:justify-between gap-4", children: [
|
|
3653
3593
|
/* @__PURE__ */ jsxs15("div", { className: "flex flex-col gap-2 flex-1 min-w-0", children: [
|
|
3654
|
-
backButton && /* @__PURE__ */
|
|
3594
|
+
backButton && /* @__PURE__ */ jsx17(
|
|
3655
3595
|
BackButton,
|
|
3656
3596
|
{
|
|
3657
3597
|
onClick: backButton.onClick,
|
|
@@ -3659,7 +3599,7 @@ function renderAdvancedPageContainer({
|
|
|
3659
3599
|
className: "hidden md:inline-flex"
|
|
3660
3600
|
}
|
|
3661
3601
|
),
|
|
3662
|
-
title && /* @__PURE__ */
|
|
3602
|
+
title && /* @__PURE__ */ jsx17("h1", { className: "text-[32px] font-['Azeret_Mono:SemiBold',_sans-serif] font-semibold text-ods-text-primary tracking-[-0.64px]", children: title })
|
|
3663
3603
|
] }),
|
|
3664
3604
|
(headerActions || actions) && /* @__PURE__ */ jsxs15("div", { className: "flex gap-4 items-center shrink-0", children: [
|
|
3665
3605
|
headerActions,
|
|
@@ -3669,8 +3609,8 @@ function renderAdvancedPageContainer({
|
|
|
3669
3609
|
}
|
|
3670
3610
|
return /* @__PURE__ */ jsxs15("div", { className: "flex items-center justify-between md:flex-col md:items-start md:justify-start lg:flex-row lg:items-center lg:justify-between gap-4", children: [
|
|
3671
3611
|
(title || subtitle) && /* @__PURE__ */ jsxs15("div", { className: "flex flex-col gap-1 flex-1 min-w-0", children: [
|
|
3672
|
-
title && /* @__PURE__ */
|
|
3673
|
-
subtitle && /* @__PURE__ */
|
|
3612
|
+
title && /* @__PURE__ */ jsx17("h1", { className: "text-h2 text-ods-text-primary", children: title }),
|
|
3613
|
+
subtitle && /* @__PURE__ */ jsx17("div", { className: "text-ods-text-secondary font-['DM_Sans'] font-medium text-[16px]", children: subtitle })
|
|
3674
3614
|
] }),
|
|
3675
3615
|
(headerActions || actions) && /* @__PURE__ */ jsxs15("div", { className: "flex gap-3 items-center shrink-0", children: [
|
|
3676
3616
|
headerActions,
|
|
@@ -3712,26 +3652,26 @@ function renderAdvancedPageContainer({
|
|
|
3712
3652
|
};
|
|
3713
3653
|
return /* @__PURE__ */ jsxs15("div", { className: getContainerClasses(), children: [
|
|
3714
3654
|
renderHeader(),
|
|
3715
|
-
/* @__PURE__ */
|
|
3655
|
+
/* @__PURE__ */ jsx17("div", { className: getContentClasses(), children })
|
|
3716
3656
|
] });
|
|
3717
3657
|
}
|
|
3718
|
-
var ListPageContainer = (props) => /* @__PURE__ */
|
|
3719
|
-
var DetailPageContainer = (props) => /* @__PURE__ */
|
|
3720
|
-
var FormPageContainer = (props) => /* @__PURE__ */
|
|
3721
|
-
var ContentPageContainer = (props) => /* @__PURE__ */
|
|
3658
|
+
var ListPageContainer = (props) => /* @__PURE__ */ jsx17(PageContainer, { ...props, variant: "list" });
|
|
3659
|
+
var DetailPageContainer = (props) => /* @__PURE__ */ jsx17(PageContainer, { ...props, variant: "detail" });
|
|
3660
|
+
var FormPageContainer = (props) => /* @__PURE__ */ jsx17(PageContainer, { ...props, variant: "form" });
|
|
3661
|
+
var ContentPageContainer = (props) => /* @__PURE__ */ jsx17(PageContainer, { ...props, variant: "content" });
|
|
3722
3662
|
|
|
3723
3663
|
// src/components/layout/article-detail-layout.tsx
|
|
3724
|
-
import { jsx as
|
|
3664
|
+
import { jsx as jsx18, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
3725
3665
|
function PageShell({ children, schemas }) {
|
|
3726
3666
|
return /* @__PURE__ */ jsxs16("main", { className: "bg-ods-bg min-h-screen", children: [
|
|
3727
3667
|
schemas,
|
|
3728
|
-
/* @__PURE__ */
|
|
3668
|
+
/* @__PURE__ */ jsx18("div", { className: "max-w-[1920px] mx-auto px-6 md:px-20 py-6 md:py-10", children })
|
|
3729
3669
|
] });
|
|
3730
3670
|
}
|
|
3731
3671
|
function ArticleDetailLayout({ children, schemas }) {
|
|
3732
3672
|
return /* @__PURE__ */ jsxs16("main", { className: "bg-ods-bg min-h-screen", children: [
|
|
3733
3673
|
schemas,
|
|
3734
|
-
/* @__PURE__ */
|
|
3674
|
+
/* @__PURE__ */ jsx18("div", { className: "max-w-[1280px] mx-auto px-6 md:px-20 py-6 md:py-10", children })
|
|
3735
3675
|
] });
|
|
3736
3676
|
}
|
|
3737
3677
|
|
|
@@ -3786,7 +3726,7 @@ function resolveContentHref(composeContentUrl, args) {
|
|
|
3786
3726
|
init_button();
|
|
3787
3727
|
init_cn();
|
|
3788
3728
|
import { AlertTriangle, RefreshCw, Home } from "lucide-react";
|
|
3789
|
-
import { jsx as
|
|
3729
|
+
import { jsx as jsx19, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
3790
3730
|
function ErrorState({
|
|
3791
3731
|
title = "Error",
|
|
3792
3732
|
message,
|
|
@@ -3825,36 +3765,36 @@ function ErrorState({
|
|
|
3825
3765
|
}
|
|
3826
3766
|
};
|
|
3827
3767
|
const styles = getVariantStyles();
|
|
3828
|
-
return /* @__PURE__ */
|
|
3768
|
+
return /* @__PURE__ */ jsx19("div", { className: cn("p-6", containerClassName), children: /* @__PURE__ */ jsx19("div", { className: cn(
|
|
3829
3769
|
"rounded-lg p-4 border",
|
|
3830
3770
|
styles.bg,
|
|
3831
3771
|
styles.border,
|
|
3832
3772
|
className
|
|
3833
3773
|
), children: /* @__PURE__ */ jsxs17("div", { className: "flex items-start gap-3", children: [
|
|
3834
|
-
showIcon && /* @__PURE__ */
|
|
3774
|
+
showIcon && /* @__PURE__ */ jsx19(AlertTriangle, { className: cn("h-5 w-5 mt-0.5 flex-shrink-0", styles.icon) }),
|
|
3835
3775
|
/* @__PURE__ */ jsxs17("div", { className: "flex-1", children: [
|
|
3836
|
-
/* @__PURE__ */
|
|
3837
|
-
/* @__PURE__ */
|
|
3776
|
+
/* @__PURE__ */ jsx19("h3", { className: cn("font-semibold mb-1", styles.text), children: title }),
|
|
3777
|
+
/* @__PURE__ */ jsx19("p", { className: cn("text-sm", styles.text), children: message }),
|
|
3838
3778
|
(showRetry || showHome) && /* @__PURE__ */ jsxs17("div", { className: "flex gap-2 mt-3", children: [
|
|
3839
|
-
showRetry && onRetry && /* @__PURE__ */
|
|
3779
|
+
showRetry && onRetry && /* @__PURE__ */ jsx19(
|
|
3840
3780
|
Button,
|
|
3841
3781
|
{
|
|
3842
3782
|
onClick: onRetry,
|
|
3843
3783
|
variant: "outline",
|
|
3844
3784
|
size: "small-legacy",
|
|
3845
3785
|
className: "h-8",
|
|
3846
|
-
leftIcon: /* @__PURE__ */
|
|
3786
|
+
leftIcon: /* @__PURE__ */ jsx19(RefreshCw, { className: "h-4 w-4" }),
|
|
3847
3787
|
children: "Try Again"
|
|
3848
3788
|
}
|
|
3849
3789
|
),
|
|
3850
|
-
showHome && onHome && /* @__PURE__ */
|
|
3790
|
+
showHome && onHome && /* @__PURE__ */ jsx19(
|
|
3851
3791
|
Button,
|
|
3852
3792
|
{
|
|
3853
3793
|
onClick: onHome,
|
|
3854
3794
|
variant: "outline",
|
|
3855
3795
|
size: "small-legacy",
|
|
3856
3796
|
className: "h-8",
|
|
3857
|
-
leftIcon: /* @__PURE__ */
|
|
3797
|
+
leftIcon: /* @__PURE__ */ jsx19(Home, { className: "h-4 w-4" }),
|
|
3858
3798
|
children: "Go Home"
|
|
3859
3799
|
}
|
|
3860
3800
|
)
|
|
@@ -3863,7 +3803,7 @@ function ErrorState({
|
|
|
3863
3803
|
] }) }) });
|
|
3864
3804
|
}
|
|
3865
3805
|
function PageError({ message, onRetry, onHome }) {
|
|
3866
|
-
return /* @__PURE__ */
|
|
3806
|
+
return /* @__PURE__ */ jsx19(
|
|
3867
3807
|
ErrorState,
|
|
3868
3808
|
{
|
|
3869
3809
|
title: "Page Error",
|
|
@@ -3877,7 +3817,7 @@ function PageError({ message, onRetry, onHome }) {
|
|
|
3877
3817
|
);
|
|
3878
3818
|
}
|
|
3879
3819
|
function LoadError({ message, onRetry }) {
|
|
3880
|
-
return /* @__PURE__ */
|
|
3820
|
+
return /* @__PURE__ */ jsx19(
|
|
3881
3821
|
ErrorState,
|
|
3882
3822
|
{
|
|
3883
3823
|
title: "Loading Error",
|
|
@@ -3889,7 +3829,7 @@ function LoadError({ message, onRetry }) {
|
|
|
3889
3829
|
);
|
|
3890
3830
|
}
|
|
3891
3831
|
function NotFoundError({ message = "The requested item was not found", onHome }) {
|
|
3892
|
-
return /* @__PURE__ */
|
|
3832
|
+
return /* @__PURE__ */ jsx19(
|
|
3893
3833
|
ErrorState,
|
|
3894
3834
|
{
|
|
3895
3835
|
title: "Not Found",
|
|
@@ -3901,36 +3841,6 @@ function NotFoundError({ message = "The requested item was not found", onHome })
|
|
|
3901
3841
|
);
|
|
3902
3842
|
}
|
|
3903
3843
|
|
|
3904
|
-
// src/components/features/entity-tag-badges.tsx
|
|
3905
|
-
import Link from "next/link";
|
|
3906
|
-
import { jsx as jsx21, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
3907
|
-
var BADGE_CLASS = "bg-ods-card border border-ods-border";
|
|
3908
|
-
function EntityTagBadges({ tags, basePath, max, className }) {
|
|
3909
|
-
const items = (tags || []).filter((t) => !!t && !!t.name);
|
|
3910
|
-
if (items.length === 0) return null;
|
|
3911
|
-
const visibleLimit = max == null ? items.length : Math.max(0, max);
|
|
3912
|
-
const shown = items.slice(0, visibleLimit);
|
|
3913
|
-
const overflow = items.length - shown.length;
|
|
3914
|
-
return /* @__PURE__ */ jsxs18("div", { className: `flex flex-wrap items-center gap-2 w-full ${className || ""}`, children: [
|
|
3915
|
-
shown.map((tag) => {
|
|
3916
|
-
const key = tag.tag_id ?? tag.id ?? tag.slug ?? tag.name;
|
|
3917
|
-
const label = (tag.name || "").toUpperCase();
|
|
3918
|
-
if (basePath && tag.slug) {
|
|
3919
|
-
return /* @__PURE__ */ jsx21(Link, { href: `${basePath}?tags=${tag.slug}`, className: "inline-flex", children: /* @__PURE__ */ jsx21(
|
|
3920
|
-
StatusBadge,
|
|
3921
|
-
{
|
|
3922
|
-
text: label,
|
|
3923
|
-
variant: "card",
|
|
3924
|
-
className: `${BADGE_CLASS} cursor-pointer transition-colors hover:border-ods-accent`
|
|
3925
|
-
}
|
|
3926
|
-
) }, key);
|
|
3927
|
-
}
|
|
3928
|
-
return /* @__PURE__ */ jsx21(StatusBadge, { text: label, variant: "card", className: BADGE_CLASS }, key);
|
|
3929
|
-
}),
|
|
3930
|
-
overflow > 0 && /* @__PURE__ */ jsx21(StatusBadge, { text: `+${overflow}`, variant: "card", className: `${BADGE_CLASS} text-ods-text-secondary` })
|
|
3931
|
-
] });
|
|
3932
|
-
}
|
|
3933
|
-
|
|
3934
3844
|
// src/components/features/mux-origins.ts
|
|
3935
3845
|
var MUX_STREAM_ORIGIN = "https://stream.mux.com";
|
|
3936
3846
|
var MUX_IMAGE_ORIGIN = "https://image.mux.com";
|
|
@@ -4004,7 +3914,7 @@ init_cn();
|
|
|
4004
3914
|
import * as PopoverPrimitive from "@radix-ui/react-popover";
|
|
4005
3915
|
import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
|
|
4006
3916
|
import * as React12 from "react";
|
|
4007
|
-
import { jsx as
|
|
3917
|
+
import { jsx as jsx20, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
4008
3918
|
var containerStyles = cn(
|
|
4009
3919
|
// Layout & spacing — matches lib Input component
|
|
4010
3920
|
"flex items-center gap-2 rounded-[6px] border px-3 h-11 md:h-12 cursor-text",
|
|
@@ -4188,20 +4098,20 @@ function SearchInput({
|
|
|
4188
4098
|
const handleOpenChange = (open) => {
|
|
4189
4099
|
setIsOpen(open);
|
|
4190
4100
|
};
|
|
4191
|
-
const defaultRenderResult = (result, isHighlighted) => /* @__PURE__ */
|
|
4192
|
-
result.icon && /* @__PURE__ */
|
|
4193
|
-
/* @__PURE__ */
|
|
4194
|
-
/* @__PURE__ */
|
|
4101
|
+
const defaultRenderResult = (result, isHighlighted) => /* @__PURE__ */ jsxs18("div", { className: "flex items-center gap-3 w-full min-w-0", children: [
|
|
4102
|
+
result.icon && /* @__PURE__ */ jsx20("span", { className: "flex-shrink-0 text-ods-text-secondary [&_svg]:size-4", children: result.icon }),
|
|
4103
|
+
/* @__PURE__ */ jsxs18("div", { className: "min-w-0 flex-1", children: [
|
|
4104
|
+
/* @__PURE__ */ jsx20("div", { className: cn(
|
|
4195
4105
|
"text-sm font-medium leading-5 truncate",
|
|
4196
4106
|
isHighlighted ? "text-ods-accent" : "text-ods-text-primary"
|
|
4197
4107
|
), title: result.title, children: result.title }),
|
|
4198
|
-
result.description && /* @__PURE__ */
|
|
4108
|
+
result.description && /* @__PURE__ */ jsx20("div", { className: "text-xs leading-4 text-ods-text-secondary truncate mt-0.5", title: result.description, children: result.description })
|
|
4199
4109
|
] }),
|
|
4200
|
-
result.type && /* @__PURE__ */
|
|
4110
|
+
result.type && /* @__PURE__ */ jsx20("span", { className: "flex-shrink-0 text-[11px] font-medium text-ods-text-muted uppercase tracking-wider", children: result.type })
|
|
4201
4111
|
] });
|
|
4202
4112
|
const renderRow = (result, index) => {
|
|
4203
4113
|
const isHighlighted = index === highlightedIndex;
|
|
4204
|
-
return /* @__PURE__ */
|
|
4114
|
+
return /* @__PURE__ */ jsx20(
|
|
4205
4115
|
"div",
|
|
4206
4116
|
{
|
|
4207
4117
|
role: "option",
|
|
@@ -4220,15 +4130,15 @@ function SearchInput({
|
|
|
4220
4130
|
};
|
|
4221
4131
|
const renderDropdownContent = () => {
|
|
4222
4132
|
if (isLoading) {
|
|
4223
|
-
return /* @__PURE__ */
|
|
4133
|
+
return /* @__PURE__ */ jsx20("div", { className: "px-4 py-3 text-ods-text-secondary text-[14px]", children: "Loading..." });
|
|
4224
4134
|
}
|
|
4225
4135
|
if (flatResults.length === 0) {
|
|
4226
|
-
return /* @__PURE__ */
|
|
4136
|
+
return /* @__PURE__ */ jsx20("div", { className: "px-4 py-3 text-ods-text-secondary text-[14px]", children: emptyResultsText });
|
|
4227
4137
|
}
|
|
4228
4138
|
if (groups) {
|
|
4229
4139
|
let globalIndex = 0;
|
|
4230
|
-
return Array.from(groups.entries()).map(([groupLabel, groupResults]) => /* @__PURE__ */
|
|
4231
|
-
/* @__PURE__ */
|
|
4140
|
+
return Array.from(groups.entries()).map(([groupLabel, groupResults]) => /* @__PURE__ */ jsxs18("div", { children: [
|
|
4141
|
+
/* @__PURE__ */ jsx20("div", { className: "px-4 py-2 text-[12px] font-semibold text-ods-text-secondary uppercase tracking-wide bg-ods-bg", children: groupLabel }),
|
|
4232
4142
|
groupResults.map((result) => {
|
|
4233
4143
|
const idx = globalIndex++;
|
|
4234
4144
|
return renderRow(result, idx);
|
|
@@ -4238,9 +4148,9 @@ function SearchInput({
|
|
|
4238
4148
|
return flatResults.map((result, index) => renderRow(result, index));
|
|
4239
4149
|
};
|
|
4240
4150
|
const hasValue = currentValue.length > 0;
|
|
4241
|
-
return /* @__PURE__ */
|
|
4242
|
-
/* @__PURE__ */
|
|
4243
|
-
/* @__PURE__ */
|
|
4151
|
+
return /* @__PURE__ */ jsxs18("div", { className: cn("relative", className), ref: containerRef, children: [
|
|
4152
|
+
/* @__PURE__ */ jsxs18(PopoverPrimitive.Root, { open: dropdownVisible, onOpenChange: handleOpenChange, modal: false, children: [
|
|
4153
|
+
/* @__PURE__ */ jsx20(PopoverPrimitive.Anchor, { asChild: true, children: /* @__PURE__ */ jsxs18(
|
|
4244
4154
|
"div",
|
|
4245
4155
|
{
|
|
4246
4156
|
className: cn(
|
|
@@ -4253,9 +4163,9 @@ function SearchInput({
|
|
|
4253
4163
|
setIsOpen(true);
|
|
4254
4164
|
},
|
|
4255
4165
|
children: [
|
|
4256
|
-
/* @__PURE__ */
|
|
4257
|
-
/* @__PURE__ */
|
|
4258
|
-
visibleChips.map((chip) => /* @__PURE__ */
|
|
4166
|
+
/* @__PURE__ */ jsx20("span", { className: "flex-shrink-0 text-ods-text-secondary transition-colors duration-200 group-has-[:focus]:text-ods-accent [&_svg]:size-4 md:[&_svg]:size-6", children: startAdornment !== void 0 ? startAdornment : /* @__PURE__ */ jsx20(SearchIcon, {}) }),
|
|
4167
|
+
/* @__PURE__ */ jsxs18("div", { ref: middleRef, className: "flex-1 flex items-center gap-2 min-w-0 overflow-hidden", children: [
|
|
4168
|
+
visibleChips.map((chip) => /* @__PURE__ */ jsx20(
|
|
4259
4169
|
Tag,
|
|
4260
4170
|
{
|
|
4261
4171
|
variant: chipVariantToTagVariant(chip.variant),
|
|
@@ -4265,7 +4175,7 @@ function SearchInput({
|
|
|
4265
4175
|
},
|
|
4266
4176
|
chip.id
|
|
4267
4177
|
)),
|
|
4268
|
-
hiddenCount > 0 && /* @__PURE__ */
|
|
4178
|
+
hiddenCount > 0 && /* @__PURE__ */ jsx20("div", { ref: hiddenTagsRef, className: "shrink-0", children: /* @__PURE__ */ jsx20(
|
|
4269
4179
|
"button",
|
|
4270
4180
|
{
|
|
4271
4181
|
ref: badgeRef,
|
|
@@ -4284,7 +4194,7 @@ function SearchInput({
|
|
|
4284
4194
|
children: getLimitTagsText(hiddenCount)
|
|
4285
4195
|
}
|
|
4286
4196
|
) }),
|
|
4287
|
-
/* @__PURE__ */
|
|
4197
|
+
/* @__PURE__ */ jsx20(
|
|
4288
4198
|
"input",
|
|
4289
4199
|
{
|
|
4290
4200
|
ref: inputRef,
|
|
@@ -4301,15 +4211,15 @@ function SearchInput({
|
|
|
4301
4211
|
}
|
|
4302
4212
|
)
|
|
4303
4213
|
] }),
|
|
4304
|
-
/* @__PURE__ */
|
|
4305
|
-
hasValue && /* @__PURE__ */
|
|
4214
|
+
/* @__PURE__ */ jsxs18("div", { className: "flex items-center gap-1 shrink-0 ml-auto", children: [
|
|
4215
|
+
hasValue && /* @__PURE__ */ jsx20(
|
|
4306
4216
|
"button",
|
|
4307
4217
|
{
|
|
4308
4218
|
type: "button",
|
|
4309
4219
|
onClick: handleClear,
|
|
4310
4220
|
className: "flex items-center justify-center hover:opacity-70 transition-opacity",
|
|
4311
4221
|
"aria-label": "Clear search",
|
|
4312
|
-
children: /* @__PURE__ */
|
|
4222
|
+
children: /* @__PURE__ */ jsx20(XmarkCircleIcon, { className: "text-ods-text-secondary", size: 24 })
|
|
4313
4223
|
}
|
|
4314
4224
|
),
|
|
4315
4225
|
endAdornment
|
|
@@ -4317,7 +4227,7 @@ function SearchInput({
|
|
|
4317
4227
|
]
|
|
4318
4228
|
}
|
|
4319
4229
|
) }),
|
|
4320
|
-
/* @__PURE__ */
|
|
4230
|
+
/* @__PURE__ */ jsx20(
|
|
4321
4231
|
PopoverPrimitive.Content,
|
|
4322
4232
|
{
|
|
4323
4233
|
className: cn(
|
|
@@ -4340,14 +4250,14 @@ function SearchInput({
|
|
|
4340
4250
|
e.preventDefault();
|
|
4341
4251
|
}
|
|
4342
4252
|
},
|
|
4343
|
-
children: /* @__PURE__ */
|
|
4344
|
-
/* @__PURE__ */
|
|
4345
|
-
/* @__PURE__ */
|
|
4253
|
+
children: /* @__PURE__ */ jsxs18(ScrollAreaPrimitive.Root, { className: "overflow-hidden", children: [
|
|
4254
|
+
/* @__PURE__ */ jsx20(ScrollAreaPrimitive.Viewport, { className: "max-h-[320px] w-full", children: /* @__PURE__ */ jsx20("div", { role: "listbox", children: renderDropdownContent() }) }),
|
|
4255
|
+
/* @__PURE__ */ jsx20(ScrollAreaPrimitive.Scrollbar, { className: "hidden", orientation: "vertical", children: /* @__PURE__ */ jsx20(ScrollAreaPrimitive.Thumb, {}) })
|
|
4346
4256
|
] })
|
|
4347
4257
|
}
|
|
4348
4258
|
)
|
|
4349
4259
|
] }),
|
|
4350
|
-
showHiddenTags && hiddenCount > 0 && /* @__PURE__ */
|
|
4260
|
+
showHiddenTags && hiddenCount > 0 && /* @__PURE__ */ jsx20(
|
|
4351
4261
|
HiddenTagsPopup,
|
|
4352
4262
|
{
|
|
4353
4263
|
ref: hiddenTagsPopupRef,
|
|
@@ -4361,7 +4271,7 @@ function SearchInput({
|
|
|
4361
4271
|
}
|
|
4362
4272
|
}
|
|
4363
4273
|
),
|
|
4364
|
-
/* @__PURE__ */
|
|
4274
|
+
/* @__PURE__ */ jsx20(
|
|
4365
4275
|
"span",
|
|
4366
4276
|
{
|
|
4367
4277
|
ref: textMeasureRef,
|
|
@@ -4370,13 +4280,13 @@ function SearchInput({
|
|
|
4370
4280
|
children: currentPlaceholder
|
|
4371
4281
|
}
|
|
4372
4282
|
),
|
|
4373
|
-
/* @__PURE__ */
|
|
4283
|
+
/* @__PURE__ */ jsx20(
|
|
4374
4284
|
"div",
|
|
4375
4285
|
{
|
|
4376
4286
|
ref: measureRef,
|
|
4377
4287
|
"aria-hidden": "true",
|
|
4378
4288
|
className: "fixed -left-[9999px] top-0 flex gap-2 pointer-events-none",
|
|
4379
|
-
children: filterChips.map((chip) => /* @__PURE__ */
|
|
4289
|
+
children: filterChips.map((chip) => /* @__PURE__ */ jsx20(
|
|
4380
4290
|
Tag,
|
|
4381
4291
|
{
|
|
4382
4292
|
variant: chipVariantToTagVariant(chip.variant),
|
|
@@ -4395,7 +4305,7 @@ function SearchInput({
|
|
|
4395
4305
|
// src/components/ui/filter-pill-row.tsx
|
|
4396
4306
|
init_button();
|
|
4397
4307
|
import { Filter } from "lucide-react";
|
|
4398
|
-
import { jsx as
|
|
4308
|
+
import { jsx as jsx21, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
4399
4309
|
function FilterPillRow({
|
|
4400
4310
|
label,
|
|
4401
4311
|
selectedValue,
|
|
@@ -4404,12 +4314,12 @@ function FilterPillRow({
|
|
|
4404
4314
|
countLabel,
|
|
4405
4315
|
children
|
|
4406
4316
|
}) {
|
|
4407
|
-
return /* @__PURE__ */
|
|
4408
|
-
/* @__PURE__ */
|
|
4409
|
-
/* @__PURE__ */
|
|
4410
|
-
/* @__PURE__ */
|
|
4317
|
+
return /* @__PURE__ */ jsxs19("div", { className: "flex flex-wrap items-center gap-3 p-4 bg-ods-card border border-ods-border rounded-lg", children: [
|
|
4318
|
+
/* @__PURE__ */ jsxs19("div", { className: "flex items-center gap-2", children: [
|
|
4319
|
+
/* @__PURE__ */ jsx21(Filter, { className: "h-4 w-4 text-ods-accent" }),
|
|
4320
|
+
/* @__PURE__ */ jsx21("span", { className: "text-h5 text-ods-text-secondary", children: label })
|
|
4411
4321
|
] }),
|
|
4412
|
-
children || options.map((opt) => /* @__PURE__ */
|
|
4322
|
+
children || options.map((opt) => /* @__PURE__ */ jsx21(
|
|
4413
4323
|
Button,
|
|
4414
4324
|
{
|
|
4415
4325
|
type: "button",
|
|
@@ -4421,7 +4331,7 @@ function FilterPillRow({
|
|
|
4421
4331
|
},
|
|
4422
4332
|
opt.value
|
|
4423
4333
|
)),
|
|
4424
|
-
countLabel && /* @__PURE__ */
|
|
4334
|
+
countLabel && /* @__PURE__ */ jsx21("div", { className: "ml-auto text-[12px] font-['DM_Sans'] text-ods-text-secondary shrink-0", children: countLabel })
|
|
4425
4335
|
] });
|
|
4426
4336
|
}
|
|
4427
4337
|
|
|
@@ -4440,8 +4350,6 @@ export {
|
|
|
4440
4350
|
TabsList,
|
|
4441
4351
|
TabsTrigger,
|
|
4442
4352
|
TabsContent,
|
|
4443
|
-
statusBadgeVariants,
|
|
4444
|
-
StatusBadge,
|
|
4445
4353
|
SimpleMarkdownRenderer,
|
|
4446
4354
|
formatDate,
|
|
4447
4355
|
formatNumber,
|
|
@@ -4557,7 +4465,6 @@ export {
|
|
|
4557
4465
|
PageError,
|
|
4558
4466
|
LoadError,
|
|
4559
4467
|
NotFoundError,
|
|
4560
|
-
EntityTagBadges,
|
|
4561
4468
|
MUX_STREAM_ORIGIN,
|
|
4562
4469
|
MUX_IMAGE_ORIGIN,
|
|
4563
4470
|
useVideoOriginPreconnect,
|
|
@@ -4566,4 +4473,4 @@ export {
|
|
|
4566
4473
|
SearchInput,
|
|
4567
4474
|
FilterPillRow
|
|
4568
4475
|
};
|
|
4569
|
-
//# sourceMappingURL=chunk-
|
|
4476
|
+
//# sourceMappingURL=chunk-URJQGMNH.js.map
|