@flamingo-stack/openframe-frontend-core 0.0.266 → 0.0.267

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.
Files changed (85) hide show
  1. package/dist/{chunk-G5GQVAPI.cjs → chunk-5QJQAFTP.cjs} +126 -57
  2. package/dist/chunk-5QJQAFTP.cjs.map +1 -0
  3. package/dist/chunk-722TTRIJ.cjs +29 -0
  4. package/dist/chunk-722TTRIJ.cjs.map +1 -0
  5. package/dist/{chunk-QXRXIHY6.cjs → chunk-AA77CC2Y.cjs} +12 -12
  6. package/dist/{chunk-QXRXIHY6.cjs.map → chunk-AA77CC2Y.cjs.map} +1 -1
  7. package/dist/{chunk-WB2JXKEI.cjs → chunk-CI5XE4LB.cjs} +37 -37
  8. package/dist/{chunk-WB2JXKEI.cjs.map → chunk-CI5XE4LB.cjs.map} +1 -1
  9. package/dist/{chunk-UUARMJJE.cjs → chunk-CICK3FUU.cjs} +100 -5
  10. package/dist/chunk-CICK3FUU.cjs.map +1 -0
  11. package/dist/{chunk-K4K4X62E.js → chunk-CYMMGPPV.js} +125 -56
  12. package/dist/chunk-CYMMGPPV.js.map +1 -0
  13. package/dist/{chunk-FRU4LQJ4.js → chunk-GJVSLS2R.js} +5 -7
  14. package/dist/{chunk-FRU4LQJ4.js.map → chunk-GJVSLS2R.js.map} +1 -1
  15. package/dist/{chunk-HTR3ARN6.js → chunk-ICOMPUMX.js} +343 -248
  16. package/dist/chunk-ICOMPUMX.js.map +1 -0
  17. package/dist/{chunk-DTJ32U7J.js → chunk-J6O57C7S.js} +8 -72
  18. package/dist/chunk-J6O57C7S.js.map +1 -0
  19. package/dist/{chunk-QAQ7AROS.cjs → chunk-O6UA475M.cjs} +302 -366
  20. package/dist/chunk-O6UA475M.cjs.map +1 -0
  21. package/dist/chunk-OO4ZGDRO.js +29 -0
  22. package/dist/chunk-OO4ZGDRO.js.map +1 -0
  23. package/dist/{chunk-TX2VP43R.js → chunk-P7JHUX4X.js} +2 -2
  24. package/dist/{chunk-NR535XIY.js → chunk-T2URJAX2.js} +66 -1
  25. package/dist/chunk-T2URJAX2.js.map +1 -0
  26. package/dist/{chunk-VYGS24RO.cjs → chunk-TPZI7NBN.cjs} +16 -18
  27. package/dist/chunk-TPZI7NBN.cjs.map +1 -0
  28. package/dist/{chunk-SRM7HE2A.js → chunk-XSK72QRR.js} +3 -3
  29. package/dist/{chunk-7VMEOFEA.cjs → chunk-Y2B6WDU6.cjs} +67 -2
  30. package/dist/chunk-Y2B6WDU6.cjs.map +1 -0
  31. package/dist/{chunk-Q52JZP3P.cjs → chunk-YV55JZAD.cjs} +27 -27
  32. package/dist/{chunk-Q52JZP3P.cjs.map → chunk-YV55JZAD.cjs.map} +1 -1
  33. package/dist/{chunk-KUYYJ2XM.js → chunk-Z6MKG53Z.js} +4 -4
  34. package/dist/components/chat/index.cjs +5 -5
  35. package/dist/components/chat/index.js +4 -4
  36. package/dist/components/contact/index.cjs +6 -6
  37. package/dist/components/contact/index.js +5 -5
  38. package/dist/components/faq/faq-section.d.ts +20 -23
  39. package/dist/components/faq/faq-section.d.ts.map +1 -1
  40. package/dist/components/faq/index.cjs +4 -4
  41. package/dist/components/faq/index.js +3 -3
  42. package/dist/components/faq-accordion.d.ts +0 -5
  43. package/dist/components/faq-accordion.d.ts.map +1 -1
  44. package/dist/components/features/index.cjs +7 -8
  45. package/dist/components/features/index.cjs.map +1 -1
  46. package/dist/components/features/index.js +6 -7
  47. package/dist/components/index.cjs +84 -84
  48. package/dist/components/index.cjs.map +1 -1
  49. package/dist/components/index.js +13 -13
  50. package/dist/components/navigation/index.cjs +5 -5
  51. package/dist/components/navigation/index.js +4 -4
  52. package/dist/components/onboarding-guides/index.cjs +24 -25
  53. package/dist/components/onboarding-guides/index.cjs.map +1 -1
  54. package/dist/components/onboarding-guides/index.js +4 -5
  55. package/dist/components/onboarding-guides/index.js.map +1 -1
  56. package/dist/components/related-content/index.cjs +6 -6
  57. package/dist/components/related-content/index.js +5 -5
  58. package/dist/components/tickets/index.cjs +69 -69
  59. package/dist/components/tickets/index.cjs.map +1 -1
  60. package/dist/components/tickets/index.js +10 -10
  61. package/dist/components/ui/index.cjs +7 -7
  62. package/dist/components/ui/index.cjs.map +1 -1
  63. package/dist/components/ui/index.js +7 -7
  64. package/dist/index.cjs +10 -10
  65. package/dist/index.cjs.map +1 -1
  66. package/dist/index.js +10 -10
  67. package/package.json +1 -1
  68. package/src/components/faq/faq-section.tsx +212 -104
  69. package/src/components/faq-accordion.tsx +1 -15
  70. package/dist/chunk-7VMEOFEA.cjs.map +0 -1
  71. package/dist/chunk-DTJ32U7J.js.map +0 -1
  72. package/dist/chunk-FREG2KXV.js +0 -128
  73. package/dist/chunk-FREG2KXV.js.map +0 -1
  74. package/dist/chunk-G5GQVAPI.cjs.map +0 -1
  75. package/dist/chunk-HTR3ARN6.js.map +0 -1
  76. package/dist/chunk-JMU4RU5J.cjs +0 -128
  77. package/dist/chunk-JMU4RU5J.cjs.map +0 -1
  78. package/dist/chunk-K4K4X62E.js.map +0 -1
  79. package/dist/chunk-NR535XIY.js.map +0 -1
  80. package/dist/chunk-QAQ7AROS.cjs.map +0 -1
  81. package/dist/chunk-UUARMJJE.cjs.map +0 -1
  82. package/dist/chunk-VYGS24RO.cjs.map +0 -1
  83. /package/dist/{chunk-TX2VP43R.js.map → chunk-P7JHUX4X.js.map} +0 -0
  84. /package/dist/{chunk-SRM7HE2A.js.map → chunk-XSK72QRR.js.map} +0 -0
  85. /package/dist/{chunk-KUYYJ2XM.js.map → chunk-Z6MKG53Z.js.map} +0 -0
@@ -13,7 +13,7 @@ import {
13
13
  } from "./chunk-LXC6P2EO.js";
14
14
  import {
15
15
  SECTION_HEADING_CLASS
16
- } from "./chunk-FREG2KXV.js";
16
+ } from "./chunk-OO4ZGDRO.js";
17
17
  import {
18
18
  Button,
19
19
  DropdownMenu,
@@ -328,6 +328,66 @@ var TabsContent = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE
328
328
  ));
329
329
  TabsContent.displayName = TabsPrimitive.Content.displayName;
330
330
 
331
+ // src/components/ui/status-badge.tsx
332
+ init_cn();
333
+ import { cva as cva2 } from "class-variance-authority";
334
+ import { jsx as jsx5 } from "react/jsx-runtime";
335
+ var statusBadgeVariants = cva2(
336
+ "inline-flex items-center justify-center rounded font-mono font-medium uppercase tracking-wide",
337
+ {
338
+ variants: {
339
+ variant: {
340
+ card: "px-3 py-1.5 text-sm",
341
+ button: "px-2 py-0.5 text-[10px] leading-none"
342
+ },
343
+ colorScheme: {
344
+ cyan: "bg-[var(--ods-flamingo-cyan-base)] text-ods-text-on-accent",
345
+ pink: "bg-[var(--ods-flamingo-pink-base)] text-ods-text-on-accent",
346
+ yellow: "bg-[var(--ods-flamingo-yellow-base)] text-ods-text-on-accent border border-[var(--ods-system-greys-black)]",
347
+ green: "bg-[var(--ods-flamingo-green-base)] text-ods-text-on-accent",
348
+ purple: "bg-[var(--ods-flamingo-purple-base)] text-ods-text-on-accent",
349
+ success: "bg-[var(--ods-attention-green-success-secondary)] text-[var(--ods-attention-green-success)]",
350
+ error: "bg-[var(--ods-attention-red-error-secondary)] text-[var(--ods-attention-red-error)]",
351
+ warning: "bg-[var(--ods-attention-yellow-warning-secondary)] text-[var(--ods-attention-yellow-warning)]",
352
+ default: "bg-ods-bg-secondary text-ods-text-primary",
353
+ // Border-only variants (no background) - for task type badges
354
+ accentBorder: "bg-transparent border-2 text-ods-accent border-ods-accent",
355
+ errorBorder: "bg-transparent border-2 text-[var(--ods-attention-red-error)] border-[var(--ods-attention-red-error)]",
356
+ whiteBorder: "bg-transparent border-2 text-ods-text-primary border-ods-text-primary"
357
+ }
358
+ },
359
+ defaultVariants: {
360
+ variant: "card",
361
+ colorScheme: "default"
362
+ }
363
+ }
364
+ );
365
+ function StatusBadge({
366
+ text,
367
+ variant,
368
+ colorScheme,
369
+ className,
370
+ singleLine,
371
+ ...props
372
+ }) {
373
+ const renderText = () => {
374
+ if (singleLine) return text;
375
+ if (variant === "button" && text.includes(" ")) {
376
+ const words = text.split(" ");
377
+ 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)) });
378
+ }
379
+ return text;
380
+ };
381
+ return /* @__PURE__ */ jsx5(
382
+ "span",
383
+ {
384
+ className: cn(statusBadgeVariants({ variant, colorScheme }), className),
385
+ ...props,
386
+ children: renderText()
387
+ }
388
+ );
389
+ }
390
+
331
391
  // src/components/ui/simple-markdown-renderer.tsx
332
392
  import { useEffect, useState, useRef, useMemo, useCallback, memo } from "react";
333
393
  import ReactMarkdown, { defaultUrlTransform } from "react-markdown";
@@ -337,7 +397,7 @@ import rehypeHighlight from "rehype-highlight";
337
397
  import rehypeRaw from "rehype-raw";
338
398
  import { visit } from "unist-util-visit";
339
399
  init_cn();
