@flamingo-stack/openframe-frontend-core 0.0.773 → 0.0.774
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/build/export-map.json +1 -1
- package/dist/{chunk-7P2QXBWE.cjs → chunk-4JZC624S.cjs} +226 -206
- package/dist/{chunk-JJNOAYD4.cjs → chunk-5AOKXXHV.cjs} +4 -4
- package/dist/{chunk-MT5Z2LSV.cjs → chunk-5Z3XL2VU.cjs} +72 -72
- package/dist/{chunk-BPAYT72L.cjs → chunk-BTVO676B.cjs} +148 -131
- package/dist/{chunk-TZ4GKUO2.cjs → chunk-CZIMISAR.cjs} +5 -1
- package/dist/{chunk-YSKX42LW.cjs → chunk-E5E7IE7X.cjs} +12 -12
- package/dist/{chunk-XVFM6SJA.cjs → chunk-E64HPPRH.cjs} +31 -31
- package/dist/{chunk-CTRJNTYU.cjs → chunk-EQBJHJS7.cjs} +2 -2
- package/dist/{chunk-BMFU2CUL.cjs → chunk-HTSRAQVG.cjs} +4 -4
- package/dist/{chunk-NRFNZ35Z.cjs → chunk-IQQ3SLUK.cjs} +19 -19
- package/dist/{chunk-RNLRS4ID.cjs → chunk-KKAY6GPU.cjs} +2 -2
- package/dist/{chunk-ILZEXCJH.cjs → chunk-KWZ62LPZ.cjs} +124 -104
- package/dist/{chunk-KDMWXXLE.cjs → chunk-L5CKY5WA.cjs} +15 -15
- package/dist/{chunk-6LLF2QCS.cjs → chunk-LEVA5WO3.cjs} +39 -39
- package/dist/{chunk-CW3ML76U.cjs → chunk-NTPX5GXI.cjs} +4 -0
- package/dist/{chunk-VW2QQKQ6.cjs → chunk-NX7P2T2U.cjs} +15 -15
- package/dist/{chunk-7J4YWDT6.cjs → chunk-Q6B2DC65.cjs} +3 -3
- package/dist/{chunk-NPCFVTA2.cjs → chunk-Q7EXOVMT.cjs} +31 -31
- package/dist/{chunk-2A56MLLL.cjs → chunk-SWEPHSIP.cjs} +4 -4
- package/dist/{chunk-KSCEAIBS.cjs → chunk-TOPGBOCN.cjs} +2 -2
- package/dist/{chunk-I4ZVMNHO.cjs → chunk-TTQHSSHF.cjs} +6 -6
- package/dist/{chunk-FPCGKH5K.cjs → chunk-TUXPFF4P.cjs} +31 -29
- package/dist/{chunk-42YLIZFD.cjs → chunk-U332FL4C.cjs} +22 -22
- package/dist/{chunk-3FREBLAJ.cjs → chunk-UAKXZ2KD.cjs} +47 -45
- package/dist/{chunk-SE76YGR3.cjs → chunk-USMR73ND.cjs} +4 -4
- package/dist/{chunk-X5Z4HRH7.cjs → chunk-VISK6LKE.cjs} +2 -2
- package/dist/{chunk-HEEK42BL.cjs → chunk-VWUQVJ2D.cjs} +81 -81
- package/dist/{chunk-5V7BIUGA.cjs → chunk-Y3EBUFX4.cjs} +92 -21
- package/dist/{chunk-5HBGBLJT.cjs → chunk-ZHGOXDA3.cjs} +63 -59
- package/dist/{cloud-tenants-EE5ULFOK.cjs → cloud-tenants-7RNZ6GHM.cjs} +11 -11
- package/dist/components/case-studies/index.cjs +28 -28
- package/dist/components/chat/ask-prompts.d.ts.map +1 -1
- package/dist/components/chat/ask-prompts.js +28 -19
- package/dist/components/chat/entity-cards/entity-portrait-card.d.ts +3 -1
- package/dist/components/chat/entity-cards/entity-portrait-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/entity-portrait-card.js +2 -0
- package/dist/components/chat/entity-cards/program-card.d.ts +6 -1
- package/dist/components/chat/entity-cards/program-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/program-card.js +19 -2
- package/dist/components/chat/index.cjs +10 -8
- package/dist/components/chat/index.d.ts +1 -1
- package/dist/components/chat/index.d.ts.map +1 -1
- package/dist/components/chat/index.js +10 -4
- package/dist/components/chat/utils/ask-ai-events.d.ts +10 -0
- package/dist/components/chat/utils/ask-ai-events.d.ts.map +1 -1
- package/dist/components/chat/utils/ask-ai-events.js +21 -1
- package/dist/components/contact/index.cjs +12 -12
- package/dist/components/docs/index.cjs +15 -15
- package/dist/components/embeds/index.cjs +12 -12
- package/dist/components/faq/index.cjs +13 -13
- package/dist/components/features/index.cjs +11 -11
- package/dist/components/features/video-hover-preview.d.ts.map +1 -1
- package/dist/components/features/video-hover-preview.js +5 -2
- package/dist/components/features/video-shared.d.ts +2 -1
- package/dist/components/features/video-shared.d.ts.map +1 -1
- package/dist/components/features/video.d.ts.map +1 -1
- package/dist/components/features/video.js +64 -13
- package/dist/components/help-center-pages/index.cjs +100 -100
- package/dist/components/index.cjs +63 -61
- package/dist/components/meeting-scheduler/index.cjs +46 -46
- package/dist/components/navigation/index.cjs +14 -14
- package/dist/components/navigation/mingo-ai-button.d.ts.map +1 -1
- package/dist/components/navigation/mingo-ai-button.js +2 -1
- package/dist/components/navigation/site-header.d.ts.map +1 -1
- package/dist/components/navigation/site-header.js +3 -1
- package/dist/components/onboarding-guides/index.cjs +14 -14
- package/dist/components/product-demo/index.cjs +20 -20
- package/dist/components/related-content/index.cjs +7 -6
- package/dist/components/related-content/index.d.ts +2 -1
- package/dist/components/related-content/index.d.ts.map +1 -1
- package/dist/components/related-content/index.js +2 -2
- package/dist/components/related-content/related-content-section.d.ts +8 -10
- package/dist/components/related-content/related-content-section.d.ts.map +1 -1
- package/dist/components/related-content/related-content-section.js +11 -7
- package/dist/components/tickets/index.cjs +17 -17
- package/dist/components/ui/index.cjs +13 -11
- package/dist/components/ui/photo-wall.d.ts +7 -0
- package/dist/components/ui/photo-wall.d.ts.map +1 -1
- package/dist/components/ui/photo-wall.js +16 -2
- package/dist/components/ui/tab-navigation.d.ts +8 -1
- package/dist/components/ui/tab-navigation.d.ts.map +1 -1
- package/dist/components/ui/tab-navigation.js +9 -3
- package/dist/{devices-EBGGHEGR.cjs → devices-NNDBC6IH.cjs} +12 -12
- package/dist/{embeddable-chat-HCT4QV35.cjs → embeddable-chat-DI7ZZTBP.cjs} +75 -75
- package/dist/hooks/index.cjs +4 -4
- package/dist/hooks/use-near-viewport.d.ts.map +1 -1
- package/dist/hooks/use-near-viewport.js +4 -0
- package/dist/index.cjs +23 -15
- package/dist/{knowledge-5ZSMKKTL.cjs → knowledge-DPUMWQED.cjs} +12 -12
- package/dist/{logs-GUV3BMGC.cjs → logs-EE25MWYM.cjs} +19 -19
- package/dist/{policies-HPMTDOAS.cjs → policies-H5LPZWEM.cjs} +15 -15
- package/dist/{scripts-QYYKCIUW.cjs → scripts-YGO4LOES.cjs} +16 -16
- package/dist/{software-update-NC2KZKEI.cjs → software-update-5BEB62ZH.cjs} +14 -14
- package/dist/utils/content-ref-groups.d.ts +8 -0
- package/dist/utils/content-ref-groups.d.ts.map +1 -1
- package/dist/utils/content-ref-groups.js +2 -0
- package/dist/utils/dismiss-cookie.d.ts +14 -0
- package/dist/utils/dismiss-cookie.d.ts.map +1 -1
- package/dist/utils/dismiss-cookie.js +4 -0
- package/dist/utils/index.cjs +10 -0
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +2 -0
- package/dist/utils/visitor-os.d.ts +9 -0
- package/dist/utils/visitor-os.d.ts.map +1 -1
- package/dist/utils/visitor-os.js +4 -0
- package/dist/{video-file-player-COXRF4M5.cjs → video-file-player-4TXA7BZF.cjs} +3 -3
- package/package.json +1 -1
- package/src/components/chat/ask-prompts.tsx +6 -1
- package/src/components/chat/entity-cards/entity-portrait-card.tsx +4 -0
- package/src/components/chat/entity-cards/program-card.tsx +24 -2
- package/src/components/chat/index.ts +16 -9
- package/src/components/chat/utils/ask-ai-events.ts +26 -0
- package/src/components/features/video-hover-preview.tsx +46 -37
- package/src/components/features/video-shared.tsx +2 -1
- package/src/components/features/video.tsx +102 -19
- package/src/components/navigation/mingo-ai-button.tsx +2 -1
- package/src/components/navigation/site-header.tsx +3 -1
- package/src/components/related-content/index.ts +2 -1
- package/src/components/related-content/related-content-section.tsx +26 -12
- package/src/components/ui/photo-wall.tsx +24 -2
- package/src/components/ui/tab-navigation.tsx +18 -3
- package/src/hooks/use-near-viewport.ts +6 -0
- package/src/utils/content-ref-groups.ts +9 -0
- package/src/utils/dismiss-cookie.ts +17 -0
- package/src/utils/index.ts +1 -0
- package/src/utils/visitor-os.ts +12 -0
|
@@ -49,7 +49,7 @@ var _chunk3LW5TD54cjs = require('./chunk-3LW5TD54.cjs');
|
|
|
49
49
|
|
|
50
50
|
|
|
51
51
|
|
|
52
|
-
var
|
|
52
|
+
var _chunkNTPX5GXIcjs = require('./chunk-NTPX5GXI.cjs');
|
|
53
53
|
|
|
54
54
|
|
|
55
55
|
var _chunkVFZFCRALcjs = require('./chunk-VFZFCRAL.cjs');
|
|
@@ -305,12 +305,13 @@ function ImageGalleryModal({ images, isOpen, onClose, initialIndex = 0 }) {
|
|
|
305
305
|
|
|
306
306
|
|
|
307
307
|
|
|
308
|
+
|
|
308
309
|
var filePlayer = null;
|
|
309
310
|
var filePlayerLoad = null;
|
|
310
311
|
var filePlayerListeners = /* @__PURE__ */ new Set();
|
|
311
312
|
function loadFilePlayer() {
|
|
312
313
|
if (filePlayer || filePlayerLoad) return;
|
|
313
|
-
filePlayerLoad = Promise.resolve().then(() => _interopRequireWildcard(require("./video-file-player-
|
|
314
|
+
filePlayerLoad = Promise.resolve().then(() => _interopRequireWildcard(require("./video-file-player-4TXA7BZF.cjs"))).then((module) => {
|
|
314
315
|
filePlayer = module.default;
|
|
315
316
|
for (const listener of filePlayerListeners) listener();
|
|
316
317
|
}).catch(() => void 0).finally(() => {
|
|
@@ -326,24 +327,70 @@ function subscribeToFilePlayer(listener) {
|
|
|
326
327
|
}
|
|
327
328
|
var loadedFilePlayer = () => filePlayer;
|
|
328
329
|
var noFilePlayer = () => null;
|
|
329
|
-
function
|
|
330
|
+
var PosterBox = _react.forwardRef.call(void 0, function PosterBoxView({ poster, className, priority, fill }, ref) {
|
|
330
331
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
331
332
|
"div",
|
|
332
333
|
{
|
|
334
|
+
ref,
|
|
333
335
|
"aria-hidden": "true",
|
|
334
|
-
className,
|
|
335
|
-
style: {
|
|
336
|
-
|
|
337
|
-
height: "100%",
|
|
338
|
-
...poster ? { backgroundImage: `url(${poster})`, backgroundSize: "cover", backgroundPosition: "center" } : {}
|
|
339
|
-
}
|
|
336
|
+
className: _chunk65VVJSQZcjs.cn.call(void 0, "relative overflow-hidden", className),
|
|
337
|
+
style: fill ? { width: "100%", height: "100%" } : void 0,
|
|
338
|
+
children: poster ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkE76ONBKFcjs.next_image_default, { src: poster, alt: "", fill: true, sizes: "100vw", priority, unoptimized: true, className: "object-cover" }) : null
|
|
340
339
|
}
|
|
341
340
|
);
|
|
341
|
+
});
|
|
342
|
+
function FilePlayerFallback({
|
|
343
|
+
poster,
|
|
344
|
+
className,
|
|
345
|
+
priority
|
|
346
|
+
}) {
|
|
347
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PosterBox, { poster, className, priority, fill: true });
|
|
348
|
+
}
|
|
349
|
+
function waitsForPlay(props) {
|
|
350
|
+
return !props.autoPlay && !props.autoPlayUnmuted && !props.playOnHover && props.playWhenHovered === void 0 && props.startTime === void 0 && !props.playerHandleRef && !props.chromeless;
|
|
351
|
+
}
|
|
352
|
+
function FilePlayer({
|
|
353
|
+
title,
|
|
354
|
+
priority,
|
|
355
|
+
...props
|
|
356
|
+
}) {
|
|
357
|
+
const [facade] = _react.useState.call(void 0, () => waitsForPlay(props));
|
|
358
|
+
const [pressed, setPressed] = _react.useState.call(void 0, false);
|
|
359
|
+
if (facade && !pressed) {
|
|
360
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, "relative", props.className), style: { width: "100%", height: "100%" }, children: [
|
|
361
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, FilePlayerFallback, { poster: props.poster, className: "absolute inset-0", priority }),
|
|
362
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
363
|
+
_chunkTF5D5MNOcjs.Button,
|
|
364
|
+
{
|
|
365
|
+
type: "button",
|
|
366
|
+
variant: "glyph",
|
|
367
|
+
size: "wrap",
|
|
368
|
+
"aria-label": title ? `Play: ${title}` : "Play video",
|
|
369
|
+
onPointerEnter: loadFilePlayer,
|
|
370
|
+
onFocus: loadFilePlayer,
|
|
371
|
+
onTouchStart: loadFilePlayer,
|
|
372
|
+
onClick: () => {
|
|
373
|
+
loadFilePlayer();
|
|
374
|
+
setPressed(true);
|
|
375
|
+
},
|
|
376
|
+
className: "group absolute inset-0 rounded-none",
|
|
377
|
+
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
378
|
+
_chunkSETFUCZAcjs.VideoPlayBadge,
|
|
379
|
+
{
|
|
380
|
+
size: "lg",
|
|
381
|
+
className: "transition-transform duration-200 group-hover:scale-110 group-hover:text-ods-accent"
|
|
382
|
+
}
|
|
383
|
+
)
|
|
384
|
+
}
|
|
385
|
+
)
|
|
386
|
+
] });
|
|
387
|
+
}
|
|
388
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, LoadedFilePlayer, { ...props, priority, ...facade ? { autoPlayUnmuted: true } : {} });
|
|
342
389
|
}
|
|
343
|
-
function
|
|
390
|
+
function LoadedFilePlayer({ priority, ...props }) {
|
|
344
391
|
const arrived = _react.useSyncExternalStore.call(void 0, subscribeToFilePlayer, loadedFilePlayer, noFilePlayer);
|
|
345
392
|
if (arrived) return _react.createElement.call(void 0, arrived, props);
|
|
346
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, FilePlayerFallback, { poster: props.poster, className: props.className });
|
|
393
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, FilePlayerFallback, { poster: props.poster, className: props.className, priority });
|
|
347
394
|
}
|
|
348
395
|
var YT_HOSTS = /* @__PURE__ */ new Set([
|
|
349
396
|
"youtube.com",
|
|
@@ -381,22 +428,22 @@ function extractYouTubeId(url) {
|
|
|
381
428
|
return m ? m[1] : null;
|
|
382
429
|
}
|
|
383
430
|
function Video(props) {
|
|
384
|
-
const { ref: nearRef, isNear } =
|
|
431
|
+
const { ref: nearRef, isNear } = _chunkNTPX5GXIcjs.useNearViewport.call(void 0, );
|
|
385
432
|
const loading = _chunkXFRBEXQNcjs.useLoadingScope.call(void 0, );
|
|
386
433
|
const url = props.url;
|
|
387
434
|
const layout = _nullishCoalesce(props.layout, () => ( "native"));
|
|
388
435
|
if (loading && !url) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, VideoSkeleton, { layout, className: props.className });
|
|
389
436
|
if (!url) return null;
|
|
390
437
|
const effectiveKind = resolveKind(props, url);
|
|
391
|
-
if (props.lazy && !isNear) {
|
|
438
|
+
if ((_nullishCoalesce(props.lazy, () => ( true))) && !isNear) {
|
|
392
439
|
return wrapWithLayout(
|
|
393
440
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
394
|
-
|
|
441
|
+
PosterBox,
|
|
395
442
|
{
|
|
396
443
|
ref: nearRef,
|
|
444
|
+
poster: props.poster,
|
|
397
445
|
className: props.className,
|
|
398
|
-
|
|
399
|
-
"aria-hidden": "true"
|
|
446
|
+
priority: "priority" in props ? props.priority : void 0
|
|
400
447
|
}
|
|
401
448
|
),
|
|
402
449
|
layout
|
|
@@ -426,6 +473,8 @@ function Video(props) {
|
|
|
426
473
|
{
|
|
427
474
|
url,
|
|
428
475
|
poster: props.poster,
|
|
476
|
+
title: props.title,
|
|
477
|
+
priority: props.priority,
|
|
429
478
|
muted: props.muted,
|
|
430
479
|
..._chunkSETFUCZAcjs.pickFilePlayback.call(void 0, props),
|
|
431
480
|
className: props.className
|
|
@@ -1668,6 +1717,7 @@ function EntityPortraitCard({
|
|
|
1668
1717
|
title,
|
|
1669
1718
|
titleClassName,
|
|
1670
1719
|
person,
|
|
1720
|
+
priority,
|
|
1671
1721
|
className
|
|
1672
1722
|
}) {
|
|
1673
1723
|
const loading = _chunkXFRBEXQNcjs.useLoadingScope.call(void 0, );
|
|
@@ -1696,6 +1746,7 @@ function EntityPortraitCard({
|
|
|
1696
1746
|
className: _chunk65VVJSQZcjs.cn.call(void 0, "h-full w-full", isWide === false ? "object-contain" : "object-cover"),
|
|
1697
1747
|
sizes: "(min-width: 800px) 400px, 100vw",
|
|
1698
1748
|
fill: true,
|
|
1749
|
+
priority,
|
|
1699
1750
|
unoptimized: true,
|
|
1700
1751
|
onLoad: onMediaLoad,
|
|
1701
1752
|
onError: onMediaError
|
|
@@ -2192,12 +2243,15 @@ function VideoHoverPreviewSurface({
|
|
|
2192
2243
|
const el = rootElRef.current;
|
|
2193
2244
|
if (!el || typeof IntersectionObserver === "undefined") return void 0;
|
|
2194
2245
|
const io = new IntersectionObserver((entries) => setIsNear(_nullishCoalesce(_optionalChain([entries, 'access', _48 => _48[0], 'optionalAccess', _49 => _49.isIntersecting]), () => ( false))), {
|
|
2195
|
-
rootMargin:
|
|
2246
|
+
rootMargin: _chunkNTPX5GXIcjs.NEAR_VIEWPORT_ROOT_MARGIN
|
|
2196
2247
|
});
|
|
2197
2248
|
io.observe(el);
|
|
2198
2249
|
return () => io.disconnect();
|
|
2199
2250
|
}, [gateControlled]);
|
|
2200
2251
|
const showMedia = continuation || (gateControlled ? playerMounted : isNear);
|
|
2252
|
+
const [engaged, setEngaged] = _react.useState.call(void 0, false);
|
|
2253
|
+
if ((active || continuation) && !engaged) setEngaged(true);
|
|
2254
|
+
const showPlayer = continuation || engaged;
|
|
2201
2255
|
const { src: posterSrc, onError: onPosterError } = useCoverImageFallback(posterUrl);
|
|
2202
2256
|
const facadeSkipped = preload === "none" && !posterSrc;
|
|
2203
2257
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: rootElRef, className: _chunk65VVJSQZcjs.cn.call(void 0, "absolute inset-0", className), inert: isClone || void 0, children: showMedia ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
@@ -2215,7 +2269,7 @@ function VideoHoverPreviewSurface({
|
|
|
2215
2269
|
}
|
|
2216
2270
|
) : facadeSkipped ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute inset-0 bg-ods-card" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Video, { kind: "file", url: previewUrl, firstFrameOnly: true, layout: "fill", fit }),
|
|
2217
2271
|
badge === "play" && !active && !continuation && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkSETFUCZAcjs.VideoPlayBadge, { className: "absolute inset-0 z-10 m-auto" }),
|
|
2218
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2272
|
+
showPlayer ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2219
2273
|
"div",
|
|
2220
2274
|
{
|
|
2221
2275
|
className: "absolute inset-0",
|
|
@@ -2245,7 +2299,7 @@ function VideoHoverPreviewSurface({
|
|
|
2245
2299
|
continuation ? "continuation" : "preview"
|
|
2246
2300
|
)
|
|
2247
2301
|
}
|
|
2248
|
-
)
|
|
2302
|
+
) : null
|
|
2249
2303
|
] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute inset-0 bg-ods-card" }) });
|
|
2250
2304
|
}
|
|
2251
2305
|
|
|
@@ -4046,6 +4100,7 @@ function ProgramEditorialCard({
|
|
|
4046
4100
|
typeMeta,
|
|
4047
4101
|
profile,
|
|
4048
4102
|
playable,
|
|
4103
|
+
priority,
|
|
4049
4104
|
className
|
|
4050
4105
|
}) {
|
|
4051
4106
|
const edgeColor = _chunk3LW5TD54cjs.useImageEdgeColor.call(void 0, feature ? cover : null, "transparent");
|
|
@@ -4059,7 +4114,7 @@ function ProgramEditorialCard({
|
|
|
4059
4114
|
if (!feature) {
|
|
4060
4115
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, ContentCardFrame, { as: "a", href, target, rel, className: _chunk65VVJSQZcjs.cn.call(void 0, EDITORIAL_ROW_GRID, className), children: [
|
|
4061
4116
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunk65VVJSQZcjs.cn.call(void 0, EDITORIAL_ROW_THUMB, "bg-ods-bg"), children: [
|
|
4062
|
-
cover && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkE76ONBKFcjs.next_image_default, { src: cover, alt: "", fill: true, sizes: "120px", className: "object-cover", unoptimized: true }),
|
|
4117
|
+
cover && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkE76ONBKFcjs.next_image_default, { src: cover, alt: "", fill: true, sizes: "120px", className: "object-cover", priority, unoptimized: true }),
|
|
4063
4118
|
playable && cover && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkSETFUCZAcjs.CardHoverPlay, { size: "md" })
|
|
4064
4119
|
] }),
|
|
4065
4120
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: EDITORIAL_ROW_TEXT, children: [
|
|
@@ -4084,6 +4139,7 @@ function ProgramEditorialCard({
|
|
|
4084
4139
|
fill: true,
|
|
4085
4140
|
sizes: "(min-width: 1024px) 640px, 100vw",
|
|
4086
4141
|
className: "object-contain",
|
|
4142
|
+
priority,
|
|
4087
4143
|
unoptimized: true
|
|
4088
4144
|
}
|
|
4089
4145
|
),
|
|
@@ -4132,6 +4188,7 @@ function ProgramCard({
|
|
|
4132
4188
|
wholeCardClickable = false,
|
|
4133
4189
|
eyebrow,
|
|
4134
4190
|
tags = [],
|
|
4191
|
+
priority,
|
|
4135
4192
|
className
|
|
4136
4193
|
}) {
|
|
4137
4194
|
const { target, rel } = useEntityCardLink({
|
|
@@ -4188,6 +4245,7 @@ function ProgramCard({
|
|
|
4188
4245
|
imageAlt: item.title,
|
|
4189
4246
|
title: item.title,
|
|
4190
4247
|
titleClassName: "font-['Azeret_Mono'] font-semibold text-lg leading-6",
|
|
4248
|
+
priority,
|
|
4191
4249
|
person: profile ? { name: profile.name, avatarUrl: profile.avatarUrl, subtitle: profile.subtitle || dateMeta } : { name: config.labels.singular, subtitle: dateMeta },
|
|
4192
4250
|
className
|
|
4193
4251
|
}
|
|
@@ -4209,6 +4267,7 @@ function ProgramCard({
|
|
|
4209
4267
|
typeMeta: compactTypeMetaValue,
|
|
4210
4268
|
profile: programItemToStripProfile(item),
|
|
4211
4269
|
playable: isPlayable,
|
|
4270
|
+
priority,
|
|
4212
4271
|
className
|
|
4213
4272
|
}
|
|
4214
4273
|
);
|
|
@@ -4222,7 +4281,18 @@ function ProgramCard({
|
|
|
4222
4281
|
);
|
|
4223
4282
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href, target, rel, className: _chunk65VVJSQZcjs.cn.call(void 0, COMPACT_CARD_OUTER, "group", className), children: [
|
|
4224
4283
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_IMAGE_SLOT, children: [
|
|
4225
|
-
compactCover ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4284
|
+
compactCover ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4285
|
+
_chunkE76ONBKFcjs.next_image_default,
|
|
4286
|
+
{
|
|
4287
|
+
src: compactCover,
|
|
4288
|
+
alt: item.title,
|
|
4289
|
+
fill: true,
|
|
4290
|
+
sizes: "56px",
|
|
4291
|
+
className: "object-contain",
|
|
4292
|
+
priority,
|
|
4293
|
+
unoptimized: true
|
|
4294
|
+
}
|
|
4295
|
+
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex h-full w-full items-center justify-center text-ods-accent", children: config.type === "podcast" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Play, { className: "h-4 w-4" }) : config.type === "webinar" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Video, { className: "h-4 w-4" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Clock, { className: "h-4 w-4" }) }),
|
|
4226
4296
|
isPlayable && compactCover && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkSETFUCZAcjs.CardHoverPlay, { size: "sm" })
|
|
4227
4297
|
] }),
|
|
4228
4298
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
@@ -4275,6 +4345,7 @@ function ProgramCard({
|
|
|
4275
4345
|
fill: true,
|
|
4276
4346
|
sizes: "(min-width: 1280px) 400px, (min-width: 768px) 320px, 100vw",
|
|
4277
4347
|
className: "object-cover",
|
|
4348
|
+
priority,
|
|
4278
4349
|
unoptimized: true
|
|
4279
4350
|
}
|
|
4280
4351
|
),
|
|
@@ -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 _chunkTOPGBOCNcjs = require('./chunk-TOPGBOCN.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
@@ -15,8 +15,8 @@ var _chunkKSCEAIBScjs = require('./chunk-KSCEAIBS.cjs');
|
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
|
|
18
|
-
var _chunkFPCGKH5Kcjs = require('./chunk-FPCGKH5K.cjs');
|
|
19
18
|
|
|
19
|
+
var _chunkTUXPFF4Pcjs = require('./chunk-TUXPFF4P.cjs');
|
|
20
20
|
|
|
21
21
|
|
|
22
22
|
|
|
@@ -39,7 +39,8 @@ var _chunkFPCGKH5Kcjs = require('./chunk-FPCGKH5K.cjs');
|
|
|
39
39
|
|
|
40
40
|
|
|
41
41
|
|
|
42
|
-
|
|
42
|
+
|
|
43
|
+
var _chunkY3EBUFX4cjs = require('./chunk-Y3EBUFX4.cjs');
|
|
43
44
|
|
|
44
45
|
|
|
45
46
|
var _chunkBLH2SFOOcjs = require('./chunk-BLH2SFOO.cjs');
|
|
@@ -452,7 +453,7 @@ function programEntry(configKey) {
|
|
|
452
453
|
// Hosts are drawn only for a type whose cards show them (its config's `cardShowsHosts`): elsewhere a record may
|
|
453
454
|
// have none.
|
|
454
455
|
skeleton: (size, extras) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
455
|
-
|
|
456
|
+
_chunkY3EBUFX4cjs.ProgramCardSkeleton,
|
|
456
457
|
{
|
|
457
458
|
size: size === "sm" ? "sm" : "default",
|
|
458
459
|
media: configKey === "event" ? EVENT_CARD_SKELETON_MEDIA : 0,
|
|
@@ -464,7 +465,7 @@ function programEntry(configKey) {
|
|
|
464
465
|
const config = _optionalChain([ctx, 'access', _5 => _5.extras, 'optionalAccess', _6 => _6.programConfigs, 'optionalAccess', _7 => _7[configKey]]);
|
|
465
466
|
if (!config) return null;
|
|
466
467
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
467
|
-
|
|
468
|
+
_chunkY3EBUFX4cjs.ProgramCard,
|
|
468
469
|
{
|
|
469
470
|
config,
|
|
470
471
|
item,
|
|
@@ -481,10 +482,10 @@ function programEntry(configKey) {
|
|
|
481
482
|
}
|
|
482
483
|
function roadmapEntry(cardType) {
|
|
483
484
|
return cardEntry({
|
|
484
|
-
skeleton: (size) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
485
|
+
skeleton: (size) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY3EBUFX4cjs.RoadmapCardSkeleton, { size: size === "sm" ? "sm" : "default" }),
|
|
485
486
|
decode: decodeRoadmapRow,
|
|
486
487
|
render: (item, ctx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
487
|
-
|
|
488
|
+
_chunkY3EBUFX4cjs.RoadmapCard,
|
|
488
489
|
{
|
|
489
490
|
item,
|
|
490
491
|
href: ctx.href,
|
|
@@ -501,10 +502,10 @@ function roadmapEntry(cardType) {
|
|
|
501
502
|
}
|
|
502
503
|
var RELATED_CARD_REGISTRY = {
|
|
503
504
|
blog_post_existing: cardEntry({
|
|
504
|
-
skeleton: (size) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
505
|
+
skeleton: (size) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY3EBUFX4cjs.BlogCardSkeleton, { size: size === "sm" ? "sm" : "default" }),
|
|
505
506
|
decode: decodeBlogRow,
|
|
506
507
|
render: (post, ctx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
507
|
-
|
|
508
|
+
_chunkY3EBUFX4cjs.BlogCard,
|
|
508
509
|
{
|
|
509
510
|
post,
|
|
510
511
|
size: ctx.legacySize,
|
|
@@ -516,10 +517,10 @@ var RELATED_CARD_REGISTRY = {
|
|
|
516
517
|
)
|
|
517
518
|
}),
|
|
518
519
|
case_study: cardEntry({
|
|
519
|
-
skeleton: (size) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
520
|
+
skeleton: (size) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY3EBUFX4cjs.CaseStudyCardSkeleton, { size: size === "sm" ? "sm" : "default" }),
|
|
520
521
|
decode: decodeCaseStudyRow,
|
|
521
522
|
render: (study, ctx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
522
|
-
|
|
523
|
+
_chunkY3EBUFX4cjs.CaseStudyCard,
|
|
523
524
|
{
|
|
524
525
|
study,
|
|
525
526
|
size: ctx.legacySize,
|
|
@@ -531,10 +532,10 @@ var RELATED_CARD_REGISTRY = {
|
|
|
531
532
|
)
|
|
532
533
|
}),
|
|
533
534
|
customer_interview: cardEntry({
|
|
534
|
-
skeleton: (size) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
535
|
+
skeleton: (size) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY3EBUFX4cjs.CustomerInterviewCardSkeleton, { size: size === "sm" ? "sm" : "default" }),
|
|
535
536
|
decode: decodeCustomerInterviewRow,
|
|
536
537
|
render: (interview, ctx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
537
|
-
|
|
538
|
+
_chunkY3EBUFX4cjs.CustomerInterviewCard,
|
|
538
539
|
{
|
|
539
540
|
interview,
|
|
540
541
|
size: ctx.legacySize,
|
|
@@ -552,13 +553,13 @@ var RELATED_CARD_REGISTRY = {
|
|
|
552
553
|
* record, and the three props the rail sets itself are read off it.
|
|
553
554
|
*/
|
|
554
555
|
product_release: cardEntry({
|
|
555
|
-
skeleton: (size) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
556
|
+
skeleton: (size) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY3EBUFX4cjs.ProductReleaseCardSkeleton, { size: size === "sm" ? "sm" : "lg" }),
|
|
556
557
|
decode: asRecord,
|
|
557
558
|
render: (release, ctx) => {
|
|
558
|
-
const buildReleaseProps = _nullishCoalesce(_optionalChain([ctx, 'access', _8 => _8.extras, 'optionalAccess', _9 => _9.buildProductReleaseCardProps]), () => (
|
|
559
|
+
const buildReleaseProps = _nullishCoalesce(_optionalChain([ctx, 'access', _8 => _8.extras, 'optionalAccess', _9 => _9.buildProductReleaseCardProps]), () => ( _chunkY3EBUFX4cjs.buildProductReleaseCardProps));
|
|
559
560
|
const releaseProps = buildReleaseProps(release);
|
|
560
561
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
561
|
-
|
|
562
|
+
_chunkTUXPFF4Pcjs.ProductReleaseCard,
|
|
562
563
|
{
|
|
563
564
|
size: ctx.size === "sm" ? "sm" : "lg",
|
|
564
565
|
title: str(release, "title"),
|
|
@@ -574,10 +575,10 @@ var RELATED_CARD_REGISTRY = {
|
|
|
574
575
|
webinar: programEntry("webinar"),
|
|
575
576
|
event: programEntry("event"),
|
|
576
577
|
investor_update: cardEntry({
|
|
577
|
-
skeleton: (size) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
578
|
+
skeleton: (size) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY3EBUFX4cjs.InvestorUpdateCardSkeleton, { size: size === "sm" ? "sm" : "default" }),
|
|
578
579
|
decode: decodeInvestorUpdateRow,
|
|
579
580
|
render: (update, ctx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
580
|
-
|
|
581
|
+
_chunkY3EBUFX4cjs.InvestorUpdateCard,
|
|
581
582
|
{
|
|
582
583
|
update,
|
|
583
584
|
size: ctx.legacySize,
|
|
@@ -592,10 +593,10 @@ var RELATED_CARD_REGISTRY = {
|
|
|
592
593
|
* step-numbered 'default' variant is for the guide detail page's "More in
|
|
593
594
|
* section" rail, not this full-width row. */
|
|
594
595
|
onboarding_guide: cardEntry({
|
|
595
|
-
skeleton: (size) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
596
|
+
skeleton: (size) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY3EBUFX4cjs.OnboardingGuideCardSkeleton, { size: size === "sm" ? "sm" : "catalog", published: false }),
|
|
596
597
|
decode: decodeOnboardingGuideRow,
|
|
597
598
|
render: (guide, ctx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
598
|
-
|
|
599
|
+
_chunkY3EBUFX4cjs.OnboardingGuideCard,
|
|
599
600
|
{
|
|
600
601
|
guide,
|
|
601
602
|
size: ctx.size === "sm" ? "sm" : "catalog",
|
|
@@ -612,10 +613,10 @@ var RELATED_CARD_REGISTRY = {
|
|
|
612
613
|
* href: an object with `href: undefined` is still truthy and would wrap the
|
|
613
614
|
* card in a dead <a>. */
|
|
614
615
|
what_i_shipped: cardEntry({
|
|
615
|
-
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
616
|
+
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTUXPFF4Pcjs.WhatIShippedCardSkeleton, {}),
|
|
616
617
|
decode: decodeEmployeeEntryRow,
|
|
617
618
|
render: (entry, ctx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
618
|
-
|
|
619
|
+
_chunkTUXPFF4Pcjs.WhatIShippedCard,
|
|
619
620
|
{
|
|
620
621
|
entry,
|
|
621
622
|
placeholderUrl: ctx.placeholderUrl,
|
|
@@ -625,10 +626,10 @@ var RELATED_CARD_REGISTRY = {
|
|
|
625
626
|
}),
|
|
626
627
|
/** Same shared employee-entry shape + anchor contract as What I Shipped. */
|
|
627
628
|
how_i_work: cardEntry({
|
|
628
|
-
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
629
|
+
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTUXPFF4Pcjs.HowIWorkCardSkeleton, {}),
|
|
629
630
|
decode: decodeEmployeeEntryRow,
|
|
630
631
|
render: (entry, ctx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
631
|
-
|
|
632
|
+
_chunkTUXPFF4Pcjs.HowIWorkCard,
|
|
632
633
|
{
|
|
633
634
|
entry,
|
|
634
635
|
placeholderUrl: ctx.placeholderUrl,
|
|
@@ -638,10 +639,10 @@ var RELATED_CARD_REGISTRY = {
|
|
|
638
639
|
}),
|
|
639
640
|
/** Same shared employee-entry shape + anchor contract as What I Shipped. */
|
|
640
641
|
ai_prompt: cardEntry({
|
|
641
|
-
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
642
|
+
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTUXPFF4Pcjs.AiPromptCardSkeleton, {}),
|
|
642
643
|
decode: decodeEmployeeEntryRow,
|
|
643
644
|
render: (entry, ctx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
644
|
-
|
|
645
|
+
_chunkTUXPFF4Pcjs.AiPromptCard,
|
|
645
646
|
{
|
|
646
647
|
entry,
|
|
647
648
|
placeholderUrl: ctx.placeholderUrl,
|
|
@@ -662,7 +663,7 @@ function DefaultLinkPropsProvider({
|
|
|
662
663
|
children
|
|
663
664
|
}) {
|
|
664
665
|
if (!href) return children(null);
|
|
665
|
-
const newTab =
|
|
666
|
+
const newTab = _chunkY3EBUFX4cjs.decideNewTab.call(void 0, { href, targetPlatform, currentSource: "" });
|
|
666
667
|
return children(newTab ? { href, target: "_blank", rel: "noopener noreferrer" } : { href });
|
|
667
668
|
}
|
|
668
669
|
function defaultResolveHref(ref) {
|
|
@@ -715,14 +716,16 @@ function CardForType({
|
|
|
715
716
|
extras
|
|
716
717
|
});
|
|
717
718
|
}
|
|
718
|
-
function useGroupItems(type, refs, buildUrl) {
|
|
719
|
+
function useGroupItems(type, refs, buildUrl, seedRows) {
|
|
719
720
|
const ids = refs.map((r) => r.id);
|
|
720
721
|
const url = ids.length > 0 ? buildUrl(type, ids) : null;
|
|
721
|
-
const [pages, setPages] = _react.useState.call(void 0,
|
|
722
|
+
const [pages, setPages] = _react.useState.call(void 0,
|
|
723
|
+
() => seedRows && url !== null ? /* @__PURE__ */ new Map([[url, [...seedRows]]]) : /* @__PURE__ */ new Map()
|
|
724
|
+
);
|
|
722
725
|
const cached = url !== null ? pages.get(url) : void 0;
|
|
723
|
-
const { data, dataUrl, error } =
|
|
726
|
+
const { data, dataUrl, error } = _chunkTUXPFF4Pcjs.useSelfFetch.call(void 0, cached ? null : url);
|
|
724
727
|
if (data != null && dataUrl !== null && !pages.has(dataUrl)) {
|
|
725
|
-
setPages(new Map(pages).set(dataUrl,
|
|
728
|
+
setPages(new Map(pages).set(dataUrl, _chunkY3EBUFX4cjs.extractItems.call(void 0, data)));
|
|
726
729
|
}
|
|
727
730
|
if (url === null) return { items: null, isLoading: false };
|
|
728
731
|
return { items: _nullishCoalesce(cached, () => ( (error ? [] : null))), isLoading: !cached && !error };
|
|
@@ -731,29 +734,28 @@ function gridClassFor(columns) {
|
|
|
731
734
|
return columns === 3 ? "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6" : "grid grid-cols-1 sm:grid-cols-2 gap-6";
|
|
732
735
|
}
|
|
733
736
|
function resolveGroupConfig(type) {
|
|
734
|
-
return _nullishCoalesce(
|
|
737
|
+
return _nullishCoalesce(_chunkTUXPFF4Pcjs.CONTENT_REF_GROUPS[type], () => ( {
|
|
735
738
|
label: type,
|
|
736
739
|
order: 999,
|
|
737
740
|
layout: "grid",
|
|
738
741
|
gridSize: "default"
|
|
739
742
|
}));
|
|
740
743
|
}
|
|
741
|
-
var GROUP_PAGE_SIZE = 12;
|
|
742
744
|
var GROUP_CLASS = "space-y-4";
|
|
743
745
|
var GROUP_LIST_CLASS = "space-y-4";
|
|
744
746
|
var GROUP_HEADING_CLASS = "font-semibold text-ods-text-secondary text-h5";
|
|
745
747
|
var RAIL_CLASS = "flex flex-col gap-8";
|
|
746
748
|
var UNKNOWN_TYPE_CARD = "blog_post_existing";
|
|
747
749
|
function GroupHeading({ type }) {
|
|
748
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: GROUP_HEADING_CLASS, children:
|
|
750
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: GROUP_HEADING_CLASS, children: _chunkTUXPFF4Pcjs.getContentRefLabelOrTitleCase.call(void 0, type) });
|
|
749
751
|
}
|
|
750
752
|
function orderRailTypes(types, entityType) {
|
|
751
|
-
let ordered =
|
|
753
|
+
let ordered = _chunkTUXPFF4Pcjs.orderContentRefTypes.call(void 0, types);
|
|
752
754
|
if (entityType) {
|
|
753
|
-
const canonicalEntityType =
|
|
754
|
-
const sameType = ordered.filter((t) =>
|
|
755
|
+
const canonicalEntityType = _chunkY3EBUFX4cjs.canonicalContentRefType.call(void 0, entityType);
|
|
756
|
+
const sameType = ordered.filter((t) => _chunkY3EBUFX4cjs.canonicalContentRefType.call(void 0, t) === canonicalEntityType);
|
|
755
757
|
if (sameType.length > 0) {
|
|
756
|
-
ordered = [...sameType, ...ordered.filter((t) =>
|
|
758
|
+
ordered = [...sameType, ...ordered.filter((t) => _chunkY3EBUFX4cjs.canonicalContentRefType.call(void 0, t) !== canonicalEntityType)];
|
|
757
759
|
}
|
|
758
760
|
}
|
|
759
761
|
return ordered;
|
|
@@ -768,7 +770,8 @@ function ContentGroup({
|
|
|
768
770
|
extras,
|
|
769
771
|
adminCampaignCard,
|
|
770
772
|
heading,
|
|
771
|
-
onLoadingChange
|
|
773
|
+
onLoadingChange,
|
|
774
|
+
seedRows
|
|
772
775
|
}) {
|
|
773
776
|
const config = resolveGroupConfig(type);
|
|
774
777
|
const isListLayout = config.layout === "list";
|
|
@@ -780,10 +783,10 @@ function ContentGroup({
|
|
|
780
783
|
setPagedRefsKey(refsKey);
|
|
781
784
|
setPage(1);
|
|
782
785
|
}
|
|
783
|
-
const totalGroupPages = _chunkBLH2SFOOcjs.pageCount.call(void 0, refs.length, GROUP_PAGE_SIZE);
|
|
784
|
-
const pageRefs = refs.slice((page - 1) * GROUP_PAGE_SIZE, page * GROUP_PAGE_SIZE);
|
|
785
|
-
const { items, isLoading } = useGroupItems(type, pageRefs, buildUrl);
|
|
786
|
-
const groupPagination = totalGroupPages > 1 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
786
|
+
const totalGroupPages = _chunkBLH2SFOOcjs.pageCount.call(void 0, refs.length, _chunkTUXPFF4Pcjs.GROUP_PAGE_SIZE);
|
|
787
|
+
const pageRefs = refs.slice((page - 1) * _chunkTUXPFF4Pcjs.GROUP_PAGE_SIZE, page * _chunkTUXPFF4Pcjs.GROUP_PAGE_SIZE);
|
|
788
|
+
const { items, isLoading } = useGroupItems(type, pageRefs, buildUrl, seedRows);
|
|
789
|
+
const groupPagination = totalGroupPages > 1 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTOPGBOCNcjs.Pagination, { currentPage: page, totalPages: totalGroupPages, onPageChange: setPage }) : null;
|
|
787
790
|
_react.useEffect.call(void 0, () => {
|
|
788
791
|
onLoadingChange(type, isLoading);
|
|
789
792
|
return () => onLoadingChange(type, false);
|
|
@@ -801,7 +804,7 @@ function ContentGroup({
|
|
|
801
804
|
}
|
|
802
805
|
if (!items) return null;
|
|
803
806
|
const rowKey = (it) => {
|
|
804
|
-
const extracted =
|
|
807
|
+
const extracted = _chunkY3EBUFX4cjs.extractItemId.call(void 0, type, it);
|
|
805
808
|
if (extracted !== null) return extracted;
|
|
806
809
|
return String(typeof it === "object" && it !== null ? it.id : void 0);
|
|
807
810
|
};
|
|
@@ -852,6 +855,7 @@ function RelatedContentSection({
|
|
|
852
855
|
sameTypeMinResults,
|
|
853
856
|
includeTypes,
|
|
854
857
|
initialItems,
|
|
858
|
+
initialRows,
|
|
855
859
|
title = "Related Content",
|
|
856
860
|
columns = 2,
|
|
857
861
|
excludeTypes,
|
|
@@ -870,11 +874,11 @@ function RelatedContentSection({
|
|
|
870
874
|
types: includeTypes !== void 0 ? includeTypes.join(",") : void 0,
|
|
871
875
|
excludeTypes: excludeTypes && excludeTypes.length > 0 ? excludeTypes.join(",") : void 0
|
|
872
876
|
};
|
|
873
|
-
const authorUrl = contentRefs === void 0 && authorId && !suggestionsDisabled ?
|
|
877
|
+
const authorUrl = contentRefs === void 0 && authorId && !suggestionsDisabled ? _chunkTUXPFF4Pcjs.buildSuggestionUrl.call(void 0, "/api/related-content", {
|
|
874
878
|
apiBaseUrl,
|
|
875
879
|
extraParams: { authorId, ...typeFilterParams }
|
|
876
880
|
}) : null;
|
|
877
|
-
const suggestUrl = _nullishCoalesce(authorUrl, () => ( (contentRefs === void 0 && entityType && entityId !== void 0 && entityId !== null && entityId !== "" && !suggestionsDisabled ?
|
|
881
|
+
const suggestUrl = _nullishCoalesce(authorUrl, () => ( (contentRefs === void 0 && entityType && entityId !== void 0 && entityId !== null && entityId !== "" && !suggestionsDisabled ? _chunkTUXPFF4Pcjs.buildSuggestionUrl.call(void 0, "/api/related-content", {
|
|
878
882
|
apiBaseUrl,
|
|
879
883
|
entityType,
|
|
880
884
|
entityId,
|
|
@@ -891,7 +895,7 @@ function RelatedContentSection({
|
|
|
891
895
|
() => !suggestionsDisabled && initialItems ? { refs: initialItems } : void 0,
|
|
892
896
|
[initialItems, suggestionsDisabled]
|
|
893
897
|
);
|
|
894
|
-
const { data, isLoading } =
|
|
898
|
+
const { data, isLoading } = _chunkTUXPFF4Pcjs.useSelfFetch.call(void 0, suggestUrl, { initialData });
|
|
895
899
|
const inScope = _chunkXFRBEXQNcjs.useLoadingScope.call(void 0, );
|
|
896
900
|
const [loadingTypes, setLoadingTypes] = _react.useState.call(void 0, () => /* @__PURE__ */ new Set());
|
|
897
901
|
const onGroupLoadingChange = _react.useCallback.call(void 0, (type, loading) => {
|
|
@@ -904,7 +908,7 @@ function RelatedContentSection({
|
|
|
904
908
|
});
|
|
905
909
|
}, []);
|
|
906
910
|
const effectiveBuildListUrl = _react.useMemo.call(void 0,
|
|
907
|
-
() => _nullishCoalesce(buildListUrl2, () => ( ((type, ids) =>
|
|
911
|
+
() => _nullishCoalesce(buildListUrl2, () => ( ((type, ids) => _chunkY3EBUFX4cjs.buildListUrl.call(void 0, type, ids, apiBaseUrl)))),
|
|
908
912
|
[buildListUrl2, apiBaseUrl]
|
|
909
913
|
);
|
|
910
914
|
const refs = _nullishCoalesce(_nullishCoalesce(contentRefs, () => ( _optionalChain([data, 'optionalAccess', _13 => _13.refs]))), () => ( []));
|
|
@@ -928,7 +932,7 @@ function RelatedContentSection({
|
|
|
928
932
|
}
|
|
929
933
|
if (!showWhenEmpty) return null;
|
|
930
934
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-8", children: [
|
|
931
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: "text-2xl font-bold text-ods-text-primary", children:
|
|
935
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: "text-2xl font-bold text-ods-text-primary", children: _chunkY3EBUFX4cjs.accentSentenceMarks.call(void 0, title) }),
|
|
932
936
|
_nullishCoalesce(emptyState, () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary", children: emptyStateText })))
|
|
933
937
|
] });
|
|
934
938
|
}
|
|
@@ -954,7 +958,7 @@ function RelatedContentSection({
|
|
|
954
958
|
);
|
|
955
959
|
}
|
|
956
960
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkWEANWBJHcjs.LoadingRegion, { as: "section", label: "Loading related content", announce: loadingTypes.size > 0, className: RAIL_CLASS, children: [
|
|
957
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: RAIL_TITLE_CLASS, children:
|
|
961
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: RAIL_TITLE_CLASS, children: _chunkY3EBUFX4cjs.accentSentenceMarks.call(void 0, title) }),
|
|
958
962
|
orderedTypes.map((type) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
959
963
|
ContentGroup,
|
|
960
964
|
{
|
|
@@ -967,7 +971,8 @@ function RelatedContentSection({
|
|
|
967
971
|
extras,
|
|
968
972
|
adminCampaignCard,
|
|
969
973
|
heading: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, GroupHeading, { type }),
|
|
970
|
-
onLoadingChange: onGroupLoadingChange
|
|
974
|
+
onLoadingChange: onGroupLoadingChange,
|
|
975
|
+
seedRows: _optionalChain([initialRows, 'optionalAccess', _14 => _14[type]])
|
|
971
976
|
},
|
|
972
977
|
type
|
|
973
978
|
))
|
|
@@ -983,24 +988,24 @@ function RelatedContentSectionSkeleton({
|
|
|
983
988
|
adminCampaignCard,
|
|
984
989
|
extras
|
|
985
990
|
}) {
|
|
986
|
-
const canonicalEntityType = entityType ?
|
|
991
|
+
const canonicalEntityType = entityType ? _chunkY3EBUFX4cjs.canonicalContentRefType.call(void 0, entityType) : null;
|
|
987
992
|
const unknownGroup = types.length === 0 ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: GROUP_CLASS, "aria-hidden": true, "data-loading-item": true, children: [
|
|
988
993
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: GROUP_HEADING_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "inherit", as: "span", className: "w-24" }) }),
|
|
989
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: gridClassFor(columns), children: Array.from({ length: GROUP_PAGE_SIZE }, (_, i) => (
|
|
994
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: gridClassFor(columns), children: Array.from({ length: _chunkTUXPFF4Pcjs.GROUP_PAGE_SIZE }, (_, i) => (
|
|
990
995
|
// biome-ignore lint/suspicious/noArrayIndexKey: skeleton cards never reorder
|
|
991
996
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "data-loading-item": true, children: renderSkeletonForType(UNKNOWN_TYPE_CARD, "default", adminCampaignCard, extras) }, i)
|
|
992
997
|
)) })
|
|
993
998
|
] }) : null;
|
|
994
999
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkWEANWBJHcjs.LoadingRegion, { as: "section", label: "Loading related content", className: RAIL_CLASS, children: [
|
|
995
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: RAIL_TITLE_CLASS, children: title ?
|
|
1000
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: RAIL_TITLE_CLASS, children: title ? _chunkY3EBUFX4cjs.accentSentenceMarks.call(void 0, title) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "inherit", as: "span", className: "w-1/2" }) }),
|
|
996
1001
|
unknownGroup,
|
|
997
1002
|
orderRailTypes(new Set(types), entityType).map((type) => {
|
|
998
1003
|
const config = resolveGroupConfig(type);
|
|
999
|
-
const sameType = canonicalEntityType !== null &&
|
|
1004
|
+
const sameType = canonicalEntityType !== null && _chunkY3EBUFX4cjs.canonicalContentRefType.call(void 0, type) === canonicalEntityType;
|
|
1000
1005
|
const isList = config.layout === "list";
|
|
1001
1006
|
const count = Math.min(
|
|
1002
|
-
GROUP_PAGE_SIZE,
|
|
1003
|
-
_nullishCoalesce((sameType ? _nullishCoalesce(sameTypeMinResults, () => ( minResults)) : minResults), () => ( GROUP_PAGE_SIZE))
|
|
1007
|
+
_chunkTUXPFF4Pcjs.GROUP_PAGE_SIZE,
|
|
1008
|
+
_nullishCoalesce((sameType ? _nullishCoalesce(sameTypeMinResults, () => ( minResults)) : minResults), () => ( _chunkTUXPFF4Pcjs.GROUP_PAGE_SIZE))
|
|
1004
1009
|
);
|
|
1005
1010
|
const cards = Array.from({ length: count }, (_, i) => (
|
|
1006
1011
|
// biome-ignore lint/suspicious/noArrayIndexKey: skeleton cards never reorder
|
|
@@ -1017,5 +1022,4 @@ function RelatedContentSectionSkeleton({
|
|
|
1017
1022
|
|
|
1018
1023
|
|
|
1019
1024
|
|
|
1020
|
-
|
|
1021
|
-
exports.GROUP_PAGE_SIZE = GROUP_PAGE_SIZE; exports.RelatedContentSection = RelatedContentSection; exports.RelatedContentSectionSkeleton = RelatedContentSectionSkeleton;
|
|
1025
|
+
exports.RelatedContentSection = RelatedContentSection; exports.RelatedContentSectionSkeleton = RelatedContentSectionSkeleton;
|