@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.
Files changed (83) hide show
  1. package/dist/case-study-card-FMH622O5.cjs +25 -0
  2. package/dist/{chunk-F67SEXCW.cjs → chunk-3PCSEZNZ.cjs} +53 -53
  3. package/dist/{chunk-R3JX4MXD.cjs → chunk-3ZLPYEL5.cjs} +10 -10
  4. package/dist/{chunk-SWEPHSIP.cjs → chunk-4JZDJ34E.cjs} +17 -17
  5. package/dist/{chunk-DGFDBPO7.cjs → chunk-5GJM7VRR.cjs} +1 -94
  6. package/dist/{chunk-E64HPPRH.cjs → chunk-5PK22JP7.cjs} +50 -50
  7. package/dist/{chunk-57B5RUYD.cjs → chunk-64KBI5MI.cjs} +2 -2
  8. package/dist/{chunk-PMX6QNNN.cjs → chunk-7LJSGOWS.cjs} +18 -16
  9. package/dist/{chunk-ASMNNSUQ.cjs → chunk-7PNRXJX2.cjs} +3 -3
  10. package/dist/{chunk-VAGZJRYV.cjs → chunk-ALA4KHTE.cjs} +6 -6
  11. package/dist/{chunk-VFZFCRAL.cjs → chunk-AQXKXZWB.cjs} +4 -4
  12. package/dist/{chunk-4LFB4YY3.cjs → chunk-BDDOC425.cjs} +8 -8
  13. package/dist/{chunk-VFUMM6JC.cjs → chunk-BEMGJDXI.cjs} +2 -2
  14. package/dist/{chunk-HY6BCZH7.cjs → chunk-BNUZKBNV.cjs} +3 -3
  15. package/dist/{chunk-Y3EBUFX4.cjs → chunk-CGQ7CL62.cjs} +213 -1647
  16. package/dist/{chunk-ODF3KCRK.cjs → chunk-DOM5CUEY.cjs} +33 -31
  17. package/dist/{chunk-36GYLB3Z.cjs → chunk-G2N7INFT.cjs} +28 -28
  18. package/dist/{chunk-42JGOJCB.cjs → chunk-HXLOCZMG.cjs} +595 -591
  19. package/dist/{chunk-CZIMISAR.cjs → chunk-JB2SEF6Q.cjs} +7 -7
  20. package/dist/{chunk-6SJYFUGD.cjs → chunk-JMFF3L3T.cjs} +28 -26
  21. package/dist/{chunk-LJT2KRE2.cjs → chunk-KLTUTZBO.cjs} +24 -24
  22. package/dist/{chunk-EHJE3UWZ.cjs → chunk-LBGAHB6X.cjs} +20 -20
  23. package/dist/{chunk-TUXPFF4P.cjs → chunk-LGNJTSKB.cjs} +37 -35
  24. package/dist/{chunk-FHTTRWAK.cjs → chunk-LU2DGST4.cjs} +97 -95
  25. package/dist/chunk-MQPTOJMF.cjs +1504 -0
  26. package/dist/{chunk-XXJL5GY3.cjs → chunk-OJZBZH56.cjs} +3 -3
  27. package/dist/{chunk-TF2XYDH3.cjs → chunk-QIATO42V.cjs} +3 -3
  28. package/dist/{chunk-RB7VLVMD.cjs → chunk-R6BKQKIF.cjs} +9 -7
  29. package/dist/{chunk-BTVO676B.cjs → chunk-S3YDUX2I.cjs} +114 -112
  30. package/dist/{chunk-VISK6LKE.cjs → chunk-SDZG7VV7.cjs} +5 -5
  31. package/dist/{chunk-V3W56L2D.cjs → chunk-SIDDZZKL.cjs} +38 -38
  32. package/dist/chunk-SZHDXXMK.cjs +102 -0
  33. package/dist/{chunk-5YJWT5ZQ.cjs → chunk-T47VAUYR.cjs} +91 -89
  34. package/dist/{chunk-IQQ3SLUK.cjs → chunk-T7NDPPLF.cjs} +23 -21
  35. package/dist/{chunk-5P4TDV7V.cjs → chunk-TUAATMUE.cjs} +5 -93
  36. package/dist/{chunk-KWZ62LPZ.cjs → chunk-TZP7PSPG.cjs} +249 -243
  37. package/dist/{chunk-USMR73ND.cjs → chunk-U5VQFKRZ.cjs} +6 -6
  38. package/dist/{chunk-L5CKY5WA.cjs → chunk-UW6AOF42.cjs} +22 -22
  39. package/dist/chunk-V4FXUIMH.cjs +92 -0
  40. package/dist/{chunk-2JRSYWFP.cjs → chunk-VXAKQRV7.cjs} +5 -5
  41. package/dist/{chunk-3XLDYEQD.cjs → chunk-VY3NGJRH.cjs} +53 -51
  42. package/dist/{chunk-TOPGBOCN.cjs → chunk-WCSWWVPF.cjs} +2 -2
  43. package/dist/{chunk-EQBJHJS7.cjs → chunk-WMZIBRTR.cjs} +2 -2
  44. package/dist/{chunk-5QP3K2CE.cjs → chunk-XEYL6AFZ.cjs} +9 -9
  45. package/dist/{chunk-VDXBACD3.cjs → chunk-XVAVQ4BK.cjs} +116 -82
  46. package/dist/{chunk-5AOKXXHV.cjs → chunk-Y6MQBLTZ.cjs} +4 -4
  47. package/dist/{cloud-tenants-ISGAMTJD.cjs → cloud-tenants-EUH42CCL.cjs} +27 -24
  48. package/dist/components/case-studies/index.cjs +45 -41
  49. package/dist/components/chat/index.cjs +21 -17
  50. package/dist/components/contact/index.cjs +28 -25
  51. package/dist/components/docs/index.cjs +31 -28
  52. package/dist/components/embeds/index.cjs +28 -25
  53. package/dist/components/faq/index.cjs +29 -26
  54. package/dist/components/features/index.cjs +28 -24
  55. package/dist/components/features/use-file-playback.d.ts +6 -4
  56. package/dist/components/features/use-file-playback.d.ts.map +1 -1
  57. package/dist/components/features/use-file-playback.js +16 -7
  58. package/dist/components/help-center-pages/index.cjs +131 -127
  59. package/dist/components/index.cjs +94 -90
  60. package/dist/components/meeting-scheduler/index.cjs +95 -92
  61. package/dist/components/navigation/index.cjs +30 -27
  62. package/dist/components/navigation/nav-panel.d.ts.map +1 -1
  63. package/dist/components/navigation/nav-panel.js +47 -13
  64. package/dist/components/onboarding-guides/index.cjs +30 -27
  65. package/dist/components/product-demo/index.cjs +38 -35
  66. package/dist/components/related-content/index.cjs +15 -12
  67. package/dist/components/tickets/index.cjs +33 -30
  68. package/dist/components/ui/index.cjs +28 -24
  69. package/dist/{devices-AHJX6ACJ.cjs → devices-WL3I23EE.cjs} +28 -25
  70. package/dist/{embeddable-chat-DI7ZZTBP.cjs → embeddable-chat-KEWUGQIF.cjs} +99 -95
  71. package/dist/hooks/index.cjs +12 -10
  72. package/dist/index.cjs +36 -30
  73. package/dist/{knowledge-FH5GVRVP.cjs → knowledge-O3PXUX73.cjs} +28 -25
  74. package/dist/{logs-JBIHHLUQ.cjs → logs-XODCXWYI.cjs} +35 -32
  75. package/dist/{policies-XLJ2ABY5.cjs → policies-CQACBIKK.cjs} +31 -28
  76. package/dist/{remote-session-TC3BZDBZ.cjs → remote-session-TGM2OTTV.cjs} +12 -10
  77. package/dist/{scripts-CQLXM7PP.cjs → scripts-QMM6SEB5.cjs} +34 -31
  78. package/dist/{software-update-7NYZ7L76.cjs → software-update-CCCKS4ZE.cjs} +31 -28
  79. package/dist/{tickets-board-YT25IX3O.cjs → tickets-board-FB5AGLJD.cjs} +16 -14
  80. package/dist/{video-file-player-4TXA7BZF.cjs → video-file-player-SIJW5UWU.cjs} +19 -9
  81. package/package.json +1 -1
  82. package/src/components/features/use-file-playback.ts +33 -14
  83. package/src/components/navigation/nav-panel.tsx +74 -14
