@flamingo-stack/openframe-frontend-core 0.0.705-snapshot.20261006160157 → 0.0.705

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 (194) hide show
  1. package/dist/{chunk-WCVZCGK5.cjs → chunk-2QEUFXNS.cjs} +71 -312
  2. package/dist/{chunk-N45D4ZXQ.js → chunk-2YXVWZVF.js} +715 -959
  3. package/dist/{chunk-7OFPU7WE.cjs → chunk-3MX5S4CF.cjs} +2547 -877
  4. package/dist/{chunk-MB4PNY7C.cjs → chunk-4I45Y3DN.cjs} +6 -6
  5. package/dist/{chunk-K6O43WDL.cjs → chunk-4KX6OED2.cjs} +46 -46
  6. package/dist/{chunk-JPG7OHEG.js → chunk-5HBHO5TB.js} +1 -1
  7. package/dist/{chunk-3PLDQDE6.cjs → chunk-6NJKKO73.cjs} +15 -15
  8. package/dist/{chunk-O2RSAA5M.js → chunk-6SEANMOU.js} +11 -11
  9. package/dist/{chunk-WMX26HB5.js → chunk-6XIF2Z7I.js} +3 -3
  10. package/dist/{chunk-TQ4LB2DS.cjs → chunk-7LS22BZU.cjs} +14 -14
  11. package/dist/{chunk-7GEBFJT2.js → chunk-7VVFKJY5.js} +3429 -1759
  12. package/dist/{chunk-DDVBX42E.cjs → chunk-A75QY6CD.cjs} +21 -21
  13. package/dist/{chunk-OF6GEI5A.cjs → chunk-ABU3TGXA.cjs} +3 -3
  14. package/dist/{chunk-4CJMQLB5.js → chunk-AQWZNP6A.js} +4 -4
  15. package/dist/{chunk-FI6GMDO7.js → chunk-CH5232HV.js} +662 -2455
  16. package/dist/{chunk-Y2GSOUCS.cjs → chunk-D7BTSVMS.cjs} +2 -2
  17. package/dist/{chunk-4ILM7W2R.js → chunk-DENB2XJC.js} +2 -2
  18. package/dist/{chunk-6232S532.js → chunk-DW7G4KG3.js} +3 -3
  19. package/dist/{chunk-3NCM4ZQB.js → chunk-F6AFPNDF.js} +15 -15
  20. package/dist/{chunk-PXOQIA5K.js → chunk-F6I6XZMN.js} +5 -5
  21. package/dist/{chunk-G6UMNAVI.js → chunk-FCGC42TS.js} +61 -57
  22. package/dist/{chunk-BHI6GVC4.js → chunk-G5A3PSPV.js} +691 -1080
  23. package/dist/{chunk-HZ7CBXPL.cjs → chunk-HPWWNJE7.cjs} +89 -89
  24. package/dist/{chunk-SW5ZV2BN.cjs → chunk-IHERL5V4.cjs} +34 -34
  25. package/dist/{chunk-UJ33ZXDT.cjs → chunk-IKTQ3ZAG.cjs} +6 -6
  26. package/dist/{chunk-SEKYEWQG.cjs → chunk-JEZKGCZI.cjs} +26 -26
  27. package/dist/{chunk-7SCNMP2B.cjs → chunk-KOWVJD4V.cjs} +56 -56
  28. package/dist/chunk-LMBC5FFP.js +43 -0
  29. package/dist/{chunk-F57ECE2I.js → chunk-MFFCUVWG.js} +1 -1
  30. package/dist/{chunk-KUC673HM.js → chunk-MKXO4Q5P.js} +142 -383
  31. package/dist/{chunk-6NTPY5QA.cjs → chunk-MMOODW57.cjs} +94 -1887
  32. package/dist/{chunk-CUME3VTQ.js → chunk-MP2C3LJ4.js} +1 -1
  33. package/dist/{chunk-VX4E6YSB.cjs → chunk-N3COXDBH.cjs} +5 -41
  34. package/dist/{chunk-FXJ3WWUB.js → chunk-NDESEPW5.js} +0 -68
  35. package/dist/chunk-O43V3EOS.js +252 -0
  36. package/dist/{chunk-PLYEKV3N.cjs → chunk-OHFS7VOU.cjs} +2 -2
  37. package/dist/{chunk-M75XEEGT.cjs → chunk-OUY3HHW6.cjs} +539 -928
  38. package/dist/{chunk-CZ7Y7UG4.js → chunk-PDWVPI3S.js} +72 -4
  39. package/dist/{chunk-TE773HEH.js → chunk-PN2RKPDF.js} +10 -10
  40. package/dist/{chunk-3EZ4HHAP.js → chunk-QFXRPRFT.js} +3 -3
  41. package/dist/chunk-QZVSJF2K.cjs +252 -0
  42. package/dist/chunk-RALRPFDW.cjs +43 -0
  43. package/dist/{chunk-YGJKKDDM.js → chunk-RBDP4WDE.js} +6 -6
  44. package/dist/{chunk-LM7TXMLU.cjs → chunk-RKV5B7EU.cjs} +4 -72
  45. package/dist/{chunk-UVTD52MD.cjs → chunk-TYWLNCNH.cjs} +82 -14
  46. package/dist/{chunk-IKJA3Y7Z.js → chunk-VA5T32XA.js} +2 -2
  47. package/dist/{chunk-GWQEYPYM.cjs → chunk-VESKITRQ.cjs} +732 -728
  48. package/dist/{chunk-RQRX4YC3.cjs → chunk-VHCACDKP.cjs} +39 -39
  49. package/dist/{chunk-4IBPRIQH.js → chunk-VR2ZLFCP.js} +1 -1
  50. package/dist/{chunk-RTIPR53L.cjs → chunk-WA6GUYQ4.cjs} +104 -104
  51. package/dist/{chunk-T5TMCHWM.js → chunk-X5MQ7JRP.js} +9 -9
  52. package/dist/{chunk-LLSUVPQC.cjs → chunk-X72J4ACL.cjs} +8 -252
  53. package/dist/{chunk-UDFRUKLC.cjs → chunk-XOYH2YQE.cjs} +2 -2
  54. package/dist/{chunk-LVSFKENJ.cjs → chunk-YFBM2K6X.cjs} +4 -4
  55. package/dist/{chunk-DWPAAWMR.js → chunk-YHM5AWTT.js} +6 -6
  56. package/dist/{chunk-NCPTID44.js → chunk-Z2VNQQ74.js} +942 -978
  57. package/dist/{chunk-STHZBOQI.cjs → chunk-ZSAGLQOD.cjs} +17 -17
  58. package/dist/{chunk-VZICIQW2.js → chunk-ZSAO2HBW.js} +15 -15
  59. package/dist/components/case-studies/index.cjs +32 -30
  60. package/dist/components/case-studies/index.js +16 -14
  61. package/dist/components/chat/entity-cards/case-study-card.d.ts +4 -11
  62. package/dist/components/chat/entity-cards/case-study-card.d.ts.map +1 -1
  63. package/dist/components/chat/index.cjs +11 -9
  64. package/dist/components/chat/index.js +16 -14
  65. package/dist/components/chat/utils/icon-library.d.ts.map +1 -1
  66. package/dist/components/contact/index.cjs +14 -12
  67. package/dist/components/contact/index.js +13 -11
  68. package/dist/components/docs/index.cjs +17 -15
  69. package/dist/components/docs/index.js +16 -14
  70. package/dist/components/embeds/index.cjs +14 -12
  71. package/dist/components/embeds/index.js +13 -11
  72. package/dist/components/faq/index.cjs +15 -13
  73. package/dist/components/faq/index.js +14 -12
  74. package/dist/components/features/index.cjs +14 -12
  75. package/dist/components/features/index.js +23 -21
  76. package/dist/components/footer-waitlist-button.d.ts +29 -0
  77. package/dist/components/footer-waitlist-button.d.ts.map +1 -0
  78. package/dist/components/footer.d.ts +47 -0
  79. package/dist/components/footer.d.ts.map +1 -0
  80. package/dist/components/help-center-pages/index.cjs +120 -118
  81. package/dist/components/help-center-pages/index.js +35 -33
  82. package/dist/components/icons/index.cjs +5 -3
  83. package/dist/components/icons/index.js +11 -9
  84. package/dist/components/icons-v2-generated/index.cjs +5 -3
  85. package/dist/components/icons-v2-generated/index.js +4 -2
  86. package/dist/components/index.cjs +159 -86
  87. package/dist/components/index.d.ts +2 -0
  88. package/dist/components/index.d.ts.map +1 -1
  89. package/dist/components/index.js +402 -329
  90. package/dist/components/loading/page-layout-skeleton.d.ts +1 -1
  91. package/dist/components/meeting-scheduler/index.cjs +64 -62
  92. package/dist/components/meeting-scheduler/index.js +14 -12
  93. package/dist/components/navigation/client-only-header.d.ts +8 -0
  94. package/dist/components/navigation/client-only-header.d.ts.map +1 -0
  95. package/dist/components/navigation/header-skeleton.d.ts +12 -0
  96. package/dist/components/navigation/header-skeleton.d.ts.map +1 -0
  97. package/dist/components/navigation/header.d.ts +9 -0
  98. package/dist/components/navigation/header.d.ts.map +1 -0
  99. package/dist/components/navigation/index.cjs +16 -28
  100. package/dist/components/navigation/index.d.ts +10 -14
  101. package/dist/components/navigation/index.d.ts.map +1 -1
  102. package/dist/components/navigation/index.js +26 -38
  103. package/dist/components/navigation/mingo-ai-button.d.ts +3 -38
  104. package/dist/components/navigation/mingo-ai-button.d.ts.map +1 -1
  105. package/dist/components/navigation/mobile-nav-panel.d.ts +10 -0
  106. package/dist/components/navigation/mobile-nav-panel.d.ts.map +1 -0
  107. package/dist/components/navigation/navigation-sidebar-item.d.ts +2 -1
  108. package/dist/components/navigation/navigation-sidebar-item.d.ts.map +1 -1
  109. package/dist/components/navigation/top-navigation.d.ts +2 -2
  110. package/dist/components/navigation/top-navigation.d.ts.map +1 -1
  111. package/dist/components/onboarding-guides/index.cjs +17 -15
  112. package/dist/components/onboarding-guides/index.js +16 -14
  113. package/dist/components/related-content/index.cjs +8 -10
  114. package/dist/components/related-content/index.js +7 -9
  115. package/dist/components/tickets/index.cjs +18 -16
  116. package/dist/components/tickets/index.js +17 -15
  117. package/dist/components/ui/index.cjs +14 -12
  118. package/dist/components/ui/index.js +19 -17
  119. package/dist/hooks/index.cjs +11 -19
  120. package/dist/hooks/index.d.ts +0 -1
  121. package/dist/hooks/index.d.ts.map +1 -1
  122. package/dist/hooks/index.js +11 -19
  123. package/dist/hooks/ui/index.d.ts +0 -3
  124. package/dist/hooks/ui/index.d.ts.map +1 -1
  125. package/dist/index.cjs +22 -55
  126. package/dist/index.js +196 -229
  127. package/dist/types/case-study.d.ts +0 -9
  128. package/dist/types/case-study.d.ts.map +1 -1
  129. package/dist/types/navigation.d.ts +65 -95
  130. package/dist/types/navigation.d.ts.map +1 -1
  131. package/dist/utils/index.cjs +0 -55
  132. package/dist/utils/index.d.ts +0 -1
  133. package/dist/utils/index.d.ts.map +1 -1
  134. package/dist/utils/index.js +1 -50
  135. package/dist/utils/source-icons.d.ts.map +1 -1
  136. package/package.json +1 -1
  137. package/src/components/chat/entity-cards/case-study-card.tsx +5 -115
  138. package/src/components/chat/utils/icon-library.tsx +1 -35
  139. package/src/components/footer-waitlist-button.tsx +53 -0
  140. package/src/components/footer.tsx +195 -0
  141. package/src/components/index.ts +2 -0
  142. package/src/components/loading/page-layout-skeleton.tsx +1 -1
  143. package/src/components/navigation/client-only-header.tsx +22 -0
  144. package/src/components/navigation/header-skeleton.tsx +74 -0
  145. package/src/components/navigation/header.tsx +429 -0
  146. package/src/components/navigation/index.ts +14 -21
  147. package/src/components/navigation/mingo-ai-button.tsx +63 -139
  148. package/src/components/navigation/mobile-nav-panel.tsx +155 -0
  149. package/src/components/navigation/navigation-sidebar-item.tsx +2 -1
  150. package/src/components/navigation/ticket-alerts-button.tsx +2 -2
  151. package/src/components/navigation/top-navigation.tsx +2 -2
  152. package/src/hooks/index.ts +0 -1
  153. package/src/hooks/ui/index.ts +0 -3
  154. package/src/styles/chat-animations.css +2 -57
  155. package/src/types/case-study.ts +0 -16
  156. package/src/types/navigation.ts +66 -80
  157. package/src/utils/index.ts +0 -1
  158. package/src/utils/source-icons.ts +0 -13
  159. package/dist/components/navigation/mobile-nav-sheet-id.d.ts +0 -3
  160. package/dist/components/navigation/mobile-nav-sheet-id.d.ts.map +0 -1
  161. package/dist/components/navigation/mobile-nav-sheet.d.ts +0 -48
  162. package/dist/components/navigation/mobile-nav-sheet.d.ts.map +0 -1
  163. package/dist/components/navigation/nav-item-row.d.ts +0 -27
  164. package/dist/components/navigation/nav-item-row.d.ts.map +0 -1
  165. package/dist/components/navigation/nav-panel.d.ts +0 -43
  166. package/dist/components/navigation/nav-panel.d.ts.map +0 -1
  167. package/dist/components/navigation/site-footer.d.ts +0 -28
  168. package/dist/components/navigation/site-footer.d.ts.map +0 -1
  169. package/dist/components/navigation/site-header.d.ts +0 -61
  170. package/dist/components/navigation/site-header.d.ts.map +0 -1
  171. package/dist/components/navigation/site-nav-link.d.ts +0 -26
  172. package/dist/components/navigation/site-nav-link.d.ts.map +0 -1
  173. package/dist/hooks/ui/use-active-section.d.ts +0 -10
  174. package/dist/hooks/ui/use-active-section.d.ts.map +0 -1
  175. package/dist/hooks/ui/use-nav-menus.d.ts +0 -48
  176. package/dist/hooks/ui/use-nav-menus.d.ts.map +0 -1
  177. package/dist/hooks/ui/use-visitor-os.d.ts +0 -15
  178. package/dist/hooks/ui/use-visitor-os.d.ts.map +0 -1
  179. package/dist/hooks/use-location-hash.d.ts +0 -9
  180. package/dist/hooks/use-location-hash.d.ts.map +0 -1
  181. package/dist/utils/visitor-os.d.ts +0 -45
  182. package/dist/utils/visitor-os.d.ts.map +0 -1
  183. package/src/components/navigation/mobile-nav-sheet-id.ts +0 -2
  184. package/src/components/navigation/mobile-nav-sheet.tsx +0 -241
  185. package/src/components/navigation/nav-item-row.tsx +0 -129
  186. package/src/components/navigation/nav-panel.tsx +0 -196
  187. package/src/components/navigation/site-footer.tsx +0 -256
  188. package/src/components/navigation/site-header.tsx +0 -339
  189. package/src/components/navigation/site-nav-link.tsx +0 -41
  190. package/src/hooks/ui/use-active-section.ts +0 -44
  191. package/src/hooks/ui/use-nav-menus.ts +0 -200
  192. package/src/hooks/ui/use-visitor-os.ts +0 -33
  193. package/src/hooks/use-location-hash.ts +0 -34
  194. package/src/utils/visitor-os.ts +0 -84
@@ -3,70 +3,29 @@ import {
3
3
  next_image_default
4
4
  } from "./chunk-FBZMAPWO.js";
5
5
  import {
6
- NEAR_VIEWPORT_ROOT_MARGIN,
7
6
  ViewportBreakpoints,
8
7
  getPlatformBrandClasses,
9
- platformAccentVarName,
10
- useAuthedAssetSrc,
11
8
  useAuthedImageSrc,
12
9
  useImageEdgeColor,
13
10
  useIsTruncated,
14
- useNearViewport,
15
11
  useOgPlaceholderUrl
16
- } from "./chunk-FXJ3WWUB.js";
12
+ } from "./chunk-NDESEPW5.js";
17
13
  import {
18
- ClickUpIcon,
19
- FacebookIcon,
20
14
  FigmaIcon,
21
- FlamingoLogo,
22
- GitHubIcon,
23
- HubspotIcon,
24
15
  ImageIcon,
25
- InstagramIcon,
26
- LinkedInIcon,
27
16
  MiamiCyberGangLogoFaceOnly,
28
- MingoIcon,
29
- MlgLogo,
30
17
  OpenFrameLogo,
31
- OpenmspLogo,
32
18
  PlayFilledIcon,
33
- SlackIcon,
34
19
  ThumbsDownIcon,
35
20
  ThumbsUpIcon,
36
- VolumeOffFilledIcon,
37
- WhatsAppIcon,
38
- XLogo,
39
- YouTubeIcon
40
- } from "./chunk-N45D4ZXQ.js";
21
+ VolumeOffFilledIcon
22
+ } from "./chunk-O43V3EOS.js";
41
23
  import {
42
- BookIcon,
43
- BracketCurlyIcon,
44
- BriefcaseIcon,
45
- BugIcon,
46
- CalendarIcon,
47
- ChatsIcon,
48
- ClickupLogoGreyIcon,
49
- CompassIcon,
50
- FileIcon,
51
- GithubIcon,
52
- GraduationCapIcon,
53
- HeadphoneIcon,
54
- HubspotLogoGreyIcon,
55
- LayersIcon,
56
- NewspaperIcon,
57
- Rocket02Icon,
58
- SlackLogoGreyIcon,
59
- TicketIcon,
60
- VideoRecorderIcon,
61
- XmarkCircleIcon,
62
- icons_v2_generated_exports
63
- } from "./chunk-NCPTID44.js";
24
+ XmarkCircleIcon
25
+ } from "./chunk-LMBC5FFP.js";
64
26
  import {
65
27
  useChatRuntime
66
28
  } from "./chunk-E4ABZWTJ.js";
67
- import {
68
- SearchIcon
69
- } from "./chunk-INS7KZJB.js";
70
29
  import {
71
30
  Button
72
31
  } from "./chunk-YDPKUAP4.js";
@@ -1211,90 +1170,6 @@ function ImageGalleryModal({ images, isOpen, onClose, initialIndex = 0 }) {
1211
1170
  ] }) });
1212
1171
  }
1213
1172
 
1214
- // src/utils/fetch-priority.ts
1215
- import React2 from "react";
1216
- var REACT_MAJOR = parseInt((React2.version || "0").split(".")[0], 10);
1217
- var USE_CAMEL_CASE_FETCH_PRIORITY = REACT_MAJOR >= 19;
1218
- function fetchPriorityProp(priority) {
1219
- const value = priority === void 0 ? "auto" : typeof priority === "boolean" ? priority ? "high" : "low" : priority;
1220
- return USE_CAMEL_CASE_FETCH_PRIORITY ? { fetchPriority: value } : { fetchpriority: value };
1221
- }
1222
-
1223
- // src/components/features/mux-origins.ts
1224
- var MUX_STREAM_ORIGIN = "https://stream.mux.com";
1225
- var MUX_IMAGE_ORIGIN = "https://image.mux.com";
1226
- function toMuxPreviewUrl(url, maxResolution = "720p") {
1227
- let parsed;
1228
- try {
1229
- parsed = new URL(url);
1230
- } catch {
1231
- return url;
1232
- }
1233
- if (parsed.origin !== MUX_STREAM_ORIGIN) return url;
1234
- if (!parsed.pathname.endsWith(".m3u8")) return url;
1235
- if (parsed.searchParams.has("token")) return url;
1236
- parsed.searchParams.set("max_resolution", maxResolution);
1237
- return parsed.toString();
1238
- }
1239
-
1240
- // src/components/features/use-video-warmup.ts
1241
- import { useEffect as useEffect3 } from "react";
1242
- import ReactDOM from "react-dom";
1243
- function saveDataEnabled() {
1244
- if (typeof navigator === "undefined") return false;
1245
- const conn = navigator.connection;
1246
- return conn?.saveData === true;
1247
- }
1248
- function useVideoOriginPreconnect({ supabaseStorageOrigin } = {}) {
1249
- const runtime = useChatRuntime();
1250
- const resolvedOrigin = supabaseStorageOrigin ?? runtime?.endpoints.supabaseStorageOrigin;
1251
- try {
1252
- ReactDOM.preconnect(MUX_STREAM_ORIGIN, { crossOrigin: "anonymous" });
1253
- ReactDOM.preconnect(MUX_IMAGE_ORIGIN, { crossOrigin: "anonymous" });
1254
- if (resolvedOrigin) {
1255
- ReactDOM.preconnect(resolvedOrigin, { crossOrigin: "anonymous" });
1256
- }
1257
- } catch (err) {
1258
- if (process.env.NODE_ENV !== "production") {
1259
- console.warn("[useVideoOriginPreconnect] preconnect failed:", err);
1260
- }
1261
- }
1262
- }
1263
- function useVideoWarmup({
1264
- videoUrl,
1265
- supabaseStorageOrigin,
1266
- nearMargin = "1000px"
1267
- } = {}) {
1268
- const runtime = useChatRuntime();
1269
- const resolvedOrigin = supabaseStorageOrigin ?? runtime?.endpoints.supabaseStorageOrigin;
1270
- useVideoOriginPreconnect({ supabaseStorageOrigin: resolvedOrigin });
1271
- const { ref, isNear } = useNearViewport(nearMargin);
1272
- useEffect3(() => {
1273
- if (!isNear || !videoUrl || !resolvedOrigin) return void 0;
1274
- if (saveDataEnabled()) return void 0;
1275
- let videoOrigin;
1276
- try {
1277
- videoOrigin = new URL(videoUrl, "http://placeholder.local").origin;
1278
- } catch {
1279
- return void 0;
1280
- }
1281
- if (videoOrigin !== resolvedOrigin) return void 0;
1282
- const link = document.createElement("link");
1283
- link.rel = "preload";
1284
- link.as = "video";
1285
- link.href = videoUrl;
1286
- link.crossOrigin = "anonymous";
1287
- if ("fetchPriority" in link) {
1288
- link.fetchPriority = "low";
1289
- }
1290
- document.head.appendChild(link);
1291
- return () => {
1292
- link.remove();
1293
- };
1294
- }, [isNear, videoUrl, resolvedOrigin]);
1295
- return { ref, isNear };
1296
- }
1297
-
1298
1173
  // src/components/features/video-center-badge.tsx
1299
1174
  import { jsx as jsx8 } from "react/jsx-runtime";
1300
1175
  var SIZES = {
@@ -1351,926 +1226,9 @@ function VideoUnmuteGlyph({ size: size2 = "md", className }) {
1351
1226
  );
1352
1227
  }
1353
1228
 
1354
- // src/components/features/video.tsx
1355
- import MuxPlayer from "@mux/mux-player-react";
1356
- import { useCallback as useCallback2, useEffect as useEffect5, useImperativeHandle, useMemo as useMemo2, useRef as useRef2, useState as useState3 } from "react";
1357
-
1358
- // src/components/features/use-ios-native-video-fullscreen.ts
1359
- import { useEffect as useEffect4 } from "react";
1360
- var ENTER_FULLSCREEN_REQUEST = "mediaenterfullscreenrequest";
1361
- function isIosAppShell() {
1362
- const capacitor = globalThis.Capacitor;
1363
- return capacitor?.isNativePlatform?.() === true && capacitor.getPlatform?.() === "ios";
1364
- }
1365
- function nativeVideoElement(player) {
1366
- const media = player.media;
1367
- const element = media?.nativeEl ?? media;
1368
- return element instanceof HTMLVideoElement ? element : null;
1369
- }
1370
- function useIosNativeVideoFullscreen(playerRef) {
1371
- useEffect4(() => {
1372
- if (!isIosAppShell()) return void 0;
1373
- const player = playerRef.current;
1374
- if (!(player instanceof EventTarget)) return void 0;
1375
- const takeOver = (event) => {
1376
- const video = nativeVideoElement(player);
1377
- if (!video?.webkitSupportsFullscreen || typeof video.webkitEnterFullscreen !== "function") return;
1378
- event.stopImmediatePropagation();
1379
- video.webkitEnterFullscreen();
1380
- };
1381
- player.addEventListener(ENTER_FULLSCREEN_REQUEST, takeOver, true);
1382
- return () => player.removeEventListener(ENTER_FULLSCREEN_REQUEST, takeOver, true);
1383
- }, [playerRef]);
1384
- }
1385
-
1386
- // src/components/features/video.tsx
1387
- import { jsx as jsx9, jsxs as jsxs7 } from "react/jsx-runtime";
1388
- function videoPerfDebugEnabled() {
1389
- if (process.env.NODE_ENV !== "production") return true;
1390
- try {
1391
- return typeof localStorage !== "undefined" && localStorage.getItem("VIDEO_PERF_DEBUG") !== null;
1392
- } catch {
1393
- return false;
1394
- }
1395
- }
1396
- var MUX_VIEWER_ID_KEY = "mux:viewer_id";
1397
- function muxViewerId() {
1398
- try {
1399
- if (typeof localStorage === "undefined") return void 0;
1400
- const existing = localStorage.getItem(MUX_VIEWER_ID_KEY);
1401
- if (existing) return existing;
1402
- const generated = typeof crypto !== "undefined" && typeof crypto.randomUUID === "function" ? crypto.randomUUID() : `${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 10)}`;
1403
- localStorage.setItem(MUX_VIEWER_ID_KEY, generated);
1404
- return generated;
1405
- } catch {
1406
- return void 0;
1407
- }
1408
- }
1409
- if (typeof document !== "undefined") {
1410
- try {
1411
- document.cookie = "muxData=; path=/; max-age=0";
1412
- } catch {
1413
- }
1414
- }
1415
- if (typeof window !== "undefined") {
1416
- const w = window;
1417
- if (!w.chrome?.cast) {
1418
- w.chrome = { ...w.chrome ?? {}, cast: { isAvailable: false } };
1419
- }
1420
- }
1421
- if (typeof window !== "undefined" && typeof console !== "undefined") {
1422
- const w = window;
1423
- if (!w.__MEDIA_CHROME_WARN_PATCHED__) {
1424
- w.__MEDIA_CHROME_WARN_PATCHED__ = true;
1425
- const MEDIA_CHROME_NO_STYLESHEET_PREFIX = "Media Chrome: No style sheet found on style tag of";
1426
- const originalWarn = console.warn.bind(console);
1427
- console.warn = (...args) => {
1428
- if (typeof args[0] === "string" && args[0].startsWith(MEDIA_CHROME_NO_STYLESHEET_PREFIX)) {
1429
- return;
1430
- }
1431
- originalWarn(...args);
1432
- };
1433
- }
1434
- }
1435
- var userHasInteracted = false;
1436
- var activationWaiters = /* @__PURE__ */ new Set();
1437
- if (typeof window !== "undefined") {
1438
- const w = window;
1439
- if (!w.__VIDEO_ACTIVATION_TRACKED__) {
1440
- w.__VIDEO_ACTIVATION_TRACKED__ = true;
1441
- const markActivated = () => {
1442
- userHasInteracted = true;
1443
- activationWaiters.forEach((fn) => {
1444
- try {
1445
- fn();
1446
- } catch {
1447
- }
1448
- });
1449
- activationWaiters.clear();
1450
- window.removeEventListener("pointerdown", markActivated, true);
1451
- window.removeEventListener("keydown", markActivated, true);
1452
- };
1453
- window.addEventListener("pointerdown", markActivated, true);
1454
- window.addEventListener("keydown", markActivated, true);
1455
- }
1456
- }
1457
- var YT_HOSTS = /* @__PURE__ */ new Set([
1458
- "youtube.com",
1459
- "www.youtube.com",
1460
- "m.youtube.com",
1461
- "youtu.be",
1462
- "youtube-nocookie.com",
1463
- "www.youtube-nocookie.com"
1464
- ]);
1465
- function isYouTubeUrl(url) {
1466
- try {
1467
- return YT_HOSTS.has(new URL(url, "http://placeholder.local").hostname.toLowerCase());
1468
- } catch {
1469
- return false;
1470
- }
1471
- }
1472
- var YT_PATH_RE = /^\/(?:embed|v|shorts)\/([^/]+)\/?$/;
1473
- var BARE_YT_ID_RE = /^[A-Za-z0-9_-]{11}$/;
1474
- function extractYouTubeId(url) {
1475
- if (!url) return null;
1476
- if (BARE_YT_ID_RE.test(url)) return url;
1477
- let u;
1478
- try {
1479
- u = new URL(url, "http://placeholder.local");
1480
- } catch {
1481
- return null;
1482
- }
1483
- if (!YT_HOSTS.has(u.hostname.toLowerCase())) return null;
1484
- if (u.hostname.toLowerCase().endsWith("youtu.be")) {
1485
- return u.pathname.split("/").filter(Boolean)[0] ?? null;
1486
- }
1487
- const v = u.searchParams.get("v");
1488
- if (v) return v;
1489
- const m = u.pathname.match(YT_PATH_RE);
1490
- return m ? m[1] : null;
1491
- }
1492
- var VIDEO_PLAYBACK_FAILED_EVENT = "flamingo:video-playback-failed";
1493
- function reportPlaybackFailure(detail) {
1494
- if (typeof window === "undefined") return;
1495
- try {
1496
- window.dispatchEvent(new CustomEvent(VIDEO_PLAYBACK_FAILED_EVENT, { detail }));
1497
- } catch {
1498
- }
1499
- }
1500
- var VIDEO_STALL_TIMEOUT_MS = 15e3;
1501
- function VideoErrorOverlay({
1502
- onRetry,
1503
- watchOnYouTubeId
1504
- }) {
1505
- return /* @__PURE__ */ jsxs7("div", { className: "absolute inset-0 z-10 flex flex-col items-center justify-center gap-[var(--spacing-system-sf)] bg-ods-overlay p-[var(--spacing-system-lf)] text-center", children: [
1506
- /* @__PURE__ */ jsx9("p", { className: "text-ods-text-secondary text-h6", children: "This video failed to play." }),
1507
- /* @__PURE__ */ jsxs7("div", { className: "flex items-center gap-[var(--spacing-system-sf)]", children: [
1508
- /* @__PURE__ */ jsx9(Button, { variant: "outline", size: "small", onClick: onRetry, children: "Try again" }),
1509
- watchOnYouTubeId ? /* @__PURE__ */ jsx9(
1510
- Button,
1511
- {
1512
- variant: "transparent",
1513
- size: "small",
1514
- href: `https://www.youtube.com/watch?v=${watchOnYouTubeId}`,
1515
- openInNewTab: true,
1516
- children: "Watch on YouTube"
1517
- }
1518
- ) : null
1519
- ] })
1520
- ] });
1521
- }
1522
- var VIDEO_FILE_PLAYBACK_KEYS = [
1523
- "srtContent",
1524
- "captionsUrl",
1525
- "autoPlay",
1526
- "loop",
1527
- "chromeless",
1528
- "playOnHover",
1529
- "playWhenHovered",
1530
- "preload",
1531
- "fit",
1532
- "startTime",
1533
- "playerHandleRef",
1534
- "autoPlayUnmuted",
1535
- "startMuted",
1536
- "mutedIntent",
1537
- "hideMutedBadge",
1538
- "onMutedFallbackChange",
1539
- "onEnded"
1540
- ];
1541
- function pickForwardedKeys(props, keys) {
1542
- const out = {};
1543
- for (const k of keys) {
1544
- if (k in props) out[k] = props[k];
1545
- }
1546
- return out;
1547
- }
1548
- var pickFilePlayback = (props) => pickForwardedKeys(props, VIDEO_FILE_PLAYBACK_KEYS);
1549
- var VIDEO_YOUTUBE_FACADE_KEYS = [
1550
- "autoActivate",
1551
- "suspended"
1552
- ];
1553
- var pickYouTube = (props) => pickForwardedKeys(props, VIDEO_YOUTUBE_FACADE_KEYS);
1554
- function Video(props) {
1555
- const { ref: nearRef, isNear } = useNearViewport();
1556
- const url = props.url;
1557
- if (!url) return null;
1558
- const effectiveKind = resolveKind(props, url);
1559
- const layout = props.layout ?? "native";
1560
- if (props.lazy && !isNear) {
1561
- return wrapWithLayout(
1562
- /* @__PURE__ */ jsx9(
1563
- "div",
1564
- {
1565
- ref: nearRef,
1566
- className: props.className,
1567
- style: props.poster ? { backgroundImage: `url(${props.poster})`, backgroundSize: "cover", backgroundPosition: "center" } : void 0,
1568
- "aria-hidden": "true"
1569
- }
1570
- ),
1571
- layout
1572
- );
1573
- }
1574
- const inner = effectiveKind === "youtube" ? /* @__PURE__ */ jsx9(
1575
- YouTubeFacade,
1576
- {
1577
- url,
1578
- title: props.title,
1579
- priority: props.priority,
1580
- className: props.className,
1581
- minimalControls: props.minimalControls,
1582
- muted: props.muted,
1583
- ...pickYouTube(props)
1584
- }
1585
- ) : "firstFrameOnly" in props && props.firstFrameOnly ? /* @__PURE__ */ jsx9(
1586
- FirstFramePreview,
1587
- {
1588
- url,
1589
- poster: props.poster,
1590
- fit: "fit" in props ? props.fit : void 0,
1591
- className: props.className
1592
- }
1593
- ) : /* @__PURE__ */ jsx9(
1594
- FilePlayer,
1595
- {
1596
- url,
1597
- poster: props.poster,
1598
- muted: props.muted,
1599
- ...pickFilePlayback(props),
1600
- className: props.className
1601
- }
1602
- );
1603
- return wrapWithLayout(inner, layout);
1604
- }
1605
- function resolveKind(props, url) {
1606
- if ("kind" in props) {
1607
- if (props.kind === "youtube") return "youtube";
1608
- if (props.kind === "file") return "file";
1609
- }
1610
- if (BARE_YT_ID_RE.test(url)) return "youtube";
1611
- return isYouTubeUrl(url) ? "youtube" : "file";
1612
- }
1613
- function wrapWithLayout(inner, layout) {
1614
- switch (layout) {
1615
- case "centered":
1616
- return /* @__PURE__ */ jsx9("div", { className: "flex w-full justify-center", children: /* @__PURE__ */ jsx9("div", { className: "aspect-video w-full max-w-3xl overflow-hidden rounded-lg border border-ods-border", children: inner }) });
1617
- case "fill":
1618
- return /* @__PURE__ */ jsx9("div", { className: "absolute inset-0 h-full w-full", children: inner });
1619
- case "wide":
1620
- return /* @__PURE__ */ jsx9("div", { className: "aspect-video w-full overflow-hidden rounded-lg bg-ods-bg", children: inner });
1621
- case "native":
1622
- default:
1623
- return inner;
1624
- }
1625
- }
1626
- function FirstFramePreview({
1627
- url,
1628
- poster,
1629
- fit,
1630
- className
1631
- }) {
1632
- return /* @__PURE__ */ jsx9(
1633
- "div",
1634
- {
1635
- "aria-hidden": true,
1636
- className: "h-full w-full",
1637
- style: { "--media-background-color": "transparent" },
1638
- children: /* @__PURE__ */ jsx9(FilePlayer, { url: `${url}#t=0.1`, poster, fit, muted: true, chromeless: true, className })
1639
- }
1640
- );
1641
- }
1642
- function FilePlayer({
1643
- url,
1644
- poster,
1645
- muted,
1646
- srtContent,
1647
- captionsUrl,
1648
- autoPlay,
1649
- loop,
1650
- chromeless,
1651
- playOnHover,
1652
- playWhenHovered,
1653
- preload,
1654
- fit,
1655
- startTime,
1656
- playerHandleRef,
1657
- autoPlayUnmuted,
1658
- startMuted,
1659
- mutedIntent = false,
1660
- hideMutedBadge,
1661
- onMutedFallbackChange,
1662
- onEnded,
1663
- className
1664
- }) {
1665
- const effectivePreload = preload ?? (saveDataEnabled() ? "none" : "metadata");
1666
- const resolvedCaptionsUrl = useAuthedAssetSrc(captionsUrl, "text/vtt, */*");
1667
- const [hoverMutedFallback, setHoverMutedFallback] = useState3(() => Boolean(startMuted));
1668
- const hoverPlayerRef = useRef2(null);
1669
- const [mutedFallbackBlocked, setMutedFallbackBlocked] = useState3(false);
1670
- const perfListenerRef = useRef2(null);
1671
- const clearPerfListener = useCallback2(() => {
1672
- if (perfListenerRef.current) {
1673
- try {
1674
- hoverPlayerRef.current?.removeEventListener?.("playing", perfListenerRef.current);
1675
- } catch {
1676
- }
1677
- perfListenerRef.current = null;
1678
- }
1679
- }, []);
1680
- useEffect5(() => clearPerfListener, [clearPerfListener]);
1681
- const hoverActiveRef = useRef2(false);
1682
- const hoverGenerationRef = useRef2(0);
1683
- const activationWaiterRef = useRef2(null);
1684
- const clearActivationWaiter = useCallback2(() => {
1685
- if (activationWaiterRef.current) {
1686
- activationWaiters.delete(activationWaiterRef.current);
1687
- activationWaiterRef.current = null;
1688
- }
1689
- }, []);
1690
- useEffect5(() => clearActivationWaiter, [clearActivationWaiter]);
1691
- const mutedIntentRef = useRef2(mutedIntent);
1692
- useEffect5(() => {
1693
- mutedIntentRef.current = mutedIntent;
1694
- });
1695
- const startHoverPlayback = useCallback2(() => {
1696
- hoverActiveRef.current = true;
1697
- const generation = ++hoverGenerationRef.current;
1698
- const el = hoverPlayerRef.current;
1699
- if (!el) return;
1700
- if (videoPerfDebugEnabled()) {
1701
- clearPerfListener();
1702
- const startedAt = performance.now();
1703
- const onPlaying = () => {
1704
- clearPerfListener();
1705
- console.debug("[Video] hover\u2192playing %dms", Math.round(performance.now() - startedAt));
1706
- };
1707
- perfListenerRef.current = onPlaying;
1708
- try {
1709
- el.addEventListener?.("playing", onPlaying);
1710
- } catch {
1711
- }
1712
- }
1713
- try {
1714
- el.volume = 0.5;
1715
- if (userHasInteracted) {
1716
- el.muted = mutedIntentRef.current;
1717
- el.play?.()?.catch?.((err) => {
1718
- const name = err?.name;
1719
- if (name === "NotAllowedError" && hoverActiveRef.current && generation === hoverGenerationRef.current) {
1720
- try {
1721
- el.muted = true;
1722
- el.play?.()?.catch?.(() => {
1723
- if (hoverActiveRef.current && generation === hoverGenerationRef.current) {
1724
- setMutedFallbackBlocked(true);
1725
- }
1726
- });
1727
- setHoverMutedFallback(true);
1728
- } catch {
1729
- }
1730
- }
1731
- });
1732
- } else {
1733
- el.muted = true;
1734
- el.play?.()?.catch?.(() => {
1735
- if (hoverActiveRef.current && generation === hoverGenerationRef.current) {
1736
- setMutedFallbackBlocked(true);
1737
- }
1738
- });
1739
- setHoverMutedFallback(true);
1740
- clearActivationWaiter();
1741
- const waiter = () => {
1742
- activationWaiterRef.current = null;
1743
- if (hoverActiveRef.current && generation === hoverGenerationRef.current) {
1744
- try {
1745
- el.muted = false;
1746
- el.volume = 0.5;
1747
- } catch {
1748
- }
1749
- setHoverMutedFallback(false);
1750
- }
1751
- };
1752
- activationWaiterRef.current = waiter;
1753
- activationWaiters.add(waiter);
1754
- }
1755
- } catch {
1756
- }
1757
- }, [clearActivationWaiter, clearPerfListener]);
1758
- const stopHoverPlayback = useCallback2(() => {
1759
- hoverActiveRef.current = false;
1760
- setHoverMutedFallback(false);
1761
- clearActivationWaiter();
1762
- clearPerfListener();
1763
- try {
1764
- hoverPlayerRef.current?.pause?.();
1765
- } catch {
1766
- }
1767
- }, [clearActivationWaiter, clearPerfListener]);
1768
- const unmuteNow = useCallback2((e) => {
1769
- e.stopPropagation();
1770
- e.preventDefault();
1771
- const el = hoverPlayerRef.current;
1772
- try {
1773
- if (el) {
1774
- el.muted = false;
1775
- el.volume = 0.5;
1776
- el.play?.()?.catch?.(() => {
1777
- });
1778
- }
1779
- } catch {
1780
- }
1781
- setHoverMutedFallback(false);
1782
- }, []);
1783
- const hoverControlled = typeof playWhenHovered === "boolean";
1784
- useEffect5(() => {
1785
- if (!hoverControlled) return;
1786
- if (playWhenHovered) startHoverPlayback();
1787
- else stopHoverPlayback();
1788
- }, [hoverControlled, playWhenHovered, startHoverPlayback, stopHoverPlayback]);
1789
- const handleHoverEnter = playOnHover && !hoverControlled ? startHoverPlayback : void 0;
1790
- const handleHoverLeave = playOnHover && !hoverControlled ? stopHoverPlayback : void 0;
1791
- const onMutedFallbackChangeRef = useRef2(onMutedFallbackChange);
1792
- useEffect5(() => {
1793
- onMutedFallbackChangeRef.current = onMutedFallbackChange;
1794
- });
1795
- useEffect5(() => {
1796
- onMutedFallbackChangeRef.current?.({
1797
- muted: hoverMutedFallback,
1798
- blocked: hoverMutedFallback && mutedFallbackBlocked
1799
- });
1800
- }, [hoverMutedFallback, mutedFallbackBlocked]);
1801
- const autoPlayKickedRef = useRef2(false);
1802
- useEffect5(() => {
1803
- if (autoPlayKickedRef.current) return;
1804
- if (startMuted) {
1805
- const mutedEl = hoverPlayerRef.current;
1806
- if (!mutedEl) return;
1807
- autoPlayKickedRef.current = true;
1808
- try {
1809
- mutedEl.muted = true;
1810
- } catch {
1811
- }
1812
- if (autoPlay) {
1813
- const reportBlocked = () => setMutedFallbackBlocked(true);
1814
- try {
1815
- mutedEl.play?.()?.catch?.(reportBlocked);
1816
- } catch {
1817
- reportBlocked();
1818
- }
1819
- }
1820
- return;
1821
- }
1822
- if (!autoPlayUnmuted) return;
1823
- const el = hoverPlayerRef.current;
1824
- if (!el) return;
1825
- autoPlayKickedRef.current = true;
1826
- try {
1827
- el.muted = false;
1828
- el.volume = typeof el.volume === "number" ? el.volume : 1;
1829
- el.play?.()?.catch?.((err) => {
1830
- const name = err?.name;
1831
- if (name !== "NotAllowedError") return;
1832
- try {
1833
- el.muted = true;
1834
- el.play?.()?.catch?.(() => {
1835
- setMutedFallbackBlocked(true);
1836
- setHoverMutedFallback(true);
1837
- });
1838
- setMutedFallbackBlocked(false);
1839
- setHoverMutedFallback(true);
1840
- } catch {
1841
- setMutedFallbackBlocked(true);
1842
- setHoverMutedFallback(true);
1843
- }
1844
- });
1845
- } catch {
1846
- }
1847
- }, [autoPlayUnmuted, startMuted, autoPlay]);
1848
- useEffect5(() => {
1849
- const el = hoverPlayerRef.current;
1850
- if (!el?.addEventListener) return void 0;
1851
- const onVolumeChange = () => {
1852
- if (el.muted === false) {
1853
- setMutedFallbackBlocked(false);
1854
- setHoverMutedFallback(false);
1855
- }
1856
- };
1857
- try {
1858
- el.addEventListener("volumechange", onVolumeChange);
1859
- } catch {
1860
- }
1861
- return () => {
1862
- try {
1863
- el.removeEventListener?.("volumechange", onVolumeChange);
1864
- } catch {
1865
- }
1866
- };
1867
- }, []);
1868
- useEffect5(() => {
1869
- const el = hoverPlayerRef.current;
1870
- if (!el?.addEventListener) return void 0;
1871
- const onPlaying = () => setMutedFallbackBlocked(false);
1872
- try {
1873
- el.addEventListener("playing", onPlaying);
1874
- } catch {
1875
- }
1876
- return () => {
1877
- try {
1878
- el.removeEventListener?.("playing", onPlaying);
1879
- } catch {
1880
- }
1881
- };
1882
- }, []);
1883
- const onEndedRef = useRef2(onEnded);
1884
- useEffect5(() => {
1885
- onEndedRef.current = onEnded;
1886
- });
1887
- useEffect5(() => {
1888
- const el = hoverPlayerRef.current;
1889
- if (!el?.addEventListener) return void 0;
1890
- const handler = () => onEndedRef.current?.();
1891
- try {
1892
- el.addEventListener("ended", handler);
1893
- } catch {
1894
- }
1895
- return () => {
1896
- try {
1897
- el.removeEventListener?.("ended", handler);
1898
- } catch {
1899
- }
1900
- };
1901
- }, []);
1902
- useIosNativeVideoFullscreen(hoverPlayerRef);
1903
- useImperativeHandle(
1904
- playerHandleRef,
1905
- () => ({
1906
- getCurrentTime: () => hoverPlayerRef.current?.currentTime ?? 0,
1907
- getDuration: () => {
1908
- const d = hoverPlayerRef.current?.duration;
1909
- return typeof d === "number" && isFinite(d) ? d : 0;
1910
- },
1911
- getPaused: () => hoverPlayerRef.current?.paused ?? true,
1912
- getMuted: () => hoverPlayerRef.current?.muted ?? false,
1913
- play: async () => {
1914
- await hoverPlayerRef.current?.play?.();
1915
- },
1916
- pause: () => {
1917
- try {
1918
- hoverPlayerRef.current?.pause?.();
1919
- } catch {
1920
- }
1921
- },
1922
- setMuted: (m) => {
1923
- const el = hoverPlayerRef.current;
1924
- if (!el) return;
1925
- try {
1926
- el.muted = m;
1927
- if (!m) {
1928
- setMutedFallbackBlocked(false);
1929
- setHoverMutedFallback(false);
1930
- }
1931
- } catch {
1932
- }
1933
- }
1934
- }),
1935
- []
1936
- );
1937
- if (process.env.NODE_ENV !== "production" && srtContent && !captionsUrl) {
1938
- console.warn(
1939
- "[Video] srtContent supplied without captionsUrl \u2014 captions will not render. Pass captionsUrl (the VTT URL) instead; raw SRT text overlays are no longer supported."
1940
- );
1941
- }
1942
- const monitorHealth = !chromeless;
1943
- const [playbackFailed, setPlaybackFailed] = useState3(false);
1944
- const stallTimerRef = useRef2(null);
1945
- const clearStallTimer = useCallback2(() => {
1946
- if (stallTimerRef.current !== null) {
1947
- clearTimeout(stallTimerRef.current);
1948
- stallTimerRef.current = null;
1949
- }
1950
- }, []);
1951
- useEffect5(() => clearStallTimer, [clearStallTimer]);
1952
- const failPlayback = useCallback2(
1953
- (reason) => {
1954
- clearStallTimer();
1955
- setPlaybackFailed(true);
1956
- reportPlaybackFailure({ kind: "file", src: url, reason });
1957
- },
1958
- [clearStallTimer, url]
1959
- );
1960
- const armStallTimer = useCallback2(() => {
1961
- if (!monitorHealth) return;
1962
- const el = hoverPlayerRef.current;
1963
- if (!el || el.paused || el.ended) return;
1964
- if (stallTimerRef.current !== null) return;
1965
- stallTimerRef.current = setTimeout(() => {
1966
- stallTimerRef.current = null;
1967
- failPlayback("stall");
1968
- }, VIDEO_STALL_TIMEOUT_MS);
1969
- }, [monitorHealth, failPlayback]);
1970
- const handlePlaybackProgress = useCallback2(() => {
1971
- clearStallTimer();
1972
- setPlaybackFailed(false);
1973
- }, [clearStallTimer]);
1974
- const handleMediaError = useCallback2(() => {
1975
- if (!monitorHealth) return;
1976
- failPlayback("error");
1977
- }, [monitorHealth, failPlayback]);
1978
- const retryPlayback = useCallback2(() => {
1979
- setPlaybackFailed(false);
1980
- clearStallTimer();
1981
- const el = hoverPlayerRef.current;
1982
- if (!el) return;
1983
- const resumeAt = typeof el.currentTime === "number" ? el.currentTime : 0;
1984
- try {
1985
- el.load?.();
1986
- if (resumeAt > 0 && el.addEventListener && el.removeEventListener) {
1987
- const seekBack = () => {
1988
- el.removeEventListener?.("loadedmetadata", seekBack);
1989
- try {
1990
- el.currentTime = resumeAt;
1991
- } catch {
1992
- }
1993
- };
1994
- el.addEventListener("loadedmetadata", seekBack);
1995
- }
1996
- el.play?.()?.catch?.(() => {
1997
- });
1998
- } catch {
1999
- }
2000
- }, [clearStallTimer]);
2001
- const errorOverlay = monitorHealth && playbackFailed ? /* @__PURE__ */ jsx9(VideoErrorOverlay, { onRetry: retryPlayback }) : null;
2002
- const player = /* @__PURE__ */ jsx9(
2003
- MuxPlayer,
2004
- {
2005
- ref: hoverPlayerRef,
2006
- onError: handleMediaError,
2007
- onWaiting: armStallTimer,
2008
- onStalled: armStallTimer,
2009
- onPlaying: handlePlaybackProgress,
2010
- onTimeUpdate: handlePlaybackProgress,
2011
- onPause: clearStallTimer,
2012
- src: url,
2013
- poster: poster || void 0,
2014
- streamType: "on-demand",
2015
- preload: effectivePreload,
2016
- playsInline: true,
2017
- muted,
2018
- preferCmcd: "header",
2019
- disableCookies: true,
2020
- metadata: { viewer_user_id: muxViewerId() },
2021
- accentColor: "var(--ods-accent, var(--color-accent-primary))",
2022
- autoPlay: autoPlay ? "muted" : autoPlayUnmuted ? "any" : void 0,
2023
- startTime: typeof startTime === "number" ? startTime : void 0,
2024
- loop,
2025
- className,
2026
- style: {
2027
- width: "100%",
2028
- height: "100%",
2029
- ...chromeless ? { "--controls": "none" } : {},
2030
- ...fit === "cover" ? { "--media-object-fit": "cover" } : {}
2031
- },
2032
- children: resolvedCaptionsUrl ? /* @__PURE__ */ jsx9("track", { kind: "captions", src: resolvedCaptionsUrl, srcLang: "en", label: "English", default: true }) : null
2033
- }
2034
- );
2035
- const unmuteBadge = hoverMutedFallback && !hideMutedBadge ? /* @__PURE__ */ jsx9(
2036
- "button",
2037
- {
2038
- type: "button",
2039
- "aria-label": "Unmute",
2040
- title: "Unmute",
2041
- onClick: unmuteNow,
2042
- className: "absolute inset-0 z-10 m-auto flex h-14 w-14 items-center justify-center text-ods-text-primary transition-colors hover:text-ods-accent",
2043
- children: /* @__PURE__ */ jsx9(VideoUnmuteGlyph, {})
2044
- }
2045
- ) : null;
2046
- if (playOnHover && !hoverControlled) {
2047
- return /* @__PURE__ */ jsxs7("div", { className: "relative h-full w-full", onPointerEnter: handleHoverEnter, onPointerLeave: handleHoverLeave, children: [
2048
- player,
2049
- unmuteBadge,
2050
- errorOverlay
2051
- ] });
2052
- }
2053
- if (hoverControlled || autoPlayUnmuted || startMuted || monitorHealth) {
2054
- return /* @__PURE__ */ jsxs7("div", { className: "relative h-full w-full", children: [
2055
- player,
2056
- unmuteBadge,
2057
- errorOverlay
2058
- ] });
2059
- }
2060
- return player;
2061
- }
2062
- function YouTubeFacade({
2063
- url,
2064
- title = "YouTube Video",
2065
- priority,
2066
- className,
2067
- minimalControls,
2068
- muted,
2069
- // `...facade` rather than naming each one: this hop is invisible to the
2070
- // build-time forwarding proof, so a prop added to VideoYouTubeFacadeProps
2071
- // would reach here and silently stop before Inner.
2072
- ...facade
2073
- }) {
2074
- const videoId = extractYouTubeId(url);
2075
- if (!videoId) return null;
2076
- return /* @__PURE__ */ jsx9(
2077
- YouTubeFacadeInner,
2078
- {
2079
- videoId,
2080
- title,
2081
- priority,
2082
- className,
2083
- minimalControls,
2084
- muted,
2085
- ...facade
2086
- }
2087
- );
2088
- }
2089
- var YT_NOCOOKIE_ORIGIN = "https://www.youtube-nocookie.com";
2090
- var YT_POSTER_TIERS = ["maxresdefault", "mqdefault"];
2091
- var YT_STATE_ENDED = 0;
2092
- var YT_STATE_PLAYING = 1;
2093
- var YT_PLAYING_BLUR_DELAY_MS = 1e3;
2094
- function toYouTubeMessage(parsed) {
2095
- if (typeof parsed !== "object" || parsed === null) return null;
2096
- const event = "event" in parsed ? parsed.event : void 0;
2097
- const info = "info" in parsed ? parsed.info : void 0;
2098
- const playerState = typeof info === "object" && info !== null && "playerState" in info ? info.playerState : void 0;
2099
- return {
2100
- event: typeof event === "string" ? event : void 0,
2101
- info: { playerState: typeof playerState === "number" ? playerState : void 0 },
2102
- errorCode: typeof info === "number" ? info : void 0
2103
- };
2104
- }
2105
- function YouTubeFacadeInner({
2106
- videoId,
2107
- title,
2108
- priority,
2109
- className,
2110
- minimalControls,
2111
- muted,
2112
- autoActivate,
2113
- suspended
2114
- }) {
2115
- const [activated, setActivated] = useState3(Boolean(autoActivate));
2116
- const [prevAutoActivate, setPrevAutoActivate] = useState3(Boolean(autoActivate));
2117
- if (Boolean(autoActivate) !== prevAutoActivate) {
2118
- setPrevAutoActivate(Boolean(autoActivate));
2119
- if (autoActivate) setActivated(true);
2120
- }
2121
- const [failed, setFailed] = useState3(false);
2122
- const [reloadNonce, setReloadNonce] = useState3(0);
2123
- const iframeRef = useRef2(null);
2124
- const retry = useCallback2(() => {
2125
- setFailed(false);
2126
- setReloadNonce((n) => n + 1);
2127
- }, []);
2128
- const embedUrl = useMemo2(() => {
2129
- const params = new URLSearchParams({
2130
- autoplay: "1",
2131
- rel: "0",
2132
- modestbranding: "1",
2133
- playsinline: "1",
2134
- enablejsapi: "1"
2135
- });
2136
- if (muted) params.set("mute", "1");
2137
- if (typeof window !== "undefined") {
2138
- params.set("origin", window.location.origin);
2139
- }
2140
- if (minimalControls) {
2141
- params.set("controls", "0");
2142
- params.set("fs", "0");
2143
- params.set("iv_load_policy", "3");
2144
- params.set("cc_load_policy", "0");
2145
- params.set("disablekb", "1");
2146
- }
2147
- return `${YT_NOCOOKIE_ORIGIN}/embed/${videoId}?${params.toString()}`;
2148
- }, [videoId, minimalControls, muted]);
2149
- const [posterTier, setPosterTier] = useState3(0);
2150
- const [posterTierFor, setPosterTierFor] = useState3(videoId);
2151
- if (posterTierFor !== videoId) {
2152
- setPosterTierFor(videoId);
2153
- setPosterTier(0);
2154
- }
2155
- const posterQuality = YT_POSTER_TIERS[posterTier];
2156
- const posterJpg = `https://i.ytimg.com/vi/${videoId}/${posterQuality}.jpg`;
2157
- const posterWebp = `https://i.ytimg.com/vi_webp/${videoId}/${posterQuality}.webp`;
2158
- const handlePosterError = () => setPosterTier((tier) => Math.min(tier + 1, YT_POSTER_TIERS.length - 1));
2159
- useEffect5(() => {
2160
- if (!activated || failed) return void 0;
2161
- const iframe = iframeRef.current;
2162
- if (!iframe) return void 0;
2163
- function subscribe() {
2164
- iframe?.contentWindow?.postMessage('{"event":"listening"}', YT_NOCOOKIE_ORIGIN);
2165
- }
2166
- iframe.addEventListener("load", subscribe);
2167
- subscribe();
2168
- let blurTimer = null;
2169
- function handleMessage(event) {
2170
- if (event.origin !== YT_NOCOOKIE_ORIGIN) return;
2171
- if (typeof event.data !== "string") return;
2172
- let payload = null;
2173
- try {
2174
- payload = toYouTubeMessage(JSON.parse(event.data));
2175
- } catch {
2176
- return;
2177
- }
2178
- if (!payload) return;
2179
- if (payload.event === "onError") {
2180
- setFailed(true);
2181
- reportPlaybackFailure({ kind: "youtube", src: videoId, reason: "error", errorCode: payload.errorCode });
2182
- return;
2183
- }
2184
- if (payload.event !== "infoDelivery") return;
2185
- const state = payload.info?.playerState;
2186
- if (typeof state !== "number") return;
2187
- if (state === YT_STATE_PLAYING) {
2188
- if (blurTimer !== null) return;
2189
- blurTimer = setTimeout(() => {
2190
- blurTimer = null;
2191
- iframeRef.current?.blur();
2192
- }, YT_PLAYING_BLUR_DELAY_MS);
2193
- return;
2194
- }
2195
- if (state === YT_STATE_ENDED) {
2196
- setActivated(false);
2197
- }
2198
- }
2199
- window.addEventListener("message", handleMessage);
2200
- return () => {
2201
- iframe.removeEventListener("load", subscribe);
2202
- window.removeEventListener("message", handleMessage);
2203
- if (blurTimer !== null) clearTimeout(blurTimer);
2204
- };
2205
- }, [activated, failed, reloadNonce, videoId]);
2206
- const prevSuspendedRef = useRef2(false);
2207
- useEffect5(() => {
2208
- const wasSuspended = prevSuspendedRef.current;
2209
- prevSuspendedRef.current = Boolean(suspended);
2210
- if (!activated || Boolean(suspended) === wasSuspended) return;
2211
- iframeRef.current?.contentWindow?.postMessage(
2212
- `{"event":"command","func":"${suspended ? "pauseVideo" : "playVideo"}","args":[]}`,
2213
- YT_NOCOOKIE_ORIGIN
2214
- );
2215
- }, [suspended, activated]);
2216
- const wrapperClass = `relative w-full ${className ?? ""}`;
2217
- const wrapperStyle = { paddingBottom: "56.25%" };
2218
- if (activated && failed) {
2219
- return /* @__PURE__ */ jsx9("div", { className: wrapperClass, style: wrapperStyle, children: /* @__PURE__ */ jsx9(VideoErrorOverlay, { onRetry: retry, watchOnYouTubeId: videoId }) });
2220
- }
2221
- if (activated) {
2222
- return /* @__PURE__ */ jsx9("div", { className: wrapperClass, style: wrapperStyle, children: /* @__PURE__ */ jsx9(
2223
- "iframe",
2224
- {
2225
- ref: iframeRef,
2226
- src: embedUrl,
2227
- allow: "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",
2228
- allowFullScreen: true,
2229
- referrerPolicy: "strict-origin-when-cross-origin",
2230
- title,
2231
- className: "absolute inset-0 h-full w-full rounded-lg border-0"
2232
- },
2233
- reloadNonce
2234
- ) });
2235
- }
2236
- return /* @__PURE__ */ jsx9("div", { className: wrapperClass, style: wrapperStyle, children: /* @__PURE__ */ jsxs7(
2237
- "button",
2238
- {
2239
- type: "button",
2240
- "aria-label": `Play: ${title}`,
2241
- onClick: () => setActivated(true),
2242
- className: "group absolute inset-0 m-0 cursor-pointer overflow-hidden rounded-lg border border-ods-border bg-ods-card p-0",
2243
- children: [
2244
- /* @__PURE__ */ jsxs7("picture", { children: [
2245
- /* @__PURE__ */ jsx9("source", { type: "image/webp", srcSet: posterWebp }),
2246
- /* @__PURE__ */ jsx9(
2247
- "img",
2248
- {
2249
- src: posterJpg,
2250
- alt: title,
2251
- loading: "lazy",
2252
- onError: handlePosterError,
2253
- ...fetchPriorityProp(priority),
2254
- decoding: priority ? "sync" : "async",
2255
- className: "absolute inset-0 h-full w-full object-cover"
2256
- }
2257
- )
2258
- ] }),
2259
- /* @__PURE__ */ jsx9("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__ */ jsx9(
2260
- VideoPlayBadge,
2261
- {
2262
- size: "lg",
2263
- className: "transition-transform duration-200 group-hover:scale-110 group-hover:text-ods-accent"
2264
- }
2265
- ) })
2266
- ]
2267
- }
2268
- ) });
2269
- }
2270
-
2271
1229
  // src/components/ui/status-badge.tsx
2272
1230
  import { cva as cva2 } from "class-variance-authority";
2273
- import { jsx as jsx10 } from "react/jsx-runtime";
1231
+ import { jsx as jsx9 } from "react/jsx-runtime";
2274
1232
  var statusBadgeVariants = cva2("inline-flex items-center justify-center rounded", {
2275
1233
  variants: {
2276
1234
  // Two densities, not one style at two paddings. Both are the ODS h5
@@ -2332,11 +1290,11 @@ function StatusBadge({ text, variant, colorScheme, className, singleLine, gen, s
2332
1290
  if (singleLine) return text;
2333
1291
  if (variant === "button" && text.includes(" ")) {
2334
1292
  const words = text.split(" ");
2335
- return /* @__PURE__ */ jsx10("span", { className: "flex flex-col items-center justify-center gap-0 text-center", children: words.map((word, index) => /* @__PURE__ */ jsx10("span", { className: "block", children: word }, index)) });
1293
+ return /* @__PURE__ */ jsx9("span", { className: "flex flex-col items-center justify-center gap-0 text-center", children: words.map((word, index) => /* @__PURE__ */ jsx9("span", { className: "block", children: word }, index)) });
2336
1294
  }
2337
1295
  return text;
2338
1296
  };
2339
- return /* @__PURE__ */ jsx10(
1297
+ return /* @__PURE__ */ jsx9(
2340
1298
  "span",
2341
1299
  {
2342
1300
  className: cn(statusBadgeVariants({ variant, colorScheme: gen != null ? void 0 : colorScheme }), className),
@@ -2374,9 +1332,9 @@ function pickBadgePaletteColor({
2374
1332
  }
2375
1333
 
2376
1334
  // src/components/ui/palette-badge.tsx
2377
- import { jsx as jsx11 } from "react/jsx-runtime";
1335
+ import { jsx as jsx10 } from "react/jsx-runtime";
2378
1336
  function PaletteBadge({ text, color, className, variant = "button" }) {
2379
- return /* @__PURE__ */ jsx11(
1337
+ return /* @__PURE__ */ jsx10(
2380
1338
  StatusBadge,
2381
1339
  {
2382
1340
  text,
@@ -2389,14 +1347,14 @@ function PaletteBadge({ text, color, className, variant = "button" }) {
2389
1347
  }
2390
1348
 
2391
1349
  // src/components/ui/department-badge.tsx
2392
- import { jsx as jsx12 } from "react/jsx-runtime";
1350
+ import { jsx as jsx11 } from "react/jsx-runtime";
2393
1351
  function DepartmentBadge({
2394
1352
  department,
2395
1353
  emptyLabel = "No department",
2396
1354
  className,
2397
1355
  variant
2398
1356
  }) {
2399
- return /* @__PURE__ */ jsx12(
1357
+ return /* @__PURE__ */ jsx11(
2400
1358
  PaletteBadge,
2401
1359
  {
2402
1360
  text: department?.name || emptyLabel,
@@ -2408,7 +1366,7 @@ function DepartmentBadge({
2408
1366
  }
2409
1367
 
2410
1368
  // src/components/ui/avatar-stack.tsx
2411
- import { jsx as jsx13, jsxs as jsxs8 } from "react/jsx-runtime";
1369
+ import { jsx as jsx12, jsxs as jsxs7 } from "react/jsx-runtime";
2412
1370
  var SIZE_PX = { xs: 24, sm: 32, md: 40, lg: 48 };
2413
1371
  var OVERLAP_PX = { xs: 8, sm: 12, md: 12, lg: 12 };
2414
1372
  var OVERFLOW_CIRCLE_SIZE = {
@@ -2436,7 +1394,7 @@ function AvatarStack({
2436
1394
  const names = people.map((p) => p.name).join(", ");
2437
1395
  const unnamed = groupSize - people.length;
2438
1396
  const compact = size2 === "xs";
2439
- return /* @__PURE__ */ jsxs8(
1397
+ return /* @__PURE__ */ jsxs7(
2440
1398
  "div",
2441
1399
  {
2442
1400
  className: cn("flex items-center", slots && "shrink-0", className),
@@ -2444,7 +1402,7 @@ function AvatarStack({
2444
1402
  role: "group",
2445
1403
  "aria-label": `${label}: ${names}${unnamed > 0 ? ` and ${unnamed} more` : ""}`,
2446
1404
  children: [
2447
- visible.map((person, i) => /* @__PURE__ */ jsx13(
1405
+ visible.map((person, i) => /* @__PURE__ */ jsx12(
2448
1406
  SquareAvatar,
2449
1407
  {
2450
1408
  variant: "round",
@@ -2458,7 +1416,7 @@ function AvatarStack({
2458
1416
  },
2459
1417
  person.key ?? `${person.name}-${i}`
2460
1418
  )),
2461
- overflowCount > 0 && /* @__PURE__ */ jsxs8(
1419
+ overflowCount > 0 && /* @__PURE__ */ jsxs7(
2462
1420
  "span",
2463
1421
  {
2464
1422
  title: overflow.length > 0 ? overflow.map((p) => p.name).join(", ") : `${overflowCount} more`,
@@ -2483,530 +1441,6 @@ function AvatarStack({
2483
1441
  );
2484
1442
  }
2485
1443
 
2486
- // src/components/chat/utils/icon-registry.ts
2487
- import {
2488
- Activity,
2489
- Banknote,
2490
- Bell,
2491
- BookOpen,
2492
- Box,
2493
- Briefcase,
2494
- Calendar,
2495
- CheckSquare,
2496
- DollarSign,
2497
- Facebook,
2498
- FileText,
2499
- Github,
2500
- Globe,
2501
- GraduationCap,
2502
- Headphones,
2503
- Info,
2504
- Instagram,
2505
- Mail,
2506
- Megaphone,
2507
- MessageCircle,
2508
- MessageSquare,
2509
- Newspaper,
2510
- Package,
2511
- PenSquare,
2512
- Phone,
2513
- Rocket,
2514
- Search,
2515
- Send,
2516
- Shield,
2517
- Star,
2518
- TableProperties,
2519
- TrendingUp,
2520
- Twitter,
2521
- Users,
2522
- Video as Video2,
2523
- Youtube
2524
- } from "lucide-react";
2525
- import { createElement } from "react";
2526
- var OpenFrameLogoIcon = ({ className }) => createElement(OpenFrameLogo, { className, upperPathColor: "currentColor" });
2527
- var ICON_REGISTRY = {
2528
- // lucide-react (kebab-case)
2529
- activity: Activity,
2530
- banknote: Banknote,
2531
- bell: Bell,
2532
- "book-open": BookOpen,
2533
- box: Box,
2534
- briefcase: Briefcase,
2535
- calendar: Calendar,
2536
- "check-square": CheckSquare,
2537
- "dollar-sign": DollarSign,
2538
- // For brand-vs-lucide variants the kebab key is the BRAND (most-common
2539
- // social-platform intent); `'<name>-lucide'` carries the lucide outline.
2540
- facebook: FacebookIcon,
2541
- "facebook-lucide": Facebook,
2542
- "file-text": FileText,
2543
- // `'github-lucide'` is the lucide outline glyph (used by
2544
- // `social_platforms.icon_name='Github'`); `'github'` is the brand icon
2545
- // (used by `chat_admin_slash_commands.icon_name='github'`). The PascalCase
2546
- // alias `'Github' → 'github-lucide'` routes the lucide glyph for
2547
- // social-platform DB rows; `'GitHubIcon' → 'github'` keeps brand routing
2548
- // consistent for callers that store the PascalCase component name.
2549
- github: GitHubIcon,
2550
- "github-lucide": Github,
2551
- globe: Globe,
2552
- "graduation-cap": GraduationCap,
2553
- headphones: Headphones,
2554
- info: Info,
2555
- instagram: InstagramIcon,
2556
- "instagram-lucide": Instagram,
2557
- mail: Mail,
2558
- megaphone: Megaphone,
2559
- "message-circle": MessageCircle,
2560
- "message-square": MessageSquare,
2561
- newspaper: Newspaper,
2562
- package: Package,
2563
- "pen-square": PenSquare,
2564
- phone: Phone,
2565
- rocket: Rocket,
2566
- search: Search,
2567
- send: Send,
2568
- shield: Shield,
2569
- star: Star,
2570
- table: TableProperties,
2571
- "trending-up": TrendingUp,
2572
- twitter: Twitter,
2573
- users: Users,
2574
- video: Video2,
2575
- whatsapp: WhatsAppIcon,
2576
- youtube: YouTubeIcon,
2577
- "youtube-lucide": Youtube,
2578
- // brand-only icons (no lucide variant in current use)
2579
- slack: SlackIcon,
2580
- clickup: ClickUpIcon,
2581
- hubspot: HubspotIcon,
2582
- linkedin: LinkedInIcon,
2583
- x: XLogo,
2584
- openframe: OpenFrameLogoIcon
2585
- };
2586
- var PASCAL_TO_KEBAB_ALIASES = {
2587
- // Lucide PascalCase names → kebab equivalents
2588
- Activity: "activity",
2589
- Banknote: "banknote",
2590
- Bell: "bell",
2591
- BookOpen: "book-open",
2592
- Box: "box",
2593
- Briefcase: "briefcase",
2594
- Calendar: "calendar",
2595
- CheckSquare: "check-square",
2596
- DollarSign: "dollar-sign",
2597
- // Lucide PascalCase → the `-lucide` kebab variant (kebab default is the
2598
- // brand icon for the social-platform names below).
2599
- Facebook: "facebook-lucide",
2600
- FileText: "file-text",
2601
- Github: "github-lucide",
2602
- Globe: "globe",
2603
- GraduationCap: "graduation-cap",
2604
- Headphones: "headphones",
2605
- Info: "info",
2606
- Instagram: "instagram-lucide",
2607
- Mail: "mail",
2608
- Megaphone: "megaphone",
2609
- MessageCircle: "message-circle",
2610
- MessageSquare: "message-square",
2611
- Newspaper: "newspaper",
2612
- Package: "package",
2613
- PenSquare: "pen-square",
2614
- Phone: "phone",
2615
- Rocket: "rocket",
2616
- Search: "search",
2617
- Send: "send",
2618
- Shield: "shield",
2619
- Star: "star",
2620
- TableProperties: "table",
2621
- TrendingUp: "trending-up",
2622
- Twitter: "twitter",
2623
- Users: "users",
2624
- Video: "video",
2625
- Youtube: "youtube-lucide",
2626
- // Brand-icon PascalCase exports → kebab (kebab default is the brand)
2627
- SlackIcon: "slack",
2628
- GitHubIcon: "github",
2629
- ClickUpIcon: "clickup",
2630
- HubspotIcon: "hubspot",
2631
- LinkedInIcon: "linkedin",
2632
- FacebookIcon: "facebook",
2633
- InstagramIcon: "instagram",
2634
- YouTubeIcon: "youtube",
2635
- WhatsAppIcon: "whatsapp",
2636
- XLogo: "x",
2637
- OpenFrameLogo: "openframe"
2638
- };
2639
- function normalizeIconKey(key) {
2640
- return PASCAL_TO_KEBAB_ALIASES[key] ?? key;
2641
- }
2642
- function getIconComponent(iconName) {
2643
- if (!iconName) return FileText;
2644
- return ICON_REGISTRY[normalizeIconKey(iconName)] ?? FileText;
2645
- }
2646
- var SIZE_CLASSES = {
2647
- xs: "w-3 h-3",
2648
- // 12px
2649
- sm: "w-4 h-4",
2650
- // 16px
2651
- md: "w-6 h-6",
2652
- // 24px
2653
- lg: "w-8 h-8",
2654
- // 32px
2655
- xl: "w-12 h-12"
2656
- // 48px
2657
- };
2658
- var ICON_COLORS = {
2659
- linkedin: { color: "#0A66C2" },
2660
- facebook: { color: "#1877F2" },
2661
- youtube: { color: "#FF0000" }
2662
- };
2663
- function getDynamicIcon(iconName, size2 = "md", className) {
2664
- if (!iconName) {
2665
- console.warn("[getDynamicIcon] No iconName provided, using Globe fallback");
2666
- return createElement(Globe, { className: SIZE_CLASSES[size2] });
2667
- }
2668
- const sizeClass = SIZE_CLASSES[size2];
2669
- const finalClassName = className ? `${sizeClass} ${className}` : sizeClass;
2670
- const canonicalKey = normalizeIconKey(iconName);
2671
- const IconComponent = ICON_REGISTRY[canonicalKey];
2672
- if (IconComponent) {
2673
- const colorConfig = ICON_COLORS[canonicalKey] || {};
2674
- return createElement(IconComponent, { className: finalClassName, ...colorConfig });
2675
- }
2676
- console.error(
2677
- `[getDynamicIcon] Icon NOT found in registry: "${iconName}" (normalized to "${canonicalKey}"). Available icons:`,
2678
- Object.keys(ICON_REGISTRY)
2679
- );
2680
- return createElement(Globe, { className: finalClassName });
2681
- }
2682
-
2683
- // src/components/chat/utils/icon-library.tsx
2684
- import { Megaphone as Megaphone2, Bell as Bell2, Info as Info2, Star as Star2, Package as PackageGlyph } from "lucide-react";
2685
- import { jsx as jsx14 } from "react/jsx-runtime";
2686
- function sizedLogo(Logo) {
2687
- return function SizedLogo({ size: size2 = 16, className }) {
2688
- return /* @__PURE__ */ jsx14(Logo, { className, style: { width: size2, height: size2 } });
2689
- };
2690
- }
2691
- var brandColor = (platform) => `var(${platformAccentVarName(platform)})`;
2692
- var OpenmspLogoIcon = ({ size: size2 = 16, className }) => /* @__PURE__ */ jsx14(
2693
- OpenmspLogo,
2694
- {
2695
- className,
2696
- style: { width: size2, height: size2 },
2697
- frontBubbleColor: "var(--color-text-primary)",
2698
- innerFrontBubbleColor: "var(--color-bg)",
2699
- backBubbleColor: brandColor("openmsp")
2700
- }
2701
- );
2702
- var FlamingoLogoIcon = sizedLogo(FlamingoLogo);
2703
- var MlgLogoIcon = ({ size: size2 = 16, className, color }) => /* @__PURE__ */ jsx14(MlgLogo, { size: size2, className, color: color ?? "var(--color-text-primary)" });
2704
- var TmcgLogoIcon = ({ size: size2 = 16, className }) => /* @__PURE__ */ jsx14(
2705
- MiamiCyberGangLogoFaceOnly,
2706
- {
2707
- size: size2,
2708
- className,
2709
- originalPink: brandColor("tmcg"),
2710
- originalWhite: "var(--color-text-primary)"
2711
- }
2712
- );
2713
- function LogoOpenframeIcon({ size: size2 = 16, className, color }) {
2714
- const tint = color ?? "currentColor";
2715
- return /* @__PURE__ */ jsx14(
2716
- OpenFrameLogo,
2717
- {
2718
- className,
2719
- lowerPathColor: tint,
2720
- upperPathColor: tint,
2721
- style: { width: size2, height: size2 }
2722
- }
2723
- );
2724
- }
2725
- var ICON_ALIASES = {
2726
- // Production `/api/docs/commands` keys (multi-platform-hub contract)
2727
- clickup: ClickupLogoGreyIcon,
2728
- slack: SlackLogoGreyIcon,
2729
- hubspot: HubspotLogoGreyIcon,
2730
- github: GithubIcon,
2731
- openframe: LogoOpenframeIcon,
2732
- newspaper: NewspaperIcon,
2733
- rocket: Rocket02Icon,
2734
- briefcase: BriefcaseIcon,
2735
- "graduation-cap": GraduationCapIcon,
2736
- video: VideoRecorderIcon,
2737
- headphones: HeadphoneIcon,
2738
- calendar: CalendarIcon,
2739
- compass: CompassIcon,
2740
- // Figma-canonical aliases (node 7363:205938) — kept for Storybook
2741
- // fixtures and any older feed entries still using the long names.
2742
- "clickup-logo": ClickupLogoGreyIcon,
2743
- "clickup-logo-grey": ClickupLogoGreyIcon,
2744
- "slack-logo": SlackLogoGreyIcon,
2745
- "slack-logo-grey": SlackLogoGreyIcon,
2746
- "hubspot-logo": HubspotLogoGreyIcon,
2747
- "hubspot-logo-grey": HubspotLogoGreyIcon,
2748
- "github-logo": GithubIcon,
2749
- "logo-openframe": LogoOpenframeIcon,
2750
- "rocket-01": Rocket02Icon,
2751
- "rocket-02": Rocket02Icon,
2752
- // Announcement-bar legacy names — folded in so resolveIcon covers them too
2753
- // (was the separate `renderSvgIcon` map; now ONE resolver everywhere).
2754
- "openframe-logo": LogoOpenframeIcon,
2755
- "openmsp-logo": OpenmspLogoIcon,
2756
- "mlg-logo": MlgLogoIcon,
2757
- "tmcg-logo": TmcgLogoIcon,
2758
- flamingo: FlamingoLogoIcon,
2759
- "flamingo-logo": FlamingoLogoIcon,
2760
- megaphone: Megaphone2,
2761
- bell: Bell2,
2762
- info: Info2,
2763
- star: Star2,
2764
- package: PackageGlyph,
2765
- // Generic v2-native keys — useful fall-throughs for slash commands that
2766
- // don't have a brand-specific glyph in the design.
2767
- search: SearchIcon,
2768
- ticket: TicketIcon,
2769
- book: BookIcon,
2770
- "book-open": BookIcon,
2771
- bug: BugIcon,
2772
- layers: LayersIcon,
2773
- file: FileIcon,
2774
- "file-text": FileIcon,
2775
- chats: ChatsIcon,
2776
- "message-square": ChatsIcon,
2777
- "message-circle": ChatsIcon,
2778
- "bracket-curly": BracketCurlyIcon
2779
- };
2780
- function resolveFromLibrary(iconName) {
2781
- const tokens = iconName.trim().toLowerCase().replace(/_/g, "-").split("-");
2782
- if (tokens.some((t) => t.length === 0)) return void 0;
2783
- const cap = (t) => t.charAt(0).toUpperCase() + t.slice(1);
2784
- const candidates = [
2785
- `${tokens.map(cap).join("")}Icon`,
2786
- `${tokens.map((t) => t === "ai" ? "AI" : cap(t)).join("")}Icon`
2787
- ];
2788
- const registry = icons_v2_generated_exports;
2789
- for (const name of candidates) {
2790
- const Icon = registry[name];
2791
- if (Icon) return Icon;
2792
- }
2793
- return void 0;
2794
- }
2795
- function brandLogoForName(name) {
2796
- const words = (name ?? "").split(/[^A-Za-z0-9]+/).filter(Boolean);
2797
- const pascal = (word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
2798
- const registry = icons_v2_generated_exports;
2799
- for (let length = Math.min(3, words.length); length >= 1; length -= 1) {
2800
- for (let start = 0; start + length <= words.length; start += 1) {
2801
- const Logo = registry[`${words.slice(start, start + length).map(pascal).join("")}LogoIcon`];
2802
- if (Logo) return Logo;
2803
- }
2804
- }
2805
- return null;
2806
- }
2807
- function resolveIcon(iconName, opts) {
2808
- if (opts?.variant === "brand") {
2809
- return getIconComponent(iconName);
2810
- }
2811
- if (!iconName) return FileIcon;
2812
- return ICON_ALIASES[iconName] ?? resolveFromLibrary(iconName) ?? FileIcon;
2813
- }
2814
- var ICON_OPTIONS = [
2815
- // Brands
2816
- { key: "openframe", label: "OpenFrame" },
2817
- { key: "slack", label: "Slack" },
2818
- { key: "hubspot", label: "HubSpot" },
2819
- { key: "clickup", label: "ClickUp" },
2820
- { key: "github", label: "GitHub" },
2821
- { key: "linkedin", label: "LinkedIn" },
2822
- { key: "twitter", label: "Twitter (X)" },
2823
- { key: "twitter-x", label: "X" },
2824
- { key: "facebook", label: "Facebook" },
2825
- { key: "instagram", label: "Instagram" },
2826
- { key: "youtube", label: "YouTube" },
2827
- { key: "discord", label: "Discord" },
2828
- { key: "figma", label: "Figma" },
2829
- { key: "google", label: "Google" },
2830
- { key: "apple", label: "Apple" },
2831
- { key: "windows", label: "Windows" },
2832
- { key: "android", label: "Android" },
2833
- { key: "openai-logo", label: "OpenAI" },
2834
- { key: "anthropic-logo", label: "Anthropic" },
2835
- // Content & docs
2836
- { key: "newspaper", label: "Newspaper" },
2837
- { key: "book", label: "Book" },
2838
- { key: "file", label: "File" },
2839
- { key: "file-text", label: "Document" },
2840
- { key: "file-code", label: "Code file" },
2841
- { key: "file-chart-bar", label: "Report" },
2842
- { key: "file-dollar", label: "Invoice file" },
2843
- { key: "folder", label: "Folder" },
2844
- { key: "folder-open", label: "Folder open" },
2845
- { key: "clipboard", label: "Clipboard" },
2846
- { key: "clipboard-list", label: "Checklist" },
2847
- { key: "clipboard-check", label: "Clipboard check" },
2848
- { key: "memo", label: "Memo" },
2849
- { key: "paperclip", label: "Attachment" },
2850
- { key: "copy-01", label: "Copy" },
2851
- { key: "files", label: "Files" },
2852
- { key: "box-archive", label: "Box" },
2853
- { key: "parcel-01", label: "Parcel" },
2854
- // Media
2855
- { key: "video", label: "Video" },
2856
- { key: "headphones", label: "Podcast / audio" },
2857
- { key: "podcast", label: "Podcast" },
2858
- { key: "mic", label: "Microphone" },
2859
- { key: "music-note-01", label: "Music" },
2860
- { key: "camera", label: "Camera" },
2861
- { key: "image", label: "Image" },
2862
- { key: "film-hr", label: "Film" },
2863
- { key: "play", label: "Play" },
2864
- // Date & time
2865
- { key: "calendar", label: "Calendar" },
2866
- { key: "calendar-check", label: "Calendar check" },
2867
- { key: "clock", label: "Clock" },
2868
- { key: "alarm", label: "Alarm" },
2869
- { key: "stopwatch", label: "Stopwatch" },
2870
- { key: "timer", label: "Timer" },
2871
- { key: "hourglass", label: "Hourglass" },
2872
- // Places & business
2873
- { key: "briefcase", label: "Briefcase" },
2874
- { key: "graduation-cap", label: "Education" },
2875
- { key: "building", label: "Building" },
2876
- { key: "buildings", label: "Buildings" },
2877
- { key: "hospital", label: "Hospital" },
2878
- { key: "school", label: "School" },
2879
- { key: "warehouse", label: "Warehouse" },
2880
- { key: "shop", label: "Shop" },
2881
- // Communication
2882
- { key: "search", label: "Search" },
2883
- { key: "chats", label: "Chat" },
2884
- { key: "message-text", label: "Message" },
2885
- { key: "messages", label: "Messages" },
2886
- { key: "email", label: "Email" },
2887
- { key: "inbox", label: "Inbox" },
2888
- { key: "send-01", label: "Send" },
2889
- { key: "at-sign", label: "Mention" },
2890
- { key: "bell", label: "Notifications" },
2891
- { key: "megaphone-01", label: "Announcement" },
2892
- // Charts & analytics
2893
- { key: "chart-pie", label: "Pie chart" },
2894
- { key: "chart-donut", label: "Donut chart" },
2895
- { key: "chart-bar-01-ver", label: "Bar chart" },
2896
- { key: "chart-line-up", label: "Line chart" },
2897
- { key: "trend-up", label: "Trend up" },
2898
- { key: "trend-down", label: "Trend down" },
2899
- { key: "presentation", label: "Presentation" },
2900
- { key: "analysis", label: "Analysis" },
2901
- { key: "activity", label: "Activity" },
2902
- { key: "network", label: "Network" },
2903
- // Finance
2904
- { key: "bank", label: "Bank" },
2905
- { key: "money-bill-dollar", label: "Money" },
2906
- { key: "money-bill", label: "Bill" },
2907
- { key: "coins", label: "Coins" },
2908
- { key: "coin", label: "Coin" },
2909
- { key: "coins-exchange-currency", label: "Currency exchange" },
2910
- { key: "piggy-bank", label: "Savings" },
2911
- { key: "wallet-01", label: "Wallet" },
2912
- { key: "credit-card", label: "Credit card" },
2913
- { key: "hand-coin", label: "Hand coin" },
2914
- { key: "dollar", label: "Dollar" },
2915
- { key: "dollar-circle", label: "Dollar circle" },
2916
- { key: "euro", label: "Euro" },
2917
- { key: "bitcoin", label: "Bitcoin" },
2918
- { key: "percent", label: "Percent" },
2919
- { key: "receipt-01", label: "Receipt" },
2920
- { key: "badge-dollar", label: "Price badge" },
2921
- { key: "sack", label: "Money sack" },
2922
- // Security
2923
- { key: "shield", label: "Shield" },
2924
- { key: "shield-check", label: "Shield check" },
2925
- { key: "lock", label: "Lock" },
2926
- { key: "unlock", label: "Unlock" },
2927
- { key: "key", label: "Key" },
2928
- { key: "fingerprint", label: "Fingerprint" },
2929
- { key: "scan", label: "Scan" },
2930
- // People
2931
- { key: "user", label: "User" },
2932
- { key: "users", label: "Users" },
2933
- { key: "users-group", label: "User group" },
2934
- { key: "user-check", label: "User check" },
2935
- { key: "id-card", label: "ID card" },
2936
- { key: "avatar-circle", label: "Avatar" },
2937
- // Devices & infra
2938
- { key: "laptop", label: "Laptop" },
2939
- { key: "monitor", label: "Monitor" },
2940
- { key: "mobile-phone", label: "Phone" },
2941
- { key: "hard-drive", label: "Hard drive" },
2942
- { key: "hard-drives", label: "Storage" },
2943
- { key: "cloud", label: "Cloud" },
2944
- { key: "wifi", label: "Wi-Fi" },
2945
- { key: "printer", label: "Printer" },
2946
- { key: "keyboard", label: "Keyboard" },
2947
- { key: "microchip", label: "Chip" },
2948
- { key: "microchip-ai", label: "AI chip" },
2949
- { key: "power", label: "Power" },
2950
- // Code & dev
2951
- { key: "bracket-curly", label: "Code" },
2952
- { key: "terminal", label: "Terminal" },
2953
- { key: "code", label: "Code block" },
2954
- { key: "bug", label: "Bug" },
2955
- { key: "package", label: "Package" },
2956
- { key: "database", label: "Database" },
2957
- { key: "browser", label: "Browser" },
2958
- { key: "puzzle-01", label: "Plugin" },
2959
- { key: "coding-branch", label: "Branch" },
2960
- { key: "coding-commit", label: "Commit" },
2961
- { key: "coding-pull-request", label: "Pull request" },
2962
- { key: "robot", label: "Bot" },
2963
- { key: "blockchain", label: "Blockchain" },
2964
- // General & status
2965
- { key: "layers", label: "Layers" },
2966
- { key: "settings-01", label: "Settings" },
2967
- { key: "home", label: "Home" },
2968
- { key: "eye", label: "View" },
2969
- { key: "link-01", label: "Link" },
2970
- { key: "download-01", label: "Download" },
2971
- { key: "upload-01", label: "Upload" },
2972
- { key: "trash", label: "Delete" },
2973
- { key: "share", label: "Share" },
2974
- { key: "life-buoy", label: "Support" },
2975
- { key: "rocket", label: "Rocket" },
2976
- { key: "compass", label: "Compass" },
2977
- { key: "star", label: "Star" },
2978
- { key: "crown", label: "Crown" },
2979
- { key: "gift", label: "Gift" },
2980
- { key: "ticket", label: "Ticket" },
2981
- { key: "tag", label: "Tag" },
2982
- { key: "cart", label: "Cart" },
2983
- { key: "thumbs-up", label: "Thumbs up" },
2984
- { key: "flag-01", label: "Flag" },
2985
- { key: "bookmark", label: "Bookmark" },
2986
- { key: "pin", label: "Pin" },
2987
- { key: "check-circle", label: "Check" },
2988
- { key: "check-square", label: "Checkbox" },
2989
- { key: "info-circle", label: "Info" },
2990
- { key: "info", label: "Info alt" },
2991
- { key: "question-circle", label: "Help" },
2992
- { key: "alert-triangle", label: "Warning" },
2993
- { key: "hash", label: "Hashtag" },
2994
- { key: "pencil", label: "Edit" },
2995
- { key: "lightning", label: "Lightning" },
2996
- { key: "globe-01", label: "Globe" },
2997
- { key: "scale-balanced", label: "Balance" },
2998
- { key: "certified-01", label: "Certified" }
2999
- ];
3000
-
3001
- // src/assets/fae-avatar.ts
3002
- var FAE_AVATAR_DATA_URI = "data:image/png;base64,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";
3003
-
3004
- // src/components/agent-mark.tsx
3005
- import { jsx as jsx15 } from "react/jsx-runtime";
3006
- function AgentMark({ agent, className = "", faeAvatarSrc = FAE_AVATAR_DATA_URI }) {
3007
- return agent === "mingo" ? /* @__PURE__ */ jsx15(MingoIcon, { className, "aria-hidden": "true", focusable: "false" }) : /* @__PURE__ */ jsx15("img", { src: faeAvatarSrc, alt: "", className });
3008
- }
3009
-
3010
1444
  // src/utils/image-proxy.ts
3011
1445
  function getProxiedImageUrl(imageUrl, options) {
3012
1446
  if (!imageUrl) return null;
@@ -3059,42 +1493,6 @@ function skipsImageOptimizer(url) {
3059
1493
  }
3060
1494
  }
3061
1495
 
3062
- // src/components/icon-display.tsx
3063
- import { jsx as jsx16 } from "react/jsx-runtime";
3064
- var BRAND_MARK_NAMES = /* @__PURE__ */ new Set(["fae", "mingo"]);
3065
- function EntityIcon({
3066
- icon,
3067
- size: size2 = 20,
3068
- className
3069
- }) {
3070
- if (icon?.url) {
3071
- return /* @__PURE__ */ jsx16(
3072
- next_image_default,
3073
- {
3074
- src: icon.url,
3075
- alt: "",
3076
- width: size2,
3077
- height: size2,
3078
- className,
3079
- style: { objectFit: "contain" },
3080
- unoptimized: true
3081
- }
3082
- );
3083
- }
3084
- if (icon?.name && BRAND_MARK_NAMES.has(icon.name)) {
3085
- return /* @__PURE__ */ jsx16(
3086
- "span",
3087
- {
3088
- className: `inline-flex${className ? ` ${className}` : ""}`,
3089
- style: className ? void 0 : { width: size2, height: size2 },
3090
- children: /* @__PURE__ */ jsx16(AgentMark, { agent: icon.name, className: "h-full w-full" })
3091
- }
3092
- );
3093
- }
3094
- const Glyph = resolveIcon(icon?.name ?? void 0);
3095
- return /* @__PURE__ */ jsx16(Glyph, { size: size2, className, ...icon?.props ?? {} });
3096
- }
3097
-
3098
1496
  // src/utils/escape-regexp.ts
3099
1497
  function escapeRegExp(value) {
3100
1498
  return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
@@ -3149,7 +1547,7 @@ function buildAnchorProps(href, isNewTab) {
3149
1547
  }
3150
1548
 
3151
1549
  // src/components/chat/entity-cards/entity-author-card.tsx
3152
- import { jsx as jsx17, jsxs as jsxs9 } from "react/jsx-runtime";
1550
+ import { jsx as jsx13, jsxs as jsxs8 } from "react/jsx-runtime";
3153
1551
  var EMPTY_AUTHOR_PLACEHOLDER = {
3154
1552
  full_name: "\u2014",
3155
1553
  avatar_url: null,
@@ -3161,9 +1559,9 @@ function EntityMetadataValueCell({
3161
1559
  className,
3162
1560
  uppercase = true
3163
1561
  }) {
3164
- return /* @__PURE__ */ jsx17("div", { className: `flex flex-col gap-3 p-4 ${className ?? ""}`, children: /* @__PURE__ */ jsxs9("div", { className: "flex flex-col gap-0", children: [
3165
- typeof value === "string" ? /* @__PURE__ */ jsx17("p", { className: "text-ods-text-primary text-h4", children: uppercase ? value.toLocaleUpperCase() : value }) : /* @__PURE__ */ jsx17("div", { className: "flex min-h-6 items-center", children: value }),
3166
- /* @__PURE__ */ jsx17("p", { className: "text-ods-text-secondary text-h6", children: label })
1562
+ return /* @__PURE__ */ jsx13("div", { className: `flex flex-col gap-3 p-4 ${className ?? ""}`, children: /* @__PURE__ */ jsxs8("div", { className: "flex flex-col gap-0", children: [
1563
+ typeof value === "string" ? /* @__PURE__ */ jsx13("p", { className: "text-ods-text-primary text-h4", children: uppercase ? value.toLocaleUpperCase() : value }) : /* @__PURE__ */ jsx13("div", { className: "flex min-h-6 items-center", children: value }),
1564
+ /* @__PURE__ */ jsx13("p", { className: "text-ods-text-secondary text-h6", children: label })
3167
1565
  ] }) });
3168
1566
  }
3169
1567
  function EntityMetadataAuthorCell({
@@ -3174,8 +1572,8 @@ function EntityMetadataAuthorCell({
3174
1572
  }) {
3175
1573
  const trimmedName = typeof author.full_name === "string" ? author.full_name.trim() : "";
3176
1574
  const fullName = trimmedName || "Unknown Author";
3177
- return /* @__PURE__ */ jsxs9("div", { className: `flex items-center gap-3 p-4 ${className ?? ""}`, children: [
3178
- /* @__PURE__ */ jsx17(
1575
+ return /* @__PURE__ */ jsxs8("div", { className: `flex items-center gap-3 p-4 ${className ?? ""}`, children: [
1576
+ /* @__PURE__ */ jsx13(
3179
1577
  SquareAvatar,
3180
1578
  {
3181
1579
  src: author.avatar_url || "",
@@ -3185,9 +1583,9 @@ function EntityMetadataAuthorCell({
3185
1583
  variant: "round"
3186
1584
  }
3187
1585
  ),
3188
- /* @__PURE__ */ jsxs9("div", { className: "flex min-w-0 flex-1 flex-col gap-0", children: [
3189
- /* @__PURE__ */ jsx17("p", { className: "truncate text-ods-text-primary text-h3", title: fullName, children: authorHref && trimmedName ? /* @__PURE__ */ jsx17(next_link_default, { href: authorHref, className: "transition-colors hover:text-ods-accent", children: fullName }) : fullName }),
3190
- /* @__PURE__ */ jsx17("p", { className: "text-ods-text-secondary text-h6", children: author.job_title || roleLabel })
1586
+ /* @__PURE__ */ jsxs8("div", { className: "flex min-w-0 flex-1 flex-col gap-0", children: [
1587
+ /* @__PURE__ */ jsx13("p", { className: "truncate text-ods-text-primary text-h3", title: fullName, children: authorHref && trimmedName ? /* @__PURE__ */ jsx13(next_link_default, { href: authorHref, className: "transition-colors hover:text-ods-accent", children: fullName }) : fullName }),
1588
+ /* @__PURE__ */ jsx13("p", { className: "text-ods-text-secondary text-h6", children: author.job_title || roleLabel })
3191
1589
  ] })
3192
1590
  ] });
3193
1591
  }
@@ -3211,12 +1609,12 @@ function EntityAuthorCard({
3211
1609
  const totalCells = extras.length + (showDateCell ? 1 : 0) + 1;
3212
1610
  const gridColsClass = totalCells >= 4 ? "md:grid-cols-4" : totalCells === 3 ? "md:grid-cols-3" : totalCells === 2 ? "md:grid-cols-2" : "md:grid-cols-1";
3213
1611
  const dividerClass = "border-b md:border-b-0 md:border-r border-ods-border";
3214
- return /* @__PURE__ */ jsxs9(
1612
+ return /* @__PURE__ */ jsxs8(
3215
1613
  "div",
3216
1614
  {
3217
1615
  className: `grid grid-cols-1 ${gridColsClass} w-full overflow-hidden rounded-md border border-ods-border ${className ?? ""}`,
3218
1616
  children: [
3219
- extras.map((cell, i) => /* @__PURE__ */ jsx17(
1617
+ extras.map((cell, i) => /* @__PURE__ */ jsx13(
3220
1618
  EntityMetadataValueCell,
3221
1619
  {
3222
1620
  value: cell.value,
@@ -3226,18 +1624,18 @@ function EntityAuthorCard({
3226
1624
  },
3227
1625
  `${cell.label}-${i}`
3228
1626
  )),
3229
- showDateCell && /* @__PURE__ */ jsx17(EntityMetadataValueCell, { value: dateLabel, label: publishedLabel, uppercase: false, className: dividerClass }),
3230
- /* @__PURE__ */ jsx17(EntityMetadataAuthorCell, { author: effectiveAuthor, roleLabel, authorHref })
1627
+ showDateCell && /* @__PURE__ */ jsx13(EntityMetadataValueCell, { value: dateLabel, label: publishedLabel, uppercase: false, className: dividerClass }),
1628
+ /* @__PURE__ */ jsx13(EntityMetadataAuthorCell, { author: effectiveAuthor, roleLabel, authorHref })
3231
1629
  ]
3232
1630
  }
3233
1631
  );
3234
1632
  }
3235
1633
 
3236
1634
  // src/components/chat/entity-cards/blog-image-placeholder.tsx
3237
- import { jsx as jsx18 } from "react/jsx-runtime";
1635
+ import { jsx as jsx14 } from "react/jsx-runtime";
3238
1636
  function BlogImagePlaceholder({ imageUrl, title, className = "" }) {
3239
1637
  if (!imageUrl) return null;
3240
- return /* @__PURE__ */ jsx18("span", { className: `relative block h-full w-full overflow-hidden bg-ods-bg ${className}`, children: /* @__PURE__ */ jsx18(
1638
+ return /* @__PURE__ */ jsx14("span", { className: `relative block h-full w-full overflow-hidden bg-ods-bg ${className}`, children: /* @__PURE__ */ jsx14(
3241
1639
  next_image_default,
3242
1640
  {
3243
1641
  src: imageUrl,
@@ -3256,7 +1654,7 @@ function BlogImagePlaceholder({ imageUrl, title, className = "" }) {
3256
1654
  }
3257
1655
 
3258
1656
  // src/components/chat/entity-cards/content-card-frame.tsx
3259
- import { jsx as jsx19 } from "react/jsx-runtime";
1657
+ import { jsx as jsx15 } from "react/jsx-runtime";
3260
1658
  var CONTENT_CARD_FRAME_CLASS = cn(
3261
1659
  "group isolate overflow-hidden rounded-2xl",
3262
1660
  "border border-ods-border bg-transparent",
@@ -3265,15 +1663,15 @@ var CONTENT_CARD_FRAME_CLASS = cn(
3265
1663
  );
3266
1664
  var CONTENT_CARD_SKELETON_FRAME_CLASS = "overflow-hidden rounded-2xl border border-ods-border bg-transparent";
3267
1665
  function ContentCardFrame({ as: Tag2 = "article", className, children, ...rest }) {
3268
- return /* @__PURE__ */ jsx19(Tag2, { className: cn(CONTENT_CARD_FRAME_CLASS, Tag2 === "a" && "no-underline", className), ...rest, children });
1666
+ return /* @__PURE__ */ jsx15(Tag2, { className: cn(CONTENT_CARD_FRAME_CLASS, Tag2 === "a" && "no-underline", className), ...rest, children });
3269
1667
  }
3270
1668
 
3271
1669
  // src/components/chat/entity-cards/use-cover-image-fallback.ts
3272
- import { useCallback as useCallback3, useState as useState4 } from "react";
1670
+ import { useCallback as useCallback2, useState as useState3 } from "react";
3273
1671
  function useCoverImageFallback(imageUrl, placeholderUrl) {
3274
- const [failed, setFailed] = useState4(() => /* @__PURE__ */ new Set());
1672
+ const [failed, setFailed] = useState3(() => /* @__PURE__ */ new Set());
3275
1673
  const src = imageUrl && !failed.has(imageUrl) ? imageUrl : placeholderUrl && !failed.has(placeholderUrl) ? placeholderUrl : null;
3276
- const onError = useCallback3(() => {
1674
+ const onError = useCallback2(() => {
3277
1675
  if (!src) return;
3278
1676
  setFailed((prev) => new Set(prev).add(src));
3279
1677
  }, [src]);
@@ -3285,8 +1683,8 @@ var hideOnError = (e) => {
3285
1683
  };
3286
1684
 
3287
1685
  // src/components/chat/entity-cards/entity-portrait-card.tsx
3288
- import { useState as useState5 } from "react";
3289
- import { jsx as jsx20, jsxs as jsxs10 } from "react/jsx-runtime";
1686
+ import { useState as useState4 } from "react";
1687
+ import { jsx as jsx16, jsxs as jsxs9 } from "react/jsx-runtime";
3290
1688
  var MIN_WIDE_RATIO = 1.3;
3291
1689
  function EntityPortraitCard({
3292
1690
  href,
@@ -3302,7 +1700,7 @@ function EntityPortraitCard({
3302
1700
  className
3303
1701
  }) {
3304
1702
  const { src, onError: onMediaError } = useCoverImageFallback(imageUrl, placeholderUrl);
3305
- const [measured, setMeasured] = useState5(null);
1703
+ const [measured, setMeasured] = useState4(null);
3306
1704
  const isWide = measured?.src === src ? measured.isWide : null;
3307
1705
  const onMediaLoad = (e) => {
3308
1706
  const img = e.currentTarget;
@@ -3311,13 +1709,13 @@ function EntityPortraitCard({
3311
1709
  }
3312
1710
  };
3313
1711
  const edgeColor = useImageEdgeColor(isWide === false ? src : null, "var(--color-bg-surface)");
3314
- return /* @__PURE__ */ jsx20("a", { href, target, rel, className: cn("block h-full", className), "aria-label": `Open ${title}`, children: /* @__PURE__ */ jsxs10(Card, { className: cn(CONTENT_CARD_FRAME_CLASS, "flex h-full flex-col gap-6 p-6"), children: [
3315
- /* @__PURE__ */ jsx20(
1712
+ return /* @__PURE__ */ jsx16("a", { href, target, rel, className: cn("block h-full", className), "aria-label": `Open ${title}`, children: /* @__PURE__ */ jsxs9(Card, { className: cn(CONTENT_CARD_FRAME_CLASS, "flex h-full flex-col gap-6 p-6"), children: [
1713
+ /* @__PURE__ */ jsx16(
3316
1714
  "div",
3317
1715
  {
3318
1716
  className: "relative flex aspect-[1200/630] w-full shrink-0 items-center justify-center overflow-hidden rounded-sm bg-ods-bg transition-colors duration-300",
3319
1717
  style: isWide === false ? { backgroundColor: edgeColor } : void 0,
3320
- children: src && /* @__PURE__ */ jsx20(
1718
+ children: src && /* @__PURE__ */ jsx16(
3321
1719
  next_image_default,
3322
1720
  {
3323
1721
  src,
@@ -3332,8 +1730,8 @@ function EntityPortraitCard({
3332
1730
  )
3333
1731
  }
3334
1732
  ),
3335
- /* @__PURE__ */ jsxs10("div", { className: "flex h-[72px] shrink-0 flex-col justify-center gap-1.5", children: [
3336
- typeLabel && /* @__PURE__ */ jsx20(
1733
+ /* @__PURE__ */ jsxs9("div", { className: "flex h-[72px] shrink-0 flex-col justify-center gap-1.5", children: [
1734
+ typeLabel && /* @__PURE__ */ jsx16(
3337
1735
  StatusBadge,
3338
1736
  {
3339
1737
  variant: "button",
@@ -3343,7 +1741,7 @@ function EntityPortraitCard({
3343
1741
  className: "self-start"
3344
1742
  }
3345
1743
  ),
3346
- /* @__PURE__ */ jsx20(
1744
+ /* @__PURE__ */ jsx16(
3347
1745
  "h3",
3348
1746
  {
3349
1747
  className: cn(
@@ -3355,9 +1753,9 @@ function EntityPortraitCard({
3355
1753
  }
3356
1754
  )
3357
1755
  ] }),
3358
- /* @__PURE__ */ jsx20("div", { className: "flex h-[60px] shrink-0 items-center", children: person && /* @__PURE__ */ jsxs10("div", { className: "flex w-full min-w-0 items-center gap-3", children: [
3359
- /* @__PURE__ */ jsxs10("div", { className: "relative h-12 w-12 shrink-0", children: [
3360
- person.avatarUrl ? /* @__PURE__ */ jsx20(
1756
+ /* @__PURE__ */ jsx16("div", { className: "flex h-[60px] shrink-0 items-center", children: person && /* @__PURE__ */ jsxs9("div", { className: "flex w-full min-w-0 items-center gap-3", children: [
1757
+ /* @__PURE__ */ jsxs9("div", { className: "relative h-12 w-12 shrink-0", children: [
1758
+ person.avatarUrl ? /* @__PURE__ */ jsx16(
3361
1759
  next_image_default,
3362
1760
  {
3363
1761
  src: person.avatarUrl,
@@ -3367,8 +1765,8 @@ function EntityPortraitCard({
3367
1765
  height: 48,
3368
1766
  unoptimized: true
3369
1767
  }
3370
- ) : /* @__PURE__ */ jsx20("div", { className: "flex h-12 w-12 items-center justify-center rounded-full border border-ods-border bg-ods-bg", children: /* @__PURE__ */ jsx20("span", { className: "text-ods-text-secondary text-h4", children: person.name.charAt(0).toUpperCase() }) }),
3371
- person.iconOverlayUrl && /* @__PURE__ */ jsx20("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__ */ jsx20(
1768
+ ) : /* @__PURE__ */ jsx16("div", { className: "flex h-12 w-12 items-center justify-center rounded-full border border-ods-border bg-ods-bg", children: /* @__PURE__ */ jsx16("span", { className: "text-ods-text-secondary text-h4", children: person.name.charAt(0).toUpperCase() }) }),
1769
+ person.iconOverlayUrl && /* @__PURE__ */ jsx16("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__ */ jsx16(
3372
1770
  next_image_default,
3373
1771
  {
3374
1772
  src: person.iconOverlayUrl,
@@ -3380,26 +1778,26 @@ function EntityPortraitCard({
3380
1778
  }
3381
1779
  ) })
3382
1780
  ] }),
3383
- /* @__PURE__ */ jsxs10("div", { className: "flex min-w-0 flex-col", children: [
3384
- /* @__PURE__ */ jsx20("span", { className: "truncate font-bold text-ods-text-primary text-h6", children: person.name }),
3385
- person.subtitle && /* @__PURE__ */ jsx20("span", { className: "truncate text-ods-text-secondary text-h6", children: person.subtitle })
1781
+ /* @__PURE__ */ jsxs9("div", { className: "flex min-w-0 flex-col", children: [
1782
+ /* @__PURE__ */ jsx16("span", { className: "truncate font-bold text-ods-text-primary text-h6", children: person.name }),
1783
+ person.subtitle && /* @__PURE__ */ jsx16("span", { className: "truncate text-ods-text-secondary text-h6", children: person.subtitle })
3386
1784
  ] })
3387
1785
  ] }) })
3388
1786
  ] }) });
3389
1787
  }
3390
1788
 
3391
1789
  // src/components/features/platform-badge.tsx
3392
- import { Globe as Globe2 } from "lucide-react";
1790
+ import { Globe } from "lucide-react";
3393
1791
 
3394
1792
  // src/components/flamingo-logo.tsx
3395
- import { jsx as jsx21 } from "react/jsx-runtime";
3396
- function FlamingoLogo2({
1793
+ import { jsx as jsx17 } from "react/jsx-runtime";
1794
+ function FlamingoLogo({
3397
1795
  className = "",
3398
1796
  color = "var(--ods-flamingo-pink-base)",
3399
1797
  size: size2 = 120,
3400
1798
  ...props
3401
1799
  }) {
3402
- return /* @__PURE__ */ jsx21(
1800
+ return /* @__PURE__ */ jsx17(
3403
1801
  "svg",
3404
1802
  {
3405
1803
  width: size2,
@@ -3408,7 +1806,7 @@ function FlamingoLogo2({
3408
1806
  xmlns: "http://www.w3.org/2000/svg",
3409
1807
  className,
3410
1808
  ...props,
3411
- children: /* @__PURE__ */ jsx21(
1809
+ children: /* @__PURE__ */ jsx17(
3412
1810
  "path",
3413
1811
  {
3414
1812
  fillRule: "evenodd",
@@ -3422,15 +1820,15 @@ function FlamingoLogo2({
3422
1820
  }
3423
1821
 
3424
1822
  // src/components/openmsp-logo.tsx
3425
- import { jsx as jsx22, jsxs as jsxs11 } from "react/jsx-runtime";
3426
- function OpenmspLogo2({
1823
+ import { jsx as jsx18, jsxs as jsxs10 } from "react/jsx-runtime";
1824
+ function OpenmspLogo({
3427
1825
  className = "",
3428
1826
  frontBubbleColor = "#000000",
3429
1827
  innerFrontBubbleColor = "#ffffff",
3430
1828
  backBubbleColor = "#ffffff",
3431
1829
  ...props
3432
1830
  }) {
3433
- return /* @__PURE__ */ jsxs11(
1831
+ return /* @__PURE__ */ jsxs10(
3434
1832
  "svg",
3435
1833
  {
3436
1834
  width: "97",
@@ -3441,35 +1839,35 @@ function OpenmspLogo2({
3441
1839
  className,
3442
1840
  ...props,
3443
1841
  children: [
3444
- /* @__PURE__ */ jsx22(
1842
+ /* @__PURE__ */ jsx18(
3445
1843
  "path",
3446
1844
  {
3447
1845
  d: "M73.933 0C75.7003 0 77.133 1.43269 77.133 3.2V54.4C77.133 56.1673 75.7003 57.6 73.933 57.6H3.53301C1.7657 57.6 0.333008 56.1673 0.333008 54.4V3.2C0.333008 1.43269 1.7657 0 3.53301 0H73.933ZM10.1076 47.6494C10.1076 48.0912 10.4658 48.4494 10.9076 48.4494H66.5584C67.0002 48.4494 67.3584 48.0912 67.3584 47.6494V9.95059C67.3584 9.50876 67.0002 9.15059 66.5584 9.15059H10.9076C10.4658 9.15059 10.1076 9.50876 10.1076 9.95059V47.6494Z",
3448
1846
  fill: backBubbleColor
3449
1847
  }
3450
1848
  ),
3451
- /* @__PURE__ */ jsx22(
1849
+ /* @__PURE__ */ jsx18(
3452
1850
  "path",
3453
1851
  {
3454
1852
  d: "M19.5332 22.4C19.5332 20.6326 20.9659 19.2 22.7332 19.2H93.1332C94.9005 19.2 96.3332 20.6326 96.3332 22.4V76.8C96.3332 78.2222 95.3945 79.4737 94.0292 79.8719L39.7572 95.7013C39.2452 95.8506 38.7332 95.4666 38.7332 94.9333V80C38.7332 79.5581 38.375 79.2 37.9332 79.2H22.7332C20.9659 79.2 19.5332 77.7673 19.5332 76V22.4Z",
3455
1853
  fill: innerFrontBubbleColor
3456
1854
  }
3457
1855
  ),
3458
- /* @__PURE__ */ jsx22(
1856
+ /* @__PURE__ */ jsx18(
3459
1857
  "path",
3460
1858
  {
3461
1859
  d: "M93.1332 19.2C94.9005 19.2 96.3332 20.6326 96.3332 22.4V76.8C96.3332 78.2222 95.3945 79.4737 94.0292 79.8719L39.7572 95.7013C39.2452 95.8506 38.7332 95.4666 38.7332 94.9333V80C38.7332 79.5581 38.375 79.2 37.9332 79.2H22.7332C20.9659 79.2 19.5332 77.7673 19.5332 76V22.4C19.5332 20.6326 20.9659 19.2 22.7332 19.2H93.1332ZM48.3377 82.1286C48.3355 82.6633 48.8484 83.0497 49.3617 82.9L86.1572 72.1672C86.4985 72.0676 86.7332 71.7547 86.7332 71.3992V29.6C86.7332 29.1581 86.375 28.8 85.9332 28.8H29.9332C29.4914 28.8 29.1332 29.1581 29.1332 29.6V68.8C29.1332 69.2418 29.4914 69.6 29.9332 69.6H47.5869C48.03 69.6 48.3887 69.9602 48.3869 70.4033L48.3377 82.1286Z",
3462
1860
  fill: frontBubbleColor
3463
1861
  }
3464
1862
  ),
3465
- /* @__PURE__ */ jsx22("circle", { cx: "45.1334", cy: "44.8", r: "6.4", fill: frontBubbleColor })
1863
+ /* @__PURE__ */ jsx18("circle", { cx: "45.1334", cy: "44.8", r: "6.4", fill: frontBubbleColor })
3466
1864
  ]
3467
1865
  }
3468
1866
  );
3469
1867
  }
3470
1868
 
3471
1869
  // src/components/features/platform-badge.tsx
3472
- import { jsx as jsx23, jsxs as jsxs12 } from "react/jsx-runtime";
1870
+ import { jsx as jsx19, jsxs as jsxs11 } from "react/jsx-runtime";
3473
1871
  var sizeClasses = {
3474
1872
  xs: {
3475
1873
  container: "gap-1 px-1.5 py-0.5",
@@ -3492,8 +1890,8 @@ var PlatformIcon = ({ platform, className }) => {
3492
1890
  const size2 = sizeMatch ? parseInt(sizeMatch[1]) * 4 : 16;
3493
1891
  switch (platform) {
3494
1892
  case "openmsp":
3495
- return /* @__PURE__ */ jsx23(
3496
- OpenmspLogo2,
1893
+ return /* @__PURE__ */ jsx19(
1894
+ OpenmspLogo,
3497
1895
  {
3498
1896
  className,
3499
1897
  frontBubbleColor: "currentColor",
@@ -3503,19 +1901,19 @@ var PlatformIcon = ({ platform, className }) => {
3503
1901
  );
3504
1902
  case "flamingo":
3505
1903
  case "flamingo-teaser":
3506
- return /* @__PURE__ */ jsx23(FlamingoLogo2, { className });
1904
+ return /* @__PURE__ */ jsx19(FlamingoLogo, { className });
3507
1905
  case "openframe":
3508
- return /* @__PURE__ */ jsx23(OpenFrameLogo, { className });
1906
+ return /* @__PURE__ */ jsx19(OpenFrameLogo, { className });
3509
1907
  case "tmcg":
3510
- return /* @__PURE__ */ jsx23(MiamiCyberGangLogoFaceOnly, { size: size2, className });
1908
+ return /* @__PURE__ */ jsx19(MiamiCyberGangLogoFaceOnly, { size: size2, className });
3511
1909
  case "company-hub":
3512
1910
  case "marketing-hub":
3513
1911
  case "product-hub":
3514
1912
  case "revenue-hub":
3515
1913
  case "people-hub":
3516
- return /* @__PURE__ */ jsx23(FlamingoLogo2, { className, fill: "currentColor" });
1914
+ return /* @__PURE__ */ jsx19(FlamingoLogo, { className, fill: "currentColor" });
3517
1915
  default:
3518
- return /* @__PURE__ */ jsx23(Globe2, { className });
1916
+ return /* @__PURE__ */ jsx19(Globe, { className });
3519
1917
  }
3520
1918
  };
3521
1919
  function PlatformBadge({ platform, size: size2 = "sm", showLabel = true, className }) {
@@ -3524,7 +1922,7 @@ function PlatformBadge({ platform, size: size2 = "sm", showLabel = true, classNa
3524
1922
  }
3525
1923
  const sizes = sizeClasses[size2];
3526
1924
  const colors = getPlatformBrandClasses(platform.name);
3527
- return /* @__PURE__ */ jsxs12(
1925
+ return /* @__PURE__ */ jsxs11(
3528
1926
  "div",
3529
1927
  {
3530
1928
  className: cn(
@@ -3537,16 +1935,16 @@ function PlatformBadge({ platform, size: size2 = "sm", showLabel = true, classNa
3537
1935
  className
3538
1936
  ),
3539
1937
  children: [
3540
- /* @__PURE__ */ jsx23(PlatformIcon, { platform: platform.name, className: sizes.icon }),
3541
- showLabel && /* @__PURE__ */ jsx23("span", { className: sizes.text, children: platform.display_name || platform.name })
1938
+ /* @__PURE__ */ jsx19(PlatformIcon, { platform: platform.name, className: sizes.icon }),
1939
+ showLabel && /* @__PURE__ */ jsx19("span", { className: sizes.text, children: platform.display_name || platform.name })
3542
1940
  ]
3543
1941
  }
3544
1942
  );
3545
1943
  }
3546
1944
 
3547
1945
  // src/components/chat/entity-cards/admin-content-card.tsx
3548
- import { useState as useState6 } from "react";
3549
- import { Fragment as Fragment3, jsx as jsx24, jsxs as jsxs13 } from "react/jsx-runtime";
1946
+ import { useState as useState5 } from "react";
1947
+ import { Fragment as Fragment3, jsx as jsx20, jsxs as jsxs12 } from "react/jsx-runtime";
3550
1948
  function AdminContentCard({
3551
1949
  imageUrl,
3552
1950
  placeholderUrl,
@@ -3561,15 +1959,15 @@ function AdminContentCard({
3561
1959
  subtitleRow = true,
3562
1960
  className
3563
1961
  }) {
3564
- const [imageError, setImageError] = useState6(false);
3565
- const [loadedUrl, setLoadedUrl] = useState6(null);
1962
+ const [imageError, setImageError] = useState5(false);
1963
+ const [loadedUrl, setLoadedUrl] = useState5(null);
3566
1964
  const displayUrl = imageUrl && !imageError ? imageUrl : placeholderUrl;
3567
1965
  const imageLoaded = Boolean(displayUrl) && loadedUrl === displayUrl;
3568
1966
  const imageBgColor = useImageEdgeColor(displayUrl || null, "transparent");
3569
- return /* @__PURE__ */ jsxs13("article", { className: cn(CONTENT_CARD_FRAME_CLASS, "flex h-full flex-col", className), children: [
3570
- /* @__PURE__ */ jsx24("div", { className: "relative aspect-[3/2] w-full shrink-0 overflow-hidden", style: { backgroundColor: imageBgColor }, children: displayUrl ? /* @__PURE__ */ jsxs13(Fragment3, { children: [
3571
- !imageLoaded && /* @__PURE__ */ jsx24("div", { className: "absolute inset-0 animate-pulse bg-ods-border/20" }),
3572
- /* @__PURE__ */ jsx24(
1967
+ return /* @__PURE__ */ jsxs12("article", { className: cn(CONTENT_CARD_FRAME_CLASS, "flex h-full flex-col", className), children: [
1968
+ /* @__PURE__ */ jsx20("div", { className: "relative aspect-[3/2] w-full shrink-0 overflow-hidden", style: { backgroundColor: imageBgColor }, children: displayUrl ? /* @__PURE__ */ jsxs12(Fragment3, { children: [
1969
+ !imageLoaded && /* @__PURE__ */ jsx20("div", { className: "absolute inset-0 animate-pulse bg-ods-border/20" }),
1970
+ /* @__PURE__ */ jsx20(
3573
1971
  next_image_default,
3574
1972
  {
3575
1973
  src: displayUrl,
@@ -3587,13 +1985,13 @@ function AdminContentCard({
3587
1985
  onError: () => setImageError(true)
3588
1986
  }
3589
1987
  )
3590
- ] }) : /* @__PURE__ */ jsx24("div", { className: "absolute inset-0 bg-ods-bg" }) }),
3591
- /* @__PURE__ */ jsxs13("div", { className: "flex flex-1 flex-col gap-3 p-5", children: [
3592
- /* @__PURE__ */ jsx24("h3", { className: cn("line-clamp-2 break-words text-ods-text-primary text-h3", reserveRows && "min-h-[2lh]"), children: title }),
3593
- (subtitle || reserveRows && subtitleRow) && /* @__PURE__ */ jsx24("p", { className: cn("truncate text-ods-text-secondary text-h6", reserveRows && "min-h-[1lh]"), children: subtitle }),
3594
- (summary || reserveRows) && /* @__PURE__ */ jsx24("p", { className: cn("line-clamp-2 text-ods-text-secondary text-h6", reserveRows && "min-h-[2lh]"), children: summary }),
3595
- (Number(platforms?.length) > 0 || badges || reserveRows) && /* @__PURE__ */ jsxs13("div", { className: cn("flex flex-wrap items-center gap-2", reserveRows && "min-h-7"), children: [
3596
- platforms?.map((p) => /* @__PURE__ */ jsx24(
1988
+ ] }) : /* @__PURE__ */ jsx20("div", { className: "absolute inset-0 bg-ods-bg" }) }),
1989
+ /* @__PURE__ */ jsxs12("div", { className: "flex flex-1 flex-col gap-3 p-5", children: [
1990
+ /* @__PURE__ */ jsx20("h3", { className: cn("line-clamp-2 break-words text-ods-text-primary text-h3", reserveRows && "min-h-[2lh]"), children: title }),
1991
+ (subtitle || reserveRows && subtitleRow) && /* @__PURE__ */ jsx20("p", { className: cn("truncate text-ods-text-secondary text-h6", reserveRows && "min-h-[1lh]"), children: subtitle }),
1992
+ (summary || reserveRows) && /* @__PURE__ */ jsx20("p", { className: cn("line-clamp-2 text-ods-text-secondary text-h6", reserveRows && "min-h-[2lh]"), children: summary }),
1993
+ (Number(platforms?.length) > 0 || badges || reserveRows) && /* @__PURE__ */ jsxs12("div", { className: cn("flex flex-wrap items-center gap-2", reserveRows && "min-h-7"), children: [
1994
+ platforms?.map((p) => /* @__PURE__ */ jsx20(
3597
1995
  PlatformBadge,
3598
1996
  {
3599
1997
  platform: { id: p.id || p.platform_id || "", name: p.name, display_name: p.display_name || p.name },
@@ -3603,21 +2001,21 @@ function AdminContentCard({
3603
2001
  )),
3604
2002
  badges
3605
2003
  ] }),
3606
- (meta || reserveRows) && /* @__PURE__ */ jsx24("div", { className: cn("flex items-center gap-3 text-ods-text-secondary text-h6", reserveRows && "min-h-[1lh]"), children: meta }),
3607
- actions && /* @__PURE__ */ jsx24("div", { className: "mt-auto flex items-center justify-between border-t border-ods-border pt-3", children: actions })
2004
+ (meta || reserveRows) && /* @__PURE__ */ jsx20("div", { className: cn("flex items-center gap-3 text-ods-text-secondary text-h6", reserveRows && "min-h-[1lh]"), children: meta }),
2005
+ actions && /* @__PURE__ */ jsx20("div", { className: "mt-auto flex items-center justify-between border-t border-ods-border pt-3", children: actions })
3608
2006
  ] })
3609
2007
  ] });
3610
2008
  }
3611
2009
 
3612
2010
  // src/components/chat/entity-cards/admin-content-card-grid.tsx
3613
- import { jsx as jsx25, jsxs as jsxs14 } from "react/jsx-runtime";
2011
+ import { jsx as jsx21, jsxs as jsxs13 } from "react/jsx-runtime";
3614
2012
  var ADMIN_CONTENT_CARD_GRID_CLASS = "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-[var(--spacing-system-lf)]";
3615
2013
  function AdminContentCardSkeleton({
3616
2014
  className,
3617
2015
  actions = true,
3618
2016
  subtitleRow = true
3619
2017
  }) {
3620
- return /* @__PURE__ */ jsxs14(
2018
+ return /* @__PURE__ */ jsxs13(
3621
2019
  "div",
3622
2020
  {
3623
2021
  className: cn(
@@ -3625,21 +2023,21 @@ function AdminContentCardSkeleton({
3625
2023
  className
3626
2024
  ),
3627
2025
  children: [
3628
- /* @__PURE__ */ jsx25("div", { className: "aspect-[3/2] w-full shrink-0 bg-ods-border/20" }),
3629
- /* @__PURE__ */ jsxs14("div", { className: "flex flex-1 flex-col gap-[var(--spacing-system-sf)] p-5", children: [
3630
- /* @__PURE__ */ jsx25("div", { className: "h-[2lh] w-full rounded bg-ods-border text-h3" }),
3631
- subtitleRow && /* @__PURE__ */ jsx25("div", { className: "h-[1lh] w-1/2 rounded bg-ods-border text-h6" }),
3632
- /* @__PURE__ */ jsx25("div", { className: "h-[2lh] w-full rounded bg-ods-border text-h6" }),
3633
- /* @__PURE__ */ jsxs14("div", { className: "flex h-7 items-center gap-[var(--spacing-system-xsf)]", children: [
3634
- /* @__PURE__ */ jsx25("div", { className: "h-5 w-20 rounded-full bg-ods-border" }),
3635
- /* @__PURE__ */ jsx25("div", { className: "h-5 w-24 rounded-full bg-ods-border" })
2026
+ /* @__PURE__ */ jsx21("div", { className: "aspect-[3/2] w-full shrink-0 bg-ods-border/20" }),
2027
+ /* @__PURE__ */ jsxs13("div", { className: "flex flex-1 flex-col gap-[var(--spacing-system-sf)] p-5", children: [
2028
+ /* @__PURE__ */ jsx21("div", { className: "h-[2lh] w-full rounded bg-ods-border text-h3" }),
2029
+ subtitleRow && /* @__PURE__ */ jsx21("div", { className: "h-[1lh] w-1/2 rounded bg-ods-border text-h6" }),
2030
+ /* @__PURE__ */ jsx21("div", { className: "h-[2lh] w-full rounded bg-ods-border text-h6" }),
2031
+ /* @__PURE__ */ jsxs13("div", { className: "flex h-7 items-center gap-[var(--spacing-system-xsf)]", children: [
2032
+ /* @__PURE__ */ jsx21("div", { className: "h-5 w-20 rounded-full bg-ods-border" }),
2033
+ /* @__PURE__ */ jsx21("div", { className: "h-5 w-24 rounded-full bg-ods-border" })
3636
2034
  ] }),
3637
- /* @__PURE__ */ jsx25("div", { className: "h-[1lh] w-32 rounded bg-ods-border text-h6" }),
3638
- actions && /* @__PURE__ */ jsxs14("div", { className: "mt-auto flex items-center justify-between border-t border-ods-border pt-[var(--spacing-system-sf)]", children: [
3639
- /* @__PURE__ */ jsx25("div", { className: "h-10 w-24 rounded bg-ods-border" }),
3640
- /* @__PURE__ */ jsxs14("div", { className: "flex gap-[var(--spacing-system-xsf)]", children: [
3641
- /* @__PURE__ */ jsx25("div", { className: "h-10 w-20 rounded bg-ods-border" }),
3642
- /* @__PURE__ */ jsx25("div", { className: "h-10 w-20 rounded bg-ods-border" })
2035
+ /* @__PURE__ */ jsx21("div", { className: "h-[1lh] w-32 rounded bg-ods-border text-h6" }),
2036
+ actions && /* @__PURE__ */ jsxs13("div", { className: "mt-auto flex items-center justify-between border-t border-ods-border pt-[var(--spacing-system-sf)]", children: [
2037
+ /* @__PURE__ */ jsx21("div", { className: "h-10 w-24 rounded bg-ods-border" }),
2038
+ /* @__PURE__ */ jsxs13("div", { className: "flex gap-[var(--spacing-system-xsf)]", children: [
2039
+ /* @__PURE__ */ jsx21("div", { className: "h-10 w-20 rounded bg-ods-border" }),
2040
+ /* @__PURE__ */ jsx21("div", { className: "h-10 w-20 rounded bg-ods-border" })
3643
2041
  ] })
3644
2042
  ] })
3645
2043
  ] })
@@ -3659,18 +2057,18 @@ function AdminContentCardGrid({
3659
2057
  }) {
3660
2058
  const gridClass = cn(ADMIN_CONTENT_CARD_GRID_CLASS, className);
3661
2059
  if (loading) {
3662
- return /* @__PURE__ */ jsx25("div", { className: gridClass, "data-state": "loading", children: Array.from({ length: pageSize }, (_, i) => /* @__PURE__ */ jsx25(Skeleton, {}, i)) });
2060
+ return /* @__PURE__ */ jsx21("div", { className: gridClass, "data-state": "loading", children: Array.from({ length: pageSize }, (_, i) => /* @__PURE__ */ jsx21(Skeleton, {}, i)) });
3663
2061
  }
3664
- const slots = Array.from({ length: Math.max(0, pageSize - items.length) }, (_, i) => /* @__PURE__ */ jsx25(Skeleton, { className: "invisible" }, `slot-${i}`));
2062
+ const slots = Array.from({ length: Math.max(0, pageSize - items.length) }, (_, i) => /* @__PURE__ */ jsx21(Skeleton, { className: "invisible" }, `slot-${i}`));
3665
2063
  if (items.length === 0) {
3666
- return /* @__PURE__ */ jsxs14("div", { className: "relative", "data-state": "empty", children: [
3667
- /* @__PURE__ */ jsx25("div", { "aria-hidden": true, className: gridClass, children: slots }),
3668
- /* @__PURE__ */ jsx25("div", { className: "absolute inset-x-0 top-0", children: empty })
2064
+ return /* @__PURE__ */ jsxs13("div", { className: "relative", "data-state": "empty", children: [
2065
+ /* @__PURE__ */ jsx21("div", { "aria-hidden": true, className: gridClass, children: slots }),
2066
+ /* @__PURE__ */ jsx21("div", { className: "absolute inset-x-0 top-0", children: empty })
3669
2067
  ] });
3670
2068
  }
3671
- return /* @__PURE__ */ jsxs14("div", { className: gridClass, "data-state": "items", children: [
3672
- items.map((item) => /* @__PURE__ */ jsx25("div", { className: "h-full", children: renderCard(item) }, itemKey(item))),
3673
- slots.length > 0 && /* @__PURE__ */ jsx25("div", { "aria-hidden": true, className: "contents", children: slots })
2069
+ return /* @__PURE__ */ jsxs13("div", { className: gridClass, "data-state": "items", children: [
2070
+ items.map((item) => /* @__PURE__ */ jsx21("div", { className: "h-full", children: renderCard(item) }, itemKey(item))),
2071
+ slots.length > 0 && /* @__PURE__ */ jsx21("div", { "aria-hidden": true, className: "contents", children: slots })
3674
2072
  ] });
3675
2073
  }
3676
2074
 
@@ -3690,7 +2088,7 @@ function getProxiedImageUrl2(imageUrl) {
3690
2088
  }
3691
2089
 
3692
2090
  // src/components/chat/entity-cards/employee-entry-card.tsx
3693
- import { Fragment as Fragment4, jsx as jsx26, jsxs as jsxs15 } from "react/jsx-runtime";
2091
+ import { Fragment as Fragment4, jsx as jsx22, jsxs as jsxs14 } from "react/jsx-runtime";
3694
2092
  var STATUS_BADGE_SCHEME = {
3695
2093
  published: "success",
3696
2094
  draft: "warning",
@@ -3703,7 +2101,7 @@ var STATUS_BADGE_SCHEME = {
3703
2101
  abandoned: "default"
3704
2102
  };
3705
2103
  function EmployeeEntryBadge({ children }) {
3706
- return /* @__PURE__ */ jsx26(StatusBadge, { text: children, colorScheme: "default", variant: "button", singleLine: true });
2104
+ return /* @__PURE__ */ jsx22(StatusBadge, { text: children, colorScheme: "default", variant: "button", singleLine: true });
3707
2105
  }
3708
2106
  function EmployeeEntryCard({
3709
2107
  entry,
@@ -3715,15 +2113,15 @@ function EmployeeEntryCard({
3715
2113
  anchorProps,
3716
2114
  className
3717
2115
  }) {
3718
- const card = /* @__PURE__ */ jsx26(
2116
+ const card = /* @__PURE__ */ jsx22(
3719
2117
  AdminContentCard,
3720
2118
  {
3721
2119
  imageUrl: entry.featured_image || entry.main_video_thumbnail,
3722
2120
  placeholderUrl,
3723
2121
  title: entry.title || untitledLabel,
3724
2122
  summary: (entry.summary ?? "").slice(0, 140) || "No description",
3725
- badges: entry.status || extraBadges ? /* @__PURE__ */ jsxs15(Fragment4, { children: [
3726
- entry.status ? /* @__PURE__ */ jsx26(
2123
+ badges: entry.status || extraBadges ? /* @__PURE__ */ jsxs14(Fragment4, { children: [
2124
+ entry.status ? /* @__PURE__ */ jsx22(
3727
2125
  StatusBadge,
3728
2126
  {
3729
2127
  text: entry.status,
@@ -3734,9 +2132,9 @@ function EmployeeEntryCard({
3734
2132
  ) : null,
3735
2133
  extraBadges
3736
2134
  ] }) : null,
3737
- meta: /* @__PURE__ */ jsxs15(Fragment4, { children: [
3738
- /* @__PURE__ */ jsxs15("span", { className: "flex min-w-0 items-center gap-2", children: [
3739
- entry.author?.avatar_url ? /* @__PURE__ */ jsx26(
2135
+ meta: /* @__PURE__ */ jsxs14(Fragment4, { children: [
2136
+ /* @__PURE__ */ jsxs14("span", { className: "flex min-w-0 items-center gap-2", children: [
2137
+ entry.author?.avatar_url ? /* @__PURE__ */ jsx22(
3740
2138
  next_image_default,
3741
2139
  {
3742
2140
  src: getProxiedImageUrl2(entry.author.avatar_url) ?? entry.author.avatar_url,
@@ -3747,9 +2145,9 @@ function EmployeeEntryCard({
3747
2145
  unoptimized: true
3748
2146
  }
3749
2147
  ) : null,
3750
- /* @__PURE__ */ jsx26("span", { className: "truncate", children: entry.author?.full_name ?? "" })
2148
+ /* @__PURE__ */ jsx22("span", { className: "truncate", children: entry.author?.full_name ?? "" })
3751
2149
  ] }),
3752
- dateLabel ? /* @__PURE__ */ jsx26("span", { children: dateLabel }) : null
2150
+ dateLabel ? /* @__PURE__ */ jsx22("span", { children: dateLabel }) : null
3753
2151
  ] }),
3754
2152
  actions,
3755
2153
  reserveRows: true,
@@ -3757,16 +2155,16 @@ function EmployeeEntryCard({
3757
2155
  className
3758
2156
  }
3759
2157
  );
3760
- return anchorProps ? /* @__PURE__ */ jsx26("a", { ...anchorProps, className: "block h-full", children: card }) : card;
2158
+ return anchorProps ? /* @__PURE__ */ jsx22("a", { ...anchorProps, className: "block h-full", children: card }) : card;
3761
2159
  }
3762
2160
  function EmployeeEntryCardSkeleton({ className, actions = false }) {
3763
- return /* @__PURE__ */ jsx26(AdminContentCardSkeleton, { className, actions, subtitleRow: false });
2161
+ return /* @__PURE__ */ jsx22(AdminContentCardSkeleton, { className, actions, subtitleRow: false });
3764
2162
  }
3765
2163
 
3766
2164
  // src/components/chat/entity-cards/what-i-shipped-card.tsx
3767
- import { jsx as jsx27 } from "react/jsx-runtime";
2165
+ import { jsx as jsx23 } from "react/jsx-runtime";
3768
2166
  function WhatIShippedCard({ entry, placeholderUrl, actions, anchorProps, className }) {
3769
- return /* @__PURE__ */ jsx27(
2167
+ return /* @__PURE__ */ jsx23(
3770
2168
  EmployeeEntryCard,
3771
2169
  {
3772
2170
  entry,
@@ -3781,17 +2179,17 @@ function WhatIShippedCard({ entry, placeholderUrl, actions, anchorProps, classNa
3781
2179
  var WhatIShippedCardSkeleton = EmployeeEntryCardSkeleton;
3782
2180
 
3783
2181
  // src/components/chat/entity-cards/how-i-work-card.tsx
3784
- import { jsx as jsx28 } from "react/jsx-runtime";
2182
+ import { jsx as jsx24 } from "react/jsx-runtime";
3785
2183
  function disciplineLabel(discipline) {
3786
2184
  return discipline.replace(/_/g, " ").replace(/\b\w/g, (ch) => ch.toUpperCase());
3787
2185
  }
3788
2186
  function HowIWorkCard({ entry, placeholderUrl, actions, anchorProps, className }) {
3789
- return /* @__PURE__ */ jsx28(
2187
+ return /* @__PURE__ */ jsx24(
3790
2188
  EmployeeEntryCard,
3791
2189
  {
3792
2190
  entry,
3793
2191
  dateLabel: entry.session_date ? formatDateUTC(entry.session_date, { fallback: "" }) || null : null,
3794
- extraBadges: entry.discipline ? /* @__PURE__ */ jsx28(EmployeeEntryBadge, { children: disciplineLabel(entry.discipline) }) : null,
2192
+ extraBadges: entry.discipline ? /* @__PURE__ */ jsx24(EmployeeEntryBadge, { children: disciplineLabel(entry.discipline) }) : null,
3795
2193
  untitledLabel: "Untitled session",
3796
2194
  placeholderUrl,
3797
2195
  actions,
@@ -3803,18 +2201,18 @@ function HowIWorkCard({ entry, placeholderUrl, actions, anchorProps, className }
3803
2201
  var HowIWorkCardSkeleton = EmployeeEntryCardSkeleton;
3804
2202
 
3805
2203
  // src/components/chat/entity-cards/ai-prompt-card.tsx
3806
- import { Fragment as Fragment5, jsx as jsx29, jsxs as jsxs16 } from "react/jsx-runtime";
2204
+ import { Fragment as Fragment5, jsx as jsx25, jsxs as jsxs15 } from "react/jsx-runtime";
3807
2205
  function AiPromptCard({ entry, placeholderUrl, actions, anchorProps, className }) {
3808
2206
  const departmentName = entry.department?.name?.trim();
3809
2207
  const steps = typeof entry.step_count === "number" ? entry.step_count : 0;
3810
- return /* @__PURE__ */ jsx29(
2208
+ return /* @__PURE__ */ jsx25(
3811
2209
  EmployeeEntryCard,
3812
2210
  {
3813
2211
  entry,
3814
2212
  dateLabel: entry.published_at ? formatDateUTC(entry.published_at, { fallback: "" }) || null : null,
3815
- extraBadges: /* @__PURE__ */ jsxs16(Fragment5, { children: [
3816
- departmentName ? /* @__PURE__ */ jsx29(DepartmentBadge, { department: { name: departmentName, color: entry.department?.color ?? null } }) : null,
3817
- steps > 1 ? /* @__PURE__ */ jsx29(EmployeeEntryBadge, { children: `${steps} steps` }) : null
2213
+ extraBadges: /* @__PURE__ */ jsxs15(Fragment5, { children: [
2214
+ departmentName ? /* @__PURE__ */ jsx25(DepartmentBadge, { department: { name: departmentName, color: entry.department?.color ?? null } }) : null,
2215
+ steps > 1 ? /* @__PURE__ */ jsx25(EmployeeEntryBadge, { children: `${steps} steps` }) : null
3818
2216
  ] }),
3819
2217
  untitledLabel: "Untitled prompt",
3820
2218
  placeholderUrl,
@@ -3828,7 +2226,7 @@ var AiPromptCardSkeleton = EmployeeEntryCardSkeleton;
3828
2226
 
3829
2227
  // src/components/layout/page-heading.tsx
3830
2228
  import { Children, Fragment as Fragment6, cloneElement, isValidElement } from "react";
3831
- import { Fragment as Fragment7, jsx as jsx30, jsxs as jsxs17 } from "react/jsx-runtime";
2229
+ import { Fragment as Fragment7, jsx as jsx26, jsxs as jsxs16 } from "react/jsx-runtime";
3832
2230
  var PAGE_HEADING_CLASS = "text-h1 text-ods-text-primary";
3833
2231
  var SECTION_HEADING_CLASS = "text-h2 text-ods-text-primary";
3834
2232
  var DESCRIPTION_CLASS = "mt-6 max-w-[640px] font-body text-[16px] content-md:text-[18px] leading-[24px] content-md:leading-[28px] text-ods-text-secondary";
@@ -3842,9 +2240,9 @@ function PageHeading({
3842
2240
  const headingClass = className ? `${PAGE_HEADING_CLASS} ${className}` : PAGE_HEADING_CLASS;
3843
2241
  const descClass = descriptionClassName ? `${DESCRIPTION_CLASS} ${descriptionClassName}` : DESCRIPTION_CLASS;
3844
2242
  const hasDescription = description != null && description !== "" && typeof description !== "boolean";
3845
- return /* @__PURE__ */ jsxs17(Fragment7, { children: [
3846
- /* @__PURE__ */ jsx30(Tag2, { className: headingClass, children: accentSentenceMarks(children) }),
3847
- hasDescription && /* @__PURE__ */ jsx30("p", { className: descClass, children: description })
2243
+ return /* @__PURE__ */ jsxs16(Fragment7, { children: [
2244
+ /* @__PURE__ */ jsx26(Tag2, { className: headingClass, children: accentSentenceMarks(children) }),
2245
+ hasDescription && /* @__PURE__ */ jsx26("p", { className: descClass, children: description })
3848
2246
  ] });
3849
2247
  }
3850
2248
  var SENTENCE_MARK = /([.:?!]+)(?=\s|$)/g;
@@ -3865,10 +2263,10 @@ function accentMarks(node, accentClassName) {
3865
2263
  // `split` with one capture group alternates text, mark, text, mark...
3866
2264
  index % 2 === 1 ? (
3867
2265
  // biome-ignore lint/suspicious/noArrayIndexKey: the parts of one string never reorder
3868
- /* @__PURE__ */ jsx30("span", { className: accentClassName, children: part }, index)
2266
+ /* @__PURE__ */ jsx26("span", { className: accentClassName, children: part }, index)
3869
2267
  ) : (
3870
2268
  // biome-ignore lint/suspicious/noArrayIndexKey: the parts of one string never reorder
3871
- /* @__PURE__ */ jsx30(Fragment6, { children: part }, index)
2269
+ /* @__PURE__ */ jsx26(Fragment6, { children: part }, index)
3872
2270
  )
3873
2271
  )
3874
2272
  );
@@ -3908,16 +2306,16 @@ function SectionHeading({
3908
2306
  const accentClassName = headingAccentClass(platform);
3909
2307
  const layout = SECTION_HEADING_LAYOUT[level];
3910
2308
  const Tag2 = level === "page" ? "h1" : "h2";
3911
- const stack = /* @__PURE__ */ jsxs17("div", { className: layout.stack, children: [
3912
- eyebrow ? /* @__PURE__ */ jsx30("span", { className: `text-h5 ${accentClassName}`, children: eyebrow }) : null,
3913
- /* @__PURE__ */ jsxs17(Tag2, { className: layout.heading, children: [
2309
+ const stack = /* @__PURE__ */ jsxs16("div", { className: layout.stack, children: [
2310
+ eyebrow ? /* @__PURE__ */ jsx26("span", { className: `text-h5 ${accentClassName}`, children: eyebrow }) : null,
2311
+ /* @__PURE__ */ jsxs16(Tag2, { className: layout.heading, children: [
3914
2312
  accentSentenceMarks(title, platform),
3915
- punctuation ? /* @__PURE__ */ jsx30("span", { className: accentClassName, children: punctuation }) : null
2313
+ punctuation ? /* @__PURE__ */ jsx26("span", { className: accentClassName, children: punctuation }) : null
3916
2314
  ] }),
3917
- intro ? /* @__PURE__ */ jsx30("div", { className: layout.intro, children: intro }) : null
2315
+ intro ? /* @__PURE__ */ jsx26("div", { className: layout.intro, children: intro }) : null
3918
2316
  ] });
3919
- if (!action) return className ? /* @__PURE__ */ jsx30("div", { className, children: stack }) : stack;
3920
- return /* @__PURE__ */ jsxs17(
2317
+ if (!action) return className ? /* @__PURE__ */ jsx26("div", { className, children: stack }) : stack;
2318
+ return /* @__PURE__ */ jsxs16(
3921
2319
  "div",
3922
2320
  {
3923
2321
  className: `flex flex-wrap items-end justify-between gap-[var(--spacing-system-mf)]${className ? ` ${className}` : ""}`,
@@ -3952,98 +2350,9 @@ function sortBitesByFeaturedAtDesc(a, b) {
3952
2350
  return new Date(b.featured_at).getTime() - new Date(a.featured_at).getTime();
3953
2351
  }
3954
2352
 
3955
- // src/components/features/video-hover-preview.tsx
3956
- import { useEffect as useEffect6, useRef as useRef3, useState as useState7 } from "react";
3957
- import { Fragment as Fragment8, jsx as jsx31, jsxs as jsxs18 } from "react/jsx-runtime";
3958
- function VideoHoverPreviewSurface({
3959
- url,
3960
- posterUrl = null,
3961
- active,
3962
- playerMounted,
3963
- isClone = false,
3964
- badge = "play",
3965
- fit,
3966
- posterSizes = "234px",
3967
- preload,
3968
- hideMutedBadge,
3969
- onMutedFallbackChange,
3970
- previewHandleRef,
3971
- mutedIntent = false,
3972
- continuation = false,
3973
- startTime,
3974
- autoPlay = false,
3975
- startMuted = false,
3976
- onEnded,
3977
- className
3978
- }) {
3979
- const previewUrl = toMuxPreviewUrl(url);
3980
- const gateControlled = playerMounted !== void 0;
3981
- const rootElRef = useRef3(null);
3982
- const [isNear, setIsNear] = useState7(false);
3983
- useEffect6(() => {
3984
- if (gateControlled) return void 0;
3985
- const el = rootElRef.current;
3986
- if (!el || typeof IntersectionObserver === "undefined") return void 0;
3987
- const io = new IntersectionObserver((entries) => setIsNear(entries[0]?.isIntersecting ?? false), {
3988
- rootMargin: NEAR_VIEWPORT_ROOT_MARGIN
3989
- });
3990
- io.observe(el);
3991
- return () => io.disconnect();
3992
- }, [gateControlled]);
3993
- const showMedia = continuation || (gateControlled ? playerMounted : isNear);
3994
- const { src: posterSrc, onError: onPosterError } = useCoverImageFallback(posterUrl);
3995
- const facadeSkipped = preload === "none" && !posterSrc;
3996
- return /* @__PURE__ */ jsx31("div", { ref: rootElRef, className: cn("absolute inset-0", className), inert: isClone || void 0, children: showMedia ? /* @__PURE__ */ jsxs18(Fragment8, { children: [
3997
- posterSrc ? /* @__PURE__ */ jsx31(
3998
- next_image_default,
3999
- {
4000
- src: posterSrc,
4001
- alt: "",
4002
- fill: true,
4003
- sizes: posterSizes,
4004
- unoptimized: true,
4005
- onError: onPosterError,
4006
- className: "object-cover"
4007
- }
4008
- ) : facadeSkipped ? /* @__PURE__ */ jsx31("div", { className: "absolute inset-0 bg-ods-card" }) : /* @__PURE__ */ jsx31(Video, { kind: "file", url: previewUrl, firstFrameOnly: true, layout: "fill", fit }),
4009
- badge === "play" && !active && !continuation && /* @__PURE__ */ jsx31(VideoPlayBadge, { className: "absolute inset-0 z-10 m-auto" }),
4010
- /* @__PURE__ */ jsx31(
4011
- "div",
4012
- {
4013
- className: "absolute inset-0",
4014
- style: { "--media-background-color": "transparent" },
4015
- children: /* @__PURE__ */ jsx31(
4016
- Video,
4017
- {
4018
- kind: "file",
4019
- url: previewUrl,
4020
- poster: posterUrl,
4021
- ...continuation ? {
4022
- startTime,
4023
- autoPlay: autoPlay && startMuted,
4024
- startMuted,
4025
- autoPlayUnmuted: autoPlay && !startMuted
4026
- } : { playWhenHovered: active },
4027
- chromeless: true,
4028
- layout: "fill",
4029
- fit,
4030
- preload,
4031
- mutedIntent,
4032
- hideMutedBadge,
4033
- onMutedFallbackChange,
4034
- onEnded,
4035
- playerHandleRef: previewHandleRef
4036
- },
4037
- continuation ? "continuation" : "preview"
4038
- )
4039
- }
4040
- )
4041
- ] }) : /* @__PURE__ */ jsx31("div", { className: "absolute inset-0 bg-ods-card" }) });
4042
- }
4043
-
4044
2353
  // src/components/shared/product-release/product-release-card.tsx
4045
- import { AlertTriangle, Eye, Package as Package2, Sparkles, TrendingUp as TrendingUp2, Wrench } from "lucide-react";
4046
- import { Fragment as Fragment9, jsx as jsx32, jsxs as jsxs19 } from "react/jsx-runtime";
2354
+ import { AlertTriangle, Eye, Package, Sparkles, TrendingUp, Wrench } from "lucide-react";
2355
+ import { Fragment as Fragment8, jsx as jsx27, jsxs as jsxs17 } from "react/jsx-runtime";
4047
2356
  function ProductReleaseCard({
4048
2357
  title,
4049
2358
  summary,
@@ -4093,10 +2402,10 @@ function ProductReleaseCard({
4093
2402
  "no-underline",
4094
2403
  className
4095
2404
  );
4096
- const innerLayout = /* @__PURE__ */ jsxs19(Fragment9, { children: [
4097
- /* @__PURE__ */ jsxs19("div", { className: "flex flex-col gap-4 content-md:flex-row content-md:gap-6", children: [
4098
- /* @__PURE__ */ jsx32("div", { className: "w-full flex-shrink-0 content-md:w-[256px]", children: /* @__PURE__ */ jsxs19("div", { className: "relative aspect-[1200/630] w-full overflow-hidden rounded-lg bg-ods-bg", children: [
4099
- coverImage ? /* @__PURE__ */ jsx32(
2405
+ const innerLayout = /* @__PURE__ */ jsxs17(Fragment8, { children: [
2406
+ /* @__PURE__ */ jsxs17("div", { className: "flex flex-col gap-4 content-md:flex-row content-md:gap-6", children: [
2407
+ /* @__PURE__ */ jsx27("div", { className: "w-full flex-shrink-0 content-md:w-[256px]", children: /* @__PURE__ */ jsxs17("div", { className: "relative aspect-[1200/630] w-full overflow-hidden rounded-lg bg-ods-bg", children: [
2408
+ coverImage ? /* @__PURE__ */ jsx27(
4100
2409
  next_image_default,
4101
2410
  {
4102
2411
  src: coverImage,
@@ -4106,44 +2415,44 @@ function ProductReleaseCard({
4106
2415
  className: "object-cover",
4107
2416
  unoptimized: true
4108
2417
  }
4109
- ) : /* @__PURE__ */ jsx32("div", { className: "absolute inset-0 flex items-center justify-center text-ods-text-secondary", children: /* @__PURE__ */ jsx32(Package2, { className: "h-8 w-8" }) }),
4110
- hasVideoCover && coverImage && /* @__PURE__ */ jsx32(CardHoverPlay, { size: "md" })
2418
+ ) : /* @__PURE__ */ jsx27("div", { className: "absolute inset-0 flex items-center justify-center text-ods-text-secondary", children: /* @__PURE__ */ jsx27(Package, { className: "h-8 w-8" }) }),
2419
+ hasVideoCover && coverImage && /* @__PURE__ */ jsx27(CardHoverPlay, { size: "md" })
4111
2420
  ] }) }),
4112
- /* @__PURE__ */ jsxs19("div", { className: "flex min-w-0 flex-1 flex-col", children: [
4113
- /* @__PURE__ */ jsx32("div", { className: "mb-3 flex items-center gap-3", children: /* @__PURE__ */ jsxs19("span", { className: "truncate font-semibold text-ods-text-primary text-code", children: [
2421
+ /* @__PURE__ */ jsxs17("div", { className: "flex min-w-0 flex-1 flex-col", children: [
2422
+ /* @__PURE__ */ jsx27("div", { className: "mb-3 flex items-center gap-3", children: /* @__PURE__ */ jsxs17("span", { className: "truncate font-semibold text-ods-text-primary text-code", children: [
4114
2423
  "v",
4115
2424
  version
4116
2425
  ] }) }),
4117
- /* @__PURE__ */ jsx32("div", { className: "mb-3 flex min-h-[60px] items-start content-md:min-h-[72px]", children: /* @__PURE__ */ jsx32("h3", { className: "line-clamp-2 font-['Azeret_Mono'] text-xl font-semibold leading-tight text-ods-text-primary content-md:text-2xl", children: title }) }),
4118
- /* @__PURE__ */ jsx32("div", { className: "min-h-[68px] content-md:min-h-[78px]", children: /* @__PURE__ */ jsx32("p", { className: "line-clamp-3 font-['DM_Sans'] text-sm leading-relaxed text-ods-text-secondary content-md:text-base", children: summary ?? "" }) })
2426
+ /* @__PURE__ */ jsx27("div", { className: "mb-3 flex min-h-[60px] items-start content-md:min-h-[72px]", children: /* @__PURE__ */ jsx27("h3", { className: "line-clamp-2 font-['Azeret_Mono'] text-xl font-semibold leading-tight text-ods-text-primary content-md:text-2xl", children: title }) }),
2427
+ /* @__PURE__ */ jsx27("div", { className: "min-h-[68px] content-md:min-h-[78px]", children: /* @__PURE__ */ jsx27("p", { className: "line-clamp-3 font-['DM_Sans'] text-sm leading-relaxed text-ods-text-secondary content-md:text-base", children: summary ?? "" }) })
4119
2428
  ] })
4120
2429
  ] }),
4121
- /* @__PURE__ */ jsx32("div", { className: "flex flex-wrap items-center gap-x-4 gap-y-1.5 border-t border-ods-border pt-3 text-ods-text-secondary text-h6", children: totalChangelog > 0 && changelogCounts ? /* @__PURE__ */ jsxs19(Fragment9, { children: [
4122
- changelogCounts.features > 0 && /* @__PURE__ */ jsxs19("span", { className: "inline-flex items-center gap-1.5", children: [
4123
- /* @__PURE__ */ jsx32(Sparkles, { className: "h-3.5 w-3.5" }),
2430
+ /* @__PURE__ */ jsx27("div", { className: "flex flex-wrap items-center gap-x-4 gap-y-1.5 border-t border-ods-border pt-3 text-ods-text-secondary text-h6", children: totalChangelog > 0 && changelogCounts ? /* @__PURE__ */ jsxs17(Fragment8, { children: [
2431
+ changelogCounts.features > 0 && /* @__PURE__ */ jsxs17("span", { className: "inline-flex items-center gap-1.5", children: [
2432
+ /* @__PURE__ */ jsx27(Sparkles, { className: "h-3.5 w-3.5" }),
4124
2433
  changelogCounts.features,
4125
2434
  " ",
4126
2435
  changelogCounts.features === 1 ? "feature" : "features"
4127
2436
  ] }),
4128
- changelogCounts.fixes > 0 && /* @__PURE__ */ jsxs19("span", { className: "inline-flex items-center gap-1.5", children: [
4129
- /* @__PURE__ */ jsx32(Wrench, { className: "h-3.5 w-3.5" }),
2437
+ changelogCounts.fixes > 0 && /* @__PURE__ */ jsxs17("span", { className: "inline-flex items-center gap-1.5", children: [
2438
+ /* @__PURE__ */ jsx27(Wrench, { className: "h-3.5 w-3.5" }),
4130
2439
  changelogCounts.fixes,
4131
2440
  " ",
4132
2441
  changelogCounts.fixes === 1 ? "fix" : "fixes"
4133
2442
  ] }),
4134
- changelogCounts.improvements > 0 && /* @__PURE__ */ jsxs19("span", { className: "inline-flex items-center gap-1.5", children: [
4135
- /* @__PURE__ */ jsx32(TrendingUp2, { className: "h-3.5 w-3.5" }),
2443
+ changelogCounts.improvements > 0 && /* @__PURE__ */ jsxs17("span", { className: "inline-flex items-center gap-1.5", children: [
2444
+ /* @__PURE__ */ jsx27(TrendingUp, { className: "h-3.5 w-3.5" }),
4136
2445
  changelogCounts.improvements,
4137
2446
  " ",
4138
2447
  changelogCounts.improvements === 1 ? "improvement" : "improvements"
4139
2448
  ] }),
4140
- changelogCounts.breaking > 0 && /* @__PURE__ */ jsxs19("span", { className: "inline-flex items-center gap-1.5 text-ods-warning", children: [
4141
- /* @__PURE__ */ jsx32(AlertTriangle, { className: "h-3.5 w-3.5" }),
2449
+ changelogCounts.breaking > 0 && /* @__PURE__ */ jsxs17("span", { className: "inline-flex items-center gap-1.5 text-ods-warning", children: [
2450
+ /* @__PURE__ */ jsx27(AlertTriangle, { className: "h-3.5 w-3.5" }),
4142
2451
  changelogCounts.breaking,
4143
2452
  " breaking"
4144
2453
  ] })
4145
- ] }) : /* @__PURE__ */ jsx32("span", { className: "text-ods-text-secondary", children: "No changelog entries yet" }) }),
4146
- /* @__PURE__ */ jsxs19(
2454
+ ] }) : /* @__PURE__ */ jsx27("span", { className: "text-ods-text-secondary", children: "No changelog entries yet" }) }),
2455
+ /* @__PURE__ */ jsxs17(
4147
2456
  "div",
4148
2457
  {
4149
2458
  className: cn(
@@ -4152,8 +2461,8 @@ function ProductReleaseCard({
4152
2461
  "w-full overflow-hidden rounded-md border border-ods-border"
4153
2462
  ),
4154
2463
  children: [
4155
- valueCells.map((cell, i) => /* @__PURE__ */ jsx32("div", { className: cn("flex flex-col gap-3 p-4", dividerClass), children: /* @__PURE__ */ jsxs19("div", { className: "flex flex-col gap-0", children: [
4156
- cell.colorScheme ? /* @__PURE__ */ jsx32(
2464
+ valueCells.map((cell, i) => /* @__PURE__ */ jsx27("div", { className: cn("flex flex-col gap-3 p-4", dividerClass), children: /* @__PURE__ */ jsxs17("div", { className: "flex flex-col gap-0", children: [
2465
+ cell.colorScheme ? /* @__PURE__ */ jsx27(
4157
2466
  StatusBadge,
4158
2467
  {
4159
2468
  text: cell.value,
@@ -4162,7 +2471,7 @@ function ProductReleaseCard({
4162
2471
  singleLine: true,
4163
2472
  className: "self-start"
4164
2473
  }
4165
- ) : /* @__PURE__ */ jsx32(
2474
+ ) : /* @__PURE__ */ jsx27(
4166
2475
  "p",
4167
2476
  {
4168
2477
  className: cn(
@@ -4174,10 +2483,10 @@ function ProductReleaseCard({
4174
2483
  children: cell.uppercase ? cell.value.toLocaleUpperCase() : cell.value
4175
2484
  }
4176
2485
  ),
4177
- /* @__PURE__ */ jsx32("p", { className: "text-ods-text-secondary text-h6", children: cell.label })
2486
+ /* @__PURE__ */ jsx27("p", { className: "text-ods-text-secondary text-h6", children: cell.label })
4178
2487
  ] }) }, `${cell.label}-${i}`)),
4179
- /* @__PURE__ */ jsxs19("div", { className: "flex items-center gap-3 p-4", children: [
4180
- /* @__PURE__ */ jsx32(
2488
+ /* @__PURE__ */ jsxs17("div", { className: "flex items-center gap-3 p-4", children: [
2489
+ /* @__PURE__ */ jsx27(
4181
2490
  SquareAvatar,
4182
2491
  {
4183
2492
  src: effectiveAuthor.avatar_url ?? void 0,
@@ -4187,29 +2496,29 @@ function ProductReleaseCard({
4187
2496
  variant: "round"
4188
2497
  }
4189
2498
  ),
4190
- /* @__PURE__ */ jsxs19("div", { className: "flex min-w-0 flex-1 flex-col gap-0", children: [
4191
- /* @__PURE__ */ jsx32("p", { className: "truncate tracking-[-0.36px] text-ods-text-primary text-h3", children: effectiveAuthor.full_name }),
4192
- /* @__PURE__ */ jsx32("p", { className: "text-ods-text-secondary text-h6", children: effectiveAuthor.job_title || "Author" })
2499
+ /* @__PURE__ */ jsxs17("div", { className: "flex min-w-0 flex-1 flex-col gap-0", children: [
2500
+ /* @__PURE__ */ jsx27("p", { className: "truncate tracking-[-0.36px] text-ods-text-primary text-h3", children: effectiveAuthor.full_name }),
2501
+ /* @__PURE__ */ jsx27("p", { className: "text-ods-text-secondary text-h6", children: effectiveAuthor.job_title || "Author" })
4193
2502
  ] })
4194
2503
  ] })
4195
2504
  ]
4196
2505
  }
4197
2506
  ),
4198
- typeof viewCount === "number" && viewCount > 0 && /* @__PURE__ */ jsxs19("div", { className: "flex items-center gap-1.5 text-ods-text-secondary text-h6", children: [
4199
- /* @__PURE__ */ jsx32(Eye, { className: "h-3.5 w-3.5" }),
4200
- /* @__PURE__ */ jsxs19("span", { children: [
2507
+ typeof viewCount === "number" && viewCount > 0 && /* @__PURE__ */ jsxs17("div", { className: "flex items-center gap-1.5 text-ods-text-secondary text-h6", children: [
2508
+ /* @__PURE__ */ jsx27(Eye, { className: "h-3.5 w-3.5" }),
2509
+ /* @__PURE__ */ jsxs17("span", { children: [
4201
2510
  viewCount.toLocaleString(),
4202
2511
  " views"
4203
2512
  ] })
4204
2513
  ] })
4205
2514
  ] });
4206
2515
  if (anchorProps) {
4207
- return /* @__PURE__ */ jsx32("a", { ...anchorProps, className: frameClass, "aria-label": `Open ${title}`, children: innerLayout });
2516
+ return /* @__PURE__ */ jsx27("a", { ...anchorProps, className: frameClass, "aria-label": `Open ${title}`, children: innerLayout });
4208
2517
  }
4209
2518
  if (onClick) {
4210
- return /* @__PURE__ */ jsx32(InteractiveCard, { clickable: true, onClick, className: frameClass, children: innerLayout });
2519
+ return /* @__PURE__ */ jsx27(InteractiveCard, { clickable: true, onClick, className: frameClass, children: innerLayout });
4211
2520
  }
4212
- return /* @__PURE__ */ jsx32("div", { className: frameClass, children: innerLayout });
2521
+ return /* @__PURE__ */ jsx27("div", { className: frameClass, children: innerLayout });
4213
2522
  }
4214
2523
  if (size2 === "sm") {
4215
2524
  const handleKey = (e) => {
@@ -4236,24 +2545,24 @@ function ProductReleaseCard({
4236
2545
  isInteractive ? "cursor-pointer transition-colors hover:border-ods-text-secondary/40 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ods-accent focus-visible:ring-offset-1 focus-visible:ring-offset-ods-card" : "cursor-default",
4237
2546
  className
4238
2547
  );
4239
- const innerChildren = /* @__PURE__ */ jsxs19(Fragment9, { children: [
4240
- /* @__PURE__ */ jsxs19("span", { className: "relative flex aspect-square h-14 w-14 shrink-0 items-center justify-center self-start overflow-hidden rounded-md bg-ods-bg text-ods-accent", children: [
4241
- coverImage ? /* @__PURE__ */ jsx32(next_image_default, { src: coverImage, alt: title, fill: true, sizes: "56px", className: "object-contain", unoptimized: true }) : /* @__PURE__ */ jsx32(Package2, { className: "h-5 w-5" }),
4242
- hasVideoCover && coverImage && /* @__PURE__ */ jsx32(CardHoverPlay, { size: "sm" })
2548
+ const innerChildren = /* @__PURE__ */ jsxs17(Fragment8, { children: [
2549
+ /* @__PURE__ */ jsxs17("span", { className: "relative flex aspect-square h-14 w-14 shrink-0 items-center justify-center self-start overflow-hidden rounded-md bg-ods-bg text-ods-accent", children: [
2550
+ coverImage ? /* @__PURE__ */ jsx27(next_image_default, { src: coverImage, alt: title, fill: true, sizes: "56px", className: "object-contain", unoptimized: true }) : /* @__PURE__ */ jsx27(Package, { className: "h-5 w-5" }),
2551
+ hasVideoCover && coverImage && /* @__PURE__ */ jsx27(CardHoverPlay, { size: "sm" })
4243
2552
  ] }),
4244
- /* @__PURE__ */ jsxs19("span", { className: "flex min-h-14 min-w-0 flex-1 flex-col gap-0.5", children: [
4245
- /* @__PURE__ */ jsxs19("span", { className: "flex h-5 min-w-0 items-center gap-2", children: [
4246
- /* @__PURE__ */ jsx32("span", { className: "min-w-0 truncate font-semibold text-ods-text-primary text-h6", title, children: title }),
4247
- version ? /* @__PURE__ */ jsx32("span", { className: "shrink-0 rounded bg-ods-accent/10 px-1.5 py-0.5 text-ods-accent text-code", children: version }) : null
2553
+ /* @__PURE__ */ jsxs17("span", { className: "flex min-h-14 min-w-0 flex-1 flex-col gap-0.5", children: [
2554
+ /* @__PURE__ */ jsxs17("span", { className: "flex h-5 min-w-0 items-center gap-2", children: [
2555
+ /* @__PURE__ */ jsx27("span", { className: "min-w-0 truncate font-semibold text-ods-text-primary text-h6", title, children: title }),
2556
+ version ? /* @__PURE__ */ jsx27("span", { className: "shrink-0 rounded bg-ods-accent/10 px-1.5 py-0.5 text-ods-accent text-code", children: version }) : null
4248
2557
  ] }),
4249
- /* @__PURE__ */ jsx32("span", { className: "flex h-4 min-w-0 items-center", children: /* @__PURE__ */ jsx32("span", { className: "truncate text-ods-text-secondary text-h6", children: formattedDate || "Product release" }) }),
4250
- /* @__PURE__ */ jsx32("span", { className: "flex h-4 min-w-0 items-center", children: /* @__PURE__ */ jsx32("span", { className: "truncate text-ods-text-secondary/80 text-h6", title: summary || void 0, children: summary || "\xA0" }) })
2558
+ /* @__PURE__ */ jsx27("span", { className: "flex h-4 min-w-0 items-center", children: /* @__PURE__ */ jsx27("span", { className: "truncate text-ods-text-secondary text-h6", children: formattedDate || "Product release" }) }),
2559
+ /* @__PURE__ */ jsx27("span", { className: "flex h-4 min-w-0 items-center", children: /* @__PURE__ */ jsx27("span", { className: "truncate text-ods-text-secondary/80 text-h6", title: summary || void 0, children: summary || "\xA0" }) })
4251
2560
  ] })
4252
2561
  ] });
4253
2562
  if (anchorProps) {
4254
- return /* @__PURE__ */ jsx32("a", { ...anchorProps, className: outerClassName, children: innerChildren });
2563
+ return /* @__PURE__ */ jsx27("a", { ...anchorProps, className: outerClassName, children: innerChildren });
4255
2564
  }
4256
- return /* @__PURE__ */ jsx32(
2565
+ return /* @__PURE__ */ jsx27(
4257
2566
  "span",
4258
2567
  {
4259
2568
  role: onClick ? "button" : void 0,
@@ -4269,50 +2578,50 @@ function ProductReleaseCard({
4269
2578
  }
4270
2579
 
4271
2580
  // src/components/shared/product-release/product-release-card-skeleton.tsx
4272
- import { jsx as jsx33, jsxs as jsxs20 } from "react/jsx-runtime";
2581
+ import { jsx as jsx28, jsxs as jsxs18 } from "react/jsx-runtime";
4273
2582
  function ProductReleaseCardSkeleton({ className, size: size2 = "lg" }) {
4274
2583
  if (size2 === "lg") {
4275
- return /* @__PURE__ */ jsxs20("div", { className: cn(CONTENT_CARD_SKELETON_FRAME_CLASS, "flex flex-col gap-4 p-6", "animate-pulse", className), children: [
4276
- /* @__PURE__ */ jsxs20("div", { className: "flex flex-col gap-4 content-md:flex-row content-md:gap-6", children: [
4277
- /* @__PURE__ */ jsx33("div", { className: "aspect-[1200/630] w-full flex-shrink-0 rounded-lg bg-ods-border content-md:w-[256px]" }),
4278
- /* @__PURE__ */ jsxs20("div", { className: "flex min-w-0 flex-1 flex-col", children: [
4279
- /* @__PURE__ */ jsx33("div", { className: "mb-3 flex items-center gap-3", children: /* @__PURE__ */ jsx33("div", { className: "h-7 w-20 rounded bg-ods-border" }) }),
4280
- /* @__PURE__ */ jsxs20("div", { className: "mb-3 flex min-h-[60px] flex-col justify-start gap-1.5 content-md:min-h-[72px]", children: [
4281
- /* @__PURE__ */ jsx33("div", { className: "h-[25px] w-3/4 rounded bg-ods-border content-md:h-[30px]" }),
4282
- /* @__PURE__ */ jsx33("div", { className: "h-[25px] w-1/2 rounded bg-ods-border content-md:h-[30px]" })
2584
+ return /* @__PURE__ */ jsxs18("div", { className: cn(CONTENT_CARD_SKELETON_FRAME_CLASS, "flex flex-col gap-4 p-6", "animate-pulse", className), children: [
2585
+ /* @__PURE__ */ jsxs18("div", { className: "flex flex-col gap-4 content-md:flex-row content-md:gap-6", children: [
2586
+ /* @__PURE__ */ jsx28("div", { className: "aspect-[1200/630] w-full flex-shrink-0 rounded-lg bg-ods-border content-md:w-[256px]" }),
2587
+ /* @__PURE__ */ jsxs18("div", { className: "flex min-w-0 flex-1 flex-col", children: [
2588
+ /* @__PURE__ */ jsx28("div", { className: "mb-3 flex items-center gap-3", children: /* @__PURE__ */ jsx28("div", { className: "h-7 w-20 rounded bg-ods-border" }) }),
2589
+ /* @__PURE__ */ jsxs18("div", { className: "mb-3 flex min-h-[60px] flex-col justify-start gap-1.5 content-md:min-h-[72px]", children: [
2590
+ /* @__PURE__ */ jsx28("div", { className: "h-[25px] w-3/4 rounded bg-ods-border content-md:h-[30px]" }),
2591
+ /* @__PURE__ */ jsx28("div", { className: "h-[25px] w-1/2 rounded bg-ods-border content-md:h-[30px]" })
4283
2592
  ] }),
4284
- /* @__PURE__ */ jsxs20("div", { className: "flex min-h-[68px] flex-col justify-start gap-2 content-md:min-h-[78px]", children: [
4285
- /* @__PURE__ */ jsx33("div", { className: "h-3 w-full rounded bg-ods-border/70" }),
4286
- /* @__PURE__ */ jsx33("div", { className: "h-3 w-11/12 rounded bg-ods-border/70" }),
4287
- /* @__PURE__ */ jsx33("div", { className: "h-3 w-5/6 rounded bg-ods-border/70" })
2593
+ /* @__PURE__ */ jsxs18("div", { className: "flex min-h-[68px] flex-col justify-start gap-2 content-md:min-h-[78px]", children: [
2594
+ /* @__PURE__ */ jsx28("div", { className: "h-3 w-full rounded bg-ods-border/70" }),
2595
+ /* @__PURE__ */ jsx28("div", { className: "h-3 w-11/12 rounded bg-ods-border/70" }),
2596
+ /* @__PURE__ */ jsx28("div", { className: "h-3 w-5/6 rounded bg-ods-border/70" })
4288
2597
  ] })
4289
2598
  ] })
4290
2599
  ] }),
4291
- /* @__PURE__ */ jsx33("div", { className: "border-t border-ods-border pt-3", children: /* @__PURE__ */ jsx33("div", { className: "h-5 w-2/3 rounded bg-ods-border/70" }) }),
4292
- /* @__PURE__ */ jsxs20("div", { className: "grid w-full grid-cols-1 overflow-hidden rounded-md border border-ods-border content-md:grid-cols-4", children: [
4293
- [0, 1, 2].map((i) => /* @__PURE__ */ jsx33(
2600
+ /* @__PURE__ */ jsx28("div", { className: "border-t border-ods-border pt-3", children: /* @__PURE__ */ jsx28("div", { className: "h-5 w-2/3 rounded bg-ods-border/70" }) }),
2601
+ /* @__PURE__ */ jsxs18("div", { className: "grid w-full grid-cols-1 overflow-hidden rounded-md border border-ods-border content-md:grid-cols-4", children: [
2602
+ [0, 1, 2].map((i) => /* @__PURE__ */ jsx28(
4294
2603
  "div",
4295
2604
  {
4296
2605
  className: "flex flex-col gap-3 border-b border-ods-border p-4 content-md:border-b-0 content-md:border-r",
4297
- children: /* @__PURE__ */ jsxs20("div", { className: "flex flex-col gap-2", children: [
4298
- /* @__PURE__ */ jsx33("div", { className: "h-7 w-24 rounded bg-ods-border" }),
4299
- /* @__PURE__ */ jsx33("div", { className: "h-4 w-16 rounded bg-ods-border" })
2606
+ children: /* @__PURE__ */ jsxs18("div", { className: "flex flex-col gap-2", children: [
2607
+ /* @__PURE__ */ jsx28("div", { className: "h-7 w-24 rounded bg-ods-border" }),
2608
+ /* @__PURE__ */ jsx28("div", { className: "h-4 w-16 rounded bg-ods-border" })
4300
2609
  ] })
4301
2610
  },
4302
2611
  `cell-${i}`
4303
2612
  )),
4304
- /* @__PURE__ */ jsxs20("div", { className: "flex items-center gap-3 p-4", children: [
4305
- /* @__PURE__ */ jsx33("div", { className: "h-10 w-10 shrink-0 rounded-full bg-ods-border" }),
4306
- /* @__PURE__ */ jsxs20("div", { className: "flex min-w-0 flex-1 flex-col gap-2", children: [
4307
- /* @__PURE__ */ jsx33("div", { className: "h-5 w-3/4 rounded bg-ods-border" }),
4308
- /* @__PURE__ */ jsx33("div", { className: "h-4 w-1/2 rounded bg-ods-border" })
2613
+ /* @__PURE__ */ jsxs18("div", { className: "flex items-center gap-3 p-4", children: [
2614
+ /* @__PURE__ */ jsx28("div", { className: "h-10 w-10 shrink-0 rounded-full bg-ods-border" }),
2615
+ /* @__PURE__ */ jsxs18("div", { className: "flex min-w-0 flex-1 flex-col gap-2", children: [
2616
+ /* @__PURE__ */ jsx28("div", { className: "h-5 w-3/4 rounded bg-ods-border" }),
2617
+ /* @__PURE__ */ jsx28("div", { className: "h-4 w-1/2 rounded bg-ods-border" })
4309
2618
  ] })
4310
2619
  ] })
4311
2620
  ] })
4312
2621
  ] });
4313
2622
  }
4314
2623
  if (size2 === "sm") {
4315
- return /* @__PURE__ */ jsxs20(
2624
+ return /* @__PURE__ */ jsxs18(
4316
2625
  "span",
4317
2626
  {
4318
2627
  className: cn(
@@ -4321,14 +2630,14 @@ function ProductReleaseCardSkeleton({ className, size: size2 = "lg" }) {
4321
2630
  className
4322
2631
  ),
4323
2632
  children: [
4324
- /* @__PURE__ */ jsx33("span", { className: "block aspect-square h-14 w-14 shrink-0 self-start rounded-md bg-ods-bg" }),
4325
- /* @__PURE__ */ jsxs20("span", { className: "flex min-h-14 min-w-0 flex-1 flex-col gap-0.5", children: [
4326
- /* @__PURE__ */ jsxs20("span", { className: "flex h-5 min-w-0 items-center gap-2", children: [
4327
- /* @__PURE__ */ jsx33("span", { className: "h-3.5 w-3/5 rounded bg-ods-bg" }),
4328
- /* @__PURE__ */ jsx33("span", { className: "h-4 w-12 shrink-0 rounded bg-ods-bg/70" })
2633
+ /* @__PURE__ */ jsx28("span", { className: "block aspect-square h-14 w-14 shrink-0 self-start rounded-md bg-ods-bg" }),
2634
+ /* @__PURE__ */ jsxs18("span", { className: "flex min-h-14 min-w-0 flex-1 flex-col gap-0.5", children: [
2635
+ /* @__PURE__ */ jsxs18("span", { className: "flex h-5 min-w-0 items-center gap-2", children: [
2636
+ /* @__PURE__ */ jsx28("span", { className: "h-3.5 w-3/5 rounded bg-ods-bg" }),
2637
+ /* @__PURE__ */ jsx28("span", { className: "h-4 w-12 shrink-0 rounded bg-ods-bg/70" })
4329
2638
  ] }),
4330
- /* @__PURE__ */ jsx33("span", { className: "flex h-4 min-w-0 items-center", children: /* @__PURE__ */ jsx33("span", { className: "h-3 w-1/3 rounded bg-ods-bg/70" }) }),
4331
- /* @__PURE__ */ jsx33("span", { className: "flex h-4 min-w-0 items-center", children: /* @__PURE__ */ jsx33("span", { className: "h-3 w-11/12 rounded bg-ods-bg/40" }) })
2639
+ /* @__PURE__ */ jsx28("span", { className: "flex h-4 min-w-0 items-center", children: /* @__PURE__ */ jsx28("span", { className: "h-3 w-1/3 rounded bg-ods-bg/70" }) }),
2640
+ /* @__PURE__ */ jsx28("span", { className: "flex h-4 min-w-0 items-center", children: /* @__PURE__ */ jsx28("span", { className: "h-3 w-11/12 rounded bg-ods-bg/40" }) })
4332
2641
  ] })
4333
2642
  ]
4334
2643
  }
@@ -4482,10 +2791,10 @@ function safeHref(url) {
4482
2791
  import { Eye as Eye2 } from "lucide-react";
4483
2792
 
4484
2793
  // src/components/chat/entity-cards/use-entity-card-link.ts
4485
- import { useMemo as useMemo3 } from "react";
2794
+ import { useMemo as useMemo2 } from "react";
4486
2795
  function useEntityCardLink({ href, targetPlatform, target, rel }) {
4487
2796
  const runtime = useChatRuntime();
4488
- return useMemo3(() => {
2797
+ return useMemo2(() => {
4489
2798
  if (target !== void 0 || rel !== void 0) {
4490
2799
  const safeRel = rel ?? (target === "_blank" ? "noopener noreferrer" : void 0);
4491
2800
  return { target, rel: safeRel };
@@ -4507,28 +2816,28 @@ function useEntityCardPlaceholder({
4507
2816
  }
4508
2817
 
4509
2818
  // src/components/chat/entity-cards/blog-card.tsx
4510
- import { Fragment as Fragment10, jsx as jsx34, jsxs as jsxs21 } from "react/jsx-runtime";
2819
+ import { Fragment as Fragment9, jsx as jsx29, jsxs as jsxs19 } from "react/jsx-runtime";
4511
2820
  function BlogCardSkeleton({ size: size2 = "default" }) {
4512
2821
  if (size2 === "sm") {
4513
- return /* @__PURE__ */ jsxs21("span", { className: COMPACT_CARD_SKELETON_OUTER, children: [
4514
- /* @__PURE__ */ jsx34("span", { className: COMPACT_CARD_SKELETON_IMAGE_SLOT }),
4515
- /* @__PURE__ */ jsxs21("span", { className: COMPACT_CARD_TEXT_COL, children: [
4516
- /* @__PURE__ */ jsx34("span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ jsx34("span", { className: "h-3.5 w-3/5 rounded bg-ods-bg" }) }),
4517
- /* @__PURE__ */ jsx34("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx34("span", { className: "h-3 w-2/5 rounded bg-ods-bg/70" }) }),
4518
- /* @__PURE__ */ jsx34("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx34("span", { className: "h-3 w-11/12 rounded bg-ods-bg/40" }) })
2822
+ return /* @__PURE__ */ jsxs19("span", { className: COMPACT_CARD_SKELETON_OUTER, children: [
2823
+ /* @__PURE__ */ jsx29("span", { className: COMPACT_CARD_SKELETON_IMAGE_SLOT }),
2824
+ /* @__PURE__ */ jsxs19("span", { className: COMPACT_CARD_TEXT_COL, children: [
2825
+ /* @__PURE__ */ jsx29("span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ jsx29("span", { className: "h-3.5 w-3/5 rounded bg-ods-bg" }) }),
2826
+ /* @__PURE__ */ jsx29("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx29("span", { className: "h-3 w-2/5 rounded bg-ods-bg/70" }) }),
2827
+ /* @__PURE__ */ jsx29("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx29("span", { className: "h-3 w-11/12 rounded bg-ods-bg/40" }) })
4519
2828
  ] })
4520
2829
  ] });
4521
2830
  }
4522
- return /* @__PURE__ */ jsxs21("article", { className: cn(CONTENT_CARD_SKELETON_FRAME_CLASS, "group flex h-full animate-pulse flex-col"), children: [
4523
- /* @__PURE__ */ jsx34("div", { className: "aspect-[1200/630] bg-ods-border" }),
4524
- /* @__PURE__ */ jsxs21("div", { className: "flex flex-grow flex-col space-y-3 p-4", children: [
4525
- /* @__PURE__ */ jsx34("div", { className: "h-5 w-3/4 rounded bg-ods-border" }),
4526
- /* @__PURE__ */ jsx34("div", { className: "h-5 w-1/2 rounded bg-ods-border" }),
4527
- /* @__PURE__ */ jsx34("div", { className: "h-3 w-full rounded bg-ods-border" }),
4528
- /* @__PURE__ */ jsx34("div", { className: "h-3 w-4/5 rounded bg-ods-border" }),
4529
- /* @__PURE__ */ jsxs21("div", { className: "mt-auto flex items-center gap-2", children: [
4530
- /* @__PURE__ */ jsx34("div", { className: "h-8 w-8 rounded-full bg-ods-border" }),
4531
- /* @__PURE__ */ jsx34("div", { className: "h-3 w-24 rounded bg-ods-border" })
2831
+ return /* @__PURE__ */ jsxs19("article", { className: cn(CONTENT_CARD_SKELETON_FRAME_CLASS, "group flex h-full animate-pulse flex-col"), children: [
2832
+ /* @__PURE__ */ jsx29("div", { className: "aspect-[1200/630] bg-ods-border" }),
2833
+ /* @__PURE__ */ jsxs19("div", { className: "flex flex-grow flex-col space-y-3 p-4", children: [
2834
+ /* @__PURE__ */ jsx29("div", { className: "h-5 w-3/4 rounded bg-ods-border" }),
2835
+ /* @__PURE__ */ jsx29("div", { className: "h-5 w-1/2 rounded bg-ods-border" }),
2836
+ /* @__PURE__ */ jsx29("div", { className: "h-3 w-full rounded bg-ods-border" }),
2837
+ /* @__PURE__ */ jsx29("div", { className: "h-3 w-4/5 rounded bg-ods-border" }),
2838
+ /* @__PURE__ */ jsxs19("div", { className: "mt-auto flex items-center gap-2", children: [
2839
+ /* @__PURE__ */ jsx29("div", { className: "h-8 w-8 rounded-full bg-ods-border" }),
2840
+ /* @__PURE__ */ jsx29("div", { className: "h-3 w-24 rounded bg-ods-border" })
4532
2841
  ] })
4533
2842
  ] })
4534
2843
  ] });
@@ -4561,7 +2870,7 @@ function BlogCard({
4561
2870
  if (size2 === "sm") {
4562
2871
  const dateStr2 = post.published_at ? formatDateWithTimezone(post.published_at, null, "medium") : "";
4563
2872
  const firstCategory = post.categories?.find((c) => c && c.name)?.name;
4564
- return /* @__PURE__ */ jsxs21(
2873
+ return /* @__PURE__ */ jsxs19(
4565
2874
  "a",
4566
2875
  {
4567
2876
  href,
@@ -4570,7 +2879,7 @@ function BlogCard({
4570
2879
  className: cn(COMPACT_CARD_OUTER, className),
4571
2880
  "aria-label": `Read article: ${post.title}`,
4572
2881
  children: [
4573
- /* @__PURE__ */ jsx34("span", { className: COMPACT_CARD_IMAGE_SLOT, children: displayImage ? /* @__PURE__ */ jsx34(
2882
+ /* @__PURE__ */ jsx29("span", { className: COMPACT_CARD_IMAGE_SLOT, children: displayImage ? /* @__PURE__ */ jsx29(
4574
2883
  next_image_default,
4575
2884
  {
4576
2885
  src: displayImage,
@@ -4582,17 +2891,17 @@ function BlogCard({
4582
2891
  onError: onImageError
4583
2892
  }
4584
2893
  ) : null }),
4585
- /* @__PURE__ */ jsxs21("span", { className: COMPACT_CARD_TEXT_COL, children: [
4586
- /* @__PURE__ */ jsxs21("span", { className: cn(COMPACT_CARD_TITLE_ROW, "gap-1.5"), children: [
4587
- /* @__PURE__ */ jsx34("span", { className: cn(COMPACT_CARD_TITLE, "font-body"), children: post.title }),
4588
- hasEmbeddedVideo ? /* @__PURE__ */ jsx34(StatusBadge, { text: "Video", variant: "button", colorScheme: "cyan", className: "shrink-0" }) : null
2894
+ /* @__PURE__ */ jsxs19("span", { className: COMPACT_CARD_TEXT_COL, children: [
2895
+ /* @__PURE__ */ jsxs19("span", { className: cn(COMPACT_CARD_TITLE_ROW, "gap-1.5"), children: [
2896
+ /* @__PURE__ */ jsx29("span", { className: cn(COMPACT_CARD_TITLE, "font-body"), children: post.title }),
2897
+ hasEmbeddedVideo ? /* @__PURE__ */ jsx29(StatusBadge, { text: "Video", variant: "button", colorScheme: "cyan", className: "shrink-0" }) : null
4589
2898
  ] }),
4590
- /* @__PURE__ */ jsx34("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsxs21("span", { className: COMPACT_CARD_SUBTITLE, children: [
2899
+ /* @__PURE__ */ jsx29("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsxs19("span", { className: COMPACT_CARD_SUBTITLE, children: [
4591
2900
  dateStr2,
4592
2901
  dateStr2 && firstCategory ? " \xB7 " : "",
4593
2902
  firstCategory ?? "Blog Post"
4594
2903
  ] }) }),
4595
- /* @__PURE__ */ jsx34("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx34("span", { className: COMPACT_CARD_SUMMARY, children: post.summary || COMPACT_CARD_ROW_FILLER }) })
2904
+ /* @__PURE__ */ jsx29("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx29("span", { className: COMPACT_CARD_SUMMARY, children: post.summary || COMPACT_CARD_ROW_FILLER }) })
4596
2905
  ] })
4597
2906
  ]
4598
2907
  }
@@ -4600,7 +2909,7 @@ function BlogCard({
4600
2909
  }
4601
2910
  if (size2 === "portrait") {
4602
2911
  const dateStr2 = post.published_at ? formatDateWithTimezone(post.published_at, null, "medium") : "";
4603
- return /* @__PURE__ */ jsx34(
2912
+ return /* @__PURE__ */ jsx29(
4604
2913
  EntityPortraitCard,
4605
2914
  {
4606
2915
  href,
@@ -4621,7 +2930,7 @@ function BlogCard({
4621
2930
  );
4622
2931
  }
4623
2932
  const dateStr = post.published_at ? formatDateWithTimezone(post.published_at, null, "medium") : "";
4624
- return /* @__PURE__ */ jsx34("article", { className: cn(CONTENT_CARD_FRAME_CLASS, "flex h-full flex-col", className), role: "article", children: /* @__PURE__ */ jsxs21(
2933
+ return /* @__PURE__ */ jsx29("article", { className: cn(CONTENT_CARD_FRAME_CLASS, "flex h-full flex-col", className), role: "article", children: /* @__PURE__ */ jsxs19(
4625
2934
  "a",
4626
2935
  {
4627
2936
  href,
@@ -4630,7 +2939,7 @@ function BlogCard({
4630
2939
  className: "flex h-full flex-col focus:outline-none",
4631
2940
  "aria-label": `Read article: ${post.title}`,
4632
2941
  children: [
4633
- /* @__PURE__ */ jsx34("div", { className: "relative aspect-[1200/630] w-full overflow-hidden bg-ods-bg", children: displayImage ? /* @__PURE__ */ jsx34(
2942
+ /* @__PURE__ */ jsx29("div", { className: "relative aspect-[1200/630] w-full overflow-hidden bg-ods-bg", children: displayImage ? /* @__PURE__ */ jsx29(
4634
2943
  next_image_default,
4635
2944
  {
4636
2945
  src: displayImage,
@@ -4644,8 +2953,8 @@ function BlogCard({
4644
2953
  onError: onImageError
4645
2954
  }
4646
2955
  ) : null }),
4647
- /* @__PURE__ */ jsxs21("div", { className: "flex flex-grow flex-col p-4", children: [
4648
- /* @__PURE__ */ jsx34("div", { className: "mb-3 flex min-h-[50.4px] items-center md:min-h-[56px] lg:min-h-[61.6px]", children: /* @__PURE__ */ jsx34(
2956
+ /* @__PURE__ */ jsxs19("div", { className: "flex flex-grow flex-col p-4", children: [
2957
+ /* @__PURE__ */ jsx29("div", { className: "mb-3 flex min-h-[50.4px] items-center md:min-h-[56px] lg:min-h-[61.6px]", children: /* @__PURE__ */ jsx29(
4649
2958
  "h3",
4650
2959
  {
4651
2960
  className: cn(
@@ -4657,10 +2966,10 @@ function BlogCard({
4657
2966
  children: post.title
4658
2967
  }
4659
2968
  ) }),
4660
- /* @__PURE__ */ jsx34("div", { className: "mb-3 flex min-h-[42px] items-center md:min-h-[45px] lg:min-h-[48px]", children: /* @__PURE__ */ jsx34("p", { className: cn("text-ods-text-primary text-h6", "line-clamp-2"), children: post.summary || "" }) }),
4661
- /* @__PURE__ */ jsxs21("div", { className: "mt-auto flex items-center justify-between gap-2 text-ods-text-secondary text-h6", children: [
4662
- /* @__PURE__ */ jsxs21("div", { className: "flex min-w-0 items-center gap-2", children: [
4663
- post.author_avatar ? /* @__PURE__ */ jsx34(
2969
+ /* @__PURE__ */ jsx29("div", { className: "mb-3 flex min-h-[42px] items-center md:min-h-[45px] lg:min-h-[48px]", children: /* @__PURE__ */ jsx29("p", { className: cn("text-ods-text-primary text-h6", "line-clamp-2"), children: post.summary || "" }) }),
2970
+ /* @__PURE__ */ jsxs19("div", { className: "mt-auto flex items-center justify-between gap-2 text-ods-text-secondary text-h6", children: [
2971
+ /* @__PURE__ */ jsxs19("div", { className: "flex min-w-0 items-center gap-2", children: [
2972
+ post.author_avatar ? /* @__PURE__ */ jsx29(
4664
2973
  next_image_default,
4665
2974
  {
4666
2975
  src: post.author_avatar,
@@ -4671,22 +2980,22 @@ function BlogCard({
4671
2980
  unoptimized: true
4672
2981
  }
4673
2982
  ) : null,
4674
- /* @__PURE__ */ jsxs21("span", { className: "truncate", children: [
2983
+ /* @__PURE__ */ jsxs19("span", { className: "truncate", children: [
4675
2984
  post.author_name || "Anonymous",
4676
- dateStr ? /* @__PURE__ */ jsxs21(Fragment10, { children: [
2985
+ dateStr ? /* @__PURE__ */ jsxs19(Fragment9, { children: [
4677
2986
  " \xB7 ",
4678
2987
  dateStr
4679
2988
  ] }) : null
4680
2989
  ] })
4681
2990
  ] }),
4682
- /* @__PURE__ */ jsxs21(
2991
+ /* @__PURE__ */ jsxs19(
4683
2992
  "div",
4684
2993
  {
4685
2994
  className: "flex shrink-0 items-center gap-1",
4686
2995
  "aria-label": `View count: ${(post.view_count ?? 0).toLocaleString("en-US")} views`,
4687
2996
  children: [
4688
- /* @__PURE__ */ jsx34(Eye2, { className: "h-4 w-4 shrink-0" }),
4689
- /* @__PURE__ */ jsx34("span", { children: (post.view_count ?? 0).toLocaleString("en-US") })
2997
+ /* @__PURE__ */ jsx29(Eye2, { className: "h-4 w-4 shrink-0" }),
2998
+ /* @__PURE__ */ jsx29("span", { children: (post.view_count ?? 0).toLocaleString("en-US") })
4690
2999
  ]
4691
3000
  }
4692
3001
  )
@@ -4698,41 +3007,33 @@ function BlogCard({
4698
3007
  }
4699
3008
 
4700
3009
  // src/components/chat/entity-cards/case-study-card.tsx
4701
- import { useState as useState8 } from "react";
4702
- import { Fragment as Fragment11, jsx as jsx35, jsxs as jsxs22 } from "react/jsx-runtime";
3010
+ import { jsx as jsx30, jsxs as jsxs20 } from "react/jsx-runtime";
4703
3011
  function CaseStudyCardSkeleton({ size: size2 = "default" }) {
4704
3012
  if (size2 === "sm") {
4705
- return /* @__PURE__ */ jsxs22("span", { className: COMPACT_CARD_SKELETON_OUTER, children: [
4706
- /* @__PURE__ */ jsx35("span", { className: COMPACT_CARD_SKELETON_IMAGE_SLOT }),
4707
- /* @__PURE__ */ jsxs22("span", { className: COMPACT_CARD_TEXT_COL, children: [
4708
- /* @__PURE__ */ jsx35("span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ jsx35("span", { className: "h-3.5 w-3/5 rounded bg-ods-bg" }) }),
4709
- /* @__PURE__ */ jsx35("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx35("span", { className: "h-3 w-1/2 rounded bg-ods-bg/70" }) }),
4710
- /* @__PURE__ */ jsx35("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx35("span", { className: "h-3 w-11/12 rounded bg-ods-bg/40" }) })
3013
+ return /* @__PURE__ */ jsxs20("span", { className: COMPACT_CARD_SKELETON_OUTER, children: [
3014
+ /* @__PURE__ */ jsx30("span", { className: COMPACT_CARD_SKELETON_IMAGE_SLOT }),
3015
+ /* @__PURE__ */ jsxs20("span", { className: COMPACT_CARD_TEXT_COL, children: [
3016
+ /* @__PURE__ */ jsx30("span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ jsx30("span", { className: "h-3.5 w-3/5 rounded bg-ods-bg" }) }),
3017
+ /* @__PURE__ */ jsx30("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx30("span", { className: "h-3 w-1/2 rounded bg-ods-bg/70" }) }),
3018
+ /* @__PURE__ */ jsx30("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx30("span", { className: "h-3 w-11/12 rounded bg-ods-bg/40" }) })
4711
3019
  ] })
4712
3020
  ] });
4713
3021
  }
4714
- return /* @__PURE__ */ jsxs22("div", { className: cn(CONTENT_CARD_SKELETON_FRAME_CLASS, "flex animate-pulse flex-col gap-6 p-6"), children: [
4715
- /* @__PURE__ */ jsx35("div", { className: "aspect-[1200/630] w-full rounded-sm bg-ods-border" }),
4716
- /* @__PURE__ */ jsxs22("div", { className: "flex h-[72px] flex-col gap-2", children: [
4717
- /* @__PURE__ */ jsx35("div", { className: "h-5 w-3/4 rounded bg-ods-border" }),
4718
- /* @__PURE__ */ jsx35("div", { className: "h-5 w-1/2 rounded bg-ods-border" })
3022
+ return /* @__PURE__ */ jsxs20("div", { className: cn(CONTENT_CARD_SKELETON_FRAME_CLASS, "flex animate-pulse flex-col gap-6 p-6"), children: [
3023
+ /* @__PURE__ */ jsx30("div", { className: "aspect-[1200/630] w-full rounded-sm bg-ods-border" }),
3024
+ /* @__PURE__ */ jsxs20("div", { className: "flex h-[72px] flex-col gap-2", children: [
3025
+ /* @__PURE__ */ jsx30("div", { className: "h-5 w-3/4 rounded bg-ods-border" }),
3026
+ /* @__PURE__ */ jsx30("div", { className: "h-5 w-1/2 rounded bg-ods-border" })
4719
3027
  ] }),
4720
- /* @__PURE__ */ jsxs22("div", { className: "flex h-[60px] items-center gap-3", children: [
4721
- /* @__PURE__ */ jsx35("div", { className: "h-12 w-12 rounded-full bg-ods-border" }),
4722
- /* @__PURE__ */ jsxs22("div", { className: "flex-1 space-y-2", children: [
4723
- /* @__PURE__ */ jsx35("div", { className: "h-4 w-2/3 rounded bg-ods-border" }),
4724
- /* @__PURE__ */ jsx35("div", { className: "h-3 w-1/2 rounded bg-ods-border" })
3028
+ /* @__PURE__ */ jsxs20("div", { className: "flex h-[60px] items-center gap-3", children: [
3029
+ /* @__PURE__ */ jsx30("div", { className: "h-12 w-12 rounded-full bg-ods-border" }),
3030
+ /* @__PURE__ */ jsxs20("div", { className: "flex-1 space-y-2", children: [
3031
+ /* @__PURE__ */ jsx30("div", { className: "h-4 w-2/3 rounded bg-ods-border" }),
3032
+ /* @__PURE__ */ jsx30("div", { className: "h-3 w-1/2 rounded bg-ods-border" })
4725
3033
  ] })
4726
3034
  ] })
4727
3035
  ] });
4728
3036
  }
4729
- function caseStudyHighlight(study) {
4730
- if (study.highlight_video_url) {
4731
- return { url: study.highlight_video_url, posterUrl: study.highlight_video_thumbnail ?? null };
4732
- }
4733
- const bite = (study.video_bites ?? []).filter((candidate) => candidate.featured === true && candidate.url).sort(sortBitesByFeaturedAtDesc)[0];
4734
- return bite ? { url: bite.url, posterUrl: bite.thumbnail_url ?? null } : null;
4735
- }
4736
3037
  function CaseStudyCard({
4737
3038
  study,
4738
3039
  href,
@@ -4742,11 +3043,8 @@ function CaseStudyCard({
4742
3043
  placeholderUrl: placeholderUrlProp,
4743
3044
  size: size2 = "default",
4744
3045
  showTypeBadge = true,
4745
- mediaMounted,
4746
- onNavigate,
4747
3046
  className
4748
3047
  }) {
4749
- const [hovered, setHovered] = useState8(false);
4750
3048
  const { target, rel } = useEntityCardLink({
4751
3049
  href,
4752
3050
  targetPlatform,
@@ -4760,8 +3058,8 @@ function CaseStudyCard({
4760
3058
  });
4761
3059
  const coverImage = study.featured_image || placeholderUrl || null;
4762
3060
  if (size2 === "sm") {
4763
- return /* @__PURE__ */ jsxs22("a", { href, target, rel, className: cn(COMPACT_CARD_OUTER, className), children: [
4764
- /* @__PURE__ */ jsx35("span", { className: COMPACT_CARD_IMAGE_SLOT, children: coverImage ? /* @__PURE__ */ jsx35(
3061
+ return /* @__PURE__ */ jsxs20("a", { href, target, rel, className: cn(COMPACT_CARD_OUTER, className), children: [
3062
+ /* @__PURE__ */ jsx30("span", { className: COMPACT_CARD_IMAGE_SLOT, children: coverImage ? /* @__PURE__ */ jsx30(
4765
3063
  next_image_default,
4766
3064
  {
4767
3065
  src: coverImage,
@@ -4773,85 +3071,15 @@ function CaseStudyCard({
4773
3071
  onError: hideOnError
4774
3072
  }
4775
3073
  ) : null }),
4776
- /* @__PURE__ */ jsxs22("span", { className: COMPACT_CARD_TEXT_COL, children: [
4777
- /* @__PURE__ */ jsx35("span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ jsx35("span", { className: COMPACT_CARD_TITLE, children: study.title }) }),
4778
- /* @__PURE__ */ jsx35("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx35("span", { className: COMPACT_CARD_SUBTITLE, children: [study.msp?.name, study.user?.full_name].filter(Boolean).join(" \xB7 ") || "Case study" }) }),
4779
- /* @__PURE__ */ jsx35("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx35("span", { className: COMPACT_CARD_SUMMARY, children: study.summary || COMPACT_CARD_ROW_FILLER }) })
3074
+ /* @__PURE__ */ jsxs20("span", { className: COMPACT_CARD_TEXT_COL, children: [
3075
+ /* @__PURE__ */ jsx30("span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ jsx30("span", { className: COMPACT_CARD_TITLE, children: study.title }) }),
3076
+ /* @__PURE__ */ jsx30("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx30("span", { className: COMPACT_CARD_SUBTITLE, children: [study.msp?.name, study.user?.full_name].filter(Boolean).join(" \xB7 ") || "Case study" }) }),
3077
+ /* @__PURE__ */ jsx30("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx30("span", { className: COMPACT_CARD_SUMMARY, children: study.summary || COMPACT_CARD_ROW_FILLER }) })
4780
3078
  ] })
4781
3079
  ] });
4782
3080
  }
4783
- if (size2 === "menu") {
4784
- const preview = caseStudyHighlight(study);
4785
- const videoUrl = preview?.url ?? null;
4786
- const hasAnyVideo = !!(videoUrl || study.main_video_url);
4787
- const poster = study.main_video_thumbnail || study.featured_image || preview?.posterUrl || null;
4788
- return /* @__PURE__ */ jsxs22(
4789
- next_link_default,
4790
- {
4791
- href,
4792
- target,
4793
- rel,
4794
- onClick: onNavigate,
4795
- onPointerEnter: () => setHovered(true),
4796
- onPointerLeave: () => setHovered(false),
4797
- onFocus: () => setHovered(true),
4798
- onBlur: () => setHovered(false),
4799
- className: cn(
4800
- // `group/card` is what the shared play glyph accents on.
4801
- "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",
4802
- className
4803
- ),
4804
- children: [
4805
- /* @__PURE__ */ jsx35("span", { className: "pointer-events-none relative block aspect-video w-full shrink-0 overflow-hidden rounded-md bg-ods-bg", children: videoUrl ? (
4806
- // The shared hover surface, filled the way the walkthrough card fills
4807
- // its own 16:9 slot (`cover`): an upright cut is cropped to the slot,
4808
- // never letterboxed. Sound on hover, muted when the browser blocks it.
4809
- /* @__PURE__ */ jsx35(
4810
- VideoHoverPreviewSurface,
4811
- {
4812
- url: videoUrl,
4813
- posterUrl: poster,
4814
- active: hovered,
4815
- playerMounted: mediaMounted,
4816
- fit: "cover",
4817
- posterSizes: "360px"
4818
- }
4819
- )
4820
- ) : /* @__PURE__ */ jsxs22(Fragment11, { children: [
4821
- (poster ?? placeholderUrl) && /* @__PURE__ */ jsx35(
4822
- next_image_default,
4823
- {
4824
- src: poster ?? placeholderUrl ?? "",
4825
- alt: "",
4826
- className: "object-cover",
4827
- fill: true,
4828
- sizes: "360px",
4829
- unoptimized: true,
4830
- onError: hideOnError
4831
- }
4832
- ),
4833
- hasAnyVideo && /* @__PURE__ */ jsx35(CardHoverPlay, { size: "md" })
4834
- ] }) }),
4835
- study.msp?.name && /* @__PURE__ */ jsxs22("span", { className: "flex items-center gap-[var(--spacing-system-xsf)] text-ods-text-secondary text-h6", children: [
4836
- study.msp.icon_url && /* @__PURE__ */ jsx35(
4837
- EntityIcon,
4838
- {
4839
- icon: { url: study.msp.icon_url },
4840
- size: 20,
4841
- className: "size-5 shrink-0 rounded object-contain"
4842
- }
4843
- ),
4844
- /* @__PURE__ */ jsx35("span", { className: "min-w-0 truncate", children: study.msp.name })
4845
- ] }),
4846
- /* @__PURE__ */ jsx35("span", { className: "line-clamp-2 text-h6", children: study.title }),
4847
- study.user?.full_name && /* @__PURE__ */ jsx35("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 }),
4848
- /* @__PURE__ */ jsx35("span", { className: "mt-auto text-ods-accent text-h6", children: hasAnyVideo ? "Watch the story" : "Read the story" })
4849
- ]
4850
- }
4851
- );
4852
- }
4853
3081
  if (size2 === "portrait") {
4854
- return /* @__PURE__ */ jsx35(
3082
+ return /* @__PURE__ */ jsx30(
4855
3083
  EntityPortraitCard,
4856
3084
  {
4857
3085
  href,
@@ -4872,8 +3100,8 @@ function CaseStudyCard({
4872
3100
  }
4873
3101
  );
4874
3102
  }
4875
- return /* @__PURE__ */ jsx35("a", { href, target, rel, className: cn("block h-full", className), children: /* @__PURE__ */ jsxs22(Card, { className: cn(CONTENT_CARD_FRAME_CLASS, "flex flex-col gap-6 p-6"), children: [
4876
- /* @__PURE__ */ jsx35("div", { className: "relative aspect-[1200/630] w-full shrink-0 overflow-hidden rounded-sm bg-ods-bg", children: coverImage && /* @__PURE__ */ jsx35(
3103
+ return /* @__PURE__ */ jsx30("a", { href, target, rel, className: cn("block h-full", className), children: /* @__PURE__ */ jsxs20(Card, { className: cn(CONTENT_CARD_FRAME_CLASS, "flex flex-col gap-6 p-6"), children: [
3104
+ /* @__PURE__ */ jsx30("div", { className: "relative aspect-[1200/630] w-full shrink-0 overflow-hidden rounded-sm bg-ods-bg", children: coverImage && /* @__PURE__ */ jsx30(
4877
3105
  next_image_default,
4878
3106
  {
4879
3107
  src: coverImage,
@@ -4885,10 +3113,10 @@ function CaseStudyCard({
4885
3113
  onError: hideOnError
4886
3114
  }
4887
3115
  ) }),
4888
- /* @__PURE__ */ jsx35("div", { className: "flex h-[72px] shrink-0 items-center", children: /* @__PURE__ */ jsx35("p", { className: "line-clamp-3 break-words text-ods-text-primary text-h4", children: study.title }) }),
4889
- /* @__PURE__ */ jsx35("div", { className: "flex h-[60px] shrink-0 items-center", children: /* @__PURE__ */ jsxs22("div", { className: "flex w-full min-w-0 items-center gap-3", children: [
4890
- /* @__PURE__ */ jsxs22("div", { className: "relative h-12 w-12 shrink-0", children: [
4891
- study.user?.avatar_url ? /* @__PURE__ */ jsx35(
3116
+ /* @__PURE__ */ jsx30("div", { className: "flex h-[72px] shrink-0 items-center", children: /* @__PURE__ */ jsx30("p", { className: "line-clamp-3 break-words text-ods-text-primary text-h4", children: study.title }) }),
3117
+ /* @__PURE__ */ jsx30("div", { className: "flex h-[60px] shrink-0 items-center", children: /* @__PURE__ */ jsxs20("div", { className: "flex w-full min-w-0 items-center gap-3", children: [
3118
+ /* @__PURE__ */ jsxs20("div", { className: "relative h-12 w-12 shrink-0", children: [
3119
+ study.user?.avatar_url ? /* @__PURE__ */ jsx30(
4892
3120
  next_image_default,
4893
3121
  {
4894
3122
  src: study.user.avatar_url,
@@ -4898,8 +3126,8 @@ function CaseStudyCard({
4898
3126
  height: 48,
4899
3127
  unoptimized: true
4900
3128
  }
4901
- ) : /* @__PURE__ */ jsx35("div", { className: "flex h-12 w-12 items-center justify-center rounded-full border border-ods-border bg-ods-bg", children: /* @__PURE__ */ jsx35("span", { className: "text-ods-text-secondary text-h4", children: (study.user?.full_name || "A").charAt(0).toUpperCase() }) }),
4902
- study.msp?.icon_url && /* @__PURE__ */ jsx35("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__ */ jsx35(
3129
+ ) : /* @__PURE__ */ jsx30("div", { className: "flex h-12 w-12 items-center justify-center rounded-full border border-ods-border bg-ods-bg", children: /* @__PURE__ */ jsx30("span", { className: "text-ods-text-secondary text-h4", children: (study.user?.full_name || "A").charAt(0).toUpperCase() }) }),
3130
+ study.msp?.icon_url && /* @__PURE__ */ jsx30("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__ */ jsx30(
4903
3131
  next_image_default,
4904
3132
  {
4905
3133
  src: study.msp.icon_url,
@@ -4911,50 +3139,50 @@ function CaseStudyCard({
4911
3139
  }
4912
3140
  ) })
4913
3141
  ] }),
4914
- /* @__PURE__ */ jsxs22("div", { className: "min-w-0 flex-1", children: [
4915
- /* @__PURE__ */ jsxs22("p", { className: "truncate text-ods-text-primary text-h6", children: [
3142
+ /* @__PURE__ */ jsxs20("div", { className: "min-w-0 flex-1", children: [
3143
+ /* @__PURE__ */ jsxs20("p", { className: "truncate text-ods-text-primary text-h6", children: [
4916
3144
  study.user?.full_name || "Anonymous",
4917
- study.msp?.name && /* @__PURE__ */ jsxs22("span", { className: "text-ods-text-secondary", children: [
3145
+ study.msp?.name && /* @__PURE__ */ jsxs20("span", { className: "text-ods-text-secondary", children: [
4918
3146
  " \u2022 ",
4919
3147
  study.msp.name
4920
3148
  ] })
4921
3149
  ] }),
4922
- /* @__PURE__ */ jsx35("p", { className: "truncate text-ods-text-secondary text-h6", children: study.user?.job_title || "\xA0" })
3150
+ /* @__PURE__ */ jsx30("p", { className: "truncate text-ods-text-secondary text-h6", children: study.user?.job_title || "\xA0" })
4923
3151
  ] })
4924
3152
  ] }) })
4925
3153
  ] }) });
4926
3154
  }
4927
3155
 
4928
3156
  // src/components/chat/entity-cards/customer-interview-card.tsx
4929
- import { Video as Video3 } from "lucide-react";
4930
- import { Fragment as Fragment12, jsx as jsx36, jsxs as jsxs23 } from "react/jsx-runtime";
3157
+ import { Video } from "lucide-react";
3158
+ import { Fragment as Fragment10, jsx as jsx31, jsxs as jsxs21 } from "react/jsx-runtime";
4931
3159
  function CustomerInterviewCardSkeleton({ size: size2 = "default" }) {
4932
3160
  if (size2 === "sm") {
4933
- return /* @__PURE__ */ jsxs23("span", { className: COMPACT_CARD_SKELETON_OUTER, children: [
4934
- /* @__PURE__ */ jsx36("span", { className: COMPACT_CARD_SKELETON_IMAGE_SLOT }),
4935
- /* @__PURE__ */ jsxs23("span", { className: COMPACT_CARD_TEXT_COL, children: [
4936
- /* @__PURE__ */ jsx36("span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ jsx36("span", { className: "h-3.5 w-3/5 rounded bg-ods-bg" }) }),
4937
- /* @__PURE__ */ jsx36("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx36("span", { className: "h-3 w-2/5 rounded bg-ods-bg/70" }) }),
4938
- /* @__PURE__ */ jsx36("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx36("span", { className: "h-3 w-11/12 rounded bg-ods-bg/40" }) })
3161
+ return /* @__PURE__ */ jsxs21("span", { className: COMPACT_CARD_SKELETON_OUTER, children: [
3162
+ /* @__PURE__ */ jsx31("span", { className: COMPACT_CARD_SKELETON_IMAGE_SLOT }),
3163
+ /* @__PURE__ */ jsxs21("span", { className: COMPACT_CARD_TEXT_COL, children: [
3164
+ /* @__PURE__ */ jsx31("span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ jsx31("span", { className: "h-3.5 w-3/5 rounded bg-ods-bg" }) }),
3165
+ /* @__PURE__ */ jsx31("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx31("span", { className: "h-3 w-2/5 rounded bg-ods-bg/70" }) }),
3166
+ /* @__PURE__ */ jsx31("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx31("span", { className: "h-3 w-11/12 rounded bg-ods-bg/40" }) })
4939
3167
  ] })
4940
3168
  ] });
4941
3169
  }
4942
- return /* @__PURE__ */ jsxs23("div", { className: cn(CONTENT_CARD_SKELETON_FRAME_CLASS, "flex animate-pulse flex-col gap-6 p-6"), children: [
4943
- /* @__PURE__ */ jsx36("div", { className: "aspect-[1200/630] w-full rounded-sm bg-ods-border" }),
4944
- /* @__PURE__ */ jsxs23("div", { className: "space-y-2", children: [
4945
- /* @__PURE__ */ jsx36("div", { className: "h-5 w-3/4 rounded bg-ods-border" }),
4946
- /* @__PURE__ */ jsx36("div", { className: "h-5 w-1/2 rounded bg-ods-border" })
3170
+ return /* @__PURE__ */ jsxs21("div", { className: cn(CONTENT_CARD_SKELETON_FRAME_CLASS, "flex animate-pulse flex-col gap-6 p-6"), children: [
3171
+ /* @__PURE__ */ jsx31("div", { className: "aspect-[1200/630] w-full rounded-sm bg-ods-border" }),
3172
+ /* @__PURE__ */ jsxs21("div", { className: "space-y-2", children: [
3173
+ /* @__PURE__ */ jsx31("div", { className: "h-5 w-3/4 rounded bg-ods-border" }),
3174
+ /* @__PURE__ */ jsx31("div", { className: "h-5 w-1/2 rounded bg-ods-border" })
4947
3175
  ] }),
4948
- /* @__PURE__ */ jsxs23("div", { className: "space-y-2", children: [
4949
- /* @__PURE__ */ jsx36("div", { className: "h-3 w-full rounded bg-ods-border" }),
4950
- /* @__PURE__ */ jsx36("div", { className: "h-3 w-5/6 rounded bg-ods-border" }),
4951
- /* @__PURE__ */ jsx36("div", { className: "h-3 w-4/5 rounded bg-ods-border" })
3176
+ /* @__PURE__ */ jsxs21("div", { className: "space-y-2", children: [
3177
+ /* @__PURE__ */ jsx31("div", { className: "h-3 w-full rounded bg-ods-border" }),
3178
+ /* @__PURE__ */ jsx31("div", { className: "h-3 w-5/6 rounded bg-ods-border" }),
3179
+ /* @__PURE__ */ jsx31("div", { className: "h-3 w-4/5 rounded bg-ods-border" })
4952
3180
  ] }),
4953
- /* @__PURE__ */ jsxs23("div", { className: "mt-auto flex h-[60px] items-center gap-3", children: [
4954
- /* @__PURE__ */ jsx36("div", { className: "h-12 w-12 rounded-full bg-ods-border" }),
4955
- /* @__PURE__ */ jsxs23("div", { className: "flex-1 space-y-2", children: [
4956
- /* @__PURE__ */ jsx36("div", { className: "h-4 w-2/3 rounded bg-ods-border" }),
4957
- /* @__PURE__ */ jsx36("div", { className: "h-3 w-1/2 rounded bg-ods-border" })
3181
+ /* @__PURE__ */ jsxs21("div", { className: "mt-auto flex h-[60px] items-center gap-3", children: [
3182
+ /* @__PURE__ */ jsx31("div", { className: "h-12 w-12 rounded-full bg-ods-border" }),
3183
+ /* @__PURE__ */ jsxs21("div", { className: "flex-1 space-y-2", children: [
3184
+ /* @__PURE__ */ jsx31("div", { className: "h-4 w-2/3 rounded bg-ods-border" }),
3185
+ /* @__PURE__ */ jsx31("div", { className: "h-3 w-1/2 rounded bg-ods-border" })
4958
3186
  ] })
4959
3187
  ] })
4960
3188
  ] });
@@ -4983,9 +3211,9 @@ function CustomerInterviewCard({
4983
3211
  });
4984
3212
  const thumbnailUrl = interview.featured_image || placeholderUrl || null;
4985
3213
  if (size2 === "sm") {
4986
- return /* @__PURE__ */ jsxs23("a", { href, target, rel, className: cn(COMPACT_CARD_OUTER, className), children: [
4987
- /* @__PURE__ */ jsxs23("span", { className: COMPACT_CARD_IMAGE_SLOT, children: [
4988
- thumbnailUrl ? /* @__PURE__ */ jsx36(
3214
+ return /* @__PURE__ */ jsxs21("a", { href, target, rel, className: cn(COMPACT_CARD_OUTER, className), children: [
3215
+ /* @__PURE__ */ jsxs21("span", { className: COMPACT_CARD_IMAGE_SLOT, children: [
3216
+ thumbnailUrl ? /* @__PURE__ */ jsx31(
4989
3217
  next_image_default,
4990
3218
  {
4991
3219
  src: thumbnailUrl,
@@ -4997,17 +3225,17 @@ function CustomerInterviewCard({
4997
3225
  onError: hideOnError
4998
3226
  }
4999
3227
  ) : null,
5000
- interview.main_video_url ? /* @__PURE__ */ jsx36("span", { className: "absolute inset-0 flex items-center justify-center bg-black/30", children: /* @__PURE__ */ jsx36(Video3, { className: "h-4 w-4 text-ods-text-on-dark" }) }) : null
3228
+ interview.main_video_url ? /* @__PURE__ */ jsx31("span", { className: "absolute inset-0 flex items-center justify-center bg-black/30", children: /* @__PURE__ */ jsx31(Video, { className: "h-4 w-4 text-ods-text-on-dark" }) }) : null
5001
3229
  ] }),
5002
- /* @__PURE__ */ jsxs23("span", { className: COMPACT_CARD_TEXT_COL, children: [
5003
- /* @__PURE__ */ jsx36("span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ jsx36("span", { className: COMPACT_CARD_TITLE, children: interview.title }) }),
5004
- /* @__PURE__ */ jsx36("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx36("span", { className: COMPACT_CARD_SUBTITLE, children: [interview.user?.full_name, interview.msp?.name].filter(Boolean).join(" \xB7 ") || "Customer interview" }) }),
5005
- /* @__PURE__ */ jsx36("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx36("span", { className: COMPACT_CARD_SUMMARY, children: interview.video_summary || COMPACT_CARD_ROW_FILLER }) })
3230
+ /* @__PURE__ */ jsxs21("span", { className: COMPACT_CARD_TEXT_COL, children: [
3231
+ /* @__PURE__ */ jsx31("span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ jsx31("span", { className: COMPACT_CARD_TITLE, children: interview.title }) }),
3232
+ /* @__PURE__ */ jsx31("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx31("span", { className: COMPACT_CARD_SUBTITLE, children: [interview.user?.full_name, interview.msp?.name].filter(Boolean).join(" \xB7 ") || "Customer interview" }) }),
3233
+ /* @__PURE__ */ jsx31("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx31("span", { className: COMPACT_CARD_SUMMARY, children: interview.video_summary || COMPACT_CARD_ROW_FILLER }) })
5006
3234
  ] })
5007
3235
  ] });
5008
3236
  }
5009
3237
  if (size2 === "portrait") {
5010
- return /* @__PURE__ */ jsx36(
3238
+ return /* @__PURE__ */ jsx31(
5011
3239
  EntityPortraitCard,
5012
3240
  {
5013
3241
  href,
@@ -5028,9 +3256,9 @@ function CustomerInterviewCard({
5028
3256
  }
5029
3257
  );
5030
3258
  }
5031
- return /* @__PURE__ */ jsx36("a", { href, target, rel, className: cn("block h-full", className), children: /* @__PURE__ */ jsxs23(Card, { className: cn(CONTENT_CARD_FRAME_CLASS, "flex flex-col gap-6 p-6"), children: [
5032
- /* @__PURE__ */ jsx36("div", { className: "relative aspect-[1200/630] w-full shrink-0 overflow-hidden rounded-sm bg-ods-bg", children: thumbnailUrl ? /* @__PURE__ */ jsxs23(Fragment12, { children: [
5033
- /* @__PURE__ */ jsx36(
3259
+ return /* @__PURE__ */ jsx31("a", { href, target, rel, className: cn("block h-full", className), children: /* @__PURE__ */ jsxs21(Card, { className: cn(CONTENT_CARD_FRAME_CLASS, "flex flex-col gap-6 p-6"), children: [
3260
+ /* @__PURE__ */ jsx31("div", { className: "relative aspect-[1200/630] w-full shrink-0 overflow-hidden rounded-sm bg-ods-bg", children: thumbnailUrl ? /* @__PURE__ */ jsxs21(Fragment10, { children: [
3261
+ /* @__PURE__ */ jsx31(
5034
3262
  next_image_default,
5035
3263
  {
5036
3264
  src: thumbnailUrl,
@@ -5042,13 +3270,13 @@ function CustomerInterviewCard({
5042
3270
  onError: hideOnError
5043
3271
  }
5044
3272
  ),
5045
- interview.main_video_url && /* @__PURE__ */ jsx36("div", { className: "absolute inset-0 flex items-center justify-center bg-black/40", children: /* @__PURE__ */ jsx36("div", { className: "flex h-16 w-16 items-center justify-center rounded-full bg-ods-accent/90", children: /* @__PURE__ */ jsx36(Video3, { className: "h-8 w-8 text-ods-text-on-accent" }) }) })
5046
- ] }) : /* @__PURE__ */ jsx36("div", { className: "flex h-full w-full items-center justify-center bg-ods-bg", children: /* @__PURE__ */ jsx36(Video3, { className: "h-12 w-12 text-ods-text-secondary" }) }) }),
5047
- /* @__PURE__ */ jsx36("div", { className: "shrink-0", children: /* @__PURE__ */ jsx36("h3", { className: "line-clamp-2 break-words text-ods-text-primary text-h3", children: interview.title }) }),
5048
- interview.video_summary && /* @__PURE__ */ jsx36("div", { className: "shrink-0", children: /* @__PURE__ */ jsx36("p", { className: "line-clamp-3 text-ods-text-secondary text-h6", children: interview.video_summary }) }),
5049
- /* @__PURE__ */ jsx36("div", { className: "mt-auto flex h-[60px] shrink-0 items-center", children: /* @__PURE__ */ jsxs23("div", { className: "flex w-full min-w-0 items-center gap-3", children: [
5050
- /* @__PURE__ */ jsxs23("div", { className: "relative h-12 w-12 shrink-0", children: [
5051
- interview.user?.avatar_url ? /* @__PURE__ */ jsx36(
3273
+ interview.main_video_url && /* @__PURE__ */ jsx31("div", { className: "absolute inset-0 flex items-center justify-center bg-black/40", children: /* @__PURE__ */ jsx31("div", { className: "flex h-16 w-16 items-center justify-center rounded-full bg-ods-accent/90", children: /* @__PURE__ */ jsx31(Video, { className: "h-8 w-8 text-ods-text-on-accent" }) }) })
3274
+ ] }) : /* @__PURE__ */ jsx31("div", { className: "flex h-full w-full items-center justify-center bg-ods-bg", children: /* @__PURE__ */ jsx31(Video, { className: "h-12 w-12 text-ods-text-secondary" }) }) }),
3275
+ /* @__PURE__ */ jsx31("div", { className: "shrink-0", children: /* @__PURE__ */ jsx31("h3", { className: "line-clamp-2 break-words text-ods-text-primary text-h3", children: interview.title }) }),
3276
+ interview.video_summary && /* @__PURE__ */ jsx31("div", { className: "shrink-0", children: /* @__PURE__ */ jsx31("p", { className: "line-clamp-3 text-ods-text-secondary text-h6", children: interview.video_summary }) }),
3277
+ /* @__PURE__ */ jsx31("div", { className: "mt-auto flex h-[60px] shrink-0 items-center", children: /* @__PURE__ */ jsxs21("div", { className: "flex w-full min-w-0 items-center gap-3", children: [
3278
+ /* @__PURE__ */ jsxs21("div", { className: "relative h-12 w-12 shrink-0", children: [
3279
+ interview.user?.avatar_url ? /* @__PURE__ */ jsx31(
5052
3280
  next_image_default,
5053
3281
  {
5054
3282
  src: interview.user.avatar_url,
@@ -5058,8 +3286,8 @@ function CustomerInterviewCard({
5058
3286
  height: 48,
5059
3287
  unoptimized: true
5060
3288
  }
5061
- ) : /* @__PURE__ */ jsx36("div", { className: "flex h-12 w-12 items-center justify-center rounded-full border border-ods-border bg-ods-bg", children: /* @__PURE__ */ jsx36("span", { className: "text-ods-text-secondary text-h4", children: (interview.user?.full_name || "A").charAt(0).toUpperCase() }) }),
5062
- interview.msp?.icon_url && /* @__PURE__ */ jsx36("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__ */ jsx36(
3289
+ ) : /* @__PURE__ */ jsx31("div", { className: "flex h-12 w-12 items-center justify-center rounded-full border border-ods-border bg-ods-bg", children: /* @__PURE__ */ jsx31("span", { className: "text-ods-text-secondary text-h4", children: (interview.user?.full_name || "A").charAt(0).toUpperCase() }) }),
3290
+ interview.msp?.icon_url && /* @__PURE__ */ jsx31("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__ */ jsx31(
5063
3291
  next_image_default,
5064
3292
  {
5065
3293
  src: interview.msp.icon_url,
@@ -5071,15 +3299,15 @@ function CustomerInterviewCard({
5071
3299
  }
5072
3300
  ) })
5073
3301
  ] }),
5074
- /* @__PURE__ */ jsxs23("div", { className: "min-w-0 flex-1", children: [
5075
- /* @__PURE__ */ jsxs23("p", { className: "truncate text-ods-text-primary text-h6", children: [
3302
+ /* @__PURE__ */ jsxs21("div", { className: "min-w-0 flex-1", children: [
3303
+ /* @__PURE__ */ jsxs21("p", { className: "truncate text-ods-text-primary text-h6", children: [
5076
3304
  interview.user?.full_name || "Anonymous",
5077
- interview.msp?.name && /* @__PURE__ */ jsxs23("span", { className: "text-ods-text-secondary", children: [
3305
+ interview.msp?.name && /* @__PURE__ */ jsxs21("span", { className: "text-ods-text-secondary", children: [
5078
3306
  " \u2022 ",
5079
3307
  interview.msp.name
5080
3308
  ] })
5081
3309
  ] }),
5082
- /* @__PURE__ */ jsx36("p", { className: "truncate text-ods-text-secondary text-h6", children: interview.user?.job_title || " " })
3310
+ /* @__PURE__ */ jsx31("p", { className: "truncate text-ods-text-secondary text-h6", children: interview.user?.job_title || " " })
5083
3311
  ] })
5084
3312
  ] }) })
5085
3313
  ] }) });
@@ -5095,29 +3323,29 @@ function formatInvestorUpdatePeriod(start, end, options) {
5095
3323
  }
5096
3324
 
5097
3325
  // src/components/chat/entity-cards/investor-update-card.tsx
5098
- import { Calendar as Calendar2 } from "lucide-react";
5099
- import { jsx as jsx37, jsxs as jsxs24 } from "react/jsx-runtime";
3326
+ import { Calendar } from "lucide-react";
3327
+ import { jsx as jsx32, jsxs as jsxs22 } from "react/jsx-runtime";
5100
3328
  function InvestorUpdateCardSkeleton({ size: size2 = "default" }) {
5101
3329
  if (size2 === "sm") {
5102
- return /* @__PURE__ */ jsxs24("span", { className: COMPACT_CARD_SKELETON_OUTER, children: [
5103
- /* @__PURE__ */ jsx37("span", { className: COMPACT_CARD_SKELETON_IMAGE_SLOT }),
5104
- /* @__PURE__ */ jsxs24("span", { className: COMPACT_CARD_TEXT_COL, children: [
5105
- /* @__PURE__ */ jsxs24("span", { className: `${COMPACT_CARD_TITLE_ROW} flex-nowrap gap-2`, children: [
5106
- /* @__PURE__ */ jsx37("span", { className: "h-3.5 w-1/2 rounded bg-ods-bg" }),
5107
- /* @__PURE__ */ jsx37("span", { className: "h-4 w-8 shrink-0 rounded bg-ods-bg/70" })
3330
+ return /* @__PURE__ */ jsxs22("span", { className: COMPACT_CARD_SKELETON_OUTER, children: [
3331
+ /* @__PURE__ */ jsx32("span", { className: COMPACT_CARD_SKELETON_IMAGE_SLOT }),
3332
+ /* @__PURE__ */ jsxs22("span", { className: COMPACT_CARD_TEXT_COL, children: [
3333
+ /* @__PURE__ */ jsxs22("span", { className: `${COMPACT_CARD_TITLE_ROW} flex-nowrap gap-2`, children: [
3334
+ /* @__PURE__ */ jsx32("span", { className: "h-3.5 w-1/2 rounded bg-ods-bg" }),
3335
+ /* @__PURE__ */ jsx32("span", { className: "h-4 w-8 shrink-0 rounded bg-ods-bg/70" })
5108
3336
  ] }),
5109
- /* @__PURE__ */ jsx37("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx37("span", { className: "h-3 w-1/3 rounded bg-ods-bg/70" }) }),
5110
- /* @__PURE__ */ jsx37("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx37("span", { className: "h-3 w-11/12 rounded bg-ods-bg/40" }) })
3337
+ /* @__PURE__ */ jsx32("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx32("span", { className: "h-3 w-1/3 rounded bg-ods-bg/70" }) }),
3338
+ /* @__PURE__ */ jsx32("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx32("span", { className: "h-3 w-11/12 rounded bg-ods-bg/40" }) })
5111
3339
  ] })
5112
3340
  ] });
5113
3341
  }
5114
- return /* @__PURE__ */ jsxs24("div", { className: `h-full animate-pulse ${CONTENT_CARD_SKELETON_FRAME_CLASS}`, children: [
5115
- /* @__PURE__ */ jsx37("div", { className: "aspect-[1200/630] bg-ods-border" }),
5116
- /* @__PURE__ */ jsxs24("div", { className: "space-y-3 p-4", children: [
5117
- /* @__PURE__ */ jsx37("div", { className: "h-5 w-3/4 rounded bg-ods-border" }),
5118
- /* @__PURE__ */ jsx37("div", { className: "h-3 w-full rounded bg-ods-border" }),
5119
- /* @__PURE__ */ jsx37("div", { className: "h-3 w-4/5 rounded bg-ods-border" }),
5120
- /* @__PURE__ */ jsx37("div", { className: "h-4 w-1/3 rounded bg-ods-border" })
3342
+ return /* @__PURE__ */ jsxs22("div", { className: `h-full animate-pulse ${CONTENT_CARD_SKELETON_FRAME_CLASS}`, children: [
3343
+ /* @__PURE__ */ jsx32("div", { className: "aspect-[1200/630] bg-ods-border" }),
3344
+ /* @__PURE__ */ jsxs22("div", { className: "space-y-3 p-4", children: [
3345
+ /* @__PURE__ */ jsx32("div", { className: "h-5 w-3/4 rounded bg-ods-border" }),
3346
+ /* @__PURE__ */ jsx32("div", { className: "h-3 w-full rounded bg-ods-border" }),
3347
+ /* @__PURE__ */ jsx32("div", { className: "h-3 w-4/5 rounded bg-ods-border" }),
3348
+ /* @__PURE__ */ jsx32("div", { className: "h-4 w-1/3 rounded bg-ods-border" })
5121
3349
  ] })
5122
3350
  ] });
5123
3351
  }
@@ -5146,8 +3374,8 @@ function InvestorUpdateCard({
5146
3374
  const coverImage = update.featured_image || placeholderUrl || null;
5147
3375
  if (size2 === "sm") {
5148
3376
  const periodText = formatInvestorUpdatePeriod(update.period_start, update.period_end);
5149
- return /* @__PURE__ */ jsxs24("a", { href, target, rel, className: `${COMPACT_CARD_OUTER} ${className ?? ""}`, children: [
5150
- /* @__PURE__ */ jsx37("span", { className: COMPACT_CARD_IMAGE_SLOT, children: coverImage ? /* @__PURE__ */ jsx37(
3377
+ return /* @__PURE__ */ jsxs22("a", { href, target, rel, className: `${COMPACT_CARD_OUTER} ${className ?? ""}`, children: [
3378
+ /* @__PURE__ */ jsx32("span", { className: COMPACT_CARD_IMAGE_SLOT, children: coverImage ? /* @__PURE__ */ jsx32(
5151
3379
  next_image_default,
5152
3380
  {
5153
3381
  src: coverImage,
@@ -5161,23 +3389,23 @@ function InvestorUpdateCard({
5161
3389
  img.style.display = "none";
5162
3390
  }
5163
3391
  }
5164
- ) : /* @__PURE__ */ jsx37("span", { className: "flex h-full w-full items-center justify-center text-ods-accent", children: /* @__PURE__ */ jsx37(Calendar2, { className: "h-4 w-4" }) }) }),
5165
- /* @__PURE__ */ jsxs24("span", { className: COMPACT_CARD_TEXT_COL, children: [
5166
- /* @__PURE__ */ jsxs24("span", { className: `${COMPACT_CARD_TITLE_ROW} gap-2`, children: [
5167
- /* @__PURE__ */ jsx37("span", { className: `${COMPACT_CARD_TITLE} min-w-0`, children: update.title || `Update #${update.update_number ?? "?"}` }),
5168
- update.update_number ? /* @__PURE__ */ jsxs24("span", { className: "shrink-0 rounded bg-ods-accent/10 px-1.5 py-0.5 text-ods-accent text-h6", children: [
3392
+ ) : /* @__PURE__ */ jsx32("span", { className: "flex h-full w-full items-center justify-center text-ods-accent", children: /* @__PURE__ */ jsx32(Calendar, { className: "h-4 w-4" }) }) }),
3393
+ /* @__PURE__ */ jsxs22("span", { className: COMPACT_CARD_TEXT_COL, children: [
3394
+ /* @__PURE__ */ jsxs22("span", { className: `${COMPACT_CARD_TITLE_ROW} gap-2`, children: [
3395
+ /* @__PURE__ */ jsx32("span", { className: `${COMPACT_CARD_TITLE} min-w-0`, children: update.title || `Update #${update.update_number ?? "?"}` }),
3396
+ update.update_number ? /* @__PURE__ */ jsxs22("span", { className: "shrink-0 rounded bg-ods-accent/10 px-1.5 py-0.5 text-ods-accent text-h6", children: [
5169
3397
  "#",
5170
3398
  update.update_number
5171
3399
  ] }) : null
5172
3400
  ] }),
5173
- /* @__PURE__ */ jsx37("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx37("span", { className: COMPACT_CARD_SUBTITLE, children: periodText || "Investor update" }) }),
5174
- /* @__PURE__ */ jsx37("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx37("span", { className: COMPACT_CARD_SUMMARY, children: (update.strategic_update || update.content || "").slice(0, 120) || COMPACT_CARD_ROW_FILLER }) })
3401
+ /* @__PURE__ */ jsx32("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx32("span", { className: COMPACT_CARD_SUBTITLE, children: periodText || "Investor update" }) }),
3402
+ /* @__PURE__ */ jsx32("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx32("span", { className: COMPACT_CARD_SUMMARY, children: (update.strategic_update || update.content || "").slice(0, 120) || COMPACT_CARD_ROW_FILLER }) })
5175
3403
  ] })
5176
3404
  ] });
5177
3405
  }
5178
3406
  if (size2 === "portrait") {
5179
3407
  const periodText = formatInvestorUpdatePeriod(update.period_start, update.period_end);
5180
- return /* @__PURE__ */ jsx37(
3408
+ return /* @__PURE__ */ jsx32(
5181
3409
  EntityPortraitCard,
5182
3410
  {
5183
3411
  href,
@@ -5193,28 +3421,28 @@ function InvestorUpdateCard({
5193
3421
  }
5194
3422
  );
5195
3423
  }
5196
- return /* @__PURE__ */ jsx37("a", { href, target, rel, className: `block h-full ${className ?? ""}`, children: /* @__PURE__ */ jsx37(
3424
+ return /* @__PURE__ */ jsx32("a", { href, target, rel, className: `block h-full ${className ?? ""}`, children: /* @__PURE__ */ jsx32(
5197
3425
  AdminContentCard,
5198
3426
  {
5199
3427
  imageUrl: update.featured_image,
5200
3428
  placeholderUrl,
5201
3429
  title: update.title || `Update #${update.update_number || "?"}`,
5202
3430
  summary: update.strategic_update?.slice(0, 120) || update.content?.slice(0, 120) || "No description",
5203
- badges: update.update_number ? /* @__PURE__ */ jsxs24("span", { className: "rounded bg-ods-accent/10 px-2 py-0.5 text-xs font-medium text-ods-accent", children: [
3431
+ badges: update.update_number ? /* @__PURE__ */ jsxs22("span", { className: "rounded bg-ods-accent/10 px-2 py-0.5 text-xs font-medium text-ods-accent", children: [
5204
3432
  "#",
5205
3433
  update.update_number
5206
3434
  ] }) : void 0,
5207
- meta: update.period_start || update.period_end ? /* @__PURE__ */ jsxs24("div", { className: "flex items-center gap-1", children: [
5208
- /* @__PURE__ */ jsx37(Calendar2, { className: "h-3 w-3" }),
5209
- /* @__PURE__ */ jsx37("span", { children: formatInvestorUpdatePeriod(update.period_start, update.period_end) })
3435
+ meta: update.period_start || update.period_end ? /* @__PURE__ */ jsxs22("div", { className: "flex items-center gap-1", children: [
3436
+ /* @__PURE__ */ jsx32(Calendar, { className: "h-3 w-3" }),
3437
+ /* @__PURE__ */ jsx32("span", { children: formatInvestorUpdatePeriod(update.period_start, update.period_end) })
5210
3438
  ] }) : void 0
5211
3439
  }
5212
3440
  ) });
5213
3441
  }
5214
3442
 
5215
3443
  // src/components/chat/entity-cards/onboarding-guide-card.tsx
5216
- import { Clock, ExternalLink, GraduationCap as GraduationCap2 } from "lucide-react";
5217
- import { jsx as jsx38, jsxs as jsxs25 } from "react/jsx-runtime";
3444
+ import { Clock, ExternalLink, GraduationCap } from "lucide-react";
3445
+ import { jsx as jsx33, jsxs as jsxs23 } from "react/jsx-runtime";
5218
3446
  function stripMarkdownPreview(text) {
5219
3447
  return text.replace(/```[\s\S]*?```/g, " ").replace(/^#{1,6}\s+/gm, "").replace(/!?\[([^\]]*)\]\([^)]*\)/g, "$1").replace(/[*_~`>]/g, "").replace(/^\s*[-+]\s+/gm, "").replace(/-{3,}/g, " ").replace(/\s+/g, " ").trim().replace(/^([\s\S]{240})[\s\S]+$/, "$1\u2026");
5220
3448
  }
@@ -5228,64 +3456,64 @@ var HORIZONTAL_SIZE_TOKENS = {
5228
3456
  };
5229
3457
  function OnboardingGuideCardSkeleton({ size: size2 = "default" }) {
5230
3458
  if (size2 === "catalog") {
5231
- return /* @__PURE__ */ jsxs25("div", { className: cn(CONTENT_CARD_SKELETON_FRAME_CLASS, "flex animate-pulse flex-col gap-4 p-6"), children: [
5232
- /* @__PURE__ */ jsxs25("div", { className: "flex flex-col gap-4 md:flex-row md:gap-6", children: [
5233
- /* @__PURE__ */ jsx38("div", { className: "aspect-[1200/630] w-full flex-shrink-0 rounded-lg bg-ods-border md:w-[256px]" }),
5234
- /* @__PURE__ */ jsxs25("div", { className: "flex min-w-0 flex-1 flex-col", children: [
5235
- /* @__PURE__ */ jsxs25("div", { className: "mb-3 flex min-h-[60px] flex-col justify-start gap-1.5 md:min-h-[72px]", children: [
5236
- /* @__PURE__ */ jsx38("div", { className: "h-[25px] w-3/4 rounded bg-ods-border md:h-[30px]" }),
5237
- /* @__PURE__ */ jsx38("div", { className: "h-[25px] w-1/2 rounded bg-ods-border md:h-[30px]" })
3459
+ return /* @__PURE__ */ jsxs23("div", { className: cn(CONTENT_CARD_SKELETON_FRAME_CLASS, "flex animate-pulse flex-col gap-4 p-6"), children: [
3460
+ /* @__PURE__ */ jsxs23("div", { className: "flex flex-col gap-4 md:flex-row md:gap-6", children: [
3461
+ /* @__PURE__ */ jsx33("div", { className: "aspect-[1200/630] w-full flex-shrink-0 rounded-lg bg-ods-border md:w-[256px]" }),
3462
+ /* @__PURE__ */ jsxs23("div", { className: "flex min-w-0 flex-1 flex-col", children: [
3463
+ /* @__PURE__ */ jsxs23("div", { className: "mb-3 flex min-h-[60px] flex-col justify-start gap-1.5 md:min-h-[72px]", children: [
3464
+ /* @__PURE__ */ jsx33("div", { className: "h-[25px] w-3/4 rounded bg-ods-border md:h-[30px]" }),
3465
+ /* @__PURE__ */ jsx33("div", { className: "h-[25px] w-1/2 rounded bg-ods-border md:h-[30px]" })
5238
3466
  ] }),
5239
- /* @__PURE__ */ jsxs25("div", { className: "flex min-h-[46px] flex-col justify-start gap-2 md:min-h-[52px]", children: [
5240
- /* @__PURE__ */ jsx38("div", { className: "h-3 w-full rounded bg-ods-border/70" }),
5241
- /* @__PURE__ */ jsx38("div", { className: "h-3 w-5/6 rounded bg-ods-border/70" })
3467
+ /* @__PURE__ */ jsxs23("div", { className: "flex min-h-[46px] flex-col justify-start gap-2 md:min-h-[52px]", children: [
3468
+ /* @__PURE__ */ jsx33("div", { className: "h-3 w-full rounded bg-ods-border/70" }),
3469
+ /* @__PURE__ */ jsx33("div", { className: "h-3 w-5/6 rounded bg-ods-border/70" })
5242
3470
  ] })
5243
3471
  ] })
5244
3472
  ] }),
5245
- /* @__PURE__ */ jsxs25("div", { className: "grid w-full grid-cols-1 overflow-hidden rounded-md border border-ods-border md:grid-cols-3", children: [
5246
- [0, 1].map((i) => /* @__PURE__ */ jsx38(
3473
+ /* @__PURE__ */ jsxs23("div", { className: "grid w-full grid-cols-1 overflow-hidden rounded-md border border-ods-border md:grid-cols-3", children: [
3474
+ [0, 1].map((i) => /* @__PURE__ */ jsx33(
5247
3475
  "div",
5248
3476
  {
5249
3477
  className: "flex flex-col gap-3 border-b border-ods-border p-4 md:border-b-0 md:border-r",
5250
- children: /* @__PURE__ */ jsxs25("div", { className: "flex flex-col gap-2", children: [
5251
- /* @__PURE__ */ jsx38("div", { className: "h-6 w-32 rounded bg-ods-border" }),
5252
- /* @__PURE__ */ jsx38("div", { className: "h-3 w-20 rounded bg-ods-border" })
3478
+ children: /* @__PURE__ */ jsxs23("div", { className: "flex flex-col gap-2", children: [
3479
+ /* @__PURE__ */ jsx33("div", { className: "h-6 w-32 rounded bg-ods-border" }),
3480
+ /* @__PURE__ */ jsx33("div", { className: "h-3 w-20 rounded bg-ods-border" })
5253
3481
  ] })
5254
3482
  },
5255
3483
  `cell-${i}`
5256
3484
  )),
5257
- /* @__PURE__ */ jsxs25("div", { className: "flex items-center gap-3 p-4", children: [
5258
- /* @__PURE__ */ jsx38("div", { className: "h-10 w-10 shrink-0 rounded-full bg-ods-border" }),
5259
- /* @__PURE__ */ jsxs25("div", { className: "flex min-w-0 flex-1 flex-col gap-2", children: [
5260
- /* @__PURE__ */ jsx38("div", { className: "h-4 w-3/4 rounded bg-ods-border" }),
5261
- /* @__PURE__ */ jsx38("div", { className: "h-3 w-1/2 rounded bg-ods-border" })
3485
+ /* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-3 p-4", children: [
3486
+ /* @__PURE__ */ jsx33("div", { className: "h-10 w-10 shrink-0 rounded-full bg-ods-border" }),
3487
+ /* @__PURE__ */ jsxs23("div", { className: "flex min-w-0 flex-1 flex-col gap-2", children: [
3488
+ /* @__PURE__ */ jsx33("div", { className: "h-4 w-3/4 rounded bg-ods-border" }),
3489
+ /* @__PURE__ */ jsx33("div", { className: "h-3 w-1/2 rounded bg-ods-border" })
5262
3490
  ] })
5263
3491
  ] })
5264
3492
  ] })
5265
3493
  ] });
5266
3494
  }
5267
3495
  if (size2 === "sm") {
5268
- return /* @__PURE__ */ jsxs25("span", { className: COMPACT_CARD_SKELETON_OUTER, children: [
5269
- /* @__PURE__ */ jsx38("span", { className: COMPACT_CARD_SKELETON_IMAGE_SLOT }),
5270
- /* @__PURE__ */ jsxs25("span", { className: COMPACT_CARD_TEXT_COL, children: [
5271
- /* @__PURE__ */ jsx38("span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ jsx38("span", { className: "h-3.5 w-3/5 rounded bg-ods-bg" }) }),
5272
- /* @__PURE__ */ jsx38("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx38("span", { className: "h-3 w-2/5 rounded bg-ods-bg/70" }) }),
5273
- /* @__PURE__ */ jsx38("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx38("span", { className: "h-3 w-11/12 rounded bg-ods-bg/40" }) })
3496
+ return /* @__PURE__ */ jsxs23("span", { className: COMPACT_CARD_SKELETON_OUTER, children: [
3497
+ /* @__PURE__ */ jsx33("span", { className: COMPACT_CARD_SKELETON_IMAGE_SLOT }),
3498
+ /* @__PURE__ */ jsxs23("span", { className: COMPACT_CARD_TEXT_COL, children: [
3499
+ /* @__PURE__ */ jsx33("span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ jsx33("span", { className: "h-3.5 w-3/5 rounded bg-ods-bg" }) }),
3500
+ /* @__PURE__ */ jsx33("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx33("span", { className: "h-3 w-2/5 rounded bg-ods-bg/70" }) }),
3501
+ /* @__PURE__ */ jsx33("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx33("span", { className: "h-3 w-11/12 rounded bg-ods-bg/40" }) })
5274
3502
  ] }),
5275
- /* @__PURE__ */ jsx38("span", { className: "flex h-5 shrink-0 items-center self-start", children: /* @__PURE__ */ jsx38("span", { className: "h-3.5 w-3.5 rounded bg-ods-bg" }) })
3503
+ /* @__PURE__ */ jsx33("span", { className: "flex h-5 shrink-0 items-center self-start", children: /* @__PURE__ */ jsx33("span", { className: "h-3.5 w-3.5 rounded bg-ods-bg" }) })
5276
3504
  ] });
5277
3505
  }
5278
3506
  const t = HORIZONTAL_SIZE_TOKENS.default;
5279
- return /* @__PURE__ */ jsxs25(
3507
+ return /* @__PURE__ */ jsxs23(
5280
3508
  "span",
5281
3509
  {
5282
3510
  className: `flex items-start gap-3 rounded-md border border-ods-border bg-ods-card ${t.padding} animate-pulse`,
5283
3511
  children: [
5284
- /* @__PURE__ */ jsx38("span", { className: `inline-flex shrink-0 items-center justify-center rounded-full bg-ods-bg ${t.step}` }),
5285
- /* @__PURE__ */ jsxs25("span", { className: "flex min-w-0 flex-1 flex-col gap-2", children: [
5286
- /* @__PURE__ */ jsx38("span", { className: "block h-4 w-2/3 rounded bg-ods-bg" }),
5287
- /* @__PURE__ */ jsx38("span", { className: "block h-3 w-1/3 rounded bg-ods-bg/70" }),
5288
- /* @__PURE__ */ jsx38("span", { className: "block h-3 w-full rounded bg-ods-bg/40" })
3512
+ /* @__PURE__ */ jsx33("span", { className: `inline-flex shrink-0 items-center justify-center rounded-full bg-ods-bg ${t.step}` }),
3513
+ /* @__PURE__ */ jsxs23("span", { className: "flex min-w-0 flex-1 flex-col gap-2", children: [
3514
+ /* @__PURE__ */ jsx33("span", { className: "block h-4 w-2/3 rounded bg-ods-bg" }),
3515
+ /* @__PURE__ */ jsx33("span", { className: "block h-3 w-1/3 rounded bg-ods-bg/70" }),
3516
+ /* @__PURE__ */ jsx33("span", { className: "block h-3 w-full rounded bg-ods-bg/40" })
5289
3517
  ] })
5290
3518
  ]
5291
3519
  }
@@ -5315,7 +3543,7 @@ function OnboardingGuideCard({
5315
3543
  });
5316
3544
  if (size2 === "portrait") {
5317
3545
  const coverImage = guide.featured_image || guide.main_video_thumbnail || guide.og_image_url || null;
5318
- return /* @__PURE__ */ jsx38(
3546
+ return /* @__PURE__ */ jsx33(
5319
3547
  EntityPortraitCard,
5320
3548
  {
5321
3549
  href,
@@ -5336,7 +3564,7 @@ function OnboardingGuideCard({
5336
3564
  const hasVideoCover = !!(guide.main_video_thumbnail || guide.highlight_video_thumbnail);
5337
3565
  const stepLabel = typeof guide.step_order === "number" ? String(guide.step_order).padStart(2, "0") : "\u2014";
5338
3566
  const durationLabel = typeof guide.highlight_video_duration_ms === "number" && guide.highlight_video_duration_ms > 0 ? formatDurationMMSS(Math.floor(guide.highlight_video_duration_ms / 1e3)) : "";
5339
- return /* @__PURE__ */ jsx38(
3567
+ return /* @__PURE__ */ jsx33(
5340
3568
  next_link_default,
5341
3569
  {
5342
3570
  href,
@@ -5345,10 +3573,10 @@ function OnboardingGuideCard({
5345
3573
  prefetch: false,
5346
3574
  className: cn(CONTENT_CARD_FRAME_CLASS, "block no-underline", className),
5347
3575
  "aria-label": `Open ${guide.title}`,
5348
- children: /* @__PURE__ */ jsxs25("div", { className: "flex flex-col gap-4 p-6", children: [
5349
- /* @__PURE__ */ jsxs25("div", { className: "flex flex-col gap-4 md:flex-row md:gap-6", children: [
5350
- /* @__PURE__ */ jsx38("div", { className: "w-full flex-shrink-0 md:w-[256px]", children: /* @__PURE__ */ jsxs25("div", { className: "relative aspect-[1200/630] w-full overflow-hidden rounded-lg bg-ods-bg", children: [
5351
- coverImage ? /* @__PURE__ */ jsx38(
3576
+ children: /* @__PURE__ */ jsxs23("div", { className: "flex flex-col gap-4 p-6", children: [
3577
+ /* @__PURE__ */ jsxs23("div", { className: "flex flex-col gap-4 md:flex-row md:gap-6", children: [
3578
+ /* @__PURE__ */ jsx33("div", { className: "w-full flex-shrink-0 md:w-[256px]", children: /* @__PURE__ */ jsxs23("div", { className: "relative aspect-[1200/630] w-full overflow-hidden rounded-lg bg-ods-bg", children: [
3579
+ coverImage ? /* @__PURE__ */ jsx33(
5352
3580
  next_image_default,
5353
3581
  {
5354
3582
  src: coverImage,
@@ -5358,7 +3586,7 @@ function OnboardingGuideCard({
5358
3586
  className: "object-cover",
5359
3587
  unoptimized: true
5360
3588
  }
5361
- ) : /* @__PURE__ */ jsx38(
3589
+ ) : /* @__PURE__ */ jsx33(
5362
3590
  BlogImagePlaceholder,
5363
3591
  {
5364
3592
  title: guide.title,
@@ -5366,18 +3594,18 @@ function OnboardingGuideCard({
5366
3594
  className: "absolute inset-0"
5367
3595
  }
5368
3596
  ),
5369
- hasVideoCover && coverImage && /* @__PURE__ */ jsx38(CardHoverPlay, { size: "md" }),
5370
- durationLabel && /* @__PURE__ */ jsxs25("span", { className: "absolute bottom-2 right-2 inline-flex items-center gap-1 rounded bg-black/60 px-2 py-1 text-ods-text-on-dark text-code", children: [
5371
- /* @__PURE__ */ jsx38(Clock, { className: "h-3 w-3" }),
3597
+ hasVideoCover && coverImage && /* @__PURE__ */ jsx33(CardHoverPlay, { size: "md" }),
3598
+ durationLabel && /* @__PURE__ */ jsxs23("span", { className: "absolute bottom-2 right-2 inline-flex items-center gap-1 rounded bg-black/60 px-2 py-1 text-ods-text-on-dark text-code", children: [
3599
+ /* @__PURE__ */ jsx33(Clock, { className: "h-3 w-3" }),
5372
3600
  durationLabel
5373
3601
  ] })
5374
3602
  ] }) }),
5375
- /* @__PURE__ */ jsxs25("div", { className: "flex min-w-0 flex-1 flex-col", children: [
5376
- /* @__PURE__ */ jsx38("div", { className: "mb-3 flex min-h-[60px] items-start md:min-h-[72px]", children: /* @__PURE__ */ jsx38("h3", { className: "line-clamp-2 text-ods-text-primary text-h2", children: guide.title }) }),
5377
- /* @__PURE__ */ jsx38("div", { className: "min-h-[46px] md:min-h-[52px]", children: /* @__PURE__ */ jsx38("p", { className: "line-clamp-2 text-ods-text-secondary text-h6", children: stripMarkdownPreview(guide.video_summary || guide.content || "") }) })
3603
+ /* @__PURE__ */ jsxs23("div", { className: "flex min-w-0 flex-1 flex-col", children: [
3604
+ /* @__PURE__ */ jsx33("div", { className: "mb-3 flex min-h-[60px] items-start md:min-h-[72px]", children: /* @__PURE__ */ jsx33("h3", { className: "line-clamp-2 text-ods-text-primary text-h2", children: guide.title }) }),
3605
+ /* @__PURE__ */ jsx33("div", { className: "min-h-[46px] md:min-h-[52px]", children: /* @__PURE__ */ jsx33("p", { className: "line-clamp-2 text-ods-text-secondary text-h6", children: stripMarkdownPreview(guide.video_summary || guide.content || "") }) })
5378
3606
  ] })
5379
3607
  ] }),
5380
- /* @__PURE__ */ jsx38(
3608
+ /* @__PURE__ */ jsx33(
5381
3609
  EntityAuthorCard,
5382
3610
  {
5383
3611
  author: guide.author,
@@ -5405,22 +3633,22 @@ function OnboardingGuideCard({
5405
3633
  const subtitleParts = [`Step ${guide.step_order}`, guide.section, author].filter(
5406
3634
  (s) => typeof s === "string" && s.length > 0
5407
3635
  );
5408
- return /* @__PURE__ */ jsxs25(next_link_default, { href, target, rel, prefetch: false, className: cn(COMPACT_CARD_OUTER, className), children: [
5409
- /* @__PURE__ */ jsxs25("span", { className: COMPACT_CARD_IMAGE_SLOT, children: [
5410
- compactCover ? /* @__PURE__ */ jsx38(next_image_default, { src: compactCover, alt: guide.title, fill: true, sizes: "56px", className: "object-contain", unoptimized: true }) : /* @__PURE__ */ jsx38("span", { className: "flex h-full w-full items-center justify-center text-ods-accent", children: /* @__PURE__ */ jsx38(GraduationCap2, { className: "h-4 w-4" }) }),
5411
- hasVideoCover && compactCover && /* @__PURE__ */ jsx38(CardHoverPlay, { size: "sm" })
3636
+ return /* @__PURE__ */ jsxs23(next_link_default, { href, target, rel, prefetch: false, className: cn(COMPACT_CARD_OUTER, className), children: [
3637
+ /* @__PURE__ */ jsxs23("span", { className: COMPACT_CARD_IMAGE_SLOT, children: [
3638
+ compactCover ? /* @__PURE__ */ jsx33(next_image_default, { src: compactCover, alt: guide.title, fill: true, sizes: "56px", className: "object-contain", unoptimized: true }) : /* @__PURE__ */ jsx33("span", { className: "flex h-full w-full items-center justify-center text-ods-accent", children: /* @__PURE__ */ jsx33(GraduationCap, { className: "h-4 w-4" }) }),
3639
+ hasVideoCover && compactCover && /* @__PURE__ */ jsx33(CardHoverPlay, { size: "sm" })
5412
3640
  ] }),
5413
- /* @__PURE__ */ jsxs25("span", { className: COMPACT_CARD_TEXT_COL, children: [
5414
- /* @__PURE__ */ jsx38("span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ jsx38("span", { className: cn(COMPACT_CARD_TITLE, "font-heading"), children: guide.title }) }),
5415
- /* @__PURE__ */ jsx38("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx38("span", { className: "truncate text-ods-accent text-h6", children: subtitleParts.join(" \xB7 ") }) }),
5416
- /* @__PURE__ */ jsx38("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx38("span", { className: COMPACT_CARD_SUMMARY, children: summary2 || COMPACT_CARD_ROW_FILLER }) })
3641
+ /* @__PURE__ */ jsxs23("span", { className: COMPACT_CARD_TEXT_COL, children: [
3642
+ /* @__PURE__ */ jsx33("span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ jsx33("span", { className: cn(COMPACT_CARD_TITLE, "font-heading"), children: guide.title }) }),
3643
+ /* @__PURE__ */ jsx33("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx33("span", { className: "truncate text-ods-accent text-h6", children: subtitleParts.join(" \xB7 ") }) }),
3644
+ /* @__PURE__ */ jsx33("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx33("span", { className: COMPACT_CARD_SUMMARY, children: summary2 || COMPACT_CARD_ROW_FILLER }) })
5417
3645
  ] }),
5418
- /* @__PURE__ */ jsx38("span", { className: "flex h-5 shrink-0 items-center self-start text-ods-text-secondary", children: /* @__PURE__ */ jsx38(ExternalLink, { className: "h-3.5 w-3.5" }) })
3646
+ /* @__PURE__ */ jsx33("span", { className: "flex h-5 shrink-0 items-center self-start text-ods-text-secondary", children: /* @__PURE__ */ jsx33(ExternalLink, { className: "h-3.5 w-3.5" }) })
5419
3647
  ] });
5420
3648
  }
5421
3649
  const t = HORIZONTAL_SIZE_TOKENS.default;
5422
3650
  const summary = stripMarkdownPreview(guide.video_summary || guide.content || "");
5423
- return /* @__PURE__ */ jsxs25(
3651
+ return /* @__PURE__ */ jsxs23(
5424
3652
  next_link_default,
5425
3653
  {
5426
3654
  href,
@@ -5432,7 +3660,7 @@ function OnboardingGuideCard({
5432
3660
  className
5433
3661
  ),
5434
3662
  children: [
5435
- /* @__PURE__ */ jsx38(
3663
+ /* @__PURE__ */ jsx33(
5436
3664
  "span",
5437
3665
  {
5438
3666
  className: `inline-flex shrink-0 items-center justify-center rounded-full bg-ods-accent/10 font-semibold text-ods-accent ${t.step}`,
@@ -5440,13 +3668,13 @@ function OnboardingGuideCard({
5440
3668
  children: guide.step_order
5441
3669
  }
5442
3670
  ),
5443
- /* @__PURE__ */ jsxs25("span", { className: "flex min-w-0 flex-1 flex-col gap-0.5", children: [
5444
- /* @__PURE__ */ jsx38("span", { className: `block ${t.title} truncate text-ods-text-primary`, children: guide.title }),
5445
- /* @__PURE__ */ jsxs25("span", { className: "inline-flex items-center gap-1 text-ods-text-secondary text-h6", children: [
5446
- /* @__PURE__ */ jsx38(GraduationCap2, { className: "h-3 w-3 shrink-0" }),
5447
- /* @__PURE__ */ jsx38("span", { className: "truncate", children: guide.section })
3671
+ /* @__PURE__ */ jsxs23("span", { className: "flex min-w-0 flex-1 flex-col gap-0.5", children: [
3672
+ /* @__PURE__ */ jsx33("span", { className: `block ${t.title} truncate text-ods-text-primary`, children: guide.title }),
3673
+ /* @__PURE__ */ jsxs23("span", { className: "inline-flex items-center gap-1 text-ods-text-secondary text-h6", children: [
3674
+ /* @__PURE__ */ jsx33(GraduationCap, { className: "h-3 w-3 shrink-0" }),
3675
+ /* @__PURE__ */ jsx33("span", { className: "truncate", children: guide.section })
5448
3676
  ] }),
5449
- summary && /* @__PURE__ */ jsx38("span", { className: `text-ods-text-secondary text-h6 ${t.summaryClamp}`, children: summary })
3677
+ summary && /* @__PURE__ */ jsx33("span", { className: `text-ods-text-secondary text-h6 ${t.summaryClamp}`, children: summary })
5450
3678
  ] })
5451
3679
  ]
5452
3680
  }
@@ -5538,7 +3766,7 @@ function getTaskTypeLabel(customItemId) {
5538
3766
  }
5539
3767
 
5540
3768
  // src/components/chat/entity-cards/roadmap-vote-button.tsx
5541
- import { jsx as jsx39 } from "react/jsx-runtime";
3769
+ import { jsx as jsx34 } from "react/jsx-runtime";
5542
3770
  function RoadmapVoteButton({
5543
3771
  voteType,
5544
3772
  count,
@@ -5550,13 +3778,13 @@ function RoadmapVoteButton({
5550
3778
  className
5551
3779
  }) {
5552
3780
  const Icon = voteType === "up" ? ThumbsUpIcon : ThumbsDownIcon;
5553
- return /* @__PURE__ */ jsx39(
3781
+ return /* @__PURE__ */ jsx34(
5554
3782
  Button,
5555
3783
  {
5556
3784
  variant: "outline",
5557
3785
  onClick,
5558
3786
  disabled,
5559
- leftIcon: /* @__PURE__ */ jsx39(Icon, { className: "h-5 w-5", color }),
3787
+ leftIcon: /* @__PURE__ */ jsx34(Icon, { className: "h-5 w-5", color }),
5560
3788
  className: cn(
5561
3789
  className,
5562
3790
  "flex h-full items-center justify-center gap-[2px] border-0 border-ods-border bg-ods-bg p-[12px]",
@@ -5564,7 +3792,7 @@ function RoadmapVoteButton({
5564
3792
  "transition-all hover:bg-ods-border",
5565
3793
  isActive && "bg-ods-border"
5566
3794
  ),
5567
- children: showCount && /* @__PURE__ */ jsx39("span", { className: "text-h6", children: count })
3795
+ children: showCount && /* @__PURE__ */ jsx34("span", { className: "text-h6", children: count })
5568
3796
  }
5569
3797
  );
5570
3798
  }
@@ -5574,18 +3802,18 @@ import {
5574
3802
  Bug,
5575
3803
  Inbox,
5576
3804
  Sparkles as Sparkles2,
5577
- BookOpen as BookOpen2,
3805
+ BookOpen,
5578
3806
  Trophy,
5579
3807
  Component,
5580
3808
  Flag,
5581
3809
  Goal,
5582
3810
  ListTodo,
5583
- CheckSquare as CheckSquare2,
5584
- FileText as FileText2,
3811
+ CheckSquare,
3812
+ FileText,
5585
3813
  Repeat,
5586
3814
  Compass
5587
3815
  } from "lucide-react";
5588
- import { jsx as jsx40 } from "react/jsx-runtime";
3816
+ import { jsx as jsx35 } from "react/jsx-runtime";
5589
3817
  function iconFor(customItemId) {
5590
3818
  switch (customItemId) {
5591
3819
  case CUSTOM_ITEM_ID.BUG:
@@ -5595,7 +3823,7 @@ function iconFor(customItemId) {
5595
3823
  case CUSTOM_ITEM_ID.FEATURE:
5596
3824
  return Sparkles2;
5597
3825
  case CUSTOM_ITEM_ID.STORY:
5598
- return BookOpen2;
3826
+ return BookOpen;
5599
3827
  case CUSTOM_ITEM_ID.EPIC:
5600
3828
  return Trophy;
5601
3829
  case CUSTOM_ITEM_ID.COMPONENT:
@@ -5607,7 +3835,7 @@ function iconFor(customItemId) {
5607
3835
  case CUSTOM_ITEM_ID.SUBTASK:
5608
3836
  return ListTodo;
5609
3837
  case CUSTOM_ITEM_ID.FORM:
5610
- return FileText2;
3838
+ return FileText;
5611
3839
  case CUSTOM_ITEM_ID.RECURRING:
5612
3840
  return Repeat;
5613
3841
  case CUSTOM_ITEM_ID.PLAN:
@@ -5616,37 +3844,37 @@ function iconFor(customItemId) {
5616
3844
  return Compass;
5617
3845
  case CUSTOM_ITEM_ID.TASK:
5618
3846
  default:
5619
- return CheckSquare2;
3847
+ return CheckSquare;
5620
3848
  }
5621
3849
  }
5622
3850
  function TaskTypeIcon({ customItemId, className = "h-5 w-5" }) {
5623
3851
  const Icon = iconFor(customItemId);
5624
- return /* @__PURE__ */ jsx40(Icon, { className, "aria-hidden": "true" });
3852
+ return /* @__PURE__ */ jsx35(Icon, { className, "aria-hidden": "true" });
5625
3853
  }
5626
3854
 
5627
3855
  // src/components/chat/entity-cards/roadmap-card.tsx
5628
3856
  import { ThumbsUp, ThumbsDown } from "lucide-react";
5629
- import { useState as useState9 } from "react";
5630
- import { Fragment as Fragment13, jsx as jsx41, jsxs as jsxs26 } from "react/jsx-runtime";
3857
+ import { useState as useState6 } from "react";
3858
+ import { Fragment as Fragment11, jsx as jsx36, jsxs as jsxs24 } from "react/jsx-runtime";
5631
3859
  function RoadmapCardSkeleton({ size: size2 = "default" }) {
5632
3860
  if (size2 === "sm") {
5633
- return /* @__PURE__ */ jsxs26("span", { className: COMPACT_CARD_SKELETON_OUTER, children: [
5634
- /* @__PURE__ */ jsx41("span", { className: "block aspect-square h-12 w-12 shrink-0 self-start rounded-md border border-ods-border bg-ods-bg p-1.5" }),
5635
- /* @__PURE__ */ jsxs26("span", { className: COMPACT_CARD_TEXT_COL, children: [
5636
- /* @__PURE__ */ jsxs26("span", { className: `${COMPACT_CARD_TITLE_ROW} flex-nowrap gap-2`, children: [
5637
- /* @__PURE__ */ jsx41("span", { className: "h-3.5 w-1/2 rounded bg-ods-bg" }),
5638
- /* @__PURE__ */ jsx41("span", { className: "h-4 w-12 shrink-0 rounded bg-ods-bg/70" })
3861
+ return /* @__PURE__ */ jsxs24("span", { className: COMPACT_CARD_SKELETON_OUTER, children: [
3862
+ /* @__PURE__ */ jsx36("span", { className: "block aspect-square h-12 w-12 shrink-0 self-start rounded-md border border-ods-border bg-ods-bg p-1.5" }),
3863
+ /* @__PURE__ */ jsxs24("span", { className: COMPACT_CARD_TEXT_COL, children: [
3864
+ /* @__PURE__ */ jsxs24("span", { className: `${COMPACT_CARD_TITLE_ROW} flex-nowrap gap-2`, children: [
3865
+ /* @__PURE__ */ jsx36("span", { className: "h-3.5 w-1/2 rounded bg-ods-bg" }),
3866
+ /* @__PURE__ */ jsx36("span", { className: "h-4 w-12 shrink-0 rounded bg-ods-bg/70" })
5639
3867
  ] }),
5640
- /* @__PURE__ */ jsxs26("span", { className: `${COMPACT_CARD_META_ROW_BOX} flex-nowrap gap-2`, children: [
5641
- /* @__PURE__ */ jsx41("span", { className: "h-3 w-2/5 flex-1 rounded bg-ods-bg/60" }),
5642
- /* @__PURE__ */ jsx41("span", { className: "h-3 w-10 shrink-0 rounded bg-ods-bg/40" }),
5643
- /* @__PURE__ */ jsx41("span", { className: "h-6 w-14 shrink-0 rounded-full bg-ods-bg/40" })
3868
+ /* @__PURE__ */ jsxs24("span", { className: `${COMPACT_CARD_META_ROW_BOX} flex-nowrap gap-2`, children: [
3869
+ /* @__PURE__ */ jsx36("span", { className: "h-3 w-2/5 flex-1 rounded bg-ods-bg/60" }),
3870
+ /* @__PURE__ */ jsx36("span", { className: "h-3 w-10 shrink-0 rounded bg-ods-bg/40" }),
3871
+ /* @__PURE__ */ jsx36("span", { className: "h-6 w-14 shrink-0 rounded-full bg-ods-bg/40" })
5644
3872
  ] }),
5645
- /* @__PURE__ */ jsx41("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx41("span", { className: "h-3 w-5/6 rounded bg-ods-bg/40" }) })
3873
+ /* @__PURE__ */ jsx36("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx36("span", { className: "h-3 w-5/6 rounded bg-ods-bg/40" }) })
5646
3874
  ] })
5647
3875
  ] });
5648
3876
  }
5649
- return /* @__PURE__ */ jsxs26(
3877
+ return /* @__PURE__ */ jsxs24(
5650
3878
  "div",
5651
3879
  {
5652
3880
  className: cn(
@@ -5654,25 +3882,25 @@ function RoadmapCardSkeleton({ size: size2 = "default" }) {
5654
3882
  "flex h-full animate-pulse flex-col gap-4 p-[var(--spacing-system-lf)]"
5655
3883
  ),
5656
3884
  children: [
5657
- /* @__PURE__ */ jsxs26("div", { className: "flex items-center gap-4", children: [
5658
- /* @__PURE__ */ jsx41("div", { className: "h-16 w-16 flex-shrink-0 rounded-lg bg-ods-border" }),
5659
- /* @__PURE__ */ jsxs26("div", { className: "flex-1 space-y-2", children: [
5660
- /* @__PURE__ */ jsx41("div", { className: "h-5 w-3/4 rounded bg-ods-border" }),
5661
- /* @__PURE__ */ jsx41("div", { className: "h-3 w-1/2 rounded bg-ods-border" })
3885
+ /* @__PURE__ */ jsxs24("div", { className: "flex items-center gap-4", children: [
3886
+ /* @__PURE__ */ jsx36("div", { className: "h-16 w-16 flex-shrink-0 rounded-lg bg-ods-border" }),
3887
+ /* @__PURE__ */ jsxs24("div", { className: "flex-1 space-y-2", children: [
3888
+ /* @__PURE__ */ jsx36("div", { className: "h-5 w-3/4 rounded bg-ods-border" }),
3889
+ /* @__PURE__ */ jsx36("div", { className: "h-3 w-1/2 rounded bg-ods-border" })
5662
3890
  ] }),
5663
- /* @__PURE__ */ jsx41("div", { className: "h-6 w-16 rounded bg-ods-border" })
3891
+ /* @__PURE__ */ jsx36("div", { className: "h-6 w-16 rounded bg-ods-border" })
5664
3892
  ] }),
5665
- /* @__PURE__ */ jsxs26("div", { className: "space-y-2", children: [
5666
- /* @__PURE__ */ jsx41("div", { className: "h-3 w-full rounded bg-ods-border" }),
5667
- /* @__PURE__ */ jsx41("div", { className: "h-3 w-5/6 rounded bg-ods-border" }),
5668
- /* @__PURE__ */ jsx41("div", { className: "h-3 w-4/5 rounded bg-ods-border" })
3893
+ /* @__PURE__ */ jsxs24("div", { className: "space-y-2", children: [
3894
+ /* @__PURE__ */ jsx36("div", { className: "h-3 w-full rounded bg-ods-border" }),
3895
+ /* @__PURE__ */ jsx36("div", { className: "h-3 w-5/6 rounded bg-ods-border" }),
3896
+ /* @__PURE__ */ jsx36("div", { className: "h-3 w-4/5 rounded bg-ods-border" })
5669
3897
  ] }),
5670
- /* @__PURE__ */ jsx41("div", { className: "flex-1" }),
5671
- /* @__PURE__ */ jsxs26("div", { className: "flex items-center justify-between", children: [
5672
- /* @__PURE__ */ jsx41("div", { className: "h-12 w-32 rounded bg-ods-border" }),
5673
- /* @__PURE__ */ jsxs26("div", { className: "flex items-center gap-2", children: [
5674
- /* @__PURE__ */ jsx41("div", { className: "h-6 w-14 rounded-full bg-ods-border" }),
5675
- /* @__PURE__ */ jsx41("div", { className: "h-8 w-20 rounded bg-ods-border" })
3898
+ /* @__PURE__ */ jsx36("div", { className: "flex-1" }),
3899
+ /* @__PURE__ */ jsxs24("div", { className: "flex items-center justify-between", children: [
3900
+ /* @__PURE__ */ jsx36("div", { className: "h-12 w-32 rounded bg-ods-border" }),
3901
+ /* @__PURE__ */ jsxs24("div", { className: "flex items-center gap-2", children: [
3902
+ /* @__PURE__ */ jsx36("div", { className: "h-6 w-14 rounded-full bg-ods-border" }),
3903
+ /* @__PURE__ */ jsx36("div", { className: "h-8 w-20 rounded bg-ods-border" })
5676
3904
  ] })
5677
3905
  ] })
5678
3906
  ]
@@ -5699,7 +3927,7 @@ function RoadmapCard({
5699
3927
  onVote,
5700
3928
  isVoting = false
5701
3929
  }) {
5702
- const [showScreenshots, setShowScreenshots] = useState9(false);
3930
+ const [showScreenshots, setShowScreenshots] = useState6(false);
5703
3931
  const logoUrl = item.icon && item.icon.startsWith("http") ? item.icon : null;
5704
3932
  const iconSrc = logoUrl ? getProxiedImageUrl(logoUrl, { directHttps: true }) || logoUrl : null;
5705
3933
  if (size2 === "sm") {
@@ -5709,13 +3937,13 @@ function RoadmapCard({
5709
3937
  const hasScreenshots = (item.screenshots?.length ?? 0) > 0;
5710
3938
  const typeLabel = getTaskTypeLabel(item.customItemId);
5711
3939
  const useTypeIcon = cardType === "internal_task" || !iconSrc && item.customItemId != null;
5712
- const body = /* @__PURE__ */ jsxs26(Fragment13, { children: [
5713
- /* @__PURE__ */ jsx41(
3940
+ const body = /* @__PURE__ */ jsxs24(Fragment11, { children: [
3941
+ /* @__PURE__ */ jsx36(
5714
3942
  "span",
5715
3943
  {
5716
3944
  className: "flex aspect-square h-12 w-12 shrink-0 items-center justify-center self-start overflow-hidden rounded-md border border-ods-border bg-ods-bg p-1.5 text-ods-accent",
5717
3945
  title: typeLabel ?? void 0,
5718
- children: useTypeIcon ? /* @__PURE__ */ jsx41(TaskTypeIcon, { customItemId: item.customItemId, className: "h-6 w-6" }) : iconSrc ? /* @__PURE__ */ jsx41(
3946
+ children: useTypeIcon ? /* @__PURE__ */ jsx36(TaskTypeIcon, { customItemId: item.customItemId, className: "h-6 w-6" }) : iconSrc ? /* @__PURE__ */ jsx36(
5719
3947
  next_image_default,
5720
3948
  {
5721
3949
  src: iconSrc,
@@ -5725,13 +3953,13 @@ function RoadmapCard({
5725
3953
  unoptimized: true,
5726
3954
  className: "h-8 w-8 object-contain"
5727
3955
  }
5728
- ) : /* @__PURE__ */ jsx41("span", { className: "uppercase text-ods-text-secondary text-h6", children: item.title?.substring(0, 2) || "??" })
3956
+ ) : /* @__PURE__ */ jsx36("span", { className: "uppercase text-ods-text-secondary text-h6", children: item.title?.substring(0, 2) || "??" })
5729
3957
  }
5730
3958
  ),
5731
- /* @__PURE__ */ jsxs26("span", { className: COMPACT_CARD_TEXT_COL, children: [
5732
- /* @__PURE__ */ jsxs26("span", { className: `${COMPACT_CARD_TITLE_ROW} gap-2`, children: [
5733
- /* @__PURE__ */ jsx41("span", { className: `${COMPACT_CARD_TITLE} min-w-0`, children: item.title }),
5734
- item.status && item.status.trim().length > 0 ? /* @__PURE__ */ jsx41(
3959
+ /* @__PURE__ */ jsxs24("span", { className: COMPACT_CARD_TEXT_COL, children: [
3960
+ /* @__PURE__ */ jsxs24("span", { className: `${COMPACT_CARD_TITLE_ROW} gap-2`, children: [
3961
+ /* @__PURE__ */ jsx36("span", { className: `${COMPACT_CARD_TITLE} min-w-0`, children: item.title }),
3962
+ item.status && item.status.trim().length > 0 ? /* @__PURE__ */ jsx36(
5735
3963
  StatusBadge,
5736
3964
  {
5737
3965
  text: item.status.toUpperCase(),
@@ -5742,8 +3970,8 @@ function RoadmapCard({
5742
3970
  }
5743
3971
  ) : null
5744
3972
  ] }),
5745
- /* @__PURE__ */ jsxs26("span", { className: `${COMPACT_CARD_META_ROW_BOX} gap-2 text-ods-text-secondary`, children: [
5746
- /* @__PURE__ */ jsx41("span", { className: "min-w-0 flex-1 truncate text-h6", children: (() => {
3973
+ /* @__PURE__ */ jsxs24("span", { className: `${COMPACT_CARD_META_ROW_BOX} gap-2 text-ods-text-secondary`, children: [
3974
+ /* @__PURE__ */ jsx36("span", { className: "min-w-0 flex-1 truncate text-h6", children: (() => {
5747
3975
  const parts = [item.quarter, item.targetVersion ? `${item.targetVersion} version` : null].filter(
5748
3976
  Boolean
5749
3977
  );
@@ -5756,39 +3984,39 @@ function RoadmapCard({
5756
3984
  }
5757
3985
  return "Roadmap item";
5758
3986
  })() }),
5759
- hasVotes ? /* @__PURE__ */ jsxs26("span", { className: "hidden shrink-0 items-center gap-2 text-ods-text-secondary text-h6 sm:flex", children: [
5760
- /* @__PURE__ */ jsxs26("span", { className: "flex items-center gap-0.5", children: [
5761
- /* @__PURE__ */ jsx41(ThumbsUp, { className: "h-3 w-3" }),
5762
- /* @__PURE__ */ jsx41("span", { children: item.upvotes ?? 0 })
3987
+ hasVotes ? /* @__PURE__ */ jsxs24("span", { className: "hidden shrink-0 items-center gap-2 text-ods-text-secondary text-h6 sm:flex", children: [
3988
+ /* @__PURE__ */ jsxs24("span", { className: "flex items-center gap-0.5", children: [
3989
+ /* @__PURE__ */ jsx36(ThumbsUp, { className: "h-3 w-3" }),
3990
+ /* @__PURE__ */ jsx36("span", { children: item.upvotes ?? 0 })
5763
3991
  ] }),
5764
- /* @__PURE__ */ jsxs26("span", { className: "flex items-center gap-0.5", children: [
5765
- /* @__PURE__ */ jsx41(ThumbsDown, { className: "h-3 w-3" }),
5766
- /* @__PURE__ */ jsx41("span", { children: item.downvotes ?? 0 })
3992
+ /* @__PURE__ */ jsxs24("span", { className: "flex items-center gap-0.5", children: [
3993
+ /* @__PURE__ */ jsx36(ThumbsDown, { className: "h-3 w-3" }),
3994
+ /* @__PURE__ */ jsx36("span", { children: item.downvotes ?? 0 })
5767
3995
  ] })
5768
3996
  ] }) : null,
5769
- hasFigma ? /* @__PURE__ */ jsx41("span", { className: "hidden shrink-0 items-center sm:flex", title: "Has Figma prototype", children: /* @__PURE__ */ jsx41(FigmaIcon, { className: "h-3 w-3" }) }) : null,
5770
- hasScreenshots ? /* @__PURE__ */ jsxs26(
3997
+ hasFigma ? /* @__PURE__ */ jsx36("span", { className: "hidden shrink-0 items-center sm:flex", title: "Has Figma prototype", children: /* @__PURE__ */ jsx36(FigmaIcon, { className: "h-3 w-3" }) }) : null,
3998
+ hasScreenshots ? /* @__PURE__ */ jsxs24(
5771
3999
  "span",
5772
4000
  {
5773
4001
  className: "hidden shrink-0 items-center gap-0.5 text-h6 sm:flex",
5774
4002
  title: `${item.screenshots.length} screenshot${item.screenshots.length === 1 ? "" : "s"}`,
5775
4003
  children: [
5776
- /* @__PURE__ */ jsx41(ImageIcon, { className: "h-3 w-3" }),
5777
- /* @__PURE__ */ jsx41("span", { children: item.screenshots.length })
4004
+ /* @__PURE__ */ jsx36(ImageIcon, { className: "h-3 w-3" }),
4005
+ /* @__PURE__ */ jsx36("span", { children: item.screenshots.length })
5778
4006
  ]
5779
4007
  }
5780
4008
  ) : null,
5781
- item.assignees && item.assignees.length > 0 ? /* @__PURE__ */ jsx41(AvatarStack, { size: "xs", people: assigneePeople(item.assignees), className: "shrink-0" }) : null
4009
+ item.assignees && item.assignees.length > 0 ? /* @__PURE__ */ jsx36(AvatarStack, { size: "xs", people: assigneePeople(item.assignees), className: "shrink-0" }) : null
5782
4010
  ] }),
5783
- /* @__PURE__ */ jsx41("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx41("span", { className: COMPACT_CARD_SUMMARY, children: item.description || COMPACT_CARD_ROW_FILLER }) })
4011
+ /* @__PURE__ */ jsx36("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx36("span", { className: COMPACT_CARD_SUMMARY, children: item.description || COMPACT_CARD_ROW_FILLER }) })
5784
4012
  ] })
5785
4013
  ] });
5786
4014
  if (!compactHref) {
5787
- return /* @__PURE__ */ jsx41("span", { className: `${COMPACT_CARD_OUTER_STATIC} ${className ?? ""}`, "aria-label": "No link available", children: body });
4015
+ return /* @__PURE__ */ jsx36("span", { className: `${COMPACT_CARD_OUTER_STATIC} ${className ?? ""}`, "aria-label": "No link available", children: body });
5788
4016
  }
5789
- return /* @__PURE__ */ jsx41("a", { href: compactHref, target, rel, className: `${COMPACT_CARD_OUTER} ${className ?? ""}`, children: body });
4017
+ return /* @__PURE__ */ jsx36("a", { href: compactHref, target, rel, className: `${COMPACT_CARD_OUTER} ${className ?? ""}`, children: body });
5790
4018
  }
5791
- return /* @__PURE__ */ jsxs26(
4019
+ return /* @__PURE__ */ jsxs24(
5792
4020
  "div",
5793
4021
  {
5794
4022
  id,
@@ -5798,8 +4026,8 @@ function RoadmapCard({
5798
4026
  className
5799
4027
  ),
5800
4028
  children: [
5801
- /* @__PURE__ */ jsxs26("div", { className: "flex w-full items-center gap-[16px]", children: [
5802
- /* @__PURE__ */ jsx41("div", { className: "flex h-16 w-16 flex-shrink-0 items-center justify-center rounded-lg border border-ods-border bg-ods-bg", children: iconSrc ? /* @__PURE__ */ jsx41(
4029
+ /* @__PURE__ */ jsxs24("div", { className: "flex w-full items-center gap-[16px]", children: [
4030
+ /* @__PURE__ */ jsx36("div", { className: "flex h-16 w-16 flex-shrink-0 items-center justify-center rounded-lg border border-ods-border bg-ods-bg", children: iconSrc ? /* @__PURE__ */ jsx36(
5803
4031
  next_image_default,
5804
4032
  {
5805
4033
  src: iconSrc,
@@ -5809,16 +4037,16 @@ function RoadmapCard({
5809
4037
  unoptimized: true,
5810
4038
  className: "object-contain p-1"
5811
4039
  }
5812
- ) : /* @__PURE__ */ jsx41("span", { className: "text-xs font-medium uppercase text-ods-text-secondary", children: item.title?.substring(0, 2) || "??" }) }),
5813
- /* @__PURE__ */ jsxs26("div", { className: "flex min-w-0 flex-1 flex-col", children: [
5814
- /* @__PURE__ */ jsx41("div", { className: "flex min-h-[48px] items-center", children: /* @__PURE__ */ jsx41("h3", { className: "line-clamp-2 flex-1 text-ods-text-primary text-h3", children: item.title }) }),
5815
- /* @__PURE__ */ jsx41("div", { className: "flex min-h-[20px] items-center", children: /* @__PURE__ */ jsxs26("p", { className: "truncate text-ods-text-secondary text-h5", children: [
4040
+ ) : /* @__PURE__ */ jsx36("span", { className: "text-xs font-medium uppercase text-ods-text-secondary", children: item.title?.substring(0, 2) || "??" }) }),
4041
+ /* @__PURE__ */ jsxs24("div", { className: "flex min-w-0 flex-1 flex-col", children: [
4042
+ /* @__PURE__ */ jsx36("div", { className: "flex min-h-[48px] items-center", children: /* @__PURE__ */ jsx36("h3", { className: "line-clamp-2 flex-1 text-ods-text-primary text-h3", children: item.title }) }),
4043
+ /* @__PURE__ */ jsx36("div", { className: "flex min-h-[20px] items-center", children: /* @__PURE__ */ jsxs24("p", { className: "truncate text-ods-text-secondary text-h5", children: [
5816
4044
  item.quarter,
5817
4045
  ", ",
5818
4046
  item.id
5819
4047
  ] }) })
5820
4048
  ] }),
5821
- /* @__PURE__ */ jsx41("div", { className: "hidden md:block", children: /* @__PURE__ */ jsx41(
4049
+ /* @__PURE__ */ jsx36("div", { className: "hidden md:block", children: /* @__PURE__ */ jsx36(
5822
4050
  StatusBadge,
5823
4051
  {
5824
4052
  text: item.status.toUpperCase(),
@@ -5827,7 +4055,7 @@ function RoadmapCard({
5827
4055
  }
5828
4056
  ) })
5829
4057
  ] }),
5830
- /* @__PURE__ */ jsx41("div", { className: "md:hidden", children: /* @__PURE__ */ jsx41(
4058
+ /* @__PURE__ */ jsx36("div", { className: "md:hidden", children: /* @__PURE__ */ jsx36(
5831
4059
  StatusBadge,
5832
4060
  {
5833
4061
  text: item.status.toUpperCase(),
@@ -5835,11 +4063,11 @@ function RoadmapCard({
5835
4063
  className: "border border-ods-border"
5836
4064
  }
5837
4065
  ) }),
5838
- /* @__PURE__ */ jsx41("div", { className: "flex min-h-[72px] items-center", children: /* @__PURE__ */ jsx41("p", { className: "line-clamp-3 text-ods-text-secondary text-h4", children: item.description || "" }) }),
5839
- /* @__PURE__ */ jsx41("div", { className: "flex-1" }),
5840
- /* @__PURE__ */ jsxs26("div", { className: "flex w-full items-center justify-between", children: [
5841
- onVote && /* @__PURE__ */ jsxs26("div", { className: "flex h-[48px] overflow-hidden rounded-[6px] border border-ods-border bg-ods-card", children: [
5842
- /* @__PURE__ */ jsx41(
4066
+ /* @__PURE__ */ jsx36("div", { className: "flex min-h-[72px] items-center", children: /* @__PURE__ */ jsx36("p", { className: "line-clamp-3 text-ods-text-secondary text-h4", children: item.description || "" }) }),
4067
+ /* @__PURE__ */ jsx36("div", { className: "flex-1" }),
4068
+ /* @__PURE__ */ jsxs24("div", { className: "flex w-full items-center justify-between", children: [
4069
+ onVote && /* @__PURE__ */ jsxs24("div", { className: "flex h-[48px] overflow-hidden rounded-[6px] border border-ods-border bg-ods-card", children: [
4070
+ /* @__PURE__ */ jsx36(
5843
4071
  RoadmapVoteButton,
5844
4072
  {
5845
4073
  voteType: "up",
@@ -5851,7 +4079,7 @@ function RoadmapCard({
5851
4079
  disabled: isVoting
5852
4080
  }
5853
4081
  ),
5854
- /* @__PURE__ */ jsx41(
4082
+ /* @__PURE__ */ jsx36(
5855
4083
  RoadmapVoteButton,
5856
4084
  {
5857
4085
  voteType: "down",
@@ -5864,34 +4092,34 @@ function RoadmapCard({
5864
4092
  }
5865
4093
  )
5866
4094
  ] }),
5867
- /* @__PURE__ */ jsxs26("div", { className: "flex min-w-0 items-center gap-2", children: [
5868
- item.assignees && item.assignees.length > 0 ? /* @__PURE__ */ jsx41(AvatarStack, { size: "xs", people: assigneePeople(item.assignees), className: "shrink-0" }) : null,
5869
- item.screenshots && item.screenshots.length > 0 && /* @__PURE__ */ jsx41(
4095
+ /* @__PURE__ */ jsxs24("div", { className: "flex min-w-0 items-center gap-2", children: [
4096
+ item.assignees && item.assignees.length > 0 ? /* @__PURE__ */ jsx36(AvatarStack, { size: "xs", people: assigneePeople(item.assignees), className: "shrink-0" }) : null,
4097
+ item.screenshots && item.screenshots.length > 0 && /* @__PURE__ */ jsx36(
5870
4098
  Button,
5871
4099
  {
5872
4100
  variant: "outline",
5873
4101
  size: "small-legacy",
5874
4102
  onClick: () => setShowScreenshots(true),
5875
- leftIcon: /* @__PURE__ */ jsx41(ImageIcon, { className: "h-5 w-5" })
4103
+ leftIcon: /* @__PURE__ */ jsx36(ImageIcon, { className: "h-5 w-5" })
5876
4104
  }
5877
4105
  ),
5878
4106
  (() => {
5879
4107
  const figmaSafe = safeHref(item.figmaUrl);
5880
- return figmaSafe ? /* @__PURE__ */ jsx41(
4108
+ return figmaSafe ? /* @__PURE__ */ jsx36(
5881
4109
  Button,
5882
4110
  {
5883
4111
  variant: "outline",
5884
4112
  size: "small-legacy",
5885
4113
  openInNewTab: true,
5886
4114
  href: figmaSafe,
5887
- leftIcon: /* @__PURE__ */ jsx41(FigmaIcon, { className: "h-5 w-5" })
4115
+ leftIcon: /* @__PURE__ */ jsx36(FigmaIcon, { className: "h-5 w-5" })
5888
4116
  }
5889
4117
  ) : null;
5890
4118
  })(),
5891
- item.targetVersion && /* @__PURE__ */ jsx41(StatusBadge, { gen: generationTierFromLabel(item.targetVersion), text: item.targetVersion })
4119
+ item.targetVersion && /* @__PURE__ */ jsx36(StatusBadge, { gen: generationTierFromLabel(item.targetVersion), text: item.targetVersion })
5892
4120
  ] })
5893
4121
  ] }),
5894
- item.screenshots && item.screenshots.length > 0 && /* @__PURE__ */ jsx41(
4122
+ item.screenshots && item.screenshots.length > 0 && /* @__PURE__ */ jsx36(
5895
4123
  ImageGalleryModal,
5896
4124
  {
5897
4125
  images: item.screenshots,
@@ -6018,9 +4246,9 @@ function programItemToStripProfile(item) {
6018
4246
  }
6019
4247
 
6020
4248
  // src/components/chat/entity-cards/program-card.tsx
6021
- import { ArrowRight, ExternalLink as ExternalLink2, Clock as Clock2, Play, Video as Video4 } from "lucide-react";
6022
- import { useState as useState10 } from "react";
6023
- import { Fragment as Fragment14, jsx as jsx42, jsxs as jsxs27 } from "react/jsx-runtime";
4249
+ import { ArrowRight, ExternalLink as ExternalLink2, Clock as Clock2, Play, Video as Video2 } from "lucide-react";
4250
+ import { useState as useState7 } from "react";
4251
+ import { Fragment as Fragment12, jsx as jsx37, jsxs as jsxs25 } from "react/jsx-runtime";
6024
4252
  var EDITORIAL_FRAME = CONTENT_CARD_SKELETON_FRAME_CLASS;
6025
4253
  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)]";
6026
4254
  var EDITORIAL_ROW_THUMB = "relative block aspect-square w-full overflow-hidden rounded-md";
@@ -6047,59 +4275,59 @@ function ProgramCardSkeleton({
6047
4275
  tags = false
6048
4276
  }) {
6049
4277
  if (size2 === "row") {
6050
- return /* @__PURE__ */ jsxs27("span", { className: cn(EDITORIAL_FRAME, EDITORIAL_ROW_GRID, "animate-pulse"), children: [
6051
- /* @__PURE__ */ jsx42("span", { className: cn(EDITORIAL_ROW_THUMB, "bg-ods-border/20") }),
6052
- /* @__PURE__ */ jsxs27("span", { className: EDITORIAL_ROW_TEXT, children: [
6053
- /* @__PURE__ */ jsx42("span", { className: "block h-[2lh] w-full rounded bg-ods-border text-h3" }),
6054
- /* @__PURE__ */ jsx42("span", { className: EDITORIAL_META_ROW, children: /* @__PURE__ */ jsx42("span", { className: "block h-[1lh] w-40 rounded bg-ods-border" }) }),
6055
- /* @__PURE__ */ jsx42("span", { className: "block h-[2lh] w-full rounded bg-ods-border text-h6" })
4278
+ return /* @__PURE__ */ jsxs25("span", { className: cn(EDITORIAL_FRAME, EDITORIAL_ROW_GRID, "animate-pulse"), children: [
4279
+ /* @__PURE__ */ jsx37("span", { className: cn(EDITORIAL_ROW_THUMB, "bg-ods-border/20") }),
4280
+ /* @__PURE__ */ jsxs25("span", { className: EDITORIAL_ROW_TEXT, children: [
4281
+ /* @__PURE__ */ jsx37("span", { className: "block h-[2lh] w-full rounded bg-ods-border text-h3" }),
4282
+ /* @__PURE__ */ jsx37("span", { className: EDITORIAL_META_ROW, children: /* @__PURE__ */ jsx37("span", { className: "block h-[1lh] w-40 rounded bg-ods-border" }) }),
4283
+ /* @__PURE__ */ jsx37("span", { className: "block h-[2lh] w-full rounded bg-ods-border text-h6" })
6056
4284
  ] })
6057
4285
  ] });
6058
4286
  }
6059
4287
  if (size2 === "feature") {
6060
- return /* @__PURE__ */ jsxs27("span", { className: cn(EDITORIAL_FRAME, "flex animate-pulse flex-col"), children: [
6061
- /* @__PURE__ */ jsx42("span", { className: cn(EDITORIAL_FEATURE_COVER, "bg-ods-border/20") }),
6062
- /* @__PURE__ */ jsxs27("span", { className: EDITORIAL_FEATURE_BODY, children: [
6063
- eyebrow && /* @__PURE__ */ jsx42("span", { className: "block h-[1lh] w-28 rounded bg-ods-border text-h5" }),
6064
- /* @__PURE__ */ jsx42("span", { className: "block h-[2lh] w-full rounded bg-ods-border text-h3" }),
6065
- /* @__PURE__ */ jsx42("span", { className: EDITORIAL_META_ROW, children: /* @__PURE__ */ jsx42("span", { className: "block h-[1lh] w-40 rounded bg-ods-border" }) }),
6066
- /* @__PURE__ */ jsx42("span", { className: "block h-[3lh] w-full rounded bg-ods-border text-h4" }),
6067
- /* @__PURE__ */ jsxs27("span", { className: EDITORIAL_PERSON_ROW, children: [
6068
- /* @__PURE__ */ jsx42("span", { className: "block h-8 w-8 shrink-0 rounded-full bg-ods-border" }),
6069
- /* @__PURE__ */ jsx42("span", { className: "block h-[1lh] w-40 rounded bg-ods-border text-h6" })
4288
+ return /* @__PURE__ */ jsxs25("span", { className: cn(EDITORIAL_FRAME, "flex animate-pulse flex-col"), children: [
4289
+ /* @__PURE__ */ jsx37("span", { className: cn(EDITORIAL_FEATURE_COVER, "bg-ods-border/20") }),
4290
+ /* @__PURE__ */ jsxs25("span", { className: EDITORIAL_FEATURE_BODY, children: [
4291
+ eyebrow && /* @__PURE__ */ jsx37("span", { className: "block h-[1lh] w-28 rounded bg-ods-border text-h5" }),
4292
+ /* @__PURE__ */ jsx37("span", { className: "block h-[2lh] w-full rounded bg-ods-border text-h3" }),
4293
+ /* @__PURE__ */ jsx37("span", { className: EDITORIAL_META_ROW, children: /* @__PURE__ */ jsx37("span", { className: "block h-[1lh] w-40 rounded bg-ods-border" }) }),
4294
+ /* @__PURE__ */ jsx37("span", { className: "block h-[3lh] w-full rounded bg-ods-border text-h4" }),
4295
+ /* @__PURE__ */ jsxs25("span", { className: EDITORIAL_PERSON_ROW, children: [
4296
+ /* @__PURE__ */ jsx37("span", { className: "block h-8 w-8 shrink-0 rounded-full bg-ods-border" }),
4297
+ /* @__PURE__ */ jsx37("span", { className: "block h-[1lh] w-40 rounded bg-ods-border text-h6" })
6070
4298
  ] })
6071
4299
  ] })
6072
4300
  ] });
6073
4301
  }
6074
4302
  if (size2 === "sm") {
6075
- return /* @__PURE__ */ jsxs27("span", { className: COMPACT_CARD_SKELETON_OUTER, children: [
6076
- /* @__PURE__ */ jsx42("span", { className: COMPACT_CARD_SKELETON_IMAGE_SLOT }),
6077
- /* @__PURE__ */ jsxs27("span", { className: COMPACT_CARD_TEXT_COL, children: [
6078
- /* @__PURE__ */ jsx42("span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ jsx42("span", { className: "h-3.5 w-3/5 rounded bg-ods-bg" }) }),
6079
- /* @__PURE__ */ jsx42("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx42("span", { className: "h-3 w-2/5 rounded bg-ods-bg/70" }) }),
6080
- /* @__PURE__ */ jsx42("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx42("span", { className: "h-3 w-11/12 rounded bg-ods-bg/40" }) })
4303
+ return /* @__PURE__ */ jsxs25("span", { className: COMPACT_CARD_SKELETON_OUTER, children: [
4304
+ /* @__PURE__ */ jsx37("span", { className: COMPACT_CARD_SKELETON_IMAGE_SLOT }),
4305
+ /* @__PURE__ */ jsxs25("span", { className: COMPACT_CARD_TEXT_COL, children: [
4306
+ /* @__PURE__ */ jsx37("span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ jsx37("span", { className: "h-3.5 w-3/5 rounded bg-ods-bg" }) }),
4307
+ /* @__PURE__ */ jsx37("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx37("span", { className: "h-3 w-2/5 rounded bg-ods-bg/70" }) }),
4308
+ /* @__PURE__ */ jsx37("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx37("span", { className: "h-3 w-11/12 rounded bg-ods-bg/40" }) })
6081
4309
  ] }),
6082
- /* @__PURE__ */ jsx42("span", { className: "flex h-5 shrink-0 items-center self-start", children: /* @__PURE__ */ jsx42("span", { className: "h-3.5 w-3.5 rounded bg-ods-bg" }) })
4310
+ /* @__PURE__ */ jsx37("span", { className: "flex h-5 shrink-0 items-center self-start", children: /* @__PURE__ */ jsx37("span", { className: "h-3.5 w-3.5 rounded bg-ods-bg" }) })
6083
4311
  ] });
6084
4312
  }
6085
- return /* @__PURE__ */ jsxs27("div", { className: cn(CONTENT_CARD_SKELETON_FRAME_CLASS, DEFAULT_BODY, "animate-pulse"), children: [
6086
- /* @__PURE__ */ jsxs27("div", { className: DEFAULT_HEADER, children: [
6087
- /* @__PURE__ */ jsx42("div", { className: `${DEFAULT_COVER_FRAME} bg-ods-border` }),
6088
- /* @__PURE__ */ jsxs27("div", { className: DEFAULT_TEXT, children: [
6089
- /* @__PURE__ */ jsx42("div", { className: DEFAULT_TITLE, children: /* @__PURE__ */ jsx42("span", { className: "block h-[1lh] w-3/4 rounded bg-ods-border" }) }),
6090
- /* @__PURE__ */ jsxs27("div", { className: DEFAULT_META_ROW, children: [
6091
- /* @__PURE__ */ jsx42("span", { className: "block h-[1lh] w-32 rounded bg-ods-border" }),
6092
- /* @__PURE__ */ jsx42("span", { className: "block h-[1lh] w-40 rounded bg-ods-border" })
4313
+ return /* @__PURE__ */ jsxs25("div", { className: cn(CONTENT_CARD_SKELETON_FRAME_CLASS, DEFAULT_BODY, "animate-pulse"), children: [
4314
+ /* @__PURE__ */ jsxs25("div", { className: DEFAULT_HEADER, children: [
4315
+ /* @__PURE__ */ jsx37("div", { className: `${DEFAULT_COVER_FRAME} bg-ods-border` }),
4316
+ /* @__PURE__ */ jsxs25("div", { className: DEFAULT_TEXT, children: [
4317
+ /* @__PURE__ */ jsx37("div", { className: DEFAULT_TITLE, children: /* @__PURE__ */ jsx37("span", { className: "block h-[1lh] w-3/4 rounded bg-ods-border" }) }),
4318
+ /* @__PURE__ */ jsxs25("div", { className: DEFAULT_META_ROW, children: [
4319
+ /* @__PURE__ */ jsx37("span", { className: "block h-[1lh] w-32 rounded bg-ods-border" }),
4320
+ /* @__PURE__ */ jsx37("span", { className: "block h-[1lh] w-40 rounded bg-ods-border" })
6093
4321
  ] }),
6094
- /* @__PURE__ */ jsx42("div", { className: DEFAULT_DESCRIPTION, children: /* @__PURE__ */ jsx42("span", { className: "block h-[3lh] w-full rounded bg-ods-border" }) }),
6095
- tags && /* @__PURE__ */ jsxs27("div", { className: DEFAULT_TAG_ROW, children: [
6096
- /* @__PURE__ */ jsx42("span", { className: "block h-8 w-24 rounded bg-ods-border" }),
6097
- /* @__PURE__ */ jsx42("span", { className: "block h-8 w-24 rounded bg-ods-border" })
4322
+ /* @__PURE__ */ jsx37("div", { className: DEFAULT_DESCRIPTION, children: /* @__PURE__ */ jsx37("span", { className: "block h-[3lh] w-full rounded bg-ods-border" }) }),
4323
+ tags && /* @__PURE__ */ jsxs25("div", { className: DEFAULT_TAG_ROW, children: [
4324
+ /* @__PURE__ */ jsx37("span", { className: "block h-8 w-24 rounded bg-ods-border" }),
4325
+ /* @__PURE__ */ jsx37("span", { className: "block h-8 w-24 rounded bg-ods-border" })
6098
4326
  ] })
6099
4327
  ] })
6100
4328
  ] }),
6101
- media > 0 && /* @__PURE__ */ jsx42("div", { className: DEFAULT_GALLERY_ROW, children: Array.from({ length: media }, (_, i) => /* @__PURE__ */ jsx42("div", { className: `${DEFAULT_GALLERY_THUMB} bg-ods-border` }, i)) }),
6102
- /* @__PURE__ */ jsx42("div", { className: DEFAULT_FOOTER, children: /* @__PURE__ */ jsx42("div", { className: "h-10 w-40 rounded bg-ods-border" }) })
4329
+ media > 0 && /* @__PURE__ */ jsx37("div", { className: DEFAULT_GALLERY_ROW, children: Array.from({ length: media }, (_, i) => /* @__PURE__ */ jsx37("div", { className: `${DEFAULT_GALLERY_THUMB} bg-ods-border` }, i)) }),
4330
+ /* @__PURE__ */ jsx37("div", { className: DEFAULT_FOOTER, children: /* @__PURE__ */ jsx37("div", { className: "h-10 w-40 rounded bg-ods-border" }) })
6103
4331
  ] });
6104
4332
  }
6105
4333
  function getHosts(hosts) {
@@ -6131,8 +4359,8 @@ function getHosts(hosts) {
6131
4359
  return [];
6132
4360
  }
6133
4361
  function MediaGallery({ images, title }) {
6134
- const [selectedImageIndex, setSelectedImageIndex] = useState10(null);
6135
- const [isModalOpen, setIsModalOpen] = useState10(false);
4362
+ const [selectedImageIndex, setSelectedImageIndex] = useState7(null);
4363
+ const [isModalOpen, setIsModalOpen] = useState7(false);
6136
4364
  const openImageModal = (index, event) => {
6137
4365
  if (event) event.stopPropagation();
6138
4366
  setSelectedImageIndex(index);
@@ -6142,13 +4370,13 @@ function MediaGallery({ images, title }) {
6142
4370
  setIsModalOpen(false);
6143
4371
  setSelectedImageIndex(null);
6144
4372
  };
6145
- return /* @__PURE__ */ jsxs27(Fragment14, { children: [
6146
- /* @__PURE__ */ jsx42("div", { className: "overflow-x-auto", children: /* @__PURE__ */ jsx42("div", { className: DEFAULT_GALLERY_ROW, style: { width: "max-content" }, children: images.map((mediaItem, index) => /* @__PURE__ */ jsx42(
4373
+ return /* @__PURE__ */ jsxs25(Fragment12, { children: [
4374
+ /* @__PURE__ */ jsx37("div", { className: "overflow-x-auto", children: /* @__PURE__ */ jsx37("div", { className: DEFAULT_GALLERY_ROW, style: { width: "max-content" }, children: images.map((mediaItem, index) => /* @__PURE__ */ jsx37(
6147
4375
  "div",
6148
4376
  {
6149
4377
  className: cn(DEFAULT_GALLERY_THUMB, "group/thumb cursor-pointer"),
6150
4378
  onClick: (e) => openImageModal(index, e),
6151
- children: /* @__PURE__ */ jsx42(
4379
+ children: /* @__PURE__ */ jsx37(
6152
4380
  next_image_default,
6153
4381
  {
6154
4382
  src: mediaItem.media_url,
@@ -6163,7 +4391,7 @@ function MediaGallery({ images, title }) {
6163
4391
  },
6164
4392
  mediaItem.id
6165
4393
  )) }) }),
6166
- /* @__PURE__ */ jsx42(
4394
+ /* @__PURE__ */ jsx37(
6167
4395
  ImageGalleryModal,
6168
4396
  {
6169
4397
  images: images.map((img) => img.media_url),
@@ -6190,15 +4418,15 @@ function ProgramEditorialCard({
6190
4418
  className
6191
4419
  }) {
6192
4420
  const edgeColor = useImageEdgeColor(feature ? cover : null, "transparent");
6193
- const meta = /* @__PURE__ */ jsxs27("div", { className: EDITORIAL_META_ROW, children: [
6194
- date && /* @__PURE__ */ jsx42("span", { className: "text-ods-flamingo-pink", children: date }),
6195
- [typeMeta, feature ? null : profile?.name].filter((part) => !!part).map((part) => /* @__PURE__ */ jsxs27("span", { className: "flex items-center gap-[var(--spacing-system-s)] text-ods-text-secondary", children: [
6196
- /* @__PURE__ */ jsx42("span", { "aria-hidden": "true", children: "\u2022" }),
4421
+ const meta = /* @__PURE__ */ jsxs25("div", { className: EDITORIAL_META_ROW, children: [
4422
+ date && /* @__PURE__ */ jsx37("span", { className: "text-ods-flamingo-pink", children: date }),
4423
+ [typeMeta, feature ? null : profile?.name].filter((part) => !!part).map((part) => /* @__PURE__ */ jsxs25("span", { className: "flex items-center gap-[var(--spacing-system-s)] text-ods-text-secondary", children: [
4424
+ /* @__PURE__ */ jsx37("span", { "aria-hidden": "true", children: "\u2022" }),
6197
4425
  part
6198
4426
  ] }, part))
6199
4427
  ] });
6200
4428
  if (!feature) {
6201
- return /* @__PURE__ */ jsxs27(
4429
+ return /* @__PURE__ */ jsxs25(
6202
4430
  ContentCardFrame,
6203
4431
  {
6204
4432
  as: "a",
@@ -6208,20 +4436,20 @@ function ProgramEditorialCard({
6208
4436
  "aria-label": `Open ${title}`,
6209
4437
  className: cn(EDITORIAL_ROW_GRID, className),
6210
4438
  children: [
6211
- /* @__PURE__ */ jsxs27("span", { className: cn(EDITORIAL_ROW_THUMB, "bg-ods-bg"), children: [
6212
- cover && /* @__PURE__ */ jsx42(next_image_default, { src: cover, alt: "", fill: true, sizes: "120px", className: "object-cover", unoptimized: true }),
6213
- playable && cover && /* @__PURE__ */ jsx42(CardHoverPlay, { size: "md" })
4439
+ /* @__PURE__ */ jsxs25("span", { className: cn(EDITORIAL_ROW_THUMB, "bg-ods-bg"), children: [
4440
+ cover && /* @__PURE__ */ jsx37(next_image_default, { src: cover, alt: "", fill: true, sizes: "120px", className: "object-cover", unoptimized: true }),
4441
+ playable && cover && /* @__PURE__ */ jsx37(CardHoverPlay, { size: "md" })
6214
4442
  ] }),
6215
- /* @__PURE__ */ jsxs27("span", { className: EDITORIAL_ROW_TEXT, children: [
6216
- /* @__PURE__ */ jsx42("span", { className: "line-clamp-2 min-h-[2lh] text-ods-text-primary text-h3", children: title }),
4443
+ /* @__PURE__ */ jsxs25("span", { className: EDITORIAL_ROW_TEXT, children: [
4444
+ /* @__PURE__ */ jsx37("span", { className: "line-clamp-2 min-h-[2lh] text-ods-text-primary text-h3", children: title }),
6217
4445
  meta,
6218
- /* @__PURE__ */ jsx42("span", { className: "line-clamp-2 min-h-[2lh] text-ods-text-secondary text-h6", children: description })
4446
+ /* @__PURE__ */ jsx37("span", { className: "line-clamp-2 min-h-[2lh] text-ods-text-secondary text-h6", children: description })
6219
4447
  ] })
6220
4448
  ]
6221
4449
  }
6222
4450
  );
6223
4451
  }
6224
- return /* @__PURE__ */ jsxs27(
4452
+ return /* @__PURE__ */ jsxs25(
6225
4453
  ContentCardFrame,
6226
4454
  {
6227
4455
  as: "a",
@@ -6231,13 +4459,13 @@ function ProgramEditorialCard({
6231
4459
  "aria-label": `Open ${title}`,
6232
4460
  className: cn("flex flex-col", className),
6233
4461
  children: [
6234
- /* @__PURE__ */ jsxs27(
4462
+ /* @__PURE__ */ jsxs25(
6235
4463
  "span",
6236
4464
  {
6237
4465
  className: cn(EDITORIAL_FEATURE_COVER, "transition-colors duration-300"),
6238
4466
  style: { backgroundColor: edgeColor },
6239
4467
  children: [
6240
- cover && /* @__PURE__ */ jsx42(
4468
+ cover && /* @__PURE__ */ jsx37(
6241
4469
  next_image_default,
6242
4470
  {
6243
4471
  src: cover,
@@ -6248,17 +4476,17 @@ function ProgramEditorialCard({
6248
4476
  unoptimized: true
6249
4477
  }
6250
4478
  ),
6251
- playable && cover && /* @__PURE__ */ jsx42(CardHoverPlay, { size: "lg" })
4479
+ playable && cover && /* @__PURE__ */ jsx37(CardHoverPlay, { size: "lg" })
6252
4480
  ]
6253
4481
  }
6254
4482
  ),
6255
- /* @__PURE__ */ jsxs27("span", { className: EDITORIAL_FEATURE_BODY, children: [
6256
- eyebrow && /* @__PURE__ */ jsx42("span", { className: "block h-[1lh] text-ods-text-secondary text-h5", children: eyebrow }),
6257
- /* @__PURE__ */ jsx42("span", { className: "line-clamp-2 min-h-[2lh] text-ods-text-primary text-h3", children: title }),
4483
+ /* @__PURE__ */ jsxs25("span", { className: EDITORIAL_FEATURE_BODY, children: [
4484
+ eyebrow && /* @__PURE__ */ jsx37("span", { className: "block h-[1lh] text-ods-text-secondary text-h5", children: eyebrow }),
4485
+ /* @__PURE__ */ jsx37("span", { className: "line-clamp-2 min-h-[2lh] text-ods-text-primary text-h3", children: title }),
6258
4486
  meta,
6259
- /* @__PURE__ */ jsx42("span", { className: "line-clamp-3 min-h-[3lh] text-ods-text-secondary text-h4", children: description }),
6260
- /* @__PURE__ */ jsx42("span", { className: EDITORIAL_PERSON_ROW, children: profile && /* @__PURE__ */ jsxs27(Fragment14, { children: [
6261
- /* @__PURE__ */ jsx42(
4487
+ /* @__PURE__ */ jsx37("span", { className: "line-clamp-3 min-h-[3lh] text-ods-text-secondary text-h4", children: description }),
4488
+ /* @__PURE__ */ jsx37("span", { className: EDITORIAL_PERSON_ROW, children: profile && /* @__PURE__ */ jsxs25(Fragment12, { children: [
4489
+ /* @__PURE__ */ jsx37(
6262
4490
  SquareAvatar,
6263
4491
  {
6264
4492
  variant: "round",
@@ -6268,9 +4496,9 @@ function ProgramEditorialCard({
6268
4496
  size: "sm"
6269
4497
  }
6270
4498
  ),
6271
- /* @__PURE__ */ jsxs27("span", { className: "truncate text-h6", children: [
6272
- /* @__PURE__ */ jsx42("span", { className: "text-ods-text-primary", children: profile.name }),
6273
- profile.subtitle && /* @__PURE__ */ jsxs27("span", { className: "text-ods-text-secondary", children: [
4499
+ /* @__PURE__ */ jsxs25("span", { className: "truncate text-h6", children: [
4500
+ /* @__PURE__ */ jsx37("span", { className: "text-ods-text-primary", children: profile.name }),
4501
+ profile.subtitle && /* @__PURE__ */ jsxs25("span", { className: "text-ods-text-secondary", children: [
6274
4502
  " \xB7 ",
6275
4503
  profile.subtitle
6276
4504
  ] })
@@ -6325,7 +4553,7 @@ function ProgramCard({
6325
4553
  if (size2 === "portrait") {
6326
4554
  const profile = programItemToStripProfile(item);
6327
4555
  const dateMeta = compactMetaLine;
6328
- return /* @__PURE__ */ jsx42(
4556
+ return /* @__PURE__ */ jsx37(
6329
4557
  EntityPortraitCard,
6330
4558
  {
6331
4559
  href,
@@ -6343,7 +4571,7 @@ function ProgramCard({
6343
4571
  );
6344
4572
  }
6345
4573
  if (size2 === "feature" || size2 === "row") {
6346
- return /* @__PURE__ */ jsx42(
4574
+ return /* @__PURE__ */ jsx37(
6347
4575
  ProgramEditorialCard,
6348
4576
  {
6349
4577
  feature: size2 === "feature",
@@ -6369,17 +4597,17 @@ function ProgramCard({
6369
4597
  const subtitleParts = [itemDate, typeMeta, config.labels?.singular].filter(
6370
4598
  (s) => typeof s === "string" && s.length > 0
6371
4599
  );
6372
- return /* @__PURE__ */ jsxs27("a", { href, target, rel, className: cn(COMPACT_CARD_OUTER, "group", className), children: [
6373
- /* @__PURE__ */ jsxs27("span", { className: COMPACT_CARD_IMAGE_SLOT, children: [
6374
- compactCover ? /* @__PURE__ */ jsx42(next_image_default, { src: compactCover, alt: item.title, fill: true, sizes: "56px", className: "object-contain", unoptimized: true }) : /* @__PURE__ */ jsx42("span", { className: "flex h-full w-full items-center justify-center text-ods-accent", children: config.type === "podcast" ? /* @__PURE__ */ jsx42(Play, { className: "h-4 w-4" }) : config.type === "webinar" ? /* @__PURE__ */ jsx42(Video4, { className: "h-4 w-4" }) : /* @__PURE__ */ jsx42(Clock2, { className: "h-4 w-4" }) }),
6375
- isPlayable && compactCover && /* @__PURE__ */ jsx42(CardHoverPlay, { size: "sm" })
4600
+ return /* @__PURE__ */ jsxs25("a", { href, target, rel, className: cn(COMPACT_CARD_OUTER, "group", className), children: [
4601
+ /* @__PURE__ */ jsxs25("span", { className: COMPACT_CARD_IMAGE_SLOT, children: [
4602
+ compactCover ? /* @__PURE__ */ jsx37(next_image_default, { src: compactCover, alt: item.title, fill: true, sizes: "56px", className: "object-contain", unoptimized: true }) : /* @__PURE__ */ jsx37("span", { className: "flex h-full w-full items-center justify-center text-ods-accent", children: config.type === "podcast" ? /* @__PURE__ */ jsx37(Play, { className: "h-4 w-4" }) : config.type === "webinar" ? /* @__PURE__ */ jsx37(Video2, { className: "h-4 w-4" }) : /* @__PURE__ */ jsx37(Clock2, { className: "h-4 w-4" }) }),
4603
+ isPlayable && compactCover && /* @__PURE__ */ jsx37(CardHoverPlay, { size: "sm" })
6376
4604
  ] }),
6377
- /* @__PURE__ */ jsxs27("span", { className: COMPACT_CARD_TEXT_COL, children: [
6378
- /* @__PURE__ */ jsx42("span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ jsx42("span", { className: cn(COMPACT_CARD_TITLE, "font-heading"), children: item.title }) }),
6379
- /* @__PURE__ */ jsx42("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx42("span", { className: "truncate text-ods-accent text-h6", children: subtitleParts.join(" \xB7 ") }) }),
6380
- /* @__PURE__ */ jsx42("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx42("span", { className: COMPACT_CARD_SUMMARY, children: item.description || COMPACT_CARD_ROW_FILLER }) })
4605
+ /* @__PURE__ */ jsxs25("span", { className: COMPACT_CARD_TEXT_COL, children: [
4606
+ /* @__PURE__ */ jsx37("span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ jsx37("span", { className: cn(COMPACT_CARD_TITLE, "font-heading"), children: item.title }) }),
4607
+ /* @__PURE__ */ jsx37("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx37("span", { className: "truncate text-ods-accent text-h6", children: subtitleParts.join(" \xB7 ") }) }),
4608
+ /* @__PURE__ */ jsx37("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx37("span", { className: COMPACT_CARD_SUMMARY, children: item.description || COMPACT_CARD_ROW_FILLER }) })
6381
4609
  ] }),
6382
- /* @__PURE__ */ jsx42("span", { className: "flex h-5 shrink-0 items-center self-start text-ods-text-secondary", children: /* @__PURE__ */ jsx42(ExternalLink2, { className: "h-3.5 w-3.5" }) })
4610
+ /* @__PURE__ */ jsx37("span", { className: "flex h-5 shrink-0 items-center self-start text-ods-text-secondary", children: /* @__PURE__ */ jsx37(ExternalLink2, { className: "h-3.5 w-3.5" }) })
6383
4611
  ] });
6384
4612
  }
6385
4613
  const dateFormat = formatProgramDate(zonedDate, "weekday");
@@ -6390,20 +4618,20 @@ function ProgramCard({
6390
4618
  );
6391
4619
  const defaultRenderMeta = () => {
6392
4620
  if (config.type === "podcast") {
6393
- return defaultTypeMeta ? /* @__PURE__ */ jsxs27(Fragment14, { children: [
6394
- /* @__PURE__ */ jsx42(Clock2, { className: "h-4 w-4 text-ods-text-secondary" }),
6395
- /* @__PURE__ */ jsx42("span", { className: "font-body text-ods-text-secondary", children: defaultTypeMeta })
4621
+ return defaultTypeMeta ? /* @__PURE__ */ jsxs25(Fragment12, { children: [
4622
+ /* @__PURE__ */ jsx37(Clock2, { className: "h-4 w-4 text-ods-text-secondary" }),
4623
+ /* @__PURE__ */ jsx37("span", { className: "font-body text-ods-text-secondary", children: defaultTypeMeta })
6396
4624
  ] }) : null;
6397
4625
  }
6398
4626
  if (config.type === "event") {
6399
4627
  const eventMeta = [defaultTypeMeta, defaultAudience].filter(Boolean).join(" \xB7 ");
6400
- return eventMeta ? /* @__PURE__ */ jsx42("span", { className: "font-body text-ods-text-secondary", children: eventMeta }) : null;
4628
+ return eventMeta ? /* @__PURE__ */ jsx37("span", { className: "font-body text-ods-text-secondary", children: eventMeta }) : null;
6401
4629
  }
6402
4630
  if (config.type === "webinar" && (defaultTypeMeta || zonedDate.timezone)) {
6403
- return /* @__PURE__ */ jsxs27(Fragment14, { children: [
6404
- /* @__PURE__ */ jsx42(Video4, { className: "h-4 w-4 text-ods-text-secondary" }),
6405
- defaultTypeMeta && /* @__PURE__ */ jsx42("span", { className: "font-body text-ods-text-secondary", children: defaultTypeMeta }),
6406
- zonedDate.timezone && /* @__PURE__ */ jsxs27("span", { className: "text-ods-text-secondary text-h6", children: [
4631
+ return /* @__PURE__ */ jsxs25(Fragment12, { children: [
4632
+ /* @__PURE__ */ jsx37(Video2, { className: "h-4 w-4 text-ods-text-secondary" }),
4633
+ defaultTypeMeta && /* @__PURE__ */ jsx37("span", { className: "font-body text-ods-text-secondary", children: defaultTypeMeta }),
4634
+ zonedDate.timezone && /* @__PURE__ */ jsxs25("span", { className: "text-ods-text-secondary text-h6", children: [
6407
4635
  "(",
6408
4636
  zonedDate.timezone,
6409
4637
  ")"
@@ -6414,9 +4642,9 @@ function ProgramCard({
6414
4642
  };
6415
4643
  const endAt = "end_at" in item && typeof item.end_at === "string" ? item.end_at : null;
6416
4644
  const dateLabel = formatProgramDateRange(zonedDate, endAt) ?? dateFormat;
6417
- const cardHeader = /* @__PURE__ */ jsxs27("div", { className: DEFAULT_HEADER, children: [
6418
- coverImage && /* @__PURE__ */ jsxs27("div", { className: DEFAULT_COVER_FRAME, children: [
6419
- /* @__PURE__ */ jsx42(
4645
+ const cardHeader = /* @__PURE__ */ jsxs25("div", { className: DEFAULT_HEADER, children: [
4646
+ coverImage && /* @__PURE__ */ jsxs25("div", { className: DEFAULT_COVER_FRAME, children: [
4647
+ /* @__PURE__ */ jsx37(
6420
4648
  next_image_default,
6421
4649
  {
6422
4650
  src: coverImage,
@@ -6427,24 +4655,24 @@ function ProgramCard({
6427
4655
  unoptimized: true
6428
4656
  }
6429
4657
  ),
6430
- isPlayable && /* @__PURE__ */ jsx42(CardHoverPlay, { size: "md" })
4658
+ isPlayable && /* @__PURE__ */ jsx37(CardHoverPlay, { size: "md" })
6431
4659
  ] }),
6432
- /* @__PURE__ */ jsxs27("div", { className: DEFAULT_TEXT, children: [
6433
- /* @__PURE__ */ jsx42("h3", { className: DEFAULT_TITLE, children: item.title }),
6434
- /* @__PURE__ */ jsxs27("div", { className: DEFAULT_META_ROW, children: [
6435
- /* @__PURE__ */ jsx42("span", { style: { color: accentColor }, children: dateLabel }),
6436
- renderMeta ? /* @__PURE__ */ jsxs27(Fragment14, { children: [
6437
- /* @__PURE__ */ jsx42("span", { className: "hidden text-ods-text-secondary md:inline", children: "\u2022" }),
4660
+ /* @__PURE__ */ jsxs25("div", { className: DEFAULT_TEXT, children: [
4661
+ /* @__PURE__ */ jsx37("h3", { className: DEFAULT_TITLE, children: item.title }),
4662
+ /* @__PURE__ */ jsxs25("div", { className: DEFAULT_META_ROW, children: [
4663
+ /* @__PURE__ */ jsx37("span", { style: { color: accentColor }, children: dateLabel }),
4664
+ renderMeta ? /* @__PURE__ */ jsxs25(Fragment12, { children: [
4665
+ /* @__PURE__ */ jsx37("span", { className: "hidden text-ods-text-secondary md:inline", children: "\u2022" }),
6438
4666
  renderMeta(item)
6439
- ] }) : defaultRenderMeta() && /* @__PURE__ */ jsxs27(Fragment14, { children: [
6440
- /* @__PURE__ */ jsx42("span", { className: "hidden text-ods-text-secondary md:inline", children: "\u2022" }),
6441
- /* @__PURE__ */ jsx42("div", { className: "flex items-center gap-2", children: defaultRenderMeta() })
4667
+ ] }) : defaultRenderMeta() && /* @__PURE__ */ jsxs25(Fragment12, { children: [
4668
+ /* @__PURE__ */ jsx37("span", { className: "hidden text-ods-text-secondary md:inline", children: "\u2022" }),
4669
+ /* @__PURE__ */ jsx37("div", { className: "flex items-center gap-2", children: defaultRenderMeta() })
6442
4670
  ] })
6443
4671
  ] }),
6444
- /* @__PURE__ */ jsx42("p", { className: DEFAULT_DESCRIPTION, children: item.description }),
6445
- tags.length > 0 && /* @__PURE__ */ jsx42("div", { className: DEFAULT_TAG_ROW, children: tags.map((tag) => /* @__PURE__ */ jsx42(Tag, { as: "span", label: tag, variant: "outline" }, tag)) })
4672
+ /* @__PURE__ */ jsx37("p", { className: DEFAULT_DESCRIPTION, children: item.description }),
4673
+ tags.length > 0 && /* @__PURE__ */ jsx37("div", { className: DEFAULT_TAG_ROW, children: tags.map((tag) => /* @__PURE__ */ jsx37(Tag, { as: "span", label: tag, variant: "outline" }, tag)) })
6446
4674
  ] }),
6447
- hosts.length > 0 && /* @__PURE__ */ jsx42("div", { className: "flex flex-wrap gap-2 md:justify-end", children: hosts.map((host, index) => /* @__PURE__ */ jsx42(
4675
+ hosts.length > 0 && /* @__PURE__ */ jsx37("div", { className: "flex flex-wrap gap-2 md:justify-end", children: hosts.map((host, index) => /* @__PURE__ */ jsx37(
6448
4676
  SquareAvatar,
6449
4677
  {
6450
4678
  variant: "round",
@@ -6459,7 +4687,7 @@ function ProgramCard({
6459
4687
  const cardFrameClass = cn(DEFAULT_BODY, className);
6460
4688
  const actionLabel = `View ${config.labels.singular.toLowerCase()}`;
6461
4689
  if (wholeCardClickable) {
6462
- return /* @__PURE__ */ jsxs27(
4690
+ return /* @__PURE__ */ jsxs25(
6463
4691
  ContentCardFrame,
6464
4692
  {
6465
4693
  as: "a",
@@ -6470,15 +4698,15 @@ function ProgramCard({
6470
4698
  "aria-label": `Open ${item.title}`,
6471
4699
  children: [
6472
4700
  cardHeader,
6473
- images.length > 0 && /* @__PURE__ */ jsx42(MediaGallery, { images, title: item.title }),
6474
- /* @__PURE__ */ jsx42("div", { className: DEFAULT_FOOTER, children: /* @__PURE__ */ jsxs27(
4701
+ images.length > 0 && /* @__PURE__ */ jsx37(MediaGallery, { images, title: item.title }),
4702
+ /* @__PURE__ */ jsx37("div", { className: DEFAULT_FOOTER, children: /* @__PURE__ */ jsxs25(
6475
4703
  "span",
6476
4704
  {
6477
4705
  className: "inline-flex items-center gap-2 rounded-md border border-ods-border px-4 py-2 text-ods-text-primary text-h4",
6478
4706
  "aria-hidden": "true",
6479
4707
  children: [
6480
4708
  actionLabel,
6481
- /* @__PURE__ */ jsx42(ArrowRight, { className: "h-5 w-5" })
4709
+ /* @__PURE__ */ jsx37(ArrowRight, { className: "h-5 w-5" })
6482
4710
  ]
6483
4711
  }
6484
4712
  ) })
@@ -6486,16 +4714,16 @@ function ProgramCard({
6486
4714
  }
6487
4715
  );
6488
4716
  }
6489
- return /* @__PURE__ */ jsxs27(ContentCardFrame, { as: "div", className: cardFrameClass, children: [
6490
- /* @__PURE__ */ jsx42("a", { href, target, rel, className: "block", "aria-label": `Open ${item.title}`, children: cardHeader }),
6491
- images.length > 0 && /* @__PURE__ */ jsx42(MediaGallery, { images, title: item.title }),
6492
- /* @__PURE__ */ jsx42("div", { className: DEFAULT_FOOTER, children: /* @__PURE__ */ jsx42(
4717
+ return /* @__PURE__ */ jsxs25(ContentCardFrame, { as: "div", className: cardFrameClass, children: [
4718
+ /* @__PURE__ */ jsx37("a", { href, target, rel, className: "block", "aria-label": `Open ${item.title}`, children: cardHeader }),
4719
+ images.length > 0 && /* @__PURE__ */ jsx37(MediaGallery, { images, title: item.title }),
4720
+ /* @__PURE__ */ jsx37("div", { className: DEFAULT_FOOTER, children: /* @__PURE__ */ jsx37(
6493
4721
  Button,
6494
4722
  {
6495
4723
  variant: "outline",
6496
4724
  href,
6497
4725
  openInNewTab: target === "_blank",
6498
- rightIcon: /* @__PURE__ */ jsx42(ArrowRight, { className: "h-5 w-5" }),
4726
+ rightIcon: /* @__PURE__ */ jsx37(ArrowRight, { className: "h-5 w-5" }),
6499
4727
  children: actionLabel
6500
4728
  }
6501
4729
  ) })
@@ -6762,18 +4990,9 @@ export {
6762
4990
  ModalTitle,
6763
4991
  ModalFooter,
6764
4992
  ImageGalleryModal,
6765
- fetchPriorityProp,
6766
- MUX_STREAM_ORIGIN,
6767
- MUX_IMAGE_ORIGIN,
6768
- saveDataEnabled,
6769
- useVideoOriginPreconnect,
6770
- useVideoWarmup,
6771
4993
  VideoPlayBadge,
6772
4994
  CardHoverPlay,
6773
4995
  VideoUnmuteGlyph,
6774
- extractYouTubeId,
6775
- VIDEO_PLAYBACK_FAILED_EVENT,
6776
- Video,
6777
4996
  statusBadgeVariants,
6778
4997
  genBadgeBgOpacity,
6779
4998
  generationTierFromLabel,
@@ -6784,22 +5003,11 @@ export {
6784
5003
  PaletteBadge,
6785
5004
  DepartmentBadge,
6786
5005
  AvatarStack,
6787
- ICON_REGISTRY,
6788
- normalizeIconKey,
6789
- getIconComponent,
6790
- getDynamicIcon,
6791
- ICON_ALIASES,
6792
- brandLogoForName,
6793
- resolveIcon,
6794
- ICON_OPTIONS,
6795
- FAE_AVATAR_DATA_URI,
6796
- AgentMark,
6797
5006
  getProxiedImageUrl,
6798
5007
  urlPathLooksLikeSvg,
6799
5008
  shouldProxyImage,
6800
5009
  generateImageSizes,
6801
5010
  skipsImageOptimizer,
6802
- EntityIcon,
6803
5011
  escapeRegExp,
6804
5012
  isCrossOriginUrl,
6805
5013
  decideNewTab,
@@ -6818,7 +5026,7 @@ export {
6818
5026
  useCoverImageFallback,
6819
5027
  hideOnError,
6820
5028
  EntityPortraitCard,
6821
- FlamingoLogo2 as FlamingoLogo,
5029
+ FlamingoLogo,
6822
5030
  PlatformBadge,
6823
5031
  AdminContentCard,
6824
5032
  ADMIN_CONTENT_CARD_GRID_CLASS,
@@ -6844,7 +5052,6 @@ export {
6844
5052
  toStripProfile,
6845
5053
  sortBitesByCreatedAtDesc,
6846
5054
  sortBitesByFeaturedAtDesc,
6847
- VideoHoverPreviewSurface,
6848
5055
  ProductReleaseCard,
6849
5056
  ProductReleaseCardSkeleton,
6850
5057
  formatReleaseDate,