@flamingo-stack/openframe-frontend-core 0.0.509 → 0.0.510
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-KXZO2WZX.js → chunk-2AASLY6D.js} +2 -2
- package/dist/{chunk-UQDMJ6DH.cjs → chunk-2RLI5XVI.cjs} +13 -13
- package/dist/{chunk-UQDMJ6DH.cjs.map → chunk-2RLI5XVI.cjs.map} +1 -1
- package/dist/{chunk-YQEPRYT5.cjs → chunk-53JKCFFE.cjs} +7 -7
- package/dist/{chunk-YQEPRYT5.cjs.map → chunk-53JKCFFE.cjs.map} +1 -1
- package/dist/{chunk-K5MSCMDK.cjs → chunk-5AZZQQYS.cjs} +37 -37
- package/dist/{chunk-K5MSCMDK.cjs.map → chunk-5AZZQQYS.cjs.map} +1 -1
- package/dist/{chunk-C7OY3PQP.cjs → chunk-5CDPRCPS.cjs} +11 -11
- package/dist/{chunk-C7OY3PQP.cjs.map → chunk-5CDPRCPS.cjs.map} +1 -1
- package/dist/{chunk-DYPYR7FR.cjs → chunk-6TL5XIAW.cjs} +87 -87
- package/dist/{chunk-DYPYR7FR.cjs.map → chunk-6TL5XIAW.cjs.map} +1 -1
- package/dist/{chunk-7WZHBQ4J.js → chunk-CTMLY2GN.js} +2 -2
- package/dist/{chunk-XGIFOHKE.js → chunk-DBR5JLX3.js} +2 -2
- package/dist/{chunk-QJJISLPA.cjs → chunk-EJ3EBYNV.cjs} +26 -26
- package/dist/{chunk-QJJISLPA.cjs.map → chunk-EJ3EBYNV.cjs.map} +1 -1
- package/dist/{chunk-AEELJC4N.js → chunk-FEGEC6FY.js} +165 -158
- package/dist/{chunk-AEELJC4N.js.map → chunk-FEGEC6FY.js.map} +1 -1
- package/dist/{chunk-I2B6X77L.js → chunk-HCZJZMU7.js} +2 -2
- package/dist/{chunk-3QSR22IC.js → chunk-HX4CJYXL.js} +6 -6
- package/dist/{chunk-BT2WWDFP.cjs → chunk-J2JUAS4C.cjs} +5 -5
- package/dist/{chunk-BT2WWDFP.cjs.map → chunk-J2JUAS4C.cjs.map} +1 -1
- package/dist/{chunk-LBAKLT6T.cjs → chunk-JMBIGH4H.cjs} +61 -61
- package/dist/{chunk-LBAKLT6T.cjs.map → chunk-JMBIGH4H.cjs.map} +1 -1
- package/dist/{chunk-PO5O654H.js → chunk-JOCFPAS6.js} +4 -4
- package/dist/{chunk-DC2TKS7C.js → chunk-LBOWSKGM.js} +2 -2
- package/dist/{chunk-V3ZAAFE3.js → chunk-MLGGF24T.js} +5 -5
- package/dist/{chunk-4G5TLHJD.cjs → chunk-RB2EW6IZ.cjs} +544 -537
- package/dist/chunk-RB2EW6IZ.cjs.map +1 -0
- package/dist/{chunk-M37PBG4N.cjs → chunk-RHQ7BJKK.cjs} +31 -31
- package/dist/{chunk-M37PBG4N.cjs.map → chunk-RHQ7BJKK.cjs.map} +1 -1
- package/dist/{chunk-CIOLOQKQ.cjs → chunk-RJ3D3PE2.cjs} +4 -4
- package/dist/{chunk-CIOLOQKQ.cjs.map → chunk-RJ3D3PE2.cjs.map} +1 -1
- package/dist/{chunk-K6QTZ7CZ.js → chunk-SRYV4H3M.js} +2 -2
- package/dist/{chunk-72XAID7Y.js → chunk-TBGSQTJK.js} +4 -4
- package/dist/{chunk-LFUPI7VX.js → chunk-UWPT23SA.js} +2 -2
- package/dist/{chunk-KBN7PMFT.js → chunk-VDJF4ZAU.js} +2 -2
- package/dist/{chunk-TWSKTJHW.js → chunk-WNOGR5AA.js} +2 -2
- package/dist/{chunk-3CGZPAGR.cjs → chunk-WSAPKKDU.cjs} +3 -3
- package/dist/{chunk-3CGZPAGR.cjs.map → chunk-WSAPKKDU.cjs.map} +1 -1
- package/dist/{chunk-2T4GTV25.cjs → chunk-XJVRAKEX.cjs} +9 -9
- package/dist/{chunk-2T4GTV25.cjs.map → chunk-XJVRAKEX.cjs.map} +1 -1
- package/dist/{chunk-T7MCSA55.cjs → chunk-Z35QWWJH.cjs} +26 -26
- package/dist/{chunk-T7MCSA55.cjs.map → chunk-Z35QWWJH.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 +2 -2
- package/dist/components/features/index.js +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 +132 -132
- package/dist/components/index.js +11 -11
- package/dist/components/meeting-scheduler/index.cjs +34 -34
- package/dist/components/meeting-scheduler/index.js +3 -3
- package/dist/components/navigation/header.d.ts.map +1 -1
- 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 +2 -2
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/src/components/navigation/header.tsx +21 -16
- package/src/stories/TopNavigation.stories.tsx +1 -1
- package/dist/chunk-4G5TLHJD.cjs.map +0 -1
- /package/dist/{chunk-KXZO2WZX.js.map → chunk-2AASLY6D.js.map} +0 -0
- /package/dist/{chunk-7WZHBQ4J.js.map → chunk-CTMLY2GN.js.map} +0 -0
- /package/dist/{chunk-XGIFOHKE.js.map → chunk-DBR5JLX3.js.map} +0 -0
- /package/dist/{chunk-I2B6X77L.js.map → chunk-HCZJZMU7.js.map} +0 -0
- /package/dist/{chunk-3QSR22IC.js.map → chunk-HX4CJYXL.js.map} +0 -0
- /package/dist/{chunk-PO5O654H.js.map → chunk-JOCFPAS6.js.map} +0 -0
- /package/dist/{chunk-DC2TKS7C.js.map → chunk-LBOWSKGM.js.map} +0 -0
- /package/dist/{chunk-V3ZAAFE3.js.map → chunk-MLGGF24T.js.map} +0 -0
- /package/dist/{chunk-K6QTZ7CZ.js.map → chunk-SRYV4H3M.js.map} +0 -0
- /package/dist/{chunk-72XAID7Y.js.map → chunk-TBGSQTJK.js.map} +0 -0
- /package/dist/{chunk-LFUPI7VX.js.map → chunk-UWPT23SA.js.map} +0 -0
- /package/dist/{chunk-KBN7PMFT.js.map → chunk-VDJF4ZAU.js.map} +0 -0
- /package/dist/{chunk-TWSKTJHW.js.map → chunk-WNOGR5AA.js.map} +0 -0
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
init_unified_pagination,
|
|
4
4
|
unified_pagination_exports
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-WNOGR5AA.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-HCZJZMU7.js.map
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import {
|
|
3
3
|
PersistentPaginationWrapper
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-HCZJZMU7.js";
|
|
5
5
|
import {
|
|
6
6
|
DeliveryRow
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-UWPT23SA.js";
|
|
8
8
|
import {
|
|
9
9
|
EmptyState
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-WNOGR5AA.js";
|
|
11
11
|
import {
|
|
12
12
|
DetailPageSkeleton
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-2AASLY6D.js";
|
|
14
14
|
import {
|
|
15
15
|
useSelfFetch
|
|
16
16
|
} from "./chunk-RG2WRBPT.js";
|
|
@@ -45,7 +45,7 @@ import {
|
|
|
45
45
|
resolveContentHref,
|
|
46
46
|
toStripProfile,
|
|
47
47
|
useEntityCardLink
|
|
48
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-FEGEC6FY.js";
|
|
49
49
|
import {
|
|
50
50
|
STICKY_HEADER_OFFSET_PX,
|
|
51
51
|
contentFetch,
|
|
@@ -1303,4 +1303,4 @@ export {
|
|
|
1303
1303
|
useLegalDocs,
|
|
1304
1304
|
LegalDocumentPage
|
|
1305
1305
|
};
|
|
1306
|
-
//# sourceMappingURL=chunk-
|
|
1306
|
+
//# sourceMappingURL=chunk-HX4CJYXL.js.map
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var _chunkRB2EW6IZcjs = require('./chunk-RB2EW6IZ.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
|
+
_chunkRB2EW6IZcjs.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 = _chunk7OPWSWEJcjs.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(_chunkRB2EW6IZcjs.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 = _chunkRB2EW6IZcjs.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-J2JUAS4C.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-BT2WWDFP.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-BT2WWDFP.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-J2JUAS4C.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-J2JUAS4C.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,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 _chunkWSAPKKDUcjs = require('./chunk-WSAPKKDU.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
var
|
|
7
|
+
var _chunk2RLI5XVIcjs = require('./chunk-2RLI5XVI.cjs');
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _chunkRJ3D3PE2cjs = require('./chunk-RJ3D3PE2.cjs');
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
var
|
|
13
|
+
var _chunkJ2JUAS4Ccjs = require('./chunk-J2JUAS4C.cjs');
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
var _chunk7VUKIWF6cjs = require('./chunk-7VUKIWF6.cjs');
|
|
@@ -45,7 +45,7 @@ var _chunk7VUKIWF6cjs = require('./chunk-7VUKIWF6.cjs');
|
|
|
45
45
|
|
|
46
46
|
|
|
47
47
|
|
|
48
|
-
var
|
|
48
|
+
var _chunkRB2EW6IZcjs = require('./chunk-RB2EW6IZ.cjs');
|
|
49
49
|
|
|
50
50
|
|
|
51
51
|
|
|
@@ -76,8 +76,8 @@ var _chunkA62C4C4Vcjs = require('./chunk-A62C4C4V.cjs');
|
|
|
76
76
|
_chunkA62C4C4Vcjs.init_cn.call(void 0, );
|
|
77
77
|
var _jsxruntime = require('react/jsx-runtime');
|
|
78
78
|
var DEFAULT_ENDPOINT = "/api/releases";
|
|
79
|
-
var DEFAULT_SEARCH_PARAM_KEY =
|
|
80
|
-
var DEFAULT_STATUS_PARAM_KEY =
|
|
79
|
+
var DEFAULT_SEARCH_PARAM_KEY = _chunkRB2EW6IZcjs.DEV_SECTION_PARAM_KEYS.search;
|
|
80
|
+
var DEFAULT_STATUS_PARAM_KEY = _chunkRB2EW6IZcjs.DEV_SECTION_PARAM_KEYS.releaseStatus;
|
|
81
81
|
var DEFAULT_PAGE_PARAM_KEY = "page";
|
|
82
82
|
function ReleaseRow({
|
|
83
83
|
release,
|
|
@@ -86,17 +86,17 @@ function ReleaseRow({
|
|
|
86
86
|
}) {
|
|
87
87
|
const runtime = _chunk7OPWSWEJcjs.useChatRuntime.call(void 0, );
|
|
88
88
|
const router = _chunkSSJNN5BScjs.useRouter.call(void 0, );
|
|
89
|
-
const cta =
|
|
89
|
+
const cta = _chunkRB2EW6IZcjs.resolveContentHref.call(void 0, _optionalChain([runtime, 'optionalAccess', _2 => _2.composeContentUrl]), {
|
|
90
90
|
type: "product_release",
|
|
91
91
|
slug: release.slug,
|
|
92
92
|
basePath,
|
|
93
93
|
platforms: release.product_release_platforms
|
|
94
94
|
});
|
|
95
|
-
const { target, rel } =
|
|
95
|
+
const { target, rel } = _chunkRB2EW6IZcjs.useEntityCardLink.call(void 0, { href: cta.href, targetPlatform: cta.targetPlatform });
|
|
96
96
|
const onClick = (e) => {
|
|
97
|
-
if (e.defaultPrevented ||
|
|
97
|
+
if (e.defaultPrevented || _chunkRB2EW6IZcjs.isModifierClick.call(void 0, e) || target === "_blank") return;
|
|
98
98
|
e.preventDefault();
|
|
99
|
-
|
|
99
|
+
_chunkRB2EW6IZcjs.executeNavigationImperative.call(void 0, {
|
|
100
100
|
runtime,
|
|
101
101
|
href: cta.href,
|
|
102
102
|
targetPlatform: cta.targetPlatform,
|
|
@@ -104,7 +104,7 @@ function ReleaseRow({
|
|
|
104
104
|
});
|
|
105
105
|
};
|
|
106
106
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
107
|
-
|
|
107
|
+
_chunkRB2EW6IZcjs.ProductReleaseCard,
|
|
108
108
|
{
|
|
109
109
|
size: "lg",
|
|
110
110
|
title: release.title,
|
|
@@ -120,7 +120,7 @@ function ProductReleasesView({
|
|
|
120
120
|
initialData,
|
|
121
121
|
itemsPerPage = 5,
|
|
122
122
|
basePath = "/releases",
|
|
123
|
-
buildCardProps =
|
|
123
|
+
buildCardProps = _chunkRB2EW6IZcjs.buildProductReleaseCardProps,
|
|
124
124
|
searchParamKey = DEFAULT_SEARCH_PARAM_KEY,
|
|
125
125
|
statusParamKey = DEFAULT_STATUS_PARAM_KEY,
|
|
126
126
|
pageParamKey = DEFAULT_PAGE_PARAM_KEY,
|
|
@@ -158,10 +158,10 @@ function ProductReleasesView({
|
|
|
158
158
|
router.replace(`${pathname}?${params.toString()}`, { scroll: false });
|
|
159
159
|
};
|
|
160
160
|
if (error) {
|
|
161
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkA62C4C4Vcjs.cn.call(void 0, "w-full", className), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
161
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkA62C4C4Vcjs.cn.call(void 0, "w-full", className), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRB2EW6IZcjs.LoadError, { message: "Failed to load releases.", onRetry: reload }) });
|
|
162
162
|
}
|
|
163
163
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkA62C4C4Vcjs.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,
|
|
164
|
-
|
|
164
|
+
_chunkRJ3D3PE2cjs.EmptyState,
|
|
165
165
|
{
|
|
166
166
|
type: "search",
|
|
167
167
|
title: "No releases found",
|
|
@@ -171,7 +171,7 @@ function ProductReleasesView({
|
|
|
171
171
|
onCtaClick: resetFilters
|
|
172
172
|
}
|
|
173
173
|
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
174
|
-
|
|
174
|
+
_chunkRJ3D3PE2cjs.EmptyState,
|
|
175
175
|
{
|
|
176
176
|
type: "generic",
|
|
177
177
|
title: "No releases available",
|
|
@@ -186,13 +186,13 @@ function ProductReleasesView({
|
|
|
186
186
|
"div",
|
|
187
187
|
{
|
|
188
188
|
style: { visibility: isLoading || hasData ? "visible" : "hidden" },
|
|
189
|
-
children: isLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
189
|
+
children: isLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRB2EW6IZcjs.ProductReleaseCardSkeleton, { size: "lg" }) : release ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ReleaseRow, { release, basePath, buildCardProps }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRB2EW6IZcjs.ProductReleaseCardSkeleton, { size: "lg" })
|
|
190
190
|
},
|
|
191
191
|
_nullishCoalesce(_optionalChain([release, 'optionalAccess', _5 => _5.id]), () => ( `slot-${i}`))
|
|
192
192
|
);
|
|
193
193
|
}) }),
|
|
194
194
|
/* @__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,
|
|
195
|
-
|
|
195
|
+
_chunkWSAPKKDUcjs.PersistentPaginationWrapper,
|
|
196
196
|
{
|
|
197
197
|
isLoading: false,
|
|
198
198
|
currentPage,
|
|
@@ -234,10 +234,10 @@ function MediaGalleryStrip({ items, className }) {
|
|
|
234
234
|
mediaItem.id || index
|
|
235
235
|
);
|
|
236
236
|
}
|
|
237
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: tileClass, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
237
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: tileClass, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRB2EW6IZcjs.Video, { url: mediaItem.media_url, layout: "native" }) }, mediaItem.id || index);
|
|
238
238
|
}) }),
|
|
239
239
|
galleryImages.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
240
|
-
|
|
240
|
+
_chunkRB2EW6IZcjs.ImageGalleryModal,
|
|
241
241
|
{
|
|
242
242
|
images: galleryImages,
|
|
243
243
|
isOpen: galleryOpen,
|
|
@@ -254,7 +254,7 @@ _chunkSSJNN5BScjs.init_next_navigation.call(void 0, );
|
|
|
254
254
|
|
|
255
255
|
var _lucidereact = require('lucide-react');
|
|
256
256
|
|
|
257
|
-
var DefaultMarkdownRenderer =
|
|
257
|
+
var DefaultMarkdownRenderer = _chunkRB2EW6IZcjs.RichMarkdownRenderer;
|
|
258
258
|
function ReleaseDetailPage({
|
|
259
259
|
authorHref,
|
|
260
260
|
slug,
|
|
@@ -271,7 +271,7 @@ function ReleaseDetailPage({
|
|
|
271
271
|
shell = true
|
|
272
272
|
}) {
|
|
273
273
|
const router = _chunkSSJNN5BScjs.useRouter.call(void 0, );
|
|
274
|
-
const renderShell = (node) => shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
274
|
+
const renderShell = (node) => shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRB2EW6IZcjs.PageShell, { children: node }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: node });
|
|
275
275
|
const { data: fetchedRelease, error, isLoading } = useRelease(initialData ? void 0 : slug);
|
|
276
276
|
const release = initialData || fetchedRelease;
|
|
277
277
|
const showBackButton = backButton !== false;
|
|
@@ -315,7 +315,7 @@ function ReleaseDetailPage({
|
|
|
315
315
|
return renderShell(
|
|
316
316
|
// Match the loaded page's top offset (TitleBlock's
|
|
317
317
|
// `pt-[var(--spacing-system-l)]`) so content doesn't jump on load.
|
|
318
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pt-[var(--spacing-system-l)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
318
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pt-[var(--spacing-system-l)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJ2JUAS4Ccjs.DetailPageSkeleton, { bare: true, metadataColumns: 4, showImageGallery: true }) })
|
|
319
319
|
);
|
|
320
320
|
}
|
|
321
321
|
if (error || !release) {
|
|
@@ -351,7 +351,7 @@ function ReleaseDetailPage({
|
|
|
351
351
|
const improvements = release.improvements;
|
|
352
352
|
return renderShell(
|
|
353
353
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
354
|
-
|
|
354
|
+
_chunkRB2EW6IZcjs.PageLayout,
|
|
355
355
|
{
|
|
356
356
|
title: releaseTitle,
|
|
357
357
|
subtitle: `Version: ${releaseVersion}`,
|
|
@@ -360,7 +360,7 @@ function ReleaseDetailPage({
|
|
|
360
360
|
backButton: showBackButton ? { label: backLabel, onClick: () => router.push(backHref) } : void 0,
|
|
361
361
|
children: [
|
|
362
362
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-6 md:space-y-8", children: [
|
|
363
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
363
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRB2EW6IZcjs.EntityTagBadges, { tags: release.product_release_tags }),
|
|
364
364
|
/* @__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: [
|
|
365
365
|
/* @__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: [
|
|
366
366
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h4 text-ods-text-primary", children: releaseType.toLocaleUpperCase() }),
|
|
@@ -371,11 +371,11 @@ function ReleaseDetailPage({
|
|
|
371
371
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h6 text-ods-text-secondary", children: "Release Status" })
|
|
372
372
|
] }) }),
|
|
373
373
|
/* @__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: [
|
|
374
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h4 text-ods-text-primary", children:
|
|
374
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h4 text-ods-text-primary", children: _chunkRB2EW6IZcjs.formatReleaseDate.call(void 0, releaseDate) }),
|
|
375
375
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h6 text-ods-text-secondary", children: "Release Date" })
|
|
376
376
|
] }) }),
|
|
377
377
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
378
|
-
|
|
378
|
+
_chunkRB2EW6IZcjs.EntityMetadataAuthorCell,
|
|
379
379
|
{
|
|
380
380
|
author: _nullishCoalesce(author, () => ( { full_name: null, avatar_url: null })),
|
|
381
381
|
authorHref: _optionalChain([author, 'optionalAccess', _6 => _6.full_name]) ? authorHref : void 0
|
|
@@ -393,16 +393,16 @@ function ReleaseDetailPage({
|
|
|
393
393
|
highlightVideoThumbnail,
|
|
394
394
|
title: releaseTitle,
|
|
395
395
|
videoBites,
|
|
396
|
-
bitesTitle:
|
|
396
|
+
bitesTitle: _chunkRB2EW6IZcjs.DEFAULT_VIDEO_BITES_TITLE,
|
|
397
397
|
filterPublishedBites: true,
|
|
398
|
-
bitesProfile:
|
|
398
|
+
bitesProfile: _chunkRB2EW6IZcjs.toStripProfile.call(void 0, author),
|
|
399
399
|
bitesHref: typeof release.slug === "string" ? `/releases/${release.slug}` : void 0,
|
|
400
400
|
srtContent: _optionalChain([release, 'optionalAccess', _7 => _7.srt_content]),
|
|
401
401
|
captionsUrl: _optionalChain([release, 'optionalAccess', _8 => _8.captionsUrl])
|
|
402
402
|
}
|
|
403
403
|
) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
404
404
|
youtubeUrl && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
405
|
-
|
|
405
|
+
_chunkRB2EW6IZcjs.Video,
|
|
406
406
|
{
|
|
407
407
|
kind: "youtube",
|
|
408
408
|
url: youtubeUrl,
|
|
@@ -411,7 +411,7 @@ function ReleaseDetailPage({
|
|
|
411
411
|
}
|
|
412
412
|
),
|
|
413
413
|
!youtubeUrl && mainVideoUrl && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
414
|
-
|
|
414
|
+
_chunkRB2EW6IZcjs.Video,
|
|
415
415
|
{
|
|
416
416
|
url: mainVideoUrl,
|
|
417
417
|
srtContent: _optionalChain([release, 'optionalAccess', _9 => _9.srt_content]),
|
|
@@ -420,7 +420,7 @@ function ReleaseDetailPage({
|
|
|
420
420
|
}
|
|
421
421
|
),
|
|
422
422
|
highlightVideoUrl && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
423
|
-
|
|
423
|
+
_chunkRB2EW6IZcjs.Video,
|
|
424
424
|
{
|
|
425
425
|
url: highlightVideoUrl,
|
|
426
426
|
poster: highlightVideoThumbnail,
|
|
@@ -429,7 +429,7 @@ function ReleaseDetailPage({
|
|
|
429
429
|
)
|
|
430
430
|
] }),
|
|
431
431
|
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 }) }),
|
|
432
|
-
hasBreakingChanges && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
432
|
+
hasBreakingChanges && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRB2EW6IZcjs.Card, { className: "border-ods-error bg-ods-error/10", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRB2EW6IZcjs.CardContent, { className: "p-6", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3", children: [
|
|
433
433
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.AlertTriangle, { className: "h-6 w-6 text-ods-error" }),
|
|
434
434
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { children: [
|
|
435
435
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "text-h3 text-ods-error", children: "Breaking Changes" }),
|
|
@@ -437,7 +437,7 @@ function ReleaseDetailPage({
|
|
|
437
437
|
] })
|
|
438
438
|
] }) }) }),
|
|
439
439
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
440
|
-
|
|
440
|
+
_chunkRB2EW6IZcjs.ReleaseChangelogSection,
|
|
441
441
|
{
|
|
442
442
|
title: "Breaking Changes",
|
|
443
443
|
entries: breakingChanges || [],
|
|
@@ -448,7 +448,7 @@ function ReleaseDetailPage({
|
|
|
448
448
|
}
|
|
449
449
|
),
|
|
450
450
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
451
|
-
|
|
451
|
+
_chunkRB2EW6IZcjs.ReleaseChangelogSection,
|
|
452
452
|
{
|
|
453
453
|
title: "Features Added",
|
|
454
454
|
entries: featuresAdded || [],
|
|
@@ -458,7 +458,7 @@ function ReleaseDetailPage({
|
|
|
458
458
|
}
|
|
459
459
|
),
|
|
460
460
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
461
|
-
|
|
461
|
+
_chunkRB2EW6IZcjs.ReleaseChangelogSection,
|
|
462
462
|
{
|
|
463
463
|
title: "Bugs Fixed",
|
|
464
464
|
entries: bugFixed || [],
|
|
@@ -468,7 +468,7 @@ function ReleaseDetailPage({
|
|
|
468
468
|
}
|
|
469
469
|
),
|
|
470
470
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
471
|
-
|
|
471
|
+
_chunkRB2EW6IZcjs.ReleaseChangelogSection,
|
|
472
472
|
{
|
|
473
473
|
title: "Improvements",
|
|
474
474
|
entries: improvements || [],
|
|
@@ -499,7 +499,7 @@ function ReleaseDetailPage({
|
|
|
499
499
|
(() => {
|
|
500
500
|
const deliveryCount = deliveryData ? deliveryData.completed.length + deliveryData.inProgress.length : 0;
|
|
501
501
|
return deliveryLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DeliverySection, { data: deliveryData, isLoading: deliveryLoading }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
502
|
-
|
|
502
|
+
_chunkRB2EW6IZcjs.FadePreview,
|
|
503
503
|
{
|
|
504
504
|
hiddenCount: deliveryCount - 1,
|
|
505
505
|
collapsedHeight: 300,
|
|
@@ -511,7 +511,7 @@ function ReleaseDetailPage({
|
|
|
511
511
|
] }),
|
|
512
512
|
(_optionalChain([githubReleases, 'optionalAccess', _11 => _11.length]) || _optionalChain([knowledgeBaseLinks, 'optionalAccess', _12 => _12.length]) || migrationGuideUrl || documentationUrl) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-1 w-full", children: [
|
|
513
513
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h5 tracking-[-0.28px] text-ods-text-secondary", children: "Related Links" }),
|
|
514
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
514
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRB2EW6IZcjs.Card, { className: "bg-ods-card border-ods-border p-6", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
|
|
515
515
|
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: [
|
|
516
516
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkOB7YDOTKcjs.GitHubIcon, { className: "shrink-0", width: 24, height: 24, color: "var(--color-text-secondary)" }),
|
|
517
517
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h4 text-ods-text-primary", children: "Github Release" }),
|
|
@@ -585,7 +585,7 @@ function ReleaseDetailPage({
|
|
|
585
585
|
// src/components/shared/product-release/release-detail-skeleton.tsx
|
|
586
586
|
|
|
587
587
|
function ReleaseDetailSkeleton() {
|
|
588
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
588
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJ2JUAS4Ccjs.DetailPageSkeleton, { metadataColumns: 4, showImageGallery: true });
|
|
589
589
|
}
|
|
590
590
|
|
|
591
591
|
// src/components/shared/roadmap/use-roadmap-voting.ts
|
|
@@ -746,10 +746,10 @@ function RoadmapGridSingle({
|
|
|
746
746
|
// `useScrollToHash` in `roadmap-view.tsx` finds the card by id
|
|
747
747
|
// and scrolls.
|
|
748
748
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
749
|
-
|
|
749
|
+
_chunkRB2EW6IZcjs.RoadmapCard,
|
|
750
750
|
{
|
|
751
751
|
item,
|
|
752
|
-
id:
|
|
752
|
+
id: _chunkRB2EW6IZcjs.devSectionAnchorId.call(void 0, "roadmap", item.id),
|
|
753
753
|
userVote: getVote(item.id),
|
|
754
754
|
onVote: (voteType) => onVote(item.id, voteType),
|
|
755
755
|
isVoting: votingTasks.has(item.id)
|
|
@@ -829,7 +829,7 @@ function RoadmapGrid({
|
|
|
829
829
|
}, [hasActiveFilters, sortedQuartersKey, isInitialized, quartersToKeepClosed]);
|
|
830
830
|
if (items.length === 0) {
|
|
831
831
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
832
|
-
|
|
832
|
+
_chunkRJ3D3PE2cjs.EmptyState,
|
|
833
833
|
{
|
|
834
834
|
type: "generic",
|
|
835
835
|
title: "No roadmap items",
|
|
@@ -850,7 +850,7 @@ function RoadmapGrid({
|
|
|
850
850
|
);
|
|
851
851
|
}
|
|
852
852
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
853
|
-
|
|
853
|
+
_chunkRB2EW6IZcjs.Accordion,
|
|
854
854
|
{
|
|
855
855
|
type: "multiple",
|
|
856
856
|
value: expandedQuarters,
|
|
@@ -860,13 +860,13 @@ function RoadmapGrid({
|
|
|
860
860
|
const itemCount = _optionalChain([itemsByQuarter, 'access', _21 => _21[quarter], 'optionalAccess', _22 => _22.length]) || 0;
|
|
861
861
|
const isExpanded = expandedQuarters.includes(quarter);
|
|
862
862
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
863
|
-
|
|
863
|
+
_chunkRB2EW6IZcjs.AccordionItem,
|
|
864
864
|
{
|
|
865
865
|
value: quarter,
|
|
866
866
|
id: `quarter-${quarter.replace(/\s+/g, "-").toLowerCase()}`,
|
|
867
867
|
className: "border-0",
|
|
868
868
|
children: [
|
|
869
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
869
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRB2EW6IZcjs.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: [
|
|
870
870
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
871
871
|
"h3",
|
|
872
872
|
{
|
|
@@ -896,7 +896,7 @@ function RoadmapGrid({
|
|
|
896
896
|
}
|
|
897
897
|
)
|
|
898
898
|
] }) }),
|
|
899
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
899
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRB2EW6IZcjs.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,
|
|
900
900
|
RoadmapGridSingle,
|
|
901
901
|
{
|
|
902
902
|
items: itemsByQuarter[quarter],
|
|
@@ -947,8 +947,8 @@ function RoadmapGridSkeleton({ count = 4, showLeftMargin = true }) {
|
|
|
947
947
|
|
|
948
948
|
|
|
949
949
|
var DEFAULT_ENDPOINT2 = "/api/roadmap";
|
|
950
|
-
var DEFAULT_SEARCH_PARAM_KEY2 =
|
|
951
|
-
var DEFAULT_STATUS_PARAM_KEY2 =
|
|
950
|
+
var DEFAULT_SEARCH_PARAM_KEY2 = _chunkRB2EW6IZcjs.DEV_SECTION_PARAM_KEYS.search;
|
|
951
|
+
var DEFAULT_STATUS_PARAM_KEY2 = _chunkRB2EW6IZcjs.DEV_SECTION_PARAM_KEYS.status;
|
|
952
952
|
function RoadmapView({
|
|
953
953
|
endpoint = DEFAULT_ENDPOINT2,
|
|
954
954
|
initialItems,
|
|
@@ -974,7 +974,7 @@ function RoadmapView({
|
|
|
974
974
|
const items = _nullishCoalesce(_optionalChain([data, 'optionalAccess', _23 => _23.items]), () => ( []));
|
|
975
975
|
_chunkEYTXD62Bcjs.useScrollToHash.call(void 0, data, { headerOffset: _chunkEYTXD62Bcjs.STICKY_HEADER_OFFSET_PX });
|
|
976
976
|
if (error) {
|
|
977
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
977
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRB2EW6IZcjs.LoadError, { message: "Failed to load roadmap.", onRetry: reload });
|
|
978
978
|
}
|
|
979
979
|
if (isLoading && !data) {
|
|
980
980
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RoadmapGridSkeleton, { showLeftMargin });
|
|
@@ -1031,7 +1031,7 @@ function DeliveryTable({ items, isLoading = false }) {
|
|
|
1031
1031
|
"div",
|
|
1032
1032
|
{
|
|
1033
1033
|
className: "border-b border-ods-border last:border-b-0",
|
|
1034
|
-
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1034
|
+
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2RLI5XVIcjs.DeliveryRow, { item, id: _chunkRB2EW6IZcjs.devSectionAnchorId.call(void 0, "delivery", item.id) })
|
|
1035
1035
|
},
|
|
1036
1036
|
item.id
|
|
1037
1037
|
)
|
|
@@ -1043,8 +1043,8 @@ function DeliveryTable({ items, isLoading = false }) {
|
|
|
1043
1043
|
|
|
1044
1044
|
var DEFAULT_COMPLETED_ENDPOINT = "/api/delivery/completed";
|
|
1045
1045
|
var DEFAULT_IN_PROGRESS_ENDPOINT = "/api/delivery/in-progress";
|
|
1046
|
-
var DEFAULT_SEARCH_PARAM_KEY3 =
|
|
1047
|
-
var DEFAULT_TASK_TYPE_PARAM_KEY =
|
|
1046
|
+
var DEFAULT_SEARCH_PARAM_KEY3 = _chunkRB2EW6IZcjs.DEV_SECTION_PARAM_KEYS.search;
|
|
1047
|
+
var DEFAULT_TASK_TYPE_PARAM_KEY = _chunkRB2EW6IZcjs.DEV_SECTION_PARAM_KEYS.deliveryTaskType;
|
|
1048
1048
|
function DeliveryLists({
|
|
1049
1049
|
completedApiEndpoint = DEFAULT_COMPLETED_ENDPOINT,
|
|
1050
1050
|
inProgressApiEndpoint = DEFAULT_IN_PROGRESS_ENDPOINT,
|
|
@@ -1105,11 +1105,11 @@ function DeliveryLists({
|
|
|
1105
1105
|
const hasActiveFilters = searchQuery !== "" || taskTypeFilter !== "all";
|
|
1106
1106
|
const hasResults = showCompleted && filteredCompleted.length > 0 || showInProgress && filteredInProgress.length > 0;
|
|
1107
1107
|
if (error) {
|
|
1108
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1108
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRB2EW6IZcjs.LoadError, { message: error, onRetry: () => window.location.reload() }) });
|
|
1109
1109
|
}
|
|
1110
1110
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "w-full flex flex-col gap-[40px]", children: [
|
|
1111
1111
|
!isLoading && !hasResults && (hasActiveFilters ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1112
|
-
|
|
1112
|
+
_chunkRJ3D3PE2cjs.EmptyState,
|
|
1113
1113
|
{
|
|
1114
1114
|
type: "search",
|
|
1115
1115
|
title: "No tasks found",
|
|
@@ -1124,7 +1124,7 @@ function DeliveryLists({
|
|
|
1124
1124
|
}
|
|
1125
1125
|
}
|
|
1126
1126
|
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1127
|
-
|
|
1127
|
+
_chunkRJ3D3PE2cjs.EmptyState,
|
|
1128
1128
|
{
|
|
1129
1129
|
type: "generic",
|
|
1130
1130
|
title: "No tasks available",
|
|
@@ -1226,7 +1226,7 @@ function LegalDocumentPage({
|
|
|
1226
1226
|
initialData = null,
|
|
1227
1227
|
initialLastUpdatedLabel = null,
|
|
1228
1228
|
apiEndpoint,
|
|
1229
|
-
MarkdownRenderer =
|
|
1229
|
+
MarkdownRenderer = _chunkRB2EW6IZcjs.RichMarkdownRenderer,
|
|
1230
1230
|
backButton,
|
|
1231
1231
|
shell = true
|
|
1232
1232
|
}) {
|
|
@@ -1236,10 +1236,10 @@ function LegalDocumentPage({
|
|
|
1236
1236
|
label: _nullishCoalesce(_optionalChain([backButton, 'optionalAccess', _26 => _26.label]), () => ( "Back to home")),
|
|
1237
1237
|
onClick: () => router.push(_nullishCoalesce(_optionalChain([backButton, 'optionalAccess', _27 => _27.href]), () => ( "/")))
|
|
1238
1238
|
};
|
|
1239
|
-
const fallbackLastUpdatedLabel = _optionalChain([data, 'optionalAccess', _28 => _28.lastSynced]) != null ?
|
|
1239
|
+
const fallbackLastUpdatedLabel = _optionalChain([data, 'optionalAccess', _28 => _28.lastSynced]) != null ? _chunkRB2EW6IZcjs.formatLegalDate.call(void 0, data.lastSynced) : null;
|
|
1240
1240
|
const effectiveLastUpdatedLabel = _nullishCoalesce(initialLastUpdatedLabel, () => ( fallbackLastUpdatedLabel));
|
|
1241
1241
|
const subtitle = effectiveLastUpdatedLabel ? `Last Updated: ${effectiveLastUpdatedLabel}` : fallbackDescription;
|
|
1242
|
-
const inner = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
1242
|
+
const inner = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkRB2EW6IZcjs.PageLayout, { title, subtitle, backButton: backCfg, titleSize: "h1", titleWrap: true, children: [
|
|
1243
1243
|
_optionalChain([data, 'optionalAccess', _29 => _29.sourceFile]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "text-h6 text-ods-text-secondary opacity-75", children: [
|
|
1244
1244
|
"Source: ",
|
|
1245
1245
|
data.sourceFile
|
|
@@ -1286,7 +1286,7 @@ function LegalDocumentPage({
|
|
|
1286
1286
|
] })
|
|
1287
1287
|
] }) }) }) }) })
|
|
1288
1288
|
] });
|
|
1289
|
-
return shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1289
|
+
return shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRB2EW6IZcjs.PageShell, { children: inner }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: inner });
|
|
1290
1290
|
}
|
|
1291
1291
|
|
|
1292
1292
|
|
|
@@ -1303,4 +1303,4 @@ function LegalDocumentPage({
|
|
|
1303
1303
|
|
|
1304
1304
|
|
|
1305
1305
|
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;
|
|
1306
|
-
//# sourceMappingURL=chunk-
|
|
1306
|
+
//# sourceMappingURL=chunk-JMBIGH4H.cjs.map
|