@@ -1,9 +1,8 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } 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";
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 _chunkHY6BCZH7cjs = require('./chunk-HY6BCZH7.cjs');
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 _chunkNTPX5GXIcjs = require('./chunk-NTPX5GXI.cjs');
61
+ var _chunkORO54HDFcjs = require('./chunk-ORO54HDF.cjs');
53
62
 
54
63
 
55
- var _chunkVFZFCRALcjs = require('./chunk-VFZFCRAL.cjs');
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, _chunkVFZFCRALcjs.ViewportBreakpoints, { children })
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', _23 => _23.proxyPrefix]);
886
- const skipDomains = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _24 => _24.skipDomains]), () => ( []));
887
- const directHttps = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _25 => _25.directHttps]), () => ( false));
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 (e5) {
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 (e6) {
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', _26 => _26.proxyImageUrl])) return options.proxyImageUrl(url);
307
+ if (_optionalChain([options, 'optionalAccess', _5 => _5.proxyImageUrl])) return options.proxyImageUrl(url);
939
308
  return _nullishCoalesce(getProxiedImageUrl(url, {
940
- proxyPrefix: _optionalChain([runtime, 'optionalAccess', _27 => _27.endpoints, 'access', _28 => _28.imageProxyUrlPrefix]),
941
- skipDomains: _optionalChain([runtime, 'optionalAccess', _29 => _29.endpoints, 'access', _30 => _30.imageProxySkipDomains]),
942
- directHttps: _nullishCoalesce(_optionalChain([options, 'optionalAccess', _31 => _31.directHttps]), () => ( true))
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 _chunkHY6BCZH7cjs.formatDateWithTimezone.call(void 0, ymd.join("-"), null, style) || dateString;
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', _32 => _32.toLowerCase, 'call', _33 => _33()]) || "";
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', _34 => _34.media_type]) === MEDIA_TYPE.VIDEO;
678
+ return _optionalChain([media, 'optionalAccess', _13 => _13.media_type]) === MEDIA_TYPE.VIDEO;
1318
679
  }
1319
680
  function isImageMedia(media) {
1320
- return _optionalChain([media, 'optionalAccess', _35 => _35.media_type]) === MEDIA_TYPE.IMAGE;
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: _chunkHY6BCZH7cjs.formatProgramDate,
1411
- duration: _chunkHY6BCZH7cjs.formatDurationCompact,
1412
- webinarMeta: _chunkHY6BCZH7cjs.formatWebinarTimeMeta
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 (e7) {
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
- _chunkHY6BCZH7cjs.SquareAvatar,
875
+ _chunkBNUZKBNVcjs.SquareAvatar,
1555
876
  {
1556
877
  src: author.avatar_url || "",
1557
878
  alt: fullName,
1558
- fallback: _chunkHY6BCZH7cjs.nameInitials.call(void 0, fullName, ""),
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', _39 => _39.full_name]);
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 ? _chunkHY6BCZH7cjs.formatDate.call(void 0, 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
- function EntityPortraitCardSkeleton({ typeLabel, className }) {
1803
- 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, PORTRAIT_BODY), children: [
1804
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { className: _chunk65VVJSQZcjs.cn.call(void 0, PORTRAIT_MEDIA, "rounded-sm") }),
1805
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: PORTRAIT_TITLE_ZONE, children: [
1806
- typeLabel && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1807
- StatusBadge,
1808
- {
1809
- variant: "button",
1810
- colorScheme: "accentBorder",
1811
- singleLine: true,
1812
- text: typeLabel,
1813
- className: "self-start"
1814
- }
1815
- ),
1816
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h4", lines: typeLabel ? 2 : 3, className: _chunk65VVJSQZcjs.cn.call(void 0, "w-full", PORTRAIT_TITLE_LEADING) })
1817
- ] }),
1818
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: PORTRAIT_FOOTER, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: PORTRAIT_PERSON_ROW, children: [
1819
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.MediaSkeleton.Avatar, { size: "md", className: "shrink-0" }),
1820
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, PORTRAIT_PERSON_TEXT, "gap-0"), children: [
1821
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h6", className: "w-32" }),
1822
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h6", className: "w-24" })
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 = _chunk5P4TDV7Vcjs.getPlatformBrandClasses.call(void 0, platform.name);
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, _chunk5P4TDV7Vcjs.PlatformMark, { platform: platform.name, className: sizes.icon }),
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', _41 => _41.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: [
1960
- _optionalChain([platforms, 'optionalAccess', _42 => _42.map, 'call', _43 => _43((p) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
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 = _chunk5P4TDV7Vcjs.getPlatformBrandClasses.call(void 0, platform);
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', _50 => _50.features_added, 'optionalAccess', _51 => _51.length]), () => ( 0)),
2418
- fixes: _nullishCoalesce(_optionalChain([release, 'access', _52 => _52.bugs_fixed, 'optionalAccess', _53 => _53.length]), () => ( 0)),
2419
- improvements: _nullishCoalesce(_optionalChain([release, 'access', _54 => _54.improvements, 'optionalAccess', _55 => _55.length]), () => ( 0)),
2420
- breaking: _nullishCoalesce(_optionalChain([release, 'access', _56 => _56.breaking_changes, 'optionalAccess', _57 => _57.length]), () => ( 0))
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 ? _chunkHY6BCZH7cjs.formatDateWithTimezone.call(void 0, post.published_at, null, "medium") : "";
2615
- const firstCategory = _optionalChain([post, 'access', _58 => _58.categories, 'optionalAccess', _59 => _59.find, 'call', _60 => _60((c) => c && c.name), 'optionalAccess', _61 => _61.name]);
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 ? _chunkHY6BCZH7cjs.formatDateWithTimezone.call(void 0, post.published_at, null, "medium") : "";
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 ? _chunkHY6BCZH7cjs.formatDateWithTimezone.call(void 0, post.published_at, null, "medium") : "";
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', _103 => _103.user, 'optionalAccess', _104 => _104.full_name]), _optionalChain([interview, 'access', _105 => _105.msp, 'optionalAccess', _106 => _106.name])].filter(Boolean).join(" \xB7 ") || "Customer interview" }) }),
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', _107 => _107.user, 'optionalAccess', _108 => _108.full_name]) || "Customer",
3124
- avatarUrl: _optionalChain([interview, 'access', _109 => _109.user, 'optionalAccess', _110 => _110.avatar_url]),
3125
- subtitle: _nullishCoalesce(_optionalChain([interview, 'access', _111 => _111.msp, 'optionalAccess', _112 => _112.name]), () => ( null)),
3126
- iconOverlayUrl: _nullishCoalesce(_optionalChain([interview, 'access', _113 => _113.msp, 'optionalAccess', _114 => _114.icon_url]), () => ( null))
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', _115 => _115.user, 'optionalAccess', _116 => _116.avatar_url]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
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', _117 => _117.user, 'optionalAccess', _118 => _118.full_name]) || "Customer",
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', _119 => _119.user, 'optionalAccess', _120 => _120.full_name]) || "A").charAt(0).toUpperCase() }) }),
3163
- _optionalChain([interview, 'access', _121 => _121.msp, 'optionalAccess', _122 => _122.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,
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', _123 => _123.user, 'optionalAccess', _124 => _124.full_name]) || "Anonymous",
3178
- _optionalChain([interview, 'access', _125 => _125.msp, 'optionalAccess', _126 => _126.name]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary", children: [
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', _127 => _127.user, 'optionalAccess', _128 => _128.job_title]) || " " })
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) => _chunkHY6BCZH7cjs.formatDateWithTimezone.call(void 0, d, null, _optionalChain([options, 'optionalAccess', _129 => _129.monthFormat]) === "long" ? "monthYear" : "monthYearShort") || "?";
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', _130 => _130.strategic_update, 'optionalAccess', _131 => _131.slice, 'call', _132 => _132(0, 120)]) || _optionalChain([update, 'access', _133 => _133.content, 'optionalAccess', _134 => _134.slice, 'call', _135 => _135(0, 120)]) || "No description",
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 ? _chunkHY6BCZH7cjs.formatDurationMMSS.call(void 0, Math.floor(guide.highlight_video_duration_ms / 1e3)) : "";
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', _136 => _136.author, 'optionalAccess', _137 => _137.full_name, 'optionalAccess', _138 => _138.trim, 'call', _139 => _139()]) || "";
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', _140 => _140.screenshots, 'optionalAccess', _141 => _141.length]), () => ( 0))) > 0;
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', _142 => _142.title, 'optionalAccess', _143 => _143.substring, 'call', _144 => _144(0, 2)]) || "??" })
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, _chunkVFUMM6JCcjs.AvatarStack, { size: "xs", people: assigneePeople(item.assignees), className: "shrink-0" }) : null
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', _145 => _145.title, 'optionalAccess', _146 => _146.substring, 'call', _147 => _147(0, 2)]) || "??" }) }),
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, _chunkVFUMM6JCcjs.AvatarStack, { size: "xs", people: assigneePeople(item.assignees), className: "shrink-0" }) : null,
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, _chunkHY6BCZH7cjs.SquareAvatarSkeleton, { ...EDITORIAL_PERSON_AVATAR, className: "shrink-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, _chunkHY6BCZH7cjs.TagSkeleton, {}, i)) })
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, _chunkHY6BCZH7cjs.SquareAvatarSkeleton, { variant: "round", size: "sm" }, i)) })
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', _148 => _148.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: [
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
- _chunkHY6BCZH7cjs.SquareAvatar,
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 = _chunkHY6BCZH7cjs.formatProgramDate.call(void 0, zonedDate, "medium");
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: _chunkHY6BCZH7cjs.formatProgramDate.call(void 0, zonedDate, "weekday"),
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', _149 => _149.labels, 'optionalAccess', _150 => _150.singular])].filter(
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 = _chunkHY6BCZH7cjs.formatProgramDate.call(void 0, zonedDate, "weekday");
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(_chunkHY6BCZH7cjs.formatProgramDateRange.call(void 0, zonedDate, endAt), () => ( dateFormat));
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, _chunkHY6BCZH7cjs.Tag, { as: "span", label: tag, variant: "outline" }, tag)) })
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
- _chunkHY6BCZH7cjs.SquareAvatar,
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;