@flamingo-stack/openframe-frontend-core 0.0.716 → 0.0.718
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/chat-protocol/index.cjs +23 -14
- package/dist/chat-protocol/index.js +23 -14
- package/dist/chat-protocol/nats-decoder.d.ts.map +1 -1
- package/dist/chat-protocol/source-metadata.d.ts +11 -2
- package/dist/chat-protocol/source-metadata.d.ts.map +1 -1
- package/dist/{chunk-DPX6244M.js → chunk-45F7PXUI.js} +3 -3
- package/dist/{chunk-KYFNFRSV.js → chunk-67QBMN4R.js} +2 -2
- package/dist/{chunk-3RKBJT6K.cjs → chunk-6A43ZDWV.cjs} +2 -2
- package/dist/chunk-A6P6DHEZ.cjs +130 -0
- package/dist/{chunk-KNOZVVCU.cjs → chunk-BOTM373R.cjs} +9 -9
- package/dist/{chunk-DHMO5GI4.cjs → chunk-BWIN42ZA.cjs} +21 -21
- package/dist/{chunk-YTMV4OBY.js → chunk-DCD5WZUF.js} +4 -4
- package/dist/{chunk-V36WGIYR.js → chunk-DEZDMTBM.js} +5 -5
- package/dist/{chunk-YO5JB3WE.cjs → chunk-DXCBOZVT.cjs} +35 -35
- package/dist/{chunk-ZX7SCPLO.cjs → chunk-E7YCPY7K.cjs} +3 -3
- package/dist/{chunk-I5F2OTFE.cjs → chunk-EZC2F5OT.cjs} +33 -33
- package/dist/{chunk-DLEO53NX.cjs → chunk-GN4A7PMB.cjs} +69 -69
- package/dist/{chunk-6T3BTD6Q.js → chunk-IWCPXJEE.js} +201 -327
- package/dist/{chunk-ROBQ5TR7.js → chunk-JH2SIWPQ.js} +28 -17
- package/dist/{chunk-3AJIQPFG.js → chunk-JIWMBIVZ.js} +6 -6
- package/dist/{chunk-DDWFCWOE.js → chunk-JPD4NXH6.js} +1 -1
- package/dist/{chunk-JVCAK4W3.cjs → chunk-LE5WKGJV.cjs} +3 -3
- package/dist/{chunk-NPAQSMRY.js → chunk-LOYPRJWA.js} +1053 -357
- package/dist/{chunk-5IJXM3RU.cjs → chunk-MIQLUUVF.cjs} +10 -10
- package/dist/{chunk-MXPQMQI3.js → chunk-MM7MCIXL.js} +6 -6
- package/dist/{chunk-C5AGSZBT.js → chunk-N2PF5CFX.js} +4837 -5425
- package/dist/{chunk-STCJYO2Z.cjs → chunk-NDZ5ZXOQ.cjs} +11 -11
- package/dist/{chunk-H5R7U2D2.js → chunk-NZ5BHDFZ.js} +1 -1
- package/dist/{chunk-JCA5MBVY.js → chunk-PQ6HBLZ7.js} +4 -4
- package/dist/{chunk-EOKSKJSS.cjs → chunk-QBCDSTLE.cjs} +13 -13
- package/dist/{chunk-NQWJAOHO.js → chunk-QXZCLQNV.js} +1 -1
- package/dist/{chunk-2V7D5GJX.cjs → chunk-S2FUFMLW.cjs} +25 -25
- package/dist/{chunk-64F6OEEV.js → chunk-SGFTTJKO.js} +1 -1
- package/dist/{chunk-P7IL4CX3.js → chunk-TBCZCRQ5.js} +6 -6
- package/dist/{chunk-HETQETPV.cjs → chunk-UWQWMGJ7.cjs} +28 -17
- package/dist/{chunk-X2MNNV5H.cjs → chunk-WALCXC7J.cjs} +3 -3
- package/dist/{chunk-YBS5QGON.js → chunk-XGHGGBM3.js} +2 -2
- package/dist/{chunk-NKILEG3Y.cjs → chunk-YC5COB5V.cjs} +45 -45
- package/dist/{chunk-BVZ7W4HW.js → chunk-YEMCCYIF.js} +4 -4
- package/dist/chunk-YYYVS7CX.js +130 -0
- package/dist/{chunk-S2VWQX6T.cjs → chunk-Z3CVSPO3.cjs} +842 -1430
- package/dist/{chunk-PPXR22YC.cjs → chunk-Z5UWW3Z2.cjs} +707 -11
- package/dist/{chunk-JO5TLJPM.cjs → chunk-ZXCZYMN4.cjs} +37 -163
- package/dist/{cloud-tenants-2J7CPTKT.cjs → cloud-tenants-PFDF7O5U.cjs} +6 -5
- package/dist/{cloud-tenants-YOY2WLGC.js → cloud-tenants-TAKOWXLD.js} +5 -4
- package/dist/components/case-studies/index.cjs +17 -16
- package/dist/components/case-studies/index.js +6 -5
- package/dist/components/chat/index.cjs +2 -2
- package/dist/components/chat/index.js +1 -1
- package/dist/components/chat/types/message.types.d.ts +20 -16
- package/dist/components/chat/types/message.types.d.ts.map +1 -1
- package/dist/components/chat/types/unified-chat-state.types.d.ts +1 -1
- package/dist/components/chat/utils/process-historical-messages.d.ts.map +1 -1
- package/dist/components/contact/index.cjs +7 -6
- package/dist/components/contact/index.js +6 -5
- package/dist/components/docs/index.cjs +10 -9
- package/dist/components/docs/index.js +9 -8
- package/dist/components/embeds/index.cjs +7 -6
- package/dist/components/embeds/index.js +6 -5
- package/dist/components/faq/index.cjs +7 -6
- package/dist/components/faq/index.js +6 -5
- package/dist/components/features/index.cjs +10 -5
- package/dist/components/features/index.js +9 -4
- package/dist/components/features/remote-session/index.d.ts +2 -0
- package/dist/components/features/remote-session/index.d.ts.map +1 -1
- package/dist/components/features/remote-session/remote-session-keep-modals.d.ts +3 -3
- package/dist/components/features/remote-session/remote-session-keep-modals.d.ts.map +1 -1
- package/dist/components/features/remote-session/remote-session-ticket-modals.d.ts +29 -0
- package/dist/components/features/remote-session/remote-session-ticket-modals.d.ts.map +1 -0
- package/dist/components/help-center-pages/index.cjs +71 -70
- package/dist/components/help-center-pages/index.js +17 -16
- package/dist/components/index.cjs +44 -39
- package/dist/components/index.js +22 -17
- package/dist/components/meeting-scheduler/index.cjs +33 -32
- package/dist/components/meeting-scheduler/index.js +5 -4
- package/dist/components/navigation/index.cjs +9 -8
- package/dist/components/navigation/index.js +8 -7
- package/dist/components/onboarding-guides/index.cjs +9 -8
- package/dist/components/onboarding-guides/index.js +8 -7
- package/dist/components/product-demo/index.cjs +7 -7
- package/dist/components/product-demo/index.js +7 -7
- package/dist/components/tickets/index.cjs +10 -9
- package/dist/components/tickets/index.js +9 -8
- package/dist/components/ui/autocomplete.d.ts +6 -0
- package/dist/components/ui/autocomplete.d.ts.map +1 -1
- package/dist/components/ui/index.cjs +8 -7
- package/dist/components/ui/index.js +7 -6
- package/dist/{devices-5NADSKDZ.cjs → devices-KRCGZMGA.cjs} +7 -6
- package/dist/{devices-EQXXILXW.js → devices-LHEX7O5T.js} +5 -4
- package/dist/hooks/index.cjs +6 -4
- package/dist/hooks/index.js +5 -3
- package/dist/index.cjs +17 -11
- package/dist/index.js +18 -12
- package/dist/{knowledge-LHQYZJE7.cjs → knowledge-KLVPVEYZ.cjs} +7 -6
- package/dist/{knowledge-YCQITBJB.js → knowledge-RZSFNR33.js} +5 -4
- package/dist/{logs-LZNXGOSW.js → logs-E5DOV5JO.js} +5 -4
- package/dist/{logs-DUVKSQU3.cjs → logs-OX3XTVL2.cjs} +14 -13
- package/dist/{policies-5H74FS4S.cjs → policies-FOSCIZGK.cjs} +10 -9
- package/dist/{policies-VYWOJ7IF.js → policies-MC2S4S5G.js} +5 -4
- package/dist/{remote-session-R6VAFESR.cjs → remote-session-DRFE5XZE.cjs} +4 -3
- package/dist/{remote-session-GSGZOFDX.js → remote-session-JQ2BPIE3.js} +2 -1
- package/dist/{software-update-MSDY3OLX.js → software-update-D4OEIH65.js} +7 -5
- package/dist/{software-update-VRRX5U4W.cjs → software-update-HOBSTWVO.cjs} +12 -10
- package/package.json +1 -1
- package/src/chat-protocol/nats-decoder.ts +10 -8
- package/src/chat-protocol/source-metadata.ts +25 -2
- package/src/components/chat/types/message.types.ts +21 -15
- package/src/components/chat/types/unified-chat-state.types.ts +1 -1
- package/src/components/chat/utils/process-historical-messages.ts +12 -4
- package/src/components/features/remote-session/index.ts +2 -0
- package/src/components/features/remote-session/remote-session-keep-modals.tsx +4 -4
- package/src/components/features/remote-session/remote-session-ticket-modals.tsx +140 -0
- package/src/components/ui/autocomplete.tsx +18 -4
|
@@ -308,15 +308,13 @@ var MESSAGE_TYPE = {
|
|
|
308
308
|
TEXT: "TEXT",
|
|
309
309
|
THINKING: "THINKING",
|
|
310
310
|
ASK: "ASK",
|
|
311
|
-
/** Per-answer
|
|
311
|
+
/** Per-answer attachments (cited documents, videos, entity cards).
|
|
312
312
|
*
|
|
313
|
-
*
|
|
314
|
-
*
|
|
315
|
-
*
|
|
316
|
-
|
|
317
|
-
* deletion here and nothing else. */
|
|
313
|
+
* `ATTACHMENTS` carries `sources` / `videos` / `cards` on the record itself.
|
|
314
|
+
* `GUIDE` is the envelope it replaced — the same arrays under `payload` —
|
|
315
|
+
* and stays only until every backend ships `ATTACHMENTS`. */
|
|
316
|
+
ATTACHMENTS: "ATTACHMENTS",
|
|
318
317
|
GUIDE: "GUIDE",
|
|
319
|
-
SOURCES: "SOURCES",
|
|
320
318
|
EXECUTING_TOOL: "EXECUTING_TOOL",
|
|
321
319
|
EXECUTED_TOOL: "EXECUTED_TOOL",
|
|
322
320
|
APPROVAL_REQUEST: "APPROVAL_REQUEST",
|
|
@@ -544,6 +542,16 @@ function sourceMetadataEvent(payload) {
|
|
|
544
542
|
...refs.length > 0 ? { refs } : {}
|
|
545
543
|
};
|
|
546
544
|
}
|
|
545
|
+
function withoutNulls(value) {
|
|
546
|
+
if (Array.isArray(value)) return value.map(withoutNulls);
|
|
547
|
+
if (!isRecord(value)) return value;
|
|
548
|
+
return Object.fromEntries(
|
|
549
|
+
Object.entries(value).filter(([, field]) => field !== null).map(([key, field]) => [key, withoutNulls(field)])
|
|
550
|
+
);
|
|
551
|
+
}
|
|
552
|
+
function attachmentsEvent(record) {
|
|
553
|
+
return sourceMetadataEvent(withoutNulls(record));
|
|
554
|
+
}
|
|
547
555
|
|
|
548
556
|
// src/chat-protocol/nats-decoder.ts
|
|
549
557
|
function str(value) {
|
|
@@ -610,13 +618,14 @@ function decodeNatsChunk(chunk) {
|
|
|
610
618
|
return { type: "thinking-delta", text: data.text, ...seq };
|
|
611
619
|
}
|
|
612
620
|
return null;
|
|
613
|
-
//
|
|
614
|
-
//
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
621
|
+
// The chunk arrives BEFORE or between the answer's text deltas, so the
|
|
622
|
+
// reducer — not this decoder — owns attaching it to the right turn.
|
|
623
|
+
case MESSAGE_TYPE.ATTACHMENTS: {
|
|
624
|
+
const event = attachmentsEvent(data);
|
|
625
|
+
return event ? { ...event, ...seq } : null;
|
|
626
|
+
}
|
|
627
|
+
// The envelope `ATTACHMENTS` replaced (see `MESSAGE_TYPE.GUIDE`).
|
|
628
|
+
case MESSAGE_TYPE.GUIDE: {
|
|
620
629
|
const event = sourceMetadataEvent(data.payload);
|
|
621
630
|
return event ? { ...event, ...seq } : null;
|
|
622
631
|
}
|
|
@@ -306,15 +306,13 @@ var MESSAGE_TYPE = {
|
|
|
306
306
|
TEXT: "TEXT",
|
|
307
307
|
THINKING: "THINKING",
|
|
308
308
|
ASK: "ASK",
|
|
309
|
-
/** Per-answer
|
|
309
|
+
/** Per-answer attachments (cited documents, videos, entity cards).
|
|
310
310
|
*
|
|
311
|
-
*
|
|
312
|
-
*
|
|
313
|
-
*
|
|
314
|
-
|
|
315
|
-
* deletion here and nothing else. */
|
|
311
|
+
* `ATTACHMENTS` carries `sources` / `videos` / `cards` on the record itself.
|
|
312
|
+
* `GUIDE` is the envelope it replaced — the same arrays under `payload` —
|
|
313
|
+
* and stays only until every backend ships `ATTACHMENTS`. */
|
|
314
|
+
ATTACHMENTS: "ATTACHMENTS",
|
|
316
315
|
GUIDE: "GUIDE",
|
|
317
|
-
SOURCES: "SOURCES",
|
|
318
316
|
EXECUTING_TOOL: "EXECUTING_TOOL",
|
|
319
317
|
EXECUTED_TOOL: "EXECUTED_TOOL",
|
|
320
318
|
APPROVAL_REQUEST: "APPROVAL_REQUEST",
|
|
@@ -542,6 +540,16 @@ function sourceMetadataEvent(payload) {
|
|
|
542
540
|
...refs.length > 0 ? { refs } : {}
|
|
543
541
|
};
|
|
544
542
|
}
|
|
543
|
+
function withoutNulls(value) {
|
|
544
|
+
if (Array.isArray(value)) return value.map(withoutNulls);
|
|
545
|
+
if (!isRecord(value)) return value;
|
|
546
|
+
return Object.fromEntries(
|
|
547
|
+
Object.entries(value).filter(([, field]) => field !== null).map(([key, field]) => [key, withoutNulls(field)])
|
|
548
|
+
);
|
|
549
|
+
}
|
|
550
|
+
function attachmentsEvent(record) {
|
|
551
|
+
return sourceMetadataEvent(withoutNulls(record));
|
|
552
|
+
}
|
|
545
553
|
|
|
546
554
|
// src/chat-protocol/nats-decoder.ts
|
|
547
555
|
function str(value) {
|
|
@@ -608,13 +616,14 @@ function decodeNatsChunk(chunk) {
|
|
|
608
616
|
return { type: "thinking-delta", text: data.text, ...seq };
|
|
609
617
|
}
|
|
610
618
|
return null;
|
|
611
|
-
//
|
|
612
|
-
//
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
619
|
+
// The chunk arrives BEFORE or between the answer's text deltas, so the
|
|
620
|
+
// reducer — not this decoder — owns attaching it to the right turn.
|
|
621
|
+
case MESSAGE_TYPE.ATTACHMENTS: {
|
|
622
|
+
const event = attachmentsEvent(data);
|
|
623
|
+
return event ? { ...event, ...seq } : null;
|
|
624
|
+
}
|
|
625
|
+
// The envelope `ATTACHMENTS` replaced (see `MESSAGE_TYPE.GUIDE`).
|
|
626
|
+
case MESSAGE_TYPE.GUIDE: {
|
|
618
627
|
const event = sourceMetadataEvent(data.payload);
|
|
619
628
|
return event ? { ...event, ...seq } : null;
|
|
620
629
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nats-decoder.d.ts","sourceRoot":"","sources":["../../src/chat-protocol/nats-decoder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAE5E,OAAO,KAAK,EAAoB,eAAe,EAAE,MAAM,UAAU,CAAC;AAyClE;;wDAEwD;AACxD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,EAAE,CASjE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"nats-decoder.d.ts","sourceRoot":"","sources":["../../src/chat-protocol/nats-decoder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAE5E,OAAO,KAAK,EAAoB,eAAe,EAAE,MAAM,UAAU,CAAC;AAyClE;;wDAEwD;AACxD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,EAAE,CASjE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,GAAG,IAAI,CAyStE"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Source-metadata payload → `{ sources, refs }`.
|
|
3
3
|
*
|
|
4
|
-
* ONE decoder for two arrival paths: the live `
|
|
5
|
-
*
|
|
4
|
+
* ONE decoder for two arrival paths: the live `ATTACHMENTS` NATS chunk and the
|
|
5
|
+
* persisted row of the same name in dialog history. That is the whole point
|
|
6
6
|
* of putting it here rather than in either consumer — a reloaded thread has to
|
|
7
7
|
* render identically to the live turn, and two parsers is exactly how that stops
|
|
8
8
|
* being true.
|
|
@@ -46,6 +46,15 @@ export declare function youtubeVideoId(value: unknown): string | undefined;
|
|
|
46
46
|
* an earlier chunk of the same turn had already supplied.
|
|
47
47
|
*/
|
|
48
48
|
export declare function sourceMetadataEvent(payload: unknown): SourcesEvent | null;
|
|
49
|
+
/**
|
|
50
|
+
* Decode one typed `ATTACHMENTS` record — the live chunk or the persisted
|
|
51
|
+
* `AttachmentsData` row, which carry `sources` / `videos` / `cards` directly.
|
|
52
|
+
*
|
|
53
|
+
* GraphQL answers an unset field with `null` where the live chunk omits it, so
|
|
54
|
+
* nulls are read as absent: a reloaded source must not gain a
|
|
55
|
+
* `targetPlatform: null` ("no destination") the live one never carried.
|
|
56
|
+
*/
|
|
57
|
+
export declare function attachmentsEvent(record: unknown): SourcesEvent | null;
|
|
49
58
|
/** What one assistant answer carries: its citations and its expandable refs. */
|
|
50
59
|
export interface SourceMetadata {
|
|
51
60
|
sources?: ChatSource[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source-metadata.d.ts","sourceRoot":"","sources":["../../src/chat-protocol/source-metadata.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AAGzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAsC7C;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAkBjE;AAqMD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,YAAY,GAAG,IAAI,CAYzE;AAED,gFAAgF;AAChF,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;IACvB,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;CAClB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,EAAE,KAAK,EAAE,YAAY,GAAG,cAAc,CAcxG"}
|
|
1
|
+
{"version":3,"file":"source-metadata.d.ts","sourceRoot":"","sources":["../../src/chat-protocol/source-metadata.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AAGzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAsC7C;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAkBjE;AAqMD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,YAAY,GAAG,IAAI,CAYzE;AAaD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,GAAG,YAAY,GAAG,IAAI,CAErE;AAED,gFAAgF;AAChF,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;IACvB,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;CAClB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,EAAE,KAAK,EAAE,YAAY,GAAG,cAAc,CAcxG"}
|
|
@@ -6,15 +6,15 @@ import {
|
|
|
6
6
|
PageShell,
|
|
7
7
|
SearchInput,
|
|
8
8
|
StatusFilterComponent
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-N2PF5CFX.js";
|
|
10
10
|
import {
|
|
11
11
|
PageLayout
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-LOYPRJWA.js";
|
|
13
13
|
import {
|
|
14
14
|
OPENFRAME_DEV_SECTIONS,
|
|
15
15
|
TASK_TYPE_LABELS,
|
|
16
16
|
TASK_TYPE_TEXT_COLORS
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-JH2SIWPQ.js";
|
|
18
18
|
import {
|
|
19
19
|
usePathname,
|
|
20
20
|
useRouter,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import {
|
|
3
3
|
SearchInput
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-N2PF5CFX.js";
|
|
5
5
|
import {
|
|
6
6
|
contentFetch
|
|
7
7
|
} from "./chunk-G3GRYDMS.js";
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
resolveExternalNavigation,
|
|
13
13
|
resolveSourceIcon,
|
|
14
14
|
stripSameOriginToPath
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-JH2SIWPQ.js";
|
|
16
16
|
import {
|
|
17
17
|
useDebounce
|
|
18
18
|
} from "./chunk-CMZ3QTFQ.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }"use client";
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var _chunkZ5UWW3Z2cjs = require('./chunk-Z5UWW3Z2.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
var _chunkETYLOZOBcjs = require('./chunk-ETYLOZOB.cjs');
|
|
@@ -66,7 +66,7 @@ function DetailPageSkeleton({
|
|
|
66
66
|
] });
|
|
67
67
|
if (bare) return content;
|
|
68
68
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
69
|
-
|
|
69
|
+
_chunkZ5UWW3Z2cjs.PageLayout,
|
|
70
70
|
{
|
|
71
71
|
showHeader: false,
|
|
72
72
|
className: "mx-auto max-w-[1280px] bg-ods-bg px-6 py-6 content-md:px-20 content-md:py-10",
|
|
@@ -0,0 +1,130 @@
|
|
|
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
|
+
|
|
3
|
+
// src/hooks/ui/use-auto-limit-tags.ts
|
|
4
|
+
var _react = require('react');
|
|
5
|
+
function useAutoLimitTags({
|
|
6
|
+
count,
|
|
7
|
+
limitTags = "auto",
|
|
8
|
+
placeholder = "",
|
|
9
|
+
reserveInputWidth = true
|
|
10
|
+
}) {
|
|
11
|
+
const middleRef = _react.useRef.call(void 0, null);
|
|
12
|
+
const measureRef = _react.useRef.call(void 0, null);
|
|
13
|
+
const textMeasureRef = _react.useRef.call(void 0, null);
|
|
14
|
+
const badgeRef = _react.useRef.call(void 0, null);
|
|
15
|
+
const inputRef = _react.useRef.call(void 0, null);
|
|
16
|
+
const [measuredCount, setMeasuredCount] = _react.useState.call(void 0, null);
|
|
17
|
+
const recalculate = _react.useCallback.call(void 0, () => {
|
|
18
|
+
const middle = middleRef.current;
|
|
19
|
+
const measure2 = measureRef.current;
|
|
20
|
+
if (!middle || !measure2) {
|
|
21
|
+
setMeasuredCount(null);
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
if (count === 0) {
|
|
25
|
+
setMeasuredCount(0);
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
const cs = getComputedStyle(middle);
|
|
29
|
+
const padL = parseFloat(cs.paddingLeft) || 0;
|
|
30
|
+
const padR = parseFloat(cs.paddingRight) || 0;
|
|
31
|
+
const gap = parseFloat(cs.gap) || 0;
|
|
32
|
+
const middleW = middle.clientWidth;
|
|
33
|
+
let inputReservedW = 0;
|
|
34
|
+
let trailingGap = 0;
|
|
35
|
+
if (reserveInputWidth) {
|
|
36
|
+
const textW = _nullishCoalesce(_optionalChain([textMeasureRef, 'access', _ => _.current, 'optionalAccess', _2 => _2.offsetWidth]), () => ( 60));
|
|
37
|
+
const inputMinW = inputRef.current ? parseFloat(getComputedStyle(inputRef.current).minWidth) || 60 : 60;
|
|
38
|
+
inputReservedW = Math.max(textW + 8, inputMinW);
|
|
39
|
+
trailingGap = gap;
|
|
40
|
+
}
|
|
41
|
+
const available = middleW - padL - padR - inputReservedW - trailingGap;
|
|
42
|
+
const tagEls = Array.from(measure2.children);
|
|
43
|
+
const widths = tagEls.map((el) => el.offsetWidth);
|
|
44
|
+
let total = 0;
|
|
45
|
+
for (let i = 0; i < widths.length; i++) {
|
|
46
|
+
total += widths[i] + (i > 0 ? gap : 0);
|
|
47
|
+
}
|
|
48
|
+
if (total <= available) {
|
|
49
|
+
setMeasuredCount(count);
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
const badgeW = _nullishCoalesce(_optionalChain([badgeRef, 'access', _3 => _3.current, 'optionalAccess', _4 => _4.offsetWidth]), () => ( 40));
|
|
53
|
+
const spaceWithBadge = available - badgeW - gap;
|
|
54
|
+
let used = 0;
|
|
55
|
+
let fitCount = 0;
|
|
56
|
+
for (let i = 0; i < widths.length; i++) {
|
|
57
|
+
const need = widths[i] + (i > 0 ? gap : 0);
|
|
58
|
+
if (used + need > spaceWithBadge) break;
|
|
59
|
+
used += need;
|
|
60
|
+
fitCount++;
|
|
61
|
+
}
|
|
62
|
+
setMeasuredCount(Math.max(0, fitCount));
|
|
63
|
+
}, [count, placeholder, reserveInputWidth]);
|
|
64
|
+
_react.useEffect.call(void 0, () => {
|
|
65
|
+
if (limitTags !== "auto") return void 0;
|
|
66
|
+
const el = middleRef.current;
|
|
67
|
+
if (!el) return void 0;
|
|
68
|
+
const ro = new ResizeObserver(recalculate);
|
|
69
|
+
ro.observe(el);
|
|
70
|
+
return () => ro.disconnect();
|
|
71
|
+
}, [recalculate, limitTags]);
|
|
72
|
+
const visibleCount = limitTags !== "auto" ? Math.min(limitTags, count) : measuredCount === null ? count : Math.min(measuredCount, count);
|
|
73
|
+
return { visibleCount, middleRef, measureRef, textMeasureRef, badgeRef, inputRef };
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// src/hooks/ui/use-keyboard-collision-padding.ts
|
|
77
|
+
|
|
78
|
+
var KEYBOARD_INSET_VAR = "--of-keyboard-inset";
|
|
79
|
+
function measure() {
|
|
80
|
+
if (typeof document === "undefined") return 0;
|
|
81
|
+
const inset = Number.parseFloat(getComputedStyle(document.documentElement).getPropertyValue(KEYBOARD_INSET_VAR));
|
|
82
|
+
if (!(inset > 0)) return 0;
|
|
83
|
+
const layoutHeight = document.documentElement.clientHeight;
|
|
84
|
+
const viewport = window.visualViewport;
|
|
85
|
+
const viewportBottom = viewport ? viewport.offsetTop + viewport.height : layoutHeight;
|
|
86
|
+
return Math.max(0, Math.round(viewportBottom - (layoutHeight - inset)));
|
|
87
|
+
}
|
|
88
|
+
var listeners = /* @__PURE__ */ new Set();
|
|
89
|
+
var padding = 0;
|
|
90
|
+
var teardown = null;
|
|
91
|
+
function sync() {
|
|
92
|
+
const next = measure();
|
|
93
|
+
if (next === padding) return;
|
|
94
|
+
padding = next;
|
|
95
|
+
for (const notify of listeners) notify();
|
|
96
|
+
}
|
|
97
|
+
function subscribe(onStoreChange) {
|
|
98
|
+
listeners.add(onStoreChange);
|
|
99
|
+
if (listeners.size === 1) {
|
|
100
|
+
padding = measure();
|
|
101
|
+
const observer = new MutationObserver(sync);
|
|
102
|
+
observer.observe(document.documentElement, { attributes: true, attributeFilter: ["style"] });
|
|
103
|
+
const viewport = window.visualViewport;
|
|
104
|
+
_optionalChain([viewport, 'optionalAccess', _5 => _5.addEventListener, 'call', _6 => _6("resize", sync)]);
|
|
105
|
+
_optionalChain([viewport, 'optionalAccess', _7 => _7.addEventListener, 'call', _8 => _8("scroll", sync)]);
|
|
106
|
+
teardown = () => {
|
|
107
|
+
observer.disconnect();
|
|
108
|
+
_optionalChain([viewport, 'optionalAccess', _9 => _9.removeEventListener, 'call', _10 => _10("resize", sync)]);
|
|
109
|
+
_optionalChain([viewport, 'optionalAccess', _11 => _11.removeEventListener, 'call', _12 => _12("scroll", sync)]);
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
return () => {
|
|
113
|
+
listeners.delete(onStoreChange);
|
|
114
|
+
if (listeners.size > 0) return;
|
|
115
|
+
_optionalChain([teardown, 'optionalCall', _13 => _13()]);
|
|
116
|
+
teardown = null;
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
function useKeyboardCollisionPadding() {
|
|
120
|
+
return _react.useSyncExternalStore.call(void 0,
|
|
121
|
+
subscribe,
|
|
122
|
+
() => padding,
|
|
123
|
+
() => 0
|
|
124
|
+
);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
exports.useAutoLimitTags = useAutoLimitTags; exports.useKeyboardCollisionPadding = useKeyboardCollisionPadding;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }"use client";
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var _chunkZ3CVSPO3cjs = require('./chunk-Z3CVSPO3.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
var _chunkAUMKE74Mcjs = require('./chunk-AUMKE74M.cjs');
|
|
@@ -12,7 +12,7 @@ var _chunkAUMKE74Mcjs = require('./chunk-AUMKE74M.cjs');
|
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
|
|
15
|
-
var
|
|
15
|
+
var _chunkUWQWMGJ7cjs = require('./chunk-UWQWMGJ7.cjs');
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
var _chunkGQ7JJUITcjs = require('./chunk-GQ7JJUIT.cjs');
|
|
@@ -39,7 +39,7 @@ var _jsxruntime = require('react/jsx-runtime');
|
|
|
39
39
|
function DocSearchResultRow({ result, isHighlighted }) {
|
|
40
40
|
const docType = _optionalChain([result, 'access', _ => _.metadata, 'optionalAccess', _2 => _2.documentType]) || void 0;
|
|
41
41
|
const sourceRepo = _optionalChain([result, 'access', _3 => _3.metadata, 'optionalAccess', _4 => _4.sourceRepo]) || void 0;
|
|
42
|
-
const { Icon: SourceIcon, label: iconLabel } =
|
|
42
|
+
const { Icon: SourceIcon, label: iconLabel } = _chunkUWQWMGJ7cjs.resolveSourceIcon.call(void 0, {
|
|
43
43
|
sourceRepo,
|
|
44
44
|
documentType: docType
|
|
45
45
|
});
|
|
@@ -69,7 +69,7 @@ function DocSearchBar({
|
|
|
69
69
|
renderResult
|
|
70
70
|
}) {
|
|
71
71
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
72
|
-
|
|
72
|
+
_chunkZ3CVSPO3cjs.SearchInput,
|
|
73
73
|
{
|
|
74
74
|
placeholder,
|
|
75
75
|
value: query,
|
|
@@ -119,7 +119,7 @@ function mapDocSearchResults(docs) {
|
|
|
119
119
|
results.push({
|
|
120
120
|
id: `group-${entry.repo}`,
|
|
121
121
|
// Same table label and count as the chat's grouped chip: one owner each.
|
|
122
|
-
title: `${
|
|
122
|
+
title: `${_chunkUWQWMGJ7cjs.getSourceLabel.call(void 0, entry.repo)} ${_chunkUWQWMGJ7cjs.recordCountLabel.call(void 0, rows.length)}`,
|
|
123
123
|
path: rows[0].path,
|
|
124
124
|
type: "file",
|
|
125
125
|
metadata: {
|
|
@@ -311,27 +311,27 @@ function useDocSearch(config) {
|
|
|
311
311
|
case "navigate-same-tab": {
|
|
312
312
|
if (wantsNewTab) {
|
|
313
313
|
setKeepOpen(true);
|
|
314
|
-
window.open(action.href, "_blank",
|
|
314
|
+
window.open(action.href, "_blank", _chunkUWQWMGJ7cjs.NEW_TAB_FEATURES);
|
|
315
315
|
return;
|
|
316
316
|
}
|
|
317
317
|
setKeepOpen(false);
|
|
318
318
|
const path = baseRoute && action.href.startsWith(`${baseRoute}/`) ? action.href.slice(baseRoute.length + 1) : null;
|
|
319
319
|
if (path && _optionalChain([onInPageSwap, 'optionalCall', _16 => _16(path)])) return;
|
|
320
|
-
router.push(
|
|
320
|
+
router.push(_chunkUWQWMGJ7cjs.stripSameOriginToPath.call(void 0, action.href));
|
|
321
321
|
return;
|
|
322
322
|
}
|
|
323
323
|
case "navigate-new-tab":
|
|
324
324
|
setKeepOpen(true);
|
|
325
325
|
if (_optionalChain([runtime, 'optionalAccess', _17 => _17.navigation, 'access', _18 => _18.mode]) === "embed") {
|
|
326
326
|
const targetPlatform = _nullishCoalesce(_optionalChain([result, 'access', _19 => _19.metadata, 'optionalAccess', _20 => _20.targetPlatform]), () => ( null));
|
|
327
|
-
|
|
327
|
+
_chunkUWQWMGJ7cjs.resolveExternalNavigation.call(void 0, {
|
|
328
328
|
href: action.href,
|
|
329
329
|
targetPlatform,
|
|
330
330
|
runtime
|
|
331
331
|
}).open();
|
|
332
332
|
return;
|
|
333
333
|
}
|
|
334
|
-
window.open(action.href, "_blank",
|
|
334
|
+
window.open(action.href, "_blank", _chunkUWQWMGJ7cjs.NEW_TAB_FEATURES);
|
|
335
335
|
return;
|
|
336
336
|
case "ask-ai":
|
|
337
337
|
setKeepOpen(false);
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var _chunk6A43ZDWVcjs = require('./chunk-6A43ZDWV.cjs');
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
var
|
|
9
|
+
var _chunkBOTM373Rcjs = require('./chunk-BOTM373R.cjs');
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
var _chunkGEDY7HQIcjs = require('./chunk-GEDY7HQI.cjs');
|
|
@@ -16,16 +16,16 @@ var _chunkGEDY7HQIcjs = require('./chunk-GEDY7HQI.cjs');
|
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
|
|
19
|
-
var
|
|
19
|
+
var _chunkZ3CVSPO3cjs = require('./chunk-Z3CVSPO3.cjs');
|
|
20
20
|
|
|
21
21
|
|
|
22
|
-
var
|
|
22
|
+
var _chunkZ5UWW3Z2cjs = require('./chunk-Z5UWW3Z2.cjs');
|
|
23
23
|
|
|
24
24
|
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
|
|
28
|
-
var
|
|
28
|
+
var _chunkUWQWMGJ7cjs = require('./chunk-UWQWMGJ7.cjs');
|
|
29
29
|
|
|
30
30
|
|
|
31
31
|
|
|
@@ -134,14 +134,14 @@ function OnboardingGuidesCatalogView({
|
|
|
134
134
|
});
|
|
135
135
|
};
|
|
136
136
|
const source = _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _6 => _6.source]), () => ( "openframe"));
|
|
137
|
-
const docSearch =
|
|
137
|
+
const docSearch = _chunkBOTM373Rcjs.useDocSearch.call(void 0, {
|
|
138
138
|
source,
|
|
139
139
|
baseRoute: basePath,
|
|
140
140
|
onNavigate: (path) => router.push(path),
|
|
141
141
|
tableIds: ["onboarding-guides"]
|
|
142
142
|
});
|
|
143
143
|
const defaultRenderCard = (guide) => {
|
|
144
|
-
const cta =
|
|
144
|
+
const cta = _chunkUWQWMGJ7cjs.resolveContentHref.call(void 0, _optionalChain([runtime, 'optionalAccess', _7 => _7.composeContentUrl]), {
|
|
145
145
|
type: "onboarding_guide",
|
|
146
146
|
slug: guide.slug,
|
|
147
147
|
basePath,
|
|
@@ -152,7 +152,7 @@ function OnboardingGuidesCatalogView({
|
|
|
152
152
|
const renderCardFn = _nullishCoalesce(renderCard, () => ( defaultRenderCard));
|
|
153
153
|
const preControls = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
|
|
154
154
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
155
|
-
|
|
155
|
+
_chunkBOTM373Rcjs.DocSearchBar,
|
|
156
156
|
{
|
|
157
157
|
placeholder: "Search onboarding guides, releases, case studies\u2026",
|
|
158
158
|
query: docSearch.query,
|
|
@@ -164,7 +164,7 @@ function OnboardingGuidesCatalogView({
|
|
|
164
164
|
}
|
|
165
165
|
),
|
|
166
166
|
sections.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
167
|
-
|
|
167
|
+
_chunkZ3CVSPO3cjs.FilterPillRow,
|
|
168
168
|
{
|
|
169
169
|
label: "Section",
|
|
170
170
|
selectedValue: activeSection,
|
|
@@ -174,7 +174,7 @@ function OnboardingGuidesCatalogView({
|
|
|
174
174
|
)
|
|
175
175
|
] });
|
|
176
176
|
if (selfFetch && guidesRes.error) {
|
|
177
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
177
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ3CVSPO3cjs.LoadError, { message: "Failed to load onboarding guides.", onRetry: guidesRes.reload });
|
|
178
178
|
}
|
|
179
179
|
if (selfFetch && guidesRes.data == null && isLoading) {
|
|
180
180
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, OnboardingGuidesCatalogSkeleton, {});
|
|
@@ -206,7 +206,7 @@ function OnboardingGuideDetailView({
|
|
|
206
206
|
slug,
|
|
207
207
|
guideEndpoint,
|
|
208
208
|
related = [],
|
|
209
|
-
MarkdownRenderer =
|
|
209
|
+
MarkdownRenderer = _chunkZ3CVSPO3cjs.RichMarkdownRenderer,
|
|
210
210
|
renderRelatedCard,
|
|
211
211
|
backHref,
|
|
212
212
|
backLabel = "Back to Getting Started",
|
|
@@ -216,9 +216,9 @@ function OnboardingGuideDetailView({
|
|
|
216
216
|
}) {
|
|
217
217
|
const resolvedBackHref = _nullishCoalesce(backHref, () => ( basePath));
|
|
218
218
|
const runtime = _chunkUJ7AXHRZcjs.useChatRuntime.call(void 0, );
|
|
219
|
-
const captions =
|
|
219
|
+
const captions = _chunkUWQWMGJ7cjs.useCaptions.call(void 0, );
|
|
220
220
|
const router = _chunk7DNL734Scjs.useRouter.call(void 0, );
|
|
221
|
-
const renderShell = (node) => shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
221
|
+
const renderShell = (node) => shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ3CVSPO3cjs.PageShell, { children: node }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: node });
|
|
222
222
|
const url = initialData ? null : slug && guideEndpoint ? guideEndpoint(slug) : null;
|
|
223
223
|
const { data: guide, isLoading, error, reload } = _chunkGEDY7HQIcjs.useSelfFetch.call(void 0, url, { initialData });
|
|
224
224
|
const { ref: videoWarmupRef } = _chunkETYLOZOBcjs.useVideoWarmup.call(void 0, {
|
|
@@ -226,13 +226,13 @@ function OnboardingGuideDetailView({
|
|
|
226
226
|
supabaseStorageOrigin: _optionalChain([runtime, 'optionalAccess', _9 => _9.endpoints, 'access', _10 => _10.supabaseStorageOrigin])
|
|
227
227
|
});
|
|
228
228
|
if (error || !guide && !isLoading) {
|
|
229
|
-
return renderShell(/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
229
|
+
return renderShell(/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ3CVSPO3cjs.LoadError, { message: "Guide not found.", onRetry: reload }));
|
|
230
230
|
}
|
|
231
231
|
if (!guide) {
|
|
232
232
|
return renderShell(
|
|
233
233
|
// Match the loaded page's top offset (TitleBlock's
|
|
234
234
|
// `pt-[var(--spacing-system-l)]`) so content doesn't jump on load.
|
|
235
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pt-[var(--spacing-system-l)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
235
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pt-[var(--spacing-system-l)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6A43ZDWVcjs.DetailPageSkeleton, { bare: true, showImageGallery: false }) })
|
|
236
236
|
);
|
|
237
237
|
}
|
|
238
238
|
const { captionsUrl, highlightCaptionsUrl } = captions.forEntity("onboarding_guide", guide);
|
|
@@ -240,7 +240,7 @@ function OnboardingGuideDetailView({
|
|
|
240
240
|
// worst), so it's the terminal fallback — no trailing `|| undefined` needed.
|
|
241
241
|
_chunkAECTRMGQcjs.buildOgPlaceholderUrl.call(void 0, _optionalChain([runtime, 'optionalAccess', _11 => _11.endpoints]), guide.title, { aspect: "wide" });
|
|
242
242
|
const defaultRenderRelatedCard = (g) => {
|
|
243
|
-
const cta =
|
|
243
|
+
const cta = _chunkUWQWMGJ7cjs.resolveContentHref.call(void 0, _optionalChain([runtime, 'optionalAccess', _12 => _12.composeContentUrl]), {
|
|
244
244
|
type: "onboarding_guide",
|
|
245
245
|
slug: g.slug,
|
|
246
246
|
basePath,
|
|
@@ -251,14 +251,14 @@ function OnboardingGuideDetailView({
|
|
|
251
251
|
const renderRelatedCardFn = _nullishCoalesce(renderRelatedCard, () => ( defaultRenderRelatedCard));
|
|
252
252
|
return renderShell(
|
|
253
253
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
254
|
-
|
|
254
|
+
_chunkZ5UWW3Z2cjs.PageLayout,
|
|
255
255
|
{
|
|
256
256
|
title: guide.title,
|
|
257
257
|
titleSize: "h1",
|
|
258
258
|
titleWrap: true,
|
|
259
259
|
backButton: { label: backLabel, onClick: () => router.push(resolvedBackHref) },
|
|
260
260
|
children: [
|
|
261
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
261
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ3CVSPO3cjs.EntityTagBadges, { tags: guide.onboarding_guide_tags }),
|
|
262
262
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
263
263
|
_chunkETYLOZOBcjs.EntityAuthorCard,
|
|
264
264
|
{
|
|
@@ -275,7 +275,7 @@ function OnboardingGuideDetailView({
|
|
|
275
275
|
}
|
|
276
276
|
),
|
|
277
277
|
(guide.main_video_url || guide.youtube_url) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: videoWarmupRef, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
278
|
-
|
|
278
|
+
_chunkUWQWMGJ7cjs.EntityVideoSection,
|
|
279
279
|
{
|
|
280
280
|
mainVideoUrl: guide.main_video_url,
|
|
281
281
|
youtubeUrl: guide.youtube_url || void 0,
|
|
@@ -293,7 +293,7 @@ function OnboardingGuideDetailView({
|
|
|
293
293
|
) }),
|
|
294
294
|
guide.content && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MarkdownRenderer, { content: guide.content }) }),
|
|
295
295
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
296
|
-
|
|
296
|
+
_chunkUWQWMGJ7cjs.VideoBitesStrip,
|
|
297
297
|
{
|
|
298
298
|
bites: _nullishCoalesce(guide.video_bites, () => ( [])),
|
|
299
299
|
filterPublished: true,
|
|
@@ -303,7 +303,7 @@ function OnboardingGuideDetailView({
|
|
|
303
303
|
}
|
|
304
304
|
),
|
|
305
305
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
306
|
-
|
|
306
|
+
_chunk6A43ZDWVcjs.ArticleAuthorByline,
|
|
307
307
|
{
|
|
308
308
|
author: _nullishCoalesce(_optionalChain([guide, 'access', _13 => _13.author, 'optionalAccess', _14 => _14.full_name]), () => ( null)),
|
|
309
309
|
avatar: _optionalChain([guide, 'access', _15 => _15.author, 'optionalAccess', _16 => _16.avatar_url]),
|
|
@@ -2,25 +2,25 @@
|
|
|
2
2
|
import {
|
|
3
3
|
HoneypotField,
|
|
4
4
|
Textarea
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-N2PF5CFX.js";
|
|
6
6
|
import {
|
|
7
7
|
Select,
|
|
8
8
|
SelectContent,
|
|
9
9
|
SelectItem,
|
|
10
10
|
SelectTrigger,
|
|
11
11
|
SelectValue
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-LOYPRJWA.js";
|
|
13
13
|
import {
|
|
14
14
|
useContactSubmission,
|
|
15
15
|
useHumanitySignals,
|
|
16
16
|
useRescuedForm
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-IWCPXJEE.js";
|
|
18
18
|
import {
|
|
19
19
|
ChatAttachmentAddButton,
|
|
20
20
|
ChatAttachmentChipStrip,
|
|
21
21
|
HUBSPOT_DO_NOT_COLLECT_FORM_PROPS,
|
|
22
22
|
useChatAttachments
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-JH2SIWPQ.js";
|
|
24
24
|
import {
|
|
25
25
|
SECTION_HEADING_CLASS,
|
|
26
26
|
accentSentenceMarks
|