@flamingo-stack/openframe-frontend-core 0.0.775 → 0.0.777
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/case-study-card-FMH622O5.cjs +25 -0
- package/dist/{chunk-F67SEXCW.cjs → chunk-3PCSEZNZ.cjs} +53 -53
- package/dist/{chunk-R3JX4MXD.cjs → chunk-3ZLPYEL5.cjs} +10 -10
- package/dist/{chunk-SWEPHSIP.cjs → chunk-4JZDJ34E.cjs} +17 -17
- package/dist/{chunk-DGFDBPO7.cjs → chunk-5GJM7VRR.cjs} +1 -94
- package/dist/{chunk-E64HPPRH.cjs → chunk-5PK22JP7.cjs} +50 -50
- package/dist/{chunk-57B5RUYD.cjs → chunk-64KBI5MI.cjs} +2 -2
- package/dist/{chunk-PMX6QNNN.cjs → chunk-7LJSGOWS.cjs} +18 -16
- package/dist/{chunk-ASMNNSUQ.cjs → chunk-7PNRXJX2.cjs} +3 -3
- package/dist/{chunk-VAGZJRYV.cjs → chunk-ALA4KHTE.cjs} +6 -6
- package/dist/{chunk-VFZFCRAL.cjs → chunk-AQXKXZWB.cjs} +4 -4
- package/dist/{chunk-4LFB4YY3.cjs → chunk-BDDOC425.cjs} +8 -8
- package/dist/{chunk-VFUMM6JC.cjs → chunk-BEMGJDXI.cjs} +2 -2
- package/dist/{chunk-HY6BCZH7.cjs → chunk-BNUZKBNV.cjs} +3 -3
- package/dist/{chunk-Y3EBUFX4.cjs → chunk-CGQ7CL62.cjs} +213 -1647
- package/dist/{chunk-ODF3KCRK.cjs → chunk-DOM5CUEY.cjs} +33 -31
- package/dist/{chunk-36GYLB3Z.cjs → chunk-G2N7INFT.cjs} +28 -28
- package/dist/{chunk-42JGOJCB.cjs → chunk-HXLOCZMG.cjs} +595 -591
- package/dist/{chunk-CZIMISAR.cjs → chunk-JB2SEF6Q.cjs} +7 -7
- package/dist/{chunk-6SJYFUGD.cjs → chunk-JMFF3L3T.cjs} +28 -26
- package/dist/{chunk-LJT2KRE2.cjs → chunk-KLTUTZBO.cjs} +24 -24
- package/dist/{chunk-EHJE3UWZ.cjs → chunk-LBGAHB6X.cjs} +20 -20
- package/dist/{chunk-TUXPFF4P.cjs → chunk-LGNJTSKB.cjs} +37 -35
- package/dist/{chunk-FHTTRWAK.cjs → chunk-LU2DGST4.cjs} +97 -95
- package/dist/chunk-MQPTOJMF.cjs +1504 -0
- package/dist/{chunk-XXJL5GY3.cjs → chunk-OJZBZH56.cjs} +3 -3
- package/dist/{chunk-TF2XYDH3.cjs → chunk-QIATO42V.cjs} +3 -3
- package/dist/{chunk-RB7VLVMD.cjs → chunk-R6BKQKIF.cjs} +9 -7
- package/dist/{chunk-BTVO676B.cjs → chunk-S3YDUX2I.cjs} +114 -112
- package/dist/{chunk-VISK6LKE.cjs → chunk-SDZG7VV7.cjs} +5 -5
- package/dist/{chunk-V3W56L2D.cjs → chunk-SIDDZZKL.cjs} +38 -38
- package/dist/chunk-SZHDXXMK.cjs +102 -0
- package/dist/{chunk-5YJWT5ZQ.cjs → chunk-T47VAUYR.cjs} +91 -89
- package/dist/{chunk-IQQ3SLUK.cjs → chunk-T7NDPPLF.cjs} +23 -21
- package/dist/{chunk-5P4TDV7V.cjs → chunk-TUAATMUE.cjs} +5 -93
- package/dist/{chunk-KWZ62LPZ.cjs → chunk-TZP7PSPG.cjs} +249 -243
- package/dist/{chunk-USMR73ND.cjs → chunk-U5VQFKRZ.cjs} +6 -6
- package/dist/{chunk-L5CKY5WA.cjs → chunk-UW6AOF42.cjs} +22 -22
- package/dist/chunk-V4FXUIMH.cjs +92 -0
- package/dist/{chunk-2JRSYWFP.cjs → chunk-VXAKQRV7.cjs} +5 -5
- package/dist/{chunk-3XLDYEQD.cjs → chunk-VY3NGJRH.cjs} +53 -51
- package/dist/{chunk-TOPGBOCN.cjs → chunk-WCSWWVPF.cjs} +2 -2
- package/dist/{chunk-EQBJHJS7.cjs → chunk-WMZIBRTR.cjs} +2 -2
- package/dist/{chunk-5QP3K2CE.cjs → chunk-XEYL6AFZ.cjs} +9 -9
- package/dist/{chunk-VDXBACD3.cjs → chunk-XVAVQ4BK.cjs} +116 -82
- package/dist/{chunk-5AOKXXHV.cjs → chunk-Y6MQBLTZ.cjs} +4 -4
- package/dist/{cloud-tenants-ISGAMTJD.cjs → cloud-tenants-EUH42CCL.cjs} +27 -24
- package/dist/components/case-studies/index.cjs +45 -41
- package/dist/components/chat/index.cjs +21 -17
- package/dist/components/contact/index.cjs +28 -25
- package/dist/components/docs/index.cjs +31 -28
- package/dist/components/embeds/index.cjs +28 -25
- package/dist/components/faq/index.cjs +29 -26
- package/dist/components/features/index.cjs +28 -24
- package/dist/components/features/use-file-playback.d.ts +6 -4
- package/dist/components/features/use-file-playback.d.ts.map +1 -1
- package/dist/components/features/use-file-playback.js +16 -7
- package/dist/components/help-center-pages/index.cjs +131 -127
- package/dist/components/index.cjs +94 -90
- package/dist/components/meeting-scheduler/index.cjs +95 -92
- package/dist/components/navigation/index.cjs +30 -27
- package/dist/components/navigation/nav-panel.d.ts.map +1 -1
- package/dist/components/navigation/nav-panel.js +47 -13
- package/dist/components/onboarding-guides/index.cjs +30 -27
- package/dist/components/product-demo/index.cjs +38 -35
- package/dist/components/related-content/index.cjs +15 -12
- package/dist/components/tickets/index.cjs +33 -30
- package/dist/components/ui/index.cjs +28 -24
- package/dist/{devices-AHJX6ACJ.cjs → devices-WL3I23EE.cjs} +28 -25
- package/dist/{embeddable-chat-DI7ZZTBP.cjs → embeddable-chat-KEWUGQIF.cjs} +99 -95
- package/dist/hooks/index.cjs +12 -10
- package/dist/index.cjs +36 -30
- package/dist/{knowledge-FH5GVRVP.cjs → knowledge-O3PXUX73.cjs} +28 -25
- package/dist/{logs-JBIHHLUQ.cjs → logs-XODCXWYI.cjs} +35 -32
- package/dist/{policies-XLJ2ABY5.cjs → policies-CQACBIKK.cjs} +31 -28
- package/dist/{remote-session-TC3BZDBZ.cjs → remote-session-TGM2OTTV.cjs} +12 -10
- package/dist/{scripts-CQLXM7PP.cjs → scripts-QMM6SEB5.cjs} +34 -31
- package/dist/{software-update-7NYZ7L76.cjs → software-update-CCCKS4ZE.cjs} +31 -28
- package/dist/{tickets-board-YT25IX3O.cjs → tickets-board-FB5AGLJD.cjs} +16 -14
- package/dist/{video-file-player-4TXA7BZF.cjs → video-file-player-SIJW5UWU.cjs} +19 -9
- package/package.json +1 -1
- package/src/components/features/use-file-playback.ts +33 -14
- package/src/components/navigation/nav-panel.tsx +74 -14
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function
|
|
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
4
|
|
|
5
5
|
|
|
6
|
-
var _chunkR3JX4MXDcjs = require('./chunk-R3JX4MXD.cjs');
|
|
7
6
|
|
|
8
7
|
|
|
9
8
|
|
|
@@ -12,10 +11,8 @@ var _chunkR3JX4MXDcjs = require('./chunk-R3JX4MXD.cjs');
|
|
|
12
11
|
|
|
13
12
|
|
|
14
13
|
|
|
15
|
-
var _chunkSETFUCZAcjs = require('./chunk-SETFUCZA.cjs');
|
|
16
14
|
|
|
17
15
|
|
|
18
|
-
var _chunkVFUMM6JCcjs = require('./chunk-VFUMM6JC.cjs');
|
|
19
16
|
|
|
20
17
|
|
|
21
18
|
|
|
@@ -29,36 +26,49 @@ var _chunkVFUMM6JCcjs = require('./chunk-VFUMM6JC.cjs');
|
|
|
29
26
|
|
|
30
27
|
|
|
31
28
|
|
|
32
|
-
var
|
|
29
|
+
var _chunkMQPTOJMFcjs = require('./chunk-MQPTOJMF.cjs');
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
var _chunkSETFUCZAcjs = require('./chunk-SETFUCZA.cjs');
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
var _chunkBEMGJDXIcjs = require('./chunk-BEMGJDXI.cjs');
|
|
33
36
|
|
|
34
37
|
|
|
35
|
-
var _chunk32ASZMTVcjs = require('./chunk-32ASZMTV.cjs');
|
|
36
38
|
|
|
37
39
|
|
|
38
|
-
var _chunkOOYBIS7Dcjs = require('./chunk-OOYBIS7D.cjs');
|
|
39
40
|
|
|
40
41
|
|
|
41
|
-
var _chunk6VOOPMP5cjs = require('./chunk-6VOOPMP5.cjs');
|
|
42
42
|
|
|
43
43
|
|
|
44
|
-
var _chunkORO54HDFcjs = require('./chunk-ORO54HDF.cjs');
|
|
45
44
|
|
|
46
45
|
|
|
47
46
|
|
|
48
|
-
var _chunk3LW5TD54cjs = require('./chunk-3LW5TD54.cjs');
|
|
49
47
|
|
|
50
48
|
|
|
49
|
+
var _chunkBNUZKBNVcjs = require('./chunk-BNUZKBNV.cjs');
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
var _chunk32ASZMTVcjs = require('./chunk-32ASZMTV.cjs');
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
var _chunkOOYBIS7Dcjs = require('./chunk-OOYBIS7D.cjs');
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
var _chunk6VOOPMP5cjs = require('./chunk-6VOOPMP5.cjs');
|
|
59
|
+
|
|
51
60
|
|
|
52
|
-
var
|
|
61
|
+
var _chunkORO54HDFcjs = require('./chunk-ORO54HDF.cjs');
|
|
53
62
|
|
|
54
63
|
|
|
55
|
-
var
|
|
64
|
+
var _chunk3LW5TD54cjs = require('./chunk-3LW5TD54.cjs');
|
|
56
65
|
|
|
57
66
|
|
|
67
|
+
var _chunkAQXKXZWBcjs = require('./chunk-AQXKXZWB.cjs');
|
|
58
68
|
|
|
59
69
|
|
|
60
|
-
var _chunk5P4TDV7Vcjs = require('./chunk-5P4TDV7V.cjs');
|
|
61
70
|
|
|
71
|
+
var _chunkTUAATMUEcjs = require('./chunk-TUAATMUE.cjs');
|
|
62
72
|
|
|
63
73
|
|
|
64
74
|
var _chunkE76ONBKFcjs = require('./chunk-E76ONBKF.cjs');
|
|
@@ -75,7 +85,6 @@ var _chunkUJ7AXHRZcjs = require('./chunk-UJ7AXHRZ.cjs');
|
|
|
75
85
|
|
|
76
86
|
|
|
77
87
|
|
|
78
|
-
|
|
79
88
|
var _chunkXFRBEXQNcjs = require('./chunk-XFRBEXQN.cjs');
|
|
80
89
|
|
|
81
90
|
|
|
@@ -87,65 +96,10 @@ var _chunkV45KLJQPcjs = require('./chunk-V45KLJQP.cjs');
|
|
|
87
96
|
|
|
88
97
|
var _chunk65VVJSQZcjs = require('./chunk-65VVJSQZ.cjs');
|
|
89
98
|
|
|
90
|
-
// src/components/ui/card.tsx
|
|
91
|
-
var _react = require('react');
|
|
92
|
-
var _jsxruntime = require('react/jsx-runtime');
|
|
93
|
-
var CARD_VARIANT_CLASS = {
|
|
94
|
-
default: "rounded-lg bg-card text-card-foreground shadow-sm",
|
|
95
|
-
panel: "rounded-md bg-ods-card text-ods-text-primary"
|
|
96
|
-
};
|
|
97
|
-
var Card = _react.forwardRef.call(void 0,
|
|
98
|
-
({ className, variant = "default", ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
99
|
-
"div",
|
|
100
|
-
{
|
|
101
|
-
ref,
|
|
102
|
-
className: _chunk65VVJSQZcjs.cn.call(void 0,
|
|
103
|
-
// `border` with NO color token resolves to `currentColor` — on a dark card
|
|
104
|
-
// with light text that paints a WHITE outline. Every ODS surface borders
|
|
105
|
-
// on `--color-border`; say so.
|
|
106
|
-
"border border-ods-border",
|
|
107
|
-
CARD_VARIANT_CLASS[variant],
|
|
108
|
-
className
|
|
109
|
-
),
|
|
110
|
-
...props
|
|
111
|
-
}
|
|
112
|
-
)
|
|
113
|
-
);
|
|
114
|
-
Card.displayName = "Card";
|
|
115
|
-
var CardHeader = _react.forwardRef.call(void 0, ({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref, className: _chunk65VVJSQZcjs.cn.call(void 0, "flex flex-col space-y-1.5 p-6", className), ...props }));
|
|
116
|
-
CardHeader.displayName = "CardHeader";
|
|
117
|
-
var CardTitle = _react.forwardRef.call(void 0, ({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref, className: _chunk65VVJSQZcjs.cn.call(void 0, "text-h2", className), ...props }));
|
|
118
|
-
CardTitle.displayName = "CardTitle";
|
|
119
|
-
var CardDescription = _react.forwardRef.call(void 0, ({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref, className: _chunk65VVJSQZcjs.cn.call(void 0, "text-muted-foreground text-h6", className), ...props }));
|
|
120
|
-
CardDescription.displayName = "CardDescription";
|
|
121
|
-
var CardContent = _react.forwardRef.call(void 0, ({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref, className: _chunk65VVJSQZcjs.cn.call(void 0, "p-6 pt-0", className), ...props }));
|
|
122
|
-
CardContent.displayName = "CardContent";
|
|
123
|
-
var CardFooter = _react.forwardRef.call(void 0, ({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref, className: _chunk65VVJSQZcjs.cn.call(void 0, "flex items-center p-6 pt-0", className), ...props }));
|
|
124
|
-
CardFooter.displayName = "CardFooter";
|
|
125
|
-
function CardHorizontal({ icon, title, description, className = "", borderLeft = true }) {
|
|
126
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
127
|
-
"div",
|
|
128
|
-
{
|
|
129
|
-
className: _chunk65VVJSQZcjs.cn.call(void 0,
|
|
130
|
-
"flex min-h-[80px] w-full flex-row items-center gap-3 bg-ods-card p-4 content-md:gap-4 content-md:p-6",
|
|
131
|
-
borderLeft ? "border-l border-ods-border" : "",
|
|
132
|
-
className
|
|
133
|
-
),
|
|
134
|
-
children: [
|
|
135
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 w-5 flex-shrink-0", children: icon }),
|
|
136
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-col", children: [
|
|
137
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "mb-0.5 text-left text-ods-text-primary text-h6", children: title }),
|
|
138
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-left text-ods-text-secondary text-h6", children: description })
|
|
139
|
-
] })
|
|
140
|
-
]
|
|
141
|
-
}
|
|
142
|
-
);
|
|
143
|
-
}
|
|
144
|
-
|
|
145
99
|
// src/components/ui/modal.tsx
|
|
146
100
|
var _overlays = require('@react-aria/overlays');
|
|
147
|
-
|
|
148
|
-
|
|
101
|
+
var _react = require('react');
|
|
102
|
+
var _jsxruntime = require('react/jsx-runtime');
|
|
149
103
|
var Modal = _react.forwardRef.call(void 0, ({ isOpen, onClose, children, className }, ref) => {
|
|
150
104
|
_overlays.usePreventScroll.call(void 0, { isDisabled: !isOpen });
|
|
151
105
|
_react.useEffect.call(void 0, () => {
|
|
@@ -171,7 +125,7 @@ var Modal = _react.forwardRef.call(void 0, ({ isOpen, onClose, children, classNa
|
|
|
171
125
|
),
|
|
172
126
|
role: "dialog",
|
|
173
127
|
"aria-modal": "true",
|
|
174
|
-
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
128
|
+
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkAQXKXZWBcjs.ViewportBreakpoints, { children })
|
|
175
129
|
}
|
|
176
130
|
)
|
|
177
131
|
] });
|
|
@@ -294,597 +248,12 @@ function ImageGalleryModal({ images, isOpen, onClose, initialIndex = 0 }) {
|
|
|
294
248
|
] }) });
|
|
295
249
|
}
|
|
296
250
|
|
|
297
|
-
// src/components/features/video.tsx
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
var filePlayer = null;
|
|
310
|
-
var filePlayerLoad = null;
|
|
311
|
-
var filePlayerListeners = /* @__PURE__ */ new Set();
|
|
312
|
-
function loadFilePlayer() {
|
|
313
|
-
if (filePlayer || filePlayerLoad) return;
|
|
314
|
-
filePlayerLoad = Promise.resolve().then(() => _interopRequireWildcard(require("./video-file-player-4TXA7BZF.cjs"))).then((module) => {
|
|
315
|
-
filePlayer = module.default;
|
|
316
|
-
for (const listener of filePlayerListeners) listener();
|
|
317
|
-
}).catch(() => void 0).finally(() => {
|
|
318
|
-
filePlayerLoad = null;
|
|
319
|
-
});
|
|
320
|
-
}
|
|
321
|
-
function subscribeToFilePlayer(listener) {
|
|
322
|
-
filePlayerListeners.add(listener);
|
|
323
|
-
loadFilePlayer();
|
|
324
|
-
return () => {
|
|
325
|
-
filePlayerListeners.delete(listener);
|
|
326
|
-
};
|
|
327
|
-
}
|
|
328
|
-
var loadedFilePlayer = () => filePlayer;
|
|
329
|
-
var noFilePlayer = () => null;
|
|
330
|
-
var PosterBox = _react.forwardRef.call(void 0, function PosterBoxView({ poster, className, priority, fill }, ref) {
|
|
331
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
332
|
-
"div",
|
|
333
|
-
{
|
|
334
|
-
ref,
|
|
335
|
-
"aria-hidden": "true",
|
|
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
|
|
339
|
-
}
|
|
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 } : {} });
|
|
389
|
-
}
|
|
390
|
-
function LoadedFilePlayer({ priority, ...props }) {
|
|
391
|
-
const arrived = _react.useSyncExternalStore.call(void 0, subscribeToFilePlayer, loadedFilePlayer, noFilePlayer);
|
|
392
|
-
if (arrived) return _react.createElement.call(void 0, arrived, props);
|
|
393
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, FilePlayerFallback, { poster: props.poster, className: props.className, priority });
|
|
394
|
-
}
|
|
395
|
-
var YT_HOSTS = /* @__PURE__ */ new Set([
|
|
396
|
-
"youtube.com",
|
|
397
|
-
"www.youtube.com",
|
|
398
|
-
"m.youtube.com",
|
|
399
|
-
"youtu.be",
|
|
400
|
-
"youtube-nocookie.com",
|
|
401
|
-
"www.youtube-nocookie.com"
|
|
402
|
-
]);
|
|
403
|
-
function isYouTubeUrl(url) {
|
|
404
|
-
try {
|
|
405
|
-
return YT_HOSTS.has(new URL(url, "http://placeholder.local").hostname.toLowerCase());
|
|
406
|
-
} catch (e2) {
|
|
407
|
-
return false;
|
|
408
|
-
}
|
|
409
|
-
}
|
|
410
|
-
var YT_PATH_RE = /^\/(?:embed|v|shorts)\/([^/]+)\/?$/;
|
|
411
|
-
var BARE_YT_ID_RE = /^[A-Za-z0-9_-]{11}$/;
|
|
412
|
-
function extractYouTubeId(url) {
|
|
413
|
-
if (!url) return null;
|
|
414
|
-
if (BARE_YT_ID_RE.test(url)) return url;
|
|
415
|
-
let u;
|
|
416
|
-
try {
|
|
417
|
-
u = new URL(url, "http://placeholder.local");
|
|
418
|
-
} catch (e3) {
|
|
419
|
-
return null;
|
|
420
|
-
}
|
|
421
|
-
if (!YT_HOSTS.has(u.hostname.toLowerCase())) return null;
|
|
422
|
-
if (u.hostname.toLowerCase().endsWith("youtu.be")) {
|
|
423
|
-
return _nullishCoalesce(u.pathname.split("/").filter(Boolean)[0], () => ( null));
|
|
424
|
-
}
|
|
425
|
-
const v = u.searchParams.get("v");
|
|
426
|
-
if (v) return v;
|
|
427
|
-
const m = u.pathname.match(YT_PATH_RE);
|
|
428
|
-
return m ? m[1] : null;
|
|
429
|
-
}
|
|
430
|
-
function Video(props) {
|
|
431
|
-
const { ref: nearRef, isNear } = _chunkNTPX5GXIcjs.useNearViewport.call(void 0, );
|
|
432
|
-
const loading = _chunkXFRBEXQNcjs.useLoadingScope.call(void 0, );
|
|
433
|
-
const url = props.url;
|
|
434
|
-
const layout = _nullishCoalesce(props.layout, () => ( "native"));
|
|
435
|
-
if (loading && !url) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, VideoSkeleton, { layout, className: props.className });
|
|
436
|
-
if (!url) return null;
|
|
437
|
-
const effectiveKind = resolveKind(props, url);
|
|
438
|
-
if ((_nullishCoalesce(props.lazy, () => ( true))) && !isNear) {
|
|
439
|
-
return wrapWithLayout(
|
|
440
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
441
|
-
PosterBox,
|
|
442
|
-
{
|
|
443
|
-
ref: nearRef,
|
|
444
|
-
poster: props.poster,
|
|
445
|
-
className: props.className,
|
|
446
|
-
priority: "priority" in props ? props.priority : void 0
|
|
447
|
-
}
|
|
448
|
-
),
|
|
449
|
-
layout
|
|
450
|
-
);
|
|
451
|
-
}
|
|
452
|
-
const inner = effectiveKind === "youtube" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
453
|
-
YouTubeFacade,
|
|
454
|
-
{
|
|
455
|
-
url,
|
|
456
|
-
title: props.title,
|
|
457
|
-
priority: props.priority,
|
|
458
|
-
className: props.className,
|
|
459
|
-
minimalControls: props.minimalControls,
|
|
460
|
-
muted: props.muted,
|
|
461
|
-
..._chunkSETFUCZAcjs.pickYouTube.call(void 0, props)
|
|
462
|
-
}
|
|
463
|
-
) : "firstFrameOnly" in props && props.firstFrameOnly ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
464
|
-
FirstFramePreview,
|
|
465
|
-
{
|
|
466
|
-
url,
|
|
467
|
-
poster: props.poster,
|
|
468
|
-
fit: "fit" in props ? props.fit : void 0,
|
|
469
|
-
className: props.className
|
|
470
|
-
}
|
|
471
|
-
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
472
|
-
FilePlayer,
|
|
473
|
-
{
|
|
474
|
-
url,
|
|
475
|
-
poster: props.poster,
|
|
476
|
-
title: props.title,
|
|
477
|
-
priority: props.priority,
|
|
478
|
-
muted: props.muted,
|
|
479
|
-
..._chunkSETFUCZAcjs.pickFilePlayback.call(void 0, props),
|
|
480
|
-
className: props.className
|
|
481
|
-
}
|
|
482
|
-
);
|
|
483
|
-
return wrapWithLayout(inner, layout);
|
|
484
|
-
}
|
|
485
|
-
function resolveKind(props, url) {
|
|
486
|
-
if ("kind" in props) {
|
|
487
|
-
if (props.kind === "youtube") return "youtube";
|
|
488
|
-
if (props.kind === "file") return "file";
|
|
489
|
-
}
|
|
490
|
-
if (BARE_YT_ID_RE.test(url)) return "youtube";
|
|
491
|
-
return isYouTubeUrl(url) ? "youtube" : "file";
|
|
492
|
-
}
|
|
493
|
-
function VideoSkeleton({ layout = "native", className }) {
|
|
494
|
-
return wrapWithLayout(/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { variant: "rectangular", className: _chunk65VVJSQZcjs.cn.call(void 0, "h-full w-full", className) }), layout);
|
|
495
|
-
}
|
|
496
|
-
function wrapWithLayout(inner, layout) {
|
|
497
|
-
switch (layout) {
|
|
498
|
-
case "centered":
|
|
499
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex w-full justify-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "aspect-video w-full max-w-3xl overflow-hidden rounded-lg border border-ods-border", children: inner }) });
|
|
500
|
-
case "fill":
|
|
501
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute inset-0 h-full w-full", children: inner });
|
|
502
|
-
case "wide":
|
|
503
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "aspect-video w-full overflow-hidden rounded-lg bg-ods-bg", children: inner });
|
|
504
|
-
case "native":
|
|
505
|
-
default:
|
|
506
|
-
return inner;
|
|
507
|
-
}
|
|
508
|
-
}
|
|
509
|
-
function FirstFramePreview({
|
|
510
|
-
url,
|
|
511
|
-
poster,
|
|
512
|
-
fit,
|
|
513
|
-
className
|
|
514
|
-
}) {
|
|
515
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
516
|
-
"div",
|
|
517
|
-
{
|
|
518
|
-
"aria-hidden": true,
|
|
519
|
-
className: "h-full w-full",
|
|
520
|
-
style: { "--media-background-color": "transparent" },
|
|
521
|
-
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, FilePlayer, { url: `${url}#t=0.1`, poster, fit, muted: true, chromeless: true, className })
|
|
522
|
-
}
|
|
523
|
-
);
|
|
524
|
-
}
|
|
525
|
-
function YouTubeFacade({
|
|
526
|
-
url,
|
|
527
|
-
title = "YouTube Video",
|
|
528
|
-
priority,
|
|
529
|
-
className,
|
|
530
|
-
minimalControls,
|
|
531
|
-
muted,
|
|
532
|
-
// `...facade` rather than naming each one: this hop is invisible to the
|
|
533
|
-
// build-time forwarding proof, so a prop added to VideoYouTubeFacadeProps
|
|
534
|
-
// would reach here and silently stop before Inner.
|
|
535
|
-
...facade
|
|
536
|
-
}) {
|
|
537
|
-
const videoId = extractYouTubeId(url);
|
|
538
|
-
if (!videoId) return null;
|
|
539
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
540
|
-
YouTubeFacadeInner,
|
|
541
|
-
{
|
|
542
|
-
videoId,
|
|
543
|
-
title,
|
|
544
|
-
priority,
|
|
545
|
-
className,
|
|
546
|
-
minimalControls,
|
|
547
|
-
muted,
|
|
548
|
-
...facade
|
|
549
|
-
}
|
|
550
|
-
);
|
|
551
|
-
}
|
|
552
|
-
var YT_NOCOOKIE_ORIGIN = "https://www.youtube-nocookie.com";
|
|
553
|
-
var YT_POSTER_TIERS = ["maxresdefault", "mqdefault"];
|
|
554
|
-
var YT_STATE_ENDED = 0;
|
|
555
|
-
var YT_STATE_PLAYING = 1;
|
|
556
|
-
var YT_PLAYING_BLUR_DELAY_MS = 1e3;
|
|
557
|
-
function toYouTubeMessage(parsed) {
|
|
558
|
-
if (typeof parsed !== "object" || parsed === null) return null;
|
|
559
|
-
const event = "event" in parsed ? parsed.event : void 0;
|
|
560
|
-
const info = "info" in parsed ? parsed.info : void 0;
|
|
561
|
-
const playerState = typeof info === "object" && info !== null && "playerState" in info ? info.playerState : void 0;
|
|
562
|
-
return {
|
|
563
|
-
event: typeof event === "string" ? event : void 0,
|
|
564
|
-
info: { playerState: typeof playerState === "number" ? playerState : void 0 },
|
|
565
|
-
errorCode: typeof info === "number" ? info : void 0
|
|
566
|
-
};
|
|
567
|
-
}
|
|
568
|
-
function YouTubeFacadeInner({
|
|
569
|
-
videoId,
|
|
570
|
-
title,
|
|
571
|
-
priority,
|
|
572
|
-
className,
|
|
573
|
-
minimalControls,
|
|
574
|
-
muted,
|
|
575
|
-
autoActivate,
|
|
576
|
-
suspended
|
|
577
|
-
}) {
|
|
578
|
-
const [activated, setActivated] = _react.useState.call(void 0, Boolean(autoActivate));
|
|
579
|
-
const [prevAutoActivate, setPrevAutoActivate] = _react.useState.call(void 0, Boolean(autoActivate));
|
|
580
|
-
if (Boolean(autoActivate) !== prevAutoActivate) {
|
|
581
|
-
setPrevAutoActivate(Boolean(autoActivate));
|
|
582
|
-
if (autoActivate) setActivated(true);
|
|
583
|
-
}
|
|
584
|
-
const [failed, setFailed] = _react.useState.call(void 0, false);
|
|
585
|
-
const [reloadNonce, setReloadNonce] = _react.useState.call(void 0, 0);
|
|
586
|
-
const iframeRef = _react.useRef.call(void 0, null);
|
|
587
|
-
const retry = _react.useCallback.call(void 0, () => {
|
|
588
|
-
setFailed(false);
|
|
589
|
-
setReloadNonce((n) => n + 1);
|
|
590
|
-
}, []);
|
|
591
|
-
const embedUrl = _react.useMemo.call(void 0, () => {
|
|
592
|
-
const params = new URLSearchParams({
|
|
593
|
-
autoplay: "1",
|
|
594
|
-
rel: "0",
|
|
595
|
-
modestbranding: "1",
|
|
596
|
-
playsinline: "1",
|
|
597
|
-
enablejsapi: "1"
|
|
598
|
-
});
|
|
599
|
-
if (muted) params.set("mute", "1");
|
|
600
|
-
if (typeof window !== "undefined") {
|
|
601
|
-
params.set("origin", window.location.origin);
|
|
602
|
-
}
|
|
603
|
-
if (minimalControls) {
|
|
604
|
-
params.set("controls", "0");
|
|
605
|
-
params.set("fs", "0");
|
|
606
|
-
params.set("iv_load_policy", "3");
|
|
607
|
-
params.set("cc_load_policy", "0");
|
|
608
|
-
params.set("disablekb", "1");
|
|
609
|
-
}
|
|
610
|
-
return `${YT_NOCOOKIE_ORIGIN}/embed/${videoId}?${params.toString()}`;
|
|
611
|
-
}, [videoId, minimalControls, muted]);
|
|
612
|
-
const [posterTier, setPosterTier] = _react.useState.call(void 0, 0);
|
|
613
|
-
const [posterTierFor, setPosterTierFor] = _react.useState.call(void 0, videoId);
|
|
614
|
-
if (posterTierFor !== videoId) {
|
|
615
|
-
setPosterTierFor(videoId);
|
|
616
|
-
setPosterTier(0);
|
|
617
|
-
}
|
|
618
|
-
const posterQuality = YT_POSTER_TIERS[posterTier];
|
|
619
|
-
const posterJpg = `https://i.ytimg.com/vi/${videoId}/${posterQuality}.jpg`;
|
|
620
|
-
const posterWebp = `https://i.ytimg.com/vi_webp/${videoId}/${posterQuality}.webp`;
|
|
621
|
-
const handlePosterError = () => setPosterTier((tier) => Math.min(tier + 1, YT_POSTER_TIERS.length - 1));
|
|
622
|
-
_react.useEffect.call(void 0, () => {
|
|
623
|
-
if (!activated || failed) return void 0;
|
|
624
|
-
const iframe = iframeRef.current;
|
|
625
|
-
if (!iframe) return void 0;
|
|
626
|
-
function subscribe() {
|
|
627
|
-
_optionalChain([iframe, 'optionalAccess', _2 => _2.contentWindow, 'optionalAccess', _3 => _3.postMessage, 'call', _4 => _4('{"event":"listening"}', YT_NOCOOKIE_ORIGIN)]);
|
|
628
|
-
}
|
|
629
|
-
iframe.addEventListener("load", subscribe);
|
|
630
|
-
subscribe();
|
|
631
|
-
let blurTimer = null;
|
|
632
|
-
function handleMessage(event) {
|
|
633
|
-
if (event.origin !== YT_NOCOOKIE_ORIGIN) return;
|
|
634
|
-
if (typeof event.data !== "string") return;
|
|
635
|
-
let payload = null;
|
|
636
|
-
try {
|
|
637
|
-
payload = toYouTubeMessage(JSON.parse(event.data));
|
|
638
|
-
} catch (e4) {
|
|
639
|
-
return;
|
|
640
|
-
}
|
|
641
|
-
if (!payload) return;
|
|
642
|
-
if (payload.event === "onError") {
|
|
643
|
-
setFailed(true);
|
|
644
|
-
_chunkSETFUCZAcjs.reportPlaybackFailure.call(void 0, { kind: "youtube", src: videoId, reason: "error", errorCode: payload.errorCode });
|
|
645
|
-
return;
|
|
646
|
-
}
|
|
647
|
-
if (payload.event !== "infoDelivery") return;
|
|
648
|
-
const state = _optionalChain([payload, 'access', _5 => _5.info, 'optionalAccess', _6 => _6.playerState]);
|
|
649
|
-
if (typeof state !== "number") return;
|
|
650
|
-
if (state === YT_STATE_PLAYING) {
|
|
651
|
-
if (blurTimer !== null) return;
|
|
652
|
-
blurTimer = setTimeout(() => {
|
|
653
|
-
blurTimer = null;
|
|
654
|
-
_optionalChain([iframeRef, 'access', _7 => _7.current, 'optionalAccess', _8 => _8.blur, 'call', _9 => _9()]);
|
|
655
|
-
}, YT_PLAYING_BLUR_DELAY_MS);
|
|
656
|
-
return;
|
|
657
|
-
}
|
|
658
|
-
if (state === YT_STATE_ENDED) {
|
|
659
|
-
setActivated(false);
|
|
660
|
-
}
|
|
661
|
-
}
|
|
662
|
-
window.addEventListener("message", handleMessage);
|
|
663
|
-
return () => {
|
|
664
|
-
iframe.removeEventListener("load", subscribe);
|
|
665
|
-
window.removeEventListener("message", handleMessage);
|
|
666
|
-
if (blurTimer !== null) clearTimeout(blurTimer);
|
|
667
|
-
};
|
|
668
|
-
}, [activated, failed, reloadNonce, videoId]);
|
|
669
|
-
const prevSuspendedRef = _react.useRef.call(void 0, false);
|
|
670
|
-
_react.useEffect.call(void 0, () => {
|
|
671
|
-
const wasSuspended = prevSuspendedRef.current;
|
|
672
|
-
prevSuspendedRef.current = Boolean(suspended);
|
|
673
|
-
if (!activated || Boolean(suspended) === wasSuspended) return;
|
|
674
|
-
_optionalChain([iframeRef, 'access', _10 => _10.current, 'optionalAccess', _11 => _11.contentWindow, 'optionalAccess', _12 => _12.postMessage, 'call', _13 => _13(
|
|
675
|
-
`{"event":"command","func":"${suspended ? "pauseVideo" : "playVideo"}","args":[]}`,
|
|
676
|
-
YT_NOCOOKIE_ORIGIN
|
|
677
|
-
)]);
|
|
678
|
-
}, [suspended, activated]);
|
|
679
|
-
const wrapperClass = `relative w-full ${_nullishCoalesce(className, () => ( ""))}`;
|
|
680
|
-
const wrapperStyle = { paddingBottom: "56.25%" };
|
|
681
|
-
if (activated && failed) {
|
|
682
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: wrapperClass, style: wrapperStyle, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkSETFUCZAcjs.VideoErrorOverlay, { onRetry: retry, watchOnYouTubeId: videoId }) });
|
|
683
|
-
}
|
|
684
|
-
if (activated) {
|
|
685
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: wrapperClass, style: wrapperStyle, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
686
|
-
"iframe",
|
|
687
|
-
{
|
|
688
|
-
ref: iframeRef,
|
|
689
|
-
src: embedUrl,
|
|
690
|
-
allow: "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",
|
|
691
|
-
allowFullScreen: true,
|
|
692
|
-
referrerPolicy: "strict-origin-when-cross-origin",
|
|
693
|
-
title,
|
|
694
|
-
className: "absolute inset-0 h-full w-full rounded-lg border-0"
|
|
695
|
-
},
|
|
696
|
-
reloadNonce
|
|
697
|
-
) });
|
|
698
|
-
}
|
|
699
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: wrapperClass, style: wrapperStyle, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
700
|
-
"button",
|
|
701
|
-
{
|
|
702
|
-
type: "button",
|
|
703
|
-
"aria-label": `Play: ${title}`,
|
|
704
|
-
onClick: () => setActivated(true),
|
|
705
|
-
className: "group absolute inset-0 m-0 cursor-pointer overflow-hidden rounded-lg border border-ods-border bg-ods-card p-0",
|
|
706
|
-
children: [
|
|
707
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "picture", { children: [
|
|
708
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "source", { type: "image/webp", srcSet: posterWebp }),
|
|
709
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
710
|
-
"img",
|
|
711
|
-
{
|
|
712
|
-
src: posterJpg,
|
|
713
|
-
alt: title,
|
|
714
|
-
width: 1280,
|
|
715
|
-
height: 720,
|
|
716
|
-
loading: "lazy",
|
|
717
|
-
onError: handlePosterError,
|
|
718
|
-
..._chunkE76ONBKFcjs.fetchPriorityProp.call(void 0, priority),
|
|
719
|
-
decoding: priority ? "sync" : "async",
|
|
720
|
-
className: "absolute inset-0 h-full w-full object-cover"
|
|
721
|
-
}
|
|
722
|
-
)
|
|
723
|
-
] }),
|
|
724
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute inset-0 flex items-center justify-center bg-ods-bg bg-opacity-20 transition-opacity duration-200 group-hover:bg-opacity-30", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
725
|
-
_chunkSETFUCZAcjs.VideoPlayBadge,
|
|
726
|
-
{
|
|
727
|
-
size: "lg",
|
|
728
|
-
className: "transition-transform duration-200 group-hover:scale-110 group-hover:text-ods-accent"
|
|
729
|
-
}
|
|
730
|
-
) })
|
|
731
|
-
]
|
|
732
|
-
}
|
|
733
|
-
) });
|
|
734
|
-
}
|
|
735
|
-
|
|
736
|
-
// src/components/ui/status-badge.tsx
|
|
737
|
-
var _classvarianceauthority = require('class-variance-authority');
|
|
738
|
-
|
|
739
|
-
var statusBadgeVariants = _classvarianceauthority.cva.call(void 0, "inline-flex items-center justify-center rounded", {
|
|
740
|
-
variants: {
|
|
741
|
-
// Two densities, not one style at two paddings. Both are the ODS h5
|
|
742
|
-
// label treatment (Azeret Mono 500, uppercase, -0.02em); they differ in
|
|
743
|
-
// scale. Putting BOTH on `text-h5` is what regressed the stamp: at
|
|
744
|
-
// 14/20 on desktop every inline badge grew ~40% and its box doubled,
|
|
745
|
-
// because the caption line-height replaced `leading-none`.
|
|
746
|
-
variant: {
|
|
747
|
-
// Standalone badge — the ODS caption composite, unmodified.
|
|
748
|
-
card: "px-3 py-1.5 text-h5",
|
|
749
|
-
// Dense inline stamp. Family, weight and casing come from the SAME h5
|
|
750
|
-
// tokens as `card`; only the scale is set here, because ODS has no
|
|
751
|
-
// step below the 12/14px caption and this stamp is 10px by design.
|
|
752
|
-
button: "px-2 py-0.5 font-[family-name:var(--font-h5-family)] font-[number:var(--font-h5-weight)] uppercase tracking-[-0.02em] text-badge"
|
|
753
|
-
},
|
|
754
|
-
colorScheme: {
|
|
755
|
-
cyan: "bg-ods-flamingo-cyan text-ods-text-on-accent",
|
|
756
|
-
pink: "bg-ods-flamingo-pink text-ods-text-on-accent",
|
|
757
|
-
yellow: "border border-ods-border bg-ods-accent text-ods-text-on-accent",
|
|
758
|
-
green: "bg-ods-success text-ods-text-on-accent",
|
|
759
|
-
purple: "bg-ods-flamingo-pink text-ods-text-on-accent",
|
|
760
|
-
// Solid and soft ODS palette fills (`BADGE_PALETTE`): tokens only, no hex.
|
|
761
|
-
cyanSoft: "bg-ods-flamingo-cyan-secondary text-ods-flamingo-cyan",
|
|
762
|
-
pinkSoft: "bg-ods-flamingo-pink-secondary text-ods-flamingo-pink",
|
|
763
|
-
openYellow: "bg-ods-open-yellow text-ods-text-on-accent",
|
|
764
|
-
red: "bg-ods-error text-ods-text-on-accent",
|
|
765
|
-
success: "bg-ods-success-secondary text-ods-success",
|
|
766
|
-
error: "bg-ods-error-secondary text-ods-error",
|
|
767
|
-
warning: "bg-ods-warning-secondary text-ods-warning",
|
|
768
|
-
default: "bg-ods-bg-surface text-ods-text-primary",
|
|
769
|
-
// Border-only variants (no background) - for task type badges
|
|
770
|
-
accentBorder: "border-2 border-ods-accent bg-transparent text-ods-accent",
|
|
771
|
-
errorBorder: "border-2 border-ods-error bg-transparent text-ods-error",
|
|
772
|
-
whiteBorder: "border-2 border-ods-text-primary bg-transparent text-ods-text-primary"
|
|
773
|
-
}
|
|
774
|
-
},
|
|
775
|
-
defaultVariants: {
|
|
776
|
-
variant: "card",
|
|
777
|
-
colorScheme: "default"
|
|
778
|
-
}
|
|
779
|
-
});
|
|
780
|
-
function genBadgeBgOpacity(gen) {
|
|
781
|
-
if (gen <= 1) return 10;
|
|
782
|
-
if (gen === 2) return 7;
|
|
783
|
-
return Math.max(4 - (gen - 3), 2);
|
|
784
|
-
}
|
|
785
|
-
function generationTierFromLabel(label) {
|
|
786
|
-
const m = /(\d+)/.exec(_nullishCoalesce(label, () => ( "")));
|
|
787
|
-
const n = m ? parseInt(m[1], 10) : 1;
|
|
788
|
-
return Number.isFinite(n) && n > 0 ? n : 1;
|
|
789
|
-
}
|
|
790
|
-
function StatusBadgeSkeleton({ variant, className }) {
|
|
791
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
792
|
-
_chunkXFRBEXQNcjs.UnifiedSkeleton,
|
|
793
|
-
{
|
|
794
|
-
as: "span",
|
|
795
|
-
className: _chunk65VVJSQZcjs.cn.call(void 0,
|
|
796
|
-
statusBadgeVariants({ variant, colorScheme: null }),
|
|
797
|
-
"box-content h-[1lh] w-12 border-transparent",
|
|
798
|
-
className
|
|
799
|
-
)
|
|
800
|
-
}
|
|
801
|
-
);
|
|
802
|
-
}
|
|
803
|
-
function StatusBadge({ text, variant, colorScheme, className, singleLine, gen, style, ...props }) {
|
|
804
|
-
const loading = _chunkXFRBEXQNcjs.useLoadingScope.call(void 0, );
|
|
805
|
-
if (loading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, StatusBadgeSkeleton, { variant, className });
|
|
806
|
-
const genStyle = gen != null ? {
|
|
807
|
-
textTransform: "none",
|
|
808
|
-
color: "var(--ods-accent)",
|
|
809
|
-
backgroundColor: `color-mix(in srgb, var(--ods-accent) ${genBadgeBgOpacity(gen)}%, transparent)`
|
|
810
|
-
} : void 0;
|
|
811
|
-
const renderText = () => {
|
|
812
|
-
if (singleLine) return text;
|
|
813
|
-
if (variant === "button" && text.includes(" ")) {
|
|
814
|
-
const words = text.split(" ");
|
|
815
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex flex-col items-center justify-center gap-0 text-center", children: words.map((word, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "block", children: word }, index)) });
|
|
816
|
-
}
|
|
817
|
-
return text;
|
|
818
|
-
};
|
|
819
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
820
|
-
"span",
|
|
821
|
-
{
|
|
822
|
-
className: _chunk65VVJSQZcjs.cn.call(void 0, statusBadgeVariants({ variant, colorScheme: gen != null ? void 0 : colorScheme }), className),
|
|
823
|
-
style: genStyle ? { ...genStyle, ...style } : style,
|
|
824
|
-
...props,
|
|
825
|
-
children: renderText()
|
|
826
|
-
}
|
|
827
|
-
);
|
|
828
|
-
}
|
|
829
|
-
|
|
830
|
-
// src/components/icon-display.tsx
|
|
831
|
-
|
|
832
|
-
function EntityIcon({
|
|
833
|
-
icon,
|
|
834
|
-
size = 20,
|
|
835
|
-
className
|
|
836
|
-
}) {
|
|
837
|
-
const identity = _chunkR3JX4MXDcjs.useAgentIdentityIcon.call(void 0, _optionalChain([icon, 'optionalAccess', _14 => _14.url]) ? null : _optionalChain([icon, 'optionalAccess', _15 => _15.name]));
|
|
838
|
-
const held = _chunkXFRBEXQNcjs.useLoadingScope.call(void 0, );
|
|
839
|
-
if (held) {
|
|
840
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
841
|
-
_chunkXFRBEXQNcjs.UnifiedSkeleton,
|
|
842
|
-
{
|
|
843
|
-
as: "span",
|
|
844
|
-
width: size,
|
|
845
|
-
height: size,
|
|
846
|
-
className: _chunk65VVJSQZcjs.cn.call(void 0, "inline-block shrink-0 rounded-md", className)
|
|
847
|
-
}
|
|
848
|
-
);
|
|
849
|
-
}
|
|
850
|
-
if (!_optionalChain([icon, 'optionalAccess', _16 => _16.url]) && _optionalChain([identity, 'optionalAccess', _17 => _17.url])) {
|
|
851
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
852
|
-
_chunkE76ONBKFcjs.next_image_default,
|
|
853
|
-
{
|
|
854
|
-
src: identity.url,
|
|
855
|
-
alt: "",
|
|
856
|
-
width: size,
|
|
857
|
-
height: size,
|
|
858
|
-
className: _chunk65VVJSQZcjs.cn.call(void 0, _chunkR3JX4MXDcjs.AGENT_PICTURE_CLASS, className),
|
|
859
|
-
unoptimized: true
|
|
860
|
-
}
|
|
861
|
-
);
|
|
862
|
-
}
|
|
863
|
-
if (_optionalChain([icon, 'optionalAccess', _18 => _18.url])) {
|
|
864
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
865
|
-
_chunkE76ONBKFcjs.next_image_default,
|
|
866
|
-
{
|
|
867
|
-
src: icon.url,
|
|
868
|
-
alt: "",
|
|
869
|
-
width: size,
|
|
870
|
-
height: size,
|
|
871
|
-
className,
|
|
872
|
-
style: { objectFit: "contain" },
|
|
873
|
-
unoptimized: true
|
|
874
|
-
}
|
|
875
|
-
);
|
|
876
|
-
}
|
|
877
|
-
const Glyph = _chunk5P4TDV7Vcjs.resolveIcon.call(void 0, _nullishCoalesce(_nullishCoalesce(_optionalChain([identity, 'optionalAccess', _19 => _19.name]), () => ( _optionalChain([icon, 'optionalAccess', _20 => _20.name]))), () => ( void 0)));
|
|
878
|
-
const agentColor = identity ? { color: _chunkR3JX4MXDcjs.AGENT_GLYPH_COLOR } : {};
|
|
879
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Glyph, { size, className, ...agentColor, ..._nullishCoalesce(_optionalChain([identity, 'optionalAccess', _21 => _21.props]), () => ( {})), ..._nullishCoalesce(_optionalChain([icon, 'optionalAccess', _22 => _22.props]), () => ( {})) });
|
|
880
|
-
}
|
|
881
|
-
|
|
882
251
|
// src/utils/image-proxy.ts
|
|
883
252
|
function getProxiedImageUrl(imageUrl, options) {
|
|
884
253
|
if (!imageUrl) return null;
|
|
885
|
-
const proxyPrefix = _optionalChain([options, 'optionalAccess',
|
|
886
|
-
const skipDomains = _nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
887
|
-
const directHttps = _nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
254
|
+
const proxyPrefix = _optionalChain([options, 'optionalAccess', _2 => _2.proxyPrefix]);
|
|
255
|
+
const skipDomains = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _3 => _3.skipDomains]), () => ( []));
|
|
256
|
+
const directHttps = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _4 => _4.directHttps]), () => ( false));
|
|
888
257
|
if (proxyPrefix && imageUrl.includes(proxyPrefix)) {
|
|
889
258
|
return imageUrl;
|
|
890
259
|
}
|
|
@@ -907,7 +276,7 @@ function getProxiedImageUrl(imageUrl, options) {
|
|
|
907
276
|
function urlPathLooksLikeSvg(imageUrl) {
|
|
908
277
|
try {
|
|
909
278
|
return /\.svg$/i.test(new URL(imageUrl).pathname);
|
|
910
|
-
} catch (
|
|
279
|
+
} catch (e2) {
|
|
911
280
|
return /\.svg(\?|#|$)/i.test(imageUrl);
|
|
912
281
|
}
|
|
913
282
|
}
|
|
@@ -926,7 +295,7 @@ function skipsImageOptimizer(url) {
|
|
|
926
295
|
try {
|
|
927
296
|
const hostname = new URL(url.startsWith("//") ? `https:${url}` : url).hostname.toLowerCase();
|
|
928
297
|
return hostname === "googleusercontent.com" || hostname.endsWith(".googleusercontent.com");
|
|
929
|
-
} catch (
|
|
298
|
+
} catch (e3) {
|
|
930
299
|
return false;
|
|
931
300
|
}
|
|
932
301
|
}
|
|
@@ -935,11 +304,11 @@ function skipsImageOptimizer(url) {
|
|
|
935
304
|
function useProxiedImageUrl(url, options) {
|
|
936
305
|
const runtime = _chunkUJ7AXHRZcjs.useChatRuntime.call(void 0, );
|
|
937
306
|
if (!url) return "";
|
|
938
|
-
if (_optionalChain([options, 'optionalAccess',
|
|
307
|
+
if (_optionalChain([options, 'optionalAccess', _5 => _5.proxyImageUrl])) return options.proxyImageUrl(url);
|
|
939
308
|
return _nullishCoalesce(getProxiedImageUrl(url, {
|
|
940
|
-
proxyPrefix: _optionalChain([runtime, 'optionalAccess',
|
|
941
|
-
skipDomains: _optionalChain([runtime, 'optionalAccess',
|
|
942
|
-
directHttps: _nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
309
|
+
proxyPrefix: _optionalChain([runtime, 'optionalAccess', _6 => _6.endpoints, 'access', _7 => _7.imageProxyUrlPrefix]),
|
|
310
|
+
skipDomains: _optionalChain([runtime, 'optionalAccess', _8 => _8.endpoints, 'access', _9 => _9.imageProxySkipDomains]),
|
|
311
|
+
directHttps: _nullishCoalesce(_optionalChain([options, 'optionalAccess', _10 => _10.directHttps]), () => ( true))
|
|
943
312
|
}), () => ( url));
|
|
944
313
|
}
|
|
945
314
|
|
|
@@ -952,7 +321,7 @@ function escapeRegExp(value) {
|
|
|
952
321
|
function formatDayHead(dateString, style) {
|
|
953
322
|
const ymd = splitYmd(dateString);
|
|
954
323
|
if (!ymd) return dateString;
|
|
955
|
-
return
|
|
324
|
+
return _chunkBNUZKBNVcjs.formatDateWithTimezone.call(void 0, ymd.join("-"), null, style) || dateString;
|
|
956
325
|
}
|
|
957
326
|
function splitYmd(dateString) {
|
|
958
327
|
const head = dateString.split("T")[0];
|
|
@@ -1048,7 +417,7 @@ function getTaskTypeLabel(customItemId) {
|
|
|
1048
417
|
|
|
1049
418
|
// src/components/chat/utils/agent-status-message.ts
|
|
1050
419
|
function getStatusColorScheme(status) {
|
|
1051
|
-
const s = _optionalChain([status, 'optionalAccess',
|
|
420
|
+
const s = _optionalChain([status, 'optionalAccess', _11 => _11.toLowerCase, 'call', _12 => _12()]) || "";
|
|
1052
421
|
switch (status) {
|
|
1053
422
|
case "completed":
|
|
1054
423
|
case "success":
|
|
@@ -1078,14 +447,6 @@ function getStatusColorScheme(status) {
|
|
|
1078
447
|
return "default";
|
|
1079
448
|
}
|
|
1080
449
|
|
|
1081
|
-
// src/components/chat/utils/is-cross-origin-url.ts
|
|
1082
|
-
function isCrossOriginUrl(url) {
|
|
1083
|
-
if (!url) return false;
|
|
1084
|
-
if (url.startsWith("#") || url.startsWith("?")) return false;
|
|
1085
|
-
if (url.startsWith("/") && !url.startsWith("//")) return false;
|
|
1086
|
-
return true;
|
|
1087
|
-
}
|
|
1088
|
-
|
|
1089
450
|
// src/types/trust-center.ts
|
|
1090
451
|
var TRUST_FRAMEWORK_MONITORING = [
|
|
1091
452
|
{ state: "monitored", label: "Monitored", color: "cyan", icon: "shield-check" },
|
|
@@ -1314,10 +675,10 @@ var MEDIA_TYPE = {
|
|
|
1314
675
|
VIDEO: "video"
|
|
1315
676
|
};
|
|
1316
677
|
function isVideoMedia(media) {
|
|
1317
|
-
return _optionalChain([media, 'optionalAccess',
|
|
678
|
+
return _optionalChain([media, 'optionalAccess', _13 => _13.media_type]) === MEDIA_TYPE.VIDEO;
|
|
1318
679
|
}
|
|
1319
680
|
function isImageMedia(media) {
|
|
1320
|
-
return _optionalChain([media, 'optionalAccess',
|
|
681
|
+
return _optionalChain([media, 'optionalAccess', _14 => _14.media_type]) === MEDIA_TYPE.IMAGE;
|
|
1321
682
|
}
|
|
1322
683
|
function isPublishableMediaType(mediaType) {
|
|
1323
684
|
return mediaType === MEDIA_TYPE.VIDEO || mediaType === MEDIA_TYPE.IMAGE;
|
|
@@ -1407,9 +768,9 @@ function programMetaFormatters(fmt, opts = {}) {
|
|
|
1407
768
|
|
|
1408
769
|
// src/utils/program-meta-renderers.ts
|
|
1409
770
|
var PROGRAM_META_RENDERERS = {
|
|
1410
|
-
date:
|
|
1411
|
-
duration:
|
|
1412
|
-
webinarMeta:
|
|
771
|
+
date: _chunkBNUZKBNVcjs.formatProgramDate,
|
|
772
|
+
duration: _chunkBNUZKBNVcjs.formatDurationCompact,
|
|
773
|
+
webinarMeta: _chunkBNUZKBNVcjs.formatWebinarTimeMeta
|
|
1413
774
|
};
|
|
1414
775
|
|
|
1415
776
|
// src/components/chat/utils/chat-nav-resolution.ts
|
|
@@ -1422,7 +783,7 @@ function stripSameOriginToPath(href) {
|
|
|
1422
783
|
try {
|
|
1423
784
|
const u = new URL(href);
|
|
1424
785
|
return u.pathname + u.search + u.hash;
|
|
1425
|
-
} catch (
|
|
786
|
+
} catch (e4) {
|
|
1426
787
|
return href;
|
|
1427
788
|
}
|
|
1428
789
|
}
|
|
@@ -1459,46 +820,6 @@ function resolveExternalNavigation(args) {
|
|
|
1459
820
|
return { href: abs, open };
|
|
1460
821
|
}
|
|
1461
822
|
|
|
1462
|
-
// src/components/chat/utils/decide-new-tab.ts
|
|
1463
|
-
function decideNewTab(input) {
|
|
1464
|
-
const { href, targetPlatform, openIn, alwaysNewTab, runtimeMode, currentSource } = input;
|
|
1465
|
-
if (runtimeMode === "embed") return true;
|
|
1466
|
-
if (openIn === "new-tab") return true;
|
|
1467
|
-
if (alwaysNewTab === true) return true;
|
|
1468
|
-
if (openIn === "same-tab") return false;
|
|
1469
|
-
if (targetPlatform !== void 0 && targetPlatform !== null && currentSource) {
|
|
1470
|
-
return targetPlatform !== currentSource;
|
|
1471
|
-
}
|
|
1472
|
-
if (!href) return false;
|
|
1473
|
-
return isCrossOriginUrl(href);
|
|
1474
|
-
}
|
|
1475
|
-
|
|
1476
|
-
// src/components/chat/utils/nav-anchor-props.ts
|
|
1477
|
-
function isSameOriginAbsoluteHref(href) {
|
|
1478
|
-
if (typeof window === "undefined") return false;
|
|
1479
|
-
if (!/^https?:\/\//i.test(href)) return false;
|
|
1480
|
-
try {
|
|
1481
|
-
return new URL(href).origin === new URL(window.location.href).origin;
|
|
1482
|
-
} catch (e8) {
|
|
1483
|
-
return false;
|
|
1484
|
-
}
|
|
1485
|
-
}
|
|
1486
|
-
function computeIsNewTab(runtime, href, targetPlatform) {
|
|
1487
|
-
if (!href) return false;
|
|
1488
|
-
if (runtime.navigation.mode === "embed") return !isSameOriginAbsoluteHref(href);
|
|
1489
|
-
return _nullishCoalesce(_optionalChain([runtime, 'access', _36 => _36.navigation, 'access', _37 => _37.decideNewTab, 'optionalCall', _38 => _38({ href, targetPlatform })]), () => ( decideNewTab({
|
|
1490
|
-
href,
|
|
1491
|
-
targetPlatform,
|
|
1492
|
-
currentSource: _nullishCoalesce(runtime.source, () => ( ""))
|
|
1493
|
-
})));
|
|
1494
|
-
}
|
|
1495
|
-
function newTabAnchorAttrs(isNewTab) {
|
|
1496
|
-
return isNewTab ? { target: "_blank", rel: "noopener noreferrer" } : {};
|
|
1497
|
-
}
|
|
1498
|
-
function buildAnchorProps(href, isNewTab) {
|
|
1499
|
-
return href ? { href, ...newTabAnchorAttrs(isNewTab) } : void 0;
|
|
1500
|
-
}
|
|
1501
|
-
|
|
1502
823
|
// src/components/chat/entity-cards/entity-author-card.tsx
|
|
1503
824
|
|
|
1504
825
|
var EMPTY_AUTHOR_PLACEHOLDER = {
|
|
@@ -1551,11 +872,11 @@ function EntityMetadataAuthorCell({
|
|
|
1551
872
|
const fullName = trimmedName || "Unknown Author";
|
|
1552
873
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, AUTHOR_CELL_CLASS, className), children: [
|
|
1553
874
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1554
|
-
|
|
875
|
+
_chunkBNUZKBNVcjs.SquareAvatar,
|
|
1555
876
|
{
|
|
1556
877
|
src: author.avatar_url || "",
|
|
1557
878
|
alt: fullName,
|
|
1558
|
-
fallback:
|
|
879
|
+
fallback: _chunkBNUZKBNVcjs.nameInitials.call(void 0, fullName, ""),
|
|
1559
880
|
size: AUTHOR_AVATAR_SIZE,
|
|
1560
881
|
variant: "round"
|
|
1561
882
|
}
|
|
@@ -1610,10 +931,10 @@ function EntityAuthorCard({
|
|
|
1610
931
|
}
|
|
1611
932
|
);
|
|
1612
933
|
}
|
|
1613
|
-
const hasAuthor = !!_optionalChain([author, 'optionalAccess',
|
|
934
|
+
const hasAuthor = !!_optionalChain([author, 'optionalAccess', _15 => _15.full_name]);
|
|
1614
935
|
if (!hasAuthor && !renderEmptyAuthor) return null;
|
|
1615
936
|
const effectiveAuthor = hasAuthor ? author : EMPTY_AUTHOR_PLACEHOLDER;
|
|
1616
|
-
const formatted = publishedAt ?
|
|
937
|
+
const formatted = publishedAt ? _chunkBNUZKBNVcjs.formatDate.call(void 0, publishedAt) : "";
|
|
1617
938
|
const dateLabel = formatted === "Invalid Date" ? "" : formatted;
|
|
1618
939
|
const showDateCell = !!dateLabel;
|
|
1619
940
|
const extras = _nullishCoalesce(extraCells, () => ( []));
|
|
@@ -1639,190 +960,30 @@ function EntityAuthorCard({
|
|
|
1639
960
|
className: CELL_DIVIDER_CLASS
|
|
1640
961
|
}
|
|
1641
962
|
),
|
|
1642
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, EntityMetadataAuthorCell, { author: effectiveAuthor, roleLabel, authorHref })
|
|
1643
|
-
] });
|
|
1644
|
-
}
|
|
1645
|
-
|
|
1646
|
-
// src/components/chat/entity-cards/blog-image-placeholder.tsx
|
|
1647
|
-
|
|
1648
|
-
function BlogImagePlaceholder({ imageUrl, title, className = "" }) {
|
|
1649
|
-
if (!imageUrl) return null;
|
|
1650
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `relative block h-full w-full overflow-hidden bg-ods-bg ${className}`, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1651
|
-
_chunkE76ONBKFcjs.next_image_default,
|
|
1652
|
-
{
|
|
1653
|
-
src: imageUrl,
|
|
1654
|
-
alt: `Cover image for ${title}`,
|
|
1655
|
-
className: "object-contain",
|
|
1656
|
-
fill: true,
|
|
1657
|
-
sizes: "(max-width: 768px) 100vw, 50vw",
|
|
1658
|
-
unoptimized: true,
|
|
1659
|
-
loading: "lazy",
|
|
1660
|
-
onError: (e) => {
|
|
1661
|
-
const img = e.currentTarget;
|
|
1662
|
-
img.style.display = "none";
|
|
1663
|
-
}
|
|
1664
|
-
}
|
|
1665
|
-
) });
|
|
1666
|
-
}
|
|
1667
|
-
|
|
1668
|
-
// src/components/chat/entity-cards/content-card-frame.tsx
|
|
1669
|
-
|
|
1670
|
-
var CONTENT_CARD_FRAME_CLASS = _chunk65VVJSQZcjs.cn.call(void 0,
|
|
1671
|
-
"group isolate overflow-hidden rounded-2xl",
|
|
1672
|
-
"border border-ods-border bg-transparent",
|
|
1673
|
-
"transition-[border-color,box-shadow] duration-300 ease-out",
|
|
1674
|
-
"hover:border-ods-accent hover:shadow-lg hover:shadow-ods-accent/[0.08]"
|
|
1675
|
-
);
|
|
1676
|
-
var CONTENT_CARD_SKELETON_FRAME_CLASS = "overflow-hidden rounded-2xl border border-ods-border bg-transparent";
|
|
1677
|
-
function ContentCardFrame({ as: Tag2 = "article", className, children, ...rest }) {
|
|
1678
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Tag2, { className: _chunk65VVJSQZcjs.cn.call(void 0, CONTENT_CARD_FRAME_CLASS, Tag2 === "a" && "no-underline", className), ...rest, children });
|
|
1679
|
-
}
|
|
1680
|
-
|
|
1681
|
-
// src/components/chat/entity-cards/use-cover-image-fallback.ts
|
|
1682
|
-
|
|
1683
|
-
function useCoverImageFallback(imageUrl, placeholderUrl) {
|
|
1684
|
-
const [failed, setFailed] = _react.useState.call(void 0, () => /* @__PURE__ */ new Set());
|
|
1685
|
-
const src = imageUrl && !failed.has(imageUrl) ? imageUrl : placeholderUrl && !failed.has(placeholderUrl) ? placeholderUrl : null;
|
|
1686
|
-
const onError = _react.useCallback.call(void 0, () => {
|
|
1687
|
-
if (!src) return;
|
|
1688
|
-
setFailed((prev) => new Set(prev).add(src));
|
|
1689
|
-
}, [src]);
|
|
1690
|
-
return { src, onError };
|
|
1691
|
-
}
|
|
1692
|
-
var hideOnError = (e) => {
|
|
1693
|
-
const img = e.currentTarget;
|
|
1694
|
-
img.style.display = "none";
|
|
1695
|
-
};
|
|
1696
|
-
|
|
1697
|
-
// src/components/chat/entity-cards/entity-portrait-card.tsx
|
|
1698
|
-
|
|
1699
|
-
|
|
1700
|
-
var MIN_WIDE_RATIO = 1.3;
|
|
1701
|
-
var PORTRAIT_BODY = "flex h-full flex-col gap-6 p-6";
|
|
1702
|
-
var PORTRAIT_MEDIA = "relative flex aspect-[1200/630] w-full shrink-0 items-center justify-center overflow-hidden rounded-sm";
|
|
1703
|
-
var PORTRAIT_TITLE_ZONE = "flex h-[72px] shrink-0 flex-col justify-center gap-1.5";
|
|
1704
|
-
var PORTRAIT_TITLE_LEADING = "leading-6";
|
|
1705
|
-
var PORTRAIT_TITLE = _chunk65VVJSQZcjs.cn.call(void 0, "break-words text-ods-text-primary text-h4", PORTRAIT_TITLE_LEADING);
|
|
1706
|
-
var PORTRAIT_FOOTER = "flex h-[60px] shrink-0 items-center";
|
|
1707
|
-
var PORTRAIT_PERSON_ROW = "flex w-full min-w-0 items-center gap-3";
|
|
1708
|
-
var PORTRAIT_PERSON_TEXT = "flex min-w-0 flex-col";
|
|
1709
|
-
function EntityPortraitCard({
|
|
1710
|
-
href,
|
|
1711
|
-
target,
|
|
1712
|
-
rel,
|
|
1713
|
-
typeLabel,
|
|
1714
|
-
imageUrl,
|
|
1715
|
-
placeholderUrl,
|
|
1716
|
-
imageAlt,
|
|
1717
|
-
title,
|
|
1718
|
-
titleClassName,
|
|
1719
|
-
person,
|
|
1720
|
-
priority,
|
|
1721
|
-
className
|
|
1722
|
-
}) {
|
|
1723
|
-
const loading = _chunkXFRBEXQNcjs.useLoadingScope.call(void 0, );
|
|
1724
|
-
const { src, onError: onMediaError } = useCoverImageFallback(imageUrl, placeholderUrl);
|
|
1725
|
-
const [measured, setMeasured] = _react.useState.call(void 0, null);
|
|
1726
|
-
const isWide = _optionalChain([measured, 'optionalAccess', _40 => _40.src]) === src ? measured.isWide : null;
|
|
1727
|
-
const onMediaLoad = (e) => {
|
|
1728
|
-
const img = e.currentTarget;
|
|
1729
|
-
if (img.naturalWidth > 0 && img.naturalHeight > 0) {
|
|
1730
|
-
setMeasured({ src, isWide: img.naturalWidth / img.naturalHeight >= MIN_WIDE_RATIO });
|
|
1731
|
-
}
|
|
1732
|
-
};
|
|
1733
|
-
const edgeColor = _chunk3LW5TD54cjs.useImageEdgeColor.call(void 0, isWide === false ? src : null, "var(--color-bg-surface)");
|
|
1734
|
-
if (loading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EntityPortraitCardSkeleton, { typeLabel, className });
|
|
1735
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href, target, rel, className: _chunk65VVJSQZcjs.cn.call(void 0, "block h-full", className), children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, Card, { className: _chunk65VVJSQZcjs.cn.call(void 0, CONTENT_CARD_FRAME_CLASS, PORTRAIT_BODY), children: [
|
|
1736
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1737
|
-
"div",
|
|
1738
|
-
{
|
|
1739
|
-
className: _chunk65VVJSQZcjs.cn.call(void 0, PORTRAIT_MEDIA, "bg-ods-bg transition-colors duration-300"),
|
|
1740
|
-
style: isWide === false ? { backgroundColor: edgeColor } : void 0,
|
|
1741
|
-
children: src && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1742
|
-
_chunkE76ONBKFcjs.next_image_default,
|
|
1743
|
-
{
|
|
1744
|
-
src,
|
|
1745
|
-
alt: imageAlt,
|
|
1746
|
-
className: _chunk65VVJSQZcjs.cn.call(void 0, "h-full w-full", isWide === false ? "object-contain" : "object-cover"),
|
|
1747
|
-
sizes: "(min-width: 800px) 400px, 100vw",
|
|
1748
|
-
fill: true,
|
|
1749
|
-
priority,
|
|
1750
|
-
unoptimized: true,
|
|
1751
|
-
onLoad: onMediaLoad,
|
|
1752
|
-
onError: onMediaError
|
|
1753
|
-
}
|
|
1754
|
-
)
|
|
1755
|
-
}
|
|
1756
|
-
),
|
|
1757
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: PORTRAIT_TITLE_ZONE, children: [
|
|
1758
|
-
typeLabel && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1759
|
-
StatusBadge,
|
|
1760
|
-
{
|
|
1761
|
-
variant: "button",
|
|
1762
|
-
colorScheme: "accentBorder",
|
|
1763
|
-
singleLine: true,
|
|
1764
|
-
text: typeLabel,
|
|
1765
|
-
className: "self-start"
|
|
1766
|
-
}
|
|
1767
|
-
),
|
|
1768
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: _chunk65VVJSQZcjs.cn.call(void 0, PORTRAIT_TITLE, typeLabel ? "line-clamp-2" : "line-clamp-3", titleClassName), children: title })
|
|
1769
|
-
] }),
|
|
1770
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: PORTRAIT_FOOTER, children: person && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: PORTRAIT_PERSON_ROW, children: [
|
|
1771
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative h-12 w-12 shrink-0", children: [
|
|
1772
|
-
person.avatarUrl ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1773
|
-
_chunkE76ONBKFcjs.next_image_default,
|
|
1774
|
-
{
|
|
1775
|
-
src: person.avatarUrl,
|
|
1776
|
-
alt: person.name,
|
|
1777
|
-
className: "h-12 w-12 rounded-full border border-ods-border bg-ods-bg object-cover",
|
|
1778
|
-
width: 48,
|
|
1779
|
-
height: 48,
|
|
1780
|
-
unoptimized: true
|
|
1781
|
-
}
|
|
1782
|
-
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-12 w-12 items-center justify-center rounded-full border border-ods-border bg-ods-bg", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary text-h4", children: person.name.charAt(0).toUpperCase() }) }),
|
|
1783
|
-
person.iconOverlayUrl && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute -bottom-1 -right-1 flex h-6 w-6 items-center justify-center overflow-hidden rounded-full bg-ods-text-primary ring-1 ring-ods-bg", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1784
|
-
_chunkE76ONBKFcjs.next_image_default,
|
|
1785
|
-
{
|
|
1786
|
-
src: person.iconOverlayUrl,
|
|
1787
|
-
alt: "",
|
|
1788
|
-
className: "h-full w-full object-cover",
|
|
1789
|
-
width: 24,
|
|
1790
|
-
height: 24,
|
|
1791
|
-
unoptimized: true
|
|
1792
|
-
}
|
|
1793
|
-
) })
|
|
1794
|
-
] }),
|
|
1795
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: PORTRAIT_PERSON_TEXT, children: [
|
|
1796
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate font-bold text-ods-text-primary text-h6", children: person.name }),
|
|
1797
|
-
person.subtitle && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate text-ods-text-secondary text-h6", children: person.subtitle })
|
|
1798
|
-
] })
|
|
1799
|
-
] }) })
|
|
1800
|
-
] }) });
|
|
963
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, EntityMetadataAuthorCell, { author: effectiveAuthor, roleLabel, authorHref })
|
|
964
|
+
] });
|
|
1801
965
|
}
|
|
1802
|
-
|
|
1803
|
-
|
|
1804
|
-
|
|
1805
|
-
|
|
1806
|
-
|
|
1807
|
-
|
|
1808
|
-
|
|
1809
|
-
|
|
1810
|
-
|
|
1811
|
-
|
|
1812
|
-
|
|
1813
|
-
|
|
1814
|
-
|
|
1815
|
-
|
|
1816
|
-
|
|
1817
|
-
|
|
1818
|
-
|
|
1819
|
-
|
|
1820
|
-
|
|
1821
|
-
|
|
1822
|
-
|
|
1823
|
-
] })
|
|
1824
|
-
] }) })
|
|
1825
|
-
] }) });
|
|
966
|
+
|
|
967
|
+
// src/components/chat/entity-cards/blog-image-placeholder.tsx
|
|
968
|
+
|
|
969
|
+
function BlogImagePlaceholder({ imageUrl, title, className = "" }) {
|
|
970
|
+
if (!imageUrl) return null;
|
|
971
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `relative block h-full w-full overflow-hidden bg-ods-bg ${className}`, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
972
|
+
_chunkE76ONBKFcjs.next_image_default,
|
|
973
|
+
{
|
|
974
|
+
src: imageUrl,
|
|
975
|
+
alt: `Cover image for ${title}`,
|
|
976
|
+
className: "object-contain",
|
|
977
|
+
fill: true,
|
|
978
|
+
sizes: "(max-width: 768px) 100vw, 50vw",
|
|
979
|
+
unoptimized: true,
|
|
980
|
+
loading: "lazy",
|
|
981
|
+
onError: (e) => {
|
|
982
|
+
const img = e.currentTarget;
|
|
983
|
+
img.style.display = "none";
|
|
984
|
+
}
|
|
985
|
+
}
|
|
986
|
+
) });
|
|
1826
987
|
}
|
|
1827
988
|
|
|
1828
989
|
// src/components/features/platform-badge.tsx
|
|
@@ -1853,7 +1014,7 @@ function PlatformBadge({ platform, size = "sm", showLabel = true, className }) {
|
|
|
1853
1014
|
return null;
|
|
1854
1015
|
}
|
|
1855
1016
|
const sizes = sizeClasses[size];
|
|
1856
|
-
const colors =
|
|
1017
|
+
const colors = _chunkTUAATMUEcjs.getPlatformBrandClasses.call(void 0, platform.name);
|
|
1857
1018
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
1858
1019
|
"div",
|
|
1859
1020
|
{
|
|
@@ -1867,7 +1028,7 @@ function PlatformBadge({ platform, size = "sm", showLabel = true, className }) {
|
|
|
1867
1028
|
className
|
|
1868
1029
|
),
|
|
1869
1030
|
children: [
|
|
1870
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1031
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTUAATMUEcjs.PlatformMark, { platform: platform.name, className: sizes.icon }),
|
|
1871
1032
|
showLabel && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: sizes.text, children: platform.display_name || platform.name })
|
|
1872
1033
|
]
|
|
1873
1034
|
}
|
|
@@ -1930,7 +1091,7 @@ function AdminContentCard({
|
|
|
1930
1091
|
if (_chunkXFRBEXQNcjs.useLoadingScope.call(void 0, )) {
|
|
1931
1092
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AdminContentCardSkeleton, { className, subtitleRow, actions: actions ? actions : false });
|
|
1932
1093
|
}
|
|
1933
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "article", { className: _chunk65VVJSQZcjs.cn.call(void 0, CONTENT_CARD_FRAME_CLASS, ADMIN_CARD_FRAME, className), children: [
|
|
1094
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "article", { className: _chunk65VVJSQZcjs.cn.call(void 0, _chunkMQPTOJMFcjs.CONTENT_CARD_FRAME_CLASS, ADMIN_CARD_FRAME, className), children: [
|
|
1934
1095
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: ADMIN_CARD_COVER, style: { backgroundColor: imageBgColor }, children: displayUrl ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
1935
1096
|
!imageLoaded && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { className: "absolute inset-0 h-full rounded-none" }),
|
|
1936
1097
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -1956,8 +1117,8 @@ function AdminContentCard({
|
|
|
1956
1117
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: _chunk65VVJSQZcjs.cn.call(void 0, "line-clamp-2 break-words text-ods-text-primary text-h3", reserveRows && "min-h-[2lh]"), children: title }),
|
|
1957
1118
|
(subtitle || reserveRows && subtitleRow) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: _chunk65VVJSQZcjs.cn.call(void 0, "truncate text-ods-text-secondary text-h6", reserveRows && "min-h-[1lh]"), children: subtitle }),
|
|
1958
1119
|
(summary || reserveRows) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: _chunk65VVJSQZcjs.cn.call(void 0, "line-clamp-2 text-ods-text-secondary text-h6", reserveRows && "min-h-[2lh]"), children: summary }),
|
|
1959
|
-
(Number(_optionalChain([platforms, 'optionalAccess',
|
|
1960
|
-
_optionalChain([platforms, 'optionalAccess',
|
|
1120
|
+
(Number(_optionalChain([platforms, 'optionalAccess', _16 => _16.length])) > 0 || badges || reserveRows) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, ADMIN_CARD_BADGES, reserveRows && ADMIN_CARD_BADGES_RESERVED), children: [
|
|
1121
|
+
_optionalChain([platforms, 'optionalAccess', _17 => _17.map, 'call', _18 => _18((p) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1961
1122
|
PlatformBadge,
|
|
1962
1123
|
{
|
|
1963
1124
|
platform: { id: p.id || p.platform_id || "", name: p.name, display_name: p.display_name || p.name },
|
|
@@ -1977,7 +1138,7 @@ function AdminContentCardSkeleton({
|
|
|
1977
1138
|
actions = true,
|
|
1978
1139
|
subtitleRow = true
|
|
1979
1140
|
}) {
|
|
1980
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, CONTENT_CARD_SKELETON_FRAME_CLASS, ADMIN_CARD_FRAME, className), "aria-hidden": true, children: [
|
|
1141
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, _chunkMQPTOJMFcjs.CONTENT_CARD_SKELETON_FRAME_CLASS, ADMIN_CARD_FRAME, className), "aria-hidden": true, children: [
|
|
1981
1142
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { className: _chunk65VVJSQZcjs.cn.call(void 0, ADMIN_CARD_COVER, "rounded-none") }),
|
|
1982
1143
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: ADMIN_CARD_BODY, children: [
|
|
1983
1144
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h3", lines: 2, className: "w-full" }),
|
|
@@ -2039,7 +1200,7 @@ var SENTENCE_MARK = /([.:?!]+)(?=\s|$)/g;
|
|
|
2039
1200
|
var ONLY_MARKS = /^\s*[.:?!]+\s*$/;
|
|
2040
1201
|
function headingAccentClass(platform, tone = "accent") {
|
|
2041
1202
|
if (!platform) return "text-ods-accent";
|
|
2042
|
-
const classes =
|
|
1203
|
+
const classes = _chunkTUAATMUEcjs.getPlatformBrandClasses.call(void 0, platform);
|
|
2043
1204
|
return tone === "secondary" ? classes.secondaryText : classes.accentText;
|
|
2044
1205
|
}
|
|
2045
1206
|
function accentSentenceMarks(node, platform, tone = "accent") {
|
|
@@ -2179,130 +1340,6 @@ function SectionHeadingSkeleton({
|
|
|
2179
1340
|
);
|
|
2180
1341
|
}
|
|
2181
1342
|
|
|
2182
|
-
// src/components/features/video-bites-shared.ts
|
|
2183
|
-
var DEFAULT_VIDEO_BITES_TITLE = "Key Moments";
|
|
2184
|
-
function toStripProfile(p, fallbackSubtitle) {
|
|
2185
|
-
if (!_optionalChain([p, 'optionalAccess', _44 => _44.full_name])) return null;
|
|
2186
|
-
return {
|
|
2187
|
-
name: p.full_name,
|
|
2188
|
-
avatarUrl: _nullishCoalesce(p.avatar_url, () => ( null)),
|
|
2189
|
-
subtitle: _nullishCoalesce(_nullishCoalesce(p.job_title, () => ( fallbackSubtitle)), () => ( null))
|
|
2190
|
-
};
|
|
2191
|
-
}
|
|
2192
|
-
function sortBitesByCreatedAtDesc(a, b) {
|
|
2193
|
-
if (!a.created_at && !b.created_at) return 0;
|
|
2194
|
-
if (!a.created_at) return 1;
|
|
2195
|
-
if (!b.created_at) return -1;
|
|
2196
|
-
return new Date(b.created_at).getTime() - new Date(a.created_at).getTime();
|
|
2197
|
-
}
|
|
2198
|
-
function sortBitesByFeaturedAtDesc(a, b) {
|
|
2199
|
-
if (!a.featured_at && !b.featured_at) return 0;
|
|
2200
|
-
if (!a.featured_at) return 1;
|
|
2201
|
-
if (!b.featured_at) return -1;
|
|
2202
|
-
return new Date(b.featured_at).getTime() - new Date(a.featured_at).getTime();
|
|
2203
|
-
}
|
|
2204
|
-
function programItemToStripProfile(item) {
|
|
2205
|
-
const fromAuthor = toStripProfile(item.author);
|
|
2206
|
-
if (fromAuthor) return fromAuthor;
|
|
2207
|
-
const host = _nullishCoalesce(_optionalChain([item, 'access', _45 => _45.hosts, 'optionalAccess', _46 => _46[0]]), () => ( null));
|
|
2208
|
-
if (!_optionalChain([host, 'optionalAccess', _47 => _47.name])) return null;
|
|
2209
|
-
return toStripProfile({ full_name: host.name, avatar_url: _nullishCoalesce(host.avatar_url, () => ( null)) });
|
|
2210
|
-
}
|
|
2211
|
-
|
|
2212
|
-
// src/components/features/video-hover-preview.tsx
|
|
2213
|
-
|
|
2214
|
-
|
|
2215
|
-
function VideoHoverPreviewSurface({
|
|
2216
|
-
url,
|
|
2217
|
-
posterUrl = null,
|
|
2218
|
-
active,
|
|
2219
|
-
playerMounted,
|
|
2220
|
-
isClone = false,
|
|
2221
|
-
badge = "play",
|
|
2222
|
-
fit,
|
|
2223
|
-
posterSizes = "234px",
|
|
2224
|
-
posterInView = false,
|
|
2225
|
-
preload,
|
|
2226
|
-
hideMutedBadge,
|
|
2227
|
-
onMutedFallbackChange,
|
|
2228
|
-
previewHandleRef,
|
|
2229
|
-
mutedIntent = false,
|
|
2230
|
-
continuation = false,
|
|
2231
|
-
startTime,
|
|
2232
|
-
autoPlay = false,
|
|
2233
|
-
startMuted = false,
|
|
2234
|
-
onEnded,
|
|
2235
|
-
className
|
|
2236
|
-
}) {
|
|
2237
|
-
const previewUrl = _chunkSETFUCZAcjs.toMuxPreviewUrl.call(void 0, url);
|
|
2238
|
-
const gateControlled = playerMounted !== void 0;
|
|
2239
|
-
const rootElRef = _react.useRef.call(void 0, null);
|
|
2240
|
-
const [isNear, setIsNear] = _react.useState.call(void 0, false);
|
|
2241
|
-
_react.useEffect.call(void 0, () => {
|
|
2242
|
-
if (gateControlled) return void 0;
|
|
2243
|
-
const el = rootElRef.current;
|
|
2244
|
-
if (!el || typeof IntersectionObserver === "undefined") return void 0;
|
|
2245
|
-
const io = new IntersectionObserver((entries) => setIsNear(_nullishCoalesce(_optionalChain([entries, 'access', _48 => _48[0], 'optionalAccess', _49 => _49.isIntersecting]), () => ( false))), {
|
|
2246
|
-
rootMargin: _chunkNTPX5GXIcjs.NEAR_VIEWPORT_ROOT_MARGIN
|
|
2247
|
-
});
|
|
2248
|
-
io.observe(el);
|
|
2249
|
-
return () => io.disconnect();
|
|
2250
|
-
}, [gateControlled]);
|
|
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;
|
|
2255
|
-
const { src: posterSrc, onError: onPosterError } = useCoverImageFallback(posterUrl);
|
|
2256
|
-
const facadeSkipped = preload === "none" && !posterSrc;
|
|
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: [
|
|
2258
|
-
posterSrc ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2259
|
-
_chunkE76ONBKFcjs.next_image_default,
|
|
2260
|
-
{
|
|
2261
|
-
src: posterSrc,
|
|
2262
|
-
alt: "",
|
|
2263
|
-
fill: true,
|
|
2264
|
-
sizes: posterSizes,
|
|
2265
|
-
loading: posterInView ? "eager" : "lazy",
|
|
2266
|
-
unoptimized: true,
|
|
2267
|
-
onError: onPosterError,
|
|
2268
|
-
className: "object-cover"
|
|
2269
|
-
}
|
|
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 }),
|
|
2271
|
-
badge === "play" && !active && !continuation && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkSETFUCZAcjs.VideoPlayBadge, { className: "absolute inset-0 z-10 m-auto" }),
|
|
2272
|
-
showPlayer ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2273
|
-
"div",
|
|
2274
|
-
{
|
|
2275
|
-
className: "absolute inset-0",
|
|
2276
|
-
style: { "--media-background-color": "transparent" },
|
|
2277
|
-
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2278
|
-
Video,
|
|
2279
|
-
{
|
|
2280
|
-
kind: "file",
|
|
2281
|
-
url: previewUrl,
|
|
2282
|
-
poster: posterUrl,
|
|
2283
|
-
...continuation ? {
|
|
2284
|
-
startTime,
|
|
2285
|
-
autoPlay: autoPlay && startMuted,
|
|
2286
|
-
startMuted,
|
|
2287
|
-
autoPlayUnmuted: autoPlay && !startMuted
|
|
2288
|
-
} : { playWhenHovered: active },
|
|
2289
|
-
chromeless: true,
|
|
2290
|
-
layout: "fill",
|
|
2291
|
-
fit,
|
|
2292
|
-
preload,
|
|
2293
|
-
mutedIntent,
|
|
2294
|
-
hideMutedBadge,
|
|
2295
|
-
onMutedFallbackChange,
|
|
2296
|
-
onEnded,
|
|
2297
|
-
playerHandleRef: previewHandleRef
|
|
2298
|
-
},
|
|
2299
|
-
continuation ? "continuation" : "preview"
|
|
2300
|
-
)
|
|
2301
|
-
}
|
|
2302
|
-
) : null
|
|
2303
|
-
] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute inset-0 bg-ods-card" }) });
|
|
2304
|
-
}
|
|
2305
|
-
|
|
2306
1343
|
// src/components/shared/product-release/product-release-card-classes.ts
|
|
2307
1344
|
var RELEASE_CARD_LG_FRAME_CLASS = "flex flex-col gap-4 p-6";
|
|
2308
1345
|
var RELEASE_CARD_HERO_CLASS = "flex flex-col gap-4 content-md:flex-row content-md:gap-6";
|
|
@@ -2327,7 +1364,7 @@ var RELEASE_CARD_CELL_LABELS = ["Type", "Status", "Released"];
|
|
|
2327
1364
|
|
|
2328
1365
|
function ProductReleaseCardSkeleton({ className, size = "lg" }) {
|
|
2329
1366
|
if (size === "lg") {
|
|
2330
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, CONTENT_CARD_SKELETON_FRAME_CLASS, RELEASE_CARD_LG_FRAME_CLASS, className), "aria-hidden": true, children: [
|
|
1367
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, _chunkMQPTOJMFcjs.CONTENT_CARD_SKELETON_FRAME_CLASS, RELEASE_CARD_LG_FRAME_CLASS, className), "aria-hidden": true, children: [
|
|
2331
1368
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: RELEASE_CARD_HERO_CLASS, children: [
|
|
2332
1369
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: RELEASE_CARD_COVER_COLUMN_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { className: RELEASE_CARD_COVER_BOX_CLASS }) }),
|
|
2333
1370
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: RELEASE_CARD_TEXT_COLUMN_CLASS, children: [
|
|
@@ -2339,7 +1376,7 @@ function ProductReleaseCardSkeleton({ className, size = "lg" }) {
|
|
|
2339
1376
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: RELEASE_CARD_CHANGELOG_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { "data-loading-item": true, className: "inline-flex", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "inherit", as: "span", className: "w-24" }) }) }),
|
|
2340
1377
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: RELEASE_CARD_GRID_CLASS, children: [
|
|
2341
1378
|
RELEASE_CARD_CELL_LABELS.map((label, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, RELEASE_CARD_CELL_CLASS, RELEASE_CARD_CELL_DIVIDER_CLASS), children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: RELEASE_CARD_CELL_STACK_CLASS, children: [
|
|
2342
|
-
i === 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, StatusBadgeSkeleton, { variant: "card", className: "justify-self-start" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "inherit", as: "span", className: "w-24" }) }),
|
|
1379
|
+
i === 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkMQPTOJMFcjs.StatusBadgeSkeleton, { variant: "card", className: "justify-self-start" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "inherit", as: "span", className: "w-24" }) }),
|
|
2343
1380
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: RELEASE_CARD_CELL_LABEL_CLASS, children: label })
|
|
2344
1381
|
] }) }, label)),
|
|
2345
1382
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, EntityMetadataAuthorCellSkeleton, {})
|
|
@@ -2414,137 +1451,17 @@ function buildProductReleaseCardProps(item) {
|
|
|
2414
1451
|
job_title: release.author.job_title
|
|
2415
1452
|
} : void 0,
|
|
2416
1453
|
changelogCounts: {
|
|
2417
|
-
features: _nullishCoalesce(_optionalChain([release, 'access',
|
|
2418
|
-
fixes: _nullishCoalesce(_optionalChain([release, 'access',
|
|
2419
|
-
improvements: _nullishCoalesce(_optionalChain([release, 'access',
|
|
2420
|
-
breaking: _nullishCoalesce(_optionalChain([release, 'access',
|
|
1454
|
+
features: _nullishCoalesce(_optionalChain([release, 'access', _19 => _19.features_added, 'optionalAccess', _20 => _20.length]), () => ( 0)),
|
|
1455
|
+
fixes: _nullishCoalesce(_optionalChain([release, 'access', _21 => _21.bugs_fixed, 'optionalAccess', _22 => _22.length]), () => ( 0)),
|
|
1456
|
+
improvements: _nullishCoalesce(_optionalChain([release, 'access', _23 => _23.improvements, 'optionalAccess', _24 => _24.length]), () => ( 0)),
|
|
1457
|
+
breaking: _nullishCoalesce(_optionalChain([release, 'access', _25 => _25.breaking_changes, 'optionalAccess', _26 => _26.length]), () => ( 0))
|
|
2421
1458
|
}
|
|
2422
1459
|
};
|
|
2423
1460
|
}
|
|
2424
1461
|
|
|
2425
|
-
// src/utils/url-safety.ts
|
|
2426
|
-
var UNSAFE_URL_CHARS = /[\u0000-\u001f\u007f\u200b-\u200d\u2028\u2029\ufeff]/;
|
|
2427
|
-
var SAME_ORIGIN_PROBE = "https://_sameorigin_.invalid";
|
|
2428
|
-
function isSameOriginPath(candidate) {
|
|
2429
|
-
try {
|
|
2430
|
-
return new URL(candidate, SAME_ORIGIN_PROBE).origin === SAME_ORIGIN_PROBE;
|
|
2431
|
-
} catch (e9) {
|
|
2432
|
-
return false;
|
|
2433
|
-
}
|
|
2434
|
-
}
|
|
2435
|
-
|
|
2436
|
-
// src/components/chat/utils/compact-card-classes.ts
|
|
2437
|
-
var COMPACT_CARD_OUTER = "my-1.5 flex items-start gap-3 w-full p-2 rounded-lg border border-ods-border bg-ods-card no-underline transition-colors hover:border-ods-text-secondary/40";
|
|
2438
|
-
var COMPACT_CARD_OUTER_STATIC = "my-1.5 flex items-start gap-3 w-full p-2 rounded-lg border border-ods-border bg-ods-card no-underline cursor-default";
|
|
2439
|
-
var COMPACT_CARD_SKELETON_OUTER = "my-1.5 flex w-full items-start gap-3 rounded-lg border border-ods-border bg-ods-card p-2";
|
|
2440
|
-
var COMPACT_CARD_IMAGE_SLOT = "relative block shrink-0 self-start w-14 h-14 aspect-square overflow-hidden rounded-md bg-ods-bg";
|
|
2441
|
-
var COMPACT_CARD_SKELETON_IMAGE_SLOT = `block ${_chunkXFRBEXQNcjs.TILE_SIZE.thumb} ${_chunkXFRBEXQNcjs.MEDIA_ASPECT.square} shrink-0 self-start rounded-md`;
|
|
2442
|
-
var COMPACT_CARD_ICON_SLOT = "flex h-14 w-14 aspect-square shrink-0 self-start items-center justify-center rounded-md bg-ods-bg text-ods-accent";
|
|
2443
|
-
var COMPACT_CARD_TEXT_COL = "flex min-w-0 flex-1 flex-col gap-0.5 min-h-14";
|
|
2444
|
-
var COMPACT_CARD_TITLE_ROW = "flex items-center min-w-0 h-5";
|
|
2445
|
-
var COMPACT_CARD_META_ROW_BOX = "flex items-center min-w-0 h-4";
|
|
2446
|
-
var COMPACT_CARD_TITLE_TYPE = "text-sm font-semibold leading-5";
|
|
2447
|
-
var COMPACT_CARD_TITLE = `truncate ${COMPACT_CARD_TITLE_TYPE} text-ods-text-primary`;
|
|
2448
|
-
var COMPACT_CARD_TITLE_WRAP_ROW = "flex min-w-0 flex-wrap items-center gap-1.5";
|
|
2449
|
-
var COMPACT_CARD_TRAILING_ICON = "flex h-5 shrink-0 items-center self-start text-ods-text-secondary";
|
|
2450
|
-
var COMPACT_CARD_SUBTITLE = "truncate text-h6 text-ods-text-secondary";
|
|
2451
|
-
var COMPACT_CARD_SUMMARY = "truncate text-h6 text-ods-text-secondary/80";
|
|
2452
|
-
var COMPACT_CARD_META_ROW = "flex items-center gap-1.5 min-w-0 text-h6 text-ods-text-secondary";
|
|
2453
|
-
var COMPACT_CARD_ROW_FILLER = "\xA0";
|
|
2454
|
-
var SAFE_URL_SCHEMES = ["http:", "https:", "mailto:"];
|
|
2455
|
-
function safeHref(url) {
|
|
2456
|
-
if (!url) return null;
|
|
2457
|
-
if (UNSAFE_URL_CHARS.test(url)) return null;
|
|
2458
|
-
const trimmed = url.trim();
|
|
2459
|
-
if (!trimmed) return null;
|
|
2460
|
-
if (trimmed.startsWith("/")) return isSameOriginPath(trimmed) ? trimmed : null;
|
|
2461
|
-
if (trimmed.startsWith("#")) return trimmed;
|
|
2462
|
-
if (/^[a-z][a-z0-9+.-]*:$/i.test(trimmed)) return null;
|
|
2463
|
-
try {
|
|
2464
|
-
const parsed = new URL(trimmed, "https://_safehref_base.invalid");
|
|
2465
|
-
if (!SAFE_URL_SCHEMES.includes(parsed.protocol)) return null;
|
|
2466
|
-
if ((parsed.protocol === "https:" || parsed.protocol === "http:") && !parsed.hostname) return null;
|
|
2467
|
-
return trimmed;
|
|
2468
|
-
} catch (e10) {
|
|
2469
|
-
return null;
|
|
2470
|
-
}
|
|
2471
|
-
}
|
|
2472
|
-
|
|
2473
1462
|
// src/components/chat/entity-cards/blog-card.tsx
|
|
2474
1463
|
|
|
2475
1464
|
|
|
2476
|
-
// src/components/chat/utils/compact-card-skeleton.tsx
|
|
2477
|
-
|
|
2478
|
-
|
|
2479
|
-
var DEFAULT_ROWS = [{ width: "w-2/5" }, { width: "w-11/12" }];
|
|
2480
|
-
function CompactCardSkeleton({
|
|
2481
|
-
slot = true,
|
|
2482
|
-
slotClassName,
|
|
2483
|
-
titleWidth = "w-3/5",
|
|
2484
|
-
titleBadges = [],
|
|
2485
|
-
rows = DEFAULT_ROWS,
|
|
2486
|
-
trailingIcon = false,
|
|
2487
|
-
className
|
|
2488
|
-
}) {
|
|
2489
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunk65VVJSQZcjs.cn.call(void 0, COMPACT_CARD_SKELETON_OUTER, className), "aria-hidden": true, children: [
|
|
2490
|
-
slot && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { as: "span", className: _nullishCoalesce(slotClassName, () => ( COMPACT_CARD_SKELETON_IMAGE_SLOT)) }),
|
|
2491
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
2492
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: titleBadges.length > 0 ? COMPACT_CARD_TITLE_WRAP_ROW : COMPACT_CARD_TITLE_ROW, children: [
|
|
2493
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { as: "span", type: "inherit", className: _chunk65VVJSQZcjs.cn.call(void 0, COMPACT_CARD_TITLE_TYPE, titleWidth) }),
|
|
2494
|
-
titleBadges.map((width, i) => (
|
|
2495
|
-
// The compact cards' title badges are `StatusBadge variant="button"` stamps: their own skeleton.
|
|
2496
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, StatusBadgeSkeleton, { variant: "button", className: _chunk65VVJSQZcjs.cn.call(void 0, "shrink-0", width) }, i)
|
|
2497
|
-
))
|
|
2498
|
-
] }),
|
|
2499
|
-
rows.map(
|
|
2500
|
-
(row, i) => (_nullishCoalesce(row.lines, () => ( 1))) > 1 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { as: "span", type: "h6", lines: row.lines, className: row.width }, i) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunk65VVJSQZcjs.cn.call(void 0, COMPACT_CARD_META_ROW_BOX, row.after ? "gap-2" : void 0), children: [
|
|
2501
|
-
row.width && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { as: "span", type: "h6", className: row.width }),
|
|
2502
|
-
row.after
|
|
2503
|
-
] }, i)
|
|
2504
|
-
)
|
|
2505
|
-
] }),
|
|
2506
|
-
trailingIcon && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_TRAILING_ICON, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "h-3.5 w-3.5" }) })
|
|
2507
|
-
] });
|
|
2508
|
-
}
|
|
2509
|
-
function ActivityRowSkeleton({
|
|
2510
|
-
lead,
|
|
2511
|
-
trailingWidths,
|
|
2512
|
-
className
|
|
2513
|
-
}) {
|
|
2514
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, "flex min-w-0 items-center gap-3", className), children: [
|
|
2515
|
-
lead,
|
|
2516
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { className: "h-3 w-2/3 flex-1 rounded" }),
|
|
2517
|
-
trailingWidths.map((width, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { className: _chunk65VVJSQZcjs.cn.call(void 0, "h-3 shrink-0 rounded", width) }, i))
|
|
2518
|
-
] });
|
|
2519
|
-
}
|
|
2520
|
-
|
|
2521
|
-
// src/components/chat/entity-cards/use-entity-card-link.ts
|
|
2522
|
-
|
|
2523
|
-
function useEntityCardLink({ href, targetPlatform, target, rel }) {
|
|
2524
|
-
const runtime = _chunkUJ7AXHRZcjs.useChatRuntime.call(void 0, );
|
|
2525
|
-
return _react.useMemo.call(void 0, () => {
|
|
2526
|
-
if (target !== void 0 || rel !== void 0) {
|
|
2527
|
-
const safeRel = _nullishCoalesce(rel, () => ( (target === "_blank" ? "noopener noreferrer" : void 0)));
|
|
2528
|
-
return { target, rel: safeRel };
|
|
2529
|
-
}
|
|
2530
|
-
const newTab = runtime ? computeIsNewTab(runtime, href, _nullishCoalesce(targetPlatform, () => ( null))) : false;
|
|
2531
|
-
return newTab ? { target: "_blank", rel: "noopener noreferrer" } : { target: void 0, rel: void 0 };
|
|
2532
|
-
}, [target, rel, href, targetPlatform, runtime]);
|
|
2533
|
-
}
|
|
2534
|
-
|
|
2535
|
-
// src/components/chat/entity-cards/use-entity-card-placeholder.ts
|
|
2536
|
-
function useEntityCardPlaceholder({
|
|
2537
|
-
title,
|
|
2538
|
-
placeholderUrl,
|
|
2539
|
-
siteName = "",
|
|
2540
|
-
aspect = "wide"
|
|
2541
|
-
}) {
|
|
2542
|
-
const derived = _chunk3LW5TD54cjs.useOgPlaceholderUrl.call(void 0, { title, siteName, aspect });
|
|
2543
|
-
return placeholderUrl !== void 0 ? placeholderUrl : derived;
|
|
2544
|
-
}
|
|
2545
|
-
|
|
2546
|
-
// src/components/chat/entity-cards/blog-card.tsx
|
|
2547
|
-
|
|
2548
1465
|
var BLOG_CARD_FRAME = "flex h-full flex-col";
|
|
2549
1466
|
var BLOG_CARD_COVER = `relative ${_chunkXFRBEXQNcjs.MEDIA_ASPECT.og} w-full overflow-hidden`;
|
|
2550
1467
|
var BLOG_CARD_BODY = "flex flex-grow flex-col p-4";
|
|
@@ -2561,12 +1478,12 @@ function BlogCardSkeleton({
|
|
|
2561
1478
|
className
|
|
2562
1479
|
}) {
|
|
2563
1480
|
if (size === "portrait") {
|
|
2564
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EntityPortraitCardSkeleton, { typeLabel: showTypeBadge ? BLOG_POST_TYPE_LABEL : void 0, className });
|
|
1481
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkMQPTOJMFcjs.EntityPortraitCardSkeleton, { typeLabel: showTypeBadge ? BLOG_POST_TYPE_LABEL : void 0, className });
|
|
2565
1482
|
}
|
|
2566
1483
|
if (size === "sm") {
|
|
2567
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CompactCardSkeleton, { className });
|
|
1484
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkMQPTOJMFcjs.CompactCardSkeleton, { className });
|
|
2568
1485
|
}
|
|
2569
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "article", { className: _chunk65VVJSQZcjs.cn.call(void 0, CONTENT_CARD_SKELETON_FRAME_CLASS, BLOG_CARD_FRAME, className), "aria-hidden": true, children: [
|
|
1486
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "article", { className: _chunk65VVJSQZcjs.cn.call(void 0, _chunkMQPTOJMFcjs.CONTENT_CARD_SKELETON_FRAME_CLASS, BLOG_CARD_FRAME, className), "aria-hidden": true, children: [
|
|
2570
1487
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { className: _chunk65VVJSQZcjs.cn.call(void 0, BLOG_CARD_COVER, "rounded-none") }),
|
|
2571
1488
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: BLOG_CARD_BODY, children: [
|
|
2572
1489
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: BLOG_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h3", lines: 2, className: "w-full" }) }),
|
|
@@ -2597,24 +1514,24 @@ function BlogCard({
|
|
|
2597
1514
|
hasEmbeddedVideo = false,
|
|
2598
1515
|
priority = false
|
|
2599
1516
|
}) {
|
|
2600
|
-
const { target, rel } = useEntityCardLink({
|
|
1517
|
+
const { target, rel } = _chunkMQPTOJMFcjs.useEntityCardLink.call(void 0, {
|
|
2601
1518
|
href,
|
|
2602
1519
|
targetPlatform,
|
|
2603
1520
|
target: targetProp,
|
|
2604
1521
|
rel: relProp
|
|
2605
1522
|
});
|
|
2606
|
-
const placeholderUrl = useEntityCardPlaceholder({
|
|
1523
|
+
const placeholderUrl = _chunkMQPTOJMFcjs.useEntityCardPlaceholder.call(void 0, {
|
|
2607
1524
|
title: post.title,
|
|
2608
1525
|
placeholderUrl: placeholderUrlProp,
|
|
2609
1526
|
aspect: size === "sm" ? "square" : "wide"
|
|
2610
1527
|
});
|
|
2611
|
-
const { src: displayImage, onError: onImageError } = useCoverImageFallback(post.featured_image, placeholderUrl);
|
|
1528
|
+
const { src: displayImage, onError: onImageError } = _chunkMQPTOJMFcjs.useCoverImageFallback.call(void 0, post.featured_image, placeholderUrl);
|
|
2612
1529
|
if (_chunkXFRBEXQNcjs.useLoadingScope.call(void 0, )) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, BlogCardSkeleton, { size, showTypeBadge, className });
|
|
2613
1530
|
if (size === "sm") {
|
|
2614
|
-
const dateStr2 = post.published_at ?
|
|
2615
|
-
const firstCategory = _optionalChain([post, 'access',
|
|
2616
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href, target, rel, className: _chunk65VVJSQZcjs.cn.call(void 0, COMPACT_CARD_OUTER, className), children: [
|
|
2617
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_IMAGE_SLOT, children: displayImage ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1531
|
+
const dateStr2 = post.published_at ? _chunkBNUZKBNVcjs.formatDateWithTimezone.call(void 0, post.published_at, null, "medium") : "";
|
|
1532
|
+
const firstCategory = _optionalChain([post, 'access', _27 => _27.categories, 'optionalAccess', _28 => _28.find, 'call', _29 => _29((c) => c && c.name), 'optionalAccess', _30 => _30.name]);
|
|
1533
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href, target, rel, className: _chunk65VVJSQZcjs.cn.call(void 0, _chunkMQPTOJMFcjs.COMPACT_CARD_OUTER, className), children: [
|
|
1534
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkMQPTOJMFcjs.COMPACT_CARD_IMAGE_SLOT, children: displayImage ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2618
1535
|
_chunkE76ONBKFcjs.next_image_default,
|
|
2619
1536
|
{
|
|
2620
1537
|
src: displayImage,
|
|
@@ -2626,24 +1543,24 @@ function BlogCard({
|
|
|
2626
1543
|
onError: onImageError
|
|
2627
1544
|
}
|
|
2628
1545
|
) : null }),
|
|
2629
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
2630
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunk65VVJSQZcjs.cn.call(void 0, COMPACT_CARD_TITLE_ROW, "gap-1.5"), children: [
|
|
2631
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk65VVJSQZcjs.cn.call(void 0, COMPACT_CARD_TITLE, "font-body"), children: post.title }),
|
|
2632
|
-
hasEmbeddedVideo ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, StatusBadge, { text: "Video", variant: "button", colorScheme: "cyan", className: "shrink-0" }) : null
|
|
1546
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkMQPTOJMFcjs.COMPACT_CARD_TEXT_COL, children: [
|
|
1547
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunk65VVJSQZcjs.cn.call(void 0, _chunkMQPTOJMFcjs.COMPACT_CARD_TITLE_ROW, "gap-1.5"), children: [
|
|
1548
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk65VVJSQZcjs.cn.call(void 0, _chunkMQPTOJMFcjs.COMPACT_CARD_TITLE, "font-body"), children: post.title }),
|
|
1549
|
+
hasEmbeddedVideo ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkMQPTOJMFcjs.StatusBadge, { text: "Video", variant: "button", colorScheme: "cyan", className: "shrink-0" }) : null
|
|
2633
1550
|
] }),
|
|
2634
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_SUBTITLE, children: [
|
|
1551
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkMQPTOJMFcjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkMQPTOJMFcjs.COMPACT_CARD_SUBTITLE, children: [
|
|
2635
1552
|
dateStr2,
|
|
2636
1553
|
dateStr2 && firstCategory ? " \xB7 " : "",
|
|
2637
1554
|
_nullishCoalesce(firstCategory, () => ( "Blog Post"))
|
|
2638
1555
|
] }) }),
|
|
2639
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_SUMMARY, children: post.summary || COMPACT_CARD_ROW_FILLER }) })
|
|
1556
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkMQPTOJMFcjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkMQPTOJMFcjs.COMPACT_CARD_SUMMARY, children: post.summary || _chunkMQPTOJMFcjs.COMPACT_CARD_ROW_FILLER }) })
|
|
2640
1557
|
] })
|
|
2641
1558
|
] });
|
|
2642
1559
|
}
|
|
2643
1560
|
if (size === "portrait") {
|
|
2644
|
-
const dateStr2 = post.published_at ?
|
|
1561
|
+
const dateStr2 = post.published_at ? _chunkBNUZKBNVcjs.formatDateWithTimezone.call(void 0, post.published_at, null, "medium") : "";
|
|
2645
1562
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2646
|
-
EntityPortraitCard,
|
|
1563
|
+
_chunkMQPTOJMFcjs.EntityPortraitCard,
|
|
2647
1564
|
{
|
|
2648
1565
|
href,
|
|
2649
1566
|
target,
|
|
@@ -2662,8 +1579,8 @@ function BlogCard({
|
|
|
2662
1579
|
}
|
|
2663
1580
|
);
|
|
2664
1581
|
}
|
|
2665
|
-
const dateStr = post.published_at ?
|
|
2666
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "article", { className: _chunk65VVJSQZcjs.cn.call(void 0, CONTENT_CARD_FRAME_CLASS, BLOG_CARD_FRAME, className), role: "article", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href, target, rel, className: "flex h-full flex-col focus:outline-none", children: [
|
|
1582
|
+
const dateStr = post.published_at ? _chunkBNUZKBNVcjs.formatDateWithTimezone.call(void 0, post.published_at, null, "medium") : "";
|
|
1583
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "article", { className: _chunk65VVJSQZcjs.cn.call(void 0, _chunkMQPTOJMFcjs.CONTENT_CARD_FRAME_CLASS, BLOG_CARD_FRAME, className), role: "article", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href, target, rel, className: "flex h-full flex-col focus:outline-none", children: [
|
|
2667
1584
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, BLOG_CARD_COVER, "bg-ods-bg"), children: displayImage ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2668
1585
|
_chunkE76ONBKFcjs.next_image_default,
|
|
2669
1586
|
{
|
|
@@ -2729,301 +1646,6 @@ function BlogCard({
|
|
|
2729
1646
|
] }) });
|
|
2730
1647
|
}
|
|
2731
1648
|
|
|
2732
|
-
// src/components/chat/entity-cards/case-study-card.tsx
|
|
2733
|
-
|
|
2734
|
-
|
|
2735
|
-
var CASE_STUDY_RESULT_STACK = "flex h-full flex-col gap-5 p-6";
|
|
2736
|
-
var CASE_STUDY_RESULT_METRIC_BOX = "flex h-[112px] shrink-0 flex-col justify-start gap-1 overflow-hidden";
|
|
2737
|
-
var CASE_STUDY_RESULT_FOOTER_BOX = "mt-auto flex h-[60px] shrink-0 items-center justify-between gap-3 border-t border-ods-border pt-4";
|
|
2738
|
-
var CASE_STUDY_DEFAULT_BODY = "flex flex-col gap-6 p-6";
|
|
2739
|
-
var CASE_STUDY_COVER = `relative ${_chunkXFRBEXQNcjs.MEDIA_ASPECT.og} w-full shrink-0 overflow-hidden rounded-sm`;
|
|
2740
|
-
var CASE_STUDY_TITLE_ZONE = "flex h-[72px] shrink-0 items-center";
|
|
2741
|
-
var CASE_STUDY_PERSON_ZONE = "flex h-[60px] shrink-0 items-center";
|
|
2742
|
-
var CASE_STUDY_PERSON_ROW = "flex w-full min-w-0 items-center gap-3";
|
|
2743
|
-
var CASE_STUDY_PERSON_TEXT = "min-w-0 flex-1";
|
|
2744
|
-
var CASE_STUDY_MENU_FRAME = "group/card group flex min-w-0 flex-col gap-[var(--spacing-system-sf)] rounded-xl border border-ods-border bg-ods-bg p-[var(--spacing-system-mf)] text-ods-text-primary transition-colors hover:bg-ods-bg-hover focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ods-accent";
|
|
2745
|
-
var CASE_STUDY_MENU_SKELETON_FRAME = "flex min-w-0 flex-col gap-[var(--spacing-system-sf)] rounded-xl border border-ods-border bg-ods-bg p-[var(--spacing-system-mf)]";
|
|
2746
|
-
var CASE_STUDY_MENU_MEDIA = `relative block ${_chunkXFRBEXQNcjs.MEDIA_ASPECT.video} w-full shrink-0 overflow-hidden rounded-md`;
|
|
2747
|
-
var CASE_STUDY_MENU_MSP_ROW = "flex items-center gap-[var(--spacing-system-xsf)] text-ods-text-secondary text-h6";
|
|
2748
|
-
var MSP_ICON_PX = 20;
|
|
2749
|
-
var MSP_ICON_CLASS = `${_chunkXFRBEXQNcjs.ICON_SIZE.md} shrink-0 rounded`;
|
|
2750
|
-
var CASE_STUDY_TYPE_LABEL = "Case Study";
|
|
2751
|
-
function headlineMetric(study) {
|
|
2752
|
-
const metric = _optionalChain([study, 'access', _62 => _62.metrics, 'optionalAccess', _63 => _63[0]]);
|
|
2753
|
-
return _optionalChain([metric, 'optionalAccess', _64 => _64.value]) && metric.label ? metric : null;
|
|
2754
|
-
}
|
|
2755
|
-
function CaseStudyPersonRow({ study }) {
|
|
2756
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: CASE_STUDY_PERSON_ZONE, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: CASE_STUDY_PERSON_ROW, children: [
|
|
2757
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative h-12 w-12 shrink-0", children: [
|
|
2758
|
-
_optionalChain([study, 'access', _65 => _65.user, 'optionalAccess', _66 => _66.avatar_url]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2759
|
-
_chunkE76ONBKFcjs.next_image_default,
|
|
2760
|
-
{
|
|
2761
|
-
src: study.user.avatar_url,
|
|
2762
|
-
alt: _optionalChain([study, 'access', _67 => _67.user, 'optionalAccess', _68 => _68.full_name]) || "User",
|
|
2763
|
-
className: "h-12 w-12 rounded-full border border-ods-border bg-ods-bg object-cover",
|
|
2764
|
-
width: 48,
|
|
2765
|
-
height: 48,
|
|
2766
|
-
unoptimized: true
|
|
2767
|
-
}
|
|
2768
|
-
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-12 w-12 items-center justify-center rounded-full border border-ods-border bg-ods-bg", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary text-h4", children: (_optionalChain([study, 'access', _69 => _69.user, 'optionalAccess', _70 => _70.full_name]) || "A").charAt(0).toUpperCase() }) }),
|
|
2769
|
-
_optionalChain([study, 'access', _71 => _71.msp, 'optionalAccess', _72 => _72.icon_url]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute -bottom-1 -right-1 flex h-6 w-6 items-center justify-center overflow-hidden rounded-full bg-ods-text-primary ring-1 ring-ods-bg", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2770
|
-
_chunkE76ONBKFcjs.next_image_default,
|
|
2771
|
-
{
|
|
2772
|
-
src: study.msp.icon_url,
|
|
2773
|
-
alt: study.msp.name || "MSP",
|
|
2774
|
-
className: "h-full w-full object-cover",
|
|
2775
|
-
width: 24,
|
|
2776
|
-
height: 24,
|
|
2777
|
-
unoptimized: true
|
|
2778
|
-
}
|
|
2779
|
-
) })
|
|
2780
|
-
] }),
|
|
2781
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: CASE_STUDY_PERSON_TEXT, children: [
|
|
2782
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "truncate text-ods-text-primary text-h6", children: [
|
|
2783
|
-
_optionalChain([study, 'access', _73 => _73.user, 'optionalAccess', _74 => _74.full_name]) || "Anonymous",
|
|
2784
|
-
_optionalChain([study, 'access', _75 => _75.msp, 'optionalAccess', _76 => _76.name]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary", children: [
|
|
2785
|
-
" \u2022 ",
|
|
2786
|
-
study.msp.name
|
|
2787
|
-
] })
|
|
2788
|
-
] }),
|
|
2789
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "truncate text-ods-text-secondary text-h6", children: _optionalChain([study, 'access', _77 => _77.user, 'optionalAccess', _78 => _78.job_title]) || "\xA0" })
|
|
2790
|
-
] })
|
|
2791
|
-
] }) });
|
|
2792
|
-
}
|
|
2793
|
-
function CaseStudyPersonRowSkeleton() {
|
|
2794
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: CASE_STUDY_PERSON_ZONE, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: CASE_STUDY_PERSON_ROW, children: [
|
|
2795
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.MediaSkeleton.Avatar, { size: "md", className: "shrink-0" }),
|
|
2796
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: CASE_STUDY_PERSON_TEXT, children: [
|
|
2797
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h6", className: "w-2/3" }),
|
|
2798
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h6", className: "w-1/2" })
|
|
2799
|
-
] })
|
|
2800
|
-
] }) });
|
|
2801
|
-
}
|
|
2802
|
-
function CaseStudyCardSkeleton({
|
|
2803
|
-
size = "default",
|
|
2804
|
-
showTypeBadge = true,
|
|
2805
|
-
className
|
|
2806
|
-
}) {
|
|
2807
|
-
if (size === "portrait") {
|
|
2808
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EntityPortraitCardSkeleton, { typeLabel: showTypeBadge ? CASE_STUDY_TYPE_LABEL : void 0, className });
|
|
2809
|
-
}
|
|
2810
|
-
if (size === "result") {
|
|
2811
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, CONTENT_CARD_SKELETON_FRAME_CLASS, CASE_STUDY_RESULT_STACK, className), "aria-hidden": true, children: [
|
|
2812
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, CaseStudyPersonRowSkeleton, {}),
|
|
2813
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: CASE_STUDY_RESULT_METRIC_BOX, "data-testid": "case-study-result-skeleton-metric", children: [
|
|
2814
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h1", className: "w-1/3" }),
|
|
2815
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h4", lines: 2, className: "w-3/4" })
|
|
2816
|
-
] }),
|
|
2817
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: CASE_STUDY_RESULT_FOOTER_BOX, children: [
|
|
2818
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h6", lines: 2, className: "w-2/3" }),
|
|
2819
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "shrink-0 text-ods-accent text-h6", children: "Read" })
|
|
2820
|
-
] })
|
|
2821
|
-
] });
|
|
2822
|
-
}
|
|
2823
|
-
if (size === "menu") {
|
|
2824
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, CASE_STUDY_MENU_SKELETON_FRAME, className), "aria-hidden": true, children: [
|
|
2825
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { className: CASE_STUDY_MENU_MEDIA }),
|
|
2826
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: CASE_STUDY_MENU_MSP_ROW, children: [
|
|
2827
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { className: MSP_ICON_CLASS }),
|
|
2828
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h6", className: "w-28" })
|
|
2829
|
-
] }),
|
|
2830
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h6", lines: 2, className: "w-full" }),
|
|
2831
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h6", className: "w-3/4" }),
|
|
2832
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h6", className: "mt-auto w-28" })
|
|
2833
|
-
] });
|
|
2834
|
-
}
|
|
2835
|
-
if (size === "sm") {
|
|
2836
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CompactCardSkeleton, { rows: [{ width: "w-1/2" }, { width: "w-11/12" }], className });
|
|
2837
|
-
}
|
|
2838
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, "block h-full", className), "aria-hidden": true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, Card, { className: _chunk65VVJSQZcjs.cn.call(void 0, CONTENT_CARD_SKELETON_FRAME_CLASS, CASE_STUDY_DEFAULT_BODY), children: [
|
|
2839
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { className: _chunk65VVJSQZcjs.cn.call(void 0, CASE_STUDY_COVER, "rounded-sm") }),
|
|
2840
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: CASE_STUDY_TITLE_ZONE, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h4", lines: 3, className: "w-full" }) }),
|
|
2841
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, CaseStudyPersonRowSkeleton, {})
|
|
2842
|
-
] }) });
|
|
2843
|
-
}
|
|
2844
|
-
function caseStudyHighlight(study) {
|
|
2845
|
-
if (study.highlight_video_url) {
|
|
2846
|
-
return { url: study.highlight_video_url, posterUrl: _nullishCoalesce(study.highlight_video_thumbnail, () => ( null)) };
|
|
2847
|
-
}
|
|
2848
|
-
const bite = (_nullishCoalesce(study.video_bites, () => ( []))).filter((candidate) => candidate.featured === true && candidate.url).sort(sortBitesByFeaturedAtDesc)[0];
|
|
2849
|
-
return bite ? { url: bite.url, posterUrl: _nullishCoalesce(bite.thumbnail_url, () => ( null)) } : null;
|
|
2850
|
-
}
|
|
2851
|
-
function CaseStudyCard(props) {
|
|
2852
|
-
const inScope = _chunkXFRBEXQNcjs.useLoadingScope.call(void 0, );
|
|
2853
|
-
if (inScope || props.loading) {
|
|
2854
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CaseStudyCardSkeleton, { size: props.size, showTypeBadge: props.showTypeBadge, className: props.className });
|
|
2855
|
-
}
|
|
2856
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, LoadedCaseStudyCard, { ...props });
|
|
2857
|
-
}
|
|
2858
|
-
function LoadedCaseStudyCard({
|
|
2859
|
-
study,
|
|
2860
|
-
href,
|
|
2861
|
-
target: targetProp,
|
|
2862
|
-
rel: relProp,
|
|
2863
|
-
targetPlatform,
|
|
2864
|
-
placeholderUrl: placeholderUrlProp,
|
|
2865
|
-
size = "default",
|
|
2866
|
-
showTypeBadge = true,
|
|
2867
|
-
accentClassName = "text-ods-accent",
|
|
2868
|
-
mediaMounted,
|
|
2869
|
-
onNavigate,
|
|
2870
|
-
className
|
|
2871
|
-
}) {
|
|
2872
|
-
const [hovered, setHovered] = _react.useState.call(void 0, false);
|
|
2873
|
-
const { target, rel } = useEntityCardLink({
|
|
2874
|
-
href,
|
|
2875
|
-
targetPlatform,
|
|
2876
|
-
target: targetProp,
|
|
2877
|
-
rel: relProp
|
|
2878
|
-
});
|
|
2879
|
-
const placeholderUrl = useEntityCardPlaceholder({
|
|
2880
|
-
title: study.title,
|
|
2881
|
-
placeholderUrl: placeholderUrlProp,
|
|
2882
|
-
aspect: size === "sm" ? "square" : "wide"
|
|
2883
|
-
});
|
|
2884
|
-
const coverImage = study.featured_image || placeholderUrl || null;
|
|
2885
|
-
if (size === "sm") {
|
|
2886
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href, target, rel, className: _chunk65VVJSQZcjs.cn.call(void 0, COMPACT_CARD_OUTER, className), children: [
|
|
2887
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_IMAGE_SLOT, children: coverImage ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2888
|
-
_chunkE76ONBKFcjs.next_image_default,
|
|
2889
|
-
{
|
|
2890
|
-
src: coverImage,
|
|
2891
|
-
alt: `${_optionalChain([study, 'access', _79 => _79.msp, 'optionalAccess', _80 => _80.name]) || study.title} cover`,
|
|
2892
|
-
className: "object-contain",
|
|
2893
|
-
fill: true,
|
|
2894
|
-
sizes: "56px",
|
|
2895
|
-
unoptimized: true,
|
|
2896
|
-
onError: hideOnError
|
|
2897
|
-
}
|
|
2898
|
-
) : null }),
|
|
2899
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
2900
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_TITLE, children: study.title }) }),
|
|
2901
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_SUBTITLE, children: [_optionalChain([study, 'access', _81 => _81.msp, 'optionalAccess', _82 => _82.name]), _optionalChain([study, 'access', _83 => _83.user, 'optionalAccess', _84 => _84.full_name])].filter(Boolean).join(" \xB7 ") || "Case study" }) }),
|
|
2902
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_SUMMARY, children: study.summary || COMPACT_CARD_ROW_FILLER }) })
|
|
2903
|
-
] })
|
|
2904
|
-
] });
|
|
2905
|
-
}
|
|
2906
|
-
if (size === "menu") {
|
|
2907
|
-
const preview = caseStudyHighlight(study);
|
|
2908
|
-
const videoUrl = _nullishCoalesce(_optionalChain([preview, 'optionalAccess', _85 => _85.url]), () => ( null));
|
|
2909
|
-
const hasAnyVideo = !!(videoUrl || study.main_video_url);
|
|
2910
|
-
const poster = study.main_video_thumbnail || study.featured_image || _optionalChain([preview, 'optionalAccess', _86 => _86.posterUrl]) || null;
|
|
2911
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
2912
|
-
_chunkV45KLJQPcjs.next_link_default,
|
|
2913
|
-
{
|
|
2914
|
-
href,
|
|
2915
|
-
target,
|
|
2916
|
-
rel,
|
|
2917
|
-
onClick: onNavigate,
|
|
2918
|
-
onPointerEnter: () => setHovered(true),
|
|
2919
|
-
onPointerLeave: () => setHovered(false),
|
|
2920
|
-
onFocus: () => setHovered(true),
|
|
2921
|
-
onBlur: () => setHovered(false),
|
|
2922
|
-
className: _chunk65VVJSQZcjs.cn.call(void 0, CASE_STUDY_MENU_FRAME, className),
|
|
2923
|
-
children: [
|
|
2924
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk65VVJSQZcjs.cn.call(void 0, "pointer-events-none bg-ods-bg", CASE_STUDY_MENU_MEDIA), children: videoUrl ? (
|
|
2925
|
-
// The shared hover surface, filled the way the walkthrough card fills
|
|
2926
|
-
// its own 16:9 slot (`cover`): an upright cut is cropped to the slot,
|
|
2927
|
-
// never letterboxed. Sound on hover, muted when the browser blocks it.
|
|
2928
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2929
|
-
VideoHoverPreviewSurface,
|
|
2930
|
-
{
|
|
2931
|
-
url: videoUrl,
|
|
2932
|
-
posterUrl: poster,
|
|
2933
|
-
active: hovered,
|
|
2934
|
-
playerMounted: mediaMounted,
|
|
2935
|
-
fit: "cover",
|
|
2936
|
-
posterSizes: "360px"
|
|
2937
|
-
}
|
|
2938
|
-
)
|
|
2939
|
-
) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
2940
|
-
(_nullishCoalesce(poster, () => ( placeholderUrl))) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2941
|
-
_chunkE76ONBKFcjs.next_image_default,
|
|
2942
|
-
{
|
|
2943
|
-
src: _nullishCoalesce(_nullishCoalesce(poster, () => ( placeholderUrl)), () => ( "")),
|
|
2944
|
-
alt: "",
|
|
2945
|
-
className: "object-cover",
|
|
2946
|
-
fill: true,
|
|
2947
|
-
sizes: "360px",
|
|
2948
|
-
unoptimized: true,
|
|
2949
|
-
onError: hideOnError
|
|
2950
|
-
}
|
|
2951
|
-
),
|
|
2952
|
-
hasAnyVideo && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkSETFUCZAcjs.CardHoverPlay, { size: "md" })
|
|
2953
|
-
] }) }),
|
|
2954
|
-
_optionalChain([study, 'access', _87 => _87.msp, 'optionalAccess', _88 => _88.name]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: CASE_STUDY_MENU_MSP_ROW, children: [
|
|
2955
|
-
study.msp.icon_url && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2956
|
-
EntityIcon,
|
|
2957
|
-
{
|
|
2958
|
-
icon: { url: study.msp.icon_url },
|
|
2959
|
-
size: MSP_ICON_PX,
|
|
2960
|
-
className: _chunk65VVJSQZcjs.cn.call(void 0, MSP_ICON_CLASS, "object-contain")
|
|
2961
|
-
}
|
|
2962
|
-
),
|
|
2963
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-w-0 truncate", children: study.msp.name })
|
|
2964
|
-
] }),
|
|
2965
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "line-clamp-2 text-h6", children: study.title }),
|
|
2966
|
-
_optionalChain([study, 'access', _89 => _89.user, 'optionalAccess', _90 => _90.full_name]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate text-ods-text-muted text-h6", children: study.user.job_title ? `${study.user.full_name}, ${study.user.job_title}` : study.user.full_name }),
|
|
2967
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "mt-auto text-ods-accent text-h6", children: hasAnyVideo ? "Watch the story" : "Read the story" })
|
|
2968
|
-
]
|
|
2969
|
-
}
|
|
2970
|
-
);
|
|
2971
|
-
}
|
|
2972
|
-
if (size === "result") {
|
|
2973
|
-
const metric = headlineMetric(study);
|
|
2974
|
-
if (!metric) return null;
|
|
2975
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href, target, rel, className: _chunk65VVJSQZcjs.cn.call(void 0, "block h-full", className), children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, Card, { className: _chunk65VVJSQZcjs.cn.call(void 0, CONTENT_CARD_FRAME_CLASS, CASE_STUDY_RESULT_STACK), children: [
|
|
2976
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, CaseStudyPersonRow, { study }),
|
|
2977
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: CASE_STUDY_RESULT_METRIC_BOX, "data-testid": "case-study-metric", children: [
|
|
2978
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk65VVJSQZcjs.cn.call(void 0, "truncate text-h1", accentClassName), children: metric.value }),
|
|
2979
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "line-clamp-2 text-ods-text-secondary text-h4", children: metric.label })
|
|
2980
|
-
] }),
|
|
2981
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: CASE_STUDY_RESULT_FOOTER_BOX, children: [
|
|
2982
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "line-clamp-2 min-w-0 text-ods-text-secondary text-h6", children: study.title }),
|
|
2983
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk65VVJSQZcjs.cn.call(void 0, "shrink-0 text-h6", accentClassName), children: "Read" })
|
|
2984
|
-
] })
|
|
2985
|
-
] }) });
|
|
2986
|
-
}
|
|
2987
|
-
if (size === "portrait") {
|
|
2988
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2989
|
-
EntityPortraitCard,
|
|
2990
|
-
{
|
|
2991
|
-
href,
|
|
2992
|
-
target,
|
|
2993
|
-
rel,
|
|
2994
|
-
typeLabel: showTypeBadge ? CASE_STUDY_TYPE_LABEL : void 0,
|
|
2995
|
-
imageUrl: study.featured_image,
|
|
2996
|
-
placeholderUrl,
|
|
2997
|
-
imageAlt: _optionalChain([study, 'access', _91 => _91.msp, 'optionalAccess', _92 => _92.name]) || study.title,
|
|
2998
|
-
title: study.title,
|
|
2999
|
-
person: {
|
|
3000
|
-
name: _optionalChain([study, 'access', _93 => _93.user, 'optionalAccess', _94 => _94.full_name]) || "Anonymous",
|
|
3001
|
-
avatarUrl: _optionalChain([study, 'access', _95 => _95.user, 'optionalAccess', _96 => _96.avatar_url]),
|
|
3002
|
-
subtitle: _nullishCoalesce(_optionalChain([study, 'access', _97 => _97.msp, 'optionalAccess', _98 => _98.name]), () => ( null)),
|
|
3003
|
-
iconOverlayUrl: _nullishCoalesce(_optionalChain([study, 'access', _99 => _99.msp, 'optionalAccess', _100 => _100.icon_url]), () => ( null))
|
|
3004
|
-
},
|
|
3005
|
-
className
|
|
3006
|
-
}
|
|
3007
|
-
);
|
|
3008
|
-
}
|
|
3009
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href, target, rel, className: _chunk65VVJSQZcjs.cn.call(void 0, "block h-full", className), children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, Card, { className: _chunk65VVJSQZcjs.cn.call(void 0, CONTENT_CARD_FRAME_CLASS, CASE_STUDY_DEFAULT_BODY), children: [
|
|
3010
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, CASE_STUDY_COVER, "bg-ods-bg"), children: coverImage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3011
|
-
_chunkE76ONBKFcjs.next_image_default,
|
|
3012
|
-
{
|
|
3013
|
-
src: coverImage,
|
|
3014
|
-
alt: _optionalChain([study, 'access', _101 => _101.msp, 'optionalAccess', _102 => _102.name]) || study.title,
|
|
3015
|
-
className: "h-full w-full object-cover",
|
|
3016
|
-
sizes: "(min-width: 1545px) 515px, (min-width: 1280px) 33vw, (min-width: 800px) 50vw, 100vw",
|
|
3017
|
-
fill: true,
|
|
3018
|
-
unoptimized: true,
|
|
3019
|
-
onError: hideOnError
|
|
3020
|
-
}
|
|
3021
|
-
) }),
|
|
3022
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: CASE_STUDY_TITLE_ZONE, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "line-clamp-3 break-words text-ods-text-primary text-h4", children: study.title }) }),
|
|
3023
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, CaseStudyPersonRow, { study })
|
|
3024
|
-
] }) });
|
|
3025
|
-
}
|
|
3026
|
-
|
|
3027
1649
|
// src/components/chat/entity-cards/customer-interview-card.tsx
|
|
3028
1650
|
|
|
3029
1651
|
|
|
@@ -3039,12 +1661,12 @@ function CustomerInterviewCardSkeleton({
|
|
|
3039
1661
|
className
|
|
3040
1662
|
}) {
|
|
3041
1663
|
if (size === "portrait") {
|
|
3042
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EntityPortraitCardSkeleton, { typeLabel: showTypeBadge ? INTERVIEW_TYPE_LABEL : void 0, className });
|
|
1664
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkMQPTOJMFcjs.EntityPortraitCardSkeleton, { typeLabel: showTypeBadge ? INTERVIEW_TYPE_LABEL : void 0, className });
|
|
3043
1665
|
}
|
|
3044
1666
|
if (size === "sm") {
|
|
3045
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CompactCardSkeleton, { className });
|
|
1667
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkMQPTOJMFcjs.CompactCardSkeleton, { className });
|
|
3046
1668
|
}
|
|
3047
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, "block h-full", className), "aria-hidden": true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, Card, { className: _chunk65VVJSQZcjs.cn.call(void 0, CONTENT_CARD_SKELETON_FRAME_CLASS, INTERVIEW_CARD_BODY), children: [
|
|
1669
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, "block h-full", className), "aria-hidden": true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkMQPTOJMFcjs.Card, { className: _chunk65VVJSQZcjs.cn.call(void 0, _chunkMQPTOJMFcjs.CONTENT_CARD_SKELETON_FRAME_CLASS, INTERVIEW_CARD_BODY), children: [
|
|
3048
1670
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { className: _chunk65VVJSQZcjs.cn.call(void 0, INTERVIEW_CARD_COVER, "rounded-sm") }),
|
|
3049
1671
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h3", lines: 2, className: "w-full" }) }),
|
|
3050
1672
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h6", lines: 3, className: "w-full" }) }),
|
|
@@ -3068,13 +1690,13 @@ function CustomerInterviewCard({
|
|
|
3068
1690
|
showTypeBadge = true,
|
|
3069
1691
|
className
|
|
3070
1692
|
}) {
|
|
3071
|
-
const { target, rel } = useEntityCardLink({
|
|
1693
|
+
const { target, rel } = _chunkMQPTOJMFcjs.useEntityCardLink.call(void 0, {
|
|
3072
1694
|
href,
|
|
3073
1695
|
targetPlatform,
|
|
3074
1696
|
target: targetProp,
|
|
3075
1697
|
rel: relProp
|
|
3076
1698
|
});
|
|
3077
|
-
const placeholderUrl = useEntityCardPlaceholder({
|
|
1699
|
+
const placeholderUrl = _chunkMQPTOJMFcjs.useEntityCardPlaceholder.call(void 0, {
|
|
3078
1700
|
title: interview.title,
|
|
3079
1701
|
placeholderUrl: placeholderUrlProp,
|
|
3080
1702
|
aspect: size === "sm" ? "square" : "wide"
|
|
@@ -3084,8 +1706,8 @@ function CustomerInterviewCard({
|
|
|
3084
1706
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CustomerInterviewCardSkeleton, { size, showTypeBadge, className });
|
|
3085
1707
|
}
|
|
3086
1708
|
if (size === "sm") {
|
|
3087
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href, target, rel, className: _chunk65VVJSQZcjs.cn.call(void 0, COMPACT_CARD_OUTER, className), children: [
|
|
3088
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_IMAGE_SLOT, children: [
|
|
1709
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href, target, rel, className: _chunk65VVJSQZcjs.cn.call(void 0, _chunkMQPTOJMFcjs.COMPACT_CARD_OUTER, className), children: [
|
|
1710
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkMQPTOJMFcjs.COMPACT_CARD_IMAGE_SLOT, children: [
|
|
3089
1711
|
thumbnailUrl ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3090
1712
|
_chunkE76ONBKFcjs.next_image_default,
|
|
3091
1713
|
{
|
|
@@ -3095,21 +1717,21 @@ function CustomerInterviewCard({
|
|
|
3095
1717
|
fill: true,
|
|
3096
1718
|
sizes: "56px",
|
|
3097
1719
|
unoptimized: true,
|
|
3098
|
-
onError: hideOnError
|
|
1720
|
+
onError: _chunkMQPTOJMFcjs.hideOnError
|
|
3099
1721
|
}
|
|
3100
1722
|
) : null,
|
|
3101
1723
|
interview.main_video_url ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "absolute inset-0 flex items-center justify-center bg-black/30", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Video, { className: "h-4 w-4 text-ods-text-on-dark" }) }) : null
|
|
3102
1724
|
] }),
|
|
3103
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
3104
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_TITLE, children: interview.title }) }),
|
|
3105
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_SUBTITLE, children: [_optionalChain([interview, 'access',
|
|
3106
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_SUMMARY, children: interview.video_summary || COMPACT_CARD_ROW_FILLER }) })
|
|
1725
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkMQPTOJMFcjs.COMPACT_CARD_TEXT_COL, children: [
|
|
1726
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkMQPTOJMFcjs.COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkMQPTOJMFcjs.COMPACT_CARD_TITLE, children: interview.title }) }),
|
|
1727
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkMQPTOJMFcjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkMQPTOJMFcjs.COMPACT_CARD_SUBTITLE, children: [_optionalChain([interview, 'access', _31 => _31.user, 'optionalAccess', _32 => _32.full_name]), _optionalChain([interview, 'access', _33 => _33.msp, 'optionalAccess', _34 => _34.name])].filter(Boolean).join(" \xB7 ") || "Customer interview" }) }),
|
|
1728
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkMQPTOJMFcjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkMQPTOJMFcjs.COMPACT_CARD_SUMMARY, children: interview.video_summary || _chunkMQPTOJMFcjs.COMPACT_CARD_ROW_FILLER }) })
|
|
3107
1729
|
] })
|
|
3108
1730
|
] });
|
|
3109
1731
|
}
|
|
3110
1732
|
if (size === "portrait") {
|
|
3111
1733
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3112
|
-
EntityPortraitCard,
|
|
1734
|
+
_chunkMQPTOJMFcjs.EntityPortraitCard,
|
|
3113
1735
|
{
|
|
3114
1736
|
href,
|
|
3115
1737
|
target,
|
|
@@ -3120,16 +1742,16 @@ function CustomerInterviewCard({
|
|
|
3120
1742
|
imageAlt: interview.title,
|
|
3121
1743
|
title: interview.title,
|
|
3122
1744
|
person: {
|
|
3123
|
-
name: _optionalChain([interview, 'access',
|
|
3124
|
-
avatarUrl: _optionalChain([interview, 'access',
|
|
3125
|
-
subtitle: _nullishCoalesce(_optionalChain([interview, 'access',
|
|
3126
|
-
iconOverlayUrl: _nullishCoalesce(_optionalChain([interview, 'access',
|
|
1745
|
+
name: _optionalChain([interview, 'access', _35 => _35.user, 'optionalAccess', _36 => _36.full_name]) || "Customer",
|
|
1746
|
+
avatarUrl: _optionalChain([interview, 'access', _37 => _37.user, 'optionalAccess', _38 => _38.avatar_url]),
|
|
1747
|
+
subtitle: _nullishCoalesce(_optionalChain([interview, 'access', _39 => _39.msp, 'optionalAccess', _40 => _40.name]), () => ( null)),
|
|
1748
|
+
iconOverlayUrl: _nullishCoalesce(_optionalChain([interview, 'access', _41 => _41.msp, 'optionalAccess', _42 => _42.icon_url]), () => ( null))
|
|
3127
1749
|
},
|
|
3128
1750
|
className
|
|
3129
1751
|
}
|
|
3130
1752
|
);
|
|
3131
1753
|
}
|
|
3132
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href, target, rel, className: _chunk65VVJSQZcjs.cn.call(void 0, "block h-full", className), children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, Card, { className: _chunk65VVJSQZcjs.cn.call(void 0, CONTENT_CARD_FRAME_CLASS, INTERVIEW_CARD_BODY), children: [
|
|
1754
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href, target, rel, className: _chunk65VVJSQZcjs.cn.call(void 0, "block h-full", className), children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkMQPTOJMFcjs.Card, { className: _chunk65VVJSQZcjs.cn.call(void 0, _chunkMQPTOJMFcjs.CONTENT_CARD_FRAME_CLASS, INTERVIEW_CARD_BODY), children: [
|
|
3133
1755
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, INTERVIEW_CARD_COVER, "bg-ods-bg"), children: thumbnailUrl ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
3134
1756
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3135
1757
|
_chunkE76ONBKFcjs.next_image_default,
|
|
@@ -3140,7 +1762,7 @@ function CustomerInterviewCard({
|
|
|
3140
1762
|
fill: true,
|
|
3141
1763
|
sizes: "(max-width: 768px) 100vw, 50vw",
|
|
3142
1764
|
unoptimized: true,
|
|
3143
|
-
onError: hideOnError
|
|
1765
|
+
onError: _chunkMQPTOJMFcjs.hideOnError
|
|
3144
1766
|
}
|
|
3145
1767
|
),
|
|
3146
1768
|
interview.main_video_url && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute inset-0 flex items-center justify-center bg-black/40", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-16 w-16 items-center justify-center rounded-full bg-ods-accent/90", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Video, { className: "h-8 w-8 text-ods-text-on-accent" }) }) })
|
|
@@ -3149,18 +1771,18 @@ function CustomerInterviewCard({
|
|
|
3149
1771
|
interview.video_summary && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "line-clamp-3 text-ods-text-secondary text-h6", children: interview.video_summary }) }),
|
|
3150
1772
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: INTERVIEW_CARD_PERSON_ZONE, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: INTERVIEW_CARD_PERSON_ROW, children: [
|
|
3151
1773
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative h-12 w-12 shrink-0", children: [
|
|
3152
|
-
_optionalChain([interview, 'access',
|
|
1774
|
+
_optionalChain([interview, 'access', _43 => _43.user, 'optionalAccess', _44 => _44.avatar_url]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3153
1775
|
_chunkE76ONBKFcjs.next_image_default,
|
|
3154
1776
|
{
|
|
3155
1777
|
src: interview.user.avatar_url,
|
|
3156
|
-
alt: _optionalChain([interview, 'access',
|
|
1778
|
+
alt: _optionalChain([interview, 'access', _45 => _45.user, 'optionalAccess', _46 => _46.full_name]) || "Customer",
|
|
3157
1779
|
className: "h-12 w-12 rounded-full border border-ods-border bg-ods-bg object-cover",
|
|
3158
1780
|
width: 48,
|
|
3159
1781
|
height: 48,
|
|
3160
1782
|
unoptimized: true
|
|
3161
1783
|
}
|
|
3162
|
-
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-12 w-12 items-center justify-center rounded-full border border-ods-border bg-ods-bg", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary text-h4", children: (_optionalChain([interview, 'access',
|
|
3163
|
-
_optionalChain([interview, 'access',
|
|
1784
|
+
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-12 w-12 items-center justify-center rounded-full border border-ods-border bg-ods-bg", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary text-h4", children: (_optionalChain([interview, 'access', _47 => _47.user, 'optionalAccess', _48 => _48.full_name]) || "A").charAt(0).toUpperCase() }) }),
|
|
1785
|
+
_optionalChain([interview, 'access', _49 => _49.msp, 'optionalAccess', _50 => _50.icon_url]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute -bottom-1 -right-1 flex h-6 w-6 items-center justify-center overflow-hidden rounded-full bg-ods-text-primary ring-1 ring-ods-bg", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3164
1786
|
_chunkE76ONBKFcjs.next_image_default,
|
|
3165
1787
|
{
|
|
3166
1788
|
src: interview.msp.icon_url,
|
|
@@ -3174,13 +1796,13 @@ function CustomerInterviewCard({
|
|
|
3174
1796
|
] }),
|
|
3175
1797
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: INTERVIEW_CARD_PERSON_TEXT, children: [
|
|
3176
1798
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "truncate text-ods-text-primary text-h6", children: [
|
|
3177
|
-
_optionalChain([interview, 'access',
|
|
3178
|
-
_optionalChain([interview, 'access',
|
|
1799
|
+
_optionalChain([interview, 'access', _51 => _51.user, 'optionalAccess', _52 => _52.full_name]) || "Anonymous",
|
|
1800
|
+
_optionalChain([interview, 'access', _53 => _53.msp, 'optionalAccess', _54 => _54.name]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary", children: [
|
|
3179
1801
|
" \u2022 ",
|
|
3180
1802
|
interview.msp.name
|
|
3181
1803
|
] })
|
|
3182
1804
|
] }),
|
|
3183
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "truncate text-ods-text-secondary text-h6", children: _optionalChain([interview, 'access',
|
|
1805
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "truncate text-ods-text-secondary text-h6", children: _optionalChain([interview, 'access', _55 => _55.user, 'optionalAccess', _56 => _56.job_title]) || " " })
|
|
3184
1806
|
] })
|
|
3185
1807
|
] }) })
|
|
3186
1808
|
] }) });
|
|
@@ -3189,7 +1811,7 @@ function CustomerInterviewCard({
|
|
|
3189
1811
|
// src/components/chat/types/entities/investor-update.ts
|
|
3190
1812
|
function formatInvestorUpdatePeriod(start, end, options) {
|
|
3191
1813
|
if (!start && !end) return "";
|
|
3192
|
-
const fmt = (d) =>
|
|
1814
|
+
const fmt = (d) => _chunkBNUZKBNVcjs.formatDateWithTimezone.call(void 0, d, null, _optionalChain([options, 'optionalAccess', _57 => _57.monthFormat]) === "long" ? "monthYear" : "monthYearShort") || "?";
|
|
3193
1815
|
const s = start ? fmt(start) : "?";
|
|
3194
1816
|
const e = end ? fmt(end) : "?";
|
|
3195
1817
|
return `${s} - ${e}`;
|
|
@@ -3206,7 +1828,7 @@ function InvestorUpdateCardSkeleton({
|
|
|
3206
1828
|
}) {
|
|
3207
1829
|
if (size === "portrait") {
|
|
3208
1830
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3209
|
-
EntityPortraitCardSkeleton,
|
|
1831
|
+
_chunkMQPTOJMFcjs.EntityPortraitCardSkeleton,
|
|
3210
1832
|
{
|
|
3211
1833
|
typeLabel: showTypeBadge ? INVESTOR_UPDATE_TYPE_LABEL : void 0,
|
|
3212
1834
|
className
|
|
@@ -3218,7 +1840,7 @@ function InvestorUpdateCardSkeleton({
|
|
|
3218
1840
|
}
|
|
3219
1841
|
if (size === "sm") {
|
|
3220
1842
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3221
|
-
CompactCardSkeleton,
|
|
1843
|
+
_chunkMQPTOJMFcjs.CompactCardSkeleton,
|
|
3222
1844
|
{
|
|
3223
1845
|
titleWidth: "w-1/2",
|
|
3224
1846
|
titleBadges: ["w-8"],
|
|
@@ -3240,13 +1862,13 @@ function InvestorUpdateCard({
|
|
|
3240
1862
|
showTypeBadge = true,
|
|
3241
1863
|
className
|
|
3242
1864
|
}) {
|
|
3243
|
-
const { target, rel } = useEntityCardLink({
|
|
1865
|
+
const { target, rel } = _chunkMQPTOJMFcjs.useEntityCardLink.call(void 0, {
|
|
3244
1866
|
href,
|
|
3245
1867
|
targetPlatform,
|
|
3246
1868
|
target: targetProp,
|
|
3247
1869
|
rel: relProp
|
|
3248
1870
|
});
|
|
3249
|
-
const placeholderUrl = useEntityCardPlaceholder({
|
|
1871
|
+
const placeholderUrl = _chunkMQPTOJMFcjs.useEntityCardPlaceholder.call(void 0, {
|
|
3250
1872
|
title: _nullishCoalesce(update.title, () => ( `Update #${_nullishCoalesce(update.update_number, () => ( ""))}`)),
|
|
3251
1873
|
placeholderUrl: placeholderUrlProp,
|
|
3252
1874
|
aspect: size === "sm" ? "square" : "wide"
|
|
@@ -3257,8 +1879,8 @@ function InvestorUpdateCard({
|
|
|
3257
1879
|
}
|
|
3258
1880
|
if (size === "sm") {
|
|
3259
1881
|
const periodText = formatInvestorUpdatePeriod(update.period_start, update.period_end);
|
|
3260
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href, target, rel, className: `${COMPACT_CARD_OUTER} ${_nullishCoalesce(className, () => ( ""))}`, children: [
|
|
3261
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_IMAGE_SLOT, children: coverImage ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1882
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href, target, rel, className: `${_chunkMQPTOJMFcjs.COMPACT_CARD_OUTER} ${_nullishCoalesce(className, () => ( ""))}`, children: [
|
|
1883
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkMQPTOJMFcjs.COMPACT_CARD_IMAGE_SLOT, children: coverImage ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3262
1884
|
_chunkE76ONBKFcjs.next_image_default,
|
|
3263
1885
|
{
|
|
3264
1886
|
src: coverImage,
|
|
@@ -3273,23 +1895,23 @@ function InvestorUpdateCard({
|
|
|
3273
1895
|
}
|
|
3274
1896
|
}
|
|
3275
1897
|
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex h-full w-full items-center justify-center text-ods-accent", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Calendar, { className: "h-4 w-4" }) }) }),
|
|
3276
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
3277
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${COMPACT_CARD_TITLE_ROW} gap-2`, children: [
|
|
3278
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${COMPACT_CARD_TITLE} min-w-0`, children: update.title || `Update #${_nullishCoalesce(update.update_number, () => ( "?"))}` }),
|
|
1898
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkMQPTOJMFcjs.COMPACT_CARD_TEXT_COL, children: [
|
|
1899
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${_chunkMQPTOJMFcjs.COMPACT_CARD_TITLE_ROW} gap-2`, children: [
|
|
1900
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${_chunkMQPTOJMFcjs.COMPACT_CARD_TITLE} min-w-0`, children: update.title || `Update #${_nullishCoalesce(update.update_number, () => ( "?"))}` }),
|
|
3279
1901
|
update.update_number ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "shrink-0 rounded bg-ods-accent/10 px-1.5 py-0.5 text-ods-accent text-h6", children: [
|
|
3280
1902
|
"#",
|
|
3281
1903
|
update.update_number
|
|
3282
1904
|
] }) : null
|
|
3283
1905
|
] }),
|
|
3284
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_SUBTITLE, children: periodText || "Investor update" }) }),
|
|
3285
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_SUMMARY, children: (update.strategic_update || update.content || "").slice(0, 120) || COMPACT_CARD_ROW_FILLER }) })
|
|
1906
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkMQPTOJMFcjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkMQPTOJMFcjs.COMPACT_CARD_SUBTITLE, children: periodText || "Investor update" }) }),
|
|
1907
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkMQPTOJMFcjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkMQPTOJMFcjs.COMPACT_CARD_SUMMARY, children: (update.strategic_update || update.content || "").slice(0, 120) || _chunkMQPTOJMFcjs.COMPACT_CARD_ROW_FILLER }) })
|
|
3286
1908
|
] })
|
|
3287
1909
|
] });
|
|
3288
1910
|
}
|
|
3289
1911
|
if (size === "portrait") {
|
|
3290
1912
|
const periodText = formatInvestorUpdatePeriod(update.period_start, update.period_end);
|
|
3291
1913
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3292
|
-
EntityPortraitCard,
|
|
1914
|
+
_chunkMQPTOJMFcjs.EntityPortraitCard,
|
|
3293
1915
|
{
|
|
3294
1916
|
href,
|
|
3295
1917
|
target,
|
|
@@ -3310,7 +1932,7 @@ function InvestorUpdateCard({
|
|
|
3310
1932
|
imageUrl: update.featured_image,
|
|
3311
1933
|
placeholderUrl,
|
|
3312
1934
|
title: update.title || `Update #${update.update_number || "?"}`,
|
|
3313
|
-
summary: _optionalChain([update, 'access',
|
|
1935
|
+
summary: _optionalChain([update, 'access', _58 => _58.strategic_update, 'optionalAccess', _59 => _59.slice, 'call', _60 => _60(0, 120)]) || _optionalChain([update, 'access', _61 => _61.content, 'optionalAccess', _62 => _62.slice, 'call', _63 => _63(0, 120)]) || "No description",
|
|
3314
1936
|
badges: update.update_number ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "rounded bg-ods-accent/10 px-2 py-0.5 text-xs font-medium text-ods-accent", children: [
|
|
3315
1937
|
"#",
|
|
3316
1938
|
update.update_number
|
|
@@ -3353,10 +1975,10 @@ function OnboardingGuideCardSkeleton({
|
|
|
3353
1975
|
className
|
|
3354
1976
|
}) {
|
|
3355
1977
|
if (size === "portrait") {
|
|
3356
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EntityPortraitCardSkeleton, { typeLabel: showTypeBadge ? GUIDE_TYPE_LABEL : void 0, className });
|
|
1978
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkMQPTOJMFcjs.EntityPortraitCardSkeleton, { typeLabel: showTypeBadge ? GUIDE_TYPE_LABEL : void 0, className });
|
|
3357
1979
|
}
|
|
3358
1980
|
if (size === "catalog") {
|
|
3359
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, CONTENT_CARD_SKELETON_FRAME_CLASS, "block", className), "aria-hidden": true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: CATALOG_BODY, children: [
|
|
1981
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, _chunkMQPTOJMFcjs.CONTENT_CARD_SKELETON_FRAME_CLASS, "block", className), "aria-hidden": true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: CATALOG_BODY, children: [
|
|
3360
1982
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: CATALOG_ROW, children: [
|
|
3361
1983
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: CATALOG_COVER_COL, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { className: CATALOG_COVER }) }),
|
|
3362
1984
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: CATALOG_TEXT, children: [
|
|
@@ -3377,7 +1999,7 @@ function OnboardingGuideCardSkeleton({
|
|
|
3377
1999
|
] }) });
|
|
3378
2000
|
}
|
|
3379
2001
|
if (size === "sm") {
|
|
3380
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CompactCardSkeleton, { trailingIcon: true, className });
|
|
2002
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkMQPTOJMFcjs.CompactCardSkeleton, { trailingIcon: true, className });
|
|
3381
2003
|
}
|
|
3382
2004
|
const t = HORIZONTAL_SIZE_TOKENS.default;
|
|
3383
2005
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
@@ -3406,13 +2028,13 @@ function OnboardingGuideCard({
|
|
|
3406
2028
|
showTypeBadge = true,
|
|
3407
2029
|
className
|
|
3408
2030
|
}) {
|
|
3409
|
-
const { target, rel } = useEntityCardLink({
|
|
2031
|
+
const { target, rel } = _chunkMQPTOJMFcjs.useEntityCardLink.call(void 0, {
|
|
3410
2032
|
href,
|
|
3411
2033
|
targetPlatform,
|
|
3412
2034
|
target: targetProp,
|
|
3413
2035
|
rel: relProp
|
|
3414
2036
|
});
|
|
3415
|
-
const placeholderUrl = useEntityCardPlaceholder({
|
|
2037
|
+
const placeholderUrl = _chunkMQPTOJMFcjs.useEntityCardPlaceholder.call(void 0, {
|
|
3416
2038
|
title: guide.title,
|
|
3417
2039
|
placeholderUrl: placeholderUrlProp,
|
|
3418
2040
|
aspect: size === "sm" ? "square" : "wide"
|
|
@@ -3423,7 +2045,7 @@ function OnboardingGuideCard({
|
|
|
3423
2045
|
if (size === "portrait") {
|
|
3424
2046
|
const coverImage = guide.featured_image || guide.main_video_thumbnail || guide.og_image_url || null;
|
|
3425
2047
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3426
|
-
EntityPortraitCard,
|
|
2048
|
+
_chunkMQPTOJMFcjs.EntityPortraitCard,
|
|
3427
2049
|
{
|
|
3428
2050
|
href,
|
|
3429
2051
|
target,
|
|
@@ -3442,7 +2064,7 @@ function OnboardingGuideCard({
|
|
|
3442
2064
|
const coverImage = guide.featured_image || guide.main_video_thumbnail || guide.og_image_url || null;
|
|
3443
2065
|
const hasVideoCover = !!(guide.main_video_thumbnail || guide.highlight_video_thumbnail);
|
|
3444
2066
|
const stepLabel = typeof guide.step_order === "number" ? String(guide.step_order).padStart(2, "0") : "\u2014";
|
|
3445
|
-
const durationLabel = typeof guide.highlight_video_duration_ms === "number" && guide.highlight_video_duration_ms > 0 ?
|
|
2067
|
+
const durationLabel = typeof guide.highlight_video_duration_ms === "number" && guide.highlight_video_duration_ms > 0 ? _chunkBNUZKBNVcjs.formatDurationMMSS.call(void 0, Math.floor(guide.highlight_video_duration_ms / 1e3)) : "";
|
|
3446
2068
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3447
2069
|
_chunkV45KLJQPcjs.next_link_default,
|
|
3448
2070
|
{
|
|
@@ -3450,7 +2072,7 @@ function OnboardingGuideCard({
|
|
|
3450
2072
|
target,
|
|
3451
2073
|
rel,
|
|
3452
2074
|
prefetch: false,
|
|
3453
|
-
className: _chunk65VVJSQZcjs.cn.call(void 0, CONTENT_CARD_FRAME_CLASS, "block no-underline", className),
|
|
2075
|
+
className: _chunk65VVJSQZcjs.cn.call(void 0, _chunkMQPTOJMFcjs.CONTENT_CARD_FRAME_CLASS, "block no-underline", className),
|
|
3454
2076
|
children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: CATALOG_BODY, children: [
|
|
3455
2077
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: CATALOG_ROW, children: [
|
|
3456
2078
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: CATALOG_COVER_COL, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, CATALOG_COVER, "bg-ods-bg"), children: [
|
|
@@ -3507,7 +2129,7 @@ function OnboardingGuideCard({
|
|
|
3507
2129
|
const compactCover = coverImage || placeholderUrl || null;
|
|
3508
2130
|
const hasVideoCover = !guide.featured_image && !!guide.main_video_thumbnail;
|
|
3509
2131
|
const summary2 = stripMarkdownPreview(guide.video_summary || guide.content || "");
|
|
3510
|
-
const author = _optionalChain([guide, 'access',
|
|
2132
|
+
const author = _optionalChain([guide, 'access', _64 => _64.author, 'optionalAccess', _65 => _65.full_name, 'optionalAccess', _66 => _66.trim, 'call', _67 => _67()]) || "";
|
|
3511
2133
|
const subtitleParts = [`Step ${guide.step_order}`, guide.section, author].filter(
|
|
3512
2134
|
(s) => typeof s === "string" && s.length > 0
|
|
3513
2135
|
);
|
|
@@ -3518,16 +2140,16 @@ function OnboardingGuideCard({
|
|
|
3518
2140
|
target,
|
|
3519
2141
|
rel,
|
|
3520
2142
|
prefetch: false,
|
|
3521
|
-
className: _chunk65VVJSQZcjs.cn.call(void 0, COMPACT_CARD_OUTER, "group", className),
|
|
2143
|
+
className: _chunk65VVJSQZcjs.cn.call(void 0, _chunkMQPTOJMFcjs.COMPACT_CARD_OUTER, "group", className),
|
|
3522
2144
|
children: [
|
|
3523
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_IMAGE_SLOT, children: [
|
|
2145
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkMQPTOJMFcjs.COMPACT_CARD_IMAGE_SLOT, children: [
|
|
3524
2146
|
compactCover ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkE76ONBKFcjs.next_image_default, { src: compactCover, alt: guide.title, fill: true, sizes: "56px", className: "object-contain", unoptimized: true }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex h-full w-full items-center justify-center text-ods-accent", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.GraduationCap, { className: "h-4 w-4" }) }),
|
|
3525
2147
|
hasVideoCover && compactCover && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkSETFUCZAcjs.CardHoverPlay, { size: "sm" })
|
|
3526
2148
|
] }),
|
|
3527
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
3528
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk65VVJSQZcjs.cn.call(void 0, COMPACT_CARD_TITLE, "font-heading"), children: guide.title }) }),
|
|
3529
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate text-ods-accent text-h6", children: subtitleParts.join(" \xB7 ") }) }),
|
|
3530
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_SUMMARY, children: summary2 || COMPACT_CARD_ROW_FILLER }) })
|
|
2149
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkMQPTOJMFcjs.COMPACT_CARD_TEXT_COL, children: [
|
|
2150
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkMQPTOJMFcjs.COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk65VVJSQZcjs.cn.call(void 0, _chunkMQPTOJMFcjs.COMPACT_CARD_TITLE, "font-heading"), children: guide.title }) }),
|
|
2151
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkMQPTOJMFcjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate text-ods-accent text-h6", children: subtitleParts.join(" \xB7 ") }) }),
|
|
2152
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkMQPTOJMFcjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkMQPTOJMFcjs.COMPACT_CARD_SUMMARY, children: summary2 || _chunkMQPTOJMFcjs.COMPACT_CARD_ROW_FILLER }) })
|
|
3531
2153
|
] }),
|
|
3532
2154
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex h-5 shrink-0 items-center self-start text-ods-text-secondary", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "h-3.5 w-3.5" }) })
|
|
3533
2155
|
]
|
|
@@ -3680,7 +2302,7 @@ function RoadmapCardSkeleton({
|
|
|
3680
2302
|
}) {
|
|
3681
2303
|
if (size === "sm") {
|
|
3682
2304
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3683
|
-
CompactCardSkeleton,
|
|
2305
|
+
_chunkMQPTOJMFcjs.CompactCardSkeleton,
|
|
3684
2306
|
{
|
|
3685
2307
|
slotClassName: ROADMAP_COMPACT_SLOT,
|
|
3686
2308
|
titleWidth: "w-1/2",
|
|
@@ -3694,16 +2316,16 @@ function RoadmapCardSkeleton({
|
|
|
3694
2316
|
}
|
|
3695
2317
|
);
|
|
3696
2318
|
}
|
|
3697
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, CONTENT_CARD_SKELETON_FRAME_CLASS, ROADMAP_CARD_BODY, className), "aria-hidden": true, children: [
|
|
2319
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, _chunkMQPTOJMFcjs.CONTENT_CARD_SKELETON_FRAME_CLASS, ROADMAP_CARD_BODY, className), "aria-hidden": true, children: [
|
|
3698
2320
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: ROADMAP_CARD_HEADER, children: [
|
|
3699
2321
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { className: ROADMAP_CARD_ICON_BOX }),
|
|
3700
2322
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: ROADMAP_CARD_HEADING, children: [
|
|
3701
2323
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: ROADMAP_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h3", lines: 2, className: "w-3/4" }) }),
|
|
3702
2324
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: ROADMAP_CARD_META_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h5", className: "w-1/3" }) })
|
|
3703
2325
|
] }),
|
|
3704
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden md:block", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, StatusBadgeSkeleton, {}) })
|
|
2326
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden md:block", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkMQPTOJMFcjs.StatusBadgeSkeleton, {}) })
|
|
3705
2327
|
] }),
|
|
3706
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "md:hidden", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, StatusBadgeSkeleton, {}) }),
|
|
2328
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "md:hidden", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkMQPTOJMFcjs.StatusBadgeSkeleton, {}) }),
|
|
3707
2329
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: ROADMAP_CARD_SUMMARY_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h4", lines: 3, className: "w-full" }) }),
|
|
3708
2330
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-1" }),
|
|
3709
2331
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: ROADMAP_CARD_FOOTER, children: votes && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { className: _chunk65VVJSQZcjs.cn.call(void 0, ROADMAP_CARD_VOTES, "w-32") }) })
|
|
@@ -3735,10 +2357,10 @@ function RoadmapCard({
|
|
|
3735
2357
|
const iconSrc = useProxiedImageUrl(logoUrl) || null;
|
|
3736
2358
|
if (loading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RoadmapCardSkeleton, { size, votes: !!onVote, className });
|
|
3737
2359
|
if (size === "sm") {
|
|
3738
|
-
const compactHref = safeHref(_nullishCoalesce(href, () => ( null)));
|
|
2360
|
+
const compactHref = _chunkMQPTOJMFcjs.safeHref.call(void 0, _nullishCoalesce(href, () => ( null)));
|
|
3739
2361
|
const hasVotes = (_nullishCoalesce(item.upvotes, () => ( 0))) > 0 || (_nullishCoalesce(item.downvotes, () => ( 0))) > 0;
|
|
3740
2362
|
const hasFigma = !!item.figmaUrl;
|
|
3741
|
-
const hasScreenshots = (_nullishCoalesce(_optionalChain([item, 'access',
|
|
2363
|
+
const hasScreenshots = (_nullishCoalesce(_optionalChain([item, 'access', _68 => _68.screenshots, 'optionalAccess', _69 => _69.length]), () => ( 0))) > 0;
|
|
3742
2364
|
const typeLabel = getTaskTypeLabel(item.customItemId);
|
|
3743
2365
|
const useTypeIcon = cardType === "internal_task" || !iconSrc && item.customItemId != null;
|
|
3744
2366
|
const body = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
@@ -3757,14 +2379,14 @@ function RoadmapCard({
|
|
|
3757
2379
|
unoptimized: true,
|
|
3758
2380
|
className: "h-8 w-8 object-contain"
|
|
3759
2381
|
}
|
|
3760
|
-
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "uppercase text-ods-text-secondary text-h6", children: _optionalChain([item, 'access',
|
|
2382
|
+
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "uppercase text-ods-text-secondary text-h6", children: _optionalChain([item, 'access', _70 => _70.title, 'optionalAccess', _71 => _71.substring, 'call', _72 => _72(0, 2)]) || "??" })
|
|
3761
2383
|
}
|
|
3762
2384
|
),
|
|
3763
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
3764
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${COMPACT_CARD_TITLE_ROW} gap-2`, children: [
|
|
3765
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${COMPACT_CARD_TITLE} min-w-0`, children: item.title }),
|
|
2385
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkMQPTOJMFcjs.COMPACT_CARD_TEXT_COL, children: [
|
|
2386
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${_chunkMQPTOJMFcjs.COMPACT_CARD_TITLE_ROW} gap-2`, children: [
|
|
2387
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${_chunkMQPTOJMFcjs.COMPACT_CARD_TITLE} min-w-0`, children: item.title }),
|
|
3766
2388
|
item.status && item.status.trim().length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3767
|
-
StatusBadge,
|
|
2389
|
+
_chunkMQPTOJMFcjs.StatusBadge,
|
|
3768
2390
|
{
|
|
3769
2391
|
text: item.status.toUpperCase(),
|
|
3770
2392
|
colorScheme: getStatusColorScheme(item.status),
|
|
@@ -3774,7 +2396,7 @@ function RoadmapCard({
|
|
|
3774
2396
|
}
|
|
3775
2397
|
) : null
|
|
3776
2398
|
] }),
|
|
3777
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${COMPACT_CARD_META_ROW_BOX} gap-2 text-ods-text-secondary`, children: [
|
|
2399
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${_chunkMQPTOJMFcjs.COMPACT_CARD_META_ROW_BOX} gap-2 text-ods-text-secondary`, children: [
|
|
3778
2400
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-w-0 flex-1 truncate text-h6", children: (() => {
|
|
3779
2401
|
const parts = [item.quarter, item.targetVersion ? `${item.targetVersion} version` : null].filter(
|
|
3780
2402
|
Boolean
|
|
@@ -3810,17 +2432,17 @@ function RoadmapCard({
|
|
|
3810
2432
|
]
|
|
3811
2433
|
}
|
|
3812
2434
|
) : null,
|
|
3813
|
-
item.assignees && item.assignees.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2435
|
+
item.assignees && item.assignees.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBEMGJDXIcjs.AvatarStack, { size: "xs", people: assigneePeople(item.assignees), className: "shrink-0" }) : null
|
|
3814
2436
|
] }),
|
|
3815
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_SUMMARY, children: item.description || COMPACT_CARD_ROW_FILLER }) })
|
|
2437
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkMQPTOJMFcjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkMQPTOJMFcjs.COMPACT_CARD_SUMMARY, children: item.description || _chunkMQPTOJMFcjs.COMPACT_CARD_ROW_FILLER }) })
|
|
3816
2438
|
] })
|
|
3817
2439
|
] });
|
|
3818
2440
|
if (!compactHref) {
|
|
3819
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${COMPACT_CARD_OUTER_STATIC} ${_nullishCoalesce(className, () => ( ""))}`, "aria-label": "No link available", children: body });
|
|
2441
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${_chunkMQPTOJMFcjs.COMPACT_CARD_OUTER_STATIC} ${_nullishCoalesce(className, () => ( ""))}`, "aria-label": "No link available", children: body });
|
|
3820
2442
|
}
|
|
3821
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href: compactHref, target, rel, className: `${COMPACT_CARD_OUTER} ${_nullishCoalesce(className, () => ( ""))}`, children: body });
|
|
2443
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href: compactHref, target, rel, className: `${_chunkMQPTOJMFcjs.COMPACT_CARD_OUTER} ${_nullishCoalesce(className, () => ( ""))}`, children: body });
|
|
3822
2444
|
}
|
|
3823
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { id, className: _chunk65VVJSQZcjs.cn.call(void 0, CONTENT_CARD_FRAME_CLASS, ROADMAP_CARD_BODY, className), children: [
|
|
2445
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { id, className: _chunk65VVJSQZcjs.cn.call(void 0, _chunkMQPTOJMFcjs.CONTENT_CARD_FRAME_CLASS, ROADMAP_CARD_BODY, className), children: [
|
|
3824
2446
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: ROADMAP_CARD_HEADER, children: [
|
|
3825
2447
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, ROADMAP_CARD_ICON_BOX, "border border-ods-border bg-ods-bg"), children: iconSrc ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3826
2448
|
_chunkE76ONBKFcjs.next_image_default,
|
|
@@ -3832,7 +2454,7 @@ function RoadmapCard({
|
|
|
3832
2454
|
unoptimized: true,
|
|
3833
2455
|
className: "object-contain p-1"
|
|
3834
2456
|
}
|
|
3835
|
-
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-xs font-medium uppercase text-ods-text-secondary", children: _optionalChain([item, 'access',
|
|
2457
|
+
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-xs font-medium uppercase text-ods-text-secondary", children: _optionalChain([item, 'access', _73 => _73.title, 'optionalAccess', _74 => _74.substring, 'call', _75 => _75(0, 2)]) || "??" }) }),
|
|
3836
2458
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: ROADMAP_CARD_HEADING, children: [
|
|
3837
2459
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: ROADMAP_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "line-clamp-2 flex-1 text-ods-text-primary text-h3", children: item.title }) }),
|
|
3838
2460
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: ROADMAP_CARD_META_ROW, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "truncate text-ods-text-secondary text-h5", children: [
|
|
@@ -3842,7 +2464,7 @@ function RoadmapCard({
|
|
|
3842
2464
|
] }) })
|
|
3843
2465
|
] }),
|
|
3844
2466
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden md:block", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3845
|
-
StatusBadge,
|
|
2467
|
+
_chunkMQPTOJMFcjs.StatusBadge,
|
|
3846
2468
|
{
|
|
3847
2469
|
text: item.status.toUpperCase(),
|
|
3848
2470
|
colorScheme: getStatusColorScheme(item.status),
|
|
@@ -3851,7 +2473,7 @@ function RoadmapCard({
|
|
|
3851
2473
|
) })
|
|
3852
2474
|
] }),
|
|
3853
2475
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "md:hidden", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3854
|
-
StatusBadge,
|
|
2476
|
+
_chunkMQPTOJMFcjs.StatusBadge,
|
|
3855
2477
|
{
|
|
3856
2478
|
text: item.status.toUpperCase(),
|
|
3857
2479
|
colorScheme: getStatusColorScheme(item.status),
|
|
@@ -3888,7 +2510,7 @@ function RoadmapCard({
|
|
|
3888
2510
|
)
|
|
3889
2511
|
] }),
|
|
3890
2512
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: ROADMAP_CARD_FOOTER_END, children: [
|
|
3891
|
-
item.assignees && item.assignees.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2513
|
+
item.assignees && item.assignees.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBEMGJDXIcjs.AvatarStack, { size: "xs", people: assigneePeople(item.assignees), className: "shrink-0" }) : null,
|
|
3892
2514
|
item.screenshots && item.screenshots.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3893
2515
|
_chunkTF5D5MNOcjs.Button,
|
|
3894
2516
|
{
|
|
@@ -3899,7 +2521,7 @@ function RoadmapCard({
|
|
|
3899
2521
|
}
|
|
3900
2522
|
),
|
|
3901
2523
|
(() => {
|
|
3902
|
-
const figmaSafe = safeHref(item.figmaUrl);
|
|
2524
|
+
const figmaSafe = _chunkMQPTOJMFcjs.safeHref.call(void 0, item.figmaUrl);
|
|
3903
2525
|
return figmaSafe ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3904
2526
|
_chunkTF5D5MNOcjs.Button,
|
|
3905
2527
|
{
|
|
@@ -3911,7 +2533,7 @@ function RoadmapCard({
|
|
|
3911
2533
|
}
|
|
3912
2534
|
) : null;
|
|
3913
2535
|
})(),
|
|
3914
|
-
item.targetVersion && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, StatusBadge, { gen: generationTierFromLabel(item.targetVersion), text: item.targetVersion })
|
|
2536
|
+
item.targetVersion && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkMQPTOJMFcjs.StatusBadge, { gen: _chunkMQPTOJMFcjs.generationTierFromLabel.call(void 0, item.targetVersion), text: item.targetVersion })
|
|
3915
2537
|
] })
|
|
3916
2538
|
] }),
|
|
3917
2539
|
item.screenshots && item.screenshots.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -3929,7 +2551,7 @@ function RoadmapCard({
|
|
|
3929
2551
|
|
|
3930
2552
|
|
|
3931
2553
|
|
|
3932
|
-
var EDITORIAL_FRAME = CONTENT_CARD_SKELETON_FRAME_CLASS;
|
|
2554
|
+
var EDITORIAL_FRAME = _chunkMQPTOJMFcjs.CONTENT_CARD_SKELETON_FRAME_CLASS;
|
|
3933
2555
|
var EDITORIAL_ROW_GRID = "grid grid-cols-[88px_minmax(0,1fr)] items-center gap-[var(--spacing-system-m)] p-[var(--spacing-system-m)] sm:grid-cols-[120px_minmax(0,1fr)] sm:gap-[var(--spacing-system-l)]";
|
|
3934
2556
|
var EDITORIAL_ROW_THUMB = `relative block ${_chunkXFRBEXQNcjs.MEDIA_ASPECT.square} w-full overflow-hidden rounded-md`;
|
|
3935
2557
|
var EDITORIAL_ROW_TEXT = "flex min-w-0 flex-col gap-[var(--spacing-system-xs)]";
|
|
@@ -3965,7 +2587,7 @@ function ProgramCardSkeleton({
|
|
|
3965
2587
|
actionLabel,
|
|
3966
2588
|
className
|
|
3967
2589
|
}) {
|
|
3968
|
-
if (size === "portrait") return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EntityPortraitCardSkeleton, { typeLabel, className });
|
|
2590
|
+
if (size === "portrait") return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkMQPTOJMFcjs.EntityPortraitCardSkeleton, { typeLabel, className });
|
|
3969
2591
|
if (size === "row") {
|
|
3970
2592
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunk65VVJSQZcjs.cn.call(void 0, EDITORIAL_FRAME, EDITORIAL_ROW_GRID, className), children: [
|
|
3971
2593
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { as: "span", className: EDITORIAL_ROW_THUMB }),
|
|
@@ -3985,16 +2607,16 @@ function ProgramCardSkeleton({
|
|
|
3985
2607
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: EDITORIAL_META_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { as: "span", type: "inherit", className: "w-40" }) }),
|
|
3986
2608
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { as: "span", type: "h4", lines: 3, className: "w-full" }),
|
|
3987
2609
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: EDITORIAL_PERSON_ROW, children: [
|
|
3988
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2610
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBNUZKBNVcjs.SquareAvatarSkeleton, { ...EDITORIAL_PERSON_AVATAR, className: "shrink-0" }),
|
|
3989
2611
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { as: "span", type: "h6", className: "w-40" })
|
|
3990
2612
|
] })
|
|
3991
2613
|
] })
|
|
3992
2614
|
] });
|
|
3993
2615
|
}
|
|
3994
2616
|
if (size === "sm") {
|
|
3995
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CompactCardSkeleton, { trailingIcon: true, className });
|
|
2617
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkMQPTOJMFcjs.CompactCardSkeleton, { trailingIcon: true, className });
|
|
3996
2618
|
}
|
|
3997
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, CONTENT_CARD_SKELETON_FRAME_CLASS, DEFAULT_BODY, className), children: [
|
|
2619
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, _chunkMQPTOJMFcjs.CONTENT_CARD_SKELETON_FRAME_CLASS, DEFAULT_BODY, className), children: [
|
|
3998
2620
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: DEFAULT_HEADER, children: [
|
|
3999
2621
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { className: DEFAULT_COVER_FRAME }),
|
|
4000
2622
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: DEFAULT_TEXT, children: [
|
|
@@ -4004,9 +2626,9 @@ function ProgramCardSkeleton({
|
|
|
4004
2626
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { as: "span", type: "inherit", className: "w-40" })
|
|
4005
2627
|
] }),
|
|
4006
2628
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DEFAULT_DESCRIPTION, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { as: "span", type: "inherit", lines: 3, className: "w-full" }) }),
|
|
4007
|
-
tags && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DEFAULT_TAG_ROW, children: Array.from({ length: DEFAULT_SKELETON_TAGS }, (_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2629
|
+
tags && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DEFAULT_TAG_ROW, children: Array.from({ length: DEFAULT_SKELETON_TAGS }, (_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBNUZKBNVcjs.TagSkeleton, {}, i)) })
|
|
4008
2630
|
] }),
|
|
4009
|
-
hosts > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DEFAULT_HOSTS_ROW, children: Array.from({ length: hosts }, (_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2631
|
+
hosts > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DEFAULT_HOSTS_ROW, children: Array.from({ length: hosts }, (_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBNUZKBNVcjs.SquareAvatarSkeleton, { variant: "round", size: "sm" }, i)) })
|
|
4010
2632
|
] }),
|
|
4011
2633
|
media > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DEFAULT_GALLERY_ROW, children: Array.from({ length: media }, (_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { className: DEFAULT_GALLERY_THUMB }, i)) }),
|
|
4012
2634
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DEFAULT_FOOTER, children: actionLabel ? (
|
|
@@ -4106,13 +2728,13 @@ function ProgramEditorialCard({
|
|
|
4106
2728
|
const edgeColor = _chunk3LW5TD54cjs.useImageEdgeColor.call(void 0, feature ? cover : null, "transparent");
|
|
4107
2729
|
const meta = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: EDITORIAL_META_ROW, children: [
|
|
4108
2730
|
date && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-flamingo-pink", children: date }),
|
|
4109
|
-
[typeMeta, feature ? null : _optionalChain([profile, 'optionalAccess',
|
|
2731
|
+
[typeMeta, feature ? null : _optionalChain([profile, 'optionalAccess', _76 => _76.name])].filter((part) => !!part).map((part) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex items-center gap-[var(--spacing-system-s)] text-ods-text-secondary", children: [
|
|
4110
2732
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { "aria-hidden": "true", children: "\u2022" }),
|
|
4111
2733
|
part
|
|
4112
2734
|
] }, part))
|
|
4113
2735
|
] });
|
|
4114
2736
|
if (!feature) {
|
|
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: [
|
|
2737
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkMQPTOJMFcjs.ContentCardFrame, { as: "a", href, target, rel, className: _chunk65VVJSQZcjs.cn.call(void 0, EDITORIAL_ROW_GRID, className), children: [
|
|
4116
2738
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunk65VVJSQZcjs.cn.call(void 0, EDITORIAL_ROW_THUMB, "bg-ods-bg"), children: [
|
|
4117
2739
|
cover && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkE76ONBKFcjs.next_image_default, { src: cover, alt: "", fill: true, sizes: "120px", className: "object-cover", priority, unoptimized: true }),
|
|
4118
2740
|
playable && cover && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkSETFUCZAcjs.CardHoverPlay, { size: "md" })
|
|
@@ -4124,7 +2746,7 @@ function ProgramEditorialCard({
|
|
|
4124
2746
|
] })
|
|
4125
2747
|
] });
|
|
4126
2748
|
}
|
|
4127
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, ContentCardFrame, { as: "a", href, target, rel, className: _chunk65VVJSQZcjs.cn.call(void 0, "flex flex-col", className), children: [
|
|
2749
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkMQPTOJMFcjs.ContentCardFrame, { as: "a", href, target, rel, className: _chunk65VVJSQZcjs.cn.call(void 0, "flex flex-col", className), children: [
|
|
4128
2750
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
4129
2751
|
"span",
|
|
4130
2752
|
{
|
|
@@ -4154,7 +2776,7 @@ function ProgramEditorialCard({
|
|
|
4154
2776
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "line-clamp-3 min-h-[3lh] text-ods-text-secondary text-h4", children: description }),
|
|
4155
2777
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: EDITORIAL_PERSON_ROW, children: profile && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
4156
2778
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4157
|
-
|
|
2779
|
+
_chunkBNUZKBNVcjs.SquareAvatar,
|
|
4158
2780
|
{
|
|
4159
2781
|
...EDITORIAL_PERSON_AVATAR,
|
|
4160
2782
|
src: profile.avatarUrl || void 0,
|
|
@@ -4191,13 +2813,13 @@ function ProgramCard({
|
|
|
4191
2813
|
priority,
|
|
4192
2814
|
className
|
|
4193
2815
|
}) {
|
|
4194
|
-
const { target, rel } = useEntityCardLink({
|
|
2816
|
+
const { target, rel } = _chunkMQPTOJMFcjs.useEntityCardLink.call(void 0, {
|
|
4195
2817
|
href,
|
|
4196
2818
|
targetPlatform,
|
|
4197
2819
|
target: targetProp,
|
|
4198
2820
|
rel: relProp
|
|
4199
2821
|
});
|
|
4200
|
-
const placeholderUrl = useEntityCardPlaceholder({
|
|
2822
|
+
const placeholderUrl = _chunkMQPTOJMFcjs.useEntityCardPlaceholder.call(void 0, {
|
|
4201
2823
|
title: item.title,
|
|
4202
2824
|
placeholderUrl: placeholderUrlProp,
|
|
4203
2825
|
aspect: size === "sm" || size === "row" ? "square" : "wide"
|
|
@@ -4229,12 +2851,12 @@ function ProgramCard({
|
|
|
4229
2851
|
// Compact densities join plain strings, so the zone rides inline here; the
|
|
4230
2852
|
// default density below renders it as its own styled span instead.
|
|
4231
2853
|
} = programMetaLine(item, config.type, programMetaFormatters(PROGRAM_META_RENDERERS));
|
|
4232
|
-
const compactDate =
|
|
2854
|
+
const compactDate = _chunkBNUZKBNVcjs.formatProgramDate.call(void 0, zonedDate, "medium");
|
|
4233
2855
|
if (size === "portrait") {
|
|
4234
|
-
const profile = programItemToStripProfile(item);
|
|
2856
|
+
const profile = _chunkMQPTOJMFcjs.programItemToStripProfile.call(void 0, item);
|
|
4235
2857
|
const dateMeta = compactMetaLine;
|
|
4236
2858
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4237
|
-
EntityPortraitCard,
|
|
2859
|
+
_chunkMQPTOJMFcjs.EntityPortraitCard,
|
|
4238
2860
|
{
|
|
4239
2861
|
href,
|
|
4240
2862
|
target,
|
|
@@ -4263,9 +2885,9 @@ function ProgramCard({
|
|
|
4263
2885
|
description: item.description,
|
|
4264
2886
|
cover: coverImage || placeholderUrl || null,
|
|
4265
2887
|
eyebrow,
|
|
4266
|
-
date:
|
|
2888
|
+
date: _chunkBNUZKBNVcjs.formatProgramDate.call(void 0, zonedDate, "weekday"),
|
|
4267
2889
|
typeMeta: compactTypeMetaValue,
|
|
4268
|
-
profile: programItemToStripProfile(item),
|
|
2890
|
+
profile: _chunkMQPTOJMFcjs.programItemToStripProfile.call(void 0, item),
|
|
4269
2891
|
playable: isPlayable,
|
|
4270
2892
|
priority,
|
|
4271
2893
|
className
|
|
@@ -4276,11 +2898,11 @@ function ProgramCard({
|
|
|
4276
2898
|
const itemDate = compactDate;
|
|
4277
2899
|
const compactCover = coverImage || placeholderUrl || null;
|
|
4278
2900
|
const typeMeta = compactTypeMetaValue;
|
|
4279
|
-
const subtitleParts = [itemDate, typeMeta, _optionalChain([config, 'access',
|
|
2901
|
+
const subtitleParts = [itemDate, typeMeta, _optionalChain([config, 'access', _77 => _77.labels, 'optionalAccess', _78 => _78.singular])].filter(
|
|
4280
2902
|
(s) => typeof s === "string" && s.length > 0
|
|
4281
2903
|
);
|
|
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: [
|
|
4283
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_IMAGE_SLOT, children: [
|
|
2904
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href, target, rel, className: _chunk65VVJSQZcjs.cn.call(void 0, _chunkMQPTOJMFcjs.COMPACT_CARD_OUTER, "group", className), children: [
|
|
2905
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkMQPTOJMFcjs.COMPACT_CARD_IMAGE_SLOT, children: [
|
|
4284
2906
|
compactCover ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4285
2907
|
_chunkE76ONBKFcjs.next_image_default,
|
|
4286
2908
|
{
|
|
@@ -4295,15 +2917,15 @@ function ProgramCard({
|
|
|
4295
2917
|
) : /* @__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" }) }),
|
|
4296
2918
|
isPlayable && compactCover && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkSETFUCZAcjs.CardHoverPlay, { size: "sm" })
|
|
4297
2919
|
] }),
|
|
4298
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
4299
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk65VVJSQZcjs.cn.call(void 0, COMPACT_CARD_TITLE, "font-heading"), children: item.title }) }),
|
|
4300
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate text-ods-accent text-h6", children: subtitleParts.join(" \xB7 ") }) }),
|
|
4301
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_SUMMARY, children: item.description || COMPACT_CARD_ROW_FILLER }) })
|
|
2920
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkMQPTOJMFcjs.COMPACT_CARD_TEXT_COL, children: [
|
|
2921
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkMQPTOJMFcjs.COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk65VVJSQZcjs.cn.call(void 0, _chunkMQPTOJMFcjs.COMPACT_CARD_TITLE, "font-heading"), children: item.title }) }),
|
|
2922
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkMQPTOJMFcjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate text-ods-accent text-h6", children: subtitleParts.join(" \xB7 ") }) }),
|
|
2923
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkMQPTOJMFcjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkMQPTOJMFcjs.COMPACT_CARD_SUMMARY, children: item.description || _chunkMQPTOJMFcjs.COMPACT_CARD_ROW_FILLER }) })
|
|
4302
2924
|
] }),
|
|
4303
2925
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex h-5 shrink-0 items-center self-start text-ods-text-secondary", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "h-3.5 w-3.5" }) })
|
|
4304
2926
|
] });
|
|
4305
2927
|
}
|
|
4306
|
-
const dateFormat =
|
|
2928
|
+
const dateFormat = _chunkBNUZKBNVcjs.formatProgramDate.call(void 0, zonedDate, "weekday");
|
|
4307
2929
|
const { typeMeta: defaultTypeMeta, audience: defaultAudience } = programMetaLine(
|
|
4308
2930
|
item,
|
|
4309
2931
|
config.type,
|
|
@@ -4334,7 +2956,7 @@ function ProgramCard({
|
|
|
4334
2956
|
return null;
|
|
4335
2957
|
};
|
|
4336
2958
|
const endAt = "end_at" in item && typeof item.end_at === "string" ? item.end_at : null;
|
|
4337
|
-
const dateLabel = _nullishCoalesce(
|
|
2959
|
+
const dateLabel = _nullishCoalesce(_chunkBNUZKBNVcjs.formatProgramDateRange.call(void 0, zonedDate, endAt), () => ( dateFormat));
|
|
4338
2960
|
const cardHeader = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: DEFAULT_HEADER, children: [
|
|
4339
2961
|
coverImage && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: DEFAULT_COVER_FRAME, children: [
|
|
4340
2962
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -4364,12 +2986,12 @@ function ProgramCard({
|
|
|
4364
2986
|
] })
|
|
4365
2987
|
] }),
|
|
4366
2988
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: DEFAULT_DESCRIPTION, children: item.description }),
|
|
4367
|
-
tags.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DEFAULT_TAG_ROW, children: tags.map((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2989
|
+
tags.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DEFAULT_TAG_ROW, children: tags.map((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBNUZKBNVcjs.Tag, { as: "span", label: tag, variant: "outline" }, tag)) })
|
|
4368
2990
|
] }),
|
|
4369
2991
|
hosts.length > 0 && // A type whose cards always show hosts (`cardShowsHosts`) draws them while loading; elsewhere only some
|
|
4370
2992
|
// records have hosts, so the row is record-dependent.
|
|
4371
2993
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DEFAULT_HOSTS_ROW, "data-loading-optional": config.cardShowsHosts ? void 0 : true, children: hosts.map((host, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4372
|
-
|
|
2994
|
+
_chunkBNUZKBNVcjs.SquareAvatar,
|
|
4373
2995
|
{
|
|
4374
2996
|
variant: "round",
|
|
4375
2997
|
src: host.avatar || void 0,
|
|
@@ -4383,7 +3005,7 @@ function ProgramCard({
|
|
|
4383
3005
|
const cardFrameClass = _chunk65VVJSQZcjs.cn.call(void 0, DEFAULT_BODY, className);
|
|
4384
3006
|
const actionLabel = programActionLabel(config.labels.singular);
|
|
4385
3007
|
if (wholeCardClickable) {
|
|
4386
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, ContentCardFrame, { as: "a", href, target, rel, className: cardFrameClass, children: [
|
|
3008
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkMQPTOJMFcjs.ContentCardFrame, { as: "a", href, target, rel, className: cardFrameClass, children: [
|
|
4387
3009
|
cardHeader,
|
|
4388
3010
|
images.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaGallery, { images, title: item.title }),
|
|
4389
3011
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DEFAULT_FOOTER, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
@@ -4399,7 +3021,7 @@ function ProgramCard({
|
|
|
4399
3021
|
) })
|
|
4400
3022
|
] });
|
|
4401
3023
|
}
|
|
4402
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, ContentCardFrame, { as: "div", className: cardFrameClass, children: [
|
|
3024
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkMQPTOJMFcjs.ContentCardFrame, { as: "div", className: cardFrameClass, children: [
|
|
4403
3025
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href, target, rel, className: "block", children: cardHeader }),
|
|
4404
3026
|
images.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaGallery, { images, title: item.title }),
|
|
4405
3027
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DEFAULT_FOOTER, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ProgramActionButton, { label: actionLabel, href, newTab: target === "_blank" }) })
|
|
@@ -4538,60 +3160,4 @@ function ProgramCard({
|
|
|
4538
3160
|
|
|
4539
3161
|
|
|
4540
3162
|
|
|
4541
|
-
|
|
4542
|
-
|
|
4543
|
-
|
|
4544
|
-
|
|
4545
|
-
|
|
4546
|
-
|
|
4547
|
-
|
|
4548
|
-
|
|
4549
|
-
|
|
4550
|
-
|
|
4551
|
-
|
|
4552
|
-
|
|
4553
|
-
|
|
4554
|
-
|
|
4555
|
-
|
|
4556
|
-
|
|
4557
|
-
|
|
4558
|
-
|
|
4559
|
-
|
|
4560
|
-
|
|
4561
|
-
|
|
4562
|
-
|
|
4563
|
-
|
|
4564
|
-
|
|
4565
|
-
|
|
4566
|
-
|
|
4567
|
-
|
|
4568
|
-
|
|
4569
|
-
|
|
4570
|
-
|
|
4571
|
-
|
|
4572
|
-
|
|
4573
|
-
|
|
4574
|
-
|
|
4575
|
-
|
|
4576
|
-
|
|
4577
|
-
|
|
4578
|
-
|
|
4579
|
-
|
|
4580
|
-
|
|
4581
|
-
|
|
4582
|
-
|
|
4583
|
-
|
|
4584
|
-
|
|
4585
|
-
|
|
4586
|
-
|
|
4587
|
-
|
|
4588
|
-
|
|
4589
|
-
|
|
4590
|
-
|
|
4591
|
-
|
|
4592
|
-
|
|
4593
|
-
|
|
4594
|
-
|
|
4595
|
-
|
|
4596
|
-
|
|
4597
|
-
exports.Card = Card; exports.CardHeader = CardHeader; exports.CardTitle = CardTitle; exports.CardDescription = CardDescription; exports.CardContent = CardContent; exports.CardFooter = CardFooter; exports.CardHorizontal = CardHorizontal; exports.Modal = Modal; exports.ModalContent = ModalContent; exports.ModalHeader = ModalHeader; exports.ModalTitle = ModalTitle; exports.ModalFooter = ModalFooter; exports.ImageGalleryModal = ImageGalleryModal; exports.extractYouTubeId = extractYouTubeId; exports.Video = Video; exports.VideoSkeleton = VideoSkeleton; exports.statusBadgeVariants = statusBadgeVariants; exports.genBadgeBgOpacity = genBadgeBgOpacity; exports.generationTierFromLabel = generationTierFromLabel; exports.StatusBadgeSkeleton = StatusBadgeSkeleton; exports.StatusBadge = StatusBadge; exports.EntityIcon = EntityIcon; exports.getProxiedImageUrl = getProxiedImageUrl; exports.urlPathLooksLikeSvg = urlPathLooksLikeSvg; exports.shouldProxyImage = shouldProxyImage; exports.generateImageSizes = generateImageSizes; exports.skipsImageOptimizer = skipsImageOptimizer; exports.useProxiedImageUrl = useProxiedImageUrl; exports.escapeRegExp = escapeRegExp; exports.formatReleaseDate = formatReleaseDate; exports.formatDateShort = formatDateShort; exports.formatDateSlashUTC = formatDateSlashUTC; exports.releaseTypeToBadgeColor = releaseTypeToBadgeColor; exports.resolveReleaseCover = resolveReleaseCover; exports.CUSTOM_ITEM_ID = CUSTOM_ITEM_ID; exports.getTaskTypeLabel = getTaskTypeLabel; exports.getStatusColorScheme = getStatusColorScheme; exports.isCrossOriginUrl = isCrossOriginUrl; exports.TRUST_FRAMEWORK_MONITORING = TRUST_FRAMEWORK_MONITORING; exports.trustFrameworkMonitoringEntry = trustFrameworkMonitoringEntry; exports.trustFrameworkBadge = trustFrameworkBadge; exports.TRUST_CENTER_SECTIONS = TRUST_CENTER_SECTIONS; exports.TRUST_CENTER_TITLE = TRUST_CENTER_TITLE; exports.TRUST_CENTER_TAGLINE = TRUST_CENTER_TAGLINE; exports.TRUST_CENTER_API_PATH = TRUST_CENTER_API_PATH; exports.TRUST_CENTER_CACHE_SECONDS = TRUST_CENTER_CACHE_SECONDS; exports.TRUST_CENTER_DOCUMENT_CACHE_SECONDS = TRUST_CENTER_DOCUMENT_CACHE_SECONDS; exports.TRUST_CENTER_CARD_ID = TRUST_CENTER_CARD_ID; exports.TRUST_CENTER_DOCUMENT_TYPE = TRUST_CENTER_DOCUMENT_TYPE; exports.TRUST_CENTER_PAGE_PATH = TRUST_CENTER_PAGE_PATH; exports.isTrustCenterMonitored = isTrustCenterMonitored; exports.trustCenterMonitoringStatus = trustCenterMonitoringStatus; exports.trustFrameworksSummary = trustFrameworksSummary; exports.trustCenterDocumentUrl = trustCenterDocumentUrl; exports.trustCenterPdfUrl = trustCenterPdfUrl; exports.visibleTrustCenterSections = visibleTrustCenterSections; exports.TRUST_CENTER_SEARCH_PARAM = TRUST_CENTER_SEARCH_PARAM; exports.TRUST_CENTER_SEARCH_MAX_CHARS = TRUST_CENTER_SEARCH_MAX_CHARS; exports.TRUST_CENTER_SEARCH_DEBOUNCE_MS = TRUST_CENTER_SEARCH_DEBOUNCE_MS; exports.TRUST_CENTER_DOMAIN_PARAM = TRUST_CENTER_DOMAIN_PARAM; exports.normalizeTrustControlQuery = normalizeTrustControlQuery; exports.trustControlQueryMatcher = trustControlQueryMatcher; exports.filterTrustControlDomains = filterTrustControlDomains; exports.trustCenterControlsUrl = trustCenterControlsUrl; exports.canonicalContentRefType = canonicalContentRefType; exports.buildListUrl = buildListUrl; exports.extractItems = extractItems; exports.extractItemId = extractItemId; exports.extractCardItems = extractCardItems; exports.MEDIA_TYPE = MEDIA_TYPE; exports.isVideoMedia = isVideoMedia; exports.isImageMedia = isImageMedia; exports.isPublishableMediaType = isPublishableMediaType; exports.partitionMediaByType = partitionMediaByType; exports.IMAGE_FILE_ACCEPT = IMAGE_FILE_ACCEPT; exports.MEDIA_FILE_ACCEPT = MEDIA_FILE_ACCEPT; exports.fileMediaType = fileMediaType; exports.mediaNameKey = mediaNameKey; exports.fileContentKey = fileContentKey; exports.programStr = programStr; exports.programDateInstant = programDateInstant; exports.webinarTiming = webinarTiming; exports.programMetaLine = programMetaLine; exports.eventAudience = eventAudience; exports.programMetaFormatters = programMetaFormatters; exports.PROGRAM_META_RENDERERS = PROGRAM_META_RENDERERS; exports.NEW_TAB_FEATURES = NEW_TAB_FEATURES; exports.isModifierClick = isModifierClick; exports.stripSameOriginToPath = stripSameOriginToPath; exports.resolveHrefForRuntime = resolveHrefForRuntime; exports.resolveExternalNavigation = resolveExternalNavigation; exports.decideNewTab = decideNewTab; exports.isSameOriginAbsoluteHref = isSameOriginAbsoluteHref; exports.computeIsNewTab = computeIsNewTab; exports.newTabAnchorAttrs = newTabAnchorAttrs; exports.buildAnchorProps = buildAnchorProps; exports.EMPTY_AUTHOR_PLACEHOLDER = EMPTY_AUTHOR_PLACEHOLDER; exports.EntityMetadataValueCell = EntityMetadataValueCell; exports.EntityMetadataValueCellSkeleton = EntityMetadataValueCellSkeleton; exports.EntityMetadataAuthorCell = EntityMetadataAuthorCell; exports.EntityMetadataAuthorCellSkeleton = EntityMetadataAuthorCellSkeleton; exports.EntityAuthorCardSkeleton = EntityAuthorCardSkeleton; exports.EntityAuthorCard = EntityAuthorCard; exports.BlogImagePlaceholder = BlogImagePlaceholder; exports.CONTENT_CARD_FRAME_CLASS = CONTENT_CARD_FRAME_CLASS; exports.CONTENT_CARD_SKELETON_FRAME_CLASS = CONTENT_CARD_SKELETON_FRAME_CLASS; exports.ContentCardFrame = ContentCardFrame; exports.useCoverImageFallback = useCoverImageFallback; exports.hideOnError = hideOnError; exports.EntityPortraitCard = EntityPortraitCard; exports.EntityPortraitCardSkeleton = EntityPortraitCardSkeleton; exports.PlatformBadge = PlatformBadge; exports.PlatformBadgeSkeleton = PlatformBadgeSkeleton; exports.AdminContentCard = AdminContentCard; exports.AdminContentCardSkeleton = AdminContentCardSkeleton; exports.PAGE_HEADING_CLASS = PAGE_HEADING_CLASS; exports.SECTION_HEADING_CLASS = SECTION_HEADING_CLASS; exports.PageHeading = PageHeading; exports.HeadingLines = HeadingLines; exports.headingAccentClass = headingAccentClass; exports.accentSentenceMarks = accentSentenceMarks; exports.SectionEyebrow = SectionEyebrow; exports.SectionHeading = SectionHeading; exports.SectionHeadingSkeleton = SectionHeadingSkeleton; exports.DEFAULT_VIDEO_BITES_TITLE = DEFAULT_VIDEO_BITES_TITLE; exports.toStripProfile = toStripProfile; exports.sortBitesByCreatedAtDesc = sortBitesByCreatedAtDesc; exports.sortBitesByFeaturedAtDesc = sortBitesByFeaturedAtDesc; exports.programItemToStripProfile = programItemToStripProfile; exports.VideoHoverPreviewSurface = VideoHoverPreviewSurface; exports.RELEASE_CARD_LG_FRAME_CLASS = RELEASE_CARD_LG_FRAME_CLASS; exports.RELEASE_CARD_HERO_CLASS = RELEASE_CARD_HERO_CLASS; exports.RELEASE_CARD_COVER_COLUMN_CLASS = RELEASE_CARD_COVER_COLUMN_CLASS; exports.RELEASE_CARD_COVER_BOX_CLASS = RELEASE_CARD_COVER_BOX_CLASS; exports.RELEASE_CARD_TEXT_COLUMN_CLASS = RELEASE_CARD_TEXT_COLUMN_CLASS; exports.RELEASE_CARD_VERSION_ROW_CLASS = RELEASE_CARD_VERSION_ROW_CLASS; exports.RELEASE_CARD_VERSION_CLASS = RELEASE_CARD_VERSION_CLASS; exports.RELEASE_CARD_TITLE_BOX_CLASS = RELEASE_CARD_TITLE_BOX_CLASS; exports.RELEASE_CARD_TITLE_CLASS = RELEASE_CARD_TITLE_CLASS; exports.RELEASE_CARD_SUMMARY_BOX_CLASS = RELEASE_CARD_SUMMARY_BOX_CLASS; exports.RELEASE_CARD_SUMMARY_CLASS = RELEASE_CARD_SUMMARY_CLASS; exports.RELEASE_CARD_CHANGELOG_CLASS = RELEASE_CARD_CHANGELOG_CLASS; exports.RELEASE_CARD_GRID_CLASS = RELEASE_CARD_GRID_CLASS; exports.RELEASE_CARD_CELL_DIVIDER_CLASS = RELEASE_CARD_CELL_DIVIDER_CLASS; exports.RELEASE_CARD_CELL_CLASS = RELEASE_CARD_CELL_CLASS; exports.RELEASE_CARD_CELL_STACK_CLASS = RELEASE_CARD_CELL_STACK_CLASS; exports.RELEASE_CARD_CELL_LABEL_CLASS = RELEASE_CARD_CELL_LABEL_CLASS; exports.RELEASE_CARD_CELL_LABELS = RELEASE_CARD_CELL_LABELS; exports.ProductReleaseCardSkeleton = ProductReleaseCardSkeleton; exports.defaultBuildProductReleaseCardProps = defaultBuildProductReleaseCardProps; exports.buildProductReleaseCardProps = buildProductReleaseCardProps; exports.UNSAFE_URL_CHARS = UNSAFE_URL_CHARS; exports.COMPACT_CARD_OUTER = COMPACT_CARD_OUTER; exports.COMPACT_CARD_OUTER_STATIC = COMPACT_CARD_OUTER_STATIC; exports.COMPACT_CARD_SKELETON_OUTER = COMPACT_CARD_SKELETON_OUTER; exports.COMPACT_CARD_IMAGE_SLOT = COMPACT_CARD_IMAGE_SLOT; exports.COMPACT_CARD_SKELETON_IMAGE_SLOT = COMPACT_CARD_SKELETON_IMAGE_SLOT; exports.COMPACT_CARD_ICON_SLOT = COMPACT_CARD_ICON_SLOT; exports.COMPACT_CARD_TEXT_COL = COMPACT_CARD_TEXT_COL; exports.COMPACT_CARD_TITLE_ROW = COMPACT_CARD_TITLE_ROW; exports.COMPACT_CARD_META_ROW_BOX = COMPACT_CARD_META_ROW_BOX; exports.COMPACT_CARD_TITLE = COMPACT_CARD_TITLE; exports.COMPACT_CARD_SUBTITLE = COMPACT_CARD_SUBTITLE; exports.COMPACT_CARD_SUMMARY = COMPACT_CARD_SUMMARY; exports.COMPACT_CARD_META_ROW = COMPACT_CARD_META_ROW; exports.COMPACT_CARD_ROW_FILLER = COMPACT_CARD_ROW_FILLER; exports.safeHref = safeHref; exports.CompactCardSkeleton = CompactCardSkeleton; exports.ActivityRowSkeleton = ActivityRowSkeleton; exports.useEntityCardLink = useEntityCardLink; exports.BlogCardSkeleton = BlogCardSkeleton; exports.BlogCard = BlogCard; exports.CaseStudyCardSkeleton = CaseStudyCardSkeleton; exports.CaseStudyCard = CaseStudyCard; exports.CustomerInterviewCardSkeleton = CustomerInterviewCardSkeleton; exports.CustomerInterviewCard = CustomerInterviewCard; exports.formatInvestorUpdatePeriod = formatInvestorUpdatePeriod; exports.InvestorUpdateCardSkeleton = InvestorUpdateCardSkeleton; exports.InvestorUpdateCard = InvestorUpdateCard; exports.OnboardingGuideCardSkeleton = OnboardingGuideCardSkeleton; exports.OnboardingGuideCard = OnboardingGuideCard; exports.RoadmapVoteButton = RoadmapVoteButton; exports.TaskTypeIcon = TaskTypeIcon; exports.RoadmapCardSkeleton = RoadmapCardSkeleton; exports.RoadmapCard = RoadmapCard; exports.ProgramCardSkeleton = ProgramCardSkeleton; exports.ProgramCard = ProgramCard;
|
|
3163
|
+
exports.Modal = Modal; exports.ModalContent = ModalContent; exports.ModalHeader = ModalHeader; exports.ModalTitle = ModalTitle; exports.ModalFooter = ModalFooter; exports.ImageGalleryModal = ImageGalleryModal; exports.getProxiedImageUrl = getProxiedImageUrl; exports.urlPathLooksLikeSvg = urlPathLooksLikeSvg; exports.shouldProxyImage = shouldProxyImage; exports.generateImageSizes = generateImageSizes; exports.skipsImageOptimizer = skipsImageOptimizer; exports.useProxiedImageUrl = useProxiedImageUrl; exports.escapeRegExp = escapeRegExp; exports.formatReleaseDate = formatReleaseDate; exports.formatDateShort = formatDateShort; exports.formatDateSlashUTC = formatDateSlashUTC; exports.releaseTypeToBadgeColor = releaseTypeToBadgeColor; exports.resolveReleaseCover = resolveReleaseCover; exports.CUSTOM_ITEM_ID = CUSTOM_ITEM_ID; exports.getTaskTypeLabel = getTaskTypeLabel; exports.getStatusColorScheme = getStatusColorScheme; exports.TRUST_FRAMEWORK_MONITORING = TRUST_FRAMEWORK_MONITORING; exports.trustFrameworkMonitoringEntry = trustFrameworkMonitoringEntry; exports.trustFrameworkBadge = trustFrameworkBadge; exports.TRUST_CENTER_SECTIONS = TRUST_CENTER_SECTIONS; exports.TRUST_CENTER_TITLE = TRUST_CENTER_TITLE; exports.TRUST_CENTER_TAGLINE = TRUST_CENTER_TAGLINE; exports.TRUST_CENTER_API_PATH = TRUST_CENTER_API_PATH; exports.TRUST_CENTER_CACHE_SECONDS = TRUST_CENTER_CACHE_SECONDS; exports.TRUST_CENTER_DOCUMENT_CACHE_SECONDS = TRUST_CENTER_DOCUMENT_CACHE_SECONDS; exports.TRUST_CENTER_CARD_ID = TRUST_CENTER_CARD_ID; exports.TRUST_CENTER_DOCUMENT_TYPE = TRUST_CENTER_DOCUMENT_TYPE; exports.TRUST_CENTER_PAGE_PATH = TRUST_CENTER_PAGE_PATH; exports.isTrustCenterMonitored = isTrustCenterMonitored; exports.trustCenterMonitoringStatus = trustCenterMonitoringStatus; exports.trustFrameworksSummary = trustFrameworksSummary; exports.trustCenterDocumentUrl = trustCenterDocumentUrl; exports.trustCenterPdfUrl = trustCenterPdfUrl; exports.visibleTrustCenterSections = visibleTrustCenterSections; exports.TRUST_CENTER_SEARCH_PARAM = TRUST_CENTER_SEARCH_PARAM; exports.TRUST_CENTER_SEARCH_MAX_CHARS = TRUST_CENTER_SEARCH_MAX_CHARS; exports.TRUST_CENTER_SEARCH_DEBOUNCE_MS = TRUST_CENTER_SEARCH_DEBOUNCE_MS; exports.TRUST_CENTER_DOMAIN_PARAM = TRUST_CENTER_DOMAIN_PARAM; exports.normalizeTrustControlQuery = normalizeTrustControlQuery; exports.trustControlQueryMatcher = trustControlQueryMatcher; exports.filterTrustControlDomains = filterTrustControlDomains; exports.trustCenterControlsUrl = trustCenterControlsUrl; exports.canonicalContentRefType = canonicalContentRefType; exports.buildListUrl = buildListUrl; exports.extractItems = extractItems; exports.extractItemId = extractItemId; exports.extractCardItems = extractCardItems; exports.MEDIA_TYPE = MEDIA_TYPE; exports.isVideoMedia = isVideoMedia; exports.isImageMedia = isImageMedia; exports.isPublishableMediaType = isPublishableMediaType; exports.partitionMediaByType = partitionMediaByType; exports.IMAGE_FILE_ACCEPT = IMAGE_FILE_ACCEPT; exports.MEDIA_FILE_ACCEPT = MEDIA_FILE_ACCEPT; exports.fileMediaType = fileMediaType; exports.mediaNameKey = mediaNameKey; exports.fileContentKey = fileContentKey; exports.programStr = programStr; exports.programDateInstant = programDateInstant; exports.webinarTiming = webinarTiming; exports.programMetaLine = programMetaLine; exports.eventAudience = eventAudience; exports.programMetaFormatters = programMetaFormatters; exports.PROGRAM_META_RENDERERS = PROGRAM_META_RENDERERS; exports.NEW_TAB_FEATURES = NEW_TAB_FEATURES; exports.isModifierClick = isModifierClick; exports.stripSameOriginToPath = stripSameOriginToPath; exports.resolveHrefForRuntime = resolveHrefForRuntime; exports.resolveExternalNavigation = resolveExternalNavigation; exports.EMPTY_AUTHOR_PLACEHOLDER = EMPTY_AUTHOR_PLACEHOLDER; exports.EntityMetadataValueCell = EntityMetadataValueCell; exports.EntityMetadataValueCellSkeleton = EntityMetadataValueCellSkeleton; exports.EntityMetadataAuthorCell = EntityMetadataAuthorCell; exports.EntityMetadataAuthorCellSkeleton = EntityMetadataAuthorCellSkeleton; exports.EntityAuthorCardSkeleton = EntityAuthorCardSkeleton; exports.EntityAuthorCard = EntityAuthorCard; exports.BlogImagePlaceholder = BlogImagePlaceholder; exports.PlatformBadge = PlatformBadge; exports.PlatformBadgeSkeleton = PlatformBadgeSkeleton; exports.AdminContentCard = AdminContentCard; exports.AdminContentCardSkeleton = AdminContentCardSkeleton; exports.PAGE_HEADING_CLASS = PAGE_HEADING_CLASS; exports.SECTION_HEADING_CLASS = SECTION_HEADING_CLASS; exports.PageHeading = PageHeading; exports.HeadingLines = HeadingLines; exports.headingAccentClass = headingAccentClass; exports.accentSentenceMarks = accentSentenceMarks; exports.SectionEyebrow = SectionEyebrow; exports.SectionHeading = SectionHeading; exports.SectionHeadingSkeleton = SectionHeadingSkeleton; exports.RELEASE_CARD_LG_FRAME_CLASS = RELEASE_CARD_LG_FRAME_CLASS; exports.RELEASE_CARD_HERO_CLASS = RELEASE_CARD_HERO_CLASS; exports.RELEASE_CARD_COVER_COLUMN_CLASS = RELEASE_CARD_COVER_COLUMN_CLASS; exports.RELEASE_CARD_COVER_BOX_CLASS = RELEASE_CARD_COVER_BOX_CLASS; exports.RELEASE_CARD_TEXT_COLUMN_CLASS = RELEASE_CARD_TEXT_COLUMN_CLASS; exports.RELEASE_CARD_VERSION_ROW_CLASS = RELEASE_CARD_VERSION_ROW_CLASS; exports.RELEASE_CARD_VERSION_CLASS = RELEASE_CARD_VERSION_CLASS; exports.RELEASE_CARD_TITLE_BOX_CLASS = RELEASE_CARD_TITLE_BOX_CLASS; exports.RELEASE_CARD_TITLE_CLASS = RELEASE_CARD_TITLE_CLASS; exports.RELEASE_CARD_SUMMARY_BOX_CLASS = RELEASE_CARD_SUMMARY_BOX_CLASS; exports.RELEASE_CARD_SUMMARY_CLASS = RELEASE_CARD_SUMMARY_CLASS; exports.RELEASE_CARD_CHANGELOG_CLASS = RELEASE_CARD_CHANGELOG_CLASS; exports.RELEASE_CARD_GRID_CLASS = RELEASE_CARD_GRID_CLASS; exports.RELEASE_CARD_CELL_DIVIDER_CLASS = RELEASE_CARD_CELL_DIVIDER_CLASS; exports.RELEASE_CARD_CELL_CLASS = RELEASE_CARD_CELL_CLASS; exports.RELEASE_CARD_CELL_STACK_CLASS = RELEASE_CARD_CELL_STACK_CLASS; exports.RELEASE_CARD_CELL_LABEL_CLASS = RELEASE_CARD_CELL_LABEL_CLASS; exports.RELEASE_CARD_CELL_LABELS = RELEASE_CARD_CELL_LABELS; exports.ProductReleaseCardSkeleton = ProductReleaseCardSkeleton; exports.defaultBuildProductReleaseCardProps = defaultBuildProductReleaseCardProps; exports.buildProductReleaseCardProps = buildProductReleaseCardProps; exports.BlogCardSkeleton = BlogCardSkeleton; exports.BlogCard = BlogCard; exports.CustomerInterviewCardSkeleton = CustomerInterviewCardSkeleton; exports.CustomerInterviewCard = CustomerInterviewCard; exports.formatInvestorUpdatePeriod = formatInvestorUpdatePeriod; exports.InvestorUpdateCardSkeleton = InvestorUpdateCardSkeleton; exports.InvestorUpdateCard = InvestorUpdateCard; exports.OnboardingGuideCardSkeleton = OnboardingGuideCardSkeleton; exports.OnboardingGuideCard = OnboardingGuideCard; exports.RoadmapVoteButton = RoadmapVoteButton; exports.TaskTypeIcon = TaskTypeIcon; exports.RoadmapCardSkeleton = RoadmapCardSkeleton; exports.RoadmapCard = RoadmapCard; exports.ProgramCardSkeleton = ProgramCardSkeleton; exports.ProgramCard = ProgramCard;
|