340
- import { jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
400
+ import { jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
341
401
  var EVENT_HANDLER_ATTR_RE = /^on[a-z]+$/i;
342
402
  var JAVASCRIPT_URL_RE = /^[\s\x00-\x1f]*javascript:/i;
343
403
  var DATA_URL_RE = /^[\s\x00-\x1f]*data:/i;
@@ -647,15 +707,15 @@ var MermaidDiagram = ({ chart }) => {
647
707
  }, [chart, mounted]);
648
708
  if (error) {
649
709
  return /* @__PURE__ */ jsxs4("div", { className: "error-state bg-ods-card border border-ods-border rounded-lg p-6 my-6", children: [
650
- /* @__PURE__ */ jsx5("div", { className: "error-icon flex justify-center mb-4", children: /* @__PURE__ */ jsx5(AlertCircleIcon, { className: "w-12 h-12 text-ods-error" }) }),
651
- /* @__PURE__ */ jsx5("div", { className: "error-title text-center font-sans font-semibold text-lg text-ods-error mb-2", children: "Diagram Error" }),
652
- /* @__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
+ /* @__PURE__ */ jsx6("div", { className: "error-icon flex justify-center mb-4", children: /* @__PURE__ */ jsx6(AlertCircleIcon, { className: "w-12 h-12 text-ods-error" }) }),
711
+ /* @__PURE__ */ jsx6("div", { className: "error-title text-center font-sans font-semibold text-lg text-ods-error mb-2", children: "Diagram Error" }),
712
+ /* @__PURE__ */ jsx6("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__ */ jsx6("div", { className: "overflow-x-auto", children: /* @__PURE__ */ jsx6("pre", { className: "whitespace-pre-wrap break-words text-xs", children: error }) }) })
653
713
  ] });
654
714
  }
655
715
  if (isLoading || !svg) {
656
- 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..." }) });
716
+ return /* @__PURE__ */ jsx6("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__ */ jsx6("div", { className: "animate-pulse text-ods-text-tertiary font-sans", children: isLoading ? "Loading diagram renderer..." : "Rendering diagram..." }) });
657
717
  }
658
- 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(
718
+ return /* @__PURE__ */ jsx6("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__ */ jsx6("div", { className: "flex justify-center items-center w-full min-h-[200px] md:min-h-[250px] lg:min-h-[300px]", children: /* @__PURE__ */ jsx6(
659
719
  "div",
660
720
  {
661
721
  className: "mermaid-svg-container w-full flex justify-center max-w-full",
@@ -786,7 +846,7 @@ var SimpleMarkdownRendererImpl = ({
786
846
  const effectiveLevel = Tag2 === "h1" && demoteMarkdownH1ToH2 ? 2 : level;
787
847
  const id = generateHeadingId(text, effectiveLevel);
788
848
  const EffectiveTag = Tag2 === "h1" && demoteMarkdownH1ToH2 ? "h2" : Tag2;
789
- return /* @__PURE__ */ jsx5(EffectiveTag, { id, className: headingClassName, children });
849
+ return /* @__PURE__ */ jsx6(EffectiveTag, { id, className: headingClassName, children });
790
850
  },
791
851
  [generateHeadingId, demoteMarkdownH1ToH2]
792
852
  );
@@ -796,12 +856,12 @@ var SimpleMarkdownRendererImpl = ({
796
856
  const match = /language-(\w+)/.exec(codeClassName || "");
797
857
  const language = match ? match[1] : "";
798
858
  if (!inline && language === "mermaid") {
799
- return /* @__PURE__ */ jsx5(MermaidDiagram, { chart: String(children).replace(/\n$/, "") });
859
+ return /* @__PURE__ */ jsx6(MermaidDiagram, { chart: String(children).replace(/\n$/, "") });
800
860
  }
801
861
  if (!inline && match) {
802
862
  return /* @__PURE__ */ jsxs4("div", { className: "code-block-container border rounded-lg my-6 overflow-hidden bg-ods-card border-ods-border", children: [
803
- /* @__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" }) }),
804
- /* @__PURE__ */ jsx5("div", { className: "p-4", children: /* @__PURE__ */ jsx5("pre", { className: "overflow-x-auto", children: /* @__PURE__ */ jsx5(
863
+ /* @__PURE__ */ jsx6("div", { className: "code-header border-b px-4 py-2 bg-ods-card border-ods-border", children: /* @__PURE__ */ jsx6("span", { className: "font-sans text-xs uppercase tracking-wide text-ods-text-tertiary", children: language || "code" }) }),
864
+ /* @__PURE__ */ jsx6("div", { className: "p-4", children: /* @__PURE__ */ jsx6("pre", { className: "overflow-x-auto", children: /* @__PURE__ */ jsx6(
805
865
  "code",
806
866
  {
807
867
  className: cn(`language-${language} hljs`, textSizes.code),
@@ -816,12 +876,12 @@ var SimpleMarkdownRendererImpl = ({
816
876
  ) }) })
817
877
  ] });
818
878
  }
819
- 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 });
879
+ return /* @__PURE__ */ jsx6("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 });
820
880
  },
821
881
  // --- div (pass-through, overridable for embeds) ---
822
- div: ({ node, className: divClassName, children, ...props }) => /* @__PURE__ */ jsx5("div", { className: divClassName, ...props, children }),
882
+ div: ({ node, className: divClassName, children, ...props }) => /* @__PURE__ */ jsx6("div", { className: divClassName, ...props, children }),
823
883
  // --- blockquote ---
824
- 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 }) }),
884
+ blockquote: ({ children }) => /* @__PURE__ */ jsx6("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__ */ jsx6("div", { className: cn("font-sans leading-relaxed text-ods-text-secondary", textSizes.blockquote), children }) }),
825
885
  // --- headings ---
826
886
  h1: makeHeading("h1", 1, cn("font-sans font-bold mt-8 mb-4 first:mt-0 text-ods-text-primary", textSizes.h1)),
827
887
  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)),
@@ -830,7 +890,7 @@ var SimpleMarkdownRendererImpl = ({
830
890
  h5: makeHeading("h5", 5, cn("font-sans font-semibold mt-3 mb-2 text-ods-text-primary", textSizes.h5)),
831
891
  h6: makeHeading("h6", 6, cn("font-sans font-semibold mt-3 mb-1 text-ods-text-primary", textSizes.h6)),
832
892
  // --- paragraph ---
833
- p: ({ children }) => /* @__PURE__ */ jsx5("p", { className: cn("leading-relaxed mb-4 first:mt-0 last:mb-0 text-ods-text-primary", textSizes.p), children }),
893
+ p: ({ children }) => /* @__PURE__ */ jsx6("p", { className: cn("leading-relaxed mb-4 first:mt-0 last:mb-0 text-ods-text-primary", textSizes.p), children }),
834
894
  // --- links ---
835
895
  a: ({ href, children, className: linkClassName }) => {
836
896
  const isBroken = brokenLinks.includes(href);
@@ -838,12 +898,12 @@ var SimpleMarkdownRendererImpl = ({
838
898
  if (isBroken) {
839
899
  return /* @__PURE__ */ jsxs4("span", { className: "text-ods-accent cursor-not-allowed", children: [
840
900
  children,
841
- /* @__PURE__ */ jsx5("sup", { className: "ml-1 text-xs font-bold text-ods-attention-red-error", children: "[BROKEN]" })
901
+ /* @__PURE__ */ jsx6("sup", { className: "ml-1 text-xs font-bold text-ods-attention-red-error", children: "[BROKEN]" })
842
902
  ] });
843
903
  }
844
904
  if (isInternalDocLink && onInternalLinkClick) {
845
905
  const currentPath = propCurrentPath ?? "";
846
- return /* @__PURE__ */ jsx5(
906
+ return /* @__PURE__ */ jsx6(
847
907
  "span",
848
908
  {
849
909
  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",
@@ -878,7 +938,7 @@ var SimpleMarkdownRendererImpl = ({
878
938
  }
879
939
  );
880
940
  }
881
- return /* @__PURE__ */ jsx5(
941
+ return /* @__PURE__ */ jsx6(
882
942
  "a",
883
943
  {
884
944
  href,
@@ -939,7 +999,7 @@ var SimpleMarkdownRendererImpl = ({
939
999
  // (cached re-renders pop in without a perceptible shift).
940
1000
  img: ({ src, alt }) => {
941
1001
  if (!src || typeof src !== "string" || src.trim() === "") return null;
942
- return /* @__PURE__ */ jsx5(
1002
+ return /* @__PURE__ */ jsx6(
943
1003
  next_image_default,
944
1004
  {
945
1005
  src,
@@ -953,22 +1013,22 @@ var SimpleMarkdownRendererImpl = ({
953
1013
  );
954
1014
  },
955
1015
  // --- lists ---
956
- ul: ({ children }) => /* @__PURE__ */ jsx5("ul", { className: "list-disc list-outside my-4 ml-8 space-y-2 text-ods-text-primary", children }),
957
- ol: ({ children }) => /* @__PURE__ */ jsx5("ol", { className: "list-decimal list-outside my-4 ml-8 space-y-2 text-ods-text-primary", children }),
958
- li: ({ children }) => /* @__PURE__ */ jsx5("li", { className: cn("leading-relaxed pl-2", textSizes.li), children }),
1016
+ ul: ({ children }) => /* @__PURE__ */ jsx6("ul", { className: "list-disc list-outside my-4 ml-8 space-y-2 text-ods-text-primary", children }),
1017
+ ol: ({ children }) => /* @__PURE__ */ jsx6("ol", { className: "list-decimal list-outside my-4 ml-8 space-y-2 text-ods-text-primary", children }),
1018
+ li: ({ children }) => /* @__PURE__ */ jsx6("li", { className: cn("leading-relaxed pl-2", textSizes.li), children }),
959
1019
  // --- tables ---
960
- 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 }) }) }),
961
- thead: ({ children }) => /* @__PURE__ */ jsx5("thead", { className: "bg-ods-bg-secondary", children }),
962
- 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 }),
963
- 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 }),
1020
+ table: ({ children }) => /* @__PURE__ */ jsx6("div", { className: "table-container my-6 overflow-x-auto", children: /* @__PURE__ */ jsx6("div", { className: "min-w-full border rounded-lg border-ods-border bg-ods-card", children: /* @__PURE__ */ jsx6("table", { className: "w-full table-fixed md:table-auto", children }) }) }),
1021
+ thead: ({ children }) => /* @__PURE__ */ jsx6("thead", { className: "bg-ods-bg-secondary", children }),
1022
+ th: ({ children }) => /* @__PURE__ */ jsx6("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 }),
1023
+ td: ({ children }) => /* @__PURE__ */ jsx6("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 }),
964
1024
  // --- horizontal rule ---
965
- hr: () => /* @__PURE__ */ jsx5("hr", { className: "border-0 border-t my-8 border-ods-border" }),
1025
+ hr: () => /* @__PURE__ */ jsx6("hr", { className: "border-0 border-t my-8 border-ods-border" }),
966
1026
  // --- merge overrides ---
967
1027
  ...componentOverrides
968
1028
  }), [makeHeading, brokenLinks, propCurrentPath, onInternalLinkClick, onResolveLink, componentOverrides, textSizes]);
969
1029
  return /* @__PURE__ */ jsxs4("div", { className: `simple-markdown-renderer ${className}`, children: [
970
- /* @__PURE__ */ jsx5("style", { dangerouslySetInnerHTML: { __html: mermaidStyles } }),
971
- /* @__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(
1030
+ /* @__PURE__ */ jsx6("style", { dangerouslySetInnerHTML: { __html: mermaidStyles } }),
1031
+ /* @__PURE__ */ jsx6("div", { className: "content-wrapper max-w-none break-words", children: /* @__PURE__ */ jsx6("article", { className: "prose prose-lg max-w-none", children: /* @__PURE__ */ jsx6(
972
1032
  ReactMarkdown,
973
1033
  {
974
1034
  remarkPlugins: [remarkGfm, remarkBreaks, ...additionalRemarkPlugins ?? []],
@@ -1293,7 +1353,7 @@ function formatBioText(aboutHtml, fallback = "") {
1293
1353
  // src/components/ui/square-avatar.tsx
1294
1354
  import * as React4 from "react";
1295
1355
  init_cn();
1296
- import { jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
1356
+ import { jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
1297
1357
  var SquareAvatar = React4.memo(React4.forwardRef(
1298
1358
  ({ className, src, alt, size = "md", fallback, variant = "square", initialsClassName, ...props }, ref) => {
1299
1359
  const sizeClasses = {
@@ -1324,7 +1384,7 @@ var SquareAvatar = React4.memo(React4.forwardRef(
1324
1384
  ref,
1325
1385
  ...props,
1326
1386
  children: [
1327
- /* @__PURE__ */ jsx6("div", { className: cn(
1387
+ /* @__PURE__ */ jsx7("div", { className: cn(
1328
1388
  // Initials use `text-ods-text-primary` so they stay readable
1329
1389
  // both on the default `bg-ods-bg` AND on accent-fill backgrounds
1330
1390
  // (`bg-ods-flamingo-pink` for the current user, `bg-ods-flamingo-cyan`
@@ -1337,7 +1397,7 @@ var SquareAvatar = React4.memo(React4.forwardRef(
1337
1397
  initialsClassName,
1338
1398
  src && "hidden"
1339
1399
  ), children: getFirstLastInitials(fallback || alt) || "?" }),
1340
- src && /* @__PURE__ */ jsx6(
1400
+ src && /* @__PURE__ */ jsx7(
1341
1401
  next_image_default,
1342
1402
  {
1343
1403
  className: "absolute inset-0 h-full w-full object-cover",
@@ -1443,7 +1503,7 @@ import { Check } from "lucide-react";
1443
1503
  import React7, { useCallback as useCallback3 } from "react";
1444
1504
  init_cn();
1445
1505
  init_button();
1446
- import { Fragment, jsx as jsx7, jsxs as jsxs6 } from "react/jsx-runtime";
1506
+ import { Fragment, jsx as jsx8, jsxs as jsxs6 } from "react/jsx-runtime";
1447
1507
  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";
1448
1508
  var WRAPPER_CLASSES = "relative flex items-stretch border-b border-ods-border last:border-b-0";
1449
1509
  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";
@@ -1464,7 +1524,7 @@ var SecondaryAction = ({ action }) => {
1464
1524
  action.disabled && "cursor-not-allowed opacity-60 pointer-events-none"
1465
1525
  );
1466
1526
  if (action.href) {
1467
- return /* @__PURE__ */ jsx7(
1527
+ return /* @__PURE__ */ jsx8(
1468
1528
  next_link_default,
1469
1529
  {
1470
1530
  href: action.href,
@@ -1480,7 +1540,7 @@ var SecondaryAction = ({ action }) => {
1480
1540
  }
1481
1541
  );
1482
1542
  }
1483
- return /* @__PURE__ */ jsx7(
1543
+ return /* @__PURE__ */ jsx8(
1484
1544
  "button",
1485
1545
  {
1486
1546
  type: "button",
@@ -1534,7 +1594,7 @@ var MenuItem = ({ item, onItemClick }) => {
1534
1594
  [item, onItemClick]
1535
1595
  );
1536
1596
  if (item.type === "separator") {
1537
- return /* @__PURE__ */ jsx7("div", { className: "bg-ods-system-greys-soft-grey h-1 w-full" });
1597
+ return /* @__PURE__ */ jsx8("div", { className: "bg-ods-system-greys-soft-grey h-1 w-full" });
1538
1598
  }
1539
1599
  const itemClasses = cn(
1540
1600
  ROW_CLASSES,
@@ -1546,7 +1606,7 @@ var MenuItem = ({ item, onItemClick }) => {
1546
1606
  );
1547
1607
  const renderAsLink = !!item.href && item.type !== "submenu" && item.type !== "checkbox";
1548
1608
  const rowContent = /* @__PURE__ */ jsxs6(Fragment, { children: [
1549
- item.icon && /* @__PURE__ */ jsx7(
1609
+ item.icon && /* @__PURE__ */ jsx8(
1550
1610
  "div",
1551
1611
  {
1552
1612
  className: cn(
@@ -1557,7 +1617,7 @@ var MenuItem = ({ item, onItemClick }) => {
1557
1617
  children: item.icon
1558
1618
  }
1559
1619
  ),
1560
- /* @__PURE__ */ jsx7(
1620
+ /* @__PURE__ */ jsx8(
1561
1621
  "span",
1562
1622
  {
1563
1623
  className: cn(
@@ -1567,21 +1627,21 @@ var MenuItem = ({ item, onItemClick }) => {
1567
1627
  children: item.label
1568
1628
  }
1569
1629
  ),
1570
- item.type === "checkbox" && /* @__PURE__ */ jsx7(
1630
+ item.type === "checkbox" && /* @__PURE__ */ jsx8(
1571
1631
  "div",
1572
1632
  {
1573
1633
  className: cn(
1574
1634
  "w-4 h-4 md:w-6 md:h-6 flex items-center justify-center rounded-md transition-colors",
1575
1635
  item.checked ? "bg-ods-accent" : "border-2 border-ods-border bg-transparent"
1576
1636
  ),
1577
- children: item.checked && /* @__PURE__ */ jsx7(Check, { className: "w-3 h-3 md:w-4 md:h-4 text-ods-text-on-accent", strokeWidth: 3 })
1637
+ children: item.checked && /* @__PURE__ */ jsx8(Check, { className: "w-3 h-3 md:w-4 md:h-4 text-ods-text-on-accent", strokeWidth: 3 })
1578
1638
  }
1579
1639
  ),
1580
- item.type === "submenu" && /* @__PURE__ */ jsx7(Chevron02RightIcon, { className: "w-4 h-4 md:w-6 md:h-6 text-ods-text-secondary" })
1640
+ item.type === "submenu" && /* @__PURE__ */ jsx8(Chevron02RightIcon, { className: "w-4 h-4 md:w-6 md:h-6 text-ods-text-secondary" })
1581
1641
  ] });
1582
1642
  if (renderAsLink && item.href) {
1583
1643
  return /* @__PURE__ */ jsxs6("div", { className: WRAPPER_CLASSES, children: [
1584
- /* @__PURE__ */ jsx7(
1644
+ /* @__PURE__ */ jsx8(
1585
1645
  next_link_default,
1586
1646
  {
1587
1647
  href: item.href,
@@ -1593,13 +1653,13 @@ var MenuItem = ({ item, onItemClick }) => {
1593
1653
  children: rowContent
1594
1654
  }
1595
1655
  ),
1596
- item.iconAction && /* @__PURE__ */ jsx7(SecondaryAction, { action: item.iconAction })
1656
+ item.iconAction && /* @__PURE__ */ jsx8(SecondaryAction, { action: item.iconAction })
1597
1657
  ] });
1598
1658
  }
1599
1659
  if (item.type === "submenu" && item.submenu) {
1600
1660
  return /* @__PURE__ */ jsxs6("div", { className: WRAPPER_CLASSES, children: [
1601
1661
  /* @__PURE__ */ jsxs6(DropdownMenuPrimitive.Sub, { children: [
1602
- /* @__PURE__ */ jsx7(
1662
+ /* @__PURE__ */ jsx8(
1603
1663
  DropdownMenuPrimitive.SubTrigger,
1604
1664
  {
1605
1665
  disabled: item.disabled,
@@ -1607,12 +1667,12 @@ var MenuItem = ({ item, onItemClick }) => {
1607
1667
  children: rowContent
1608
1668
  }
1609
1669
  ),
1610
- /* @__PURE__ */ jsx7(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx7(
1670
+ /* @__PURE__ */ jsx8(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx8(
1611
1671
  DropdownMenuPrimitive.SubContent,
1612
1672
  {
1613
1673
  sideOffset: 4,
1614
1674
  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",
1615
- children: item.submenu.map((subItem, index) => /* @__PURE__ */ jsx7(
1675
+ children: item.submenu.map((subItem, index) => /* @__PURE__ */ jsx8(
1616
1676
  MenuItem,
1617
1677
  {
1618
1678
  item: subItem,
@@ -1623,11 +1683,11 @@ var MenuItem = ({ item, onItemClick }) => {
1623
1683
  }
1624
1684
  ) })
1625
1685
  ] }),
1626
- item.iconAction && /* @__PURE__ */ jsx7(SecondaryAction, { action: item.iconAction })
1686
+ item.iconAction && /* @__PURE__ */ jsx8(SecondaryAction, { action: item.iconAction })
1627
1687
  ] });
1628
1688
  }
1629
1689
  return /* @__PURE__ */ jsxs6("div", { className: WRAPPER_CLASSES, children: [
1630
- /* @__PURE__ */ jsx7(
1690
+ /* @__PURE__ */ jsx8(
1631
1691
  "div",
1632
1692
  {
1633
1693
  role: "menuitem",
@@ -1639,23 +1699,23 @@ var MenuItem = ({ item, onItemClick }) => {
1639
1699
  children: rowContent
1640
1700
  }
1641
1701
  ),
1642
- item.iconAction && /* @__PURE__ */ jsx7(SecondaryAction, { action: item.iconAction })
1702
+ item.iconAction && /* @__PURE__ */ jsx8(SecondaryAction, { action: item.iconAction })
1643
1703
  ] });
1644
1704
  };
1645
- var GroupSeparator = () => /* @__PURE__ */ jsx7("div", { className: "bg-ods-bg-surface h-[3px] w-full" });
1705
+ var GroupSeparator = () => /* @__PURE__ */ jsx8("div", { className: "bg-ods-bg-surface h-[3px] w-full" });
1646
1706
  var ActionsMenu = ({
1647
1707
  groups,
1648
1708
  className = "",
1649
1709
  onItemClick
1650
1710
  }) => {
1651
- return /* @__PURE__ */ jsx7(
1711
+ return /* @__PURE__ */ jsx8(
1652
1712
  "div",
1653
1713
  {
1654
1714
  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}`,
1655
1715
  children: groups.map((group, groupIndex) => {
1656
1716
  const groupKey = group.id || group.items.map((i) => i.id).join("|");
1657
1717
  return /* @__PURE__ */ jsxs6(React7.Fragment, { children: [
1658
- group.items.map((item, itemIndex) => /* @__PURE__ */ jsx7(
1718
+ group.items.map((item, itemIndex) => /* @__PURE__ */ jsx8(
1659
1719
  MenuItem,
1660
1720
  {
1661
1721
  item,
@@ -1663,7 +1723,7 @@ var ActionsMenu = ({
1663
1723
  },
1664
1724
  item.id || `${groupKey}-${itemIndex}`
1665
1725
  )),
1666
- group.separator && groupIndex < groups.length - 1 && /* @__PURE__ */ jsx7(GroupSeparator, {})
1726
+ group.separator && groupIndex < groups.length - 1 && /* @__PURE__ */ jsx8(GroupSeparator, {})
1667
1727
  ] }, groupKey);
1668
1728
  })
1669
1729
  }
@@ -1700,17 +1760,17 @@ var ActionsMenuDropdown = ({
1700
1760
  [onItemClick, setOpen]
1701
1761
  );
1702
1762
  return /* @__PURE__ */ jsxs6(DropdownMenu, { open, onOpenChange: setOpen, modal: false, children: [
1703
- /* @__PURE__ */ jsx7(DropdownMenuTrigger, { asChild: true, children: customTrigger ?? /* @__PURE__ */ jsx7(
1763
+ /* @__PURE__ */ jsx8(DropdownMenuTrigger, { asChild: true, children: customTrigger ?? /* @__PURE__ */ jsx8(
1704
1764
  Button,
1705
1765
  {
1706
1766
  variant: "outline",
1707
1767
  size: "icon",
1708
1768
  "aria-label": triggerAriaLabel,
1709
1769
  className: triggerClassName || "bg-ods-card border-ods-border hover:bg-ods-bg-hover flex items-center justify-center focus-visible:ring-0",
1710
- leftIcon: trigger ?? /* @__PURE__ */ jsx7(Ellipsis01Icon, { size: 24, className: "text-ods-text-primary" })
1770
+ leftIcon: trigger ?? /* @__PURE__ */ jsx8(Ellipsis01Icon, { size: 24, className: "text-ods-text-primary" })
1711
1771
  }
1712
1772
  ) }),
1713
- /* @__PURE__ */ jsx7(
1773
+ /* @__PURE__ */ jsx8(
1714
1774
  DropdownMenuContent,
1715
1775
  {
1716
1776
  align,
@@ -1721,7 +1781,7 @@ var ActionsMenuDropdown = ({
1721
1781
  "p-0 border-0 bg-transparent shadow-none overflow-visible",
1722
1782
  contentClassName
1723
1783
  ),
1724
- children: /* @__PURE__ */ jsx7(
1784
+ children: /* @__PURE__ */ jsx8(
1725
1785
  ActionsMenu,
1726
1786
  {
1727
1787
  groups,
@@ -1863,7 +1923,7 @@ function resolveExternalNavigation(args) {
1863
1923
 
1864
1924
  // src/components/chat/entity-cards/entity-author-card.tsx
1865
1925
  init_next_link();
1866
- import { jsx as jsx8, jsxs as jsxs7 } from "react/jsx-runtime";
1926
+ import { jsx as jsx9, jsxs as jsxs7 } from "react/jsx-runtime";
1867
1927
  var EMPTY_AUTHOR_PLACEHOLDER = {
1868
1928
  full_name: "\u2014",
1869
1929
  avatar_url: null,
@@ -1875,9 +1935,9 @@ function EntityMetadataValueCell({
1875
1935
  className,
1876
1936
  uppercase = true
1877
1937
  }) {
1878
- 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: [
1879
- /* @__PURE__ */ jsx8("p", { className: "text-h4 text-ods-text-primary", children: uppercase ? value.toLocaleUpperCase() : value }),
1880
- /* @__PURE__ */ jsx8("p", { className: "font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary", children: label })
1938
+ return /* @__PURE__ */ jsx9("div", { className: `bg-ods-card p-4 flex flex-col gap-3 ${className ?? ""}`, children: /* @__PURE__ */ jsxs7("div", { className: "flex flex-col gap-0", children: [
1939
+ /* @__PURE__ */ jsx9("p", { className: "text-h4 text-ods-text-primary", children: uppercase ? value.toLocaleUpperCase() : value }),
1940
+ /* @__PURE__ */ jsx9("p", { className: "font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary", children: label })
1881
1941
  ] }) });
1882
1942
  }
1883
1943
  function EntityMetadataAuthorCell({
@@ -1889,7 +1949,7 @@ function EntityMetadataAuthorCell({
1889
1949
  const trimmedName = typeof author.full_name === "string" ? author.full_name.trim() : "";
1890
1950
  const fullName = trimmedName || "Unknown Author";
1891
1951
  return /* @__PURE__ */ jsxs7("div", { className: `bg-ods-card p-4 flex items-center gap-3 ${className ?? ""}`, children: [
1892
- /* @__PURE__ */ jsx8(
1952
+ /* @__PURE__ */ jsx9(
1893
1953
  SquareAvatar,
1894
1954
  {
1895
1955
  src: author.avatar_url || "",
@@ -1900,8 +1960,8 @@ function EntityMetadataAuthorCell({
1900
1960
  }
1901
1961
  ),
1902
1962
  /* @__PURE__ */ jsxs7("div", { className: "flex flex-col gap-0 flex-1 min-w-0", children: [
1903
- /* @__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 }),
1904
- /* @__PURE__ */ jsx8("p", { className: "font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary", children: author.job_title || roleLabel })
1963
+ /* @__PURE__ */ jsx9("p", { className: "text-h3 tracking-[-0.36px] text-ods-text-primary truncate", title: fullName, children: authorHref && trimmedName ? /* @__PURE__ */ jsx9(next_link_default, { href: authorHref, className: "hover:text-ods-accent transition-colors", children: fullName }) : fullName }),
1964
+ /* @__PURE__ */ jsx9("p", { className: "font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary", children: author.job_title || roleLabel })
1905
1965
  ] })
1906
1966
  ] });
1907
1967
  }
@@ -1930,7 +1990,7 @@ function EntityAuthorCard({
1930
1990
  {
1931
1991
  className: `grid grid-cols-1 ${gridColsClass} border border-ods-border rounded-md overflow-hidden w-full ${className ?? ""}`,
1932
1992
  children: [
1933
- extras.map((cell, i) => /* @__PURE__ */ jsx8(
1993
+ extras.map((cell, i) => /* @__PURE__ */ jsx9(
1934
1994
  EntityMetadataValueCell,
1935
1995
  {
1936
1996
  value: cell.value,
@@ -1940,7 +2000,7 @@ function EntityAuthorCard({
1940
2000
  },
1941
2001
  `${cell.label}-${i}`
1942
2002
  )),
1943
- showDateCell && /* @__PURE__ */ jsx8(
2003
+ showDateCell && /* @__PURE__ */ jsx9(
1944
2004
  EntityMetadataValueCell,
1945
2005
  {
1946
2006
  value: dateLabel,
@@ -1949,21 +2009,21 @@ function EntityAuthorCard({
1949
2009
  className: dividerClass
1950
2010
  }
1951
2011
  ),
1952
- /* @__PURE__ */ jsx8(EntityMetadataAuthorCell, { author: effectiveAuthor, roleLabel, authorHref })
2012
+ /* @__PURE__ */ jsx9(EntityMetadataAuthorCell, { author: effectiveAuthor, roleLabel, authorHref })
1953
2013
  ]
1954
2014
  }
1955
2015
  );
1956
2016
  }
1957
2017
 
1958
2018
  // src/components/chat/entity-cards/blog-image-placeholder.tsx
1959
- import { jsx as jsx9 } from "react/jsx-runtime";
2019
+ import { jsx as jsx10 } from "react/jsx-runtime";
1960
2020
  function BlogImagePlaceholder({
1961
2021
  imageUrl,
1962
2022
  title,
1963
2023
  className = ""
1964
2024
  }) {
1965
2025
  if (!imageUrl) return null;
1966
- return /* @__PURE__ */ jsx9("span", { className: `relative block w-full h-full overflow-hidden bg-ods-bg ${className}`, children: /* @__PURE__ */ jsx9(
2026
+ return /* @__PURE__ */ jsx10("span", { className: `relative block w-full h-full overflow-hidden bg-ods-bg ${className}`, children: /* @__PURE__ */ jsx10(
1967
2027
  "img",
1968
2028
  {
1969
2029
  src: imageUrl,
@@ -1989,7 +2049,7 @@ function fetchPriorityProp(priority) {
1989
2049
  // src/components/features/video.tsx
1990
2050
  import { useEffect as useEffect4, useMemo as useMemo3, useRef as useRef4, useState as useState3 } from "react";
1991
2051
  import MuxPlayer from "@mux/mux-player-react";
1992
- import { jsx as jsx10, jsxs as jsxs8 } from "react/jsx-runtime";
2052
+ import { jsx as jsx11, jsxs as jsxs8 } from "react/jsx-runtime";
1993
2053
  if (typeof window !== "undefined") {
1994
2054
  const w = window;
1995
2055
  if (!w.chrome?.cast) {
@@ -2050,7 +2110,7 @@ function Video(props) {
2050
2110
  if (!url) return null;
2051
2111
  const effectiveKind = resolveKind(props, url);
2052
2112
  const layout = props.layout ?? "native";
2053
- const inner = effectiveKind === "youtube" ? /* @__PURE__ */ jsx10(
2113
+ const inner = effectiveKind === "youtube" ? /* @__PURE__ */ jsx11(
2054
2114
  YouTubeFacade,
2055
2115
  {
2056
2116
  url,
@@ -2059,7 +2119,7 @@ function Video(props) {
2059
2119
  className: props.className,
2060
2120
  minimalControls: props.minimalControls
2061
2121
  }
2062
- ) : /* @__PURE__ */ jsx10(
2122
+ ) : /* @__PURE__ */ jsx11(
2063
2123
  FilePlayer,
2064
2124
  {
2065
2125
  url,
@@ -2083,9 +2143,9 @@ function resolveKind(props, url) {
2083
2143
  function wrapWithLayout(inner, layout) {
2084
2144
  switch (layout) {
2085
2145
  case "centered":
2086
- 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 }) });
2146
+ return /* @__PURE__ */ jsx11("div", { className: "flex justify-center w-full", children: /* @__PURE__ */ jsx11("div", { className: "w-full max-w-3xl aspect-video rounded-lg overflow-hidden border border-ods-border", children: inner }) });
2087
2147
  case "fill":
2088
- return /* @__PURE__ */ jsx10("div", { className: "absolute inset-0 w-full h-full", children: inner });
2148
+ return /* @__PURE__ */ jsx11("div", { className: "absolute inset-0 w-full h-full", children: inner });
2089
2149
  case "native":
2090
2150
  default:
2091
2151
  return inner;
@@ -2104,7 +2164,7 @@ function FilePlayer({
2104
2164
  "[Video] srtContent supplied without captionsUrl \u2014 captions will not render. Pass captionsUrl (the VTT URL) instead; raw SRT text overlays are no longer supported."
2105
2165
  );
2106
2166
  }
2107
- return /* @__PURE__ */ jsx10(
2167
+ return /* @__PURE__ */ jsx11(
2108
2168
  MuxPlayer,
2109
2169
  {
2110
2170
  src: url,
@@ -2116,7 +2176,7 @@ function FilePlayer({
2116
2176
  accentColor: "var(--ods-accent, var(--color-accent-primary))",
2117
2177
  className,
2118
2178
  style: { width: "100%", height: "100%" },
2119
- children: captionsUrl ? /* @__PURE__ */ jsx10(
2179
+ children: captionsUrl ? /* @__PURE__ */ jsx11(
2120
2180
  "track",
2121
2181
  {
2122
2182
  kind: "captions",
@@ -2138,7 +2198,7 @@ function YouTubeFacade({
2138
2198
  }) {
2139
2199
  const videoId = extractYouTubeId(url);
2140
2200
  if (!videoId) return null;
2141
- return /* @__PURE__ */ jsx10(YouTubeFacadeInner, { videoId, title, priority, className, minimalControls });
2201
+ return /* @__PURE__ */ jsx11(YouTubeFacadeInner, { videoId, title, priority, className, minimalControls });
2142
2202
  }
2143
2203
  var YT_NOCOOKIE_ORIGIN = "https://www.youtube-nocookie.com";
2144
2204
  var YT_STATE_ENDED = 0;
@@ -2224,7 +2284,7 @@ function YouTubeFacadeInner({
2224
2284
  const wrapperClass = `relative w-full ${className ?? ""}`;
2225
2285
  const wrapperStyle = { paddingBottom: "56.25%" };
2226
2286
  if (activated) {
2227
- return /* @__PURE__ */ jsx10("div", { className: wrapperClass, style: wrapperStyle, children: /* @__PURE__ */ jsx10(
2287
+ return /* @__PURE__ */ jsx11("div", { className: wrapperClass, style: wrapperStyle, children: /* @__PURE__ */ jsx11(
2228
2288
  "iframe",
2229
2289
  {
2230
2290
  ref: iframeRef,
@@ -2236,7 +2296,7 @@ function YouTubeFacadeInner({
2236
2296
  }
2237
2297
  ) });
2238
2298
  }
2239
- return /* @__PURE__ */ jsx10("div", { className: wrapperClass, style: wrapperStyle, children: /* @__PURE__ */ jsxs8(
2299
+ return /* @__PURE__ */ jsx11("div", { className: wrapperClass, style: wrapperStyle, children: /* @__PURE__ */ jsxs8(
2240
2300
  "button",
2241
2301
  {
2242
2302
  type: "button",
@@ -2245,8 +2305,8 @@ function YouTubeFacadeInner({
2245
2305
  className: "group absolute inset-0 p-0 m-0 border border-ods-border rounded-lg overflow-hidden bg-ods-card cursor-pointer",
2246
2306
  children: [
2247
2307
  /* @__PURE__ */ jsxs8("picture", { children: [
2248
- /* @__PURE__ */ jsx10("source", { type: "image/webp", srcSet: posterWebp }),
2249
- /* @__PURE__ */ jsx10(
2308
+ /* @__PURE__ */ jsx11("source", { type: "image/webp", srcSet: posterWebp }),
2309
+ /* @__PURE__ */ jsx11(
2250
2310
  "img",
2251
2311
  {
2252
2312
  src: posterJpg,
@@ -2258,14 +2318,14 @@ function YouTubeFacadeInner({
2258
2318
  }
2259
2319
  )
2260
2320
  ] }),
2261
- /* @__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" }) }) })
2321
+ /* @__PURE__ */ jsx11("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__ */ jsx11("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__ */ jsx11(PlayIcon, { size: 24, color: "currentColor", className: "ml-1" }) }) })
2262
2322
  ]
2263
2323
  }
2264
2324
  ) });
2265
2325
  }
2266
2326
 
2267
2327
  // src/components/features/video-ratio-tabs.tsx
2268
- import { Fragment as Fragment2, jsx as jsx11, jsxs as jsxs9 } from "react/jsx-runtime";
2328
+ import { Fragment as Fragment2, jsx as jsx12, jsxs as jsxs9 } from "react/jsx-runtime";
2269
2329
  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";
2270
2330
  var RATIO_GRID_CLASS = {
2271
2331
  portrait: "grid grid-cols-2 md:grid-cols-3 gap-4",
@@ -2290,17 +2350,17 @@ function RatioTabs({
2290
2350
  const activeTabs = RATIO_TAB_CONFIG.filter((t) => groups[t.key].count > 0);
2291
2351
  if (activeTabs.length <= 1) {
2292
2352
  const active = activeTabs[0];
2293
- return active ? /* @__PURE__ */ jsx11(Fragment2, { children: groups[active.key].render() }) : null;
2353
+ return active ? /* @__PURE__ */ jsx12(Fragment2, { children: groups[active.key].render() }) : null;
2294
2354
  }
2295
2355
  const firstTab = defaultTab && groups[defaultTab].count > 0 ? defaultTab : activeTabs[0].key;
2296
2356
  return /* @__PURE__ */ jsxs9(Tabs, { defaultValue: firstTab, className: `w-full ${className}`, children: [
2297
- /* @__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: [
2357
+ /* @__PURE__ */ jsx12(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: [
2298
2358
  t.label,
2299
2359
  " (",
2300
2360
  groups[t.key].count,
2301
2361
  ")"
2302
2362
  ] }, t.key)) }),
2303
- activeTabs.map((t) => /* @__PURE__ */ jsx11(
2363
+ activeTabs.map((t) => /* @__PURE__ */ jsx12(
2304
2364
  TabsContent,
2305
2365
  {
2306
2366
  value: t.key,
@@ -2343,7 +2403,7 @@ function groupByAspectRatio(items, getAspectRatio) {
2343
2403
 
2344
2404
  // src/components/features/video-bites-display.tsx
2345
2405
  import { useMemo as useMemo4 } from "react";
2346
- import { jsx as jsx12, jsxs as jsxs10 } from "react/jsx-runtime";
2406
+ import { jsx as jsx13, jsxs as jsxs10 } from "react/jsx-runtime";
2347
2407
  var RATIO_TO_CSS_ASPECT = {
2348
2408
  portrait: "9 / 16",
2349
2409
  square: "1 / 1",
@@ -2351,7 +2411,7 @@ var RATIO_TO_CSS_ASPECT = {
2351
2411
  };
2352
2412
  function LazyBite({ ratio, children }) {
2353
2413
  const { ref, isNear } = useNearViewport("500px");
2354
- 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" }) });
2414
+ return /* @__PURE__ */ jsx13("div", { ref, style: { aspectRatio: RATIO_TO_CSS_ASPECT[ratio] }, children: isNear ? children : /* @__PURE__ */ jsx13("div", { className: "w-full h-full bg-ods-card rounded-md" }) });
2355
2415
  }
2356
2416
  function VideoBitesDisplay({
2357
2417
  bites,
@@ -2375,26 +2435,26 @@ function VideoBitesDisplay({
2375
2435
  const totalCount = grouped.portrait.length + grouped.square.length + grouped.landscape.length;
2376
2436
  if (totalCount === 0) return null;
2377
2437
  return /* @__PURE__ */ jsxs10("div", { className: "flex flex-col gap-6 w-full min-w-0", children: [
2378
- showTitle && /* @__PURE__ */ jsx12("h2", { className: `${SECTION_HEADING_CLASS} break-words`, children: title }),
2379
- grouped.hasMultiple ? /* @__PURE__ */ jsx12(
2438
+ showTitle && /* @__PURE__ */ jsx13("h2", { className: `${SECTION_HEADING_CLASS} break-words`, children: title }),
2439
+ grouped.hasMultiple ? /* @__PURE__ */ jsx13(
2380
2440
  RatioTabs,
2381
2441
  {
2382
2442
  groups: {
2383
2443
  portrait: {
2384
2444
  count: grouped.portrait.length,
2385
- render: () => /* @__PURE__ */ jsx12(BiteGrid, { bites: grouped.portrait, ratio: "portrait" })
2445
+ render: () => /* @__PURE__ */ jsx13(BiteGrid, { bites: grouped.portrait, ratio: "portrait" })
2386
2446
  },
2387
2447
  square: {
2388
2448
  count: grouped.square.length,
2389
- render: () => /* @__PURE__ */ jsx12(BiteGrid, { bites: grouped.square, ratio: "square" })
2449
+ render: () => /* @__PURE__ */ jsx13(BiteGrid, { bites: grouped.square, ratio: "square" })
2390
2450
  },
2391
2451
  landscape: {
2392
2452
  count: grouped.landscape.length,
2393
- render: () => /* @__PURE__ */ jsx12(BiteGrid, { bites: grouped.landscape, ratio: "landscape" })
2453
+ render: () => /* @__PURE__ */ jsx13(BiteGrid, { bites: grouped.landscape, ratio: "landscape" })
2394
2454
  }
2395
2455
  }
2396
2456
  }
2397
- ) : /* @__PURE__ */ jsx12(
2457
+ ) : /* @__PURE__ */ jsx13(
2398
2458
  BiteGrid,
2399
2459
  {
2400
2460
  bites: grouped.portrait.length > 0 ? grouped.portrait : grouped.square.length > 0 ? grouped.square : grouped.landscape,
@@ -2404,17 +2464,17 @@ function VideoBitesDisplay({
2404
2464
  ] });
2405
2465
  }
2406
2466
  function BiteGrid({ bites, ratio }) {
2407
- 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)) });
2467
+ return /* @__PURE__ */ jsx13("div", { className: RATIO_DISPLAY_GRID_CLASS[ratio], children: bites.map((bite, index) => /* @__PURE__ */ jsx13(LazyBite, { ratio, children: /* @__PURE__ */ jsx13(VideoBiteCard, { url: bite.url, title: bite.title, thumbnailUrl: bite.thumbnail_url }) }, bite.url || index)) });
2408
2468
  }
2409
2469
  function VideoBiteCard({ url, title, thumbnailUrl }) {
2410
2470
  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: [
2411
- /* @__PURE__ */ jsx12("div", { className: "relative flex-1 min-h-0", children: /* @__PURE__ */ jsx12(Video, { url, poster: thumbnailUrl || void 0, layout: "fill" }) }),
2412
- title && /* @__PURE__ */ jsx12("div", { className: "p-4", children: /* @__PURE__ */ jsx12("p", { className: "text-h4 text-ods-text-primary line-clamp-2", title, children: title }) })
2471
+ /* @__PURE__ */ jsx13("div", { className: "relative flex-1 min-h-0", children: /* @__PURE__ */ jsx13(Video, { url, poster: thumbnailUrl || void 0, layout: "fill" }) }),
2472
+ title && /* @__PURE__ */ jsx13("div", { className: "p-4", children: /* @__PURE__ */ jsx13("p", { className: "text-h4 text-ods-text-primary line-clamp-2", title, children: title }) })
2413
2473
  ] });
2414
2474
  }
2415
2475
 
2416
2476
  // src/components/features/entity-video-section.tsx
2417
- import { Fragment as Fragment3, jsx as jsx13, jsxs as jsxs11 } from "react/jsx-runtime";
2477
+ import { Fragment as Fragment3, jsx as jsx14, jsxs as jsxs11 } from "react/jsx-runtime";
2418
2478
  function EntityVideoSection({
2419
2479
  mainVideoUrl,
2420
2480
  youtubeUrl,
@@ -2442,7 +2502,7 @@ function EntityVideoSection({
2442
2502
  return /* @__PURE__ */ jsxs11(Fragment3, { children: [
2443
2503
  hasVideo && (hasFullVideo && hasHighlight ? /* @__PURE__ */ jsxs11(Tabs, { defaultValue: "full-video", className: "w-full", children: [
2444
2504
  /* @__PURE__ */ jsxs11(TabsList, { className: "inline-flex justify-start rounded-none bg-transparent h-auto p-0 gap-0", children: [
2445
- /* @__PURE__ */ jsx13(
2505
+ /* @__PURE__ */ jsx14(
2446
2506
  TabsTrigger,
2447
2507
  {
2448
2508
  value: "full-video",
@@ -2450,7 +2510,7 @@ function EntityVideoSection({
2450
2510
  children: "Full Video"
2451
2511
  }
2452
2512
  ),
2453
- /* @__PURE__ */ jsx13(
2513
+ /* @__PURE__ */ jsx14(
2454
2514
  TabsTrigger,
2455
2515
  {
2456
2516
  value: "highlights",
@@ -2459,7 +2519,7 @@ function EntityVideoSection({
2459
2519
  }
2460
2520
  )
2461
2521
  ] }),
2462
- /* @__PURE__ */ jsx13(TabsContent, { value: "full-video", className: "mt-4", children: /* @__PURE__ */ jsx13(
2522
+ /* @__PURE__ */ jsx14(TabsContent, { value: "full-video", className: "mt-4", children: /* @__PURE__ */ jsx14(
2463
2523
  Video,
2464
2524
  {
2465
2525
  kind: fullVideoKind,
@@ -2472,7 +2532,7 @@ function EntityVideoSection({
2472
2532
  priority
2473
2533
  }
2474
2534
  ) }),
2475
- /* @__PURE__ */ jsx13(TabsContent, { value: "highlights", className: "mt-4", children: /* @__PURE__ */ jsx13(
2535
+ /* @__PURE__ */ jsx14(TabsContent, { value: "highlights", className: "mt-4", children: /* @__PURE__ */ jsx14(
2476
2536
  Video,
2477
2537
  {
2478
2538
  url: highlightVideoUrl,
@@ -2480,7 +2540,7 @@ function EntityVideoSection({
2480
2540
  layout: "centered"
2481
2541
  }
2482
2542
  ) })
2483
- ] }) : hasFullVideo ? /* @__PURE__ */ jsx13(
2543
+ ] }) : hasFullVideo ? /* @__PURE__ */ jsx14(
2484
2544
  Video,
2485
2545
  {
2486
2546
  kind: fullVideoKind,
@@ -2492,7 +2552,7 @@ function EntityVideoSection({
2492
2552
  layout: "centered",
2493
2553
  priority
2494
2554
  }
2495
- ) : /* @__PURE__ */ jsx13(
2555
+ ) : /* @__PURE__ */ jsx14(
2496
2556
  Video,
2497
2557
  {
2498
2558
  url: highlightVideoUrl,
@@ -2502,10 +2562,10 @@ function EntityVideoSection({
2502
2562
  }
2503
2563
  )),
2504
2564
  videoSummary && MarkdownRenderer && /* @__PURE__ */ jsxs11("div", { className: "flex flex-col gap-6 w-full min-w-0", children: [
2505
- /* @__PURE__ */ jsx13("h2", { className: `${SECTION_HEADING_CLASS} break-words`, children: "Summary" }),
2506
- /* @__PURE__ */ jsx13("div", { className: "text-h4 text-ods-text-primary break-words overflow-hidden", children: /* @__PURE__ */ jsx13(MarkdownRenderer, { content: videoSummary }) })
2565
+ /* @__PURE__ */ jsx14("h2", { className: `${SECTION_HEADING_CLASS} break-words`, children: "Summary" }),
2566
+ /* @__PURE__ */ jsx14("div", { className: "text-h4 text-ods-text-primary break-words overflow-hidden", children: /* @__PURE__ */ jsx14(MarkdownRenderer, { content: videoSummary }) })
2507
2567
  ] }),
2508
- videoBites && videoBites.length > 0 && /* @__PURE__ */ jsx13(
2568
+ videoBites && videoBites.length > 0 && /* @__PURE__ */ jsx14(
2509
2569
  VideoBitesDisplay,
2510
2570
  {
2511
2571
  bites: videoBites,
@@ -2590,7 +2650,7 @@ function useEntityCardPlaceholder({
2590
2650
  }
2591
2651
 
2592
2652
  // src/components/chat/entity-cards/onboarding-guide-card.tsx
2593
- import { jsx as jsx14, jsxs as jsxs12 } from "react/jsx-runtime";
2653
+ import { jsx as jsx15, jsxs as jsxs12 } from "react/jsx-runtime";
2594
2654
  function stripMarkdownPreview(text) {
2595
2655
  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");
2596
2656
  }
@@ -2606,35 +2666,35 @@ function OnboardingGuideCardSkeleton({ size = "default" }) {
2606
2666
  if (size === "catalog") {
2607
2667
  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: [
2608
2668
  /* @__PURE__ */ jsxs12("div", { className: "flex flex-col md:flex-row gap-4 md:gap-6", children: [
2609
- /* @__PURE__ */ jsx14("div", { className: "w-full md:w-[256px] aspect-[1200/630] bg-ods-border rounded-lg flex-shrink-0" }),
2669
+ /* @__PURE__ */ jsx15("div", { className: "w-full md:w-[256px] aspect-[1200/630] bg-ods-border rounded-lg flex-shrink-0" }),
2610
2670
  /* @__PURE__ */ jsxs12("div", { className: "flex-1 min-w-0 flex flex-col", children: [
2611
2671
  /* @__PURE__ */ jsxs12("div", { className: "min-h-[60px] md:min-h-[72px] flex flex-col gap-1.5 justify-start mb-3", children: [
2612
- /* @__PURE__ */ jsx14("div", { className: "h-[25px] md:h-[30px] w-3/4 bg-ods-border rounded" }),
2613
- /* @__PURE__ */ jsx14("div", { className: "h-[25px] md:h-[30px] w-1/2 bg-ods-border rounded" })
2672
+ /* @__PURE__ */ jsx15("div", { className: "h-[25px] md:h-[30px] w-3/4 bg-ods-border rounded" }),
2673
+ /* @__PURE__ */ jsx15("div", { className: "h-[25px] md:h-[30px] w-1/2 bg-ods-border rounded" })
2614
2674
  ] }),
2615
2675
  /* @__PURE__ */ jsxs12("div", { className: "min-h-[46px] md:min-h-[52px] flex flex-col gap-2 justify-start", children: [
2616
- /* @__PURE__ */ jsx14("div", { className: "h-3 w-full bg-ods-border/70 rounded" }),
2617
- /* @__PURE__ */ jsx14("div", { className: "h-3 w-5/6 bg-ods-border/70 rounded" })
2676
+ /* @__PURE__ */ jsx15("div", { className: "h-3 w-full bg-ods-border/70 rounded" }),
2677
+ /* @__PURE__ */ jsx15("div", { className: "h-3 w-5/6 bg-ods-border/70 rounded" })
2618
2678
  ] })
2619
2679
  ] })
2620
2680
  ] }),
2621
2681
  /* @__PURE__ */ jsxs12("div", { className: "grid grid-cols-1 md:grid-cols-3 border border-ods-border rounded-md overflow-hidden w-full", children: [
2622
- [0, 1].map((i) => /* @__PURE__ */ jsx14(
2682
+ [0, 1].map((i) => /* @__PURE__ */ jsx15(
2623
2683
  "div",
2624
2684
  {
2625
2685
  className: "bg-ods-card p-4 flex flex-col gap-3 border-b md:border-b-0 md:border-r border-ods-border",
2626
2686
  children: /* @__PURE__ */ jsxs12("div", { className: "flex flex-col gap-2", children: [
2627
- /* @__PURE__ */ jsx14("div", { className: "h-6 w-32 bg-ods-bg rounded" }),
2628
- /* @__PURE__ */ jsx14("div", { className: "h-3 w-20 bg-ods-bg/60 rounded" })
2687
+ /* @__PURE__ */ jsx15("div", { className: "h-6 w-32 bg-ods-bg rounded" }),
2688
+ /* @__PURE__ */ jsx15("div", { className: "h-3 w-20 bg-ods-bg/60 rounded" })
2629
2689
  ] })
2630
2690
  },
2631
2691
  `cell-${i}`
2632
2692
  )),
2633
2693
  /* @__PURE__ */ jsxs12("div", { className: "bg-ods-card p-4 flex items-center gap-3", children: [
2634
- /* @__PURE__ */ jsx14("div", { className: "h-10 w-10 rounded-full bg-ods-bg shrink-0" }),
2694
+ /* @__PURE__ */ jsx15("div", { className: "h-10 w-10 rounded-full bg-ods-bg shrink-0" }),
2635
2695
  /* @__PURE__ */ jsxs12("div", { className: "flex flex-col gap-2 flex-1 min-w-0", children: [
2636
- /* @__PURE__ */ jsx14("div", { className: "h-4 w-3/4 bg-ods-bg rounded" }),
2637
- /* @__PURE__ */ jsx14("div", { className: "h-3 w-1/2 bg-ods-bg/60 rounded" })
2696
+ /* @__PURE__ */ jsx15("div", { className: "h-4 w-3/4 bg-ods-bg rounded" }),
2697
+ /* @__PURE__ */ jsx15("div", { className: "h-3 w-1/2 bg-ods-bg/60 rounded" })
2638
2698
  ] })
2639
2699
  ] })
2640
2700
  ] })
@@ -2642,13 +2702,13 @@ function OnboardingGuideCardSkeleton({ size = "default" }) {
2642
2702
  }
2643
2703
  if (size === "sm") {
2644
2704
  return /* @__PURE__ */ jsxs12("span", { className: COMPACT_CARD_SKELETON_OUTER, children: [
2645
- /* @__PURE__ */ jsx14("span", { className: COMPACT_CARD_SKELETON_IMAGE_SLOT }),
2705
+ /* @__PURE__ */ jsx15("span", { className: COMPACT_CARD_SKELETON_IMAGE_SLOT }),
2646
2706
  /* @__PURE__ */ jsxs12("span", { className: COMPACT_CARD_TEXT_COL, children: [
2647
- /* @__PURE__ */ jsx14("span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ jsx14("span", { className: "h-3.5 w-3/5 rounded bg-ods-bg" }) }),
2648
- /* @__PURE__ */ jsx14("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx14("span", { className: "h-3 w-2/5 rounded bg-ods-bg/70" }) }),
2649
- /* @__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
+ /* @__PURE__ */ jsx15("span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ jsx15("span", { className: "h-3.5 w-3/5 rounded bg-ods-bg" }) }),
2708
+ /* @__PURE__ */ jsx15("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx15("span", { className: "h-3 w-2/5 rounded bg-ods-bg/70" }) }),
2709
+ /* @__PURE__ */ jsx15("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx15("span", { className: "h-3 w-11/12 rounded bg-ods-bg/40" }) })
2650
2710
  ] }),
2651
- /* @__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" }) })
2711
+ /* @__PURE__ */ jsx15("span", { className: "flex shrink-0 items-center self-start h-5", children: /* @__PURE__ */ jsx15("span", { className: "h-3.5 w-3.5 rounded bg-ods-bg" }) })
2652
2712
  ] });
2653
2713
  }
2654
2714
  const t = HORIZONTAL_SIZE_TOKENS.default;
@@ -2657,11 +2717,11 @@ function OnboardingGuideCardSkeleton({ size = "default" }) {
2657
2717
  {
2658
2718
  className: `flex items-start gap-3 rounded-md border border-ods-border bg-ods-card ${t.padding} animate-pulse`,
2659
2719
  children: [
2660
- /* @__PURE__ */ jsx14("span", { className: `shrink-0 inline-flex items-center justify-center rounded-full bg-ods-bg ${t.step}` }),
2720
+ /* @__PURE__ */ jsx15("span", { className: `shrink-0 inline-flex items-center justify-center rounded-full bg-ods-bg ${t.step}` }),
2661
2721
  /* @__PURE__ */ jsxs12("span", { className: "flex flex-col gap-2 flex-1 min-w-0", children: [
2662
- /* @__PURE__ */ jsx14("span", { className: "block h-4 w-2/3 rounded bg-ods-bg" }),
2663
- /* @__PURE__ */ jsx14("span", { className: "block h-3 w-1/3 rounded bg-ods-bg/70" }),
2664
- /* @__PURE__ */ jsx14("span", { className: "block h-3 w-full rounded bg-ods-bg/40" })
2722
+ /* @__PURE__ */ jsx15("span", { className: "block h-4 w-2/3 rounded bg-ods-bg" }),
2723
+ /* @__PURE__ */ jsx15("span", { className: "block h-3 w-1/3 rounded bg-ods-bg/70" }),
2724
+ /* @__PURE__ */ jsx15("span", { className: "block h-3 w-full rounded bg-ods-bg/40" })
2665
2725
  ] })
2666
2726
  ]
2667
2727
  }
@@ -2693,7 +2753,7 @@ function OnboardingGuideCard({
2693
2753
  const hasVideoCover = !!(guide.main_video_thumbnail || guide.highlight_video_thumbnail);
2694
2754
  const stepLabel = typeof guide.step_order === "number" ? String(guide.step_order).padStart(2, "0") : "\u2014";
2695
2755
  const durationLabel = typeof guide.highlight_video_duration_ms === "number" && guide.highlight_video_duration_ms > 0 ? formatDurationMMSS(Math.floor(guide.highlight_video_duration_ms / 1e3)) : "";
2696
- return /* @__PURE__ */ jsx14(
2756
+ return /* @__PURE__ */ jsx15(
2697
2757
  next_link_default,
2698
2758
  {
2699
2759
  href,
@@ -2711,8 +2771,8 @@ function OnboardingGuideCard({
2711
2771
  "aria-label": `Open ${guide.title}`,
2712
2772
  children: /* @__PURE__ */ jsxs12("div", { className: "flex flex-col p-6 gap-4", children: [
2713
2773
  /* @__PURE__ */ jsxs12("div", { className: "flex flex-col md:flex-row gap-4 md:gap-6", children: [
2714
- /* @__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: [
2715
- coverImage ? /* @__PURE__ */ jsx14(
2774
+ /* @__PURE__ */ jsx15("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: [
2775
+ coverImage ? /* @__PURE__ */ jsx15(
2716
2776
  next_image_default,
2717
2777
  {
2718
2778
  src: coverImage,
@@ -2722,7 +2782,7 @@ function OnboardingGuideCard({
2722
2782
  className: "object-cover",
2723
2783
  unoptimized: true
2724
2784
  }
2725
- ) : /* @__PURE__ */ jsx14(
2785
+ ) : /* @__PURE__ */ jsx15(
2726
2786
  BlogImagePlaceholder,
2727
2787
  {
2728
2788
  title: guide.title,
@@ -2730,18 +2790,18 @@ function OnboardingGuideCard({
2730
2790
  className: "absolute inset-0"
2731
2791
  }
2732
2792
  ),
2733
- 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" }) }),
2793
+ hasVideoCover && coverImage && /* @__PURE__ */ jsx15("span", { className: "absolute inset-0 flex items-center justify-center bg-black/30", children: /* @__PURE__ */ jsx15(Play, { className: "w-10 h-10 text-white", fill: "white" }) }),
2734
2794
  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: [
2735
- /* @__PURE__ */ jsx14(Clock, { className: "w-3 h-3" }),
2795
+ /* @__PURE__ */ jsx15(Clock, { className: "w-3 h-3" }),
2736
2796
  durationLabel
2737
2797
  ] })
2738
2798
  ] }) }),
2739
2799
  /* @__PURE__ */ jsxs12("div", { className: "flex-1 min-w-0 flex flex-col", children: [
2740
- /* @__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 }) }),
2741
- /* @__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 || "") }) })
2800
+ /* @__PURE__ */ jsx15("div", { className: "min-h-[60px] md:min-h-[72px] flex items-start mb-3", children: /* @__PURE__ */ jsx15("h3", { className: "font-['Azeret_Mono'] font-semibold text-xl md:text-2xl text-ods-text-primary leading-tight line-clamp-2", children: guide.title }) }),
2801
+ /* @__PURE__ */ jsx15("div", { className: "min-h-[46px] md:min-h-[52px]", children: /* @__PURE__ */ jsx15("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 || "") }) })
2742
2802
  ] })
2743
2803
  ] }),
2744
- /* @__PURE__ */ jsx14(
2804
+ /* @__PURE__ */ jsx15(
2745
2805
  EntityAuthorCard,
2746
2806
  {
2747
2807
  author: guide.author,
@@ -2773,7 +2833,7 @@ function OnboardingGuideCard({
2773
2833
  ].filter((s) => typeof s === "string" && s.length > 0);
2774
2834
  return /* @__PURE__ */ jsxs12(next_link_default, { href, target, rel, prefetch: false, className: cn(COMPACT_CARD_OUTER, className), children: [
2775
2835
  /* @__PURE__ */ jsxs12("span", { className: COMPACT_CARD_IMAGE_SLOT, children: [
2776
- compactCover ? /* @__PURE__ */ jsx14(
2836
+ compactCover ? /* @__PURE__ */ jsx15(
2777
2837
  next_image_default,
2778
2838
  {
2779
2839
  src: compactCover,
@@ -2783,15 +2843,15 @@ function OnboardingGuideCard({
2783
2843
  className: "object-contain",
2784
2844
  unoptimized: true
2785
2845
  }
2786
- ) : /* @__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" }) }),
2787
- 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" }) })
2846
+ ) : /* @__PURE__ */ jsx15("span", { className: "flex h-full w-full items-center justify-center text-ods-accent", children: /* @__PURE__ */ jsx15(GraduationCap, { className: "w-4 h-4" }) }),
2847
+ hasVideoCover && compactCover && /* @__PURE__ */ jsx15("span", { className: "absolute inset-0 flex items-center justify-center bg-black/30", children: /* @__PURE__ */ jsx15(Play, { className: "h-4 w-4 text-white", fill: "white" }) })
2788
2848
  ] }),
2789
2849
  /* @__PURE__ */ jsxs12("span", { className: COMPACT_CARD_TEXT_COL, children: [
2790
- /* @__PURE__ */ jsx14("span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ jsx14("span", { className: cn(COMPACT_CARD_TITLE, "font-['Azeret_Mono']"), children: guide.title }) }),
2791
- /* @__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 ") }) }),
2792
- /* @__PURE__ */ jsx14("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx14("span", { className: COMPACT_CARD_SUMMARY, children: summary2 || COMPACT_CARD_ROW_FILLER }) })
2850
+ /* @__PURE__ */ jsx15("span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ jsx15("span", { className: cn(COMPACT_CARD_TITLE, "font-['Azeret_Mono']"), children: guide.title }) }),
2851
+ /* @__PURE__ */ jsx15("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx15("span", { className: "truncate text-[11px] leading-4 text-[var(--color-accent-primary)]", children: subtitleParts.join(" \xB7 ") }) }),
2852
+ /* @__PURE__ */ jsx15("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx15("span", { className: COMPACT_CARD_SUMMARY, children: summary2 || COMPACT_CARD_ROW_FILLER }) })
2793
2853
  ] }),
2794
- /* @__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" }) })
2854
+ /* @__PURE__ */ jsx15("span", { className: "flex shrink-0 items-center self-start h-5 text-ods-text-secondary", children: /* @__PURE__ */ jsx15(ExternalLink, { className: "w-3.5 h-3.5" }) })
2795
2855
  ] });
2796
2856
  }
2797
2857
  const t = HORIZONTAL_SIZE_TOKENS.default;
@@ -2808,7 +2868,7 @@ function OnboardingGuideCard({
2808
2868
  className
2809
2869
  ),
2810
2870
  children: [
2811
- /* @__PURE__ */ jsx14(
2871
+ /* @__PURE__ */ jsx15(
2812
2872
  "span",
2813
2873
  {
2814
2874
  className: `shrink-0 inline-flex items-center justify-center rounded-full bg-ods-accent/10 text-ods-accent font-semibold ${t.step}`,
@@ -2817,12 +2877,12 @@ function OnboardingGuideCard({
2817
2877
  }
2818
2878
  ),
2819
2879
  /* @__PURE__ */ jsxs12("span", { className: "flex flex-col gap-0.5 flex-1 min-w-0", children: [
2820
- /* @__PURE__ */ jsx14("span", { className: `block ${t.title} text-ods-text-primary truncate`, children: guide.title }),
2880
+ /* @__PURE__ */ jsx15("span", { className: `block ${t.title} text-ods-text-primary truncate`, children: guide.title }),
2821
2881
  /* @__PURE__ */ jsxs12("span", { className: "inline-flex items-center gap-1 font-['DM_Sans'] text-[12px] leading-[16px] text-ods-text-secondary", children: [
2822
- /* @__PURE__ */ jsx14(GraduationCap, { className: "h-3 w-3 shrink-0" }),
2823
- /* @__PURE__ */ jsx14("span", { className: "truncate", children: guide.section })
2882
+ /* @__PURE__ */ jsx15(GraduationCap, { className: "h-3 w-3 shrink-0" }),
2883
+ /* @__PURE__ */ jsx15("span", { className: "truncate", children: guide.section })
2824
2884
  ] }),
2825
- summary && /* @__PURE__ */ jsx14("span", { className: `font-['DM_Sans'] text-[14px] leading-[20px] text-ods-text-secondary ${t.summaryClamp}`, children: summary })
2885
+ summary && /* @__PURE__ */ jsx15("span", { className: `font-['DM_Sans'] text-[14px] leading-[20px] text-ods-text-secondary ${t.summaryClamp}`, children: summary })
2826
2886
  ] })
2827
2887
  ]
2828
2888
  }
@@ -3241,7 +3301,7 @@ function resolveSourceIcon(input, ctx = {}) {
3241
3301
  init_cn();
3242
3302
  import React11 from "react";
3243
3303
  init_button();
3244
- import { Fragment as Fragment4, jsx as jsx15, jsxs as jsxs13 } from "react/jsx-runtime";
3304
+ import { Fragment as Fragment4, jsx as jsx16, jsxs as jsxs13 } from "react/jsx-runtime";
3245
3305
  function actionKey(action, idx) {
3246
3306
  return `${action.label ?? action.ariaLabel ?? "action"}-${idx}`;
3247
3307
  }
@@ -3273,7 +3333,7 @@ function actionToMenuItems(action, idx) {
3273
3333
  }
3274
3334
  function renderActionButton(action, opts = {}) {
3275
3335
  if (action.iconAction) {
3276
- return /* @__PURE__ */ jsx15(
3336
+ return /* @__PURE__ */ jsx16(
3277
3337
  SplitButton,
3278
3338
  {
3279
3339
  variant: action.variant ?? void 0,
@@ -3291,18 +3351,18 @@ function renderActionButton(action, opts = {}) {
3291
3351
  );
3292
3352
  }
3293
3353
  if (action.submenu && action.submenu.length > 0) {
3294
- return /* @__PURE__ */ jsx15(
3354
+ return /* @__PURE__ */ jsx16(
3295
3355
  ActionsMenuDropdown,
3296
3356
  {
3297
3357
  groups: [{ items: action.submenu }],
3298
- customTrigger: /* @__PURE__ */ jsx15(
3358
+ customTrigger: /* @__PURE__ */ jsx16(
3299
3359
  Button,
3300
3360
  {
3301
3361
  variant: "outline",
3302
3362
  disabled: action.disabled,
3303
3363
  loading: action.loading,
3304
3364
  leftIcon: action.icon,
3305
- splitIcon: /* @__PURE__ */ jsx15(Chevron02DownIcon, { className: "h-4 w-4" }),
3365
+ splitIcon: /* @__PURE__ */ jsx16(Chevron02DownIcon, { className: "h-4 w-4" }),
3306
3366
  className: opts.fullWidth ? "flex-1" : void 0,
3307
3367
  children: action.label
3308
3368
  }
@@ -3312,8 +3372,8 @@ function renderActionButton(action, opts = {}) {
3312
3372
  }
3313
3373
  const isIconOnly = opts.iconOnly || !action.label || action.iconOnlyOnDesktop;
3314
3374
  if (isIconOnly) {
3315
- const iconNode = action.iconOnlyOnDesktop ? /* @__PURE__ */ jsx15("span", { className: "inline-flex [&_svg]:!text-ods-text-primary", children: action.icon }) : action.icon;
3316
- return /* @__PURE__ */ jsx15(
3375
+ const iconNode = action.iconOnlyOnDesktop ? /* @__PURE__ */ jsx16("span", { className: "inline-flex [&_svg]:!text-ods-text-primary", children: action.icon }) : action.icon;
3376
+ return /* @__PURE__ */ jsx16(
3317
3377
  Button,
3318
3378
  {
3319
3379
  variant: action.variant,
@@ -3329,7 +3389,7 @@ function renderActionButton(action, opts = {}) {
3329
3389
  }
3330
3390
  );
3331
3391
  }
3332
- return /* @__PURE__ */ jsx15(
3392
+ return /* @__PURE__ */ jsx16(
3333
3393
  Button,
3334
3394
  {
3335
3395
  variant: action.variant,
@@ -3354,12 +3414,12 @@ function PageActions({
3354
3414
  className
3355
3415
  }) {
3356
3416
  if (variant === "icon-buttons") {
3357
- return /* @__PURE__ */ jsx15(IconButtonsVariant, { actions, menuActions, selector, className });
3417
+ return /* @__PURE__ */ jsx16(IconButtonsVariant, { actions, menuActions, selector, className });
3358
3418
  }
3359
3419
  if (variant === "menu-primary") {
3360
- return /* @__PURE__ */ jsx15(MenuPrimaryVariant, { actions, menuActions: menuActions || [], selector, className });
3420
+ return /* @__PURE__ */ jsx16(MenuPrimaryVariant, { actions, menuActions: menuActions || [], selector, className });
3361
3421
  }
3362
- return /* @__PURE__ */ jsx15(PrimaryButtonsVariant, { actions, className });
3422
+ return /* @__PURE__ */ jsx16(PrimaryButtonsVariant, { actions, className });
3363
3423
  }
3364
3424
  function IconButtonsVariant({
3365
3425
  actions,
@@ -3375,10 +3435,10 @@ function IconButtonsVariant({
3375
3435
  return /* @__PURE__ */ jsxs13(Fragment4, { children: [
3376
3436
  /* @__PURE__ */ jsxs13("div", { className: cn("hidden md:flex items-center", ACTIONS_GAP, className), children: [
3377
3437
  selector,
3378
- desktopActions.map((action, idx) => /* @__PURE__ */ jsx15(React11.Fragment, { children: renderActionButton(action) }, actionKey(action, idx))),
3379
- hasMenuActions && /* @__PURE__ */ jsx15(ActionsMenuDropdown, { groups: menuActions })
3438
+ desktopActions.map((action, idx) => /* @__PURE__ */ jsx16(React11.Fragment, { children: renderActionButton(action) }, actionKey(action, idx))),
3439
+ hasMenuActions && /* @__PURE__ */ jsx16(ActionsMenuDropdown, { groups: menuActions })
3380
3440
  ] }),
3381
- /* @__PURE__ */ jsx15("div", { className: cn("flex md:hidden", className), children: useSingleActionMobile && singleAction ? renderActionButton(singleAction, { iconOnly: true }) : /* @__PURE__ */ jsx15(
3441
+ /* @__PURE__ */ jsx16("div", { className: cn("flex md:hidden", className), children: useSingleActionMobile && singleAction ? renderActionButton(singleAction, { iconOnly: true }) : /* @__PURE__ */ jsx16(
3382
3442
  ActionsMenuDropdown,
3383
3443
  {
3384
3444
  groups: [
@@ -3400,8 +3460,8 @@ function PrimaryButtonsVariant({
3400
3460
  });
3401
3461
  const desktopActions = sortedActions.filter((a) => !a.showOnlyMobile);
3402
3462
  return /* @__PURE__ */ jsxs13(Fragment4, { children: [
3403
- /* @__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)}`)) }),
3404
- /* @__PURE__ */ jsx15(MobileBottomActions, { actions: sortedActions })
3463
+ /* @__PURE__ */ jsx16("div", { className: cn("hidden md:flex items-center", ACTIONS_GAP, className), children: desktopActions.map((action, idx) => /* @__PURE__ */ jsx16(React11.Fragment, { children: renderActionButton(action) }, `desktop-${actionKey(action, idx)}`)) }),
3464
+ /* @__PURE__ */ jsx16(MobileBottomActions, { actions: sortedActions })
3405
3465
  ] });
3406
3466
  }
3407
3467
  function MenuPrimaryVariant({
@@ -3415,10 +3475,10 @@ function MenuPrimaryVariant({
3415
3475
  return /* @__PURE__ */ jsxs13(Fragment4, { children: [
3416
3476
  /* @__PURE__ */ jsxs13("div", { className: cn("hidden md:flex items-center", ACTIONS_GAP, className), children: [
3417
3477
  selector,
3418
- hasMenuActions && /* @__PURE__ */ jsx15(ActionsMenuDropdown, { groups: menuActions }),
3419
- desktopActions.map((action, idx) => /* @__PURE__ */ jsx15(React11.Fragment, { children: renderActionButton({ ...action, variant: action.variant || "accent" }) }, `desktop-${actionKey(action, idx)}`))
3478
+ hasMenuActions && /* @__PURE__ */ jsx16(ActionsMenuDropdown, { groups: menuActions }),
3479
+ desktopActions.map((action, idx) => /* @__PURE__ */ jsx16(React11.Fragment, { children: renderActionButton({ ...action, variant: action.variant || "accent" }) }, `desktop-${actionKey(action, idx)}`))
3420
3480
  ] }),
3421
- /* @__PURE__ */ jsx15("div", { className: cn("flex md:hidden", className), children: /* @__PURE__ */ jsx15(
3481
+ /* @__PURE__ */ jsx16("div", { className: cn("flex md:hidden", className), children: /* @__PURE__ */ jsx16(
3422
3482
  ActionsMenuDropdown,
3423
3483
  {
3424
3484
  groups: [
@@ -3430,12 +3490,12 @@ function MenuPrimaryVariant({
3430
3490
  ] });
3431
3491
  }
3432
3492
  function MobileBottomActions({ actions }) {
3433
- return /* @__PURE__ */ jsx15("div", { className: cn(
3493
+ return /* @__PURE__ */ jsx16("div", { className: cn(
3434
3494
  "fixed md:hidden bottom-0 left-0 right-0 z-50",
3435
3495
  "bg-ods-card border-t border-ods-border",
3436
3496
  "flex items-start pt-6 pb-6 px-6",
3437
3497
  ACTIONS_GAP
3438
- ), children: actions.map((action, idx) => /* @__PURE__ */ jsx15(React11.Fragment, { children: renderActionButton(action, { fullWidth: !!action.label }) }, `mobile-${actionKey(action, idx)}`)) });
3498
+ ), children: actions.map((action, idx) => /* @__PURE__ */ jsx16(React11.Fragment, { children: renderActionButton(action, { fullWidth: !!action.label }) }, `mobile-${actionKey(action, idx)}`)) });
3439
3499
  }
3440
3500
  function usePageActionsBottomPadding(variant) {
3441
3501
  return variant === "primary-buttons" || variant === "menu-primary" ? "pb-40 md:pb-0" : "";
@@ -3446,7 +3506,7 @@ init_cn();
3446
3506
 
3447
3507
  // src/components/layout/back-button.tsx
3448
3508
  init_cn();
3449
- import { jsx as jsx16, jsxs as jsxs14 } from "react/jsx-runtime";
3509
+ import { jsx as jsx17, jsxs as jsxs14 } from "react/jsx-runtime";
3450
3510
  function BackButton({ label = "Back", className, type = "button", ...props }) {
3451
3511
  return /* @__PURE__ */ jsxs14(
3452
3512
  "button",
@@ -3462,15 +3522,15 @@ function BackButton({ label = "Back", className, type = "button", ...props }) {
3462
3522
  ),
3463
3523
  ...props,
3464
3524
  children: [
3465
- /* @__PURE__ */ jsx16(Chevron02LeftIcon, { className: "size-6 shrink-0" }),
3466
- /* @__PURE__ */ jsx16("span", { className: "text-h4", children: label })
3525
+ /* @__PURE__ */ jsx17(Chevron02LeftIcon, { className: "size-6 shrink-0" }),
3526
+ /* @__PURE__ */ jsx17("span", { className: "text-h4", children: label })
3467
3527
  ]
3468
3528
  }
3469
3529
  );
3470
3530
  }
3471
3531
 
3472
3532
  // src/components/layout/page-container.tsx
3473
- import { jsx as jsx17, jsxs as jsxs15 } from "react/jsx-runtime";
3533
+ import { jsx as jsx18, jsxs as jsxs15 } from "react/jsx-runtime";
3474
3534
  function isAdvancedProps(props) {
3475
3535
  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;
3476
3536
  }
@@ -3492,9 +3552,9 @@ function renderLegacyPageContainer({
3492
3552
  as: Component = "section",
3493
3553
  id
3494
3554
  }) {
3495
- const content = /* @__PURE__ */ jsx17("div", { className: cn(maxWidth, contentPadding, "mx-auto", className), children });
3555
+ const content = /* @__PURE__ */ jsx18("div", { className: cn(maxWidth, contentPadding, "mx-auto", className), children });
3496
3556
  if (fullWidthBackground) {
3497
- return /* @__PURE__ */ jsx17(
3557
+ return /* @__PURE__ */ jsx18(
3498
3558
  Component,
3499
3559
  {
3500
3560
  className: cn("w-full", backgroundClassName),
@@ -3504,7 +3564,7 @@ function renderLegacyPageContainer({
3504
3564
  }
3505
3565
  );
3506
3566
  }
3507
- return /* @__PURE__ */ jsx17(Component, { className: "w-full", id, children: /* @__PURE__ */ jsx17("div", { className: cn(maxWidth, contentPadding, "mx-auto", backgroundClassName, className), style: backgroundStyle, children }) });
3567
+ return /* @__PURE__ */ jsx18(Component, { className: "w-full", id, children: /* @__PURE__ */ jsx18("div", { className: cn(maxWidth, contentPadding, "mx-auto", backgroundClassName, className), style: backgroundStyle, children }) });
3508
3568
  }
3509
3569
  function renderAdvancedPageContainer({
3510
3570
  children,
@@ -3530,7 +3590,7 @@ function renderAdvancedPageContainer({
3530
3590
  };
3531
3591
  const renderActions = () => {
3532
3592
  if (!actions || actions.length === 0) return null;
3533
- return /* @__PURE__ */ jsx17(PageActions, { variant: getActionsVariant(), actions, menuActions });
3593
+ return /* @__PURE__ */ jsx18(PageActions, { variant: getActionsVariant(), actions, menuActions });
3534
3594
  };
3535
3595
  const needsBottomPadding = actions && actions.length > 0 && getActionsVariant() === "primary-buttons";
3536
3596
  const paddingClasses = {
@@ -3547,14 +3607,14 @@ function renderAdvancedPageContainer({
3547
3607
  const renderHeader = () => {
3548
3608
  if (!showHeader) return null;
3549
3609
  if (headerContent) {
3550
- return /* @__PURE__ */ jsx17("div", { className: cn(
3610
+ return /* @__PURE__ */ jsx18("div", { className: cn(
3551
3611
  "flex items-end justify-between gap-4"
3552
3612
  ), children: headerContent });
3553
3613
  }
3554
3614
  if (variant === "detail") {
3555
3615
  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: [
3556
3616
  /* @__PURE__ */ jsxs15("div", { className: "flex flex-col gap-2 flex-1 min-w-0", children: [
3557
- backButton && /* @__PURE__ */ jsx17(
3617
+ backButton && /* @__PURE__ */ jsx18(
3558
3618
  BackButton,
3559
3619
  {
3560
3620
  onClick: backButton.onClick,
@@ -3562,8 +3622,8 @@ function renderAdvancedPageContainer({
3562
3622
  className: "hidden md:inline-flex"
3563
3623
  }
3564
3624
  ),
3565
- title && /* @__PURE__ */ jsx17("h1", { className: "text-h2 tracking-[-0.64px] text-ods-text-primary", children: title }),
3566
- subtitle && /* @__PURE__ */ jsx17("div", { className: "text-ods-text-secondary font-['DM_Sans'] font-medium text-[16px]", children: subtitle })
3625
+ title && /* @__PURE__ */ jsx18("h1", { className: "text-h2 tracking-[-0.64px] text-ods-text-primary", children: title }),
3626
+ subtitle && /* @__PURE__ */ jsx18("div", { className: "text-ods-text-secondary font-['DM_Sans'] font-medium text-[16px]", children: subtitle })
3567
3627
  ] }),
3568
3628
  (headerActions || actions) && /* @__PURE__ */ jsxs15("div", { className: "flex gap-2 items-center shrink-0", children: [
3569
3629
  headerActions,
@@ -3574,7 +3634,7 @@ function renderAdvancedPageContainer({
3574
3634
  if (variant === "list") {
3575
3635
  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: [
3576
3636
  /* @__PURE__ */ jsxs15("div", { className: "flex flex-col gap-1 flex-1 min-w-0", children: [
3577
- backButton && /* @__PURE__ */ jsx17(
3637
+ backButton && /* @__PURE__ */ jsx18(
3578
3638
  BackButton,
3579
3639
  {
3580
3640
  onClick: backButton.onClick,
@@ -3582,8 +3642,8 @@ function renderAdvancedPageContainer({
3582
3642
  className: "hidden md:inline-flex"
3583
3643
  }
3584
3644
  ),
3585
- title && /* @__PURE__ */ jsx17("h1", { className: "text-h2 tracking-[-0.48px] text-ods-text-primary", children: title }),
3586
- subtitle && /* @__PURE__ */ jsx17("div", { className: "text-ods-text-secondary font-['DM_Sans'] font-medium text-[16px]", children: subtitle })
3645
+ title && /* @__PURE__ */ jsx18("h1", { className: "text-h2 tracking-[-0.48px] text-ods-text-primary", children: title }),
3646
+ subtitle && /* @__PURE__ */ jsx18("div", { className: "text-ods-text-secondary font-['DM_Sans'] font-medium text-[16px]", children: subtitle })
3587
3647
  ] }),
3588
3648
  (headerActions || actions) && /* @__PURE__ */ jsxs15("div", { className: "flex gap-3 items-center shrink-0", children: [
3589
3649
  headerActions,
@@ -3594,7 +3654,7 @@ function renderAdvancedPageContainer({
3594
3654
  if (variant === "form") {
3595
3655
  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: [
3596
3656
  /* @__PURE__ */ jsxs15("div", { className: "flex flex-col gap-2 flex-1 min-w-0", children: [
3597
- backButton && /* @__PURE__ */ jsx17(
3657
+ backButton && /* @__PURE__ */ jsx18(
3598
3658
  BackButton,
3599
3659
  {
3600
3660
  onClick: backButton.onClick,
@@ -3602,7 +3662,7 @@ function renderAdvancedPageContainer({
3602
3662
  className: "hidden md:inline-flex"
3603
3663
  }
3604
3664
  ),
3605
- title && /* @__PURE__ */ jsx17("h1", { className: "text-[32px] font-['Azeret_Mono:SemiBold',_sans-serif] font-semibold text-ods-text-primary tracking-[-0.64px]", children: title })
3665
+ title && /* @__PURE__ */ jsx18("h1", { className: "text-[32px] font-['Azeret_Mono:SemiBold',_sans-serif] font-semibold text-ods-text-primary tracking-[-0.64px]", children: title })
3606
3666
  ] }),
3607
3667
  (headerActions || actions) && /* @__PURE__ */ jsxs15("div", { className: "flex gap-4 items-center shrink-0", children: [
3608
3668
  headerActions,
@@ -3612,8 +3672,8 @@ function renderAdvancedPageContainer({
3612
3672
  }
3613
3673
  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: [
3614
3674
  (title || subtitle) && /* @__PURE__ */ jsxs15("div", { className: "flex flex-col gap-1 flex-1 min-w-0", children: [
3615
- title && /* @__PURE__ */ jsx17("h1", { className: "text-h2 text-ods-text-primary", children: title }),
3616
- subtitle && /* @__PURE__ */ jsx17("div", { className: "text-ods-text-secondary font-['DM_Sans'] font-medium text-[16px]", children: subtitle })
3675
+ title && /* @__PURE__ */ jsx18("h1", { className: "text-h2 text-ods-text-primary", children: title }),
3676
+ subtitle && /* @__PURE__ */ jsx18("div", { className: "text-ods-text-secondary font-['DM_Sans'] font-medium text-[16px]", children: subtitle })
3617
3677
  ] }),
3618
3678
  (headerActions || actions) && /* @__PURE__ */ jsxs15("div", { className: "flex gap-3 items-center shrink-0", children: [
3619
3679
  headerActions,
@@ -3655,26 +3715,26 @@ function renderAdvancedPageContainer({
3655
3715
  };
3656
3716
  return /* @__PURE__ */ jsxs15("div", { className: getContainerClasses(), children: [
3657
3717
  renderHeader(),
3658
- /* @__PURE__ */ jsx17("div", { className: getContentClasses(), children })
3718
+ /* @__PURE__ */ jsx18("div", { className: getContentClasses(), children })
3659
3719
  ] });
3660
3720
  }
3661
- var ListPageContainer = (props) => /* @__PURE__ */ jsx17(PageContainer, { ...props, variant: "list" });
3662
- var DetailPageContainer = (props) => /* @__PURE__ */ jsx17(PageContainer, { ...props, variant: "detail" });
3663
- var FormPageContainer = (props) => /* @__PURE__ */ jsx17(PageContainer, { ...props, variant: "form" });
3664
- var ContentPageContainer = (props) => /* @__PURE__ */ jsx17(PageContainer, { ...props, variant: "content" });
3721
+ var ListPageContainer = (props) => /* @__PURE__ */ jsx18(PageContainer, { ...props, variant: "list" });
3722
+ var DetailPageContainer = (props) => /* @__PURE__ */ jsx18(PageContainer, { ...props, variant: "detail" });
3723
+ var FormPageContainer = (props) => /* @__PURE__ */ jsx18(PageContainer, { ...props, variant: "form" });
3724
+ var ContentPageContainer = (props) => /* @__PURE__ */ jsx18(PageContainer, { ...props, variant: "content" });
3665
3725
 
3666
3726
  // src/components/layout/article-detail-layout.tsx
3667
- import { jsx as jsx18, jsxs as jsxs16 } from "react/jsx-runtime";
3727
+ import { jsx as jsx19, jsxs as jsxs16 } from "react/jsx-runtime";
3668
3728
  function PageShell({ children, schemas }) {
3669
3729
  return /* @__PURE__ */ jsxs16("main", { className: "bg-ods-bg min-h-screen", children: [
3670
3730
  schemas,
3671
- /* @__PURE__ */ jsx18("div", { className: "max-w-[1920px] mx-auto px-6 md:px-20 py-6 md:py-10", children })
3731
+ /* @__PURE__ */ jsx19("div", { className: "max-w-[1920px] mx-auto px-6 md:px-20 py-6 md:py-10", children })
3672
3732
  ] });
3673
3733
  }
3674
3734
  function ArticleDetailLayout({ children, schemas }) {
3675
3735
  return /* @__PURE__ */ jsxs16("main", { className: "bg-ods-bg min-h-screen", children: [
3676
3736
  schemas,
3677
- /* @__PURE__ */ jsx18("div", { className: "max-w-[1280px] mx-auto px-6 md:px-20 py-6 md:py-10", children })
3737
+ /* @__PURE__ */ jsx19("div", { className: "max-w-[1280px] mx-auto px-6 md:px-20 py-6 md:py-10", children })
3678
3738
  ] });
3679
3739
  }
3680
3740
 
@@ -3729,7 +3789,7 @@ function resolveContentHref(composeContentUrl, args) {
3729
3789
  init_button();
3730
3790
  init_cn();
3731
3791
  import { AlertTriangle, RefreshCw, Home } from "lucide-react";
3732
- import { jsx as jsx19, jsxs as jsxs17 } from "react/jsx-runtime";
3792
+ import { jsx as jsx20, jsxs as jsxs17 } from "react/jsx-runtime";
3733
3793
  function ErrorState({
3734
3794
  title = "Error",
3735
3795
  message,
@@ -3768,36 +3828,36 @@ function ErrorState({
3768
3828
  }
3769
3829
  };
3770
3830
  const styles = getVariantStyles();
3771
- return /* @__PURE__ */ jsx19("div", { className: cn("p-6", containerClassName), children: /* @__PURE__ */ jsx19("div", { className: cn(
3831
+ return /* @__PURE__ */ jsx20("div", { className: cn("p-6", containerClassName), children: /* @__PURE__ */ jsx20("div", { className: cn(
3772
3832
  "rounded-lg p-4 border",
3773
3833
  styles.bg,
3774
3834
  styles.border,
3775
3835
  className
3776
3836
  ), children: /* @__PURE__ */ jsxs17("div", { className: "flex items-start gap-3", children: [
3777
- showIcon && /* @__PURE__ */ jsx19(AlertTriangle, { className: cn("h-5 w-5 mt-0.5 flex-shrink-0", styles.icon) }),
3837
+ showIcon && /* @__PURE__ */ jsx20(AlertTriangle, { className: cn("h-5 w-5 mt-0.5 flex-shrink-0", styles.icon) }),
3778
3838
  /* @__PURE__ */ jsxs17("div", { className: "flex-1", children: [
3779
- /* @__PURE__ */ jsx19("h3", { className: cn("font-semibold mb-1", styles.text), children: title }),
3780
- /* @__PURE__ */ jsx19("p", { className: cn("text-sm", styles.text), children: message }),
3839
+ /* @__PURE__ */ jsx20("h3", { className: cn("font-semibold mb-1", styles.text), children: title }),
3840
+ /* @__PURE__ */ jsx20("p", { className: cn("text-sm", styles.text), children: message }),
3781
3841
  (showRetry || showHome) && /* @__PURE__ */ jsxs17("div", { className: "flex gap-2 mt-3", children: [
3782
- showRetry && onRetry && /* @__PURE__ */ jsx19(
3842
+ showRetry && onRetry && /* @__PURE__ */ jsx20(
3783
3843
  Button,
3784
3844
  {
3785
3845
  onClick: onRetry,
3786
3846
  variant: "outline",
3787
3847
  size: "small-legacy",
3788
3848
  className: "h-8",
3789
- leftIcon: /* @__PURE__ */ jsx19(RefreshCw, { className: "h-4 w-4" }),
3849
+ leftIcon: /* @__PURE__ */ jsx20(RefreshCw, { className: "h-4 w-4" }),
3790
3850
  children: "Try Again"
3791
3851
  }
3792
3852
  ),
3793
- showHome && onHome && /* @__PURE__ */ jsx19(
3853
+ showHome && onHome && /* @__PURE__ */ jsx20(
3794
3854
  Button,
3795
3855
  {
3796
3856
  onClick: onHome,
3797
3857
  variant: "outline",
3798
3858
  size: "small-legacy",
3799
3859
  className: "h-8",
3800
- leftIcon: /* @__PURE__ */ jsx19(Home, { className: "h-4 w-4" }),
3860
+ leftIcon: /* @__PURE__ */ jsx20(Home, { className: "h-4 w-4" }),
3801
3861
  children: "Go Home"
3802
3862
  }
3803
3863
  )
@@ -3806,7 +3866,7 @@ function ErrorState({
3806
3866
  ] }) }) });
3807
3867
  }
3808
3868
  function PageError({ message, onRetry, onHome }) {
3809
- return /* @__PURE__ */ jsx19(
3869
+ return /* @__PURE__ */ jsx20(
3810
3870
  ErrorState,
3811
3871
  {
3812
3872
  title: "Page Error",
@@ -3820,7 +3880,7 @@ function PageError({ message, onRetry, onHome }) {
3820
3880
  );
3821
3881
  }
3822
3882
  function LoadError({ message, onRetry }) {
3823
- return /* @__PURE__ */ jsx19(
3883
+ return /* @__PURE__ */ jsx20(
3824
3884
  ErrorState,
3825
3885
  {
3826
3886
  title: "Loading Error",
@@ -3832,7 +3892,7 @@ function LoadError({ message, onRetry }) {
3832
3892
  );
3833
3893
  }
3834
3894
  function NotFoundError({ message = "The requested item was not found", onHome }) {
3835
- return /* @__PURE__ */ jsx19(
3895
+ return /* @__PURE__ */ jsx20(
3836
3896
  ErrorState,
3837
3897
  {
3838
3898
  title: "Not Found",
@@ -3844,6 +3904,37 @@ function NotFoundError({ message = "The requested item was not found", onHome })
3844
3904
  );
3845
3905
  }
3846
3906
 
3907
+ // src/components/features/entity-tag-badges.tsx
3908
+ import Link from "next/link";
3909
+ import { jsx as jsx21, jsxs as jsxs18 } from "react/jsx-runtime";
3910
+ var TAG_BADGE_CLASS = "bg-ods-card border border-ods-border";
3911
+ var BADGE_CLASS = TAG_BADGE_CLASS;
3912
+ function EntityTagBadges({ tags, basePath, max, className }) {
3913
+ const items = (tags || []).filter((t) => !!t && !!t.name);
3914
+ if (items.length === 0) return null;
3915
+ const visibleLimit = max == null ? items.length : Math.max(0, max);
3916
+ const shown = items.slice(0, visibleLimit);
3917
+ const overflow = items.length - shown.length;
3918
+ return /* @__PURE__ */ jsxs18("div", { className: `flex flex-wrap items-center gap-2 w-full ${className || ""}`, children: [
3919
+ shown.map((tag) => {
3920
+ const key = tag.tag_id ?? tag.id ?? tag.slug ?? tag.name;
3921
+ const label = (tag.name || "").toUpperCase();
3922
+ if (basePath && tag.slug) {
3923
+ return /* @__PURE__ */ jsx21(Link, { href: `${basePath}?tags=${tag.slug}`, className: "inline-flex", children: /* @__PURE__ */ jsx21(
3924
+ StatusBadge,
3925
+ {
3926
+ text: label,
3927
+ variant: "card",
3928
+ className: `${BADGE_CLASS} cursor-pointer transition-colors hover:border-ods-accent`
3929
+ }
3930
+ ) }, key);
3931
+ }
3932
+ return /* @__PURE__ */ jsx21(StatusBadge, { text: label, variant: "card", className: BADGE_CLASS }, key);
3933
+ }),
3934
+ overflow > 0 && /* @__PURE__ */ jsx21(StatusBadge, { text: `+${overflow}`, variant: "card", className: `${BADGE_CLASS} text-ods-text-secondary` })
3935
+ ] });
3936
+ }
3937
+
3847
3938
  // src/components/features/mux-origins.ts
3848
3939
  var MUX_STREAM_ORIGIN = "https://stream.mux.com";
3849
3940
  var MUX_IMAGE_ORIGIN = "https://image.mux.com";
@@ -3917,7 +4008,7 @@ init_cn();
3917
4008
  import * as PopoverPrimitive from "@radix-ui/react-popover";
3918
4009
  import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
3919
4010
  import * as React12 from "react";
3920
- import { jsx as jsx20, jsxs as jsxs18 } from "react/jsx-runtime";
4011
+ import { jsx as jsx22, jsxs as jsxs19 } from "react/jsx-runtime";
3921
4012
  var containerStyles = cn(
3922
4013
  // Layout & spacing — matches lib Input component
3923
4014
  "flex items-center gap-2 rounded-[6px] border px-3 h-11 md:h-12 cursor-text",
@@ -4101,20 +4192,20 @@ function SearchInput({
4101
4192
  const handleOpenChange = (open) => {
4102
4193
  setIsOpen(open);
4103
4194
  };
4104
- const defaultRenderResult = (result, isHighlighted) => /* @__PURE__ */ jsxs18("div", { className: "flex items-center gap-3 w-full min-w-0", children: [
4105
- result.icon && /* @__PURE__ */ jsx20("span", { className: "flex-shrink-0 text-ods-text-secondary [&_svg]:size-4", children: result.icon }),
4106
- /* @__PURE__ */ jsxs18("div", { className: "min-w-0 flex-1", children: [
4107
- /* @__PURE__ */ jsx20("div", { className: cn(
4195
+ const defaultRenderResult = (result, isHighlighted) => /* @__PURE__ */ jsxs19("div", { className: "flex items-center gap-3 w-full min-w-0", children: [
4196
+ result.icon && /* @__PURE__ */ jsx22("span", { className: "flex-shrink-0 text-ods-text-secondary [&_svg]:size-4", children: result.icon }),
4197
+ /* @__PURE__ */ jsxs19("div", { className: "min-w-0 flex-1", children: [
4198
+ /* @__PURE__ */ jsx22("div", { className: cn(
4108
4199
  "text-sm font-medium leading-5 truncate",
4109
4200
  isHighlighted ? "text-ods-accent" : "text-ods-text-primary"
4110
4201
  ), title: result.title, children: result.title }),
4111
- result.description && /* @__PURE__ */ jsx20("div", { className: "text-xs leading-4 text-ods-text-secondary truncate mt-0.5", title: result.description, children: result.description })
4202
+ result.description && /* @__PURE__ */ jsx22("div", { className: "text-xs leading-4 text-ods-text-secondary truncate mt-0.5", title: result.description, children: result.description })
4112
4203
  ] }),
4113
- result.type && /* @__PURE__ */ jsx20("span", { className: "flex-shrink-0 text-[11px] font-medium text-ods-text-muted uppercase tracking-wider", children: result.type })
4204
+ result.type && /* @__PURE__ */ jsx22("span", { className: "flex-shrink-0 text-[11px] font-medium text-ods-text-muted uppercase tracking-wider", children: result.type })
4114
4205
  ] });
4115
4206
  const renderRow = (result, index) => {
4116
4207
  const isHighlighted = index === highlightedIndex;
4117
- return /* @__PURE__ */ jsx20(
4208
+ return /* @__PURE__ */ jsx22(
4118
4209
  "div",
4119
4210
  {
4120
4211
  role: "option",
@@ -4133,15 +4224,15 @@ function SearchInput({
4133
4224
  };
4134
4225
  const renderDropdownContent = () => {
4135
4226
  if (isLoading) {
4136
- return /* @__PURE__ */ jsx20("div", { className: "px-4 py-3 text-ods-text-secondary text-[14px]", children: "Loading..." });
4227
+ return /* @__PURE__ */ jsx22("div", { className: "px-4 py-3 text-ods-text-secondary text-[14px]", children: "Loading..." });
4137
4228
  }
4138
4229
  if (flatResults.length === 0) {
4139
- return /* @__PURE__ */ jsx20("div", { className: "px-4 py-3 text-ods-text-secondary text-[14px]", children: emptyResultsText });
4230
+ return /* @__PURE__ */ jsx22("div", { className: "px-4 py-3 text-ods-text-secondary text-[14px]", children: emptyResultsText });
4140
4231
  }
4141
4232
  if (groups) {
4142
4233
  let globalIndex = 0;
4143
- return Array.from(groups.entries()).map(([groupLabel, groupResults]) => /* @__PURE__ */ jsxs18("div", { children: [
4144
- /* @__PURE__ */ jsx20("div", { className: "px-4 py-2 text-[12px] font-semibold text-ods-text-secondary uppercase tracking-wide bg-ods-bg", children: groupLabel }),
4234
+ return Array.from(groups.entries()).map(([groupLabel, groupResults]) => /* @__PURE__ */ jsxs19("div", { children: [
4235
+ /* @__PURE__ */ jsx22("div", { className: "px-4 py-2 text-[12px] font-semibold text-ods-text-secondary uppercase tracking-wide bg-ods-bg", children: groupLabel }),
4145
4236
  groupResults.map((result) => {
4146
4237
  const idx = globalIndex++;
4147
4238
  return renderRow(result, idx);
@@ -4151,9 +4242,9 @@ function SearchInput({
4151
4242
  return flatResults.map((result, index) => renderRow(result, index));
4152
4243
  };
4153
4244
  const hasValue = currentValue.length > 0;
4154
- return /* @__PURE__ */ jsxs18("div", { className: cn("relative", className), ref: containerRef, children: [
4155
- /* @__PURE__ */ jsxs18(PopoverPrimitive.Root, { open: dropdownVisible, onOpenChange: handleOpenChange, modal: false, children: [
4156
- /* @__PURE__ */ jsx20(PopoverPrimitive.Anchor, { asChild: true, children: /* @__PURE__ */ jsxs18(
4245
+ return /* @__PURE__ */ jsxs19("div", { className: cn("relative", className), ref: containerRef, children: [
4246
+ /* @__PURE__ */ jsxs19(PopoverPrimitive.Root, { open: dropdownVisible, onOpenChange: handleOpenChange, modal: false, children: [
4247
+ /* @__PURE__ */ jsx22(PopoverPrimitive.Anchor, { asChild: true, children: /* @__PURE__ */ jsxs19(
4157
4248
  "div",
4158
4249
  {
4159
4250
  className: cn(
@@ -4166,9 +4257,9 @@ function SearchInput({
4166
4257
  setIsOpen(true);
4167
4258
  },
4168
4259
  children: [
4169
- /* @__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, {}) }),
4170
- /* @__PURE__ */ jsxs18("div", { ref: middleRef, className: "flex-1 flex items-center gap-2 min-w-0 overflow-hidden", children: [
4171
- visibleChips.map((chip) => /* @__PURE__ */ jsx20(
4260
+ /* @__PURE__ */ jsx22("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__ */ jsx22(SearchIcon, {}) }),
4261
+ /* @__PURE__ */ jsxs19("div", { ref: middleRef, className: "flex-1 flex items-center gap-2 min-w-0 overflow-hidden", children: [
4262
+ visibleChips.map((chip) => /* @__PURE__ */ jsx22(
4172
4263
  Tag,
4173
4264
  {
4174
4265
  variant: chipVariantToTagVariant(chip.variant),
@@ -4178,7 +4269,7 @@ function SearchInput({
4178
4269
  },
4179
4270
  chip.id
4180
4271
  )),
4181
- hiddenCount > 0 && /* @__PURE__ */ jsx20("div", { ref: hiddenTagsRef, className: "shrink-0", children: /* @__PURE__ */ jsx20(
4272
+ hiddenCount > 0 && /* @__PURE__ */ jsx22("div", { ref: hiddenTagsRef, className: "shrink-0", children: /* @__PURE__ */ jsx22(
4182
4273
  "button",
4183
4274
  {
4184
4275
  ref: badgeRef,
@@ -4197,7 +4288,7 @@ function SearchInput({
4197
4288
  children: getLimitTagsText(hiddenCount)
4198
4289
  }
4199
4290
  ) }),
4200
- /* @__PURE__ */ jsx20(
4291
+ /* @__PURE__ */ jsx22(
4201
4292
  "input",
4202
4293
  {
4203
4294
  ref: inputRef,
@@ -4214,15 +4305,15 @@ function SearchInput({
4214
4305
  }
4215
4306
  )
4216
4307
  ] }),
4217
- /* @__PURE__ */ jsxs18("div", { className: "flex items-center gap-1 shrink-0 ml-auto", children: [
4218
- hasValue && /* @__PURE__ */ jsx20(
4308
+ /* @__PURE__ */ jsxs19("div", { className: "flex items-center gap-1 shrink-0 ml-auto", children: [
4309
+ hasValue && /* @__PURE__ */ jsx22(
4219
4310
  "button",
4220
4311
  {
4221
4312
  type: "button",
4222
4313
  onClick: handleClear,
4223
4314
  className: "flex items-center justify-center hover:opacity-70 transition-opacity",
4224
4315
  "aria-label": "Clear search",
4225
- children: /* @__PURE__ */ jsx20(XmarkCircleIcon, { className: "text-ods-text-secondary", size: 24 })
4316
+ children: /* @__PURE__ */ jsx22(XmarkCircleIcon, { className: "text-ods-text-secondary", size: 24 })
4226
4317
  }
4227
4318
  ),
4228
4319
  endAdornment
@@ -4230,7 +4321,7 @@ function SearchInput({
4230
4321
  ]
4231
4322
  }
4232
4323
  ) }),
4233
- /* @__PURE__ */ jsx20(
4324
+ /* @__PURE__ */ jsx22(
4234
4325
  PopoverPrimitive.Content,
4235
4326
  {
4236
4327
  className: cn(
@@ -4253,14 +4344,14 @@ function SearchInput({
4253
4344
  e.preventDefault();
4254
4345
  }
4255
4346
  },
4256
- children: /* @__PURE__ */ jsxs18(ScrollAreaPrimitive.Root, { className: "overflow-hidden", children: [
4257
- /* @__PURE__ */ jsx20(ScrollAreaPrimitive.Viewport, { className: "max-h-[320px] w-full", children: /* @__PURE__ */ jsx20("div", { role: "listbox", children: renderDropdownContent() }) }),
4258
- /* @__PURE__ */ jsx20(ScrollAreaPrimitive.Scrollbar, { className: "hidden", orientation: "vertical", children: /* @__PURE__ */ jsx20(ScrollAreaPrimitive.Thumb, {}) })
4347
+ children: /* @__PURE__ */ jsxs19(ScrollAreaPrimitive.Root, { className: "overflow-hidden", children: [
4348
+ /* @__PURE__ */ jsx22(ScrollAreaPrimitive.Viewport, { className: "max-h-[320px] w-full", children: /* @__PURE__ */ jsx22("div", { role: "listbox", children: renderDropdownContent() }) }),
4349
+ /* @__PURE__ */ jsx22(ScrollAreaPrimitive.Scrollbar, { className: "hidden", orientation: "vertical", children: /* @__PURE__ */ jsx22(ScrollAreaPrimitive.Thumb, {}) })
4259
4350
  ] })
4260
4351
  }
4261
4352
  )
4262
4353
  ] }),
4263
- showHiddenTags && hiddenCount > 0 && /* @__PURE__ */ jsx20(
4354
+ showHiddenTags && hiddenCount > 0 && /* @__PURE__ */ jsx22(
4264
4355
  HiddenTagsPopup,
4265
4356
  {
4266
4357
  ref: hiddenTagsPopupRef,
@@ -4274,7 +4365,7 @@ function SearchInput({
4274
4365
  }
4275
4366
  }
4276
4367
  ),
4277
- /* @__PURE__ */ jsx20(
4368
+ /* @__PURE__ */ jsx22(
4278
4369
  "span",
4279
4370
  {
4280
4371
  ref: textMeasureRef,
@@ -4283,13 +4374,13 @@ function SearchInput({
4283
4374
  children: currentPlaceholder
4284
4375
  }
4285
4376
  ),
4286
- /* @__PURE__ */ jsx20(
4377
+ /* @__PURE__ */ jsx22(
4287
4378
  "div",
4288
4379
  {
4289
4380
  ref: measureRef,
4290
4381
  "aria-hidden": "true",
4291
4382
  className: "fixed -left-[9999px] top-0 flex gap-2 pointer-events-none",
4292
- children: filterChips.map((chip) => /* @__PURE__ */ jsx20(
4383
+ children: filterChips.map((chip) => /* @__PURE__ */ jsx22(
4293
4384
  Tag,
4294
4385
  {
4295
4386
  variant: chipVariantToTagVariant(chip.variant),
@@ -4308,7 +4399,7 @@ function SearchInput({
4308
4399
  // src/components/ui/filter-pill-row.tsx
4309
4400
  init_button();
4310
4401
  import { Filter } from "lucide-react";
4311
- import { jsx as jsx21, jsxs as jsxs19 } from "react/jsx-runtime";
4402
+ import { jsx as jsx23, jsxs as jsxs20 } from "react/jsx-runtime";
4312
4403
  function FilterPillRow({
4313
4404
  label,
4314
4405
  selectedValue,
@@ -4317,12 +4408,12 @@ function FilterPillRow({
4317
4408
  countLabel,
4318
4409
  children
4319
4410
  }) {
4320
- return /* @__PURE__ */ jsxs19("div", { className: "flex flex-wrap items-center gap-3 p-4 bg-ods-card border border-ods-border rounded-lg", children: [
4321
- /* @__PURE__ */ jsxs19("div", { className: "flex items-center gap-2", children: [
4322
- /* @__PURE__ */ jsx21(Filter, { className: "h-4 w-4 text-ods-accent" }),
4323
- /* @__PURE__ */ jsx21("span", { className: "text-h5 text-ods-text-secondary", children: label })
4411
+ return /* @__PURE__ */ jsxs20("div", { className: "flex flex-wrap items-center gap-3 p-4 bg-ods-card border border-ods-border rounded-lg", children: [
4412
+ /* @__PURE__ */ jsxs20("div", { className: "flex items-center gap-2", children: [
4413
+ /* @__PURE__ */ jsx23(Filter, { className: "h-4 w-4 text-ods-accent" }),
4414
+ /* @__PURE__ */ jsx23("span", { className: "text-h5 text-ods-text-secondary", children: label })
4324
4415
  ] }),
4325
- children || options.map((opt) => /* @__PURE__ */ jsx21(
4416
+ children || options.map((opt) => /* @__PURE__ */ jsx23(
4326
4417
  Button,
4327
4418
  {
4328
4419
  type: "button",
@@ -4334,7 +4425,7 @@ function FilterPillRow({
4334
4425
  },
4335
4426
  opt.value
4336
4427
  )),
4337
- countLabel && /* @__PURE__ */ jsx21("div", { className: "ml-auto text-[12px] font-['DM_Sans'] text-ods-text-secondary shrink-0", children: countLabel })
4428
+ countLabel && /* @__PURE__ */ jsx23("div", { className: "ml-auto text-[12px] font-['DM_Sans'] text-ods-text-secondary shrink-0", children: countLabel })
4338
4429
  ] });
4339
4430
  }
4340
4431
 
@@ -4353,6 +4444,8 @@ export {
4353
4444
  TabsList,
4354
4445
  TabsTrigger,
4355
4446
  TabsContent,
4447
+ statusBadgeVariants,
4448
+ StatusBadge,
4356
4449
  SimpleMarkdownRenderer,
4357
4450
  formatDate,
4358
4451
  formatNumber,
@@ -4468,6 +4561,8 @@ export {
4468
4561
  PageError,
4469
4562
  LoadError,
4470
4563
  NotFoundError,
4564
+ TAG_BADGE_CLASS,
4565
+ EntityTagBadges,
4471
4566
  MUX_STREAM_ORIGIN,
4472
4567
  MUX_IMAGE_ORIGIN,
4473
4568
  useVideoOriginPreconnect,
@@ -4476,4 +4571,4 @@ export {
4476
4571
  SearchInput,
4477
4572
  FilterPillRow
4478
4573
  };
4479
- //# sourceMappingURL=chunk-HTR3ARN6.js.map
4574
+ //# sourceMappingURL=chunk-ICOMPUMX.js.map