@flamingo-stack/openframe-frontend-core 0.0.272 → 0.0.273-snapshot.20260616084552

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 (74) hide show
  1. package/dist/{chunk-IXRPEMZP.cjs → chunk-2KHFSSFZ.cjs} +11 -11
  2. package/dist/{chunk-IXRPEMZP.cjs.map → chunk-2KHFSSFZ.cjs.map} +1 -1
  3. package/dist/{chunk-Q32JUFIK.cjs → chunk-4DYXV3E7.cjs} +508 -543
  4. package/dist/chunk-4DYXV3E7.cjs.map +1 -0
  5. package/dist/{chunk-MCCYGAPE.js → chunk-FLIWL6V4.js} +2 -2
  6. package/dist/{chunk-4SNHFZQT.js → chunk-GL5X6VVC.js} +2 -2
  7. package/dist/{chunk-VFMMVGA4.js → chunk-OPSZNW3I.js} +316 -351
  8. package/dist/chunk-OPSZNW3I.js.map +1 -0
  9. package/dist/{chunk-UQCB2CP7.js → chunk-VASNLWPZ.js} +2 -2
  10. package/dist/{chunk-EEMZBQ7O.cjs → chunk-W5KBDFCR.cjs} +25 -25
  11. package/dist/{chunk-EEMZBQ7O.cjs.map → chunk-W5KBDFCR.cjs.map} +1 -1
  12. package/dist/{chunk-V5OZQF4B.cjs → chunk-WU6PMH5L.cjs} +32 -32
  13. package/dist/{chunk-V5OZQF4B.cjs.map → chunk-WU6PMH5L.cjs.map} +1 -1
  14. package/dist/components/chat/index.cjs +2 -2
  15. package/dist/components/chat/index.js +1 -1
  16. package/dist/components/contact/index.cjs +3 -3
  17. package/dist/components/contact/index.js +2 -2
  18. package/dist/components/features/index.cjs +2 -2
  19. package/dist/components/features/index.js +1 -1
  20. package/dist/components/index.cjs +104 -82
  21. package/dist/components/index.cjs.map +1 -1
  22. package/dist/components/index.d.ts +1 -0
  23. package/dist/components/index.d.ts.map +1 -1
  24. package/dist/components/index.js +255 -233
  25. package/dist/components/index.js.map +1 -1
  26. package/dist/components/navigation/index.cjs +2 -2
  27. package/dist/components/navigation/index.js +1 -1
  28. package/dist/components/related-content/index.cjs +3 -3
  29. package/dist/components/related-content/index.js +2 -2
  30. package/dist/components/shared/media-gallery-strip.d.ts +26 -0
  31. package/dist/components/shared/media-gallery-strip.d.ts.map +1 -0
  32. package/dist/components/shared/product-release/release-detail-page.d.ts.map +1 -1
  33. package/dist/components/tickets/index.cjs +53 -53
  34. package/dist/components/tickets/index.js +3 -3
  35. package/dist/components/ui/data-table/data-table-body.d.ts +5 -1
  36. package/dist/components/ui/data-table/data-table-body.d.ts.map +1 -1
  37. package/dist/components/ui/data-table/data-table-empty.d.ts +10 -10
  38. package/dist/components/ui/data-table/data-table-empty.d.ts.map +1 -1
  39. package/dist/components/ui/index.cjs +2 -4
  40. package/dist/components/ui/index.cjs.map +1 -1
  41. package/dist/components/ui/index.js +1 -3
  42. package/dist/components/ui/no-data/no-data-actions.d.ts +11 -15
  43. package/dist/components/ui/no-data/no-data-actions.d.ts.map +1 -1
  44. package/dist/components/ui/no-data/no-data-styles.d.ts +0 -1
  45. package/dist/components/ui/no-data/no-data-styles.d.ts.map +1 -1
  46. package/dist/components/ui/no-data/no-data.d.ts.map +1 -1
  47. package/dist/components/ui/query-report-table/query-report-table.d.ts.map +1 -1
  48. package/dist/components/ui/table/table-empty-state.d.ts +1 -2
  49. package/dist/components/ui/table/table-empty-state.d.ts.map +1 -1
  50. package/dist/components/ui/table/table.d.ts.map +1 -1
  51. package/dist/index.cjs +2 -4
  52. package/dist/index.cjs.map +1 -1
  53. package/dist/index.js +1 -3
  54. package/package.json +1 -1
  55. package/src/components/hero-image-uploader.tsx +2 -2
  56. package/src/components/index.ts +5 -0
  57. package/src/components/shared/media-gallery-strip.tsx +93 -0
  58. package/src/components/shared/product-release/release-detail-page.tsx +3 -36
  59. package/src/components/ui/data-table/.data-table-empty.md +28 -24
  60. package/src/components/ui/data-table/data-table-body.tsx +13 -2
  61. package/src/components/ui/data-table/data-table-empty.tsx +18 -35
  62. package/src/components/ui/no-data/no-data-actions.tsx +20 -43
  63. package/src/components/ui/no-data/no-data-styles.ts +8 -18
  64. package/src/components/ui/no-data/no-data.tsx +7 -1
  65. package/src/components/ui/query-report-table/query-report-table.tsx +1 -1
  66. package/src/components/ui/table/table-empty-state.tsx +12 -37
  67. package/src/components/ui/table/table.tsx +1 -1
  68. package/src/stories/DataTable.stories.tsx +26 -2
  69. package/src/stories/EmptyState.stories.tsx +21 -34
  70. package/dist/chunk-Q32JUFIK.cjs.map +0 -1
  71. package/dist/chunk-VFMMVGA4.js.map +0 -1
  72. /package/dist/{chunk-MCCYGAPE.js.map → chunk-FLIWL6V4.js.map} +0 -0
  73. /package/dist/{chunk-4SNHFZQT.js.map → chunk-GL5X6VVC.js.map} +0 -0
  74. /package/dist/{chunk-UQCB2CP7.js.map → chunk-VASNLWPZ.js.map} +0 -0
