@flamingo-stack/openframe-frontend-core 0.0.684 → 0.0.685-2452.7452.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-T6KWNJDW.js → chunk-22RSJ57Z.js} +470 -465
- package/dist/chunk-22RSJ57Z.js.map +1 -0
- package/dist/{chunk-K2HZG4RM.cjs → chunk-2OD2PPNO.cjs} +32 -32
- package/dist/{chunk-K2HZG4RM.cjs.map → chunk-2OD2PPNO.cjs.map} +1 -1
- package/dist/{chunk-QFJHEDZV.js → chunk-3NY5ILEE.js} +3 -3
- package/dist/{chunk-QMUALBRX.js → chunk-4A5PYSPH.js} +6 -5
- package/dist/{chunk-QMUALBRX.js.map → chunk-4A5PYSPH.js.map} +1 -1
- package/dist/{chunk-CHFHYEZR.js → chunk-5QXN54QK.js} +3 -3
- package/dist/{chunk-6T4RTIW6.cjs → chunk-7CTJLBZM.cjs} +5 -5
- package/dist/{chunk-6T4RTIW6.cjs.map → chunk-7CTJLBZM.cjs.map} +1 -1
- package/dist/{chunk-ZYHN5ABN.js → chunk-7GKYMBQ4.js} +4 -4
- package/dist/{chunk-GJ7UAN7G.js → chunk-AELY4TAA.js} +3 -3
- package/dist/{chunk-SHNSCUIR.cjs → chunk-AKFA7ZDD.cjs} +28 -28
- package/dist/{chunk-SHNSCUIR.cjs.map → chunk-AKFA7ZDD.cjs.map} +1 -1
- package/dist/{chunk-PUZQENGY.js → chunk-BYG2NLD7.js} +3 -3
- package/dist/{chunk-VW4JDXAT.js → chunk-EXZPVTUM.js} +2086 -1644
- package/dist/chunk-EXZPVTUM.js.map +1 -0
- package/dist/{chunk-XQXIFRFQ.js → chunk-FTPDLV7B.js} +4 -4
- package/dist/{chunk-WCZJQIDW.js → chunk-G6G6R3HQ.js} +3 -3
- package/dist/{chunk-4IRROD7M.cjs → chunk-H5JOWXGI.cjs} +30 -30
- package/dist/{chunk-4IRROD7M.cjs.map → chunk-H5JOWXGI.cjs.map} +1 -1
- package/dist/{chunk-TUG7IT6H.js → chunk-HLEXYTOE.js} +2 -2
- package/dist/{chunk-UHLN2S7J.cjs → chunk-HTIOL44C.cjs} +1247 -805
- package/dist/chunk-HTIOL44C.cjs.map +1 -0
- package/dist/{chunk-777QY5YZ.cjs → chunk-ILMGYP66.cjs} +3 -3
- package/dist/{chunk-777QY5YZ.cjs.map → chunk-ILMGYP66.cjs.map} +1 -1
- package/dist/{chunk-7GSLZBGB.cjs → chunk-JEEYLBPQ.cjs} +10 -10
- package/dist/{chunk-7GSLZBGB.cjs.map → chunk-JEEYLBPQ.cjs.map} +1 -1
- package/dist/{chunk-KSZBUUTY.js → chunk-KLWCURLZ.js} +6 -6
- package/dist/{chunk-7HROJ2CB.cjs → chunk-KVOA22BW.cjs} +81 -81
- package/dist/{chunk-7HROJ2CB.cjs.map → chunk-KVOA22BW.cjs.map} +1 -1
- package/dist/{chunk-FVEQYZDH.js → chunk-L5OLMZGC.js} +7 -7
- package/dist/{chunk-64MGLDCX.cjs → chunk-LSY7OGTC.cjs} +384 -383
- package/dist/chunk-LSY7OGTC.cjs.map +1 -0
- package/dist/{chunk-J5CGC6ES.cjs → chunk-MGYWANYK.cjs} +12 -12
- package/dist/{chunk-J5CGC6ES.cjs.map → chunk-MGYWANYK.cjs.map} +1 -1
- package/dist/{chunk-E3G22CS7.cjs → chunk-OFYXFNVF.cjs} +33 -33
- package/dist/{chunk-E3G22CS7.cjs.map → chunk-OFYXFNVF.cjs.map} +1 -1
- package/dist/{chunk-DJ5UHDWB.cjs → chunk-OIAI5J35.cjs} +59 -59
- package/dist/{chunk-DJ5UHDWB.cjs.map → chunk-OIAI5J35.cjs.map} +1 -1
- package/dist/{chunk-DQOQ3KTP.cjs → chunk-QNWQQ4RT.cjs} +78 -73
- package/dist/chunk-QNWQQ4RT.cjs.map +1 -0
- package/dist/{chunk-5GMTMALA.js → chunk-ROOCATH7.js} +6 -6
- package/dist/{chunk-7MCK6KMW.js → chunk-RXFHPJ5O.js} +5 -5
- package/dist/{chunk-P7TNZJBZ.cjs → chunk-SO5NWQMG.cjs} +6 -6
- package/dist/{chunk-P7TNZJBZ.cjs.map → chunk-SO5NWQMG.cjs.map} +1 -1
- package/dist/{chunk-B5JLPHHE.js → chunk-THLCPUEG.js} +2 -2
- package/dist/{chunk-WA4O5ILG.js → chunk-TKRGKDNG.js} +5 -5
- package/dist/{chunk-KCEACU3F.js → chunk-URJD7BME.js} +3 -3
- package/dist/{chunk-OKXB2A2F.cjs → chunk-UU7NOXIK.cjs} +7 -7
- package/dist/{chunk-OKXB2A2F.cjs.map → chunk-UU7NOXIK.cjs.map} +1 -1
- package/dist/{chunk-CZUO5KVD.cjs → chunk-XWP5E453.cjs} +20 -20
- package/dist/{chunk-CZUO5KVD.cjs.map → chunk-XWP5E453.cjs.map} +1 -1
- package/dist/{chunk-ERTG6C5E.cjs → chunk-YTVZJNJ7.cjs} +22 -22
- package/dist/{chunk-ERTG6C5E.cjs.map → chunk-YTVZJNJ7.cjs.map} +1 -1
- package/dist/{chunk-VNNEAPXL.cjs → chunk-YVARUYL5.cjs} +15 -15
- package/dist/{chunk-VNNEAPXL.cjs.map → chunk-YVARUYL5.cjs.map} +1 -1
- package/dist/components/case-studies/index.cjs +16 -16
- package/dist/components/case-studies/index.js +4 -4
- package/dist/components/chat/ai-assistant-info.d.ts.map +1 -1
- package/dist/components/chat/approval-request-message.d.ts.map +1 -1
- package/dist/components/chat/chat-appearance-context.d.ts +9 -0
- package/dist/components/chat/chat-appearance-context.d.ts.map +1 -0
- package/dist/components/chat/chat-input.d.ts.map +1 -1
- package/dist/components/chat/chat-message-enhanced.d.ts.map +1 -1
- package/dist/components/chat/chat-message-list.d.ts.map +1 -1
- package/dist/components/chat/chat-nav-sidebar.d.ts +50 -0
- package/dist/components/chat/chat-nav-sidebar.d.ts.map +1 -0
- package/dist/components/chat/chat-top-navigation.d.ts +29 -0
- package/dist/components/chat/chat-top-navigation.d.ts.map +1 -0
- package/dist/components/chat/error-message-display.d.ts.map +1 -1
- package/dist/components/chat/index.cjs +21 -3
- package/dist/components/chat/index.cjs.map +1 -1
- package/dist/components/chat/index.d.ts +6 -0
- package/dist/components/chat/index.d.ts.map +1 -1
- package/dist/components/chat/index.js +20 -2
- package/dist/components/chat/msp-organization-card.d.ts +7 -1
- package/dist/components/chat/msp-organization-card.d.ts.map +1 -1
- package/dist/components/chat/onboarding-carousel.d.ts +29 -0
- package/dist/components/chat/onboarding-carousel.d.ts.map +1 -0
- package/dist/components/chat/system-event-message.d.ts +14 -0
- package/dist/components/chat/system-event-message.d.ts.map +1 -0
- package/dist/components/chat/types/chat.types.d.ts +13 -0
- package/dist/components/chat/types/chat.types.d.ts.map +1 -1
- package/dist/components/chat/types/component.types.d.ts +20 -1
- package/dist/components/chat/types/component.types.d.ts.map +1 -1
- package/dist/components/contact/index.cjs +5 -5
- package/dist/components/contact/index.js +4 -4
- package/dist/components/docs/index.cjs +8 -8
- package/dist/components/docs/index.js +7 -7
- package/dist/components/embeds/index.cjs +5 -5
- package/dist/components/embeds/index.js +4 -4
- package/dist/components/faq/index.cjs +5 -5
- package/dist/components/faq/index.js +4 -4
- package/dist/components/features/index.cjs +4 -4
- package/dist/components/features/index.js +3 -3
- package/dist/components/help-center-pages/index.cjs +91 -91
- package/dist/components/help-center-pages/index.js +15 -15
- package/dist/components/index.cjs +73 -55
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +33 -15
- package/dist/components/index.js.map +1 -1
- package/dist/components/meeting-scheduler/index.cjs +41 -41
- package/dist/components/meeting-scheduler/index.js +3 -3
- package/dist/components/navigation/index.cjs +7 -7
- package/dist/components/navigation/index.js +6 -6
- package/dist/components/onboarding-guides/index.cjs +7 -7
- package/dist/components/onboarding-guides/index.js +6 -6
- package/dist/components/related-content/index.cjs +3 -3
- package/dist/components/related-content/index.js +2 -2
- package/dist/components/tickets/index.cjs +8 -8
- package/dist/components/tickets/index.js +7 -7
- package/dist/components/ui/avatar-stack.d.ts +5 -1
- package/dist/components/ui/avatar-stack.d.ts.map +1 -1
- package/dist/components/ui/index.cjs +22 -4
- package/dist/components/ui/index.cjs.map +1 -1
- package/dist/components/ui/index.js +21 -3
- package/dist/components/ui/reopen-ticket-request-modal.d.ts +4 -1
- package/dist/components/ui/reopen-ticket-request-modal.d.ts.map +1 -1
- package/dist/index.cjs +27 -9
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +25 -7
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/chat/__tests__/chat-appearance.test.tsx +79 -0
- package/src/components/chat/__tests__/onboarding-carousel.test.tsx +56 -0
- package/src/components/chat/ai-assistant-info.tsx +7 -1
- package/src/components/chat/approval-request-message.tsx +6 -1
- package/src/components/chat/chat-appearance-context.tsx +15 -0
- package/src/components/chat/chat-input.tsx +26 -1
- package/src/components/chat/chat-message-enhanced.tsx +180 -142
- package/src/components/chat/chat-message-list.tsx +169 -164
- package/src/components/chat/chat-nav-sidebar.tsx +163 -0
- package/src/components/chat/chat-top-navigation.tsx +109 -0
- package/src/components/chat/error-message-display.tsx +21 -3
- package/src/components/chat/index.ts +6 -0
- package/src/components/chat/msp-organization-card.tsx +35 -0
- package/src/components/chat/onboarding-carousel.tsx +162 -0
- package/src/components/chat/system-event-message.tsx +54 -0
- package/src/components/chat/types/chat.types.ts +15 -0
- package/src/components/chat/types/component.types.ts +20 -0
- package/src/components/ui/__tests__/avatar-stack.test.tsx +25 -0
- package/src/components/ui/avatar-stack.tsx +15 -5
- package/src/components/ui/reopen-ticket-request-modal.tsx +6 -2
- package/src/stories/FaeLayoutV2.stories.tsx +150 -0
- package/src/stories/FaeOnboardingV2.stories.tsx +68 -0
- package/src/stories/FaeThreadV2.stories.tsx +192 -0
- package/src/stories/fae-brand-decorator.tsx +28 -0
- package/src/styles/ods-colors.css +10 -0
- package/src/styles/ods-effects.css +13 -0
- package/dist/chunk-64MGLDCX.cjs.map +0 -1
- package/dist/chunk-DQOQ3KTP.cjs.map +0 -1
- package/dist/chunk-T6KWNJDW.js.map +0 -1
- package/dist/chunk-UHLN2S7J.cjs.map +0 -1
- package/dist/chunk-VW4JDXAT.js.map +0 -1
- /package/dist/{chunk-QFJHEDZV.js.map → chunk-3NY5ILEE.js.map} +0 -0
- /package/dist/{chunk-CHFHYEZR.js.map → chunk-5QXN54QK.js.map} +0 -0
- /package/dist/{chunk-ZYHN5ABN.js.map → chunk-7GKYMBQ4.js.map} +0 -0
- /package/dist/{chunk-GJ7UAN7G.js.map → chunk-AELY4TAA.js.map} +0 -0
- /package/dist/{chunk-PUZQENGY.js.map → chunk-BYG2NLD7.js.map} +0 -0
- /package/dist/{chunk-XQXIFRFQ.js.map → chunk-FTPDLV7B.js.map} +0 -0
- /package/dist/{chunk-WCZJQIDW.js.map → chunk-G6G6R3HQ.js.map} +0 -0
- /package/dist/{chunk-TUG7IT6H.js.map → chunk-HLEXYTOE.js.map} +0 -0
- /package/dist/{chunk-KSZBUUTY.js.map → chunk-KLWCURLZ.js.map} +0 -0
- /package/dist/{chunk-FVEQYZDH.js.map → chunk-L5OLMZGC.js.map} +0 -0
- /package/dist/{chunk-5GMTMALA.js.map → chunk-ROOCATH7.js.map} +0 -0
- /package/dist/{chunk-7MCK6KMW.js.map → chunk-RXFHPJ5O.js.map} +0 -0
- /package/dist/{chunk-B5JLPHHE.js.map → chunk-THLCPUEG.js.map} +0 -0
- /package/dist/{chunk-WA4O5ILG.js.map → chunk-TKRGKDNG.js.map} +0 -0
- /package/dist/{chunk-KCEACU3F.js.map → chunk-URJD7BME.js.map} +0 -0
|
@@ -5,13 +5,13 @@ import {
|
|
|
5
5
|
import {
|
|
6
6
|
DeliveryRow,
|
|
7
7
|
ListEmptyState
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-5QXN54QK.js";
|
|
9
9
|
import {
|
|
10
10
|
EmptyState
|
|
11
11
|
} from "./chunk-Q76YVNCQ.js";
|
|
12
12
|
import {
|
|
13
13
|
DetailPageSkeleton
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-URJD7BME.js";
|
|
15
15
|
import {
|
|
16
16
|
useSelfFetch
|
|
17
17
|
} from "./chunk-DLRE5Y3G.js";
|
|
@@ -30,7 +30,7 @@ import {
|
|
|
30
30
|
RichMarkdownRenderer,
|
|
31
31
|
devSectionAnchorId,
|
|
32
32
|
resolveContentHref
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-4A5PYSPH.js";
|
|
34
34
|
import {
|
|
35
35
|
useHumanitySignals,
|
|
36
36
|
useScrollToHash
|
|
@@ -46,7 +46,7 @@ import {
|
|
|
46
46
|
isModifierClick,
|
|
47
47
|
useCaptions,
|
|
48
48
|
useIsHydrated
|
|
49
|
-
} from "./chunk-
|
|
49
|
+
} from "./chunk-EXZPVTUM.js";
|
|
50
50
|
import {
|
|
51
51
|
STICKY_HEADER_OFFSET_PX
|
|
52
52
|
} from "./chunk-JFM4KLOS.js";
|
|
@@ -72,7 +72,7 @@ import {
|
|
|
72
72
|
formatReleaseDate,
|
|
73
73
|
toStripProfile,
|
|
74
74
|
useEntityCardLink
|
|
75
|
-
} from "./chunk-
|
|
75
|
+
} from "./chunk-22RSJ57Z.js";
|
|
76
76
|
import {
|
|
77
77
|
next_image_default
|
|
78
78
|
} from "./chunk-MDKCTSDS.js";
|
|
@@ -1373,4 +1373,4 @@ export {
|
|
|
1373
1373
|
useLegalDocs,
|
|
1374
1374
|
LegalDocumentPage
|
|
1375
1375
|
};
|
|
1376
|
-
//# sourceMappingURL=chunk-
|
|
1376
|
+
//# sourceMappingURL=chunk-ROOCATH7.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import {
|
|
3
3
|
useOptionalTicketLive
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-G6G6R3HQ.js";
|
|
5
5
|
import {
|
|
6
6
|
AppLayoutDrawerContainerContext,
|
|
7
7
|
AppLayoutDrawerCoordinationContext,
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
UnreadDot,
|
|
14
14
|
buildTicketOpenHref,
|
|
15
15
|
useOptionalNotifications
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-4A5PYSPH.js";
|
|
17
17
|
import {
|
|
18
18
|
useFocusTrap,
|
|
19
19
|
useLocalStorage
|
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
OVERLAY_BACKDROP_CLASS,
|
|
23
23
|
Tag,
|
|
24
24
|
useIsHydrated
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-EXZPVTUM.js";
|
|
26
26
|
import {
|
|
27
27
|
useHeaderHeight,
|
|
28
28
|
useIsomorphicLayoutEffect,
|
|
@@ -48,7 +48,7 @@ import {
|
|
|
48
48
|
} from "./chunk-YQR4D5DA.js";
|
|
49
49
|
import {
|
|
50
50
|
SquareAvatar
|
|
51
|
-
} from "./chunk-
|
|
51
|
+
} from "./chunk-22RSJ57Z.js";
|
|
52
52
|
import {
|
|
53
53
|
OpenFrameLogo
|
|
54
54
|
} from "./chunk-OTX6XNSA.js";
|
|
@@ -1918,4 +1918,4 @@ export {
|
|
|
1918
1918
|
MobileBurgerMenu,
|
|
1919
1919
|
AppLayout
|
|
1920
1920
|
};
|
|
1921
|
-
//# sourceMappingURL=chunk-
|
|
1921
|
+
//# sourceMappingURL=chunk-RXFHPJ5O.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var _chunkLSY7OGTCcjs = require('./chunk-LSY7OGTC.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
@@ -12,7 +12,7 @@ var _chunkP22VEIWQcjs = require('./chunk-P22VEIWQ.cjs');
|
|
|
12
12
|
var _chunk4HHBN7STcjs = require('./chunk-4HHBN7ST.cjs');
|
|
13
13
|
|
|
14
14
|
|
|
15
|
-
var
|
|
15
|
+
var _chunkQNWQQ4RTcjs = require('./chunk-QNWQQ4RT.cjs');
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
var _chunkF6U2H42Lcjs = require('./chunk-F6U2H42L.cjs');
|
|
@@ -27,7 +27,7 @@ function FileDownloadCard({ fileName, mimeType, fileSize, fileUrl }) {
|
|
|
27
27
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "text-ods-text-primary text-h3", children: fileName || "File" }),
|
|
28
28
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mt-2 flex items-center justify-center gap-3 text-ods-text-secondary text-h6", children: [
|
|
29
29
|
mimeType && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: mimeType }),
|
|
30
|
-
typeof fileSize === "number" && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children:
|
|
30
|
+
typeof fileSize === "number" && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: _chunkQNWQQ4RTcjs.formatFileSize.call(void 0, fileSize) })
|
|
31
31
|
] })
|
|
32
32
|
] }),
|
|
33
33
|
fileUrl && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkF6U2H42Lcjs.Button, { variant: "accent", href: fileUrl, openInNewTab: true, leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Download, { className: "h-4 w-4" }), children: "Download File" })
|
|
@@ -46,7 +46,7 @@ function GoogleSheetsViewer({ externalUrl, fileName, height }) {
|
|
|
46
46
|
] });
|
|
47
47
|
}
|
|
48
48
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
49
|
-
|
|
49
|
+
_chunkLSY7OGTCcjs.EmbedViewerFrame,
|
|
50
50
|
{
|
|
51
51
|
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk4HHBN7STcjs.GoogleSheetsIcon, { className: "h-5 w-5 shrink-0" }),
|
|
52
52
|
title: displayName,
|
|
@@ -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
|
+
_chunkLSY7OGTCcjs.EmbedViewerFrame,
|
|
85
85
|
{
|
|
86
86
|
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk4HHBN7STcjs.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-SO5NWQMG.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-SO5NWQMG.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-SO5NWQMG.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"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import {
|
|
3
3
|
DEFAULT_FOLDER_INDEX_FILE
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-4A5PYSPH.js";
|
|
5
5
|
import {
|
|
6
6
|
scrollElementIntoView
|
|
7
7
|
} from "./chunk-JFM4KLOS.js";
|
|
@@ -358,4 +358,4 @@ export {
|
|
|
358
358
|
MultiLevelNavigation,
|
|
359
359
|
MobileNavigationDropdown
|
|
360
360
|
};
|
|
361
|
-
//# sourceMappingURL=chunk-
|
|
361
|
+
//# sourceMappingURL=chunk-THLCPUEG.js.map
|
|
@@ -3,16 +3,16 @@ import {
|
|
|
3
3
|
FileDownloadCard,
|
|
4
4
|
GoogleSheetsViewer,
|
|
5
5
|
PdfViewer
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-BYG2NLD7.js";
|
|
7
7
|
import {
|
|
8
8
|
MobileNavigationDropdown,
|
|
9
9
|
MultiLevelNavigation,
|
|
10
10
|
StickySectionNav
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-THLCPUEG.js";
|
|
12
12
|
import {
|
|
13
13
|
DocSearchBar,
|
|
14
14
|
useDocSearch
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-FTPDLV7B.js";
|
|
16
16
|
import {
|
|
17
17
|
CategorySidebarSkeleton,
|
|
18
18
|
DEFAULT_FOLDER_INDEX_FILE,
|
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
findDocNodeByPath,
|
|
23
23
|
getDocAncestorNodeIds,
|
|
24
24
|
stripFolderIndexFromPath
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-4A5PYSPH.js";
|
|
26
26
|
import {
|
|
27
27
|
contentFetch
|
|
28
28
|
} from "./chunk-UAKWSR3U.js";
|
|
@@ -1098,4 +1098,4 @@ export {
|
|
|
1098
1098
|
EmbedSkeleton,
|
|
1099
1099
|
DocsHubPage
|
|
1100
1100
|
};
|
|
1101
|
-
//# sourceMappingURL=chunk-
|
|
1101
|
+
//# sourceMappingURL=chunk-TKRGKDNG.js.map
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import {
|
|
3
3
|
PageLayout
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-4A5PYSPH.js";
|
|
5
5
|
import {
|
|
6
6
|
formatBioText,
|
|
7
7
|
formatDateWithTimezone,
|
|
8
8
|
getProxiedImageUrl
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-22RSJ57Z.js";
|
|
10
10
|
import {
|
|
11
11
|
next_image_default
|
|
12
12
|
} from "./chunk-MDKCTSDS.js";
|
|
@@ -137,4 +137,4 @@ export {
|
|
|
137
137
|
DetailPageSkeleton,
|
|
138
138
|
ArticleAuthorByline
|
|
139
139
|
};
|
|
140
|
-
//# sourceMappingURL=chunk-
|
|
140
|
+
//# sourceMappingURL=chunk-URJD7BME.js.map
|
|
@@ -1,12 +1,12 @@
|
|
|
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 _chunkLSY7OGTCcjs = require('./chunk-LSY7OGTC.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
var
|
|
9
|
+
var _chunkQNWQQ4RTcjs = require('./chunk-QNWQQ4RT.cjs');
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
var _chunkWLSFBRT5cjs = require('./chunk-WLSFBRT5.cjs');
|
|
@@ -56,14 +56,14 @@ 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, _chunkLSY7OGTCcjs.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
|
|
63
63
|
var _lucidereact = require('lucide-react');
|
|
64
64
|
|
|
65
65
|
function formatDate(value) {
|
|
66
|
-
return
|
|
66
|
+
return _chunkQNWQQ4RTcjs.formatDateWithTimezone.call(void 0, value, null, "long");
|
|
67
67
|
}
|
|
68
68
|
function ArticleAuthorByline({
|
|
69
69
|
author,
|
|
@@ -79,7 +79,7 @@ function ArticleAuthorByline({
|
|
|
79
79
|
}) {
|
|
80
80
|
const runtime = _chunkU2YLMFJKcjs.useChatRuntime.call(void 0, );
|
|
81
81
|
if (!author) return null;
|
|
82
|
-
const proxiedAvatar = avatar ? proxyImageUrl ? proxyImageUrl(avatar) : _nullishCoalesce(
|
|
82
|
+
const proxiedAvatar = avatar ? proxyImageUrl ? proxyImageUrl(avatar) : _nullishCoalesce(_chunkQNWQQ4RTcjs.getProxiedImageUrl.call(void 0, avatar, {
|
|
83
83
|
proxyPrefix: _optionalChain([runtime, 'optionalAccess', _2 => _2.endpoints, 'access', _3 => _3.imageProxyUrlPrefix]),
|
|
84
84
|
skipDomains: _optionalChain([runtime, 'optionalAccess', _4 => _4.endpoints, 'access', _5 => _5.imageProxySkipDomains]),
|
|
85
85
|
directHttps: true
|
|
@@ -87,7 +87,7 @@ function ArticleAuthorByline({
|
|
|
87
87
|
const avatarSizeClass = size === "lg" ? "w-16 h-16" : "w-14 h-14";
|
|
88
88
|
const avatarIconClass = size === "lg" ? "w-8 h-8" : "w-7 h-7";
|
|
89
89
|
const avatarDim = size === "lg" ? 64 : 56;
|
|
90
|
-
const formattedBio =
|
|
90
|
+
const formattedBio = _chunkQNWQQ4RTcjs.formatBioText.call(void 0, _nullishCoalesce(bio, () => ( null)));
|
|
91
91
|
const dateLabel = publishedAt ? formatDate(publishedAt) : "";
|
|
92
92
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
93
93
|
"div",
|
|
@@ -137,4 +137,4 @@ function ArticleAuthorByline({
|
|
|
137
137
|
|
|
138
138
|
|
|
139
139
|
exports.DetailPageSkeleton = DetailPageSkeleton; exports.ArticleAuthorByline = ArticleAuthorByline;
|
|
140
|
-
//# sourceMappingURL=chunk-
|
|
140
|
+
//# sourceMappingURL=chunk-UU7NOXIK.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-OKXB2A2F.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-OKXB2A2F.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-UU7NOXIK.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-UU7NOXIK.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"]}
|
|
@@ -4,13 +4,13 @@
|
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
var
|
|
7
|
+
var _chunkLSY7OGTCcjs = require('./chunk-LSY7OGTC.cjs');
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
var _chunkP22VEIWQcjs = require('./chunk-P22VEIWQ.cjs');
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
var
|
|
13
|
+
var _chunkHTIOL44Ccjs = require('./chunk-HTIOL44C.cjs');
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
|
|
@@ -37,7 +37,7 @@ var _chunk4HHBN7STcjs = require('./chunk-4HHBN7ST.cjs');
|
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
|
|
40
|
-
var
|
|
40
|
+
var _chunkQNWQQ4RTcjs = require('./chunk-QNWQQ4RT.cjs');
|
|
41
41
|
|
|
42
42
|
|
|
43
43
|
var _chunkWLSFBRT5cjs = require('./chunk-WLSFBRT5.cjs');
|
|
@@ -122,7 +122,7 @@ CveLink.displayName = "CveLink";
|
|
|
122
122
|
// src/components/platform/ToolBadge.tsx
|
|
123
123
|
|
|
124
124
|
var ToolBadge = ({ toolType, className, iconClassName }) => {
|
|
125
|
-
const label =
|
|
125
|
+
const label = _chunkLSY7OGTCcjs.getToolLabel.call(void 0, toolType);
|
|
126
126
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkX7CEWD6Vcjs.cn.call(void 0, "flex items-center gap-1 text-ods-text-secondary", className), children: [
|
|
127
127
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYISLYIVYcjs.ToolIcon, { toolType, className: iconClassName, size: 16 }),
|
|
128
128
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-primary text-h4", children: label })
|
|
@@ -133,31 +133,31 @@ ToolBadge.displayName = "ToolBadge";
|
|
|
133
133
|
// src/components/platform/ShellTypeBadge.tsx
|
|
134
134
|
|
|
135
135
|
var shellIconMap = {
|
|
136
|
-
[
|
|
136
|
+
[_chunkLSY7OGTCcjs.ShellTypeValues.POWERSHELL]: {
|
|
137
137
|
icon: _chunk4HHBN7STcjs.PowershellLogoGreyIcon,
|
|
138
138
|
props: { size: 16, className: "text-ods-text-secondary" }
|
|
139
139
|
},
|
|
140
|
-
[
|
|
140
|
+
[_chunkLSY7OGTCcjs.ShellTypeValues.CMD]: {
|
|
141
141
|
icon: _chunk5R4QMTMLcjs.CmdIcon,
|
|
142
142
|
props: { size: 16, color: "var(--color-text-secondary)" }
|
|
143
143
|
},
|
|
144
|
-
[
|
|
144
|
+
[_chunkLSY7OGTCcjs.ShellTypeValues.BASH]: {
|
|
145
145
|
icon: _chunk5R4QMTMLcjs.BashIcon,
|
|
146
146
|
props: { size: 16, color: "var(--color-text-secondary)" }
|
|
147
147
|
},
|
|
148
|
-
[
|
|
148
|
+
[_chunkLSY7OGTCcjs.ShellTypeValues.PYTHON]: {
|
|
149
149
|
icon: _chunk4HHBN7STcjs.PythonLogoIcon,
|
|
150
150
|
props: { size: 16, className: "text-ods-text-secondary" }
|
|
151
151
|
},
|
|
152
|
-
[
|
|
152
|
+
[_chunkLSY7OGTCcjs.ShellTypeValues.NUSHELL]: {
|
|
153
153
|
icon: _chunk5R4QMTMLcjs.NushellIcon,
|
|
154
154
|
props: { size: 16, color: "var(--color-text-secondary)" }
|
|
155
155
|
},
|
|
156
|
-
[
|
|
156
|
+
[_chunkLSY7OGTCcjs.ShellTypeValues.DENO]: {
|
|
157
157
|
icon: _chunk5R4QMTMLcjs.DenoIcon,
|
|
158
158
|
props: { size: 16, color: "var(--color-text-secondary)" }
|
|
159
159
|
},
|
|
160
|
-
[
|
|
160
|
+
[_chunkLSY7OGTCcjs.ShellTypeValues.SHELL]: {
|
|
161
161
|
icon: _chunk5R4QMTMLcjs.ShellIcon,
|
|
162
162
|
props: { size: 16, color: "var(--color-text-secondary)" }
|
|
163
163
|
}
|
|
@@ -168,7 +168,7 @@ var defaultIconConfig = {
|
|
|
168
168
|
};
|
|
169
169
|
var ShellTypeBadge = ({ shellType, className, iconClassName }) => {
|
|
170
170
|
const normalizedType = _optionalChain([shellType, 'optionalAccess', _ => _.toUpperCase, 'call', _2 => _2()]);
|
|
171
|
-
const label =
|
|
171
|
+
const label = _chunkLSY7OGTCcjs.getShellLabel.call(void 0, normalizedType);
|
|
172
172
|
const { icon: IconComponent, props: iconProps } = _nullishCoalesce(shellIconMap[normalizedType], () => ( defaultIconConfig));
|
|
173
173
|
const defaultIconClassName = "className" in iconProps ? iconProps.className : void 0;
|
|
174
174
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkX7CEWD6Vcjs.cn.call(void 0, "flex items-center gap-1", className), children: [
|
|
@@ -184,11 +184,11 @@ function formatSupportedPlatforms(platforms) {
|
|
|
184
184
|
if (!platforms || platforms.length === 0) {
|
|
185
185
|
return "All Platforms";
|
|
186
186
|
}
|
|
187
|
-
return platforms.map((platform) =>
|
|
187
|
+
return platforms.map((platform) => _chunkLSY7OGTCcjs.getOSLabel.call(void 0, platform)).join(", ");
|
|
188
188
|
}
|
|
189
189
|
function InfoCell({ label, value, avatar, className }) {
|
|
190
190
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkX7CEWD6Vcjs.cn.call(void 0, "flex min-w-0 items-center gap-2", className), children: [
|
|
191
|
-
avatar && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "relative size-8 shrink-0 overflow-hidden rounded-full border border-ods-border bg-ods-bg", children: avatar.photoUrl ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWLSFBRT5cjs.next_image_default, { src: avatar.photoUrl, alt: avatar.name, className: "object-cover", fill: true, sizes: "32px", unoptimized: true }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex size-full items-center justify-center text-ods-text-secondary text-h6", children: avatar.initials ||
|
|
191
|
+
avatar && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "relative size-8 shrink-0 overflow-hidden rounded-full border border-ods-border bg-ods-bg", children: avatar.photoUrl ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWLSFBRT5cjs.next_image_default, { src: avatar.photoUrl, alt: avatar.name, className: "object-cover", fill: true, sizes: "32px", unoptimized: true }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex size-full items-center justify-center text-ods-text-secondary text-h6", children: avatar.initials || _chunkQNWQQ4RTcjs.nameInitials.call(void 0, avatar.name) }) }),
|
|
192
192
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-col", children: [
|
|
193
193
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate text-ods-text-primary text-h4", title: value, children: value }),
|
|
194
194
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate text-ods-text-secondary text-h6", children: label })
|
|
@@ -204,7 +204,7 @@ var ScriptInfoSection = ({
|
|
|
204
204
|
author,
|
|
205
205
|
className
|
|
206
206
|
}) => {
|
|
207
|
-
const shellLabel =
|
|
207
|
+
const shellLabel = _chunkLSY7OGTCcjs.getShellLabel.call(void 0, shellType);
|
|
208
208
|
const platformsLabel = formatSupportedPlatforms(supportedPlatforms);
|
|
209
209
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkX7CEWD6Vcjs.cn.call(void 0, "overflow-hidden rounded-[6px] border border-ods-border bg-ods-card", className), children: [
|
|
210
210
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "border-b border-ods-border p-4", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-1", children: [
|
|
@@ -379,7 +379,7 @@ function OnboardingStepCard({
|
|
|
379
379
|
onSkip();
|
|
380
380
|
};
|
|
381
381
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
382
|
-
|
|
382
|
+
_chunkQNWQQ4RTcjs.InteractiveCard,
|
|
383
383
|
{
|
|
384
384
|
clickable: false,
|
|
385
385
|
className: _chunkX7CEWD6Vcjs.cn.call(void 0,
|
|
@@ -405,7 +405,7 @@ function OnboardingStepCard({
|
|
|
405
405
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[32px] w-[100px] animate-pulse rounded-[6px] bg-ods-border" }),
|
|
406
406
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[32px] w-[120px] animate-pulse rounded-[6px] bg-ods-border" })
|
|
407
407
|
] }) : isCompleted ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
408
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
408
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQNWQQ4RTcjs.StatusBadge, { text: "COMPLETED", variant: "card", colorScheme: "success" }),
|
|
409
409
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
410
410
|
_chunkF6U2H42Lcjs.Button,
|
|
411
411
|
{
|
|
@@ -416,7 +416,7 @@ function OnboardingStepCard({
|
|
|
416
416
|
children: step.completedText
|
|
417
417
|
}
|
|
418
418
|
)
|
|
419
|
-
] }) : isSkipped ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
419
|
+
] }) : isSkipped ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQNWQQ4RTcjs.StatusBadge, { text: "SKIPPED", variant: "card", colorScheme: "default" }) }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
420
420
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkF6U2H42Lcjs.Button, { variant: "outline", onClick: handleSkip, children: "Skip Step" }),
|
|
421
421
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkF6U2H42Lcjs.Button, { variant: "accent", onClick: handleAction, disabled: isProcessing, leftIcon: step.actionIcon("black"), children: step.actionText })
|
|
422
422
|
] })
|
|
@@ -533,7 +533,7 @@ function OnboardingWalkthrough({
|
|
|
533
533
|
const isAllComplete = allStepsComplete(steps);
|
|
534
534
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkX7CEWD6Vcjs.cn.call(void 0, "w-full space-y-4", className), children: [
|
|
535
535
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col items-start justify-between gap-3 md:flex-row md:items-center md:gap-0", children: [
|
|
536
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className:
|
|
536
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: _chunkHTIOL44Ccjs.SECTION_HEADING_CLASS, children: title }),
|
|
537
537
|
isLoadingCompletion ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[48px] w-full animate-pulse rounded-[6px] bg-ods-border md:w-[160px]" }) : isAllComplete ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkF6U2H42Lcjs.Button, { variant: "accent", onClick: handleDismiss, className: "w-full md:w-auto", children: "Close Onboarding" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkF6U2H42Lcjs.Button, { variant: "outline", onClick: handleDismiss, className: "w-full md:w-auto", children: "Skip Onboarding" })
|
|
538
538
|
] }),
|
|
539
539
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkX7CEWD6Vcjs.cn.call(void 0, spacing), children: steps.map((step) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -562,4 +562,4 @@ function OnboardingWalkthrough({
|
|
|
562
562
|
|
|
563
563
|
|
|
564
564
|
exports.SoftwareInfo = SoftwareInfo; exports.SoftwareSourceBadge = SoftwareSourceBadge; exports.CveLink = CveLink; exports.ToolBadge = ToolBadge; exports.ShellTypeBadge = ShellTypeBadge; exports.ScriptInfoSection = ScriptInfoSection; exports.ScriptArguments = ScriptArguments; exports.OnboardingStepCard = OnboardingStepCard; exports.OnboardingWalkthrough = OnboardingWalkthrough;
|
|
565
|
-
//# sourceMappingURL=chunk-
|
|
565
|
+
//# sourceMappingURL=chunk-XWP5E453.cjs.map
|