@flamingo-stack/openframe-frontend-core 0.0.698-2527.7787.1 → 0.0.698-2527.7788.1
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-OBSV226G.js → chunk-3WRN7VAD.js} +3 -3
- package/dist/{chunk-6AZCAHBH.cjs → chunk-6FA7CKGO.cjs} +3 -3
- package/dist/{chunk-6AZCAHBH.cjs.map → chunk-6FA7CKGO.cjs.map} +1 -1
- package/dist/{chunk-HUN5ODA3.cjs → chunk-6JZJU3MT.cjs} +7 -7
- package/dist/{chunk-HUN5ODA3.cjs.map → chunk-6JZJU3MT.cjs.map} +1 -1
- package/dist/{chunk-TV3VGIOH.cjs → chunk-77DK66OI.cjs} +40 -40
- package/dist/{chunk-TV3VGIOH.cjs.map → chunk-77DK66OI.cjs.map} +1 -1
- package/dist/{chunk-RCCZIY65.cjs → chunk-AHAZ6WLZ.cjs} +10 -10
- package/dist/{chunk-RCCZIY65.cjs.map → chunk-AHAZ6WLZ.cjs.map} +1 -1
- package/dist/{chunk-GPZFMLGW.js → chunk-AUGTCILI.js} +3 -3
- package/dist/{chunk-DJ3NMDRH.cjs → chunk-C36HIYNP.cjs} +172 -154
- package/dist/chunk-C36HIYNP.cjs.map +1 -0
- package/dist/{chunk-ZINGF6DX.js → chunk-COA3TIOD.js} +4 -4
- package/dist/{chunk-CAFG4DRB.cjs → chunk-DBC5HYVO.cjs} +55 -55
- package/dist/{chunk-CAFG4DRB.cjs.map → chunk-DBC5HYVO.cjs.map} +1 -1
- package/dist/{chunk-AYPNNLSP.cjs → chunk-DCKHFLXE.cjs} +17 -17
- package/dist/{chunk-AYPNNLSP.cjs.map → chunk-DCKHFLXE.cjs.map} +1 -1
- package/dist/{chunk-JGFDWS3A.js → chunk-DVDXCOTA.js} +2 -2
- package/dist/{chunk-JEFNSX7Y.js → chunk-HOZGKVRI.js} +2 -2
- package/dist/{chunk-TYNNFB27.cjs → chunk-IMCBJOFN.cjs} +33 -33
- package/dist/{chunk-TYNNFB27.cjs.map → chunk-IMCBJOFN.cjs.map} +1 -1
- package/dist/{chunk-GOF2254O.cjs → chunk-KAYOPKVW.cjs} +6 -6
- package/dist/{chunk-GOF2254O.cjs.map → chunk-KAYOPKVW.cjs.map} +1 -1
- package/dist/{chunk-67PNYMYR.js → chunk-L4TUCNI2.js} +4 -4
- package/dist/{chunk-TT3W3VBD.js → chunk-LJRMRHX3.js} +6 -6
- package/dist/{chunk-SBEHUVRJ.cjs → chunk-LNUZHW4O.cjs} +21 -21
- package/dist/{chunk-SBEHUVRJ.cjs.map → chunk-LNUZHW4O.cjs.map} +1 -1
- package/dist/{chunk-ACOB7FAJ.cjs → chunk-MKOAFRVX.cjs} +3 -3
- package/dist/{chunk-ACOB7FAJ.cjs.map → chunk-MKOAFRVX.cjs.map} +1 -1
- package/dist/{chunk-NNNFF6RS.js → chunk-MRNN5TYM.js} +2818 -2800
- package/dist/chunk-MRNN5TYM.js.map +1 -0
- package/dist/{chunk-RLOEC7YI.js → chunk-OV6AUU2F.js} +5 -5
- package/dist/{chunk-WACCA5SF.js → chunk-R6W6Q7LP.js} +3 -3
- package/dist/{chunk-QV6G2O7F.js → chunk-SIQDC6VE.js} +3 -3
- package/dist/{chunk-ZC5CM2RM.js → chunk-T3ZAMHEG.js} +2 -2
- package/dist/{chunk-EBCAFH2C.cjs → chunk-TQJCGJC3.cjs} +3 -3
- package/dist/{chunk-EBCAFH2C.cjs.map → chunk-TQJCGJC3.cjs.map} +1 -1
- package/dist/{chunk-HWCR235S.cjs → chunk-UIWQO4OC.cjs} +23 -23
- package/dist/{chunk-HWCR235S.cjs.map → chunk-UIWQO4OC.cjs.map} +1 -1
- package/dist/{chunk-B726TNQE.js → chunk-UODSGUIM.js} +2 -2
- package/dist/{chunk-IMCP6XZH.js → chunk-UVRLSOEJ.js} +104 -88
- package/dist/chunk-UVRLSOEJ.js.map +1 -0
- package/dist/{chunk-GGUZ2B3O.cjs → chunk-VF37HVC4.cjs} +15 -15
- package/dist/{chunk-GGUZ2B3O.cjs.map → chunk-VF37HVC4.cjs.map} +1 -1
- package/dist/{chunk-GGFSNMKL.cjs → chunk-W4YXUJOF.cjs} +39 -23
- package/dist/chunk-W4YXUJOF.cjs.map +1 -0
- package/dist/{chunk-K4TJW7OI.js → chunk-WCHS6P5U.js} +5 -5
- package/dist/{chunk-V5Q2QIAS.cjs → chunk-Z7OC25FG.cjs} +3 -3
- package/dist/{chunk-V5Q2QIAS.cjs.map → chunk-Z7OC25FG.cjs.map} +1 -1
- package/dist/{chunk-B4KXCFW4.js → chunk-ZYU3U3EI.js} +2 -2
- package/dist/components/case-studies/index.cjs +13 -13
- package/dist/components/case-studies/index.js +3 -3
- package/dist/components/contact/index.cjs +4 -4
- package/dist/components/contact/index.js +3 -3
- package/dist/components/docs/index.cjs +7 -7
- package/dist/components/docs/index.js +6 -6
- package/dist/components/embeds/index.cjs +4 -4
- package/dist/components/embeds/index.js +3 -3
- package/dist/components/faq/index.cjs +4 -4
- package/dist/components/faq/index.js +3 -3
- package/dist/components/features/index.cjs +3 -3
- package/dist/components/features/index.js +2 -2
- package/dist/components/help-center-pages/index.cjs +52 -52
- package/dist/components/help-center-pages/index.js +14 -14
- package/dist/components/index.cjs +36 -34
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +15 -13
- package/dist/components/index.js.map +1 -1
- package/dist/components/meeting-scheduler/index.cjs +28 -28
- package/dist/components/meeting-scheduler/index.js +2 -2
- package/dist/components/navigation/index.cjs +6 -6
- package/dist/components/navigation/index.js +5 -5
- package/dist/components/onboarding-guides/index.cjs +6 -6
- package/dist/components/onboarding-guides/index.js +5 -5
- package/dist/components/tickets/index.cjs +7 -7
- package/dist/components/tickets/index.js +6 -6
- package/dist/components/ui/index.cjs +5 -3
- package/dist/components/ui/index.cjs.map +1 -1
- package/dist/components/ui/index.d.ts +1 -0
- package/dist/components/ui/index.d.ts.map +1 -1
- package/dist/components/ui/index.js +4 -2
- package/dist/components/ui/playback-toggle.d.ts +18 -0
- package/dist/components/ui/playback-toggle.d.ts.map +1 -0
- package/dist/components/ui/snap-carousel.d.ts +10 -10
- package/dist/components/ui/snap-carousel.d.ts.map +1 -1
- package/dist/hooks/index.cjs +4 -2
- package/dist/hooks/index.cjs.map +1 -1
- package/dist/hooks/index.js +3 -1
- package/dist/hooks/ui/index.d.ts +1 -0
- package/dist/hooks/ui/index.d.ts.map +1 -1
- package/dist/hooks/ui/use-autoplay.d.ts +32 -0
- package/dist/hooks/ui/use-autoplay.d.ts.map +1 -0
- package/dist/hooks/use-scenario-player.d.ts +3 -17
- package/dist/hooks/use-scenario-player.d.ts.map +1 -1
- package/dist/index.cjs +11 -7
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +10 -6
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/ui/__tests__/snap-carousel.test.tsx +44 -6
- package/src/components/ui/index.ts +1 -0
- package/src/components/ui/playback-toggle.tsx +47 -0
- package/src/components/ui/snap-carousel.tsx +45 -47
- package/src/hooks/ui/index.ts +1 -0
- package/src/hooks/ui/use-autoplay.ts +59 -0
- package/src/hooks/use-scenario-player.ts +16 -40
- package/dist/chunk-DJ3NMDRH.cjs.map +0 -1
- package/dist/chunk-GGFSNMKL.cjs.map +0 -1
- package/dist/chunk-IMCP6XZH.js.map +0 -1
- package/dist/chunk-NNNFF6RS.js.map +0 -1
- /package/dist/{chunk-OBSV226G.js.map → chunk-3WRN7VAD.js.map} +0 -0
- /package/dist/{chunk-GPZFMLGW.js.map → chunk-AUGTCILI.js.map} +0 -0
- /package/dist/{chunk-ZINGF6DX.js.map → chunk-COA3TIOD.js.map} +0 -0
- /package/dist/{chunk-JGFDWS3A.js.map → chunk-DVDXCOTA.js.map} +0 -0
- /package/dist/{chunk-JEFNSX7Y.js.map → chunk-HOZGKVRI.js.map} +0 -0
- /package/dist/{chunk-67PNYMYR.js.map → chunk-L4TUCNI2.js.map} +0 -0
- /package/dist/{chunk-TT3W3VBD.js.map → chunk-LJRMRHX3.js.map} +0 -0
- /package/dist/{chunk-RLOEC7YI.js.map → chunk-OV6AUU2F.js.map} +0 -0
- /package/dist/{chunk-WACCA5SF.js.map → chunk-R6W6Q7LP.js.map} +0 -0
- /package/dist/{chunk-QV6G2O7F.js.map → chunk-SIQDC6VE.js.map} +0 -0
- /package/dist/{chunk-ZC5CM2RM.js.map → chunk-T3ZAMHEG.js.map} +0 -0
- /package/dist/{chunk-B726TNQE.js.map → chunk-UODSGUIM.js.map} +0 -0
- /package/dist/{chunk-K4TJW7OI.js.map → chunk-WCHS6P5U.js.map} +0 -0
- /package/dist/{chunk-B4KXCFW4.js.map → chunk-ZYU3U3EI.js.map} +0 -0
|
@@ -4,10 +4,10 @@ import {
|
|
|
4
4
|
getOSLabel,
|
|
5
5
|
getShellLabel,
|
|
6
6
|
getToolLabel
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-MRNN5TYM.js";
|
|
8
8
|
import {
|
|
9
9
|
useOnboardingState
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-UVRLSOEJ.js";
|
|
11
11
|
import {
|
|
12
12
|
ToolIcon,
|
|
13
13
|
cn as cn2
|
|
@@ -592,4 +592,4 @@ export {
|
|
|
592
592
|
OnboardingStepCard,
|
|
593
593
|
OnboardingWalkthrough
|
|
594
594
|
};
|
|
595
|
-
//# sourceMappingURL=chunk-
|
|
595
|
+
//# sourceMappingURL=chunk-3WRN7VAD.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
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 _chunkC36HIYNPcjs = require('./chunk-C36HIYNP.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
@@ -56,7 +56,7 @@ function DetailPageSkeleton({
|
|
|
56
56
|
] }, section))
|
|
57
57
|
] });
|
|
58
58
|
if (bare) return content;
|
|
59
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
59
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC36HIYNPcjs.PageLayout, { showHeader: false, className: "mx-auto max-w-[1280px] bg-ods-bg px-6 py-6 md:px-20 md:py-10", children: content });
|
|
60
60
|
}
|
|
61
61
|
|
|
62
62
|
// src/components/shared/article-author-byline.tsx
|
|
@@ -137,4 +137,4 @@ function ArticleAuthorByline({
|
|
|
137
137
|
|
|
138
138
|
|
|
139
139
|
exports.DetailPageSkeleton = DetailPageSkeleton; exports.ArticleAuthorByline = ArticleAuthorByline;
|
|
140
|
-
//# sourceMappingURL=chunk-
|
|
140
|
+
//# sourceMappingURL=chunk-6FA7CKGO.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-6AZCAHBH.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-6AZCAHBH.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=\"animate-pulse space-y-6 md:space-y-10\">\n {/* Title Block */}\n <div className=\"flex w-full flex-col gap-6\">\n <div className=\"h-16 w-full max-w-3xl rounded bg-ods-card md:h-20\"></div>\n </div>\n\n {/* Category Tags Skeleton */}\n <div className=\"flex w-full flex-wrap gap-2\">\n <div className=\"h-8 w-32 rounded bg-ods-card\"></div>\n <div className=\"h-8 w-28 rounded bg-ods-card\"></div>\n <div className=\"h-8 w-36 rounded bg-ods-card\"></div>\n </div>\n\n {/* Metadata Grid Skeleton */}\n <div\n className={`grid grid-cols-1 md:grid-cols-${metadataColumns} w-full overflow-hidden rounded-md border border-ods-border`}\n >\n {Array.from({ length: metadataColumns }).map((_, i) => (\n <div key={i} className=\"border-b border-ods-border bg-ods-card p-4 last:border-r-0 md:border-b-0 md:border-r\">\n <div className=\"mb-2 h-6 w-24 rounded bg-ods-border\"></div>\n <div className=\"h-5 w-20 rounded bg-ods-border\"></div>\n </div>\n ))}\n </div>\n\n {/* Image Gallery Skeleton */}\n {showImageGallery && (\n <div className=\"flex w-full gap-6 overflow-x-auto\">\n {[1, 2, 3, 4, 5].map(i => (\n <div key={i} className=\"h-[200px] w-[240px] shrink-0 rounded-md border border-ods-border bg-ods-card\"></div>\n ))}\n </div>\n )}\n\n {/* Featured Image Skeleton (for case studies) */}\n {!showImageGallery && <div className=\"aspect-[2560/1366] w-full rounded-md bg-ods-card\"></div>}\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 rounded bg-ods-card\"></div>\n <div className=\"space-y-3\">\n <div className=\"h-6 w-full rounded bg-ods-card\"></div>\n <div className=\"h-6 w-full rounded bg-ods-card\"></div>\n <div className=\"h-6 w-4/5 rounded bg-ods-card\"></div>\n </div>\n </div>\n ))}\n </div>\n );\n if (bare) return content;\n return (\n <PageLayout showHeader={false} className=\"mx-auto max-w-[1280px] bg-ods-bg px-6 py-6 md:px-20 md:py-10\">\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 { Calendar, User } from 'lucide-react';\nimport { useChatRuntime } from '../../contexts/chat-runtime-context';\nimport Image from '../../embed-shims/next-image';\nimport Link from '../../embed-shims/next-link';\nimport { cn } from '../../utils/cn';\nimport { formatBioText, formatDateWithTimezone } from '../../utils/format';\nimport { getProxiedImageUrl } from '../../utils/image-proxy';\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 // A published date is a content date: UTC-pinned through the one renderer, so\n // the server and every client agree on the day (React #418).\n return formatDateWithTimezone(value, null, 'long');\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 'rounded-lg border border-ods-border bg-ods-card p-6',\n 'flex flex-col items-start gap-4 md:flex-row',\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 'flex items-center justify-center rounded-full border-2 border-ods-border bg-ods-bg',\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=\"min-w-0 flex-1\">\n <div className=\"flex flex-wrap items-baseline gap-x-3 gap-y-1\">\n <h3 className=\"text-ods-text-primary text-h5\">\n {href ? (\n <Link href={href} className=\"transition-colors hover:text-ods-accent\">\n {author}\n </Link>\n ) : (\n author\n )}\n </h3>\n {dateLabel && (\n <span className=\"text-body-sm inline-flex items-center gap-1 font-body text-ods-text-secondary\">\n <Calendar className=\"h-3 w-3\" />\n {dateLabel}\n </span>\n )}\n </div>\n {jobTitle && <p className=\"text-body-sm mt-0.5 font-body text-ods-text-secondary\">{jobTitle}</p>}\n {formattedBio ? (\n <p className=\"text-body-md mt-2 font-body leading-relaxed text-ods-text-secondary\">{formattedBio}</p>\n ) : fallbackBio ? (\n <p className=\"text-body-md mt-2 font-body italic text-ods-text-secondary\">{fallbackBio}</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-6FA7CKGO.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-6FA7CKGO.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=\"animate-pulse space-y-6 md:space-y-10\">\n {/* Title Block */}\n <div className=\"flex w-full flex-col gap-6\">\n <div className=\"h-16 w-full max-w-3xl rounded bg-ods-card md:h-20\"></div>\n </div>\n\n {/* Category Tags Skeleton */}\n <div className=\"flex w-full flex-wrap gap-2\">\n <div className=\"h-8 w-32 rounded bg-ods-card\"></div>\n <div className=\"h-8 w-28 rounded bg-ods-card\"></div>\n <div className=\"h-8 w-36 rounded bg-ods-card\"></div>\n </div>\n\n {/* Metadata Grid Skeleton */}\n <div\n className={`grid grid-cols-1 md:grid-cols-${metadataColumns} w-full overflow-hidden rounded-md border border-ods-border`}\n >\n {Array.from({ length: metadataColumns }).map((_, i) => (\n <div key={i} className=\"border-b border-ods-border bg-ods-card p-4 last:border-r-0 md:border-b-0 md:border-r\">\n <div className=\"mb-2 h-6 w-24 rounded bg-ods-border\"></div>\n <div className=\"h-5 w-20 rounded bg-ods-border\"></div>\n </div>\n ))}\n </div>\n\n {/* Image Gallery Skeleton */}\n {showImageGallery && (\n <div className=\"flex w-full gap-6 overflow-x-auto\">\n {[1, 2, 3, 4, 5].map(i => (\n <div key={i} className=\"h-[200px] w-[240px] shrink-0 rounded-md border border-ods-border bg-ods-card\"></div>\n ))}\n </div>\n )}\n\n {/* Featured Image Skeleton (for case studies) */}\n {!showImageGallery && <div className=\"aspect-[2560/1366] w-full rounded-md bg-ods-card\"></div>}\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 rounded bg-ods-card\"></div>\n <div className=\"space-y-3\">\n <div className=\"h-6 w-full rounded bg-ods-card\"></div>\n <div className=\"h-6 w-full rounded bg-ods-card\"></div>\n <div className=\"h-6 w-4/5 rounded bg-ods-card\"></div>\n </div>\n </div>\n ))}\n </div>\n );\n if (bare) return content;\n return (\n <PageLayout showHeader={false} className=\"mx-auto max-w-[1280px] bg-ods-bg px-6 py-6 md:px-20 md:py-10\">\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 { Calendar, User } from 'lucide-react';\nimport { useChatRuntime } from '../../contexts/chat-runtime-context';\nimport Image from '../../embed-shims/next-image';\nimport Link from '../../embed-shims/next-link';\nimport { cn } from '../../utils/cn';\nimport { formatBioText, formatDateWithTimezone } from '../../utils/format';\nimport { getProxiedImageUrl } from '../../utils/image-proxy';\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 // A published date is a content date: UTC-pinned through the one renderer, so\n // the server and every client agree on the day (React #418).\n return formatDateWithTimezone(value, null, 'long');\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 'rounded-lg border border-ods-border bg-ods-card p-6',\n 'flex flex-col items-start gap-4 md:flex-row',\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 'flex items-center justify-center rounded-full border-2 border-ods-border bg-ods-bg',\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=\"min-w-0 flex-1\">\n <div className=\"flex flex-wrap items-baseline gap-x-3 gap-y-1\">\n <h3 className=\"text-ods-text-primary text-h5\">\n {href ? (\n <Link href={href} className=\"transition-colors hover:text-ods-accent\">\n {author}\n </Link>\n ) : (\n author\n )}\n </h3>\n {dateLabel && (\n <span className=\"text-body-sm inline-flex items-center gap-1 font-body text-ods-text-secondary\">\n <Calendar className=\"h-3 w-3\" />\n {dateLabel}\n </span>\n )}\n </div>\n {jobTitle && <p className=\"text-body-sm mt-0.5 font-body text-ods-text-secondary\">{jobTitle}</p>}\n {formattedBio ? (\n <p className=\"text-body-md mt-2 font-body leading-relaxed text-ods-text-secondary\">{formattedBio}</p>\n ) : fallbackBio ? (\n <p className=\"text-body-md mt-2 font-body italic text-ods-text-secondary\">{fallbackBio}</p>\n ) : null}\n </div>\n </div>\n );\n}\n"]}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var _chunkC36HIYNPcjs = require('./chunk-C36HIYNP.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
var
|
|
8
|
+
var _chunkW4YXUJOFcjs = require('./chunk-W4YXUJOF.cjs');
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
|
|
@@ -46,7 +46,7 @@ function GoogleSheetsViewer({ externalUrl, fileName, height }) {
|
|
|
46
46
|
] });
|
|
47
47
|
}
|
|
48
48
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
49
|
-
|
|
49
|
+
_chunkC36HIYNPcjs.EmbedViewerFrame,
|
|
50
50
|
{
|
|
51
51
|
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDWCV7IDUcjs.GoogleSheetsIcon, { className: "h-5 w-5 shrink-0" }),
|
|
52
52
|
title: displayName,
|
|
@@ -55,7 +55,7 @@ function GoogleSheetsViewer({ externalUrl, fileName, height }) {
|
|
|
55
55
|
{
|
|
56
56
|
variant: "outline",
|
|
57
57
|
size: "small-legacy",
|
|
58
|
-
href:
|
|
58
|
+
href: _chunkW4YXUJOFcjs.toGoogleSheetsOriginalUrl.call(void 0, externalUrl),
|
|
59
59
|
openInNewTab: true,
|
|
60
60
|
leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDWCV7IDUcjs.GoogleSheetsIcon, { className: "h-4 w-4" }),
|
|
61
61
|
rightIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "h-4 w-4" }),
|
|
@@ -63,7 +63,7 @@ function GoogleSheetsViewer({ externalUrl, fileName, height }) {
|
|
|
63
63
|
children: "Open in Google Sheets"
|
|
64
64
|
}
|
|
65
65
|
),
|
|
66
|
-
src:
|
|
66
|
+
src: _chunkW4YXUJOFcjs.toGoogleSheetsEmbedUrl.call(void 0, externalUrl),
|
|
67
67
|
height
|
|
68
68
|
}
|
|
69
69
|
);
|
|
@@ -81,7 +81,7 @@ function PdfViewer({ src, fileName, onPreview, onDownload, height }) {
|
|
|
81
81
|
] });
|
|
82
82
|
}
|
|
83
83
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
84
|
-
|
|
84
|
+
_chunkC36HIYNPcjs.EmbedViewerFrame,
|
|
85
85
|
{
|
|
86
86
|
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDWCV7IDUcjs.AdobePdfIcon, { className: "h-5 w-5 shrink-0" }),
|
|
87
87
|
title: displayName,
|
|
@@ -124,4 +124,4 @@ function PdfViewer({ src, fileName, onPreview, onDownload, height }) {
|
|
|
124
124
|
|
|
125
125
|
|
|
126
126
|
exports.FileDownloadCard = FileDownloadCard; exports.GoogleSheetsViewer = GoogleSheetsViewer; exports.PdfViewer = PdfViewer;
|
|
127
|
-
//# sourceMappingURL=chunk-
|
|
127
|
+
//# sourceMappingURL=chunk-6JZJU3MT.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-6JZJU3MT.cjs","../src/components/embeds/file-download-card.tsx","../src/components/embeds/google-sheets-viewer.tsx","../src/components/embeds/pdf-viewer.tsx"],"names":["jsxs","jsx","Download"],"mappings":"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","file":"/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-6JZJU3MT.cjs","sourcesContent":[null,"import { FileText, Download } from 'lucide-react';\nimport { formatFileSize } from '../../utils';\nimport { Button } from '../ui';\n\nexport interface FileDownloadCardProps {\n fileName?: string;\n mimeType?: string;\n fileSize?: number;\n fileUrl?: string;\n}\n\n/**\n * Generic downloadable-file card for the `file` document type. Used by\n * `<DocsHubPage>`'s default `documentTypeRenderers.file`. Embedders can\n * override the default by passing their own `file` renderer.\n *\n * When `fileUrl` is missing, the Download button is omitted (the card still\n * renders the filename + type + size so the user knows what they were\n * about to download).\n */\nexport function FileDownloadCard({ fileName, mimeType, fileSize, fileUrl }: FileDownloadCardProps) {\n return (\n <div className=\"flex flex-col items-center justify-center py-16\">\n <div className=\"w-full max-w-md space-y-4 rounded-xl border border-ods-border bg-ods-card p-8 text-center\">\n <FileText className=\"mx-auto h-16 w-16 text-ods-text-secondary\" />\n <div>\n <h3 className=\"text-ods-text-primary text-h3\">{fileName || 'File'}</h3>\n <div className=\"mt-2 flex items-center justify-center gap-3 text-ods-text-secondary text-h6\">\n {mimeType && <span>{mimeType}</span>}\n {typeof fileSize === 'number' && <span>{formatFileSize(fileSize)}</span>}\n </div>\n </div>\n {fileUrl && (\n <Button variant=\"accent\" href={fileUrl} openInNewTab leftIcon={<Download className=\"h-4 w-4\" />}>\n Download File\n </Button>\n )}\n </div>\n </div>\n );\n}\n","'use client';\n\nimport { ExternalLink } from 'lucide-react';\nimport { toGoogleSheetsEmbedUrl, toGoogleSheetsOriginalUrl } from '../../utils/embed-url-converters';\nimport { GoogleSheetsIcon } from '../icons-v2-generated';\nimport { Button } from '../ui';\nimport { EmbedViewerFrame } from './embed-viewer-frame';\n\nexport interface GoogleSheetsViewerProps {\n externalUrl: string;\n fileName?: string;\n height?: string;\n}\n\nexport function GoogleSheetsViewer({ externalUrl, fileName, height }: GoogleSheetsViewerProps) {\n const displayName = fileName || 'Google Sheet';\n\n // Historical shape: no URL at all → standalone empty state with NO header\n // (the frame's empty body keeps the header — that's the figma behavior).\n if (!externalUrl) {\n return (\n <div className=\"flex flex-col items-center justify-center py-16 text-center\">\n <GoogleSheetsIcon className=\"mb-4 h-16 w-16 text-ods-text-secondary\" />\n <p className=\"text-ods-text-secondary\">Google Sheet URL not configured</p>\n </div>\n );\n }\n\n return (\n <EmbedViewerFrame\n icon={<GoogleSheetsIcon className=\"h-5 w-5 shrink-0\" />}\n title={displayName}\n actions={\n <Button\n variant=\"outline\"\n size=\"small-legacy\"\n href={toGoogleSheetsOriginalUrl(externalUrl)}\n openInNewTab\n leftIcon={<GoogleSheetsIcon className=\"h-4 w-4\" />}\n rightIcon={<ExternalLink className=\"h-4 w-4\" />}\n className=\"w-full sm:w-auto\"\n >\n Open in Google Sheets\n </Button>\n }\n src={toGoogleSheetsEmbedUrl(externalUrl)}\n height={height}\n />\n );\n}\n","'use client';\n\nimport { Download, Eye } from 'lucide-react';\nimport { AdobePdfIcon } from '../icons-v2-generated';\nimport { Button } from '../ui';\nimport { EmbedViewerFrame } from './embed-viewer-frame';\n\nexport interface PdfViewerProps {\n src: string;\n fileName?: string;\n onPreview?: () => void;\n onDownload?: () => void;\n height?: string;\n}\n\nexport function PdfViewer({ src, fileName, onPreview, onDownload, height }: PdfViewerProps) {\n const displayName = fileName || 'PDF Document';\n\n // Historical shape: no src at all → standalone empty state with NO header.\n if (!src) {\n return (\n <div className=\"flex flex-col items-center justify-center py-16 text-center\">\n <AdobePdfIcon className=\"mb-4 h-16 w-16 text-ods-text-secondary\" />\n <p className=\"text-ods-text-secondary\">PDF file not available</p>\n </div>\n );\n }\n\n return (\n <EmbedViewerFrame\n icon={<AdobePdfIcon className=\"h-5 w-5 shrink-0\" />}\n title={displayName}\n actions={\n <div className=\"flex w-full items-center gap-2 sm:w-auto\">\n <Button\n variant=\"outline\"\n size=\"small-legacy\"\n href={onPreview ? undefined : src}\n openInNewTab={!onPreview}\n onClick={onPreview}\n leftIcon={<Eye className=\"h-4 w-4\" />}\n className=\"flex-1 sm:flex-initial\"\n >\n Preview\n </Button>\n <Button\n variant=\"outline\"\n size=\"small-legacy\"\n href={onDownload ? undefined : src}\n openInNewTab={!onDownload}\n onClick={onDownload}\n leftIcon={<Download className=\"h-4 w-4\" />}\n className=\"flex-1 sm:flex-initial\"\n >\n Download\n </Button>\n </div>\n }\n src={src}\n height={height}\n />\n );\n}\n"]}
|
|
@@ -5,13 +5,13 @@ var _chunkWC76QXUXcjs = require('./chunk-WC76QXUX.cjs');
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
var
|
|
8
|
+
var _chunkAHAZ6WLZcjs = require('./chunk-AHAZ6WLZ.cjs');
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
var _chunkFEXS67IGcjs = require('./chunk-FEXS67IG.cjs');
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _chunk6FA7CKGOcjs = require('./chunk-6FA7CKGO.cjs');
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
var _chunkZSWUCNHVcjs = require('./chunk-ZSWUCNHV.cjs');
|
|
@@ -30,11 +30,11 @@ var _chunkZSWUCNHVcjs = require('./chunk-ZSWUCNHV.cjs');
|
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
|
|
33
|
-
var
|
|
33
|
+
var _chunkC36HIYNPcjs = require('./chunk-C36HIYNP.cjs');
|
|
34
34
|
|
|
35
35
|
|
|
36
36
|
|
|
37
|
-
var
|
|
37
|
+
var _chunkW4YXUJOFcjs = require('./chunk-W4YXUJOF.cjs');
|
|
38
38
|
|
|
39
39
|
|
|
40
40
|
|
|
@@ -90,8 +90,8 @@ var _chunkX7CEWD6Vcjs = require('./chunk-X7CEWD6V.cjs');
|
|
|
90
90
|
// src/components/shared/product-release/product-releases-view.tsx
|
|
91
91
|
var _jsxruntime = require('react/jsx-runtime');
|
|
92
92
|
var DEFAULT_ENDPOINT = "/api/releases";
|
|
93
|
-
var DEFAULT_SEARCH_PARAM_KEY =
|
|
94
|
-
var DEFAULT_STATUS_PARAM_KEY =
|
|
93
|
+
var DEFAULT_SEARCH_PARAM_KEY = _chunkC36HIYNPcjs.DEV_SECTION_PARAM_KEYS.search;
|
|
94
|
+
var DEFAULT_STATUS_PARAM_KEY = _chunkC36HIYNPcjs.DEV_SECTION_PARAM_KEYS.releaseStatus;
|
|
95
95
|
var DEFAULT_PAGE_PARAM_KEY = "page";
|
|
96
96
|
function ReleaseRow({
|
|
97
97
|
release,
|
|
@@ -100,7 +100,7 @@ function ReleaseRow({
|
|
|
100
100
|
}) {
|
|
101
101
|
const runtime = _chunkU2YLMFJKcjs.useChatRuntime.call(void 0, );
|
|
102
102
|
const router = _chunkSADRZ4YIcjs.useRouter.call(void 0, );
|
|
103
|
-
const cta =
|
|
103
|
+
const cta = _chunkC36HIYNPcjs.resolveContentHref.call(void 0, _optionalChain([runtime, 'optionalAccess', _2 => _2.composeContentUrl]), {
|
|
104
104
|
type: "product_release",
|
|
105
105
|
slug: release.slug,
|
|
106
106
|
basePath,
|
|
@@ -172,10 +172,10 @@ function ProductReleasesView({
|
|
|
172
172
|
router.replace(`${pathname}?${params.toString()}`, { scroll: false });
|
|
173
173
|
};
|
|
174
174
|
if (error) {
|
|
175
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkX7CEWD6Vcjs.cn.call(void 0, "w-full", className), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
175
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkX7CEWD6Vcjs.cn.call(void 0, "w-full", className), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC36HIYNPcjs.LoadError, { message: "Failed to load releases.", onRetry: reload }) });
|
|
176
176
|
}
|
|
177
177
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkX7CEWD6Vcjs.cn.call(void 0, "flex w-full 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: "flex h-[600px] items-center justify-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
178
|
-
|
|
178
|
+
_chunkAHAZ6WLZcjs.ListEmptyState,
|
|
179
179
|
{
|
|
180
180
|
isFiltered: hasActiveFilters,
|
|
181
181
|
filtered: {
|
|
@@ -270,7 +270,7 @@ function MediaGalleryStrip({ items, className }) {
|
|
|
270
270
|
var _lucidereact = require('lucide-react');
|
|
271
271
|
|
|
272
272
|
|
|
273
|
-
var DefaultMarkdownRenderer =
|
|
273
|
+
var DefaultMarkdownRenderer = _chunkC36HIYNPcjs.RichMarkdownRenderer;
|
|
274
274
|
var DEFAULT_ENDPOINT2 = "/api/releases";
|
|
275
275
|
function ReleaseDetailPage({
|
|
276
276
|
authorHref,
|
|
@@ -289,7 +289,7 @@ function ReleaseDetailPage({
|
|
|
289
289
|
}) {
|
|
290
290
|
const router = _chunkSADRZ4YIcjs.useRouter.call(void 0, );
|
|
291
291
|
const captions = _chunkLXKEHZUVcjs.useCaptions.call(void 0, );
|
|
292
|
-
const renderShell = (node) => shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
292
|
+
const renderShell = (node) => shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC36HIYNPcjs.PageShell, { children: node }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: node });
|
|
293
293
|
const seed = initialData == null ? void 0 : initialData;
|
|
294
294
|
const {
|
|
295
295
|
data: release,
|
|
@@ -348,7 +348,7 @@ function ReleaseDetailPage({
|
|
|
348
348
|
return renderShell(
|
|
349
349
|
// Match the loaded page's top offset (TitleBlock's
|
|
350
350
|
// `pt-[var(--spacing-system-l)]`) so content doesn't jump on load.
|
|
351
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pt-[var(--spacing-system-l)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
351
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pt-[var(--spacing-system-l)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6FA7CKGOcjs.DetailPageSkeleton, { bare: true, metadataColumns: 4, showImageGallery: true }) })
|
|
352
352
|
);
|
|
353
353
|
}
|
|
354
354
|
if (error || !release) {
|
|
@@ -387,7 +387,7 @@ function ReleaseDetailPage({
|
|
|
387
387
|
const improvements = release.improvements;
|
|
388
388
|
return renderShell(
|
|
389
389
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
390
|
-
|
|
390
|
+
_chunkC36HIYNPcjs.PageLayout,
|
|
391
391
|
{
|
|
392
392
|
title: releaseTitle,
|
|
393
393
|
subtitle: `Version: ${releaseVersion}`,
|
|
@@ -396,7 +396,7 @@ function ReleaseDetailPage({
|
|
|
396
396
|
backButton: showBackButton ? { label: backLabel, onClick: () => router.push(backHref) } : void 0,
|
|
397
397
|
children: [
|
|
398
398
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-6 md:space-y-8", children: [
|
|
399
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
399
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC36HIYNPcjs.EntityTagBadges, { tags: release.product_release_tags }),
|
|
400
400
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid w-full grid-cols-1 overflow-hidden rounded-md border border-ods-border md:grid-cols-4", children: [
|
|
401
401
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-col gap-3 border-b border-ods-border bg-ods-card p-4 md:border-b-0 md:border-r", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-0", children: [
|
|
402
402
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-primary text-h4", children: releaseType.toLocaleUpperCase() }),
|
|
@@ -467,7 +467,7 @@ function ReleaseDetailPage({
|
|
|
467
467
|
] })
|
|
468
468
|
] }) }) }),
|
|
469
469
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
470
|
-
|
|
470
|
+
_chunkC36HIYNPcjs.ReleaseChangelogSection,
|
|
471
471
|
{
|
|
472
472
|
title: "Breaking Changes",
|
|
473
473
|
entries: breakingChanges || [],
|
|
@@ -478,7 +478,7 @@ function ReleaseDetailPage({
|
|
|
478
478
|
}
|
|
479
479
|
),
|
|
480
480
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
481
|
-
|
|
481
|
+
_chunkC36HIYNPcjs.ReleaseChangelogSection,
|
|
482
482
|
{
|
|
483
483
|
title: "Features Added",
|
|
484
484
|
entries: featuresAdded || [],
|
|
@@ -488,7 +488,7 @@ function ReleaseDetailPage({
|
|
|
488
488
|
}
|
|
489
489
|
),
|
|
490
490
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
491
|
-
|
|
491
|
+
_chunkC36HIYNPcjs.ReleaseChangelogSection,
|
|
492
492
|
{
|
|
493
493
|
title: "Bugs Fixed",
|
|
494
494
|
entries: bugFixed || [],
|
|
@@ -498,7 +498,7 @@ function ReleaseDetailPage({
|
|
|
498
498
|
}
|
|
499
499
|
),
|
|
500
500
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
501
|
-
|
|
501
|
+
_chunkC36HIYNPcjs.ReleaseChangelogSection,
|
|
502
502
|
{
|
|
503
503
|
title: "Improvements",
|
|
504
504
|
entries: improvements || [],
|
|
@@ -524,7 +524,7 @@ function ReleaseDetailPage({
|
|
|
524
524
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "tracking-[-0.28px] text-ods-text-secondary text-h5", children: "Related Enhancements and Bug-fixes" }),
|
|
525
525
|
(() => {
|
|
526
526
|
const deliveryCount = deliveryData ? deliveryData.completed.length + deliveryData.inProgress.length : 0;
|
|
527
|
-
return deliveryLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DeliverySection, { data: deliveryData, isLoading: deliveryLoading }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
527
|
+
return deliveryLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DeliverySection, { data: deliveryData, isLoading: deliveryLoading }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC36HIYNPcjs.FadePreview, { hiddenCount: deliveryCount - 1, collapsedHeight: 300, resetKey: deliveryCount, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DeliverySection, { data: deliveryData, isLoading: false }) }) });
|
|
528
528
|
})()
|
|
529
529
|
] }),
|
|
530
530
|
(_optionalChain([githubReleases, 'optionalAccess', _10 => _10.length]) || _optionalChain([knowledgeBaseLinks, 'optionalAccess', _11 => _11.length]) || migrationGuideUrl || documentationUrl) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "w-full space-y-1", children: [
|
|
@@ -603,7 +603,7 @@ function ReleaseDetailPage({
|
|
|
603
603
|
// src/components/shared/product-release/release-detail-skeleton.tsx
|
|
604
604
|
|
|
605
605
|
function ReleaseDetailSkeleton() {
|
|
606
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
606
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6FA7CKGOcjs.DetailPageSkeleton, { metadataColumns: 4, showImageGallery: true });
|
|
607
607
|
}
|
|
608
608
|
|
|
609
609
|
// src/components/shared/roadmap/use-roadmap-voting.ts
|
|
@@ -623,7 +623,7 @@ function readStoredVotes(storageKey) {
|
|
|
623
623
|
function useRoadmapVoting(options = {}) {
|
|
624
624
|
const voteApiEndpoint = _nullishCoalesce(options.voteApiEndpoint, () => ( DEFAULT_VOTE_ENDPOINT));
|
|
625
625
|
const storageKey = _nullishCoalesce(options.storageKey, () => ( DEFAULT_STORAGE_KEY));
|
|
626
|
-
const { getSignals } =
|
|
626
|
+
const { getSignals } = _chunkW4YXUJOFcjs.useHumanitySignals.call(void 0, );
|
|
627
627
|
const [votes, setVotes] = _react.useState.call(void 0, NO_VOTES);
|
|
628
628
|
const [loadedKey, setLoadedKey] = _react.useState.call(void 0, null);
|
|
629
629
|
const hydrated = _chunkLXKEHZUVcjs.useIsHydrated.call(void 0, );
|
|
@@ -778,7 +778,7 @@ function RoadmapGridSingle({
|
|
|
778
778
|
_chunkQTTBDMPOcjs.RoadmapCard,
|
|
779
779
|
{
|
|
780
780
|
item,
|
|
781
|
-
id:
|
|
781
|
+
id: _chunkC36HIYNPcjs.devSectionAnchorId.call(void 0, "roadmap", item.id),
|
|
782
782
|
userVote: getVote(item.id),
|
|
783
783
|
onVote: (voteType) => onVote(item.id, voteType),
|
|
784
784
|
isVoting: votingTasks.has(item.id)
|
|
@@ -894,7 +894,7 @@ function RoadmapGrid({
|
|
|
894
894
|
);
|
|
895
895
|
}
|
|
896
896
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
897
|
-
|
|
897
|
+
_chunkC36HIYNPcjs.Accordion,
|
|
898
898
|
{
|
|
899
899
|
type: "multiple",
|
|
900
900
|
value: expandedQuarters,
|
|
@@ -904,13 +904,13 @@ function RoadmapGrid({
|
|
|
904
904
|
const itemCount = _optionalChain([itemsByQuarter, 'access', _20 => _20[quarter], 'optionalAccess', _21 => _21.length]) || 0;
|
|
905
905
|
const isExpanded = expandedQuarters.includes(quarter);
|
|
906
906
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
907
|
-
|
|
907
|
+
_chunkC36HIYNPcjs.AccordionItem,
|
|
908
908
|
{
|
|
909
909
|
value: quarter,
|
|
910
910
|
id: `quarter-${quarter.replace(/\s+/g, "-").toLowerCase()}`,
|
|
911
911
|
className: "border-0",
|
|
912
912
|
children: [
|
|
913
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
913
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC36HIYNPcjs.AccordionTrigger, { className: "w-full p-0 hover:no-underline [&>svg]:ml-auto [&>svg]:h-5 [&>svg]:w-5 [&>svg]:shrink-0 [&>svg]:text-ods-text-secondary", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3", children: [
|
|
914
914
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
915
915
|
"h3",
|
|
916
916
|
{
|
|
@@ -940,7 +940,7 @@ function RoadmapGrid({
|
|
|
940
940
|
}
|
|
941
941
|
)
|
|
942
942
|
] }) }),
|
|
943
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
943
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC36HIYNPcjs.AccordionContent, { className: "overflow-hidden pb-0 pt-4 data-[state=closed]:animate-none data-[state=open]:animate-none", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
944
944
|
RoadmapGridSingle,
|
|
945
945
|
{
|
|
946
946
|
items: itemsByQuarter[quarter],
|
|
@@ -992,8 +992,8 @@ function RoadmapGridSkeleton({ count = 4, showLeftMargin = true }) {
|
|
|
992
992
|
|
|
993
993
|
|
|
994
994
|
var DEFAULT_ENDPOINT3 = "/api/roadmap";
|
|
995
|
-
var DEFAULT_SEARCH_PARAM_KEY2 =
|
|
996
|
-
var DEFAULT_STATUS_PARAM_KEY2 =
|
|
995
|
+
var DEFAULT_SEARCH_PARAM_KEY2 = _chunkC36HIYNPcjs.DEV_SECTION_PARAM_KEYS.search;
|
|
996
|
+
var DEFAULT_STATUS_PARAM_KEY2 = _chunkC36HIYNPcjs.DEV_SECTION_PARAM_KEYS.status;
|
|
997
997
|
function RoadmapView({
|
|
998
998
|
endpoint = DEFAULT_ENDPOINT3,
|
|
999
999
|
initialItems,
|
|
@@ -1014,9 +1014,9 @@ function RoadmapView({
|
|
|
1014
1014
|
const initialData = _react.useMemo.call(void 0, () => initialItems ? { items: initialItems } : void 0, [initialItems]);
|
|
1015
1015
|
const { data, setData, isLoading, error, reload } = _chunkZSWUCNHVcjs.useSelfFetch.call(void 0, url, { initialData });
|
|
1016
1016
|
const items = _nullishCoalesce(_optionalChain([data, 'optionalAccess', _22 => _22.items]), () => ( []));
|
|
1017
|
-
|
|
1017
|
+
_chunkW4YXUJOFcjs.useScrollToHash.call(void 0, data, { headerOffset: _chunkDMUUWHIIcjs.STICKY_HEADER_OFFSET_PX });
|
|
1018
1018
|
if (error) {
|
|
1019
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1019
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC36HIYNPcjs.LoadError, { message: "Failed to load roadmap.", onRetry: reload });
|
|
1020
1020
|
}
|
|
1021
1021
|
if (isLoading && !data) {
|
|
1022
1022
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RoadmapGridSkeleton, { showLeftMargin });
|
|
@@ -1069,7 +1069,7 @@ function DeliveryTable({ items, isLoading = false }) {
|
|
|
1069
1069
|
// → `#delivery-<external_id>`; `useScrollToHash` in
|
|
1070
1070
|
// `delivery-lists.tsx` finds the row by id and scrolls. The
|
|
1071
1071
|
// outer wrapper here ONLY exists for the row separators.
|
|
1072
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "border-b border-ods-border last:border-b-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1072
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "border-b border-ods-border last:border-b-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkAHAZ6WLZcjs.DeliveryRow, { item, id: _chunkC36HIYNPcjs.devSectionAnchorId.call(void 0, "delivery", item.id) }) }, item.id)
|
|
1073
1073
|
)) }) });
|
|
1074
1074
|
}
|
|
1075
1075
|
|
|
@@ -1078,8 +1078,8 @@ function DeliveryTable({ items, isLoading = false }) {
|
|
|
1078
1078
|
|
|
1079
1079
|
var DEFAULT_COMPLETED_ENDPOINT = "/api/delivery/completed";
|
|
1080
1080
|
var DEFAULT_IN_PROGRESS_ENDPOINT = "/api/delivery/in-progress";
|
|
1081
|
-
var DEFAULT_SEARCH_PARAM_KEY3 =
|
|
1082
|
-
var DEFAULT_TASK_TYPE_PARAM_KEY =
|
|
1081
|
+
var DEFAULT_SEARCH_PARAM_KEY3 = _chunkC36HIYNPcjs.DEV_SECTION_PARAM_KEYS.search;
|
|
1082
|
+
var DEFAULT_TASK_TYPE_PARAM_KEY = _chunkC36HIYNPcjs.DEV_SECTION_PARAM_KEYS.deliveryTaskType;
|
|
1083
1083
|
function DeliveryLists({
|
|
1084
1084
|
completedApiEndpoint = DEFAULT_COMPLETED_ENDPOINT,
|
|
1085
1085
|
inProgressApiEndpoint = DEFAULT_IN_PROGRESS_ENDPOINT,
|
|
@@ -1140,17 +1140,17 @@ function DeliveryLists({
|
|
|
1140
1140
|
}, [searchQuery, taskTypeFilter, completedApiEndpoint, inProgressApiEndpoint, searchParamKey, taskTypeParamKey]);
|
|
1141
1141
|
const filteredCompleted = _optionalChain([data, 'optionalAccess', _23 => _23.completed]) || [];
|
|
1142
1142
|
const filteredInProgress = _optionalChain([data, 'optionalAccess', _24 => _24.inProgress]) || [];
|
|
1143
|
-
|
|
1143
|
+
_chunkW4YXUJOFcjs.useScrollToHash.call(void 0, data, { headerOffset: _chunkDMUUWHIIcjs.STICKY_HEADER_OFFSET_PX });
|
|
1144
1144
|
const showCompleted = true;
|
|
1145
1145
|
const showInProgress = true;
|
|
1146
1146
|
const hasActiveFilters = searchQuery !== "" || taskTypeFilter !== "all";
|
|
1147
1147
|
const hasResults = showCompleted && filteredCompleted.length > 0 || showInProgress && filteredInProgress.length > 0;
|
|
1148
1148
|
if (error) {
|
|
1149
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1149
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC36HIYNPcjs.LoadError, { message: error, onRetry: () => window.location.reload() }) });
|
|
1150
1150
|
}
|
|
1151
1151
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col gap-[40px]", children: [
|
|
1152
1152
|
!isLoading && !hasResults && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1153
|
-
|
|
1153
|
+
_chunkAHAZ6WLZcjs.ListEmptyState,
|
|
1154
1154
|
{
|
|
1155
1155
|
isFiltered: hasActiveFilters,
|
|
1156
1156
|
filtered: {
|
|
@@ -1304,7 +1304,7 @@ function LegalDocumentPage({
|
|
|
1304
1304
|
initialData = null,
|
|
1305
1305
|
initialLastUpdatedLabel = null,
|
|
1306
1306
|
apiEndpoint,
|
|
1307
|
-
MarkdownRenderer =
|
|
1307
|
+
MarkdownRenderer = _chunkC36HIYNPcjs.RichMarkdownRenderer,
|
|
1308
1308
|
backButton,
|
|
1309
1309
|
shell = true
|
|
1310
1310
|
}) {
|
|
@@ -1317,7 +1317,7 @@ function LegalDocumentPage({
|
|
|
1317
1317
|
const fallbackLastUpdatedLabel = _optionalChain([data, 'optionalAccess', _27 => _27.lastSynced]) != null ? _chunkQTTBDMPOcjs.formatLegalDate.call(void 0, data.lastSynced) : null;
|
|
1318
1318
|
const effectiveLastUpdatedLabel = _nullishCoalesce(initialLastUpdatedLabel, () => ( fallbackLastUpdatedLabel));
|
|
1319
1319
|
const subtitle = effectiveLastUpdatedLabel ? `Last Updated: ${effectiveLastUpdatedLabel}` : fallbackDescription;
|
|
1320
|
-
const inner = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
1320
|
+
const inner = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkC36HIYNPcjs.PageLayout, { title, subtitle, backButton: backCfg, titleSize: "h1", titleWrap: true, children: [
|
|
1321
1321
|
_optionalChain([data, 'optionalAccess', _28 => _28.sourceFile]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "text-ods-text-secondary opacity-75 text-h6", children: [
|
|
1322
1322
|
"Source: ",
|
|
1323
1323
|
data.sourceFile
|
|
@@ -1357,7 +1357,7 @@ function LegalDocumentPage({
|
|
|
1357
1357
|
] })
|
|
1358
1358
|
] }) }) }) }) })
|
|
1359
1359
|
] });
|
|
1360
|
-
return shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1360
|
+
return shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC36HIYNPcjs.PageShell, { children: inner }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: inner });
|
|
1361
1361
|
}
|
|
1362
1362
|
|
|
1363
1363
|
|
|
@@ -1374,4 +1374,4 @@ function LegalDocumentPage({
|
|
|
1374
1374
|
|
|
1375
1375
|
|
|
1376
1376
|
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;
|
|
1377
|
-
//# sourceMappingURL=chunk-
|
|
1377
|
+
//# sourceMappingURL=chunk-77DK66OI.cjs.map
|