@flamingo-stack/openframe-frontend-core 0.0.536-1778.4708.1 → 0.0.536
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-HJLTSFJD.js → chunk-2PJ442HY.js} +6 -6
- package/dist/{chunk-2CNAIDXH.cjs → chunk-32SKUKQO.cjs} +37 -37
- package/dist/{chunk-2CNAIDXH.cjs.map → chunk-32SKUKQO.cjs.map} +1 -1
- package/dist/{chunk-4SUAWVO5.cjs → chunk-3ROYMRZE.cjs} +61 -61
- package/dist/{chunk-4SUAWVO5.cjs.map → chunk-3ROYMRZE.cjs.map} +1 -1
- package/dist/{chunk-B6PCCU6S.cjs → chunk-3XSSW3IZ.cjs} +5 -5
- package/dist/{chunk-B6PCCU6S.cjs.map → chunk-3XSSW3IZ.cjs.map} +1 -1
- package/dist/{chunk-HHKFONWO.cjs → chunk-4TO3WDKH.cjs} +11 -11
- package/dist/{chunk-HHKFONWO.cjs.map → chunk-4TO3WDKH.cjs.map} +1 -1
- package/dist/{chunk-B3LLXCEG.js → chunk-6SV4XZMD.js} +6 -2
- package/dist/{chunk-B3LLXCEG.js.map → chunk-6SV4XZMD.js.map} +1 -1
- package/dist/{chunk-VWRQY2LF.js → chunk-AECHSFLC.js} +2 -2
- package/dist/{chunk-EFT7XIOQ.js → chunk-BEZFZ2CS.js} +4 -4
- package/dist/{chunk-2OULGPOE.js → chunk-BHB7F4EN.js} +2 -2
- package/dist/{chunk-YDB7EPCP.cjs → chunk-C257223X.cjs} +7 -7
- package/dist/{chunk-YDB7EPCP.cjs.map → chunk-C257223X.cjs.map} +1 -1
- package/dist/{chunk-O7F25LCP.cjs → chunk-EEOLXN4D.cjs} +4 -4
- package/dist/{chunk-O7F25LCP.cjs.map → chunk-EEOLXN4D.cjs.map} +1 -1
- package/dist/{chunk-WM4YD7XI.js → chunk-FFJL6FEB.js} +2 -2
- package/dist/{chunk-3BKBCRIB.cjs → chunk-FIPHDAD2.cjs} +26 -26
- package/dist/{chunk-3BKBCRIB.cjs.map → chunk-FIPHDAD2.cjs.map} +1 -1
- package/dist/{chunk-LBUCVHSR.js → chunk-GM72KRPS.js} +4 -4
- package/dist/{chunk-YAI3HNXF.js → chunk-IOXNHTGX.js} +2 -2
- package/dist/{chunk-TP3JYJFG.cjs → chunk-L73PC7MW.cjs} +9 -9
- package/dist/{chunk-TP3JYJFG.cjs.map → chunk-L73PC7MW.cjs.map} +1 -1
- package/dist/{chunk-4FCORR5X.js → chunk-LUZPF7NX.js} +2 -2
- package/dist/{chunk-5PFIB3ZD.js → chunk-MM5C6NID.js} +5 -5
- package/dist/{chunk-S7VHIBH7.cjs → chunk-MTLFROMV.cjs} +3 -3
- package/dist/{chunk-S7VHIBH7.cjs.map → chunk-MTLFROMV.cjs.map} +1 -1
- package/dist/{chunk-X6G3EUFU.cjs → chunk-NCUZ64LM.cjs} +87 -87
- package/dist/{chunk-X6G3EUFU.cjs.map → chunk-NCUZ64LM.cjs.map} +1 -1
- package/dist/{chunk-YPNCHSUK.js → chunk-NEV7TKMB.js} +2 -2
- package/dist/{chunk-MRUZGZIL.js → chunk-ONWQ52QG.js} +2 -2
- package/dist/{chunk-ULDGQF65.cjs → chunk-PA5NMP6K.cjs} +26 -26
- package/dist/{chunk-ULDGQF65.cjs.map → chunk-PA5NMP6K.cjs.map} +1 -1
- package/dist/{chunk-PY4E7WOL.js → chunk-QAMRW5TG.js} +2 -2
- package/dist/{chunk-PDY4CSMB.cjs → chunk-SL2GDMZR.cjs} +31 -31
- package/dist/{chunk-PDY4CSMB.cjs.map → chunk-SL2GDMZR.cjs.map} +1 -1
- package/dist/{chunk-S3BEVTFG.cjs → chunk-TRLZV7WM.cjs} +213 -209
- package/dist/chunk-TRLZV7WM.cjs.map +1 -0
- package/dist/{chunk-E7AEOYIJ.js → chunk-X6UHNN3E.js} +2 -2
- package/dist/{chunk-726O5SCW.cjs → chunk-ZZDRBFEV.cjs} +14 -14
- package/dist/{chunk-726O5SCW.cjs.map → chunk-ZZDRBFEV.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/entity-cards/dispatch.d.ts.map +1 -1
- package/dist/components/chat/index.cjs +2 -2
- package/dist/components/chat/index.js +1 -1
- package/dist/components/contact/index.cjs +3 -3
- package/dist/components/contact/index.js +2 -2
- package/dist/components/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/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/chat/entity-cards/dispatch.tsx +7 -0
- package/dist/chunk-S3BEVTFG.cjs.map +0 -1
- /package/dist/{chunk-HJLTSFJD.js.map → chunk-2PJ442HY.js.map} +0 -0
- /package/dist/{chunk-VWRQY2LF.js.map → chunk-AECHSFLC.js.map} +0 -0
- /package/dist/{chunk-EFT7XIOQ.js.map → chunk-BEZFZ2CS.js.map} +0 -0
- /package/dist/{chunk-2OULGPOE.js.map → chunk-BHB7F4EN.js.map} +0 -0
- /package/dist/{chunk-WM4YD7XI.js.map → chunk-FFJL6FEB.js.map} +0 -0
- /package/dist/{chunk-LBUCVHSR.js.map → chunk-GM72KRPS.js.map} +0 -0
- /package/dist/{chunk-YAI3HNXF.js.map → chunk-IOXNHTGX.js.map} +0 -0
- /package/dist/{chunk-4FCORR5X.js.map → chunk-LUZPF7NX.js.map} +0 -0
- /package/dist/{chunk-5PFIB3ZD.js.map → chunk-MM5C6NID.js.map} +0 -0
- /package/dist/{chunk-YPNCHSUK.js.map → chunk-NEV7TKMB.js.map} +0 -0
- /package/dist/{chunk-MRUZGZIL.js.map → chunk-ONWQ52QG.js.map} +0 -0
- /package/dist/{chunk-PY4E7WOL.js.map → chunk-QAMRW5TG.js.map} +0 -0
- /package/dist/{chunk-E7AEOYIJ.js.map → chunk-X6UHNN3E.js.map} +0 -0
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
formatFileSize,
|
|
5
5
|
toGoogleSheetsEmbedUrl,
|
|
6
6
|
toGoogleSheetsOriginalUrl
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-6SV4XZMD.js";
|
|
8
8
|
import {
|
|
9
9
|
AdobePdfIcon,
|
|
10
10
|
GoogleSheetsIcon
|
|
@@ -134,4 +134,4 @@ export {
|
|
|
134
134
|
GoogleSheetsViewer,
|
|
135
135
|
FileDownloadCard
|
|
136
136
|
};
|
|
137
|
-
//# sourceMappingURL=chunk-
|
|
137
|
+
//# sourceMappingURL=chunk-AECHSFLC.js.map
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
import {
|
|
3
3
|
ArticleAuthorByline,
|
|
4
4
|
DetailPageSkeleton
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-LUZPF7NX.js";
|
|
6
6
|
import {
|
|
7
7
|
DocSearchBar,
|
|
8
8
|
useDocSearch
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-BHB7F4EN.js";
|
|
10
10
|
import {
|
|
11
11
|
useSelfFetch
|
|
12
12
|
} from "./chunk-LQPHB2YF.js";
|
|
@@ -26,7 +26,7 @@ import {
|
|
|
26
26
|
resolveContentHref,
|
|
27
27
|
toStripProfile,
|
|
28
28
|
useVideoWarmup
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-6SV4XZMD.js";
|
|
30
30
|
import {
|
|
31
31
|
buildOgPlaceholderUrl
|
|
32
32
|
} from "./chunk-4A736Z6S.js";
|
|
@@ -396,4 +396,4 @@ export {
|
|
|
396
396
|
useOnboardingGuide,
|
|
397
397
|
useOnboardingGuideSections
|
|
398
398
|
};
|
|
399
|
-
//# sourceMappingURL=chunk-
|
|
399
|
+
//# sourceMappingURL=chunk-BEZFZ2CS.js.map
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
resolveExternalNavigation,
|
|
7
7
|
resolveSourceIcon,
|
|
8
8
|
stripSameOriginToPath
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-6SV4XZMD.js";
|
|
10
10
|
import {
|
|
11
11
|
contentFetch,
|
|
12
12
|
useDebounce
|
|
@@ -370,4 +370,4 @@ export {
|
|
|
370
370
|
resolveSearchResultAction,
|
|
371
371
|
useDocSearch
|
|
372
372
|
};
|
|
373
|
-
//# sourceMappingURL=chunk-
|
|
373
|
+
//# sourceMappingURL=chunk-BHB7F4EN.js.map
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
var
|
|
7
|
+
var _chunkTRLZV7WMcjs = require('./chunk-TRLZV7WM.cjs');
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
|
|
@@ -25,7 +25,7 @@ function PdfViewer({ src, fileName, onPreview, onDownload, height }) {
|
|
|
25
25
|
] });
|
|
26
26
|
}
|
|
27
27
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
28
|
-
|
|
28
|
+
_chunkTRLZV7WMcjs.EmbedViewerFrame,
|
|
29
29
|
{
|
|
30
30
|
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUTVOBFXRcjs.AdobePdfIcon, { className: "w-5 h-5 shrink-0" }),
|
|
31
31
|
title: displayName,
|
|
@@ -75,7 +75,7 @@ function GoogleSheetsViewer({ externalUrl, fileName, height }) {
|
|
|
75
75
|
] });
|
|
76
76
|
}
|
|
77
77
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
78
|
-
|
|
78
|
+
_chunkTRLZV7WMcjs.EmbedViewerFrame,
|
|
79
79
|
{
|
|
80
80
|
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUTVOBFXRcjs.GoogleSheetsIcon, { className: "w-5 h-5 shrink-0" }),
|
|
81
81
|
title: displayName,
|
|
@@ -84,7 +84,7 @@ function GoogleSheetsViewer({ externalUrl, fileName, height }) {
|
|
|
84
84
|
{
|
|
85
85
|
variant: "outline",
|
|
86
86
|
size: "small-legacy",
|
|
87
|
-
href:
|
|
87
|
+
href: _chunkTRLZV7WMcjs.toGoogleSheetsOriginalUrl.call(void 0, externalUrl),
|
|
88
88
|
openInNewTab: true,
|
|
89
89
|
leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUTVOBFXRcjs.GoogleSheetsIcon, { className: "w-4 h-4" }),
|
|
90
90
|
rightIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "w-4 h-4" }),
|
|
@@ -92,7 +92,7 @@ function GoogleSheetsViewer({ externalUrl, fileName, height }) {
|
|
|
92
92
|
children: "Open in Google Sheets"
|
|
93
93
|
}
|
|
94
94
|
),
|
|
95
|
-
src:
|
|
95
|
+
src: _chunkTRLZV7WMcjs.toGoogleSheetsEmbedUrl.call(void 0, externalUrl),
|
|
96
96
|
height
|
|
97
97
|
}
|
|
98
98
|
);
|
|
@@ -113,7 +113,7 @@ function FileDownloadCard({
|
|
|
113
113
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "text-h3 text-ods-text-primary", children: fileName || "File" }),
|
|
114
114
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-center gap-3 mt-2 text-h6 text-ods-text-secondary", children: [
|
|
115
115
|
mimeType && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: mimeType }),
|
|
116
|
-
typeof fileSize === "number" && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children:
|
|
116
|
+
typeof fileSize === "number" && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: _chunkTRLZV7WMcjs.formatFileSize.call(void 0, fileSize) })
|
|
117
117
|
] })
|
|
118
118
|
] }),
|
|
119
119
|
fileUrl && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -134,4 +134,4 @@ function FileDownloadCard({
|
|
|
134
134
|
|
|
135
135
|
|
|
136
136
|
exports.PdfViewer = PdfViewer; exports.GoogleSheetsViewer = GoogleSheetsViewer; exports.FileDownloadCard = FileDownloadCard;
|
|
137
|
-
//# sourceMappingURL=chunk-
|
|
137
|
+
//# sourceMappingURL=chunk-C257223X.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-C257223X.cjs","../src/components/embeds/pdf-viewer.tsx","../src/components/embeds/google-sheets-viewer.tsx","../src/components/embeds/file-download-card.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-C257223X.cjs","sourcesContent":[null,"\"use client\"\n\nimport React from 'react'\nimport { Button } from '../ui'\nimport { Download, Eye } from 'lucide-react'\nimport { AdobePdfIcon } from '../icons-v2-generated'\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=\"w-16 h-16 text-ods-text-secondary mb-4\" />\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=\"w-5 h-5 shrink-0\" />}\n title={displayName}\n actions={\n <div className=\"flex items-center gap-2 w-full 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=\"w-4 h-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=\"w-4 h-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","\"use client\"\n\nimport React from 'react'\nimport { Button } from '../ui'\nimport { ExternalLink } from 'lucide-react'\nimport { GoogleSheetsIcon } from '../icons-v2-generated'\nimport { EmbedViewerFrame } from './embed-viewer-frame'\nimport { toGoogleSheetsEmbedUrl, toGoogleSheetsOriginalUrl } from '../../utils/embed-url-converters'\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=\"w-16 h-16 text-ods-text-secondary mb-4\" />\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=\"w-5 h-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=\"w-4 h-4\" />}\n rightIcon={<ExternalLink className=\"w-4 h-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","import React from 'react'\nimport { Button } from '../ui'\nimport { FileText, Download } from 'lucide-react'\nimport { formatFileSize } from '../../utils'\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({\n fileName,\n mimeType,\n fileSize,\n fileUrl,\n}: FileDownloadCardProps) {\n return (\n <div className=\"flex flex-col items-center justify-center py-16\">\n <div className=\"bg-ods-card border border-ods-border rounded-xl p-8 max-w-md w-full text-center space-y-4\">\n <FileText className=\"w-16 h-16 text-ods-text-secondary mx-auto\" />\n <div>\n <h3 className=\"text-h3 text-ods-text-primary\">\n {fileName || 'File'}\n </h3>\n <div className=\"flex items-center justify-center gap-3 mt-2 text-h6 text-ods-text-secondary\">\n {mimeType && <span>{mimeType}</span>}\n {typeof fileSize === 'number' && <span>{formatFileSize(fileSize)}</span>}\n </div>\n </div>\n {fileUrl && (\n <Button\n variant=\"accent\"\n href={fileUrl}\n openInNewTab\n leftIcon={<Download className=\"w-4 h-4\" />}\n >\n Download File\n </Button>\n )}\n </div>\n </div>\n )\n}\n"]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var _chunkTRLZV7WMcjs = require('./chunk-TRLZV7WM.cjs');
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
@@ -52,7 +52,7 @@ function UnifiedPagination({
|
|
|
52
52
|
};
|
|
53
53
|
if (totalPages <= 1) return null;
|
|
54
54
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
55
|
-
|
|
55
|
+
_chunkTRLZV7WMcjs.Pagination,
|
|
56
56
|
{
|
|
57
57
|
currentPage,
|
|
58
58
|
totalPages,
|
|
@@ -65,7 +65,7 @@ var init_unified_pagination = _chunkVRHGVLSLcjs.__esm.call(void 0, {
|
|
|
65
65
|
"use strict";
|
|
66
66
|
"use client";
|
|
67
67
|
_chunkSSJNN5BScjs.init_next_navigation.call(void 0, );
|
|
68
|
-
|
|
68
|
+
_chunkTRLZV7WMcjs.init_pagination.call(void 0, );
|
|
69
69
|
}
|
|
70
70
|
});
|
|
71
71
|
|
|
@@ -210,4 +210,4 @@ function EmptyState({
|
|
|
210
210
|
|
|
211
211
|
|
|
212
212
|
exports.EmptyState = EmptyState; exports.UnifiedPagination = UnifiedPagination; exports.unified_pagination_exports = unified_pagination_exports; exports.init_unified_pagination = init_unified_pagination;
|
|
213
|
-
//# sourceMappingURL=chunk-
|
|
213
|
+
//# sourceMappingURL=chunk-EEOLXN4D.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-O7F25LCP.cjs","../src/components/unified-pagination.tsx","../src/components/empty-state.tsx"],"names":[],"mappings":"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","file":"/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-O7F25LCP.cjs","sourcesContent":[null,"\"use client\"\n\nimport { useRouter, useSearchParams, usePathname } from \"../embed-shims/next-navigation\"\nimport { Pagination } from \"./pagination\"\n\ninterface UnifiedPaginationProps {\n currentPage: number\n totalPages: number\n onPageChange?: (page: number) => void\n className?: string\n}\n\nexport function UnifiedPagination({ \n currentPage, \n totalPages, \n onPageChange,\n className = \"mt-8 flex justify-center w-full\"\n}: UnifiedPaginationProps) {\n const router = useRouter()\n const searchParams = useSearchParams()\n const pathname = usePathname()\n\n const handlePageChange = (page: number) => {\n // Preserve current scroll position\n const currentScrollY = window.scrollY\n \n // Call the callback to update local state (prevents reload)\n if (onPageChange) {\n onPageChange(page)\n }\n \n // Update URL for bookmarking without navigation\n const params = new URLSearchParams(searchParams.toString())\n params.set(\"page\", page.toString())\n \n // Update URL without navigation (for bookmarking support)\n const newUrl = `${pathname}?${params.toString()}`\n window.history.replaceState(null, '', newUrl)\n \n // Restore scroll position after a brief delay to allow content to render\n setTimeout(() => {\n window.scrollTo({\n top: currentScrollY,\n behavior: 'instant' // Instant to prevent any scroll animation\n })\n }, 0)\n }\n\n // Don't render pagination if there's only one page\n if (totalPages <= 1) return null\n\n return (\n <div className={className}>\n <Pagination\n currentPage={currentPage}\n totalPages={totalPages}\n onPageChange={handlePageChange}\n />\n </div>\n )\n} ","\"use client\";\n\nimport { Search, FileText, Package } from \"lucide-react\"\nimport { Button } from \"./ui/button\"\nimport { useRouter } from \"../embed-shims/next-navigation\"\n\nexport interface EmptyStateProps {\n type: 'vendors' | 'posts' | 'search' | 'generic'\n title?: string\n description?: string\n showBackButton?: boolean\n onGoBack?: () => void\n backButtonText?: string\n // New CTA properties\n showCTA?: boolean\n ctaText?: string\n onCtaClick?: () => void\n /**\n * Link-CTA mode: render the CTA as a navigation link (`href` — plain or\n * `mailto:`). Wins over `onCtaClick`, and SHORT-CIRCUITS the smart-CTA\n * path-sniffing below (which reads `window.location.pathname` — an\n * SSR/client divergence server-rendered pages must never enter).\n */\n ctaHref?: string\n ctaVariant?: 'primary' | 'secondary'\n}\n\nexport function EmptyState({\n type,\n title,\n description,\n showBackButton = false,\n onGoBack,\n backButtonText = \"Go Back\",\n showCTA = true,\n ctaText,\n onCtaClick,\n ctaHref,\n ctaVariant = 'primary'\n}: EmptyStateProps) {\n const router = useRouter()\n\n // Default content based on type\n const getDefaultContent = () => {\n switch (type) {\n case 'vendors':\n return {\n icon: <Package className=\"w-full h-full\" />,\n title: \"No vendors found\",\n description: \"We couldn't find any vendors matching your criteria. Try adjusting your filters or search terms.\"\n }\n case 'posts':\n return {\n icon: <FileText className=\"w-full h-full\" />,\n title: \"No articles found\",\n description: \"We couldn't find any articles matching your criteria. Try different categories, tags, or search terms.\"\n }\n case 'search':\n return {\n icon: <Search className=\"w-full h-full\" />,\n title: \"No results found\",\n description: \"Your search didn't return any results. Try different keywords or browse our categories.\"\n }\n default:\n return {\n icon: <Search className=\"w-full h-full\" />,\n title: \"Nothing found\",\n description: \"We couldn't find what you're looking for. Try adjusting your search or filters.\"\n }\n }\n }\n\n // Smart CTA logic based on context\n const getSmartCTA = () => {\n // If custom CTA is provided, use it\n if (ctaText && onCtaClick) {\n return {\n text: ctaText,\n action: onCtaClick\n }\n }\n\n // Check if we're on the client side\n const isClient = typeof window !== 'undefined'\n const currentPath = isClient ? window.location.pathname : ''\n\n // Surgical filter reset (promoted from the hub's diverged clone during\n // the EmptyState convergence): delete ONLY the filter params the surface\n // owns — nuking the whole query string threw away unrelated state — and\n // use `replace` with `scroll: false` so resetting filters neither adds a\n // history entry nor jumps the page.\n const resetParams = (paramsToDelete: string[]) => {\n if (!isClient) return\n const params = new URLSearchParams(window.location.search)\n for (const p of paramsToDelete) params.delete(p)\n const queryString = params.toString()\n // Keep the hash — a filter reset must not clear an unrelated\n // deep-link anchor (e.g. #delivery-123).\n const hash = window.location.hash\n router.replace(\n `${window.location.pathname}${queryString ? `?${queryString}` : ''}${hash}`,\n { scroll: false },\n )\n }\n\n // Smart defaults based on type and context\n switch (type) {\n case 'search':\n return {\n text: \"Reset Filters\",\n action: () => resetParams(['search', 'page'])\n }\n case 'posts':\n // Blog-style listing pages (blog, case studies) reset their filters\n if (currentPath.includes('/blog') || currentPath.includes('/case-studies')) {\n return {\n text: \"Reset Filters\",\n action: () => resetParams(['search', 'page', 'category', 'tags'])\n }\n } else if (currentPath.includes('/profile')) {\n return {\n text: \"Browse Vendors\",\n action: () => router.push('/vendors')\n }\n }\n return {\n text: \"View All Posts\",\n action: () => router.push('/blog')\n }\n case 'vendors':\n // If we're in profile or other pages, direct to main content\n if (currentPath.includes('/profile')) {\n return {\n text: \"Browse Vendors\",\n action: () => router.push('/vendors')\n }\n } else if (currentPath.includes('/vendors') || currentPath.includes('/margin-increase/compare')) {\n return {\n text: \"Reset Filters\",\n action: () => resetParams(['search', 'page', 'category', 'subcategory'])\n }\n }\n return {\n text: \"Browse Vendors\",\n action: () => router.push('/vendors')\n }\n default:\n return {\n text: \"Browse Vendors\",\n action: () => router.push('/vendors')\n }\n }\n }\n\n const defaultContent = getDefaultContent()\n const displayTitle = title || defaultContent.title\n const displayDescription = description || defaultContent.description\n // ctaHref short-circuits BEFORE getSmartCTA(): the smart defaults read\n // window.location.pathname (SSR-empty, client-real), so a server-rendered\n // page with a link CTA must never enter that branch. Existing callers\n // without ctaHref keep today's smart-default behavior unchanged.\n const smartCTA = ctaHref ? null : getSmartCTA()\n const ctaClassName = ctaVariant === 'primary'\n ? \"w-full bg-ods-accent text-ods-text-on-accent hover:bg-ods-accent-hover transition-all duration-150 font-body font-medium\"\n : \"w-full bg-transparent border border-ods-border text-ods-text-primary hover:border-ods-accent hover:text-ods-accent transition-all duration-150 font-body font-medium\"\n\n return (\n <div className=\"flex flex-col items-center justify-center py-6 md:py-16 px-6 text-center\">\n {/* Icon */}\n <div className=\"mb-3 md:mb-6 flex items-center justify-center\">\n <div className=\"rounded-full bg-ods-card p-3 md:p-6 border border-ods-border\">\n <div className=\"w-8 h-8 md:w-16 md:h-16 text-ods-text-secondary flex items-center justify-center\">\n {defaultContent.icon}\n </div>\n </div>\n </div>\n\n {/* Title */}\n <h2 className=\"mb-2 md:mb-3 text-h3 text-ods-text-primary\">\n {displayTitle}\n </h2>\n\n {/* Description */}\n <p className=\"mb-4 md:mb-8 max-w-md text-h6 text-ods-text-secondary\">\n {displayDescription}\n </p>\n\n {/* Link CTA (ctaHref) — SSR-safe, no path sniffing */}\n {showCTA && ctaHref && (\n <div className=\"w-full max-w-xs mb-3\">\n <Button href={ctaHref} className={ctaClassName}>\n {ctaText || 'Contact us'}\n </Button>\n </div>\n )}\n\n {/* Smart CTA Button */}\n {showCTA && !ctaHref && smartCTA && (\n <div className=\"w-full max-w-xs mb-3\">\n <Button onClick={smartCTA.action} className={ctaClassName}>\n {smartCTA.text}\n </Button>\n </div>\n )}\n\n {/* Optional Back Button */}\n {showBackButton && onGoBack && (\n <div className=\"w-full max-w-xs\">\n <Button\n onClick={onGoBack}\n variant=\"outline\"\n className=\"w-full transition-all duration-150 font-body font-medium\"\n >\n {backButtonText}\n </Button>\n </div>\n )}\n </div>\n )\n} "]}
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-EEOLXN4D.cjs","../src/components/unified-pagination.tsx","../src/components/empty-state.tsx"],"names":[],"mappings":"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","file":"/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-EEOLXN4D.cjs","sourcesContent":[null,"\"use client\"\n\nimport { useRouter, useSearchParams, usePathname } from \"../embed-shims/next-navigation\"\nimport { Pagination } from \"./pagination\"\n\ninterface UnifiedPaginationProps {\n currentPage: number\n totalPages: number\n onPageChange?: (page: number) => void\n className?: string\n}\n\nexport function UnifiedPagination({ \n currentPage, \n totalPages, \n onPageChange,\n className = \"mt-8 flex justify-center w-full\"\n}: UnifiedPaginationProps) {\n const router = useRouter()\n const searchParams = useSearchParams()\n const pathname = usePathname()\n\n const handlePageChange = (page: number) => {\n // Preserve current scroll position\n const currentScrollY = window.scrollY\n \n // Call the callback to update local state (prevents reload)\n if (onPageChange) {\n onPageChange(page)\n }\n \n // Update URL for bookmarking without navigation\n const params = new URLSearchParams(searchParams.toString())\n params.set(\"page\", page.toString())\n \n // Update URL without navigation (for bookmarking support)\n const newUrl = `${pathname}?${params.toString()}`\n window.history.replaceState(null, '', newUrl)\n \n // Restore scroll position after a brief delay to allow content to render\n setTimeout(() => {\n window.scrollTo({\n top: currentScrollY,\n behavior: 'instant' // Instant to prevent any scroll animation\n })\n }, 0)\n }\n\n // Don't render pagination if there's only one page\n if (totalPages <= 1) return null\n\n return (\n <div className={className}>\n <Pagination\n currentPage={currentPage}\n totalPages={totalPages}\n onPageChange={handlePageChange}\n />\n </div>\n )\n} ","\"use client\";\n\nimport { Search, FileText, Package } from \"lucide-react\"\nimport { Button } from \"./ui/button\"\nimport { useRouter } from \"../embed-shims/next-navigation\"\n\nexport interface EmptyStateProps {\n type: 'vendors' | 'posts' | 'search' | 'generic'\n title?: string\n description?: string\n showBackButton?: boolean\n onGoBack?: () => void\n backButtonText?: string\n // New CTA properties\n showCTA?: boolean\n ctaText?: string\n onCtaClick?: () => void\n /**\n * Link-CTA mode: render the CTA as a navigation link (`href` — plain or\n * `mailto:`). Wins over `onCtaClick`, and SHORT-CIRCUITS the smart-CTA\n * path-sniffing below (which reads `window.location.pathname` — an\n * SSR/client divergence server-rendered pages must never enter).\n */\n ctaHref?: string\n ctaVariant?: 'primary' | 'secondary'\n}\n\nexport function EmptyState({\n type,\n title,\n description,\n showBackButton = false,\n onGoBack,\n backButtonText = \"Go Back\",\n showCTA = true,\n ctaText,\n onCtaClick,\n ctaHref,\n ctaVariant = 'primary'\n}: EmptyStateProps) {\n const router = useRouter()\n\n // Default content based on type\n const getDefaultContent = () => {\n switch (type) {\n case 'vendors':\n return {\n icon: <Package className=\"w-full h-full\" />,\n title: \"No vendors found\",\n description: \"We couldn't find any vendors matching your criteria. Try adjusting your filters or search terms.\"\n }\n case 'posts':\n return {\n icon: <FileText className=\"w-full h-full\" />,\n title: \"No articles found\",\n description: \"We couldn't find any articles matching your criteria. Try different categories, tags, or search terms.\"\n }\n case 'search':\n return {\n icon: <Search className=\"w-full h-full\" />,\n title: \"No results found\",\n description: \"Your search didn't return any results. Try different keywords or browse our categories.\"\n }\n default:\n return {\n icon: <Search className=\"w-full h-full\" />,\n title: \"Nothing found\",\n description: \"We couldn't find what you're looking for. Try adjusting your search or filters.\"\n }\n }\n }\n\n // Smart CTA logic based on context\n const getSmartCTA = () => {\n // If custom CTA is provided, use it\n if (ctaText && onCtaClick) {\n return {\n text: ctaText,\n action: onCtaClick\n }\n }\n\n // Check if we're on the client side\n const isClient = typeof window !== 'undefined'\n const currentPath = isClient ? window.location.pathname : ''\n\n // Surgical filter reset (promoted from the hub's diverged clone during\n // the EmptyState convergence): delete ONLY the filter params the surface\n // owns — nuking the whole query string threw away unrelated state — and\n // use `replace` with `scroll: false` so resetting filters neither adds a\n // history entry nor jumps the page.\n const resetParams = (paramsToDelete: string[]) => {\n if (!isClient) return\n const params = new URLSearchParams(window.location.search)\n for (const p of paramsToDelete) params.delete(p)\n const queryString = params.toString()\n // Keep the hash — a filter reset must not clear an unrelated\n // deep-link anchor (e.g. #delivery-123).\n const hash = window.location.hash\n router.replace(\n `${window.location.pathname}${queryString ? `?${queryString}` : ''}${hash}`,\n { scroll: false },\n )\n }\n\n // Smart defaults based on type and context\n switch (type) {\n case 'search':\n return {\n text: \"Reset Filters\",\n action: () => resetParams(['search', 'page'])\n }\n case 'posts':\n // Blog-style listing pages (blog, case studies) reset their filters\n if (currentPath.includes('/blog') || currentPath.includes('/case-studies')) {\n return {\n text: \"Reset Filters\",\n action: () => resetParams(['search', 'page', 'category', 'tags'])\n }\n } else if (currentPath.includes('/profile')) {\n return {\n text: \"Browse Vendors\",\n action: () => router.push('/vendors')\n }\n }\n return {\n text: \"View All Posts\",\n action: () => router.push('/blog')\n }\n case 'vendors':\n // If we're in profile or other pages, direct to main content\n if (currentPath.includes('/profile')) {\n return {\n text: \"Browse Vendors\",\n action: () => router.push('/vendors')\n }\n } else if (currentPath.includes('/vendors') || currentPath.includes('/margin-increase/compare')) {\n return {\n text: \"Reset Filters\",\n action: () => resetParams(['search', 'page', 'category', 'subcategory'])\n }\n }\n return {\n text: \"Browse Vendors\",\n action: () => router.push('/vendors')\n }\n default:\n return {\n text: \"Browse Vendors\",\n action: () => router.push('/vendors')\n }\n }\n }\n\n const defaultContent = getDefaultContent()\n const displayTitle = title || defaultContent.title\n const displayDescription = description || defaultContent.description\n // ctaHref short-circuits BEFORE getSmartCTA(): the smart defaults read\n // window.location.pathname (SSR-empty, client-real), so a server-rendered\n // page with a link CTA must never enter that branch. Existing callers\n // without ctaHref keep today's smart-default behavior unchanged.\n const smartCTA = ctaHref ? null : getSmartCTA()\n const ctaClassName = ctaVariant === 'primary'\n ? \"w-full bg-ods-accent text-ods-text-on-accent hover:bg-ods-accent-hover transition-all duration-150 font-body font-medium\"\n : \"w-full bg-transparent border border-ods-border text-ods-text-primary hover:border-ods-accent hover:text-ods-accent transition-all duration-150 font-body font-medium\"\n\n return (\n <div className=\"flex flex-col items-center justify-center py-6 md:py-16 px-6 text-center\">\n {/* Icon */}\n <div className=\"mb-3 md:mb-6 flex items-center justify-center\">\n <div className=\"rounded-full bg-ods-card p-3 md:p-6 border border-ods-border\">\n <div className=\"w-8 h-8 md:w-16 md:h-16 text-ods-text-secondary flex items-center justify-center\">\n {defaultContent.icon}\n </div>\n </div>\n </div>\n\n {/* Title */}\n <h2 className=\"mb-2 md:mb-3 text-h3 text-ods-text-primary\">\n {displayTitle}\n </h2>\n\n {/* Description */}\n <p className=\"mb-4 md:mb-8 max-w-md text-h6 text-ods-text-secondary\">\n {displayDescription}\n </p>\n\n {/* Link CTA (ctaHref) — SSR-safe, no path sniffing */}\n {showCTA && ctaHref && (\n <div className=\"w-full max-w-xs mb-3\">\n <Button href={ctaHref} className={ctaClassName}>\n {ctaText || 'Contact us'}\n </Button>\n </div>\n )}\n\n {/* Smart CTA Button */}\n {showCTA && !ctaHref && smartCTA && (\n <div className=\"w-full max-w-xs mb-3\">\n <Button onClick={smartCTA.action} className={ctaClassName}>\n {smartCTA.text}\n </Button>\n </div>\n )}\n\n {/* Optional Back Button */}\n {showBackButton && onGoBack && (\n <div className=\"w-full max-w-xs\">\n <Button\n onClick={onGoBack}\n variant=\"outline\"\n className=\"w-full transition-all duration-150 font-body font-medium\"\n >\n {backButtonText}\n </Button>\n </div>\n )}\n </div>\n )\n} "]}
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
TASK_TYPE_LABELS,
|
|
11
11
|
TASK_TYPE_TEXT_COLORS,
|
|
12
12
|
getStatusColorScheme
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-6SV4XZMD.js";
|
|
14
14
|
import {
|
|
15
15
|
init_next_navigation,
|
|
16
16
|
usePathname,
|
|
@@ -262,4 +262,4 @@ export {
|
|
|
262
262
|
DevCardRowSkeletonList,
|
|
263
263
|
DeliveryRow
|
|
264
264
|
};
|
|
265
|
-
//# sourceMappingURL=chunk-
|
|
265
|
+
//# sourceMappingURL=chunk-FFJL6FEB.js.map
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var _chunk3XSSW3IZcjs = require('./chunk-3XSSW3IZ.cjs');
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
var
|
|
9
|
+
var _chunkL73PC7MWcjs = require('./chunk-L73PC7MW.cjs');
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
var _chunk4QYUNDS3cjs = require('./chunk-4QYUNDS3.cjs');
|
|
@@ -26,7 +26,7 @@ var _chunk4QYUNDS3cjs = require('./chunk-4QYUNDS3.cjs');
|
|
|
26
26
|
|
|
27
27
|
|
|
28
28
|
|
|
29
|
-
var
|
|
29
|
+
var _chunkTRLZV7WMcjs = require('./chunk-TRLZV7WM.cjs');
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
var _chunk5RJUHUCIcjs = require('./chunk-5RJUHUCI.cjs');
|
|
@@ -64,7 +64,7 @@ function OnboardingGuidesCatalogSkeleton() {
|
|
|
64
64
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "h-6 w-40 bg-ods-border/70 rounded" }),
|
|
65
65
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "h-5 w-8 bg-ods-text-secondary/20 rounded-full" })
|
|
66
66
|
] }),
|
|
67
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "ul", { className: "flex flex-col gap-4", children: Array.from({ length: cardCount }).map((_, cardIdx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "li", { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
67
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "ul", { className: "flex flex-col gap-4", children: Array.from({ length: cardCount }).map((_, cardIdx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "li", { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTRLZV7WMcjs.OnboardingGuideCardSkeleton, { size: "catalog" }) }, cardIdx)) })
|
|
68
68
|
] }, sectionIdx)) })
|
|
69
69
|
] });
|
|
70
70
|
}
|
|
@@ -133,21 +133,21 @@ function OnboardingGuidesCatalogView({
|
|
|
133
133
|
});
|
|
134
134
|
};
|
|
135
135
|
const source = _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _4 => _4.source]), () => ( "openframe"));
|
|
136
|
-
const docSearch =
|
|
136
|
+
const docSearch = _chunkL73PC7MWcjs.useDocSearch.call(void 0, {
|
|
137
137
|
source,
|
|
138
138
|
baseRoute: basePath,
|
|
139
139
|
onNavigate: (path) => router.push(path),
|
|
140
140
|
tableIds: ["onboarding-guides"]
|
|
141
141
|
});
|
|
142
142
|
const defaultRenderCard = (guide) => {
|
|
143
|
-
const cta =
|
|
143
|
+
const cta = _chunkTRLZV7WMcjs.resolveContentHref.call(void 0, _optionalChain([runtime, 'optionalAccess', _5 => _5.composeContentUrl]), {
|
|
144
144
|
type: "onboarding_guide",
|
|
145
145
|
slug: guide.slug,
|
|
146
146
|
basePath,
|
|
147
147
|
platforms: guide.onboarding_guide_platforms
|
|
148
148
|
});
|
|
149
149
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
150
|
-
|
|
150
|
+
_chunkTRLZV7WMcjs.OnboardingGuideCard,
|
|
151
151
|
{
|
|
152
152
|
guide,
|
|
153
153
|
href: cta.href,
|
|
@@ -159,7 +159,7 @@ function OnboardingGuidesCatalogView({
|
|
|
159
159
|
const renderCardFn = _nullishCoalesce(renderCard, () => ( defaultRenderCard));
|
|
160
160
|
const preControls = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
|
|
161
161
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
162
|
-
|
|
162
|
+
_chunkL73PC7MWcjs.DocSearchBar,
|
|
163
163
|
{
|
|
164
164
|
placeholder: "Search onboarding guides, releases, case studies\u2026",
|
|
165
165
|
query: docSearch.query,
|
|
@@ -171,7 +171,7 @@ function OnboardingGuidesCatalogView({
|
|
|
171
171
|
}
|
|
172
172
|
),
|
|
173
173
|
sections.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
174
|
-
|
|
174
|
+
_chunkTRLZV7WMcjs.FilterPillRow,
|
|
175
175
|
{
|
|
176
176
|
label: "Section",
|
|
177
177
|
selectedValue: activeSection,
|
|
@@ -181,7 +181,7 @@ function OnboardingGuidesCatalogView({
|
|
|
181
181
|
)
|
|
182
182
|
] });
|
|
183
183
|
if (selfFetch && guidesRes.error) {
|
|
184
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
184
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTRLZV7WMcjs.LoadError, { message: "Failed to load onboarding guides.", onRetry: guidesRes.reload });
|
|
185
185
|
}
|
|
186
186
|
if (selfFetch && guidesRes.data == null && isLoading) {
|
|
187
187
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, OnboardingGuidesCatalogSkeleton, {});
|
|
@@ -213,7 +213,7 @@ function OnboardingGuideDetailView({
|
|
|
213
213
|
slug,
|
|
214
214
|
guideEndpoint,
|
|
215
215
|
related = [],
|
|
216
|
-
MarkdownRenderer =
|
|
216
|
+
MarkdownRenderer = _chunkTRLZV7WMcjs.RichMarkdownRenderer,
|
|
217
217
|
renderRelatedCard,
|
|
218
218
|
backHref,
|
|
219
219
|
backLabel = "Back to Getting Started",
|
|
@@ -224,49 +224,49 @@ function OnboardingGuideDetailView({
|
|
|
224
224
|
const resolvedBackHref = _nullishCoalesce(backHref, () => ( basePath));
|
|
225
225
|
const runtime = _chunk7OPWSWEJcjs.useChatRuntime.call(void 0, );
|
|
226
226
|
const router = _chunkSSJNN5BScjs.useRouter.call(void 0, );
|
|
227
|
-
const renderShell = (node) => shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
227
|
+
const renderShell = (node) => shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTRLZV7WMcjs.PageShell, { children: node }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: node });
|
|
228
228
|
const url = initialData ? null : slug && guideEndpoint ? guideEndpoint(slug) : null;
|
|
229
229
|
const { data: guide, isLoading, error, reload } = _chunk4QYUNDS3cjs.useSelfFetch.call(void 0, url, { initialData });
|
|
230
|
-
const { ref: videoWarmupRef } =
|
|
230
|
+
const { ref: videoWarmupRef } = _chunkTRLZV7WMcjs.useVideoWarmup.call(void 0, {
|
|
231
231
|
videoUrl: _optionalChain([guide, 'optionalAccess', _6 => _6.main_video_url]),
|
|
232
232
|
supabaseStorageOrigin: _optionalChain([runtime, 'optionalAccess', _7 => _7.endpoints, 'access', _8 => _8.supabaseStorageOrigin])
|
|
233
233
|
});
|
|
234
234
|
if (error || !guide && !isLoading) {
|
|
235
|
-
return renderShell(/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
235
|
+
return renderShell(/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTRLZV7WMcjs.LoadError, { message: "Guide not found.", onRetry: reload }));
|
|
236
236
|
}
|
|
237
237
|
if (!guide) {
|
|
238
238
|
return renderShell(
|
|
239
239
|
// Match the loaded page's top offset (TitleBlock's
|
|
240
240
|
// `pt-[var(--spacing-system-l)]`) so content doesn't jump on load.
|
|
241
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pt-[var(--spacing-system-l)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
241
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pt-[var(--spacing-system-l)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk3XSSW3IZcjs.DetailPageSkeleton, { bare: true, showImageGallery: false }) })
|
|
242
242
|
);
|
|
243
243
|
}
|
|
244
|
-
const captionsUrl =
|
|
244
|
+
const captionsUrl = _chunkTRLZV7WMcjs.getCaptionsUrl.call(void 0, "onboarding_guide", guide.id, guide.srt_content);
|
|
245
245
|
const videoPoster = guide.main_video_thumbnail || guide.featured_image || guide.og_image_url || // `buildOgPlaceholderUrl` always returns a usable string (relative route at
|
|
246
246
|
// worst), so it's the terminal fallback — no trailing `|| undefined` needed.
|
|
247
247
|
_chunk5RJUHUCIcjs.buildOgPlaceholderUrl.call(void 0, _optionalChain([runtime, 'optionalAccess', _9 => _9.endpoints]), guide.title, { aspect: "wide" });
|
|
248
248
|
const defaultRenderRelatedCard = (g) => {
|
|
249
|
-
const cta =
|
|
249
|
+
const cta = _chunkTRLZV7WMcjs.resolveContentHref.call(void 0, _optionalChain([runtime, 'optionalAccess', _10 => _10.composeContentUrl]), {
|
|
250
250
|
type: "onboarding_guide",
|
|
251
251
|
slug: g.slug,
|
|
252
252
|
basePath,
|
|
253
253
|
platforms: g.onboarding_guide_platforms
|
|
254
254
|
});
|
|
255
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
255
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTRLZV7WMcjs.OnboardingGuideCard, { guide: g, href: cta.href, targetPlatform: cta.targetPlatform });
|
|
256
256
|
};
|
|
257
257
|
const renderRelatedCardFn = _nullishCoalesce(renderRelatedCard, () => ( defaultRenderRelatedCard));
|
|
258
258
|
return renderShell(
|
|
259
259
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
260
|
-
|
|
260
|
+
_chunkTRLZV7WMcjs.PageLayout,
|
|
261
261
|
{
|
|
262
262
|
title: guide.title,
|
|
263
263
|
titleSize: "h1",
|
|
264
264
|
titleWrap: true,
|
|
265
265
|
backButton: { label: backLabel, onClick: () => router.push(resolvedBackHref) },
|
|
266
266
|
children: [
|
|
267
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
267
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTRLZV7WMcjs.EntityTagBadges, { tags: guide.onboarding_guide_tags }),
|
|
268
268
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
269
|
-
|
|
269
|
+
_chunkTRLZV7WMcjs.EntityAuthorCard,
|
|
270
270
|
{
|
|
271
271
|
author: guide.author,
|
|
272
272
|
authorHref,
|
|
@@ -281,7 +281,7 @@ function OnboardingGuideDetailView({
|
|
|
281
281
|
}
|
|
282
282
|
),
|
|
283
283
|
(guide.main_video_url || guide.youtube_url) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: videoWarmupRef, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
284
|
-
|
|
284
|
+
_chunkTRLZV7WMcjs.EntityVideoSection,
|
|
285
285
|
{
|
|
286
286
|
mainVideoUrl: guide.main_video_url,
|
|
287
287
|
youtubeUrl: guide.youtube_url || void 0,
|
|
@@ -298,17 +298,17 @@ function OnboardingGuideDetailView({
|
|
|
298
298
|
) }),
|
|
299
299
|
guide.content && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MarkdownRenderer, { content: guide.content }) }),
|
|
300
300
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
301
|
-
|
|
301
|
+
_chunkTRLZV7WMcjs.VideoBitesStrip,
|
|
302
302
|
{
|
|
303
303
|
bites: _nullishCoalesce(guide.video_bites, () => ( [])),
|
|
304
304
|
filterPublished: true,
|
|
305
305
|
showTitle: false,
|
|
306
|
-
profile:
|
|
306
|
+
profile: _chunkTRLZV7WMcjs.toStripProfile.call(void 0, guide.author),
|
|
307
307
|
href: `/onboarding-guides/${guide.slug}`
|
|
308
308
|
}
|
|
309
309
|
),
|
|
310
310
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
311
|
-
|
|
311
|
+
_chunk3XSSW3IZcjs.ArticleAuthorByline,
|
|
312
312
|
{
|
|
313
313
|
author: _nullishCoalesce(_optionalChain([guide, 'access', _11 => _11.author, 'optionalAccess', _12 => _12.full_name]), () => ( null)),
|
|
314
314
|
avatar: _optionalChain([guide, 'access', _13 => _13.author, 'optionalAccess', _14 => _14.avatar_url]),
|
|
@@ -396,4 +396,4 @@ function useOnboardingGuideSections() {
|
|
|
396
396
|
|
|
397
397
|
|
|
398
398
|
exports.OnboardingGuidesCatalogSkeleton = OnboardingGuidesCatalogSkeleton; exports.OnboardingGuidesCatalogView = OnboardingGuidesCatalogView; exports.OnboardingGuideDetailView = OnboardingGuideDetailView; exports.onboardingGuideKeys = onboardingGuideKeys; exports.useOnboardingGuides = useOnboardingGuides; exports.useOnboardingGuide = useOnboardingGuide; exports.useOnboardingGuideSections = useOnboardingGuideSections;
|
|
399
|
-
//# sourceMappingURL=chunk-
|
|
399
|
+
//# sourceMappingURL=chunk-FIPHDAD2.cjs.map
|