@flamingo-stack/openframe-frontend-core 0.0.558 → 0.0.559
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-5WQPOH27.cjs → chunk-33RSZGYQ.cjs} +5 -5
- package/dist/{chunk-5WQPOH27.cjs.map → chunk-33RSZGYQ.cjs.map} +1 -1
- package/dist/{chunk-ZSZ24UY6.js → chunk-3H4NJO43.js} +2 -2
- package/dist/{chunk-E26KVZJM.js → chunk-3KFGRSM7.js} +2 -2
- package/dist/{chunk-S3NZZKNU.js → chunk-5OU7FNZD.js} +2 -2
- package/dist/{chunk-R3OCP4A7.cjs → chunk-7YUCTU47.cjs} +62 -62
- package/dist/{chunk-R3OCP4A7.cjs.map → chunk-7YUCTU47.cjs.map} +1 -1
- package/dist/{chunk-FVHFBEXH.js → chunk-ANI7I7SC.js} +2 -2
- package/dist/{chunk-LM6NDYGD.js → chunk-B4AGHKHF.js} +2 -2
- package/dist/{chunk-DNPQ2U7P.js → chunk-BOFSW6J7.js} +2 -2
- package/dist/{chunk-DV4CSNZD.js → chunk-C7LWJWOO.js} +2 -2
- package/dist/{chunk-XDMRN3SG.cjs → chunk-CS34XXIX.cjs} +86 -86
- package/dist/{chunk-XDMRN3SG.cjs.map → chunk-CS34XXIX.cjs.map} +1 -1
- package/dist/{chunk-Z5FN5VTC.js → chunk-D2EOIZ7V.js} +2 -2
- package/dist/{chunk-FCCSHC3H.cjs → chunk-DEJC6ZID.cjs} +26 -26
- package/dist/{chunk-FCCSHC3H.cjs.map → chunk-DEJC6ZID.cjs.map} +1 -1
- package/dist/{chunk-UVGFICZT.js → chunk-KDTQMUUY.js} +6 -6
- package/dist/{chunk-VNWGXQJD.cjs → chunk-KYJSFHHH.cjs} +20 -20
- package/dist/{chunk-VNWGXQJD.cjs.map → chunk-KYJSFHHH.cjs.map} +1 -1
- package/dist/{chunk-53GNFRVQ.cjs → chunk-MO5EKODW.cjs} +7 -7
- package/dist/{chunk-53GNFRVQ.cjs.map → chunk-MO5EKODW.cjs.map} +1 -1
- package/dist/{chunk-CWQSUYVV.cjs → chunk-NBWJDAPF.cjs} +3 -3
- package/dist/{chunk-CWQSUYVV.cjs.map → chunk-NBWJDAPF.cjs.map} +1 -1
- package/dist/{chunk-3TKG7SW6.cjs → chunk-O3T4MB5D.cjs} +39 -39
- package/dist/{chunk-3TKG7SW6.cjs.map → chunk-O3T4MB5D.cjs.map} +1 -1
- package/dist/{chunk-IHXUZBBV.js → chunk-P7RPGV3I.js} +11 -3
- package/dist/{chunk-IHXUZBBV.js.map → chunk-P7RPGV3I.js.map} +1 -1
- package/dist/{chunk-R3TXAMMB.cjs → chunk-PCIN3YYW.cjs} +12 -4
- package/dist/chunk-PCIN3YYW.cjs.map +1 -0
- package/dist/{chunk-4VLGJEKQ.js → chunk-PG6NTQ72.js} +2 -2
- package/dist/{chunk-YUVCH2LX.js → chunk-QAFVP2NG.js} +5 -5
- package/dist/{chunk-5JHJX7OX.js → chunk-S4GVJZ7X.js} +4 -4
- package/dist/{chunk-N3OGB543.cjs → chunk-SPUVLKXS.cjs} +9 -9
- package/dist/{chunk-N3OGB543.cjs.map → chunk-SPUVLKXS.cjs.map} +1 -1
- package/dist/{chunk-C5HQCF4R.js → chunk-V3TJN4XI.js} +4 -4
- package/dist/{chunk-DHSIAIFG.cjs → chunk-VWTUHH6T.cjs} +11 -11
- package/dist/{chunk-DHSIAIFG.cjs.map → chunk-VWTUHH6T.cjs.map} +1 -1
- package/dist/{chunk-GYQHUJWR.cjs → chunk-XLZGBSNT.cjs} +14 -14
- package/dist/{chunk-GYQHUJWR.cjs.map → chunk-XLZGBSNT.cjs.map} +1 -1
- package/dist/{chunk-XL2G2HHJ.cjs → chunk-YMXR3AFK.cjs} +4 -4
- package/dist/{chunk-XL2G2HHJ.cjs.map → chunk-YMXR3AFK.cjs.map} +1 -1
- package/dist/{chunk-SI64DC72.cjs → chunk-ZF3TRQD2.cjs} +31 -31
- package/dist/{chunk-SI64DC72.cjs.map → chunk-ZF3TRQD2.cjs.map} +1 -1
- package/dist/components/case-studies/index.cjs +8 -8
- package/dist/components/case-studies/index.js +2 -2
- 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/docs/index.cjs +5 -5
- package/dist/components/docs/index.js +4 -4
- package/dist/components/embeds/index.cjs +3 -3
- package/dist/components/embeds/index.js +2 -2
- package/dist/components/faq/index.cjs +3 -3
- package/dist/components/faq/index.js +2 -2
- package/dist/components/features/index.cjs +4 -2
- package/dist/components/features/index.cjs.map +1 -1
- package/dist/components/features/index.js +3 -1
- package/dist/components/features/video-bites-shared.cjs +7 -0
- package/dist/components/features/video-bites-shared.cjs.map +1 -1
- package/dist/components/features/video-bites-shared.d.ts +10 -0
- package/dist/components/features/video-bites-shared.d.ts.map +1 -1
- package/dist/components/features/video-bites-shared.js +7 -1
- package/dist/components/features/video-bites-shared.js.map +1 -1
- package/dist/components/features/video-bites-strip.d.ts +5 -1
- package/dist/components/features/video-bites-strip.d.ts.map +1 -1
- package/dist/components/help-center-pages/index.cjs +22 -22
- package/dist/components/help-center-pages/index.js +13 -13
- package/dist/components/index.cjs +133 -131
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +13 -11
- package/dist/components/index.js.map +1 -1
- package/dist/components/meeting-scheduler/index.cjs +28 -28
- package/dist/components/meeting-scheduler/index.js +3 -3
- package/dist/components/navigation/index.cjs +2 -2
- package/dist/components/navigation/index.js +1 -1
- package/dist/components/onboarding-guides/index.cjs +5 -5
- package/dist/components/onboarding-guides/index.js +4 -4
- package/dist/components/related-content/index.cjs +3 -3
- package/dist/components/related-content/index.js +2 -2
- package/dist/components/tickets/index.cjs +6 -6
- package/dist/components/tickets/index.js +5 -5
- package/dist/components/ui/index.cjs +2 -2
- package/dist/components/ui/index.js +1 -1
- package/dist/index.cjs +4 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +3 -1
- package/dist/types/video-processing.d.ts +1 -0
- package/dist/types/video-processing.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/features/__tests__/video-bites-shared.test.ts +64 -0
- package/src/components/features/video-bites-shared.ts +16 -0
- package/src/components/features/video-bites-strip.tsx +7 -2
- package/src/types/video-processing.ts +1 -0
- package/dist/chunk-R3TXAMMB.cjs.map +0 -1
- /package/dist/{chunk-ZSZ24UY6.js.map → chunk-3H4NJO43.js.map} +0 -0
- /package/dist/{chunk-E26KVZJM.js.map → chunk-3KFGRSM7.js.map} +0 -0
- /package/dist/{chunk-S3NZZKNU.js.map → chunk-5OU7FNZD.js.map} +0 -0
- /package/dist/{chunk-FVHFBEXH.js.map → chunk-ANI7I7SC.js.map} +0 -0
- /package/dist/{chunk-LM6NDYGD.js.map → chunk-B4AGHKHF.js.map} +0 -0
- /package/dist/{chunk-DNPQ2U7P.js.map → chunk-BOFSW6J7.js.map} +0 -0
- /package/dist/{chunk-DV4CSNZD.js.map → chunk-C7LWJWOO.js.map} +0 -0
- /package/dist/{chunk-Z5FN5VTC.js.map → chunk-D2EOIZ7V.js.map} +0 -0
- /package/dist/{chunk-UVGFICZT.js.map → chunk-KDTQMUUY.js.map} +0 -0
- /package/dist/{chunk-4VLGJEKQ.js.map → chunk-PG6NTQ72.js.map} +0 -0
- /package/dist/{chunk-YUVCH2LX.js.map → chunk-QAFVP2NG.js.map} +0 -0
- /package/dist/{chunk-5JHJX7OX.js.map → chunk-S4GVJZ7X.js.map} +0 -0
- /package/dist/{chunk-C5HQCF4R.js.map → chunk-V3TJN4XI.js.map} +0 -0
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var _chunkPCIN3YYWcjs = require('./chunk-PCIN3YYW.cjs');
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
var _chunkXL4V2PYGcjs = require('./chunk-XL4V2PYG.cjs');
|
|
@@ -50,7 +50,7 @@ function DetailPageSkeleton({
|
|
|
50
50
|
] });
|
|
51
51
|
if (bare) return content;
|
|
52
52
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
53
|
-
|
|
53
|
+
_chunkPCIN3YYWcjs.PageLayout,
|
|
54
54
|
{
|
|
55
55
|
showHeader: false,
|
|
56
56
|
className: "bg-ods-bg max-w-[1280px] mx-auto py-6 md:py-10 px-6 md:px-20",
|
|
@@ -88,7 +88,7 @@ function ArticleAuthorByline({
|
|
|
88
88
|
}) {
|
|
89
89
|
const runtime = _chunkCEAAOVCVcjs.useChatRuntime.call(void 0, );
|
|
90
90
|
if (!author) return null;
|
|
91
|
-
const proxiedAvatar = avatar ? proxyImageUrl ? proxyImageUrl(avatar) : _nullishCoalesce(
|
|
91
|
+
const proxiedAvatar = avatar ? proxyImageUrl ? proxyImageUrl(avatar) : _nullishCoalesce(_chunkPCIN3YYWcjs.getProxiedImageUrl.call(void 0, avatar, {
|
|
92
92
|
proxyPrefix: _optionalChain([runtime, 'optionalAccess', _2 => _2.endpoints, 'access', _3 => _3.imageProxyUrlPrefix]),
|
|
93
93
|
skipDomains: _optionalChain([runtime, 'optionalAccess', _4 => _4.endpoints, 'access', _5 => _5.imageProxySkipDomains]),
|
|
94
94
|
directHttps: true
|
|
@@ -96,7 +96,7 @@ function ArticleAuthorByline({
|
|
|
96
96
|
const avatarSizeClass = size === "lg" ? "w-16 h-16" : "w-14 h-14";
|
|
97
97
|
const avatarIconClass = size === "lg" ? "w-8 h-8" : "w-7 h-7";
|
|
98
98
|
const avatarDim = size === "lg" ? 64 : 56;
|
|
99
|
-
const formattedBio =
|
|
99
|
+
const formattedBio = _chunkPCIN3YYWcjs.formatBioText.call(void 0, _nullishCoalesce(bio, () => ( null)));
|
|
100
100
|
const dateLabel = publishedAt ? formatDate(publishedAt) : "";
|
|
101
101
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
102
102
|
"div",
|
|
@@ -146,4 +146,4 @@ function ArticleAuthorByline({
|
|
|
146
146
|
|
|
147
147
|
|
|
148
148
|
exports.DetailPageSkeleton = DetailPageSkeleton; exports.ArticleAuthorByline = ArticleAuthorByline;
|
|
149
|
-
//# sourceMappingURL=chunk-
|
|
149
|
+
//# sourceMappingURL=chunk-33RSZGYQ.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-5WQPOH27.cjs","../src/components/shared/detail-page-skeleton.tsx","../src/components/shared/article-author-byline.tsx"],"names":["jsxs","jsx"],"mappings":"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","file":"/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-5WQPOH27.cjs","sourcesContent":[null,"\"use client\";\n\nimport { PageLayout } from '../layout/page-layout';\n\nexport interface DetailPageSkeletonProps {\n metadataColumns?: number; // Number of metadata grid columns (default 4)\n showImageGallery?: boolean; // Show horizontal image gallery (default true)\n /** Render only the skeleton blocks, WITHOUT the self-contained page wrapper\n * — the caller supplies its own (e.g. `<PageShell>`) so the loading state\n * matches the loaded page's width, padding, and min-height. Default false\n * (self-contained `<PageLayout>` at the hub article width). */\n bare?: boolean;\n}\n\nexport function DetailPageSkeleton({\n metadataColumns = 4,\n showImageGallery = true,\n bare = false\n}: DetailPageSkeletonProps = {}) {\n const content = (\n <div className=\"space-y-6 md:space-y-10 animate-pulse\">\n {/* Title Block */}\n <div className=\"flex flex-col gap-6 w-full\">\n <div className=\"h-16 md:h-20 w-full max-w-3xl bg-ods-card rounded\"></div>\n </div>\n\n {/* Category Tags Skeleton */}\n <div className=\"flex flex-wrap gap-2 w-full\">\n <div className=\"h-8 w-32 bg-ods-card rounded\"></div>\n <div className=\"h-8 w-28 bg-ods-card rounded\"></div>\n <div className=\"h-8 w-36 bg-ods-card rounded\"></div>\n </div>\n\n {/* Metadata Grid Skeleton */}\n <div className={`grid grid-cols-1 md:grid-cols-${metadataColumns} border border-ods-border rounded-md overflow-hidden w-full`}>\n {Array.from({ length: metadataColumns }).map((_, i) => (\n <div key={i} className=\"bg-ods-card border-b md:border-b-0 md:border-r last:border-r-0 border-ods-border p-4\">\n <div className=\"h-6 w-24 bg-ods-border rounded mb-2\"></div>\n <div className=\"h-5 w-20 bg-ods-border rounded\"></div>\n </div>\n ))}\n </div>\n\n {/* Image Gallery Skeleton */}\n {showImageGallery && (\n <div className=\"flex gap-6 overflow-x-auto w-full\">\n {[1, 2, 3, 4, 5].map((i) => (\n <div key={i} className=\"shrink-0 w-[240px] h-[200px] bg-ods-card rounded-md border border-ods-border\"></div>\n ))}\n </div>\n )}\n\n {/* Featured Image Skeleton (for case studies) */}\n {!showImageGallery && (\n <div className=\"aspect-[2560/1366] w-full bg-ods-card rounded-md\"></div>\n )}\n\n {/* Content Sections Skeleton */}\n {[1, 2, 3].map((section) => (\n <div key={section} className=\"space-y-6\">\n <div className=\"h-16 w-64 bg-ods-card rounded\"></div>\n <div className=\"space-y-3\">\n <div className=\"h-6 w-full bg-ods-card rounded\"></div>\n <div className=\"h-6 w-full bg-ods-card rounded\"></div>\n <div className=\"h-6 w-4/5 bg-ods-card rounded\"></div>\n </div>\n </div>\n ))}\n </div>\n );\n if (bare) return content;\n return (\n <PageLayout\n showHeader={false}\n className=\"bg-ods-bg max-w-[1280px] mx-auto py-6 md:py-10 px-6 md:px-20\"\n >\n {content}\n </PageLayout>\n );\n}\n","'use client'\n\n/**\n * Shared \"author byline\" card used by article-shaped detail pages\n * (blog post, product release, onboarding guide, investor update).\n *\n * MOVED from the hub so any consuming app can embed it; hub call sites\n * import it directly and pass their platform-aware copy explicitly\n * (`fallbackBio={defaultAuthorFallbackBio()}` from the hub's app-config).\n *\n * Embed-readiness contract:\n * - `Link` / `Image` render through the embed-shims (plain `<a>` / `<img>`\n * in non-Next hosts; the real Next primitives once the host registers\n * them at app init).\n * - The avatar is proxied through the OPTIONAL ambient `ChatRuntime`\n * (`endpoints.imageProxyUrlPrefix`, same config `useProxiedImageUrl`\n * reads) — when no runtime is mounted the raw URL renders as-is, so the\n * component never throws outside a provider. Hosts can also inject\n * `proxyImageUrl` to bypass the runtime entirely.\n * - `fallbackBio` is a PLAIN prop (no app-config import): the lib has no\n * platform awareness; pass copy or leave it absent to render nothing.\n *\n * Render order: avatar → name + job title + date → bio (when present).\n * Returns null when `author` is empty (no card rendered).\n */\n\nimport React from 'react'\nimport { Calendar, User } from 'lucide-react'\nimport Image from '../../embed-shims/next-image'\nimport Link from '../../embed-shims/next-link'\nimport { cn } from '../../utils/cn'\nimport { formatBioText } from '../../utils/format'\nimport { getProxiedImageUrl } from '../../utils/image-proxy'\nimport { useChatRuntime } from '../../contexts/chat-runtime-context'\n\nexport interface ArticleAuthorBylineProps {\n /** Author display name. Required — block is hidden when null/empty. */\n author: string | null\n /** Avatar URL. Falls back to a placeholder when null. */\n avatar?: string | null\n /** Optional bio paragraph rendered below the name. */\n bio?: string | null\n /** Optional job title rendered immediately under the name. */\n jobTitle?: string | null\n /** Optional published date (ISO string or Date). Rendered next to the name. */\n publishedAt?: string | Date | null\n /** Optional link target for the author name (e.g. the author page). */\n href?: string | null\n /**\n * Fallback paragraph when `bio` is empty. Plain copy — the lib has no\n * platform/config awareness, so hosts that want a branded default\n * (\"Contributing author on the {platform} platform\") pass it explicitly\n * (the hub wrapper derives it from `getAppConfig()`). Absent/null ⇒\n * nothing renders below the name when `bio` is empty.\n */\n fallbackBio?: string | null\n /** Avatar size variant. `md` = 56px (default), `lg` = 64px. */\n size?: 'md' | 'lg'\n /**\n * Host-injected avatar-URL mapper. Wins over the ambient-runtime proxy\n * resolution. Use when the host proxies images outside the `ChatRuntime`\n * config (e.g. a bespoke CDN rewrite).\n */\n proxyImageUrl?: (url: string) => string\n className?: string\n}\n\nfunction formatDate(value: string | Date): string {\n const d = typeof value === 'string' ? new Date(value) : value\n if (Number.isNaN(d.getTime())) return ''\n // `timeZone: 'UTC'` keeps the SSR (server = UTC) and client (user's local tz)\n // renders identical — without it a published_at near a midnight boundary\n // formats to a different day on each side, triggering a React #418 hydration\n // text mismatch. Matches the convention in blog-metadata.tsx / investor-update.\n return d.toLocaleDateString('en-US', {\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n timeZone: 'UTC',\n })\n}\n\nexport function ArticleAuthorByline({\n author,\n avatar,\n bio,\n jobTitle,\n publishedAt,\n href,\n fallbackBio,\n size = 'md',\n proxyImageUrl,\n className,\n}: ArticleAuthorBylineProps) {\n // Optional runtime — `useChatRuntime` returns null outside a provider, so\n // the byline works in bare embeds (raw avatar URL) and proxies whenever the\n // host mounted a runtime with `imageProxyUrlPrefix` (the hub always does).\n const runtime = useChatRuntime()\n if (!author) return null\n\n const proxiedAvatar = avatar\n ? proxyImageUrl\n ? proxyImageUrl(avatar)\n : (getProxiedImageUrl(avatar, {\n proxyPrefix: runtime?.endpoints.imageProxyUrlPrefix,\n skipDomains: runtime?.endpoints.imageProxySkipDomains,\n directHttps: true,\n }) ?? avatar)\n : ''\n\n // Class-driven sizing (md = 56px, lg = 64px). The numeric pair feeds only\n // the Image element's intrinsic width/height attributes (required by the\n // Next image shim) — layout comes from the classes.\n const avatarSizeClass = size === 'lg' ? 'w-16 h-16' : 'w-14 h-14'\n const avatarIconClass = size === 'lg' ? 'w-8 h-8' : 'w-7 h-7'\n const avatarDim = size === 'lg' ? 64 : 56\n const formattedBio = formatBioText(bio ?? null)\n const dateLabel = publishedAt ? formatDate(publishedAt) : ''\n\n return (\n <div\n className={cn(\n 'bg-ods-card border border-ods-border rounded-lg p-6',\n 'flex flex-col md:flex-row gap-4 items-start',\n className,\n )}\n >\n {/* Avatar */}\n <div className=\"flex-shrink-0\">\n {avatar ? (\n <Image\n src={proxiedAvatar || avatar}\n alt={author}\n width={avatarDim}\n height={avatarDim}\n className={cn('rounded-full border-2 border-ods-border object-cover', avatarSizeClass)}\n />\n ) : (\n <div\n className={cn(\n 'rounded-full border-2 border-ods-border bg-ods-bg flex items-center justify-center',\n avatarSizeClass,\n )}\n >\n <User className={cn('text-ods-text-secondary', avatarIconClass)} />\n </div>\n )}\n </div>\n\n {/* Name + meta + bio */}\n <div className=\"flex-1 min-w-0\">\n <div className=\"flex flex-wrap items-baseline gap-x-3 gap-y-1\">\n <h3 className=\"text-h5 text-ods-text-primary\">\n {href ? (\n <Link href={href} className=\"hover:text-ods-accent transition-colors\">\n {author}\n </Link>\n ) : (\n author\n )}\n </h3>\n {dateLabel && (\n <span className=\"inline-flex items-center gap-1 font-body text-body-sm text-ods-text-secondary\">\n <Calendar className=\"h-3 w-3\" />\n {dateLabel}\n </span>\n )}\n </div>\n {jobTitle && (\n <p className=\"font-body text-body-sm text-ods-text-secondary mt-0.5\">\n {jobTitle}\n </p>\n )}\n {formattedBio ? (\n <p className=\"font-body text-body-md text-ods-text-secondary leading-relaxed mt-2\">\n {formattedBio}\n </p>\n ) : fallbackBio ? (\n <p className=\"font-body text-body-md text-ods-text-secondary italic mt-2\">\n {fallbackBio}\n </p>\n ) : null}\n </div>\n </div>\n )\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-33RSZGYQ.cjs","../src/components/shared/detail-page-skeleton.tsx","../src/components/shared/article-author-byline.tsx"],"names":["jsxs","jsx"],"mappings":"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","file":"/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-33RSZGYQ.cjs","sourcesContent":[null,"\"use client\";\n\nimport { PageLayout } from '../layout/page-layout';\n\nexport interface DetailPageSkeletonProps {\n metadataColumns?: number; // Number of metadata grid columns (default 4)\n showImageGallery?: boolean; // Show horizontal image gallery (default true)\n /** Render only the skeleton blocks, WITHOUT the self-contained page wrapper\n * — the caller supplies its own (e.g. `<PageShell>`) so the loading state\n * matches the loaded page's width, padding, and min-height. Default false\n * (self-contained `<PageLayout>` at the hub article width). */\n bare?: boolean;\n}\n\nexport function DetailPageSkeleton({\n metadataColumns = 4,\n showImageGallery = true,\n bare = false\n}: DetailPageSkeletonProps = {}) {\n const content = (\n <div className=\"space-y-6 md:space-y-10 animate-pulse\">\n {/* Title Block */}\n <div className=\"flex flex-col gap-6 w-full\">\n <div className=\"h-16 md:h-20 w-full max-w-3xl bg-ods-card rounded\"></div>\n </div>\n\n {/* Category Tags Skeleton */}\n <div className=\"flex flex-wrap gap-2 w-full\">\n <div className=\"h-8 w-32 bg-ods-card rounded\"></div>\n <div className=\"h-8 w-28 bg-ods-card rounded\"></div>\n <div className=\"h-8 w-36 bg-ods-card rounded\"></div>\n </div>\n\n {/* Metadata Grid Skeleton */}\n <div className={`grid grid-cols-1 md:grid-cols-${metadataColumns} border border-ods-border rounded-md overflow-hidden w-full`}>\n {Array.from({ length: metadataColumns }).map((_, i) => (\n <div key={i} className=\"bg-ods-card border-b md:border-b-0 md:border-r last:border-r-0 border-ods-border p-4\">\n <div className=\"h-6 w-24 bg-ods-border rounded mb-2\"></div>\n <div className=\"h-5 w-20 bg-ods-border rounded\"></div>\n </div>\n ))}\n </div>\n\n {/* Image Gallery Skeleton */}\n {showImageGallery && (\n <div className=\"flex gap-6 overflow-x-auto w-full\">\n {[1, 2, 3, 4, 5].map((i) => (\n <div key={i} className=\"shrink-0 w-[240px] h-[200px] bg-ods-card rounded-md border border-ods-border\"></div>\n ))}\n </div>\n )}\n\n {/* Featured Image Skeleton (for case studies) */}\n {!showImageGallery && (\n <div className=\"aspect-[2560/1366] w-full bg-ods-card rounded-md\"></div>\n )}\n\n {/* Content Sections Skeleton */}\n {[1, 2, 3].map((section) => (\n <div key={section} className=\"space-y-6\">\n <div className=\"h-16 w-64 bg-ods-card rounded\"></div>\n <div className=\"space-y-3\">\n <div className=\"h-6 w-full bg-ods-card rounded\"></div>\n <div className=\"h-6 w-full bg-ods-card rounded\"></div>\n <div className=\"h-6 w-4/5 bg-ods-card rounded\"></div>\n </div>\n </div>\n ))}\n </div>\n );\n if (bare) return content;\n return (\n <PageLayout\n showHeader={false}\n className=\"bg-ods-bg max-w-[1280px] mx-auto py-6 md:py-10 px-6 md:px-20\"\n >\n {content}\n </PageLayout>\n );\n}\n","'use client'\n\n/**\n * Shared \"author byline\" card used by article-shaped detail pages\n * (blog post, product release, onboarding guide, investor update).\n *\n * MOVED from the hub so any consuming app can embed it; hub call sites\n * import it directly and pass their platform-aware copy explicitly\n * (`fallbackBio={defaultAuthorFallbackBio()}` from the hub's app-config).\n *\n * Embed-readiness contract:\n * - `Link` / `Image` render through the embed-shims (plain `<a>` / `<img>`\n * in non-Next hosts; the real Next primitives once the host registers\n * them at app init).\n * - The avatar is proxied through the OPTIONAL ambient `ChatRuntime`\n * (`endpoints.imageProxyUrlPrefix`, same config `useProxiedImageUrl`\n * reads) — when no runtime is mounted the raw URL renders as-is, so the\n * component never throws outside a provider. Hosts can also inject\n * `proxyImageUrl` to bypass the runtime entirely.\n * - `fallbackBio` is a PLAIN prop (no app-config import): the lib has no\n * platform awareness; pass copy or leave it absent to render nothing.\n *\n * Render order: avatar → name + job title + date → bio (when present).\n * Returns null when `author` is empty (no card rendered).\n */\n\nimport React from 'react'\nimport { Calendar, User } from 'lucide-react'\nimport Image from '../../embed-shims/next-image'\nimport Link from '../../embed-shims/next-link'\nimport { cn } from '../../utils/cn'\nimport { formatBioText } from '../../utils/format'\nimport { getProxiedImageUrl } from '../../utils/image-proxy'\nimport { useChatRuntime } from '../../contexts/chat-runtime-context'\n\nexport interface ArticleAuthorBylineProps {\n /** Author display name. Required — block is hidden when null/empty. */\n author: string | null\n /** Avatar URL. Falls back to a placeholder when null. */\n avatar?: string | null\n /** Optional bio paragraph rendered below the name. */\n bio?: string | null\n /** Optional job title rendered immediately under the name. */\n jobTitle?: string | null\n /** Optional published date (ISO string or Date). Rendered next to the name. */\n publishedAt?: string | Date | null\n /** Optional link target for the author name (e.g. the author page). */\n href?: string | null\n /**\n * Fallback paragraph when `bio` is empty. Plain copy — the lib has no\n * platform/config awareness, so hosts that want a branded default\n * (\"Contributing author on the {platform} platform\") pass it explicitly\n * (the hub wrapper derives it from `getAppConfig()`). Absent/null ⇒\n * nothing renders below the name when `bio` is empty.\n */\n fallbackBio?: string | null\n /** Avatar size variant. `md` = 56px (default), `lg` = 64px. */\n size?: 'md' | 'lg'\n /**\n * Host-injected avatar-URL mapper. Wins over the ambient-runtime proxy\n * resolution. Use when the host proxies images outside the `ChatRuntime`\n * config (e.g. a bespoke CDN rewrite).\n */\n proxyImageUrl?: (url: string) => string\n className?: string\n}\n\nfunction formatDate(value: string | Date): string {\n const d = typeof value === 'string' ? new Date(value) : value\n if (Number.isNaN(d.getTime())) return ''\n // `timeZone: 'UTC'` keeps the SSR (server = UTC) and client (user's local tz)\n // renders identical — without it a published_at near a midnight boundary\n // formats to a different day on each side, triggering a React #418 hydration\n // text mismatch. Matches the convention in blog-metadata.tsx / investor-update.\n return d.toLocaleDateString('en-US', {\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n timeZone: 'UTC',\n })\n}\n\nexport function ArticleAuthorByline({\n author,\n avatar,\n bio,\n jobTitle,\n publishedAt,\n href,\n fallbackBio,\n size = 'md',\n proxyImageUrl,\n className,\n}: ArticleAuthorBylineProps) {\n // Optional runtime — `useChatRuntime` returns null outside a provider, so\n // the byline works in bare embeds (raw avatar URL) and proxies whenever the\n // host mounted a runtime with `imageProxyUrlPrefix` (the hub always does).\n const runtime = useChatRuntime()\n if (!author) return null\n\n const proxiedAvatar = avatar\n ? proxyImageUrl\n ? proxyImageUrl(avatar)\n : (getProxiedImageUrl(avatar, {\n proxyPrefix: runtime?.endpoints.imageProxyUrlPrefix,\n skipDomains: runtime?.endpoints.imageProxySkipDomains,\n directHttps: true,\n }) ?? avatar)\n : ''\n\n // Class-driven sizing (md = 56px, lg = 64px). The numeric pair feeds only\n // the Image element's intrinsic width/height attributes (required by the\n // Next image shim) — layout comes from the classes.\n const avatarSizeClass = size === 'lg' ? 'w-16 h-16' : 'w-14 h-14'\n const avatarIconClass = size === 'lg' ? 'w-8 h-8' : 'w-7 h-7'\n const avatarDim = size === 'lg' ? 64 : 56\n const formattedBio = formatBioText(bio ?? null)\n const dateLabel = publishedAt ? formatDate(publishedAt) : ''\n\n return (\n <div\n className={cn(\n 'bg-ods-card border border-ods-border rounded-lg p-6',\n 'flex flex-col md:flex-row gap-4 items-start',\n className,\n )}\n >\n {/* Avatar */}\n <div className=\"flex-shrink-0\">\n {avatar ? (\n <Image\n src={proxiedAvatar || avatar}\n alt={author}\n width={avatarDim}\n height={avatarDim}\n className={cn('rounded-full border-2 border-ods-border object-cover', avatarSizeClass)}\n />\n ) : (\n <div\n className={cn(\n 'rounded-full border-2 border-ods-border bg-ods-bg flex items-center justify-center',\n avatarSizeClass,\n )}\n >\n <User className={cn('text-ods-text-secondary', avatarIconClass)} />\n </div>\n )}\n </div>\n\n {/* Name + meta + bio */}\n <div className=\"flex-1 min-w-0\">\n <div className=\"flex flex-wrap items-baseline gap-x-3 gap-y-1\">\n <h3 className=\"text-h5 text-ods-text-primary\">\n {href ? (\n <Link href={href} className=\"hover:text-ods-accent transition-colors\">\n {author}\n </Link>\n ) : (\n author\n )}\n </h3>\n {dateLabel && (\n <span className=\"inline-flex items-center gap-1 font-body text-body-sm text-ods-text-secondary\">\n <Calendar className=\"h-3 w-3\" />\n {dateLabel}\n </span>\n )}\n </div>\n {jobTitle && (\n <p className=\"font-body text-body-sm text-ods-text-secondary mt-0.5\">\n {jobTitle}\n </p>\n )}\n {formattedBio ? (\n <p className=\"font-body text-body-md text-ods-text-secondary leading-relaxed mt-2\">\n {formattedBio}\n </p>\n ) : fallbackBio ? (\n <p className=\"font-body text-body-md text-ods-text-secondary italic mt-2\">\n {fallbackBio}\n </p>\n ) : null}\n </div>\n </div>\n )\n}\n"]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
init_unified_pagination,
|
|
4
4
|
unified_pagination_exports
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-PG6NTQ72.js";
|
|
6
6
|
import {
|
|
7
7
|
cn,
|
|
8
8
|
init_cn
|
|
@@ -172,4 +172,4 @@ export {
|
|
|
172
172
|
usePaginationLoading,
|
|
173
173
|
PersistentPaginationWrapper
|
|
174
174
|
};
|
|
175
|
-
//# sourceMappingURL=chunk-
|
|
175
|
+
//# sourceMappingURL=chunk-3H4NJO43.js.map
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
SelectValue,
|
|
12
12
|
Textarea,
|
|
13
13
|
useChatAttachments
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-P7RPGV3I.js";
|
|
15
15
|
import {
|
|
16
16
|
useContactSubmission,
|
|
17
17
|
useHumanitySignals
|
|
@@ -374,4 +374,4 @@ function ContactForm({
|
|
|
374
374
|
export {
|
|
375
375
|
ContactForm
|
|
376
376
|
};
|
|
377
|
-
//# sourceMappingURL=chunk-
|
|
377
|
+
//# sourceMappingURL=chunk-3KFGRSM7.js.map
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
resolveExternalNavigation,
|
|
7
7
|
resolveSourceIcon,
|
|
8
8
|
stripSameOriginToPath
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-P7RPGV3I.js";
|
|
10
10
|
import {
|
|
11
11
|
contentFetch,
|
|
12
12
|
useDebounce
|
|
@@ -370,4 +370,4 @@ export {
|
|
|
370
370
|
resolveSearchResultAction,
|
|
371
371
|
useDocSearch
|
|
372
372
|
};
|
|
373
|
-
//# sourceMappingURL=chunk-
|
|
373
|
+
//# sourceMappingURL=chunk-5OU7FNZD.js.map
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }"use client";
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var _chunkNBWJDAPFcjs = require('./chunk-NBWJDAPF.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
var
|
|
7
|
+
var _chunkXLZGBSNTcjs = require('./chunk-XLZGBSNT.cjs');
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _chunkYMXR3AFKcjs = require('./chunk-YMXR3AFK.cjs');
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
var
|
|
13
|
+
var _chunk33RSZGYQcjs = require('./chunk-33RSZGYQ.cjs');
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
var _chunkNKEOD2ADcjs = require('./chunk-NKEOD2AD.cjs');
|
|
@@ -46,7 +46,7 @@ var _chunkNKEOD2ADcjs = require('./chunk-NKEOD2AD.cjs');
|
|
|
46
46
|
|
|
47
47
|
|
|
48
48
|
|
|
49
|
-
var
|
|
49
|
+
var _chunkPCIN3YYWcjs = require('./chunk-PCIN3YYW.cjs');
|
|
50
50
|
|
|
51
51
|
|
|
52
52
|
|
|
@@ -77,8 +77,8 @@ var _chunkKI4EGKNVcjs = require('./chunk-KI4EGKNV.cjs');
|
|
|
77
77
|
_chunkKI4EGKNVcjs.init_cn.call(void 0, );
|
|
78
78
|
var _jsxruntime = require('react/jsx-runtime');
|
|
79
79
|
var DEFAULT_ENDPOINT = "/api/releases";
|
|
80
|
-
var DEFAULT_SEARCH_PARAM_KEY =
|
|
81
|
-
var DEFAULT_STATUS_PARAM_KEY =
|
|
80
|
+
var DEFAULT_SEARCH_PARAM_KEY = _chunkPCIN3YYWcjs.DEV_SECTION_PARAM_KEYS.search;
|
|
81
|
+
var DEFAULT_STATUS_PARAM_KEY = _chunkPCIN3YYWcjs.DEV_SECTION_PARAM_KEYS.releaseStatus;
|
|
82
82
|
var DEFAULT_PAGE_PARAM_KEY = "page";
|
|
83
83
|
function ReleaseRow({
|
|
84
84
|
release,
|
|
@@ -87,17 +87,17 @@ function ReleaseRow({
|
|
|
87
87
|
}) {
|
|
88
88
|
const runtime = _chunkCEAAOVCVcjs.useChatRuntime.call(void 0, );
|
|
89
89
|
const router = _chunkSSJNN5BScjs.useRouter.call(void 0, );
|
|
90
|
-
const cta =
|
|
90
|
+
const cta = _chunkPCIN3YYWcjs.resolveContentHref.call(void 0, _optionalChain([runtime, 'optionalAccess', _2 => _2.composeContentUrl]), {
|
|
91
91
|
type: "product_release",
|
|
92
92
|
slug: release.slug,
|
|
93
93
|
basePath,
|
|
94
94
|
platforms: release.product_release_platforms
|
|
95
95
|
});
|
|
96
|
-
const { target, rel } =
|
|
96
|
+
const { target, rel } = _chunkPCIN3YYWcjs.useEntityCardLink.call(void 0, { href: cta.href, targetPlatform: cta.targetPlatform });
|
|
97
97
|
const onClick = (e) => {
|
|
98
|
-
if (e.defaultPrevented ||
|
|
98
|
+
if (e.defaultPrevented || _chunkPCIN3YYWcjs.isModifierClick.call(void 0, e) || target === "_blank") return;
|
|
99
99
|
e.preventDefault();
|
|
100
|
-
|
|
100
|
+
_chunkPCIN3YYWcjs.executeNavigationImperative.call(void 0, {
|
|
101
101
|
runtime,
|
|
102
102
|
href: cta.href,
|
|
103
103
|
targetPlatform: cta.targetPlatform,
|
|
@@ -105,7 +105,7 @@ function ReleaseRow({
|
|
|
105
105
|
});
|
|
106
106
|
};
|
|
107
107
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
108
|
-
|
|
108
|
+
_chunkPCIN3YYWcjs.ProductReleaseCard,
|
|
109
109
|
{
|
|
110
110
|
size: "lg",
|
|
111
111
|
title: release.title,
|
|
@@ -121,7 +121,7 @@ function ProductReleasesView({
|
|
|
121
121
|
initialData,
|
|
122
122
|
itemsPerPage = 5,
|
|
123
123
|
basePath = "/releases",
|
|
124
|
-
buildCardProps =
|
|
124
|
+
buildCardProps = _chunkPCIN3YYWcjs.buildProductReleaseCardProps,
|
|
125
125
|
searchParamKey = DEFAULT_SEARCH_PARAM_KEY,
|
|
126
126
|
statusParamKey = DEFAULT_STATUS_PARAM_KEY,
|
|
127
127
|
pageParamKey = DEFAULT_PAGE_PARAM_KEY,
|
|
@@ -159,10 +159,10 @@ function ProductReleasesView({
|
|
|
159
159
|
router.replace(`${pathname}?${params.toString()}`, { scroll: false });
|
|
160
160
|
};
|
|
161
161
|
if (error) {
|
|
162
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkKI4EGKNVcjs.cn.call(void 0, "w-full", className), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
162
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkKI4EGKNVcjs.cn.call(void 0, "w-full", className), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCIN3YYWcjs.LoadError, { message: "Failed to load releases.", onRetry: reload }) });
|
|
163
163
|
}
|
|
164
164
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkKI4EGKNVcjs.cn.call(void 0, "w-full flex flex-col gap-[40px]", className), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-h-[600px]", children: showEmpty ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[600px] flex items-center justify-center", children: hasActiveFilters ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
165
|
-
|
|
165
|
+
_chunkYMXR3AFKcjs.EmptyState,
|
|
166
166
|
{
|
|
167
167
|
type: "search",
|
|
168
168
|
title: "No releases found",
|
|
@@ -172,7 +172,7 @@ function ProductReleasesView({
|
|
|
172
172
|
onCtaClick: resetFilters
|
|
173
173
|
}
|
|
174
174
|
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
175
|
-
|
|
175
|
+
_chunkYMXR3AFKcjs.EmptyState,
|
|
176
176
|
{
|
|
177
177
|
type: "generic",
|
|
178
178
|
title: "No releases available",
|
|
@@ -187,13 +187,13 @@ function ProductReleasesView({
|
|
|
187
187
|
"div",
|
|
188
188
|
{
|
|
189
189
|
style: { visibility: isLoading || hasData ? "visible" : "hidden" },
|
|
190
|
-
children: isLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
190
|
+
children: isLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCIN3YYWcjs.ProductReleaseCardSkeleton, { size: "lg" }) : release ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ReleaseRow, { release, basePath, buildCardProps }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCIN3YYWcjs.ProductReleaseCardSkeleton, { size: "lg" })
|
|
191
191
|
},
|
|
192
192
|
_nullishCoalesce(_optionalChain([release, 'optionalAccess', _5 => _5.id]), () => ( `slot-${i}`))
|
|
193
193
|
);
|
|
194
194
|
}) }),
|
|
195
195
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mt-6 md:mt-8 flex justify-center", children: isLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-12 m-3 w-64" }) : releases.length > 0 && totalPages > 1 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
196
|
-
|
|
196
|
+
_chunkNBWJDAPFcjs.PersistentPaginationWrapper,
|
|
197
197
|
{
|
|
198
198
|
isLoading: false,
|
|
199
199
|
currentPage,
|
|
@@ -235,10 +235,10 @@ function MediaGalleryStrip({ items, className }) {
|
|
|
235
235
|
mediaItem.id || index
|
|
236
236
|
);
|
|
237
237
|
}
|
|
238
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: tileClass, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
238
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: tileClass, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCIN3YYWcjs.Video, { url: mediaItem.media_url, layout: "native" }) }, mediaItem.id || index);
|
|
239
239
|
}) }),
|
|
240
240
|
galleryImages.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
241
|
-
|
|
241
|
+
_chunkPCIN3YYWcjs.ImageGalleryModal,
|
|
242
242
|
{
|
|
243
243
|
images: galleryImages,
|
|
244
244
|
isOpen: galleryOpen,
|
|
@@ -255,7 +255,7 @@ _chunkSSJNN5BScjs.init_next_navigation.call(void 0, );
|
|
|
255
255
|
|
|
256
256
|
var _lucidereact = require('lucide-react');
|
|
257
257
|
|
|
258
|
-
var DefaultMarkdownRenderer =
|
|
258
|
+
var DefaultMarkdownRenderer = _chunkPCIN3YYWcjs.RichMarkdownRenderer;
|
|
259
259
|
function ReleaseDetailPage({
|
|
260
260
|
authorHref,
|
|
261
261
|
slug,
|
|
@@ -272,8 +272,8 @@ function ReleaseDetailPage({
|
|
|
272
272
|
shell = true
|
|
273
273
|
}) {
|
|
274
274
|
const router = _chunkSSJNN5BScjs.useRouter.call(void 0, );
|
|
275
|
-
const captions =
|
|
276
|
-
const renderShell = (node) => shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
275
|
+
const captions = _chunkPCIN3YYWcjs.useCaptions.call(void 0, );
|
|
276
|
+
const renderShell = (node) => shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCIN3YYWcjs.PageShell, { children: node }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: node });
|
|
277
277
|
const { data: fetchedRelease, error, isLoading } = useRelease(initialData ? void 0 : slug);
|
|
278
278
|
const release = initialData || fetchedRelease;
|
|
279
279
|
const showBackButton = backButton !== false;
|
|
@@ -317,7 +317,7 @@ function ReleaseDetailPage({
|
|
|
317
317
|
return renderShell(
|
|
318
318
|
// Match the loaded page's top offset (TitleBlock's
|
|
319
319
|
// `pt-[var(--spacing-system-l)]`) so content doesn't jump on load.
|
|
320
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pt-[var(--spacing-system-l)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
320
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pt-[var(--spacing-system-l)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk33RSZGYQcjs.DetailPageSkeleton, { bare: true, metadataColumns: 4, showImageGallery: true }) })
|
|
321
321
|
);
|
|
322
322
|
}
|
|
323
323
|
if (error || !release) {
|
|
@@ -356,7 +356,7 @@ function ReleaseDetailPage({
|
|
|
356
356
|
const improvements = release.improvements;
|
|
357
357
|
return renderShell(
|
|
358
358
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
359
|
-
|
|
359
|
+
_chunkPCIN3YYWcjs.PageLayout,
|
|
360
360
|
{
|
|
361
361
|
title: releaseTitle,
|
|
362
362
|
subtitle: `Version: ${releaseVersion}`,
|
|
@@ -365,7 +365,7 @@ function ReleaseDetailPage({
|
|
|
365
365
|
backButton: showBackButton ? { label: backLabel, onClick: () => router.push(backHref) } : void 0,
|
|
366
366
|
children: [
|
|
367
367
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-6 md:space-y-8", children: [
|
|
368
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
368
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCIN3YYWcjs.EntityTagBadges, { tags: release.product_release_tags }),
|
|
369
369
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid grid-cols-1 md:grid-cols-4 border border-ods-border rounded-md overflow-hidden w-full", children: [
|
|
370
370
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "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__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-0", children: [
|
|
371
371
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h4 text-ods-text-primary", children: releaseType.toLocaleUpperCase() }),
|
|
@@ -376,11 +376,11 @@ function ReleaseDetailPage({
|
|
|
376
376
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h6 text-ods-text-secondary", children: "Release Status" })
|
|
377
377
|
] }) }),
|
|
378
378
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "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__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-0", children: [
|
|
379
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h4 text-ods-text-primary", children:
|
|
379
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h4 text-ods-text-primary", children: _chunkPCIN3YYWcjs.formatReleaseDate.call(void 0, releaseDate) }),
|
|
380
380
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h6 text-ods-text-secondary", children: "Release Date" })
|
|
381
381
|
] }) }),
|
|
382
382
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
383
|
-
|
|
383
|
+
_chunkPCIN3YYWcjs.EntityMetadataAuthorCell,
|
|
384
384
|
{
|
|
385
385
|
author: _nullishCoalesce(author, () => ( { full_name: null, avatar_url: null })),
|
|
386
386
|
authorHref: _optionalChain([author, 'optionalAccess', _6 => _6.full_name]) ? authorHref : void 0
|
|
@@ -398,9 +398,9 @@ function ReleaseDetailPage({
|
|
|
398
398
|
highlightVideoThumbnail,
|
|
399
399
|
title: releaseTitle,
|
|
400
400
|
videoBites,
|
|
401
|
-
bitesTitle:
|
|
401
|
+
bitesTitle: _chunkPCIN3YYWcjs.DEFAULT_VIDEO_BITES_TITLE,
|
|
402
402
|
filterPublishedBites: true,
|
|
403
|
-
bitesProfile:
|
|
403
|
+
bitesProfile: _chunkPCIN3YYWcjs.toStripProfile.call(void 0, author),
|
|
404
404
|
bitesHref: typeof release.slug === "string" ? `/releases/${release.slug}` : void 0,
|
|
405
405
|
srtContent: _optionalChain([release, 'optionalAccess', _7 => _7.srt_content]),
|
|
406
406
|
captionsUrl,
|
|
@@ -408,7 +408,7 @@ function ReleaseDetailPage({
|
|
|
408
408
|
}
|
|
409
409
|
) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
410
410
|
youtubeUrl && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
411
|
-
|
|
411
|
+
_chunkPCIN3YYWcjs.Video,
|
|
412
412
|
{
|
|
413
413
|
kind: "youtube",
|
|
414
414
|
url: youtubeUrl,
|
|
@@ -417,7 +417,7 @@ function ReleaseDetailPage({
|
|
|
417
417
|
}
|
|
418
418
|
),
|
|
419
419
|
!youtubeUrl && mainVideoUrl && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
420
|
-
|
|
420
|
+
_chunkPCIN3YYWcjs.Video,
|
|
421
421
|
{
|
|
422
422
|
url: mainVideoUrl,
|
|
423
423
|
srtContent: _optionalChain([release, 'optionalAccess', _8 => _8.srt_content]),
|
|
@@ -426,7 +426,7 @@ function ReleaseDetailPage({
|
|
|
426
426
|
}
|
|
427
427
|
),
|
|
428
428
|
highlightVideoUrl && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
429
|
-
|
|
429
|
+
_chunkPCIN3YYWcjs.Video,
|
|
430
430
|
{
|
|
431
431
|
url: highlightVideoUrl,
|
|
432
432
|
poster: highlightVideoThumbnail,
|
|
@@ -436,7 +436,7 @@ function ReleaseDetailPage({
|
|
|
436
436
|
)
|
|
437
437
|
] }),
|
|
438
438
|
releaseContent && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "text-h4 text-ods-text-primary", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MarkdownRenderer, { content: releaseContent }) }),
|
|
439
|
-
hasBreakingChanges && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
439
|
+
hasBreakingChanges && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCIN3YYWcjs.Card, { className: "border-ods-error bg-ods-error/10", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCIN3YYWcjs.CardContent, { className: "p-6", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3", children: [
|
|
440
440
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.AlertTriangle, { className: "h-6 w-6 text-ods-error" }),
|
|
441
441
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { children: [
|
|
442
442
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "text-h3 text-ods-error", children: "Breaking Changes" }),
|
|
@@ -444,7 +444,7 @@ function ReleaseDetailPage({
|
|
|
444
444
|
] })
|
|
445
445
|
] }) }) }),
|
|
446
446
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
447
|
-
|
|
447
|
+
_chunkPCIN3YYWcjs.ReleaseChangelogSection,
|
|
448
448
|
{
|
|
449
449
|
title: "Breaking Changes",
|
|
450
450
|
entries: breakingChanges || [],
|
|
@@ -455,7 +455,7 @@ function ReleaseDetailPage({
|
|
|
455
455
|
}
|
|
456
456
|
),
|
|
457
457
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
458
|
-
|
|
458
|
+
_chunkPCIN3YYWcjs.ReleaseChangelogSection,
|
|
459
459
|
{
|
|
460
460
|
title: "Features Added",
|
|
461
461
|
entries: featuresAdded || [],
|
|
@@ -465,7 +465,7 @@ function ReleaseDetailPage({
|
|
|
465
465
|
}
|
|
466
466
|
),
|
|
467
467
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
468
|
-
|
|
468
|
+
_chunkPCIN3YYWcjs.ReleaseChangelogSection,
|
|
469
469
|
{
|
|
470
470
|
title: "Bugs Fixed",
|
|
471
471
|
entries: bugFixed || [],
|
|
@@ -475,7 +475,7 @@ function ReleaseDetailPage({
|
|
|
475
475
|
}
|
|
476
476
|
),
|
|
477
477
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
478
|
-
|
|
478
|
+
_chunkPCIN3YYWcjs.ReleaseChangelogSection,
|
|
479
479
|
{
|
|
480
480
|
title: "Improvements",
|
|
481
481
|
entries: improvements || [],
|
|
@@ -506,7 +506,7 @@ function ReleaseDetailPage({
|
|
|
506
506
|
(() => {
|
|
507
507
|
const deliveryCount = deliveryData ? deliveryData.completed.length + deliveryData.inProgress.length : 0;
|
|
508
508
|
return deliveryLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DeliverySection, { data: deliveryData, isLoading: deliveryLoading }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
509
|
-
|
|
509
|
+
_chunkPCIN3YYWcjs.FadePreview,
|
|
510
510
|
{
|
|
511
511
|
hiddenCount: deliveryCount - 1,
|
|
512
512
|
collapsedHeight: 300,
|
|
@@ -518,7 +518,7 @@ function ReleaseDetailPage({
|
|
|
518
518
|
] }),
|
|
519
519
|
(_optionalChain([githubReleases, 'optionalAccess', _9 => _9.length]) || _optionalChain([knowledgeBaseLinks, 'optionalAccess', _10 => _10.length]) || migrationGuideUrl || documentationUrl) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-1 w-full", children: [
|
|
520
520
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h5 tracking-[-0.28px] text-ods-text-secondary", children: "Related Links" }),
|
|
521
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
521
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCIN3YYWcjs.Card, { className: "bg-ods-card border-ods-border p-6", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
|
|
522
522
|
githubReleases && githubReleases.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: githubReleases.map((ghRelease) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start gap-1", children: [
|
|
523
523
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk3M2MFP2Ycjs.GitHubIcon, { className: "shrink-0", width: 24, height: 24, color: "var(--color-text-secondary)" }),
|
|
524
524
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h4 text-ods-text-primary", children: "Github Release" }),
|
|
@@ -592,7 +592,7 @@ function ReleaseDetailPage({
|
|
|
592
592
|
// src/components/shared/product-release/release-detail-skeleton.tsx
|
|
593
593
|
|
|
594
594
|
function ReleaseDetailSkeleton() {
|
|
595
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
595
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk33RSZGYQcjs.DetailPageSkeleton, { metadataColumns: 4, showImageGallery: true });
|
|
596
596
|
}
|
|
597
597
|
|
|
598
598
|
// src/components/shared/roadmap/use-roadmap-voting.ts
|
|
@@ -753,10 +753,10 @@ function RoadmapGridSingle({
|
|
|
753
753
|
// `useScrollToHash` in `roadmap-view.tsx` finds the card by id
|
|
754
754
|
// and scrolls.
|
|
755
755
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
756
|
-
|
|
756
|
+
_chunkPCIN3YYWcjs.RoadmapCard,
|
|
757
757
|
{
|
|
758
758
|
item,
|
|
759
|
-
id:
|
|
759
|
+
id: _chunkPCIN3YYWcjs.devSectionAnchorId.call(void 0, "roadmap", item.id),
|
|
760
760
|
userVote: getVote(item.id),
|
|
761
761
|
onVote: (voteType) => onVote(item.id, voteType),
|
|
762
762
|
isVoting: votingTasks.has(item.id)
|
|
@@ -836,7 +836,7 @@ function RoadmapGrid({
|
|
|
836
836
|
}, [hasActiveFilters, sortedQuartersKey, isInitialized, quartersToKeepClosed]);
|
|
837
837
|
if (items.length === 0) {
|
|
838
838
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
839
|
-
|
|
839
|
+
_chunkYMXR3AFKcjs.EmptyState,
|
|
840
840
|
{
|
|
841
841
|
type: "generic",
|
|
842
842
|
title: "No roadmap items",
|
|
@@ -857,7 +857,7 @@ function RoadmapGrid({
|
|
|
857
857
|
);
|
|
858
858
|
}
|
|
859
859
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
860
|
-
|
|
860
|
+
_chunkPCIN3YYWcjs.Accordion,
|
|
861
861
|
{
|
|
862
862
|
type: "multiple",
|
|
863
863
|
value: expandedQuarters,
|
|
@@ -867,13 +867,13 @@ function RoadmapGrid({
|
|
|
867
867
|
const itemCount = _optionalChain([itemsByQuarter, 'access', _19 => _19[quarter], 'optionalAccess', _20 => _20.length]) || 0;
|
|
868
868
|
const isExpanded = expandedQuarters.includes(quarter);
|
|
869
869
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
870
|
-
|
|
870
|
+
_chunkPCIN3YYWcjs.AccordionItem,
|
|
871
871
|
{
|
|
872
872
|
value: quarter,
|
|
873
873
|
id: `quarter-${quarter.replace(/\s+/g, "-").toLowerCase()}`,
|
|
874
874
|
className: "border-0",
|
|
875
875
|
children: [
|
|
876
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
876
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCIN3YYWcjs.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__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3", children: [
|
|
877
877
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
878
878
|
"h3",
|
|
879
879
|
{
|
|
@@ -903,7 +903,7 @@ function RoadmapGrid({
|
|
|
903
903
|
}
|
|
904
904
|
)
|
|
905
905
|
] }) }),
|
|
906
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
906
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCIN3YYWcjs.AccordionContent, { className: "pt-4 pb-0 overflow-hidden data-[state=closed]:animate-none data-[state=open]:animate-none", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
907
907
|
RoadmapGridSingle,
|
|
908
908
|
{
|
|
909
909
|
items: itemsByQuarter[quarter],
|
|
@@ -954,8 +954,8 @@ function RoadmapGridSkeleton({ count = 4, showLeftMargin = true }) {
|
|
|
954
954
|
|
|
955
955
|
|
|
956
956
|
var DEFAULT_ENDPOINT2 = "/api/roadmap";
|
|
957
|
-
var DEFAULT_SEARCH_PARAM_KEY2 =
|
|
958
|
-
var DEFAULT_STATUS_PARAM_KEY2 =
|
|
957
|
+
var DEFAULT_SEARCH_PARAM_KEY2 = _chunkPCIN3YYWcjs.DEV_SECTION_PARAM_KEYS.search;
|
|
958
|
+
var DEFAULT_STATUS_PARAM_KEY2 = _chunkPCIN3YYWcjs.DEV_SECTION_PARAM_KEYS.status;
|
|
959
959
|
function RoadmapView({
|
|
960
960
|
endpoint = DEFAULT_ENDPOINT2,
|
|
961
961
|
initialItems,
|
|
@@ -981,7 +981,7 @@ function RoadmapView({
|
|
|
981
981
|
const items = _nullishCoalesce(_optionalChain([data, 'optionalAccess', _21 => _21.items]), () => ( []));
|
|
982
982
|
_chunkNK3M6F5Acjs.useScrollToHash.call(void 0, data, { headerOffset: _chunkNK3M6F5Acjs.STICKY_HEADER_OFFSET_PX });
|
|
983
983
|
if (error) {
|
|
984
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
984
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCIN3YYWcjs.LoadError, { message: "Failed to load roadmap.", onRetry: reload });
|
|
985
985
|
}
|
|
986
986
|
if (isLoading && !data) {
|
|
987
987
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RoadmapGridSkeleton, { showLeftMargin });
|
|
@@ -1038,7 +1038,7 @@ function DeliveryTable({ items, isLoading = false }) {
|
|
|
1038
1038
|
"div",
|
|
1039
1039
|
{
|
|
1040
1040
|
className: "border-b border-ods-border last:border-b-0",
|
|
1041
|
-
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1041
|
+
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXLZGBSNTcjs.DeliveryRow, { item, id: _chunkPCIN3YYWcjs.devSectionAnchorId.call(void 0, "delivery", item.id) })
|
|
1042
1042
|
},
|
|
1043
1043
|
item.id
|
|
1044
1044
|
)
|
|
@@ -1050,8 +1050,8 @@ function DeliveryTable({ items, isLoading = false }) {
|
|
|
1050
1050
|
|
|
1051
1051
|
var DEFAULT_COMPLETED_ENDPOINT = "/api/delivery/completed";
|
|
1052
1052
|
var DEFAULT_IN_PROGRESS_ENDPOINT = "/api/delivery/in-progress";
|
|
1053
|
-
var DEFAULT_SEARCH_PARAM_KEY3 =
|
|
1054
|
-
var DEFAULT_TASK_TYPE_PARAM_KEY =
|
|
1053
|
+
var DEFAULT_SEARCH_PARAM_KEY3 = _chunkPCIN3YYWcjs.DEV_SECTION_PARAM_KEYS.search;
|
|
1054
|
+
var DEFAULT_TASK_TYPE_PARAM_KEY = _chunkPCIN3YYWcjs.DEV_SECTION_PARAM_KEYS.deliveryTaskType;
|
|
1055
1055
|
function DeliveryLists({
|
|
1056
1056
|
completedApiEndpoint = DEFAULT_COMPLETED_ENDPOINT,
|
|
1057
1057
|
inProgressApiEndpoint = DEFAULT_IN_PROGRESS_ENDPOINT,
|
|
@@ -1112,11 +1112,11 @@ function DeliveryLists({
|
|
|
1112
1112
|
const hasActiveFilters = searchQuery !== "" || taskTypeFilter !== "all";
|
|
1113
1113
|
const hasResults = showCompleted && filteredCompleted.length > 0 || showInProgress && filteredInProgress.length > 0;
|
|
1114
1114
|
if (error) {
|
|
1115
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1115
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCIN3YYWcjs.LoadError, { message: error, onRetry: () => window.location.reload() }) });
|
|
1116
1116
|
}
|
|
1117
1117
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "w-full flex flex-col gap-[40px]", children: [
|
|
1118
1118
|
!isLoading && !hasResults && (hasActiveFilters ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1119
|
-
|
|
1119
|
+
_chunkYMXR3AFKcjs.EmptyState,
|
|
1120
1120
|
{
|
|
1121
1121
|
type: "search",
|
|
1122
1122
|
title: "No tasks found",
|
|
@@ -1131,7 +1131,7 @@ function DeliveryLists({
|
|
|
1131
1131
|
}
|
|
1132
1132
|
}
|
|
1133
1133
|
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1134
|
-
|
|
1134
|
+
_chunkYMXR3AFKcjs.EmptyState,
|
|
1135
1135
|
{
|
|
1136
1136
|
type: "generic",
|
|
1137
1137
|
title: "No tasks available",
|
|
@@ -1233,7 +1233,7 @@ function LegalDocumentPage({
|
|
|
1233
1233
|
initialData = null,
|
|
1234
1234
|
initialLastUpdatedLabel = null,
|
|
1235
1235
|
apiEndpoint,
|
|
1236
|
-
MarkdownRenderer =
|
|
1236
|
+
MarkdownRenderer = _chunkPCIN3YYWcjs.RichMarkdownRenderer,
|
|
1237
1237
|
backButton,
|
|
1238
1238
|
shell = true
|
|
1239
1239
|
}) {
|
|
@@ -1243,10 +1243,10 @@ function LegalDocumentPage({
|
|
|
1243
1243
|
label: _nullishCoalesce(_optionalChain([backButton, 'optionalAccess', _24 => _24.label]), () => ( "Back to home")),
|
|
1244
1244
|
onClick: () => router.push(_nullishCoalesce(_optionalChain([backButton, 'optionalAccess', _25 => _25.href]), () => ( "/")))
|
|
1245
1245
|
};
|
|
1246
|
-
const fallbackLastUpdatedLabel = _optionalChain([data, 'optionalAccess', _26 => _26.lastSynced]) != null ?
|
|
1246
|
+
const fallbackLastUpdatedLabel = _optionalChain([data, 'optionalAccess', _26 => _26.lastSynced]) != null ? _chunkPCIN3YYWcjs.formatLegalDate.call(void 0, data.lastSynced) : null;
|
|
1247
1247
|
const effectiveLastUpdatedLabel = _nullishCoalesce(initialLastUpdatedLabel, () => ( fallbackLastUpdatedLabel));
|
|
1248
1248
|
const subtitle = effectiveLastUpdatedLabel ? `Last Updated: ${effectiveLastUpdatedLabel}` : fallbackDescription;
|
|
1249
|
-
const inner = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
1249
|
+
const inner = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCIN3YYWcjs.PageLayout, { title, subtitle, backButton: backCfg, titleSize: "h1", titleWrap: true, children: [
|
|
1250
1250
|
_optionalChain([data, 'optionalAccess', _27 => _27.sourceFile]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "text-h6 text-ods-text-secondary opacity-75", children: [
|
|
1251
1251
|
"Source: ",
|
|
1252
1252
|
data.sourceFile
|
|
@@ -1293,7 +1293,7 @@ function LegalDocumentPage({
|
|
|
1293
1293
|
] })
|
|
1294
1294
|
] }) }) }) }) })
|
|
1295
1295
|
] });
|
|
1296
|
-
return shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1296
|
+
return shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCIN3YYWcjs.PageShell, { children: inner }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: inner });
|
|
1297
1297
|
}
|
|
1298
1298
|
|
|
1299
1299
|
|
|
@@ -1310,4 +1310,4 @@ function LegalDocumentPage({
|
|
|
1310
1310
|
|
|
1311
1311
|
|
|
1312
1312
|
exports.ProductReleasesView = ProductReleasesView; exports.MediaGalleryStrip = MediaGalleryStrip; exports.ReleaseDetailPage = ReleaseDetailPage; exports.ReleaseDetailSkeleton = ReleaseDetailSkeleton; exports.useRoadmapVoting = useRoadmapVoting; exports.RoadmapGrid = RoadmapGrid; exports.RoadmapGridSkeleton = RoadmapGridSkeleton; exports.RoadmapView = RoadmapView; exports.DeliveryTable = DeliveryTable; exports.DeliveryLists = DeliveryLists; exports.useLegalDocs = useLegalDocs; exports.LegalDocumentPage = LegalDocumentPage;
|
|
1313
|
-
//# sourceMappingURL=chunk-
|
|
1313
|
+
//# sourceMappingURL=chunk-7YUCTU47.cjs.map
|