@@ -7,7 +7,7 @@ import {
7
7
  import {
8
8
  GROUP_PAGE_SIZE,
9
9
  RelatedContentSection
10
- } from "../chunk-UQCB2CP7.js";
10
+ } from "../chunk-VASNLWPZ.js";
11
11
  import {
12
12
  DeliveryRow,
13
13
  DevCardRowContent,
@@ -19,7 +19,7 @@ import {
19
19
  UnifiedPagination,
20
20
  init_unified_pagination,
21
21
  unified_pagination_exports
22
- } from "../chunk-4SNHFZQT.js";
22
+ } from "../chunk-GL5X6VVC.js";
23
23
  import {
24
24
  ArticleAuthorByline,
25
25
  DetailPageSkeleton,
@@ -563,7 +563,6 @@ import {
563
563
  mergeHistoryWithRealtime,
564
564
  multiSelectFilterFn,
565
565
  navigationMenuTriggerStyle,
566
- noDataActionInteractiveClasses,
567
566
  noDataActionsVariants,
568
567
  noDataIconClasses,
569
568
  normalizeContent,
@@ -616,7 +615,7 @@ import {
616
615
  useThemeToggle,
617
616
  useUnifiedChat,
618
617
  usesCanonicalStatusStyle
619
- } from "../chunk-VFMMVGA4.js";
618
+ } from "../chunk-OPSZNW3I.js";
620
619
  import {
621
620
  CommandApprovalToast,
622
621
  ToastCard,
@@ -2703,14 +2702,14 @@ function HeroImageUploader({ imageUrl, onChange, uploadEndpoint, height = 300, o
2703
2702
  ] }) : /* @__PURE__ */ jsx17(
2704
2703
  "div",
2705
2704
  {
2706
- className: `w-full h-full border-2 border-dashed ${uploading ? "border-[#FFC008]" : "border-ods-border hover:border-[#FFC008]"} rounded-lg flex flex-col items-center justify-center cursor-pointer bg-[#1A1A1A]`,
2705
+ className: `w-full h-full border-2 border-dashed ${uploading ? "border-ods-accent" : "border-ods-border hover:border-ods-accent"} rounded-lg flex flex-col items-center justify-center cursor-pointer bg-ods-bg`,
2707
2706
  style: { height: heightStyle },
2708
2707
  onClick: openDialog,
2709
2708
  children: uploading ? /* @__PURE__ */ jsx17(Loader2, { className: "h-8 w-8 animate-spin text-ods-accent" }) : /* @__PURE__ */ jsxs12(Fragment4, { children: [
2710
2709
  /* @__PURE__ */ jsx17(ImageIcon2, { className: "h-12 w-12 text-ods-text-secondary" }),
2711
2710
  /* @__PURE__ */ jsx17("span", { className: "text-ods-text-primary font-['DM_Sans'] text-[16px] font-medium mt-2", children: "Upload cover image" }),
2712
2711
  /* @__PURE__ */ jsx17("span", { className: "text-ods-text-secondary font-['DM_Sans'] text-[14px] mt-1", children: "Click to upload or drag and drop" }),
2713
- /* @__PURE__ */ jsx17("span", { className: "text-[#666666] font-['DM_Sans'] text-[12px]", children: "PNG, JPEG, WebP, GIF up to 5MB" })
2712
+ /* @__PURE__ */ jsx17("span", { className: "text-ods-text-secondary font-['DM_Sans'] text-[12px]", children: "PNG, JPEG, WebP, GIF up to 5MB" })
2714
2713
  ] })
2715
2714
  }
2716
2715
  ),
@@ -5830,11 +5829,58 @@ function ProductReleasesView({
5830
5829
  // src/components/shared/product-release/release-detail-page.tsx
5831
5830
  init_next_link();
5832
5831
  init_next_navigation();
5833
- import { useState as useState7, useEffect as useEffect6 } from "react";
5834
- import { AlertTriangle, ExternalLink, BookMarked, Sparkles as Sparkles2, TrendingUp, Wrench } from "lucide-react";
5832
+ import { useState as useState8, useEffect as useEffect6 } from "react";
5833
+
5834
+ // src/components/shared/media-gallery-strip.tsx
5835
+ import { useState as useState7 } from "react";
5835
5836
  import { Fragment as Fragment10, jsx as jsx52, jsxs as jsxs42 } from "react/jsx-runtime";
5837
+ function isGalleryImage(mediaType) {
5838
+ return mediaType !== "video" && mediaType !== "demo";
5839
+ }
5840
+ function MediaGalleryStrip({ items, maxDisplay, className }) {
5841
+ const [galleryOpen, setGalleryOpen] = useState7(false);
5842
+ const [galleryIndex, setGalleryIndex] = useState7(0);
5843
+ if (!items || items.length === 0) return null;
5844
+ const display = typeof maxDisplay === "number" ? items.slice(0, Math.max(0, maxDisplay)) : items;
5845
+ const galleryImages = display.filter((m) => isGalleryImage(m.media_type)).map((m) => m.media_url);
5846
+ const tileClass = "shrink-0 w-[240px] h-[200px] rounded-md overflow-hidden border border-ods-border bg-black transition-opacity";
5847
+ return /* @__PURE__ */ jsxs42(Fragment10, { children: [
5848
+ /* @__PURE__ */ jsx52("div", { className: `flex gap-6 overflow-x-auto w-full ${className ?? ""}`, children: display.map((mediaItem, index) => {
5849
+ if (isGalleryImage(mediaItem.media_type)) {
5850
+ return /* @__PURE__ */ jsx52(
5851
+ "button",
5852
+ {
5853
+ type: "button",
5854
+ className: `${tileClass} cursor-pointer hover:opacity-80`,
5855
+ "aria-label": `Open ${mediaItem.title || `media ${index + 1}`} in gallery`,
5856
+ onClick: () => {
5857
+ setGalleryIndex(display.slice(0, index).filter((m) => isGalleryImage(m.media_type)).length);
5858
+ setGalleryOpen(true);
5859
+ },
5860
+ children: /* @__PURE__ */ jsx52("img", { src: mediaItem.media_url, alt: mediaItem.title || `Media ${index + 1}`, className: "w-full h-full object-cover" })
5861
+ },
5862
+ mediaItem.id || index
5863
+ );
5864
+ }
5865
+ return /* @__PURE__ */ jsx52("div", { className: tileClass, children: /* @__PURE__ */ jsx52(Video, { url: mediaItem.media_url, layout: "native" }) }, mediaItem.id || index);
5866
+ }) }),
5867
+ galleryImages.length > 0 && /* @__PURE__ */ jsx52(
5868
+ ImageGalleryModal,
5869
+ {
5870
+ images: galleryImages,
5871
+ isOpen: galleryOpen,
5872
+ onClose: () => setGalleryOpen(false),
5873
+ initialIndex: galleryIndex
5874
+ }
5875
+ )
5876
+ ] });
5877
+ }
5878
+
5879
+ // src/components/shared/product-release/release-detail-page.tsx
5880
+ import { AlertTriangle, ExternalLink, BookMarked, Sparkles as Sparkles2, TrendingUp, Wrench } from "lucide-react";
5881
+ import { Fragment as Fragment11, jsx as jsx53, jsxs as jsxs43 } from "react/jsx-runtime";
5836
5882
  function DefaultMarkdownRenderer({ content }) {
5837
- return /* @__PURE__ */ jsx52("div", { className: "whitespace-pre-wrap", children: content });
5883
+ return /* @__PURE__ */ jsx53("div", { className: "whitespace-pre-wrap", children: content });
5838
5884
  }
5839
5885
  function ReleaseDetailPage({
5840
5886
  authorHref,
@@ -5853,15 +5899,13 @@ function ReleaseDetailPage({
5853
5899
  const router = useRouter();
5854
5900
  const { data: fetchedRelease, error, isLoading } = useRelease(initialData ? void 0 : slug);
5855
5901
  const release = initialData || fetchedRelease;
5856
- const [galleryOpen, setGalleryOpen] = useState7(false);
5857
- const [galleryIndex, setGalleryIndex] = useState7(0);
5858
5902
  const showBackButton = backButton !== false;
5859
5903
  const backLabel = (backButton ? backButton.label : void 0) ?? "Back to home";
5860
5904
  const backHref = (backButton ? backButton.href : void 0) ?? "/";
5861
- const [roadmapTasks, setRoadmapTasks] = useState7([]);
5862
- const [deliveryData, setDeliveryData] = useState7(null);
5863
- const [roadmapLoading, setRoadmapLoading] = useState7(false);
5864
- const [deliveryLoading, setDeliveryLoading] = useState7(false);
5905
+ const [roadmapTasks, setRoadmapTasks] = useState8([]);
5906
+ const [deliveryData, setDeliveryData] = useState8(null);
5907
+ const [roadmapLoading, setRoadmapLoading] = useState8(false);
5908
+ const [deliveryLoading, setDeliveryLoading] = useState8(false);
5865
5909
  useEffect6(() => {
5866
5910
  async function fetchLinkedTasks() {
5867
5911
  if (!release) return;
@@ -5893,12 +5937,12 @@ function ReleaseDetailPage({
5893
5937
  fetchLinkedTasks();
5894
5938
  }, [release, RoadmapSection, DeliverySection, roadmapApiEndpoint, deliveryApiEndpoint]);
5895
5939
  if (!initialData && isLoading) {
5896
- return /* @__PURE__ */ jsx52(DetailPageSkeleton, { metadataColumns: 4, showImageGallery: true });
5940
+ return /* @__PURE__ */ jsx53(DetailPageSkeleton, { metadataColumns: 4, showImageGallery: true });
5897
5941
  }
5898
5942
  if (error || !release) {
5899
- return /* @__PURE__ */ jsxs42("div", { className: "text-center py-16", children: [
5900
- /* @__PURE__ */ jsx52("h1", { className: "text-4xl font-bold text-ods-text-primary mb-4", children: "Release Not Found" }),
5901
- /* @__PURE__ */ jsx52("p", { className: "text-xl text-ods-text-secondary", children: "The release you're looking for doesn't exist." })
5943
+ return /* @__PURE__ */ jsxs43("div", { className: "text-center py-16", children: [
5944
+ /* @__PURE__ */ jsx53("h1", { className: "text-4xl font-bold text-ods-text-primary mb-4", children: "Release Not Found" }),
5945
+ /* @__PURE__ */ jsx53("p", { className: "text-xl text-ods-text-secondary", children: "The release you're looking for doesn't exist." })
5902
5946
  ] });
5903
5947
  }
5904
5948
  const hasBreakingChanges = Array.isArray(release.breaking_changes) && release.breaking_changes.length > 0;
@@ -5924,8 +5968,8 @@ function ReleaseDetailPage({
5924
5968
  const featuresAdded = release.features_added;
5925
5969
  const bugFixed = release.bugs_fixed;
5926
5970
  const improvements = release.improvements;
5927
- return /* @__PURE__ */ jsxs42(PageShell, { children: [
5928
- showBackButton && /* @__PURE__ */ jsx52(
5971
+ return /* @__PURE__ */ jsxs43(PageShell, { children: [
5972
+ showBackButton && /* @__PURE__ */ jsx53(
5929
5973
  BackButton,
5930
5974
  {
5931
5975
  label: backLabel,
@@ -5933,29 +5977,29 @@ function ReleaseDetailPage({
5933
5977
  className: "hidden md:inline-flex mb-4"
5934
5978
  }
5935
5979
  ),
5936
- /* @__PURE__ */ jsxs42("div", { className: "space-y-6 md:space-y-8", children: [
5937
- /* @__PURE__ */ jsx52("div", { className: "flex flex-col md:flex-row md:items-end gap-4 w-full", children: /* @__PURE__ */ jsxs42("div", { className: "flex-1 flex flex-col gap-2", children: [
5938
- /* @__PURE__ */ jsx52("h1", { className: "text-h1 tracking-[-1.12px] text-ods-text-primary", children: releaseTitle }),
5939
- /* @__PURE__ */ jsxs42("p", { className: "text-h4 text-ods-text-secondary", children: [
5980
+ /* @__PURE__ */ jsxs43("div", { className: "space-y-6 md:space-y-8", children: [
5981
+ /* @__PURE__ */ jsx53("div", { className: "flex flex-col md:flex-row md:items-end gap-4 w-full", children: /* @__PURE__ */ jsxs43("div", { className: "flex-1 flex flex-col gap-2", children: [
5982
+ /* @__PURE__ */ jsx53("h1", { className: "text-h1 tracking-[-1.12px] text-ods-text-primary", children: releaseTitle }),
5983
+ /* @__PURE__ */ jsxs43("p", { className: "text-h4 text-ods-text-secondary", children: [
5940
5984
  "Version: ",
5941
5985
  releaseVersion
5942
5986
  ] })
5943
5987
  ] }) }),
5944
- /* @__PURE__ */ jsx52(EntityTagBadges, { tags: release.product_release_tags }),
5945
- /* @__PURE__ */ jsxs42("div", { className: "grid grid-cols-1 md:grid-cols-4 border border-ods-border rounded-md overflow-hidden w-full", children: [
5946
- /* @__PURE__ */ jsx52("div", { className: "bg-ods-card border-b md:border-b-0 md:border-r border-ods-border p-4 flex flex-col gap-3", children: /* @__PURE__ */ jsxs42("div", { className: "flex flex-col gap-0", children: [
5947
- /* @__PURE__ */ jsx52("p", { className: "text-h4 text-ods-text-primary", children: releaseType.toLocaleUpperCase() }),
5948
- /* @__PURE__ */ jsx52("p", { className: "font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary", children: "Release Type" })
5988
+ /* @__PURE__ */ jsx53(EntityTagBadges, { tags: release.product_release_tags }),
5989
+ /* @__PURE__ */ jsxs43("div", { className: "grid grid-cols-1 md:grid-cols-4 border border-ods-border rounded-md overflow-hidden w-full", children: [
5990
+ /* @__PURE__ */ jsx53("div", { className: "bg-ods-card border-b md:border-b-0 md:border-r border-ods-border p-4 flex flex-col gap-3", children: /* @__PURE__ */ jsxs43("div", { className: "flex flex-col gap-0", children: [
5991
+ /* @__PURE__ */ jsx53("p", { className: "text-h4 text-ods-text-primary", children: releaseType.toLocaleUpperCase() }),
5992
+ /* @__PURE__ */ jsx53("p", { className: "font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary", children: "Release Type" })
5949
5993
  ] }) }),
5950
- /* @__PURE__ */ jsx52("div", { className: "bg-ods-card border-b md:border-b-0 md:border-r border-ods-border p-4 flex flex-col gap-3", children: /* @__PURE__ */ jsxs42("div", { className: "flex flex-col gap-0", children: [
5951
- /* @__PURE__ */ jsx52("p", { className: "text-h4 text-ods-text-primary", children: releaseStatus.toLocaleUpperCase() }),
5952
- /* @__PURE__ */ jsx52("p", { className: "font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary", children: "Release Status" })
5994
+ /* @__PURE__ */ jsx53("div", { className: "bg-ods-card border-b md:border-b-0 md:border-r border-ods-border p-4 flex flex-col gap-3", children: /* @__PURE__ */ jsxs43("div", { className: "flex flex-col gap-0", children: [
5995
+ /* @__PURE__ */ jsx53("p", { className: "text-h4 text-ods-text-primary", children: releaseStatus.toLocaleUpperCase() }),
5996
+ /* @__PURE__ */ jsx53("p", { className: "font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary", children: "Release Status" })
5953
5997
  ] }) }),
5954
- /* @__PURE__ */ jsx52("div", { className: "bg-ods-card border-b md:border-b-0 md:border-r border-ods-border p-4 flex flex-col gap-3", children: /* @__PURE__ */ jsxs42("div", { className: "flex flex-col gap-0", children: [
5955
- /* @__PURE__ */ jsx52("p", { className: "text-h4 text-ods-text-primary", children: formatReleaseDate(releaseDate) }),
5956
- /* @__PURE__ */ jsx52("p", { className: "font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary", children: "Release Date" })
5998
+ /* @__PURE__ */ jsx53("div", { className: "bg-ods-card border-b md:border-b-0 md:border-r border-ods-border p-4 flex flex-col gap-3", children: /* @__PURE__ */ jsxs43("div", { className: "flex flex-col gap-0", children: [
5999
+ /* @__PURE__ */ jsx53("p", { className: "text-h4 text-ods-text-primary", children: formatReleaseDate(releaseDate) }),
6000
+ /* @__PURE__ */ jsx53("p", { className: "font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary", children: "Release Date" })
5957
6001
  ] }) }),
5958
- /* @__PURE__ */ jsx52(
6002
+ /* @__PURE__ */ jsx53(
5959
6003
  EntityMetadataAuthorCell,
5960
6004
  {
5961
6005
  author: author ?? { full_name: null, avatar_url: null },
@@ -5963,22 +6007,9 @@ function ReleaseDetailPage({
5963
6007
  }
5964
6008
  )
5965
6009
  ] }),
5966
- releaseMedia && releaseMedia.length > 0 && /* @__PURE__ */ jsx52("div", { className: "flex gap-6 overflow-x-auto w-full", children: releaseMedia.slice(0, 5).map((mediaItem, index) => /* @__PURE__ */ jsx52(
5967
- "div",
5968
- {
5969
- className: "shrink-0 w-[240px] h-[200px] rounded-md overflow-hidden border border-ods-border bg-black cursor-pointer hover:opacity-80 transition-opacity",
5970
- onClick: () => {
5971
- if (mediaItem.media_type !== "video" && mediaItem.media_type !== "demo") {
5972
- setGalleryIndex(index);
5973
- setGalleryOpen(true);
5974
- }
5975
- },
5976
- children: mediaItem.media_type === "video" || mediaItem.media_type === "demo" ? /* @__PURE__ */ jsx52(Video, { url: mediaItem.media_url, layout: "native" }) : /* @__PURE__ */ jsx52("img", { src: mediaItem.media_url, alt: mediaItem.title || `Media ${index + 1}`, className: "w-full h-full object-cover" })
5977
- },
5978
- mediaItem.id || index
5979
- )) }),
5980
- releaseSummary && /* @__PURE__ */ jsx52("div", { className: "text-h4 text-ods-text-primary", children: /* @__PURE__ */ jsx52("p", { children: releaseSummary }) }),
5981
- VideoDisplaySection ? /* @__PURE__ */ jsx52(
6010
+ /* @__PURE__ */ jsx53(MediaGalleryStrip, { items: releaseMedia ?? [], maxDisplay: 5 }),
6011
+ releaseSummary && /* @__PURE__ */ jsx53("div", { className: "text-h4 text-ods-text-primary", children: /* @__PURE__ */ jsx53("p", { children: releaseSummary }) }),
6012
+ VideoDisplaySection ? /* @__PURE__ */ jsx53(
5982
6013
  VideoDisplaySection,
5983
6014
  {
5984
6015
  mainVideoUrl,
@@ -5992,8 +6023,8 @@ function ReleaseDetailPage({
5992
6023
  srtContent: release?.srt_content,
5993
6024
  captionsUrl: release?.captionsUrl
5994
6025
  }
5995
- ) : /* @__PURE__ */ jsxs42(Fragment10, { children: [
5996
- youtubeUrl && /* @__PURE__ */ jsx52(
6026
+ ) : /* @__PURE__ */ jsxs43(Fragment11, { children: [
6027
+ youtubeUrl && /* @__PURE__ */ jsx53(
5997
6028
  Video,
5998
6029
  {
5999
6030
  kind: "youtube",
@@ -6002,7 +6033,7 @@ function ReleaseDetailPage({
6002
6033
  layout: "native"
6003
6034
  }
6004
6035
  ),
6005
- !youtubeUrl && mainVideoUrl && /* @__PURE__ */ jsx52(
6036
+ !youtubeUrl && mainVideoUrl && /* @__PURE__ */ jsx53(
6006
6037
  Video,
6007
6038
  {
6008
6039
  url: mainVideoUrl,
@@ -6011,7 +6042,7 @@ function ReleaseDetailPage({
6011
6042
  layout: "centered"
6012
6043
  }
6013
6044
  ),
6014
- highlightVideoUrl && /* @__PURE__ */ jsx52(
6045
+ highlightVideoUrl && /* @__PURE__ */ jsx53(
6015
6046
  Video,
6016
6047
  {
6017
6048
  url: highlightVideoUrl,
@@ -6020,56 +6051,56 @@ function ReleaseDetailPage({
6020
6051
  }
6021
6052
  )
6022
6053
  ] }),
6023
- releaseContent && /* @__PURE__ */ jsx52("div", { className: "text-h4 text-ods-text-primary", children: /* @__PURE__ */ jsx52(MarkdownRenderer, { content: releaseContent }) }),
6024
- hasBreakingChanges && /* @__PURE__ */ jsx52(Card, { className: "border-red-500 bg-red-500/10", children: /* @__PURE__ */ jsx52(CardContent, { className: "p-6", children: /* @__PURE__ */ jsxs42("div", { className: "flex items-center gap-3", children: [
6025
- /* @__PURE__ */ jsx52(AlertTriangle, { className: "h-6 w-6 text-red-500" }),
6026
- /* @__PURE__ */ jsxs42("div", { children: [
6027
- /* @__PURE__ */ jsx52("h3", { className: "font-bold text-red-500 text-lg", children: "Breaking Changes" }),
6028
- /* @__PURE__ */ jsx52("p", { className: "text-ods-text-secondary", children: "This release contains breaking changes. Review carefully before upgrading." })
6054
+ releaseContent && /* @__PURE__ */ jsx53("div", { className: "text-h4 text-ods-text-primary", children: /* @__PURE__ */ jsx53(MarkdownRenderer, { content: releaseContent }) }),
6055
+ hasBreakingChanges && /* @__PURE__ */ jsx53(Card, { className: "border-red-500 bg-red-500/10", children: /* @__PURE__ */ jsx53(CardContent, { className: "p-6", children: /* @__PURE__ */ jsxs43("div", { className: "flex items-center gap-3", children: [
6056
+ /* @__PURE__ */ jsx53(AlertTriangle, { className: "h-6 w-6 text-red-500" }),
6057
+ /* @__PURE__ */ jsxs43("div", { children: [
6058
+ /* @__PURE__ */ jsx53("h3", { className: "font-bold text-red-500 text-lg", children: "Breaking Changes" }),
6059
+ /* @__PURE__ */ jsx53("p", { className: "text-ods-text-secondary", children: "This release contains breaking changes. Review carefully before upgrading." })
6029
6060
  ] })
6030
6061
  ] }) }) }),
6031
- /* @__PURE__ */ jsx52(
6062
+ /* @__PURE__ */ jsx53(
6032
6063
  ReleaseChangelogSection,
6033
6064
  {
6034
6065
  title: "Breaking Changes",
6035
6066
  entries: breakingChanges || [],
6036
6067
  isBreaking: true,
6037
6068
  hideTitle: true,
6038
- icon: /* @__PURE__ */ jsx52(AlertTriangle, { className: "h-6 w-6" }),
6069
+ icon: /* @__PURE__ */ jsx53(AlertTriangle, { className: "h-6 w-6" }),
6039
6070
  SimpleMarkdownRenderer: MarkdownRenderer
6040
6071
  }
6041
6072
  ),
6042
- /* @__PURE__ */ jsx52(
6073
+ /* @__PURE__ */ jsx53(
6043
6074
  ReleaseChangelogSection,
6044
6075
  {
6045
6076
  title: "Features Added",
6046
6077
  entries: featuresAdded || [],
6047
- icon: /* @__PURE__ */ jsx52(Sparkles2, { className: "h-6 w-6" }),
6078
+ icon: /* @__PURE__ */ jsx53(Sparkles2, { className: "h-6 w-6" }),
6048
6079
  previewFirst: true,
6049
6080
  SimpleMarkdownRenderer: MarkdownRenderer
6050
6081
  }
6051
6082
  ),
6052
- /* @__PURE__ */ jsx52(
6083
+ /* @__PURE__ */ jsx53(
6053
6084
  ReleaseChangelogSection,
6054
6085
  {
6055
6086
  title: "Bugs Fixed",
6056
6087
  entries: bugFixed || [],
6057
- icon: /* @__PURE__ */ jsx52(Wrench, { className: "h-6 w-6" }),
6088
+ icon: /* @__PURE__ */ jsx53(Wrench, { className: "h-6 w-6" }),
6058
6089
  previewFirst: true,
6059
6090
  SimpleMarkdownRenderer: MarkdownRenderer
6060
6091
  }
6061
6092
  ),
6062
- /* @__PURE__ */ jsx52(
6093
+ /* @__PURE__ */ jsx53(
6063
6094
  ReleaseChangelogSection,
6064
6095
  {
6065
6096
  title: "Improvements",
6066
6097
  entries: improvements || [],
6067
- icon: /* @__PURE__ */ jsx52(TrendingUp, { className: "h-6 w-6" }),
6098
+ icon: /* @__PURE__ */ jsx53(TrendingUp, { className: "h-6 w-6" }),
6068
6099
  previewFirst: true,
6069
6100
  SimpleMarkdownRenderer: MarkdownRenderer
6070
6101
  }
6071
6102
  ),
6072
- !VideoDisplaySection && VideoSection && videoBites && videoBites.length > 0 && /* @__PURE__ */ jsx52(
6103
+ !VideoDisplaySection && VideoSection && videoBites && videoBites.length > 0 && /* @__PURE__ */ jsx53(
6073
6104
  VideoSection,
6074
6105
  {
6075
6106
  bites: videoBites,
@@ -6077,9 +6108,9 @@ function ReleaseDetailPage({
6077
6108
  filterPublished: true
6078
6109
  }
6079
6110
  ),
6080
- RoadmapSection && (roadmapLoading || roadmapTasks.length > 0) && /* @__PURE__ */ jsxs42("div", { className: "space-y-4 w-full", children: [
6081
- /* @__PURE__ */ jsx52("p", { className: "text-h5 tracking-[-0.28px] text-ods-text-secondary", children: "Related Roadmap Items" }),
6082
- /* @__PURE__ */ jsx52(
6111
+ RoadmapSection && (roadmapLoading || roadmapTasks.length > 0) && /* @__PURE__ */ jsxs43("div", { className: "space-y-4 w-full", children: [
6112
+ /* @__PURE__ */ jsx53("p", { className: "text-h5 tracking-[-0.28px] text-ods-text-secondary", children: "Related Roadmap Items" }),
6113
+ /* @__PURE__ */ jsx53(
6083
6114
  RoadmapSection,
6084
6115
  {
6085
6116
  items: roadmapTasks,
@@ -6094,9 +6125,9 @@ function ReleaseDetailPage({
6094
6125
  }
6095
6126
  )
6096
6127
  ] }),
6097
- DeliverySection && (deliveryLoading || deliveryData && (deliveryData.completed.length > 0 || deliveryData.inProgress.length > 0)) && /* @__PURE__ */ jsxs42("div", { className: "w-full space-y-4", children: [
6098
- /* @__PURE__ */ jsx52("p", { className: "text-h5 tracking-[-0.28px] text-ods-text-secondary", children: "Related Enhancements and Bug-fixes" }),
6099
- /* @__PURE__ */ jsx52(
6128
+ DeliverySection && (deliveryLoading || deliveryData && (deliveryData.completed.length > 0 || deliveryData.inProgress.length > 0)) && /* @__PURE__ */ jsxs43("div", { className: "w-full space-y-4", children: [
6129
+ /* @__PURE__ */ jsx53("p", { className: "text-h5 tracking-[-0.28px] text-ods-text-secondary", children: "Related Enhancements and Bug-fixes" }),
6130
+ /* @__PURE__ */ jsx53(
6100
6131
  DeliverySection,
6101
6132
  {
6102
6133
  data: deliveryData,
@@ -6104,13 +6135,13 @@ function ReleaseDetailPage({
6104
6135
  }
6105
6136
  )
6106
6137
  ] }),
6107
- (githubReleases?.length || knowledgeBaseLinks?.length || migrationGuideUrl || documentationUrl) && /* @__PURE__ */ jsxs42("div", { className: "space-y-1 w-full", children: [
6108
- /* @__PURE__ */ jsx52("p", { className: "text-h5 tracking-[-0.28px] text-ods-text-secondary", children: "Related Links" }),
6109
- /* @__PURE__ */ jsx52(Card, { className: "bg-ods-card border-ods-border p-6", children: /* @__PURE__ */ jsxs42("div", { className: "space-y-4", children: [
6110
- githubReleases && githubReleases.length > 0 && /* @__PURE__ */ jsx52(Fragment10, { children: githubReleases.map((ghRelease) => /* @__PURE__ */ jsxs42("div", { className: "flex items-start gap-1", children: [
6111
- /* @__PURE__ */ jsx52(GitHubIcon, { className: "shrink-0", width: 24, height: 24, color: "var(--color-text-secondary)" }),
6112
- /* @__PURE__ */ jsx52("span", { className: "text-h4 text-ods-text-primary", children: "Github Release" }),
6113
- /* @__PURE__ */ jsx52(
6138
+ (githubReleases?.length || knowledgeBaseLinks?.length || migrationGuideUrl || documentationUrl) && /* @__PURE__ */ jsxs43("div", { className: "space-y-1 w-full", children: [
6139
+ /* @__PURE__ */ jsx53("p", { className: "text-h5 tracking-[-0.28px] text-ods-text-secondary", children: "Related Links" }),
6140
+ /* @__PURE__ */ jsx53(Card, { className: "bg-ods-card border-ods-border p-6", children: /* @__PURE__ */ jsxs43("div", { className: "space-y-4", children: [
6141
+ githubReleases && githubReleases.length > 0 && /* @__PURE__ */ jsx53(Fragment11, { children: githubReleases.map((ghRelease) => /* @__PURE__ */ jsxs43("div", { className: "flex items-start gap-1", children: [
6142
+ /* @__PURE__ */ jsx53(GitHubIcon, { className: "shrink-0", width: 24, height: 24, color: "var(--color-text-secondary)" }),
6143
+ /* @__PURE__ */ jsx53("span", { className: "text-h4 text-ods-text-primary", children: "Github Release" }),
6144
+ /* @__PURE__ */ jsx53(
6114
6145
  "a",
6115
6146
  {
6116
6147
  href: ghRelease.github_release_url,
@@ -6120,15 +6151,15 @@ function ReleaseDetailPage({
6120
6151
  children: ghRelease.github_release_url.split("/").pop()
6121
6152
  }
6122
6153
  ),
6123
- /* @__PURE__ */ jsx52(ExternalLink, { className: "h-6 w-6 text-[#ffc008] shrink-0" })
6154
+ /* @__PURE__ */ jsx53(ExternalLink, { className: "h-6 w-6 text-[#ffc008] shrink-0" })
6124
6155
  ] }, ghRelease.id)) }),
6125
- knowledgeBaseLinks && knowledgeBaseLinks.length > 0 && /* @__PURE__ */ jsx52(Fragment10, { children: knowledgeBaseLinks.map((linkObj) => {
6156
+ knowledgeBaseLinks && knowledgeBaseLinks.length > 0 && /* @__PURE__ */ jsx53(Fragment11, { children: knowledgeBaseLinks.map((linkObj) => {
6126
6157
  const path = typeof linkObj === "string" ? linkObj : linkObj.kb_article_path;
6127
6158
  const linkId = typeof linkObj === "string" ? path : linkObj.id || path;
6128
- return /* @__PURE__ */ jsxs42("div", { className: "flex items-start gap-1", children: [
6129
- /* @__PURE__ */ jsx52(BookMarked, { className: "h-6 w-6 text-ods-text-secondary shrink-0" }),
6130
- /* @__PURE__ */ jsx52("span", { className: "text-h4 text-ods-text-primary", children: "Knowledge Base" }),
6131
- /* @__PURE__ */ jsx52(
6159
+ return /* @__PURE__ */ jsxs43("div", { className: "flex items-start gap-1", children: [
6160
+ /* @__PURE__ */ jsx53(BookMarked, { className: "h-6 w-6 text-ods-text-secondary shrink-0" }),
6161
+ /* @__PURE__ */ jsx53("span", { className: "text-h4 text-ods-text-primary", children: "Knowledge Base" }),
6162
+ /* @__PURE__ */ jsx53(
6132
6163
  next_link_default,
6133
6164
  {
6134
6165
  href: path.startsWith("http") ? path : `/knowledge-base${path.startsWith("/") ? "" : "/"}${path}`,
@@ -6136,12 +6167,12 @@ function ReleaseDetailPage({
6136
6167
  children: path.replace(/^\//, "").split("/").pop()?.replace(/-/g, " ") || "View Article"
6137
6168
  }
6138
6169
  ),
6139
- /* @__PURE__ */ jsx52(ExternalLink, { className: "h-6 w-6 text-[#ffc008] shrink-0" })
6170
+ /* @__PURE__ */ jsx53(ExternalLink, { className: "h-6 w-6 text-[#ffc008] shrink-0" })
6140
6171
  ] }, linkId);
6141
6172
  }) }),
6142
- migrationGuideUrl && /* @__PURE__ */ jsxs42("div", { className: "flex items-start gap-1", children: [
6143
- /* @__PURE__ */ jsx52(BookMarked, { className: "h-6 w-6 text-ods-text-secondary shrink-0" }),
6144
- /* @__PURE__ */ jsx52(
6173
+ migrationGuideUrl && /* @__PURE__ */ jsxs43("div", { className: "flex items-start gap-1", children: [
6174
+ /* @__PURE__ */ jsx53(BookMarked, { className: "h-6 w-6 text-ods-text-secondary shrink-0" }),
6175
+ /* @__PURE__ */ jsx53(
6145
6176
  "a",
6146
6177
  {
6147
6178
  href: migrationGuideUrl,
@@ -6151,11 +6182,11 @@ function ReleaseDetailPage({
6151
6182
  children: "\u{1F4D6} Migration Guide"
6152
6183
  }
6153
6184
  ),
6154
- /* @__PURE__ */ jsx52(ExternalLink, { className: "h-6 w-6 text-[#ffc008] shrink-0" })
6185
+ /* @__PURE__ */ jsx53(ExternalLink, { className: "h-6 w-6 text-[#ffc008] shrink-0" })
6155
6186
  ] }),
6156
- documentationUrl && /* @__PURE__ */ jsxs42("div", { className: "flex items-start gap-1", children: [
6157
- /* @__PURE__ */ jsx52(BookMarked, { className: "h-6 w-6 text-ods-text-secondary shrink-0" }),
6158
- /* @__PURE__ */ jsx52(
6187
+ documentationUrl && /* @__PURE__ */ jsxs43("div", { className: "flex items-start gap-1", children: [
6188
+ /* @__PURE__ */ jsx53(BookMarked, { className: "h-6 w-6 text-ods-text-secondary shrink-0" }),
6189
+ /* @__PURE__ */ jsx53(
6159
6190
  "a",
6160
6191
  {
6161
6192
  href: documentationUrl,
@@ -6165,41 +6196,32 @@ function ReleaseDetailPage({
6165
6196
  children: "\u{1F4DA} Documentation"
6166
6197
  }
6167
6198
  ),
6168
- /* @__PURE__ */ jsx52(ExternalLink, { className: "h-6 w-6 text-[#ffc008] shrink-0" })
6199
+ /* @__PURE__ */ jsx53(ExternalLink, { className: "h-6 w-6 text-[#ffc008] shrink-0" })
6169
6200
  ] })
6170
6201
  ] }) })
6171
6202
  ] })
6172
- ] }),
6173
- releaseMedia && releaseMedia.filter((m) => m.media_type !== "video" && m.media_type !== "demo").length > 0 && /* @__PURE__ */ jsx52(
6174
- ImageGalleryModal,
6175
- {
6176
- images: releaseMedia.filter((m) => m.media_type !== "video" && m.media_type !== "demo").map((m) => m.media_url),
6177
- isOpen: galleryOpen,
6178
- onClose: () => setGalleryOpen(false),
6179
- initialIndex: galleryIndex
6180
- }
6181
- )
6203
+ ] })
6182
6204
  ] });
6183
6205
  }
6184
6206
 
6185
6207
  // src/components/shared/product-release/release-detail-skeleton.tsx
6186
- import { jsx as jsx53 } from "react/jsx-runtime";
6208
+ import { jsx as jsx54 } from "react/jsx-runtime";
6187
6209
  function ReleaseDetailSkeleton() {
6188
- return /* @__PURE__ */ jsx53(DetailPageSkeleton, { metadataColumns: 4, showImageGallery: true });
6210
+ return /* @__PURE__ */ jsx54(DetailPageSkeleton, { metadataColumns: 4, showImageGallery: true });
6189
6211
  }
6190
6212
 
6191
6213
  // src/components/shared/roadmap/roadmap-grid.tsx
6192
- import { useEffect as useEffect8, useRef as useRef5, useState as useState9 } from "react";
6214
+ import { useEffect as useEffect8, useRef as useRef5, useState as useState10 } from "react";
6193
6215
 
6194
6216
  // src/components/shared/roadmap/use-roadmap-voting.ts
6195
- import { useState as useState8, useEffect as useEffect7, useCallback as useCallback4 } from "react";
6217
+ import { useState as useState9, useEffect as useEffect7, useCallback as useCallback4 } from "react";
6196
6218
  var DEFAULT_VOTE_ENDPOINT = "/api/roadmap/vote";
6197
6219
  var DEFAULT_STORAGE_KEY = "roadmap_votes_v1";
6198
6220
  function useRoadmapVoting(options = {}) {
6199
6221
  const voteApiEndpoint = options.voteApiEndpoint ?? DEFAULT_VOTE_ENDPOINT;
6200
6222
  const storageKey = options.storageKey ?? DEFAULT_STORAGE_KEY;
6201
- const [votes, setVotes] = useState8({});
6202
- const [isLoading, setIsLoading] = useState8(true);
6223
+ const [votes, setVotes] = useState9({});
6224
+ const [isLoading, setIsLoading] = useState9(true);
6203
6225
  useEffect7(() => {
6204
6226
  setIsLoading(true);
6205
6227
  setVotes({});
@@ -6292,7 +6314,7 @@ function useRoadmapVoting(options = {}) {
6292
6314
 
6293
6315
  // src/components/shared/roadmap/roadmap-grid.tsx
6294
6316
  init_cn();
6295
- import { jsx as jsx54, jsxs as jsxs43 } from "react/jsx-runtime";
6317
+ import { jsx as jsx55, jsxs as jsxs44 } from "react/jsx-runtime";
6296
6318
  var DEFAULT_BUILD_REFRESH_URL = (taskId) => `/api/roadmap/${taskId}`;
6297
6319
  var BACKLOG = "Backlog";
6298
6320
  function getStatusPriority(status) {
@@ -6341,7 +6363,7 @@ function RoadmapGridSingle({
6341
6363
  onVote,
6342
6364
  votingTasks
6343
6365
  }) {
6344
- return /* @__PURE__ */ jsx54("div", { className: `grid grid-cols-1 md:grid-cols-2 gap-6 ${showLeftMargin ? "md:ml-[120px]" : ""}`, children: items.map((item) => /* @__PURE__ */ jsx54(
6366
+ return /* @__PURE__ */ jsx55("div", { className: `grid grid-cols-1 md:grid-cols-2 gap-6 ${showLeftMargin ? "md:ml-[120px]" : ""}`, children: items.map((item) => /* @__PURE__ */ jsx55(
6345
6367
  RoadmapCard,
6346
6368
  {
6347
6369
  item,
@@ -6363,7 +6385,7 @@ function RoadmapGrid({
6363
6385
  quartersToKeepClosed = 2
6364
6386
  }) {
6365
6387
  const { getVote, toggleVote } = useRoadmapVoting(votingOptions);
6366
- const [votingTasks, setVotingTasks] = useState9(/* @__PURE__ */ new Set());
6388
+ const [votingTasks, setVotingTasks] = useState10(/* @__PURE__ */ new Set());
6367
6389
  const handleVote = async (taskId, voteType) => {
6368
6390
  if (votingTasks.has(taskId)) return;
6369
6391
  setVotingTasks((prev) => new Set(prev).add(taskId));
@@ -6400,8 +6422,8 @@ function RoadmapGrid({
6400
6422
  return compareQuarters(aD, bD);
6401
6423
  });
6402
6424
  const sortedQuartersKey = sortedQuarters.join(",");
6403
- const [expandedQuarters, setExpandedQuarters] = useState9([]);
6404
- const [isInitialized, setIsInitialized] = useState9(false);
6425
+ const [expandedQuarters, setExpandedQuarters] = useState10([]);
6426
+ const [isInitialized, setIsInitialized] = useState10(false);
6405
6427
  const hasSetInitialState = useRef5(false);
6406
6428
  const prevItemsLength = useRef5(0);
6407
6429
  useEffect8(() => {
@@ -6422,7 +6444,7 @@ function RoadmapGrid({
6422
6444
  );
6423
6445
  }, [hasActiveFilters, sortedQuartersKey, isInitialized, quartersToKeepClosed]);
6424
6446
  if (items.length === 0) {
6425
- return /* @__PURE__ */ jsx54(
6447
+ return /* @__PURE__ */ jsx55(
6426
6448
  EmptyState,
6427
6449
  {
6428
6450
  type: "generic",
@@ -6432,7 +6454,7 @@ function RoadmapGrid({
6432
6454
  );
6433
6455
  }
6434
6456
  if (!groupByQuarter) {
6435
- return /* @__PURE__ */ jsx54(
6457
+ return /* @__PURE__ */ jsx55(
6436
6458
  RoadmapGridSingle,
6437
6459
  {
6438
6460
  items,
@@ -6443,7 +6465,7 @@ function RoadmapGrid({
6443
6465
  }
6444
6466
  );
6445
6467
  }
6446
- return /* @__PURE__ */ jsx54(
6468
+ return /* @__PURE__ */ jsx55(
6447
6469
  Accordion,
6448
6470
  {
6449
6471
  type: "multiple",
@@ -6453,15 +6475,15 @@ function RoadmapGrid({
6453
6475
  children: sortedQuarters.map((quarter) => {
6454
6476
  const itemCount = itemsByQuarter[quarter]?.length || 0;
6455
6477
  const isExpanded = expandedQuarters.includes(quarter);
6456
- return /* @__PURE__ */ jsxs43(
6478
+ return /* @__PURE__ */ jsxs44(
6457
6479
  AccordionItem,
6458
6480
  {
6459
6481
  value: quarter,
6460
6482
  id: `quarter-${quarter.replace(/\s+/g, "-").toLowerCase()}`,
6461
6483
  className: "border-0",
6462
6484
  children: [
6463
- /* @__PURE__ */ jsx54(AccordionTrigger, { className: "w-full p-0 hover:no-underline [&>svg]:h-5 [&>svg]:w-5 [&>svg]:text-ods-text-secondary [&>svg]:ml-auto [&>svg]:shrink-0", children: /* @__PURE__ */ jsxs43("div", { className: "flex items-center gap-3", children: [
6464
- /* @__PURE__ */ jsxs43(
6485
+ /* @__PURE__ */ jsx55(AccordionTrigger, { className: "w-full p-0 hover:no-underline [&>svg]:h-5 [&>svg]:w-5 [&>svg]:text-ods-text-secondary [&>svg]:ml-auto [&>svg]:shrink-0", children: /* @__PURE__ */ jsxs44("div", { className: "flex items-center gap-3", children: [
6486
+ /* @__PURE__ */ jsxs44(
6465
6487
  "h3",
6466
6488
  {
6467
6489
  className: cn(
@@ -6470,11 +6492,11 @@ function RoadmapGrid({
6470
6492
  ),
6471
6493
  children: [
6472
6494
  quarter,
6473
- /* @__PURE__ */ jsx54("span", { className: "text-ods-accent", children: ":" })
6495
+ /* @__PURE__ */ jsx55("span", { className: "text-ods-accent", children: ":" })
6474
6496
  ]
6475
6497
  }
6476
6498
  ),
6477
- /* @__PURE__ */ jsxs43(
6499
+ /* @__PURE__ */ jsxs44(
6478
6500
  "span",
6479
6501
  {
6480
6502
  className: cn(
@@ -6485,12 +6507,12 @@ function RoadmapGrid({
6485
6507
  itemCount,
6486
6508
  " ",
6487
6509
  itemCount === 1 ? "item" : "items",
6488
- isInitialized && !isExpanded && /* @__PURE__ */ jsx54("span", { className: "ml-2 text-ods-accent", children: "Click to expand" })
6510
+ isInitialized && !isExpanded && /* @__PURE__ */ jsx55("span", { className: "ml-2 text-ods-accent", children: "Click to expand" })
6489
6511
  ]
6490
6512
  }
6491
6513
  )
6492
6514
  ] }) }),
6493
- /* @__PURE__ */ jsx54(AccordionContent, { className: "pt-4 pb-0 overflow-hidden data-[state=closed]:animate-none data-[state=open]:animate-none", children: /* @__PURE__ */ jsx54(
6515
+ /* @__PURE__ */ jsx55(AccordionContent, { className: "pt-4 pb-0 overflow-hidden data-[state=closed]:animate-none data-[state=open]:animate-none", children: /* @__PURE__ */ jsx55(
6494
6516
  RoadmapGridSingle,
6495
6517
  {
6496
6518
  items: itemsByQuarter[quarter],
@@ -6510,36 +6532,36 @@ function RoadmapGrid({
6510
6532
  }
6511
6533
 
6512
6534
  // src/components/shared/roadmap/roadmap-grid-skeleton.tsx
6513
- import { jsx as jsx55, jsxs as jsxs44 } from "react/jsx-runtime";
6535
+ import { jsx as jsx56, jsxs as jsxs45 } from "react/jsx-runtime";
6514
6536
  function RoadmapCardSkeleton2() {
6515
- return /* @__PURE__ */ jsxs44("div", { className: "bg-ods-card border border-ods-border rounded-[6px] p-[24px] flex flex-col gap-[16px] min-h-[340px] relative", children: [
6516
- /* @__PURE__ */ jsx55("div", { className: "absolute top-[24px] right-[24px]", children: /* @__PURE__ */ jsx55("div", { className: "h-[20px] w-[80px] bg-ods-border rounded animate-pulse" }) }),
6517
- /* @__PURE__ */ jsxs44("div", { className: "flex items-center gap-[16px] pr-[120px]", children: [
6518
- /* @__PURE__ */ jsx55("div", { className: "w-[80px] h-[80px] bg-ods-border rounded-lg flex-shrink-0 animate-pulse" }),
6519
- /* @__PURE__ */ jsxs44("div", { className: "flex-1 min-w-0 flex flex-col gap-1", children: [
6520
- /* @__PURE__ */ jsx55("div", { className: "min-h-[48px] flex items-center", children: /* @__PURE__ */ jsx55("div", { className: "h-[24px] w-full bg-ods-border rounded animate-pulse" }) }),
6521
- /* @__PURE__ */ jsx55("div", { className: "min-h-[20px] flex items-center", children: /* @__PURE__ */ jsx55("div", { className: "h-[14px] w-1/2 bg-ods-border rounded animate-pulse" }) })
6537
+ return /* @__PURE__ */ jsxs45("div", { className: "bg-ods-card border border-ods-border rounded-[6px] p-[24px] flex flex-col gap-[16px] min-h-[340px] relative", children: [
6538
+ /* @__PURE__ */ jsx56("div", { className: "absolute top-[24px] right-[24px]", children: /* @__PURE__ */ jsx56("div", { className: "h-[20px] w-[80px] bg-ods-border rounded animate-pulse" }) }),
6539
+ /* @__PURE__ */ jsxs45("div", { className: "flex items-center gap-[16px] pr-[120px]", children: [
6540
+ /* @__PURE__ */ jsx56("div", { className: "w-[80px] h-[80px] bg-ods-border rounded-lg flex-shrink-0 animate-pulse" }),
6541
+ /* @__PURE__ */ jsxs45("div", { className: "flex-1 min-w-0 flex flex-col gap-1", children: [
6542
+ /* @__PURE__ */ jsx56("div", { className: "min-h-[48px] flex items-center", children: /* @__PURE__ */ jsx56("div", { className: "h-[24px] w-full bg-ods-border rounded animate-pulse" }) }),
6543
+ /* @__PURE__ */ jsx56("div", { className: "min-h-[20px] flex items-center", children: /* @__PURE__ */ jsx56("div", { className: "h-[14px] w-1/2 bg-ods-border rounded animate-pulse" }) })
6522
6544
  ] })
6523
6545
  ] }),
6524
- /* @__PURE__ */ jsx55("div", { className: "min-h-[72px] flex items-center", children: /* @__PURE__ */ jsxs44("div", { className: "w-full space-y-2", children: [
6525
- /* @__PURE__ */ jsx55("div", { className: "h-[24px] bg-ods-border rounded animate-pulse" }),
6526
- /* @__PURE__ */ jsx55("div", { className: "h-[24px] bg-ods-border rounded animate-pulse" }),
6527
- /* @__PURE__ */ jsx55("div", { className: "h-[24px] w-4/5 bg-ods-border rounded animate-pulse" })
6546
+ /* @__PURE__ */ jsx56("div", { className: "min-h-[72px] flex items-center", children: /* @__PURE__ */ jsxs45("div", { className: "w-full space-y-2", children: [
6547
+ /* @__PURE__ */ jsx56("div", { className: "h-[24px] bg-ods-border rounded animate-pulse" }),
6548
+ /* @__PURE__ */ jsx56("div", { className: "h-[24px] bg-ods-border rounded animate-pulse" }),
6549
+ /* @__PURE__ */ jsx56("div", { className: "h-[24px] w-4/5 bg-ods-border rounded animate-pulse" })
6528
6550
  ] }) }),
6529
- /* @__PURE__ */ jsx55("div", { className: "flex-1" }),
6530
- /* @__PURE__ */ jsxs44("div", { className: "flex items-center justify-between", children: [
6531
- /* @__PURE__ */ jsx55("div", { className: "h-[48px] w-[120px] bg-ods-border rounded animate-pulse" }),
6532
- /* @__PURE__ */ jsx55("div", { className: "h-[32px] w-[100px] bg-ods-border rounded animate-pulse" })
6551
+ /* @__PURE__ */ jsx56("div", { className: "flex-1" }),
6552
+ /* @__PURE__ */ jsxs45("div", { className: "flex items-center justify-between", children: [
6553
+ /* @__PURE__ */ jsx56("div", { className: "h-[48px] w-[120px] bg-ods-border rounded animate-pulse" }),
6554
+ /* @__PURE__ */ jsx56("div", { className: "h-[32px] w-[100px] bg-ods-border rounded animate-pulse" })
6533
6555
  ] })
6534
6556
  ] });
6535
6557
  }
6536
6558
  function RoadmapGridSkeleton({ count = 4, showLeftMargin = true }) {
6537
- return /* @__PURE__ */ jsx55("div", { className: `grid grid-cols-1 md:grid-cols-2 gap-6 ${showLeftMargin ? "md:ml-[120px]" : ""}`, children: Array.from({ length: count }).map((_, i) => /* @__PURE__ */ jsx55(RoadmapCardSkeleton2, {}, i)) });
6559
+ return /* @__PURE__ */ jsx56("div", { className: `grid grid-cols-1 md:grid-cols-2 gap-6 ${showLeftMargin ? "md:ml-[120px]" : ""}`, children: Array.from({ length: count }).map((_, i) => /* @__PURE__ */ jsx56(RoadmapCardSkeleton2, {}, i)) });
6538
6560
  }
6539
6561
 
6540
6562
  // src/components/shared/roadmap/roadmap-view.tsx
6541
6563
  import { useMemo as useMemo2 } from "react";
6542
- import { jsx as jsx56 } from "react/jsx-runtime";
6564
+ import { jsx as jsx57 } from "react/jsx-runtime";
6543
6565
  var DEFAULT_ENDPOINT2 = "/api/roadmap";
6544
6566
  var DEFAULT_SEARCH_PARAM_KEY2 = DEV_SECTION_PARAM_KEYS.search;
6545
6567
  var DEFAULT_STATUS_PARAM_KEY2 = DEV_SECTION_PARAM_KEYS.status;
@@ -6567,12 +6589,12 @@ function RoadmapView({
6567
6589
  );
6568
6590
  const items = data?.items ?? [];
6569
6591
  if (error) {
6570
- return /* @__PURE__ */ jsx56(LoadError, { message: "Failed to load roadmap.", onRetry: reload });
6592
+ return /* @__PURE__ */ jsx57(LoadError, { message: "Failed to load roadmap.", onRetry: reload });
6571
6593
  }
6572
6594
  if (isLoading && !data) {
6573
- return /* @__PURE__ */ jsx56(RoadmapGridSkeleton, { showLeftMargin });
6595
+ return /* @__PURE__ */ jsx57(RoadmapGridSkeleton, { showLeftMargin });
6574
6596
  }
6575
- return /* @__PURE__ */ jsx56(
6597
+ return /* @__PURE__ */ jsx57(
6576
6598
  RoadmapGrid,
6577
6599
  {
6578
6600
  items,
@@ -6589,46 +6611,46 @@ function RoadmapView({
6589
6611
  }
6590
6612
 
6591
6613
  // src/components/shared/delivery/delivery-lists.tsx
6592
- import { useEffect as useEffect9, useState as useState10 } from "react";
6614
+ import { useEffect as useEffect9, useState as useState11 } from "react";
6593
6615
 
6594
6616
  // src/components/shared/delivery/delivery-table.tsx
6595
- import { jsx as jsx57, jsxs as jsxs45 } from "react/jsx-runtime";
6617
+ import { jsx as jsx58, jsxs as jsxs46 } from "react/jsx-runtime";
6596
6618
  function SkeletonRow() {
6597
- return /* @__PURE__ */ jsx57("div", { className: "border-b border-ods-border last:border-b-0 p-[12px] md:p-[16px]", children: /* @__PURE__ */ jsxs45("div", { className: "flex flex-col md:flex-row items-start justify-between gap-[12px] md:gap-[16px] w-full", children: [
6598
- /* @__PURE__ */ jsxs45("div", { className: "flex-1 min-w-0 w-full md:w-auto flex flex-col gap-[12px] md:gap-[16px]", children: [
6599
- /* @__PURE__ */ jsx57("div", { className: "min-h-[24px] flex items-center", children: /* @__PURE__ */ jsx57("div", { className: "h-[20px] bg-ods-border rounded animate-pulse w-full" }) }),
6600
- /* @__PURE__ */ jsx57("div", { className: "min-h-[20px] flex items-center", children: /* @__PURE__ */ jsx57("div", { className: "h-[20px] bg-ods-border rounded animate-pulse w-1/2" }) }),
6601
- /* @__PURE__ */ jsx57("div", { className: "min-h-[72px] flex items-center", children: /* @__PURE__ */ jsxs45("div", { className: "flex-1 space-y-1", children: [
6602
- /* @__PURE__ */ jsx57("div", { className: "h-[20px] bg-ods-border rounded animate-pulse w-full" }),
6603
- /* @__PURE__ */ jsx57("div", { className: "h-[20px] bg-ods-border rounded animate-pulse w-full" }),
6604
- /* @__PURE__ */ jsx57("div", { className: "h-[20px] bg-ods-border rounded animate-pulse w-2/3" })
6619
+ return /* @__PURE__ */ jsx58("div", { className: "border-b border-ods-border last:border-b-0 p-[12px] md:p-[16px]", children: /* @__PURE__ */ jsxs46("div", { className: "flex flex-col md:flex-row items-start justify-between gap-[12px] md:gap-[16px] w-full", children: [
6620
+ /* @__PURE__ */ jsxs46("div", { className: "flex-1 min-w-0 w-full md:w-auto flex flex-col gap-[12px] md:gap-[16px]", children: [
6621
+ /* @__PURE__ */ jsx58("div", { className: "min-h-[24px] flex items-center", children: /* @__PURE__ */ jsx58("div", { className: "h-[20px] bg-ods-border rounded animate-pulse w-full" }) }),
6622
+ /* @__PURE__ */ jsx58("div", { className: "min-h-[20px] flex items-center", children: /* @__PURE__ */ jsx58("div", { className: "h-[20px] bg-ods-border rounded animate-pulse w-1/2" }) }),
6623
+ /* @__PURE__ */ jsx58("div", { className: "min-h-[72px] flex items-center", children: /* @__PURE__ */ jsxs46("div", { className: "flex-1 space-y-1", children: [
6624
+ /* @__PURE__ */ jsx58("div", { className: "h-[20px] bg-ods-border rounded animate-pulse w-full" }),
6625
+ /* @__PURE__ */ jsx58("div", { className: "h-[20px] bg-ods-border rounded animate-pulse w-full" }),
6626
+ /* @__PURE__ */ jsx58("div", { className: "h-[20px] bg-ods-border rounded animate-pulse w-2/3" })
6605
6627
  ] }) })
6606
6628
  ] }),
6607
- /* @__PURE__ */ jsxs45("div", { className: "flex-shrink-0 self-start flex flex-col gap-2", children: [
6608
- /* @__PURE__ */ jsx57("div", { className: "h-[32px] w-[100px] bg-ods-border rounded animate-pulse" }),
6609
- /* @__PURE__ */ jsx57("div", { className: "h-[32px] w-[120px] bg-ods-border rounded animate-pulse" })
6629
+ /* @__PURE__ */ jsxs46("div", { className: "flex-shrink-0 self-start flex flex-col gap-2", children: [
6630
+ /* @__PURE__ */ jsx58("div", { className: "h-[32px] w-[100px] bg-ods-border rounded animate-pulse" }),
6631
+ /* @__PURE__ */ jsx58("div", { className: "h-[32px] w-[120px] bg-ods-border rounded animate-pulse" })
6610
6632
  ] })
6611
6633
  ] }) });
6612
6634
  }
6613
6635
  function DeliveryTable({ items, isLoading = false }) {
6614
6636
  if (isLoading) {
6615
- return /* @__PURE__ */ jsx57("div", { className: "bg-ods-card border border-ods-border rounded-[6px] overflow-hidden w-full", children: /* @__PURE__ */ jsx57("div", { className: "w-full", children: [1, 2, 3, 4, 5].map((i) => /* @__PURE__ */ jsx57(SkeletonRow, {}, i)) }) });
6637
+ return /* @__PURE__ */ jsx58("div", { className: "bg-ods-card border border-ods-border rounded-[6px] overflow-hidden w-full", children: /* @__PURE__ */ jsx58("div", { className: "w-full", children: [1, 2, 3, 4, 5].map((i) => /* @__PURE__ */ jsx58(SkeletonRow, {}, i)) }) });
6616
6638
  }
6617
6639
  if (items.length === 0) {
6618
- return /* @__PURE__ */ jsx57("div", { className: "bg-ods-card border border-ods-border rounded-[6px] p-[40px] text-center w-full", children: /* @__PURE__ */ jsx57("p", { className: "text-ods-text-secondary text-[14px] font-['DM_Sans'] font-medium", children: "No tasks available" }) });
6640
+ return /* @__PURE__ */ jsx58("div", { className: "bg-ods-card border border-ods-border rounded-[6px] p-[40px] text-center w-full", children: /* @__PURE__ */ jsx58("p", { className: "text-ods-text-secondary text-[14px] font-['DM_Sans'] font-medium", children: "No tasks available" }) });
6619
6641
  }
6620
- return /* @__PURE__ */ jsx57("div", { className: "bg-ods-card border border-ods-border rounded-[6px] overflow-hidden w-full", children: /* @__PURE__ */ jsx57("div", { className: "w-full", children: items.map((item) => /* @__PURE__ */ jsx57(
6642
+ return /* @__PURE__ */ jsx58("div", { className: "bg-ods-card border border-ods-border rounded-[6px] overflow-hidden w-full", children: /* @__PURE__ */ jsx58("div", { className: "w-full", children: items.map((item) => /* @__PURE__ */ jsx58(
6621
6643
  "div",
6622
6644
  {
6623
6645
  className: "border-b border-ods-border last:border-b-0",
6624
- children: /* @__PURE__ */ jsx57(DeliveryRow, { item })
6646
+ children: /* @__PURE__ */ jsx58(DeliveryRow, { item })
6625
6647
  },
6626
6648
  item.id
6627
6649
  )) }) });
6628
6650
  }
6629
6651
 
6630
6652
  // src/components/shared/delivery/delivery-lists.tsx
6631
- import { jsx as jsx58, jsxs as jsxs46 } from "react/jsx-runtime";
6653
+ import { jsx as jsx59, jsxs as jsxs47 } from "react/jsx-runtime";
6632
6654
  var DEFAULT_COMPLETED_ENDPOINT = "/api/delivery/completed";
6633
6655
  var DEFAULT_IN_PROGRESS_ENDPOINT = "/api/delivery/in-progress";
6634
6656
  var DEFAULT_SEARCH_PARAM_KEY3 = DEV_SECTION_PARAM_KEYS.search;
@@ -6642,9 +6664,9 @@ function DeliveryLists({
6642
6664
  const searchParams = useSearchParams();
6643
6665
  const router = useRouter();
6644
6666
  const pathname = usePathname();
6645
- const [data, setData] = useState10(null);
6646
- const [isLoading, setIsLoading] = useState10(true);
6647
- const [error, setError] = useState10(null);
6667
+ const [data, setData] = useState11(null);
6668
+ const [isLoading, setIsLoading] = useState11(true);
6669
+ const [error, setError] = useState11(null);
6648
6670
  const searchQuery = searchParams.get(searchParamKey) || "";
6649
6671
  const taskTypeFilter = searchParams.get(taskTypeParamKey) || "all";
6650
6672
  useEffect9(() => {
@@ -6692,10 +6714,10 @@ function DeliveryLists({
6692
6714
  const hasActiveFilters = searchQuery !== "" || taskTypeFilter !== "all";
6693
6715
  const hasResults = showCompleted && filteredCompleted.length > 0 || showInProgress && filteredInProgress.length > 0;
6694
6716
  if (error) {
6695
- return /* @__PURE__ */ jsx58("div", { className: "w-full", children: /* @__PURE__ */ jsx58(LoadError, { message: error, onRetry: () => window.location.reload() }) });
6717
+ return /* @__PURE__ */ jsx59("div", { className: "w-full", children: /* @__PURE__ */ jsx59(LoadError, { message: error, onRetry: () => window.location.reload() }) });
6696
6718
  }
6697
- return /* @__PURE__ */ jsxs46("div", { className: "w-full flex flex-col gap-[40px]", children: [
6698
- !isLoading && !hasResults && (hasActiveFilters ? /* @__PURE__ */ jsx58(
6719
+ return /* @__PURE__ */ jsxs47("div", { className: "w-full flex flex-col gap-[40px]", children: [
6720
+ !isLoading && !hasResults && (hasActiveFilters ? /* @__PURE__ */ jsx59(
6699
6721
  EmptyState,
6700
6722
  {
6701
6723
  type: "search",
@@ -6710,7 +6732,7 @@ function DeliveryLists({
6710
6732
  router.replace(`${pathname}?${params.toString()}`, { scroll: false });
6711
6733
  }
6712
6734
  }
6713
- ) : /* @__PURE__ */ jsx58(
6735
+ ) : /* @__PURE__ */ jsx59(
6714
6736
  EmptyState,
6715
6737
  {
6716
6738
  type: "generic",
@@ -6719,12 +6741,12 @@ function DeliveryLists({
6719
6741
  showCTA: false
6720
6742
  }
6721
6743
  )),
6722
- showCompleted && (hasResults || isLoading) && /* @__PURE__ */ jsxs46("div", { className: "w-full", children: [
6723
- /* @__PURE__ */ jsxs46("h3", { className: "text-h2 text-ods-text-primary tracking-[-0.48px] md:tracking-[-0.56px] lg:tracking-[-0.64px] mb-4", children: [
6744
+ showCompleted && (hasResults || isLoading) && /* @__PURE__ */ jsxs47("div", { className: "w-full", children: [
6745
+ /* @__PURE__ */ jsxs47("h3", { className: "text-h2 text-ods-text-primary tracking-[-0.48px] md:tracking-[-0.56px] lg:tracking-[-0.64px] mb-4", children: [
6724
6746
  "Recently Completed",
6725
- /* @__PURE__ */ jsx58("span", { className: "text-ods-accent", children: ":" })
6747
+ /* @__PURE__ */ jsx59("span", { className: "text-ods-accent", children: ":" })
6726
6748
  ] }),
6727
- /* @__PURE__ */ jsx58(
6749
+ /* @__PURE__ */ jsx59(
6728
6750
  DeliveryTable,
6729
6751
  {
6730
6752
  items: filteredCompleted,
@@ -6732,12 +6754,12 @@ function DeliveryLists({
6732
6754
  }
6733
6755
  )
6734
6756
  ] }),
6735
- showInProgress && (hasResults || isLoading) && /* @__PURE__ */ jsxs46("div", { className: "w-full", children: [
6736
- /* @__PURE__ */ jsxs46("h3", { className: "text-h2 text-ods-text-primary tracking-[-0.48px] md:tracking-[-0.56px] lg:tracking-[-0.64px] mb-4", children: [
6757
+ showInProgress && (hasResults || isLoading) && /* @__PURE__ */ jsxs47("div", { className: "w-full", children: [
6758
+ /* @__PURE__ */ jsxs47("h3", { className: "text-h2 text-ods-text-primary tracking-[-0.48px] md:tracking-[-0.56px] lg:tracking-[-0.64px] mb-4", children: [
6737
6759
  "Active Tasks",
6738
- /* @__PURE__ */ jsx58("span", { className: "text-ods-accent", children: ":" })
6760
+ /* @__PURE__ */ jsx59("span", { className: "text-ods-accent", children: ":" })
6739
6761
  ] }),
6740
- /* @__PURE__ */ jsx58(
6762
+ /* @__PURE__ */ jsx59(
6741
6763
  DeliveryTable,
6742
6764
  {
6743
6765
  items: filteredInProgress,
@@ -6752,13 +6774,13 @@ function DeliveryLists({
6752
6774
  init_next_navigation();
6753
6775
 
6754
6776
  // src/components/shared/legal-document/use-legal-docs.ts
6755
- import { useState as useState11, useEffect as useEffect10, useCallback as useCallback5 } from "react";
6777
+ import { useState as useState12, useEffect as useEffect10, useCallback as useCallback5 } from "react";
6756
6778
  function useLegalDocs(docType, options = {}) {
6757
6779
  const { initialData = null, apiEndpoint } = options;
6758
6780
  const effectiveEndpoint = apiEndpoint ?? `/api/legal/${docType}`;
6759
- const [data, setData] = useState11(initialData ?? null);
6760
- const [isLoading, setIsLoading] = useState11(!initialData);
6761
- const [error, setError] = useState11(null);
6781
+ const [data, setData] = useState12(initialData ?? null);
6782
+ const [isLoading, setIsLoading] = useState12(!initialData);
6783
+ const [error, setError] = useState12(null);
6762
6784
  const fetchDocument = useCallback5(async () => {
6763
6785
  try {
6764
6786
  setIsLoading(true);
@@ -6803,7 +6825,7 @@ function useLegalDocs(docType, options = {}) {
6803
6825
  }
6804
6826
 
6805
6827
  // src/components/shared/legal-document/legal-document-page.tsx
6806
- import { jsx as jsx59, jsxs as jsxs47 } from "react/jsx-runtime";
6828
+ import { jsx as jsx60, jsxs as jsxs48 } from "react/jsx-runtime";
6807
6829
  function LegalDocumentPage({
6808
6830
  docType,
6809
6831
  title,
@@ -6826,58 +6848,58 @@ function LegalDocumentPage({
6826
6848
  };
6827
6849
  const fallbackLastUpdatedLabel = data?.lastSynced != null ? formatLegalDate(data.lastSynced) : null;
6828
6850
  const effectiveLastUpdatedLabel = initialLastUpdatedLabel ?? fallbackLastUpdatedLabel;
6829
- const customTitle = /* @__PURE__ */ jsxs47("div", { className: "flex flex-col gap-4", children: [
6830
- /* @__PURE__ */ jsxs47(PageHeading, { children: [
6831
- /* @__PURE__ */ jsx59("span", { children: title }),
6832
- /* @__PURE__ */ jsx59("span", { className: "text-ods-accent", children: "." })
6851
+ const customTitle = /* @__PURE__ */ jsxs48("div", { className: "flex flex-col gap-4", children: [
6852
+ /* @__PURE__ */ jsxs48(PageHeading, { children: [
6853
+ /* @__PURE__ */ jsx60("span", { children: title }),
6854
+ /* @__PURE__ */ jsx60("span", { className: "text-ods-accent", children: "." })
6833
6855
  ] }),
6834
- /* @__PURE__ */ jsxs47("p", { className: "font-['DM_Sans'] text-base md:text-lg text-ods-text-secondary max-w-2xl", children: [
6856
+ /* @__PURE__ */ jsxs48("p", { className: "font-['DM_Sans'] text-base md:text-lg text-ods-text-secondary max-w-2xl", children: [
6835
6857
  effectiveLastUpdatedLabel ? `Last Updated: ${effectiveLastUpdatedLabel}` : fallbackDescription,
6836
- data?.sourceFile && /* @__PURE__ */ jsxs47("span", { className: "block text-sm mt-1 opacity-75", children: [
6858
+ data?.sourceFile && /* @__PURE__ */ jsxs48("span", { className: "block text-sm mt-1 opacity-75", children: [
6837
6859
  "Source: ",
6838
6860
  data.sourceFile
6839
6861
  ] })
6840
6862
  ] })
6841
6863
  ] });
6842
- return /* @__PURE__ */ jsx59(PageShell, { children: /* @__PURE__ */ jsxs47(PageLayout, { backButton: backCfg, children: [
6843
- /* @__PURE__ */ jsx59("div", { className: "flex flex-col gap-4", children: customTitle }),
6844
- /* @__PURE__ */ jsx59("div", { className: "flex flex-col lg:flex-row gap-6 lg:gap-10 items-start flex-1", children: /* @__PURE__ */ jsx59("div", { className: "flex-1", children: /* @__PURE__ */ jsx59("div", { className: "w-full", children: /* @__PURE__ */ jsx59("article", { className: "space-y-2", children: isLoading ? (
6864
+ return /* @__PURE__ */ jsx60(PageShell, { children: /* @__PURE__ */ jsxs48(PageLayout, { backButton: backCfg, children: [
6865
+ /* @__PURE__ */ jsx60("div", { className: "flex flex-col gap-4", children: customTitle }),
6866
+ /* @__PURE__ */ jsx60("div", { className: "flex flex-col lg:flex-row gap-6 lg:gap-10 items-start flex-1", children: /* @__PURE__ */ jsx60("div", { className: "flex-1", children: /* @__PURE__ */ jsx60("div", { className: "w-full", children: /* @__PURE__ */ jsx60("article", { className: "space-y-2", children: isLoading ? (
6845
6867
  // Loading skeleton matching Knowledge Hub pattern
6846
- /* @__PURE__ */ jsxs47("div", { className: "space-y-6", children: [
6847
- /* @__PURE__ */ jsx59("div", { className: "h-10 bg-ods-skeleton rounded-lg w-3/4 animate-pulse" }),
6848
- /* @__PURE__ */ jsxs47("div", { className: "space-y-4", children: [
6849
- /* @__PURE__ */ jsx59("div", { className: "h-4 bg-ods-skeleton rounded w-full animate-pulse" }),
6850
- /* @__PURE__ */ jsx59("div", { className: "h-4 bg-ods-skeleton rounded w-full animate-pulse" }),
6851
- /* @__PURE__ */ jsx59("div", { className: "h-4 bg-ods-skeleton rounded w-5/6 animate-pulse" })
6868
+ /* @__PURE__ */ jsxs48("div", { className: "space-y-6", children: [
6869
+ /* @__PURE__ */ jsx60("div", { className: "h-10 bg-ods-skeleton rounded-lg w-3/4 animate-pulse" }),
6870
+ /* @__PURE__ */ jsxs48("div", { className: "space-y-4", children: [
6871
+ /* @__PURE__ */ jsx60("div", { className: "h-4 bg-ods-skeleton rounded w-full animate-pulse" }),
6872
+ /* @__PURE__ */ jsx60("div", { className: "h-4 bg-ods-skeleton rounded w-full animate-pulse" }),
6873
+ /* @__PURE__ */ jsx60("div", { className: "h-4 bg-ods-skeleton rounded w-5/6 animate-pulse" })
6852
6874
  ] }),
6853
- /* @__PURE__ */ jsx59("div", { className: "h-32 bg-ods-card border border-ods-border rounded-lg animate-pulse" }),
6854
- /* @__PURE__ */ jsxs47("div", { className: "space-y-4", children: [
6855
- /* @__PURE__ */ jsx59("div", { className: "h-4 bg-ods-skeleton rounded w-full animate-pulse" }),
6856
- /* @__PURE__ */ jsx59("div", { className: "h-4 bg-ods-skeleton rounded w-4/5 animate-pulse" })
6875
+ /* @__PURE__ */ jsx60("div", { className: "h-32 bg-ods-card border border-ods-border rounded-lg animate-pulse" }),
6876
+ /* @__PURE__ */ jsxs48("div", { className: "space-y-4", children: [
6877
+ /* @__PURE__ */ jsx60("div", { className: "h-4 bg-ods-skeleton rounded w-full animate-pulse" }),
6878
+ /* @__PURE__ */ jsx60("div", { className: "h-4 bg-ods-skeleton rounded w-4/5 animate-pulse" })
6857
6879
  ] })
6858
6880
  ] })
6859
- ) : error ? /* @__PURE__ */ jsxs47("div", { className: "text-center space-y-4", children: [
6860
- /* @__PURE__ */ jsxs47("div", { className: "bg-red-900/20 border border-red-700 rounded-lg p-6", children: [
6861
- /* @__PURE__ */ jsx59("p", { className: "text-red-400 mb-2", children: errorTitle }),
6862
- /* @__PURE__ */ jsx59("p", { className: "text-red-300 text-sm", children: error })
6881
+ ) : error ? /* @__PURE__ */ jsxs48("div", { className: "text-center space-y-4", children: [
6882
+ /* @__PURE__ */ jsxs48("div", { className: "bg-red-900/20 border border-red-700 rounded-lg p-6", children: [
6883
+ /* @__PURE__ */ jsx60("p", { className: "text-red-400 mb-2", children: errorTitle }),
6884
+ /* @__PURE__ */ jsx60("p", { className: "text-red-300 text-sm", children: error })
6863
6885
  ] }),
6864
- /* @__PURE__ */ jsxs47("div", { className: "text-ods-text-secondary", children: [
6865
- /* @__PURE__ */ jsx59("p", { children: errorContactPrompt }),
6866
- /* @__PURE__ */ jsx59("a", { href: `mailto:${contactEmail}`, className: "text-ods-accent hover:underline", children: contactEmail })
6886
+ /* @__PURE__ */ jsxs48("div", { className: "text-ods-text-secondary", children: [
6887
+ /* @__PURE__ */ jsx60("p", { children: errorContactPrompt }),
6888
+ /* @__PURE__ */ jsx60("a", { href: `mailto:${contactEmail}`, className: "text-ods-accent hover:underline", children: contactEmail })
6867
6889
  ] })
6868
- ] }) : data ? /* @__PURE__ */ jsx59(
6890
+ ] }) : data ? /* @__PURE__ */ jsx60(
6869
6891
  MarkdownRenderer,
6870
6892
  {
6871
6893
  content: data.content,
6872
6894
  sectionIds: data.sections || [],
6873
6895
  demoteMarkdownH1ToH2: true
6874
6896
  }
6875
- ) : /* @__PURE__ */ jsxs47("div", { className: "text-center text-ods-text-secondary py-16", children: [
6876
- /* @__PURE__ */ jsx59("p", { className: "text-xl", children: emptyStateMessage }),
6877
- /* @__PURE__ */ jsxs47("p", { className: "mt-2", children: [
6897
+ ) : /* @__PURE__ */ jsxs48("div", { className: "text-center text-ods-text-secondary py-16", children: [
6898
+ /* @__PURE__ */ jsx60("p", { className: "text-xl", children: emptyStateMessage }),
6899
+ /* @__PURE__ */ jsxs48("p", { className: "mt-2", children: [
6878
6900
  "Please contact",
6879
6901
  " ",
6880
- /* @__PURE__ */ jsx59("a", { href: `mailto:${contactEmail}`, className: "text-ods-accent hover:underline", children: contactEmail }),
6902
+ /* @__PURE__ */ jsx60("a", { href: `mailto:${contactEmail}`, className: "text-ods-accent hover:underline", children: contactEmail }),
6881
6903
  " ",
6882
6904
  "for more information."
6883
6905
  ] })
@@ -6887,7 +6909,7 @@ function LegalDocumentPage({
6887
6909
 
6888
6910
  // src/components/authors/author-detail-view.tsx
6889
6911
  init_cn();
6890
- import { jsx as jsx60, jsxs as jsxs48 } from "react/jsx-runtime";
6912
+ import { jsx as jsx61, jsxs as jsxs49 } from "react/jsx-runtime";
6891
6913
  function AuthorDetailView({
6892
6914
  author,
6893
6915
  proxyImageUrl,
@@ -6902,9 +6924,9 @@ function AuthorDetailView({
6902
6924
  }) ?? author.avatarUrl : null;
6903
6925
  const subtitle = [author.jobTitle, author.company].filter(Boolean).join(" @ ");
6904
6926
  const bioText = formatBioText(author.about);
6905
- return /* @__PURE__ */ jsxs48("div", { className: cn("flex flex-col gap-5 md:gap-6", className), children: [
6906
- /* @__PURE__ */ jsxs48("div", { className: "flex gap-6 w-full items-start", children: [
6907
- /* @__PURE__ */ jsx60("div", { className: "relative shrink-0 h-24 w-24", children: /* @__PURE__ */ jsx60("div", { className: "rounded-full overflow-hidden bg-ods-bg-secondary border border-ods-border w-full h-full relative", children: proxiedAvatar ? /* @__PURE__ */ jsx60(
6927
+ return /* @__PURE__ */ jsxs49("div", { className: cn("flex flex-col gap-5 md:gap-6", className), children: [
6928
+ /* @__PURE__ */ jsxs49("div", { className: "flex gap-6 w-full items-start", children: [
6929
+ /* @__PURE__ */ jsx61("div", { className: "relative shrink-0 h-24 w-24", children: /* @__PURE__ */ jsx61("div", { className: "rounded-full overflow-hidden bg-ods-bg-secondary border border-ods-border w-full h-full relative", children: proxiedAvatar ? /* @__PURE__ */ jsx61(
6908
6930
  next_image_default,
6909
6931
  {
6910
6932
  src: proxiedAvatar,
@@ -6913,12 +6935,12 @@ function AuthorDetailView({
6913
6935
  className: "object-cover",
6914
6936
  unoptimized: true
6915
6937
  }
6916
- ) : /* @__PURE__ */ jsx60("div", { className: "flex items-center justify-center h-full w-full text-3xl text-ods-text-secondary font-['Azeret_Mono']", children: author.fullName.charAt(0).toUpperCase() }) }) }),
6917
- /* @__PURE__ */ jsxs48("div", { className: "min-w-0 flex flex-col justify-center gap-2", children: [
6918
- /* @__PURE__ */ jsx60("p", { className: "text-h2 text-ods-text-primary leading-none truncate", children: author.fullName }),
6919
- subtitle && /* @__PURE__ */ jsx60("p", { className: "font-body text-lg text-ods-text-secondary leading-none truncate", children: subtitle }),
6938
+ ) : /* @__PURE__ */ jsx61("div", { className: "flex items-center justify-center h-full w-full text-3xl text-ods-text-secondary font-['Azeret_Mono']", children: author.fullName.charAt(0).toUpperCase() }) }) }),
6939
+ /* @__PURE__ */ jsxs49("div", { className: "min-w-0 flex flex-col justify-center gap-2", children: [
6940
+ /* @__PURE__ */ jsx61("p", { className: "text-h2 text-ods-text-primary leading-none truncate", children: author.fullName }),
6941
+ subtitle && /* @__PURE__ */ jsx61("p", { className: "font-body text-lg text-ods-text-secondary leading-none truncate", children: subtitle }),
6920
6942
  author.socialLinks.length > 0 && // Ghost compact row (transparent 32px) — metadata, not CTAs.
6921
- /* @__PURE__ */ jsx60(
6943
+ /* @__PURE__ */ jsx61(
6922
6944
  SocialIconRow,
6923
6945
  {
6924
6946
  compact: true,
@@ -6931,8 +6953,8 @@ function AuthorDetailView({
6931
6953
  )
6932
6954
  ] })
6933
6955
  ] }),
6934
- bioText && /* @__PURE__ */ jsx60("p", { className: "font-body text-base leading-relaxed text-ods-text-secondary", children: bioText }),
6935
- author.knowsAbout.length > 0 && /* @__PURE__ */ jsx60("div", { className: "flex flex-wrap gap-2", children: author.knowsAbout.map((topic) => /* @__PURE__ */ jsx60(StatusBadge, { text: topic, variant: "button", colorScheme: "cyan", singleLine: true }, topic)) }),
6956
+ bioText && /* @__PURE__ */ jsx61("p", { className: "font-body text-base leading-relaxed text-ods-text-secondary", children: bioText }),
6957
+ author.knowsAbout.length > 0 && /* @__PURE__ */ jsx61("div", { className: "flex flex-wrap gap-2", children: author.knowsAbout.map((topic) => /* @__PURE__ */ jsx61(StatusBadge, { text: topic, variant: "button", colorScheme: "cyan", singleLine: true }, topic)) }),
6936
6958
  children
6937
6959
  ] });
6938
6960
  }
@@ -7376,6 +7398,7 @@ export {
7376
7398
  MarkdownEditor,
7377
7399
  MediaCarousel,
7378
7400
  MediaGalleryManager,
7401
+ MediaGalleryStrip,
7379
7402
  MediaSkeleton,
7380
7403
  MediaTypeSelector,
7381
7404
  MenuIcon,
@@ -7837,7 +7860,6 @@ export {
7837
7860
  multiSelectFilterFn,
7838
7861
  navigationMenuTriggerStyle,
7839
7862
  newTabAnchorAttrs,
7840
- noDataActionInteractiveClasses,
7841
7863
  noDataActionsVariants,
7842
7864
  noDataIconClasses,
7843
7865
  normalizeContent,