@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.
- package/dist/{chunk-IXRPEMZP.cjs → chunk-2KHFSSFZ.cjs} +11 -11
- package/dist/{chunk-IXRPEMZP.cjs.map → chunk-2KHFSSFZ.cjs.map} +1 -1
- package/dist/{chunk-Q32JUFIK.cjs → chunk-4DYXV3E7.cjs} +508 -543
- package/dist/chunk-4DYXV3E7.cjs.map +1 -0
- package/dist/{chunk-MCCYGAPE.js → chunk-FLIWL6V4.js} +2 -2
- package/dist/{chunk-4SNHFZQT.js → chunk-GL5X6VVC.js} +2 -2
- package/dist/{chunk-VFMMVGA4.js → chunk-OPSZNW3I.js} +316 -351
- package/dist/chunk-OPSZNW3I.js.map +1 -0
- package/dist/{chunk-UQCB2CP7.js → chunk-VASNLWPZ.js} +2 -2
- package/dist/{chunk-EEMZBQ7O.cjs → chunk-W5KBDFCR.cjs} +25 -25
- package/dist/{chunk-EEMZBQ7O.cjs.map → chunk-W5KBDFCR.cjs.map} +1 -1
- package/dist/{chunk-V5OZQF4B.cjs → chunk-WU6PMH5L.cjs} +32 -32
- package/dist/{chunk-V5OZQF4B.cjs.map → chunk-WU6PMH5L.cjs.map} +1 -1
- package/dist/components/chat/index.cjs +2 -2
- package/dist/components/chat/index.js +1 -1
- package/dist/components/contact/index.cjs +3 -3
- package/dist/components/contact/index.js +2 -2
- package/dist/components/features/index.cjs +2 -2
- package/dist/components/features/index.js +1 -1
- package/dist/components/index.cjs +104 -82
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +255 -233
- package/dist/components/index.js.map +1 -1
- package/dist/components/navigation/index.cjs +2 -2
- package/dist/components/navigation/index.js +1 -1
- package/dist/components/related-content/index.cjs +3 -3
- package/dist/components/related-content/index.js +2 -2
- package/dist/components/shared/media-gallery-strip.d.ts +26 -0
- package/dist/components/shared/media-gallery-strip.d.ts.map +1 -0
- package/dist/components/shared/product-release/release-detail-page.d.ts.map +1 -1
- package/dist/components/tickets/index.cjs +53 -53
- package/dist/components/tickets/index.js +3 -3
- package/dist/components/ui/data-table/data-table-body.d.ts +5 -1
- package/dist/components/ui/data-table/data-table-body.d.ts.map +1 -1
- package/dist/components/ui/data-table/data-table-empty.d.ts +10 -10
- package/dist/components/ui/data-table/data-table-empty.d.ts.map +1 -1
- package/dist/components/ui/index.cjs +2 -4
- package/dist/components/ui/index.cjs.map +1 -1
- package/dist/components/ui/index.js +1 -3
- package/dist/components/ui/no-data/no-data-actions.d.ts +11 -15
- package/dist/components/ui/no-data/no-data-actions.d.ts.map +1 -1
- package/dist/components/ui/no-data/no-data-styles.d.ts +0 -1
- package/dist/components/ui/no-data/no-data-styles.d.ts.map +1 -1
- package/dist/components/ui/no-data/no-data.d.ts.map +1 -1
- package/dist/components/ui/query-report-table/query-report-table.d.ts.map +1 -1
- package/dist/components/ui/table/table-empty-state.d.ts +1 -2
- package/dist/components/ui/table/table-empty-state.d.ts.map +1 -1
- package/dist/components/ui/table/table.d.ts.map +1 -1
- package/dist/index.cjs +2 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1 -3
- package/package.json +1 -1
- package/src/components/hero-image-uploader.tsx +2 -2
- package/src/components/index.ts +5 -0
- package/src/components/shared/media-gallery-strip.tsx +93 -0
- package/src/components/shared/product-release/release-detail-page.tsx +3 -36
- package/src/components/ui/data-table/.data-table-empty.md +28 -24
- package/src/components/ui/data-table/data-table-body.tsx +13 -2
- package/src/components/ui/data-table/data-table-empty.tsx +18 -35
- package/src/components/ui/no-data/no-data-actions.tsx +20 -43
- package/src/components/ui/no-data/no-data-styles.ts +8 -18
- package/src/components/ui/no-data/no-data.tsx +7 -1
- package/src/components/ui/query-report-table/query-report-table.tsx +1 -1
- package/src/components/ui/table/table-empty-state.tsx +12 -37
- package/src/components/ui/table/table.tsx +1 -1
- package/src/stories/DataTable.stories.tsx +26 -2
- package/src/stories/EmptyState.stories.tsx +21 -34
- package/dist/chunk-Q32JUFIK.cjs.map +0 -1
- package/dist/chunk-VFMMVGA4.js.map +0 -1
- /package/dist/{chunk-MCCYGAPE.js.map → chunk-FLIWL6V4.js.map} +0 -0
- /package/dist/{chunk-4SNHFZQT.js.map → chunk-GL5X6VVC.js.map} +0 -0
- /package/dist/{chunk-UQCB2CP7.js.map → chunk-VASNLWPZ.js.map} +0 -0
package/dist/components/index.js
CHANGED
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
import {
|
|
8
8
|
GROUP_PAGE_SIZE,
|
|
9
9
|
RelatedContentSection
|
|
10
|
-
} from "../chunk-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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
|
|
5834
|
-
|
|
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__ */
|
|
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] =
|
|
5862
|
-
const [deliveryData, setDeliveryData] =
|
|
5863
|
-
const [roadmapLoading, setRoadmapLoading] =
|
|
5864
|
-
const [deliveryLoading, setDeliveryLoading] =
|
|
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__ */
|
|
5940
|
+
return /* @__PURE__ */ jsx53(DetailPageSkeleton, { metadataColumns: 4, showImageGallery: true });
|
|
5897
5941
|
}
|
|
5898
5942
|
if (error || !release) {
|
|
5899
|
-
return /* @__PURE__ */
|
|
5900
|
-
/* @__PURE__ */
|
|
5901
|
-
/* @__PURE__ */
|
|
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__ */
|
|
5928
|
-
showBackButton && /* @__PURE__ */
|
|
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__ */
|
|
5937
|
-
/* @__PURE__ */
|
|
5938
|
-
/* @__PURE__ */
|
|
5939
|
-
/* @__PURE__ */
|
|
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__ */
|
|
5945
|
-
/* @__PURE__ */
|
|
5946
|
-
/* @__PURE__ */
|
|
5947
|
-
/* @__PURE__ */
|
|
5948
|
-
/* @__PURE__ */
|
|
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__ */
|
|
5951
|
-
/* @__PURE__ */
|
|
5952
|
-
/* @__PURE__ */
|
|
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__ */
|
|
5955
|
-
/* @__PURE__ */
|
|
5956
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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
|
-
|
|
5967
|
-
|
|
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__ */
|
|
5996
|
-
youtubeUrl && /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
6024
|
-
hasBreakingChanges && /* @__PURE__ */
|
|
6025
|
-
/* @__PURE__ */
|
|
6026
|
-
/* @__PURE__ */
|
|
6027
|
-
/* @__PURE__ */
|
|
6028
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
6069
|
+
icon: /* @__PURE__ */ jsx53(AlertTriangle, { className: "h-6 w-6" }),
|
|
6039
6070
|
SimpleMarkdownRenderer: MarkdownRenderer
|
|
6040
6071
|
}
|
|
6041
6072
|
),
|
|
6042
|
-
/* @__PURE__ */
|
|
6073
|
+
/* @__PURE__ */ jsx53(
|
|
6043
6074
|
ReleaseChangelogSection,
|
|
6044
6075
|
{
|
|
6045
6076
|
title: "Features Added",
|
|
6046
6077
|
entries: featuresAdded || [],
|
|
6047
|
-
icon: /* @__PURE__ */
|
|
6078
|
+
icon: /* @__PURE__ */ jsx53(Sparkles2, { className: "h-6 w-6" }),
|
|
6048
6079
|
previewFirst: true,
|
|
6049
6080
|
SimpleMarkdownRenderer: MarkdownRenderer
|
|
6050
6081
|
}
|
|
6051
6082
|
),
|
|
6052
|
-
/* @__PURE__ */
|
|
6083
|
+
/* @__PURE__ */ jsx53(
|
|
6053
6084
|
ReleaseChangelogSection,
|
|
6054
6085
|
{
|
|
6055
6086
|
title: "Bugs Fixed",
|
|
6056
6087
|
entries: bugFixed || [],
|
|
6057
|
-
icon: /* @__PURE__ */
|
|
6088
|
+
icon: /* @__PURE__ */ jsx53(Wrench, { className: "h-6 w-6" }),
|
|
6058
6089
|
previewFirst: true,
|
|
6059
6090
|
SimpleMarkdownRenderer: MarkdownRenderer
|
|
6060
6091
|
}
|
|
6061
6092
|
),
|
|
6062
|
-
/* @__PURE__ */
|
|
6093
|
+
/* @__PURE__ */ jsx53(
|
|
6063
6094
|
ReleaseChangelogSection,
|
|
6064
6095
|
{
|
|
6065
6096
|
title: "Improvements",
|
|
6066
6097
|
entries: improvements || [],
|
|
6067
|
-
icon: /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
6081
|
-
/* @__PURE__ */
|
|
6082
|
-
/* @__PURE__ */
|
|
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__ */
|
|
6098
|
-
/* @__PURE__ */
|
|
6099
|
-
/* @__PURE__ */
|
|
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__ */
|
|
6108
|
-
/* @__PURE__ */
|
|
6109
|
-
/* @__PURE__ */
|
|
6110
|
-
githubReleases && githubReleases.length > 0 && /* @__PURE__ */
|
|
6111
|
-
/* @__PURE__ */
|
|
6112
|
-
/* @__PURE__ */
|
|
6113
|
-
/* @__PURE__ */
|
|
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__ */
|
|
6154
|
+
/* @__PURE__ */ jsx53(ExternalLink, { className: "h-6 w-6 text-[#ffc008] shrink-0" })
|
|
6124
6155
|
] }, ghRelease.id)) }),
|
|
6125
|
-
knowledgeBaseLinks && knowledgeBaseLinks.length > 0 && /* @__PURE__ */
|
|
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__ */
|
|
6129
|
-
/* @__PURE__ */
|
|
6130
|
-
/* @__PURE__ */
|
|
6131
|
-
/* @__PURE__ */
|
|
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__ */
|
|
6170
|
+
/* @__PURE__ */ jsx53(ExternalLink, { className: "h-6 w-6 text-[#ffc008] shrink-0" })
|
|
6140
6171
|
] }, linkId);
|
|
6141
6172
|
}) }),
|
|
6142
|
-
migrationGuideUrl && /* @__PURE__ */
|
|
6143
|
-
/* @__PURE__ */
|
|
6144
|
-
/* @__PURE__ */
|
|
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__ */
|
|
6185
|
+
/* @__PURE__ */ jsx53(ExternalLink, { className: "h-6 w-6 text-[#ffc008] shrink-0" })
|
|
6155
6186
|
] }),
|
|
6156
|
-
documentationUrl && /* @__PURE__ */
|
|
6157
|
-
/* @__PURE__ */
|
|
6158
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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
|
|
6208
|
+
import { jsx as jsx54 } from "react/jsx-runtime";
|
|
6187
6209
|
function ReleaseDetailSkeleton() {
|
|
6188
|
-
return /* @__PURE__ */
|
|
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
|
|
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
|
|
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] =
|
|
6202
|
-
const [isLoading, setIsLoading] =
|
|
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
|
|
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__ */
|
|
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] =
|
|
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] =
|
|
6404
|
-
const [isInitialized, setIsInitialized] =
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
6464
|
-
/* @__PURE__ */
|
|
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__ */
|
|
6495
|
+
/* @__PURE__ */ jsx55("span", { className: "text-ods-accent", children: ":" })
|
|
6474
6496
|
]
|
|
6475
6497
|
}
|
|
6476
6498
|
),
|
|
6477
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
6535
|
+
import { jsx as jsx56, jsxs as jsxs45 } from "react/jsx-runtime";
|
|
6514
6536
|
function RoadmapCardSkeleton2() {
|
|
6515
|
-
return /* @__PURE__ */
|
|
6516
|
-
/* @__PURE__ */
|
|
6517
|
-
/* @__PURE__ */
|
|
6518
|
-
/* @__PURE__ */
|
|
6519
|
-
/* @__PURE__ */
|
|
6520
|
-
/* @__PURE__ */
|
|
6521
|
-
/* @__PURE__ */
|
|
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__ */
|
|
6525
|
-
/* @__PURE__ */
|
|
6526
|
-
/* @__PURE__ */
|
|
6527
|
-
/* @__PURE__ */
|
|
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__ */
|
|
6530
|
-
/* @__PURE__ */
|
|
6531
|
-
/* @__PURE__ */
|
|
6532
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
6592
|
+
return /* @__PURE__ */ jsx57(LoadError, { message: "Failed to load roadmap.", onRetry: reload });
|
|
6571
6593
|
}
|
|
6572
6594
|
if (isLoading && !data) {
|
|
6573
|
-
return /* @__PURE__ */
|
|
6595
|
+
return /* @__PURE__ */ jsx57(RoadmapGridSkeleton, { showLeftMargin });
|
|
6574
6596
|
}
|
|
6575
|
-
return /* @__PURE__ */
|
|
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
|
|
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
|
|
6617
|
+
import { jsx as jsx58, jsxs as jsxs46 } from "react/jsx-runtime";
|
|
6596
6618
|
function SkeletonRow() {
|
|
6597
|
-
return /* @__PURE__ */
|
|
6598
|
-
/* @__PURE__ */
|
|
6599
|
-
/* @__PURE__ */
|
|
6600
|
-
/* @__PURE__ */
|
|
6601
|
-
/* @__PURE__ */
|
|
6602
|
-
/* @__PURE__ */
|
|
6603
|
-
/* @__PURE__ */
|
|
6604
|
-
/* @__PURE__ */
|
|
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__ */
|
|
6608
|
-
/* @__PURE__ */
|
|
6609
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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] =
|
|
6646
|
-
const [isLoading, setIsLoading] =
|
|
6647
|
-
const [error, setError] =
|
|
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__ */
|
|
6717
|
+
return /* @__PURE__ */ jsx59("div", { className: "w-full", children: /* @__PURE__ */ jsx59(LoadError, { message: error, onRetry: () => window.location.reload() }) });
|
|
6696
6718
|
}
|
|
6697
|
-
return /* @__PURE__ */
|
|
6698
|
-
!isLoading && !hasResults && (hasActiveFilters ? /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
6723
|
-
/* @__PURE__ */
|
|
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__ */
|
|
6747
|
+
/* @__PURE__ */ jsx59("span", { className: "text-ods-accent", children: ":" })
|
|
6726
6748
|
] }),
|
|
6727
|
-
/* @__PURE__ */
|
|
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__ */
|
|
6736
|
-
/* @__PURE__ */
|
|
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__ */
|
|
6760
|
+
/* @__PURE__ */ jsx59("span", { className: "text-ods-accent", children: ":" })
|
|
6739
6761
|
] }),
|
|
6740
|
-
/* @__PURE__ */
|
|
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
|
|
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] =
|
|
6760
|
-
const [isLoading, setIsLoading] =
|
|
6761
|
-
const [error, setError] =
|
|
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
|
|
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__ */
|
|
6830
|
-
/* @__PURE__ */
|
|
6831
|
-
/* @__PURE__ */
|
|
6832
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
6843
|
-
/* @__PURE__ */
|
|
6844
|
-
/* @__PURE__ */
|
|
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__ */
|
|
6847
|
-
/* @__PURE__ */
|
|
6848
|
-
/* @__PURE__ */
|
|
6849
|
-
/* @__PURE__ */
|
|
6850
|
-
/* @__PURE__ */
|
|
6851
|
-
/* @__PURE__ */
|
|
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__ */
|
|
6854
|
-
/* @__PURE__ */
|
|
6855
|
-
/* @__PURE__ */
|
|
6856
|
-
/* @__PURE__ */
|
|
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__ */
|
|
6860
|
-
/* @__PURE__ */
|
|
6861
|
-
/* @__PURE__ */
|
|
6862
|
-
/* @__PURE__ */
|
|
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__ */
|
|
6865
|
-
/* @__PURE__ */
|
|
6866
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
6876
|
-
/* @__PURE__ */
|
|
6877
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
6906
|
-
/* @__PURE__ */
|
|
6907
|
-
/* @__PURE__ */
|
|
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__ */
|
|
6917
|
-
/* @__PURE__ */
|
|
6918
|
-
/* @__PURE__ */
|
|
6919
|
-
subtitle && /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
6935
|
-
author.knowsAbout.length > 0 && /* @__PURE__ */
|
|
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,
|