@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.
- package/dist/{chunk-WCVZCGK5.cjs → chunk-2QEUFXNS.cjs} +71 -312
- package/dist/{chunk-N45D4ZXQ.js → chunk-2YXVWZVF.js} +715 -959
- package/dist/{chunk-7OFPU7WE.cjs → chunk-3MX5S4CF.cjs} +2547 -877
- package/dist/{chunk-MB4PNY7C.cjs → chunk-4I45Y3DN.cjs} +6 -6
- package/dist/{chunk-K6O43WDL.cjs → chunk-4KX6OED2.cjs} +46 -46
- package/dist/{chunk-JPG7OHEG.js → chunk-5HBHO5TB.js} +1 -1
- package/dist/{chunk-3PLDQDE6.cjs → chunk-6NJKKO73.cjs} +15 -15
- package/dist/{chunk-O2RSAA5M.js → chunk-6SEANMOU.js} +11 -11
- package/dist/{chunk-WMX26HB5.js → chunk-6XIF2Z7I.js} +3 -3
- package/dist/{chunk-TQ4LB2DS.cjs → chunk-7LS22BZU.cjs} +14 -14
- package/dist/{chunk-7GEBFJT2.js → chunk-7VVFKJY5.js} +3429 -1759
- package/dist/{chunk-DDVBX42E.cjs → chunk-A75QY6CD.cjs} +21 -21
- package/dist/{chunk-OF6GEI5A.cjs → chunk-ABU3TGXA.cjs} +3 -3
- package/dist/{chunk-4CJMQLB5.js → chunk-AQWZNP6A.js} +4 -4
- package/dist/{chunk-FI6GMDO7.js → chunk-CH5232HV.js} +662 -2455
- package/dist/{chunk-Y2GSOUCS.cjs → chunk-D7BTSVMS.cjs} +2 -2
- package/dist/{chunk-4ILM7W2R.js → chunk-DENB2XJC.js} +2 -2
- package/dist/{chunk-6232S532.js → chunk-DW7G4KG3.js} +3 -3
- package/dist/{chunk-3NCM4ZQB.js → chunk-F6AFPNDF.js} +15 -15
- package/dist/{chunk-PXOQIA5K.js → chunk-F6I6XZMN.js} +5 -5
- package/dist/{chunk-G6UMNAVI.js → chunk-FCGC42TS.js} +61 -57
- package/dist/{chunk-BHI6GVC4.js → chunk-G5A3PSPV.js} +691 -1080
- package/dist/{chunk-HZ7CBXPL.cjs → chunk-HPWWNJE7.cjs} +89 -89
- package/dist/{chunk-SW5ZV2BN.cjs → chunk-IHERL5V4.cjs} +34 -34
- package/dist/{chunk-UJ33ZXDT.cjs → chunk-IKTQ3ZAG.cjs} +6 -6
- package/dist/{chunk-SEKYEWQG.cjs → chunk-JEZKGCZI.cjs} +26 -26
- package/dist/{chunk-7SCNMP2B.cjs → chunk-KOWVJD4V.cjs} +56 -56
- package/dist/chunk-LMBC5FFP.js +43 -0
- package/dist/{chunk-F57ECE2I.js → chunk-MFFCUVWG.js} +1 -1
- package/dist/{chunk-KUC673HM.js → chunk-MKXO4Q5P.js} +142 -383
- package/dist/{chunk-6NTPY5QA.cjs → chunk-MMOODW57.cjs} +94 -1887
- package/dist/{chunk-CUME3VTQ.js → chunk-MP2C3LJ4.js} +1 -1
- package/dist/{chunk-VX4E6YSB.cjs → chunk-N3COXDBH.cjs} +5 -41
- package/dist/{chunk-FXJ3WWUB.js → chunk-NDESEPW5.js} +0 -68
- package/dist/chunk-O43V3EOS.js +252 -0
- package/dist/{chunk-PLYEKV3N.cjs → chunk-OHFS7VOU.cjs} +2 -2
- package/dist/{chunk-M75XEEGT.cjs → chunk-OUY3HHW6.cjs} +539 -928
- package/dist/{chunk-CZ7Y7UG4.js → chunk-PDWVPI3S.js} +72 -4
- package/dist/{chunk-TE773HEH.js → chunk-PN2RKPDF.js} +10 -10
- package/dist/{chunk-3EZ4HHAP.js → chunk-QFXRPRFT.js} +3 -3
- package/dist/chunk-QZVSJF2K.cjs +252 -0
- package/dist/chunk-RALRPFDW.cjs +43 -0
- package/dist/{chunk-YGJKKDDM.js → chunk-RBDP4WDE.js} +6 -6
- package/dist/{chunk-LM7TXMLU.cjs → chunk-RKV5B7EU.cjs} +4 -72
- package/dist/{chunk-UVTD52MD.cjs → chunk-TYWLNCNH.cjs} +82 -14
- package/dist/{chunk-IKJA3Y7Z.js → chunk-VA5T32XA.js} +2 -2
- package/dist/{chunk-GWQEYPYM.cjs → chunk-VESKITRQ.cjs} +732 -728
- package/dist/{chunk-RQRX4YC3.cjs → chunk-VHCACDKP.cjs} +39 -39
- package/dist/{chunk-4IBPRIQH.js → chunk-VR2ZLFCP.js} +1 -1
- package/dist/{chunk-RTIPR53L.cjs → chunk-WA6GUYQ4.cjs} +104 -104
- package/dist/{chunk-T5TMCHWM.js → chunk-X5MQ7JRP.js} +9 -9
- package/dist/{chunk-LLSUVPQC.cjs → chunk-X72J4ACL.cjs} +8 -252
- package/dist/{chunk-UDFRUKLC.cjs → chunk-XOYH2YQE.cjs} +2 -2
- package/dist/{chunk-LVSFKENJ.cjs → chunk-YFBM2K6X.cjs} +4 -4
- package/dist/{chunk-DWPAAWMR.js → chunk-YHM5AWTT.js} +6 -6
- package/dist/{chunk-NCPTID44.js → chunk-Z2VNQQ74.js} +942 -978
- package/dist/{chunk-STHZBOQI.cjs → chunk-ZSAGLQOD.cjs} +17 -17
- package/dist/{chunk-VZICIQW2.js → chunk-ZSAO2HBW.js} +15 -15
- package/dist/components/case-studies/index.cjs +32 -30
- package/dist/components/case-studies/index.js +16 -14
- package/dist/components/chat/entity-cards/case-study-card.d.ts +4 -11
- package/dist/components/chat/entity-cards/case-study-card.d.ts.map +1 -1
- package/dist/components/chat/index.cjs +11 -9
- package/dist/components/chat/index.js +16 -14
- package/dist/components/chat/utils/icon-library.d.ts.map +1 -1
- package/dist/components/contact/index.cjs +14 -12
- package/dist/components/contact/index.js +13 -11
- package/dist/components/docs/index.cjs +17 -15
- package/dist/components/docs/index.js +16 -14
- package/dist/components/embeds/index.cjs +14 -12
- package/dist/components/embeds/index.js +13 -11
- package/dist/components/faq/index.cjs +15 -13
- package/dist/components/faq/index.js +14 -12
- package/dist/components/features/index.cjs +14 -12
- package/dist/components/features/index.js +23 -21
- package/dist/components/footer-waitlist-button.d.ts +29 -0
- package/dist/components/footer-waitlist-button.d.ts.map +1 -0
- package/dist/components/footer.d.ts +47 -0
- package/dist/components/footer.d.ts.map +1 -0
- package/dist/components/help-center-pages/index.cjs +120 -118
- package/dist/components/help-center-pages/index.js +35 -33
- package/dist/components/icons/index.cjs +5 -3
- package/dist/components/icons/index.js +11 -9
- package/dist/components/icons-v2-generated/index.cjs +5 -3
- package/dist/components/icons-v2-generated/index.js +4 -2
- package/dist/components/index.cjs +159 -86
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +402 -329
- package/dist/components/loading/page-layout-skeleton.d.ts +1 -1
- package/dist/components/meeting-scheduler/index.cjs +64 -62
- package/dist/components/meeting-scheduler/index.js +14 -12
- package/dist/components/navigation/client-only-header.d.ts +8 -0
- package/dist/components/navigation/client-only-header.d.ts.map +1 -0
- package/dist/components/navigation/header-skeleton.d.ts +12 -0
- package/dist/components/navigation/header-skeleton.d.ts.map +1 -0
- package/dist/components/navigation/header.d.ts +9 -0
- package/dist/components/navigation/header.d.ts.map +1 -0
- package/dist/components/navigation/index.cjs +16 -28
- package/dist/components/navigation/index.d.ts +10 -14
- package/dist/components/navigation/index.d.ts.map +1 -1
- package/dist/components/navigation/index.js +26 -38
- package/dist/components/navigation/mingo-ai-button.d.ts +3 -38
- package/dist/components/navigation/mingo-ai-button.d.ts.map +1 -1
- package/dist/components/navigation/mobile-nav-panel.d.ts +10 -0
- package/dist/components/navigation/mobile-nav-panel.d.ts.map +1 -0
- package/dist/components/navigation/navigation-sidebar-item.d.ts +2 -1
- package/dist/components/navigation/navigation-sidebar-item.d.ts.map +1 -1
- package/dist/components/navigation/top-navigation.d.ts +2 -2
- package/dist/components/navigation/top-navigation.d.ts.map +1 -1
- package/dist/components/onboarding-guides/index.cjs +17 -15
- package/dist/components/onboarding-guides/index.js +16 -14
- package/dist/components/related-content/index.cjs +8 -10
- package/dist/components/related-content/index.js +7 -9
- package/dist/components/tickets/index.cjs +18 -16
- package/dist/components/tickets/index.js +17 -15
- package/dist/components/ui/index.cjs +14 -12
- package/dist/components/ui/index.js +19 -17
- package/dist/hooks/index.cjs +11 -19
- package/dist/hooks/index.d.ts +0 -1
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +11 -19
- package/dist/hooks/ui/index.d.ts +0 -3
- package/dist/hooks/ui/index.d.ts.map +1 -1
- package/dist/index.cjs +22 -55
- package/dist/index.js +196 -229
- package/dist/types/case-study.d.ts +0 -9
- package/dist/types/case-study.d.ts.map +1 -1
- package/dist/types/navigation.d.ts +65 -95
- package/dist/types/navigation.d.ts.map +1 -1
- package/dist/utils/index.cjs +0 -55
- package/dist/utils/index.d.ts +0 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -50
- package/dist/utils/source-icons.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/chat/entity-cards/case-study-card.tsx +5 -115
- package/src/components/chat/utils/icon-library.tsx +1 -35
- package/src/components/footer-waitlist-button.tsx +53 -0
- package/src/components/footer.tsx +195 -0
- package/src/components/index.ts +2 -0
- package/src/components/loading/page-layout-skeleton.tsx +1 -1
- package/src/components/navigation/client-only-header.tsx +22 -0
- package/src/components/navigation/header-skeleton.tsx +74 -0
- package/src/components/navigation/header.tsx +429 -0
- package/src/components/navigation/index.ts +14 -21
- package/src/components/navigation/mingo-ai-button.tsx +63 -139
- package/src/components/navigation/mobile-nav-panel.tsx +155 -0
- package/src/components/navigation/navigation-sidebar-item.tsx +2 -1
- package/src/components/navigation/ticket-alerts-button.tsx +2 -2
- package/src/components/navigation/top-navigation.tsx +2 -2
- package/src/hooks/index.ts +0 -1
- package/src/hooks/ui/index.ts +0 -3
- package/src/styles/chat-animations.css +2 -57
- package/src/types/case-study.ts +0 -16
- package/src/types/navigation.ts +66 -80
- package/src/utils/index.ts +0 -1
- package/src/utils/source-icons.ts +0 -13
- package/dist/components/navigation/mobile-nav-sheet-id.d.ts +0 -3
- package/dist/components/navigation/mobile-nav-sheet-id.d.ts.map +0 -1
- package/dist/components/navigation/mobile-nav-sheet.d.ts +0 -48
- package/dist/components/navigation/mobile-nav-sheet.d.ts.map +0 -1
- package/dist/components/navigation/nav-item-row.d.ts +0 -27
- package/dist/components/navigation/nav-item-row.d.ts.map +0 -1
- package/dist/components/navigation/nav-panel.d.ts +0 -43
- package/dist/components/navigation/nav-panel.d.ts.map +0 -1
- package/dist/components/navigation/site-footer.d.ts +0 -28
- package/dist/components/navigation/site-footer.d.ts.map +0 -1
- package/dist/components/navigation/site-header.d.ts +0 -61
- package/dist/components/navigation/site-header.d.ts.map +0 -1
- package/dist/components/navigation/site-nav-link.d.ts +0 -26
- package/dist/components/navigation/site-nav-link.d.ts.map +0 -1
- package/dist/hooks/ui/use-active-section.d.ts +0 -10
- package/dist/hooks/ui/use-active-section.d.ts.map +0 -1
- package/dist/hooks/ui/use-nav-menus.d.ts +0 -48
- package/dist/hooks/ui/use-nav-menus.d.ts.map +0 -1
- package/dist/hooks/ui/use-visitor-os.d.ts +0 -15
- package/dist/hooks/ui/use-visitor-os.d.ts.map +0 -1
- package/dist/hooks/use-location-hash.d.ts +0 -9
- package/dist/hooks/use-location-hash.d.ts.map +0 -1
- package/dist/utils/visitor-os.d.ts +0 -45
- package/dist/utils/visitor-os.d.ts.map +0 -1
- package/src/components/navigation/mobile-nav-sheet-id.ts +0 -2
- package/src/components/navigation/mobile-nav-sheet.tsx +0 -241
- package/src/components/navigation/nav-item-row.tsx +0 -129
- package/src/components/navigation/nav-panel.tsx +0 -196
- package/src/components/navigation/site-footer.tsx +0 -256
- package/src/components/navigation/site-header.tsx +0 -339
- package/src/components/navigation/site-nav-link.tsx +0 -41
- package/src/hooks/ui/use-active-section.ts +0 -44
- package/src/hooks/ui/use-nav-menus.ts +0 -200
- package/src/hooks/ui/use-visitor-os.ts +0 -33
- package/src/hooks/use-location-hash.ts +0 -34
- package/src/utils/visitor-os.ts +0 -84
|
@@ -9,66 +9,25 @@ var _chunkMGHIV4L6cjs = require('./chunk-MGHIV4L6.cjs');
|
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
|
|
12
|
+
var _chunkRKV5B7EUcjs = require('./chunk-RKV5B7EU.cjs');
|
|
12
13
|
|
|
13
14
|
|
|
14
15
|
|
|
15
16
|
|
|
16
|
-
var _chunkLM7TXMLUcjs = require('./chunk-LM7TXMLU.cjs');
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
|
|
22
|
+
var _chunkQZVSJF2Kcjs = require('./chunk-QZVSJF2K.cjs');
|
|
22
23
|
|
|
23
24
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
var _chunkLLSUVPQCcjs = require('./chunk-LLSUVPQC.cjs');
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
var _chunkVX4E6YSBcjs = require('./chunk-VX4E6YSB.cjs');
|
|
25
|
+
var _chunkRALRPFDWcjs = require('./chunk-RALRPFDW.cjs');
|
|
64
26
|
|
|
65
27
|
|
|
66
28
|
var _chunkUJ7AXHRZcjs = require('./chunk-UJ7AXHRZ.cjs');
|
|
67
29
|
|
|
68
30
|
|
|
69
|
-
var _chunk4GFNWALLcjs = require('./chunk-4GFNWALL.cjs');
|
|
70
|
-
|
|
71
|
-
|
|
72
31
|
var _chunkDFQYAYBHcjs = require('./chunk-DFQYAYBH.cjs');
|
|
73
32
|
|
|
74
33
|
|
|
@@ -308,7 +267,7 @@ var disabledTagClasses = [
|
|
|
308
267
|
];
|
|
309
268
|
function TagLabel({ label, labelClassName }) {
|
|
310
269
|
const isString = typeof label === "string";
|
|
311
|
-
const { ref, isTruncated } =
|
|
270
|
+
const { ref, isTruncated } = _chunkRKV5B7EUcjs.useIsTruncated.call(void 0, isString ? label : null);
|
|
312
271
|
if (!isString) {
|
|
313
272
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk3ATAYP36cjs.cn.call(void 0, "truncate", labelClassName), children: label });
|
|
314
273
|
}
|
|
@@ -360,7 +319,7 @@ function Tag({
|
|
|
360
319
|
disabled ? "cursor-not-allowed" : "hover:opacity-100"
|
|
361
320
|
),
|
|
362
321
|
"aria-label": "Remove",
|
|
363
|
-
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
322
|
+
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRALRPFDWcjs.XmarkCircleIcon, { className: "size-4" })
|
|
364
323
|
}
|
|
365
324
|
)
|
|
366
325
|
]
|
|
@@ -895,7 +854,7 @@ var SquareAvatar = _react3.memo.call(void 0,
|
|
|
895
854
|
style,
|
|
896
855
|
...props
|
|
897
856
|
}, ref) => {
|
|
898
|
-
const resolvedSrc =
|
|
857
|
+
const resolvedSrc = _chunkRKV5B7EUcjs.useAuthedImageSrc.call(void 0, src);
|
|
899
858
|
const sizeClasses2 = {
|
|
900
859
|
// xs (24px): dense card meta rows — avatar stacks on delivery/
|
|
901
860
|
// roadmap cards. Part of the shared scale so no caller ever
|
|
@@ -1088,7 +1047,7 @@ var Modal = _react3.forwardRef.call(void 0, ({ isOpen, onClose, children, classN
|
|
|
1088
1047
|
),
|
|
1089
1048
|
role: "dialog",
|
|
1090
1049
|
"aria-modal": "true",
|
|
1091
|
-
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1050
|
+
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKV5B7EUcjs.ViewportBreakpoints, { children })
|
|
1092
1051
|
}
|
|
1093
1052
|
)
|
|
1094
1053
|
] });
|
|
@@ -1211,90 +1170,6 @@ function ImageGalleryModal({ images, isOpen, onClose, initialIndex = 0 }) {
|
|
|
1211
1170
|
] }) });
|
|
1212
1171
|
}
|
|
1213
1172
|
|
|
1214
|
-
// src/utils/fetch-priority.ts
|
|
1215
|
-
|
|
1216
|
-
var REACT_MAJOR = parseInt((_react4.default.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 (e3) {
|
|
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
|
-
|
|
1242
|
-
var _reactdom = require('react-dom'); var _reactdom2 = _interopRequireDefault(_reactdom);
|
|
1243
|
-
function saveDataEnabled() {
|
|
1244
|
-
if (typeof navigator === "undefined") return false;
|
|
1245
|
-
const conn = navigator.connection;
|
|
1246
|
-
return _optionalChain([conn, 'optionalAccess', _17 => _17.saveData]) === true;
|
|
1247
|
-
}
|
|
1248
|
-
function useVideoOriginPreconnect({ supabaseStorageOrigin } = {}) {
|
|
1249
|
-
const runtime = _chunkUJ7AXHRZcjs.useChatRuntime.call(void 0, );
|
|
1250
|
-
const resolvedOrigin = _nullishCoalesce(supabaseStorageOrigin, () => ( _optionalChain([runtime, 'optionalAccess', _18 => _18.endpoints, 'access', _19 => _19.supabaseStorageOrigin])));
|
|
1251
|
-
try {
|
|
1252
|
-
_reactdom2.default.preconnect(MUX_STREAM_ORIGIN, { crossOrigin: "anonymous" });
|
|
1253
|
-
_reactdom2.default.preconnect(MUX_IMAGE_ORIGIN, { crossOrigin: "anonymous" });
|
|
1254
|
-
if (resolvedOrigin) {
|
|
1255
|
-
_reactdom2.default.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 = _chunkUJ7AXHRZcjs.useChatRuntime.call(void 0, );
|
|
1269
|
-
const resolvedOrigin = _nullishCoalesce(supabaseStorageOrigin, () => ( _optionalChain([runtime, 'optionalAccess', _20 => _20.endpoints, 'access', _21 => _21.supabaseStorageOrigin])));
|
|
1270
|
-
useVideoOriginPreconnect({ supabaseStorageOrigin: resolvedOrigin });
|
|
1271
|
-
const { ref, isNear } = _chunkLM7TXMLUcjs.useNearViewport.call(void 0, nearMargin);
|
|
1272
|
-
_react3.useEffect.call(void 0, () => {
|
|
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 (e4) {
|
|
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
|
|
|
1300
1175
|
var SIZES = {
|
|
@@ -1321,7 +1196,7 @@ function VideoPlayBadge({ size: size2 = "md", className }) {
|
|
|
1321
1196
|
className
|
|
1322
1197
|
),
|
|
1323
1198
|
style: { filter: GLYPH_SHADOW },
|
|
1324
|
-
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1199
|
+
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQZVSJF2Kcjs.PlayFilledIcon, { size: SIZES[size2], color: "currentColor" })
|
|
1325
1200
|
}
|
|
1326
1201
|
);
|
|
1327
1202
|
}
|
|
@@ -1341,7 +1216,7 @@ function CardHoverPlay({ size: size2 = "md", className }) {
|
|
|
1341
1216
|
}
|
|
1342
1217
|
function VideoUnmuteGlyph({ size: size2 = "md", className }) {
|
|
1343
1218
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1344
|
-
|
|
1219
|
+
_chunkQZVSJF2Kcjs.VolumeOffFilledIcon,
|
|
1345
1220
|
{
|
|
1346
1221
|
size: SIZES[size2],
|
|
1347
1222
|
color: "currentColor",
|
|
@@ -1351,923 +1226,6 @@ function VideoUnmuteGlyph({ size: size2 = "md", className }) {
|
|
|
1351
1226
|
);
|
|
1352
1227
|
}
|
|
1353
1228
|
|
|
1354
|
-
// src/components/features/video.tsx
|
|
1355
|
-
var _muxplayerreact = require('@mux/mux-player-react'); var _muxplayerreact2 = _interopRequireDefault(_muxplayerreact);
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
// src/components/features/use-ios-native-video-fullscreen.ts
|
|
1359
|
-
|
|
1360
|
-
var ENTER_FULLSCREEN_REQUEST = "mediaenterfullscreenrequest";
|
|
1361
|
-
function isIosAppShell() {
|
|
1362
|
-
const capacitor = globalThis.Capacitor;
|
|
1363
|
-
return _optionalChain([capacitor, 'optionalAccess', _22 => _22.isNativePlatform, 'optionalCall', _23 => _23()]) === true && _optionalChain([capacitor, 'access', _24 => _24.getPlatform, 'optionalCall', _25 => _25()]) === "ios";
|
|
1364
|
-
}
|
|
1365
|
-
function nativeVideoElement(player) {
|
|
1366
|
-
const media = player.media;
|
|
1367
|
-
const element = _nullishCoalesce(_optionalChain([media, 'optionalAccess', _26 => _26.nativeEl]), () => ( media));
|
|
1368
|
-
return element instanceof HTMLVideoElement ? element : null;
|
|
1369
|
-
}
|
|
1370
|
-
function useIosNativeVideoFullscreen(playerRef) {
|
|
1371
|
-
_react3.useEffect.call(void 0, () => {
|
|
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 (!_optionalChain([video, 'optionalAccess', _27 => _27.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
|
-
|
|
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 (e5) {
|
|
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 (e6) {
|
|
1406
|
-
return void 0;
|
|
1407
|
-
}
|
|
1408
|
-
}
|
|
1409
|
-
if (typeof document !== "undefined") {
|
|
1410
|
-
try {
|
|
1411
|
-
document.cookie = "muxData=; path=/; max-age=0";
|
|
1412
|
-
} catch (e7) {
|
|
1413
|
-
}
|
|
1414
|
-
}
|
|
1415
|
-
if (typeof window !== "undefined") {
|
|
1416
|
-
const w = window;
|
|
1417
|
-
if (!_optionalChain([w, 'access', _28 => _28.chrome, 'optionalAccess', _29 => _29.cast])) {
|
|
1418
|
-
w.chrome = { ..._nullishCoalesce(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 (e8) {
|
|
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 (e9) {
|
|
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 (e10) {
|
|
1481
|
-
return null;
|
|
1482
|
-
}
|
|
1483
|
-
if (!YT_HOSTS.has(u.hostname.toLowerCase())) return null;
|
|
1484
|
-
if (u.hostname.toLowerCase().endsWith("youtu.be")) {
|
|
1485
|
-
return _nullishCoalesce(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 (e11) {
|
|
1498
|
-
}
|
|
1499
|
-
}
|
|
1500
|
-
var VIDEO_STALL_TIMEOUT_MS = 15e3;
|
|
1501
|
-
function VideoErrorOverlay({
|
|
1502
|
-
onRetry,
|
|
1503
|
-
watchOnYouTubeId
|
|
1504
|
-
}) {
|
|
1505
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "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__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h6", children: "This video failed to play." }),
|
|
1507
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-sf)]", children: [
|
|
1508
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDFQYAYBHcjs.Button, { variant: "outline", size: "small", onClick: onRetry, children: "Try again" }),
|
|
1509
|
-
watchOnYouTubeId ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1510
|
-
_chunkDFQYAYBHcjs.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 } = _chunkLM7TXMLUcjs.useNearViewport.call(void 0, );
|
|
1556
|
-
const url = props.url;
|
|
1557
|
-
if (!url) return null;
|
|
1558
|
-
const effectiveKind = resolveKind(props, url);
|
|
1559
|
-
const layout = _nullishCoalesce(props.layout, () => ( "native"));
|
|
1560
|
-
if (props.lazy && !isNear) {
|
|
1561
|
-
return wrapWithLayout(
|
|
1562
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
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__ */ _jsxruntime.jsx.call(void 0,
|
|
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__ */ _jsxruntime.jsx.call(void 0,
|
|
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__ */ _jsxruntime.jsx.call(void 0,
|
|
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__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex w-full justify-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "aspect-video w-full max-w-3xl overflow-hidden rounded-lg border border-ods-border", children: inner }) });
|
|
1617
|
-
case "fill":
|
|
1618
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute inset-0 h-full w-full", children: inner });
|
|
1619
|
-
case "wide":
|
|
1620
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "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__ */ _jsxruntime.jsx.call(void 0,
|
|
1633
|
-
"div",
|
|
1634
|
-
{
|
|
1635
|
-
"aria-hidden": true,
|
|
1636
|
-
className: "h-full w-full",
|
|
1637
|
-
style: { "--media-background-color": "transparent" },
|
|
1638
|
-
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, 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 = _nullishCoalesce(preload, () => ( (saveDataEnabled() ? "none" : "metadata")));
|
|
1666
|
-
const resolvedCaptionsUrl = _chunkLM7TXMLUcjs.useAuthedAssetSrc.call(void 0, captionsUrl, "text/vtt, */*");
|
|
1667
|
-
const [hoverMutedFallback, setHoverMutedFallback] = _react3.useState.call(void 0, () => Boolean(startMuted));
|
|
1668
|
-
const hoverPlayerRef = _react3.useRef.call(void 0, null);
|
|
1669
|
-
const [mutedFallbackBlocked, setMutedFallbackBlocked] = _react3.useState.call(void 0, false);
|
|
1670
|
-
const perfListenerRef = _react3.useRef.call(void 0, null);
|
|
1671
|
-
const clearPerfListener = _react3.useCallback.call(void 0, () => {
|
|
1672
|
-
if (perfListenerRef.current) {
|
|
1673
|
-
try {
|
|
1674
|
-
_optionalChain([hoverPlayerRef, 'access', _30 => _30.current, 'optionalAccess', _31 => _31.removeEventListener, 'optionalCall', _32 => _32("playing", perfListenerRef.current)]);
|
|
1675
|
-
} catch (e12) {
|
|
1676
|
-
}
|
|
1677
|
-
perfListenerRef.current = null;
|
|
1678
|
-
}
|
|
1679
|
-
}, []);
|
|
1680
|
-
_react3.useEffect.call(void 0, () => clearPerfListener, [clearPerfListener]);
|
|
1681
|
-
const hoverActiveRef = _react3.useRef.call(void 0, false);
|
|
1682
|
-
const hoverGenerationRef = _react3.useRef.call(void 0, 0);
|
|
1683
|
-
const activationWaiterRef = _react3.useRef.call(void 0, null);
|
|
1684
|
-
const clearActivationWaiter = _react3.useCallback.call(void 0, () => {
|
|
1685
|
-
if (activationWaiterRef.current) {
|
|
1686
|
-
activationWaiters.delete(activationWaiterRef.current);
|
|
1687
|
-
activationWaiterRef.current = null;
|
|
1688
|
-
}
|
|
1689
|
-
}, []);
|
|
1690
|
-
_react3.useEffect.call(void 0, () => clearActivationWaiter, [clearActivationWaiter]);
|
|
1691
|
-
const mutedIntentRef = _react3.useRef.call(void 0, mutedIntent);
|
|
1692
|
-
_react3.useEffect.call(void 0, () => {
|
|
1693
|
-
mutedIntentRef.current = mutedIntent;
|
|
1694
|
-
});
|
|
1695
|
-
const startHoverPlayback = _react3.useCallback.call(void 0, () => {
|
|
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
|
-
_optionalChain([el, 'access', _33 => _33.addEventListener, 'optionalCall', _34 => _34("playing", onPlaying)]);
|
|
1710
|
-
} catch (e13) {
|
|
1711
|
-
}
|
|
1712
|
-
}
|
|
1713
|
-
try {
|
|
1714
|
-
el.volume = 0.5;
|
|
1715
|
-
if (userHasInteracted) {
|
|
1716
|
-
el.muted = mutedIntentRef.current;
|
|
1717
|
-
_optionalChain([el, 'access', _35 => _35.play, 'optionalCall', _36 => _36(), 'optionalAccess', _37 => _37.catch, 'optionalCall', _38 => _38((err) => {
|
|
1718
|
-
const name = _optionalChain([err, 'optionalAccess', _39 => _39.name]);
|
|
1719
|
-
if (name === "NotAllowedError" && hoverActiveRef.current && generation === hoverGenerationRef.current) {
|
|
1720
|
-
try {
|
|
1721
|
-
el.muted = true;
|
|
1722
|
-
_optionalChain([el, 'access', _40 => _40.play, 'optionalCall', _41 => _41(), 'optionalAccess', _42 => _42.catch, 'optionalCall', _43 => _43(() => {
|
|
1723
|
-
if (hoverActiveRef.current && generation === hoverGenerationRef.current) {
|
|
1724
|
-
setMutedFallbackBlocked(true);
|
|
1725
|
-
}
|
|
1726
|
-
})]);
|
|
1727
|
-
setHoverMutedFallback(true);
|
|
1728
|
-
} catch (e14) {
|
|
1729
|
-
}
|
|
1730
|
-
}
|
|
1731
|
-
})]);
|
|
1732
|
-
} else {
|
|
1733
|
-
el.muted = true;
|
|
1734
|
-
_optionalChain([el, 'access', _44 => _44.play, 'optionalCall', _45 => _45(), 'optionalAccess', _46 => _46.catch, 'optionalCall', _47 => _47(() => {
|
|
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 (e15) {
|
|
1748
|
-
}
|
|
1749
|
-
setHoverMutedFallback(false);
|
|
1750
|
-
}
|
|
1751
|
-
};
|
|
1752
|
-
activationWaiterRef.current = waiter;
|
|
1753
|
-
activationWaiters.add(waiter);
|
|
1754
|
-
}
|
|
1755
|
-
} catch (e16) {
|
|
1756
|
-
}
|
|
1757
|
-
}, [clearActivationWaiter, clearPerfListener]);
|
|
1758
|
-
const stopHoverPlayback = _react3.useCallback.call(void 0, () => {
|
|
1759
|
-
hoverActiveRef.current = false;
|
|
1760
|
-
setHoverMutedFallback(false);
|
|
1761
|
-
clearActivationWaiter();
|
|
1762
|
-
clearPerfListener();
|
|
1763
|
-
try {
|
|
1764
|
-
_optionalChain([hoverPlayerRef, 'access', _48 => _48.current, 'optionalAccess', _49 => _49.pause, 'optionalCall', _50 => _50()]);
|
|
1765
|
-
} catch (e17) {
|
|
1766
|
-
}
|
|
1767
|
-
}, [clearActivationWaiter, clearPerfListener]);
|
|
1768
|
-
const unmuteNow = _react3.useCallback.call(void 0, (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
|
-
_optionalChain([el, 'access', _51 => _51.play, 'optionalCall', _52 => _52(), 'optionalAccess', _53 => _53.catch, 'optionalCall', _54 => _54(() => {
|
|
1777
|
-
})]);
|
|
1778
|
-
}
|
|
1779
|
-
} catch (e18) {
|
|
1780
|
-
}
|
|
1781
|
-
setHoverMutedFallback(false);
|
|
1782
|
-
}, []);
|
|
1783
|
-
const hoverControlled = typeof playWhenHovered === "boolean";
|
|
1784
|
-
_react3.useEffect.call(void 0, () => {
|
|
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 = _react3.useRef.call(void 0, onMutedFallbackChange);
|
|
1792
|
-
_react3.useEffect.call(void 0, () => {
|
|
1793
|
-
onMutedFallbackChangeRef.current = onMutedFallbackChange;
|
|
1794
|
-
});
|
|
1795
|
-
_react3.useEffect.call(void 0, () => {
|
|
1796
|
-
_optionalChain([onMutedFallbackChangeRef, 'access', _55 => _55.current, 'optionalCall', _56 => _56({
|
|
1797
|
-
muted: hoverMutedFallback,
|
|
1798
|
-
blocked: hoverMutedFallback && mutedFallbackBlocked
|
|
1799
|
-
})]);
|
|
1800
|
-
}, [hoverMutedFallback, mutedFallbackBlocked]);
|
|
1801
|
-
const autoPlayKickedRef = _react3.useRef.call(void 0, false);
|
|
1802
|
-
_react3.useEffect.call(void 0, () => {
|
|
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 (e19) {
|
|
1811
|
-
}
|
|
1812
|
-
if (autoPlay) {
|
|
1813
|
-
const reportBlocked = () => setMutedFallbackBlocked(true);
|
|
1814
|
-
try {
|
|
1815
|
-
_optionalChain([mutedEl, 'access', _57 => _57.play, 'optionalCall', _58 => _58(), 'optionalAccess', _59 => _59.catch, 'optionalCall', _60 => _60(reportBlocked)]);
|
|
1816
|
-
} catch (e20) {
|
|
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
|
-
_optionalChain([el, 'access', _61 => _61.play, 'optionalCall', _62 => _62(), 'optionalAccess', _63 => _63.catch, 'optionalCall', _64 => _64((err) => {
|
|
1830
|
-
const name = _optionalChain([err, 'optionalAccess', _65 => _65.name]);
|
|
1831
|
-
if (name !== "NotAllowedError") return;
|
|
1832
|
-
try {
|
|
1833
|
-
el.muted = true;
|
|
1834
|
-
_optionalChain([el, 'access', _66 => _66.play, 'optionalCall', _67 => _67(), 'optionalAccess', _68 => _68.catch, 'optionalCall', _69 => _69(() => {
|
|
1835
|
-
setMutedFallbackBlocked(true);
|
|
1836
|
-
setHoverMutedFallback(true);
|
|
1837
|
-
})]);
|
|
1838
|
-
setMutedFallbackBlocked(false);
|
|
1839
|
-
setHoverMutedFallback(true);
|
|
1840
|
-
} catch (e21) {
|
|
1841
|
-
setMutedFallbackBlocked(true);
|
|
1842
|
-
setHoverMutedFallback(true);
|
|
1843
|
-
}
|
|
1844
|
-
})]);
|
|
1845
|
-
} catch (e22) {
|
|
1846
|
-
}
|
|
1847
|
-
}, [autoPlayUnmuted, startMuted, autoPlay]);
|
|
1848
|
-
_react3.useEffect.call(void 0, () => {
|
|
1849
|
-
const el = hoverPlayerRef.current;
|
|
1850
|
-
if (!_optionalChain([el, 'optionalAccess', _70 => _70.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 (e23) {
|
|
1860
|
-
}
|
|
1861
|
-
return () => {
|
|
1862
|
-
try {
|
|
1863
|
-
_optionalChain([el, 'access', _71 => _71.removeEventListener, 'optionalCall', _72 => _72("volumechange", onVolumeChange)]);
|
|
1864
|
-
} catch (e24) {
|
|
1865
|
-
}
|
|
1866
|
-
};
|
|
1867
|
-
}, []);
|
|
1868
|
-
_react3.useEffect.call(void 0, () => {
|
|
1869
|
-
const el = hoverPlayerRef.current;
|
|
1870
|
-
if (!_optionalChain([el, 'optionalAccess', _73 => _73.addEventListener])) return void 0;
|
|
1871
|
-
const onPlaying = () => setMutedFallbackBlocked(false);
|
|
1872
|
-
try {
|
|
1873
|
-
el.addEventListener("playing", onPlaying);
|
|
1874
|
-
} catch (e25) {
|
|
1875
|
-
}
|
|
1876
|
-
return () => {
|
|
1877
|
-
try {
|
|
1878
|
-
_optionalChain([el, 'access', _74 => _74.removeEventListener, 'optionalCall', _75 => _75("playing", onPlaying)]);
|
|
1879
|
-
} catch (e26) {
|
|
1880
|
-
}
|
|
1881
|
-
};
|
|
1882
|
-
}, []);
|
|
1883
|
-
const onEndedRef = _react3.useRef.call(void 0, onEnded);
|
|
1884
|
-
_react3.useEffect.call(void 0, () => {
|
|
1885
|
-
onEndedRef.current = onEnded;
|
|
1886
|
-
});
|
|
1887
|
-
_react3.useEffect.call(void 0, () => {
|
|
1888
|
-
const el = hoverPlayerRef.current;
|
|
1889
|
-
if (!_optionalChain([el, 'optionalAccess', _76 => _76.addEventListener])) return void 0;
|
|
1890
|
-
const handler = () => _optionalChain([onEndedRef, 'access', _77 => _77.current, 'optionalCall', _78 => _78()]);
|
|
1891
|
-
try {
|
|
1892
|
-
el.addEventListener("ended", handler);
|
|
1893
|
-
} catch (e27) {
|
|
1894
|
-
}
|
|
1895
|
-
return () => {
|
|
1896
|
-
try {
|
|
1897
|
-
_optionalChain([el, 'access', _79 => _79.removeEventListener, 'optionalCall', _80 => _80("ended", handler)]);
|
|
1898
|
-
} catch (e28) {
|
|
1899
|
-
}
|
|
1900
|
-
};
|
|
1901
|
-
}, []);
|
|
1902
|
-
useIosNativeVideoFullscreen(hoverPlayerRef);
|
|
1903
|
-
_react3.useImperativeHandle.call(void 0,
|
|
1904
|
-
playerHandleRef,
|
|
1905
|
-
() => ({
|
|
1906
|
-
getCurrentTime: () => _nullishCoalesce(_optionalChain([hoverPlayerRef, 'access', _81 => _81.current, 'optionalAccess', _82 => _82.currentTime]), () => ( 0)),
|
|
1907
|
-
getDuration: () => {
|
|
1908
|
-
const d = _optionalChain([hoverPlayerRef, 'access', _83 => _83.current, 'optionalAccess', _84 => _84.duration]);
|
|
1909
|
-
return typeof d === "number" && isFinite(d) ? d : 0;
|
|
1910
|
-
},
|
|
1911
|
-
getPaused: () => _nullishCoalesce(_optionalChain([hoverPlayerRef, 'access', _85 => _85.current, 'optionalAccess', _86 => _86.paused]), () => ( true)),
|
|
1912
|
-
getMuted: () => _nullishCoalesce(_optionalChain([hoverPlayerRef, 'access', _87 => _87.current, 'optionalAccess', _88 => _88.muted]), () => ( false)),
|
|
1913
|
-
play: async () => {
|
|
1914
|
-
await _optionalChain([hoverPlayerRef, 'access', _89 => _89.current, 'optionalAccess', _90 => _90.play, 'optionalCall', _91 => _91()]);
|
|
1915
|
-
},
|
|
1916
|
-
pause: () => {
|
|
1917
|
-
try {
|
|
1918
|
-
_optionalChain([hoverPlayerRef, 'access', _92 => _92.current, 'optionalAccess', _93 => _93.pause, 'optionalCall', _94 => _94()]);
|
|
1919
|
-
} catch (e29) {
|
|
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 (e30) {
|
|
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] = _react3.useState.call(void 0, false);
|
|
1944
|
-
const stallTimerRef = _react3.useRef.call(void 0, null);
|
|
1945
|
-
const clearStallTimer = _react3.useCallback.call(void 0, () => {
|
|
1946
|
-
if (stallTimerRef.current !== null) {
|
|
1947
|
-
clearTimeout(stallTimerRef.current);
|
|
1948
|
-
stallTimerRef.current = null;
|
|
1949
|
-
}
|
|
1950
|
-
}, []);
|
|
1951
|
-
_react3.useEffect.call(void 0, () => clearStallTimer, [clearStallTimer]);
|
|
1952
|
-
const failPlayback = _react3.useCallback.call(void 0,
|
|
1953
|
-
(reason) => {
|
|
1954
|
-
clearStallTimer();
|
|
1955
|
-
setPlaybackFailed(true);
|
|
1956
|
-
reportPlaybackFailure({ kind: "file", src: url, reason });
|
|
1957
|
-
},
|
|
1958
|
-
[clearStallTimer, url]
|
|
1959
|
-
);
|
|
1960
|
-
const armStallTimer = _react3.useCallback.call(void 0, () => {
|
|
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 = _react3.useCallback.call(void 0, () => {
|
|
1971
|
-
clearStallTimer();
|
|
1972
|
-
setPlaybackFailed(false);
|
|
1973
|
-
}, [clearStallTimer]);
|
|
1974
|
-
const handleMediaError = _react3.useCallback.call(void 0, () => {
|
|
1975
|
-
if (!monitorHealth) return;
|
|
1976
|
-
failPlayback("error");
|
|
1977
|
-
}, [monitorHealth, failPlayback]);
|
|
1978
|
-
const retryPlayback = _react3.useCallback.call(void 0, () => {
|
|
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
|
-
_optionalChain([el, 'access', _95 => _95.load, 'optionalCall', _96 => _96()]);
|
|
1986
|
-
if (resumeAt > 0 && el.addEventListener && el.removeEventListener) {
|
|
1987
|
-
const seekBack = () => {
|
|
1988
|
-
_optionalChain([el, 'access', _97 => _97.removeEventListener, 'optionalCall', _98 => _98("loadedmetadata", seekBack)]);
|
|
1989
|
-
try {
|
|
1990
|
-
el.currentTime = resumeAt;
|
|
1991
|
-
} catch (e31) {
|
|
1992
|
-
}
|
|
1993
|
-
};
|
|
1994
|
-
el.addEventListener("loadedmetadata", seekBack);
|
|
1995
|
-
}
|
|
1996
|
-
_optionalChain([el, 'access', _99 => _99.play, 'optionalCall', _100 => _100(), 'optionalAccess', _101 => _101.catch, 'optionalCall', _102 => _102(() => {
|
|
1997
|
-
})]);
|
|
1998
|
-
} catch (e32) {
|
|
1999
|
-
}
|
|
2000
|
-
}, [clearStallTimer]);
|
|
2001
|
-
const errorOverlay = monitorHealth && playbackFailed ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, VideoErrorOverlay, { onRetry: retryPlayback }) : null;
|
|
2002
|
-
const player = /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2003
|
-
_muxplayerreact2.default,
|
|
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__ */ _jsxruntime.jsx.call(void 0, "track", { kind: "captions", src: resolvedCaptionsUrl, srcLang: "en", label: "English", default: true }) : null
|
|
2033
|
-
}
|
|
2034
|
-
);
|
|
2035
|
-
const unmuteBadge = hoverMutedFallback && !hideMutedBadge ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
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__ */ _jsxruntime.jsx.call(void 0, VideoUnmuteGlyph, {})
|
|
2044
|
-
}
|
|
2045
|
-
) : null;
|
|
2046
|
-
if (playOnHover && !hoverControlled) {
|
|
2047
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "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__ */ _jsxruntime.jsxs.call(void 0, "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__ */ _jsxruntime.jsx.call(void 0,
|
|
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] = _react3.useState.call(void 0, Boolean(autoActivate));
|
|
2116
|
-
const [prevAutoActivate, setPrevAutoActivate] = _react3.useState.call(void 0, Boolean(autoActivate));
|
|
2117
|
-
if (Boolean(autoActivate) !== prevAutoActivate) {
|
|
2118
|
-
setPrevAutoActivate(Boolean(autoActivate));
|
|
2119
|
-
if (autoActivate) setActivated(true);
|
|
2120
|
-
}
|
|
2121
|
-
const [failed, setFailed] = _react3.useState.call(void 0, false);
|
|
2122
|
-
const [reloadNonce, setReloadNonce] = _react3.useState.call(void 0, 0);
|
|
2123
|
-
const iframeRef = _react3.useRef.call(void 0, null);
|
|
2124
|
-
const retry = _react3.useCallback.call(void 0, () => {
|
|
2125
|
-
setFailed(false);
|
|
2126
|
-
setReloadNonce((n) => n + 1);
|
|
2127
|
-
}, []);
|
|
2128
|
-
const embedUrl = _react3.useMemo.call(void 0, () => {
|
|
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] = _react3.useState.call(void 0, 0);
|
|
2150
|
-
const [posterTierFor, setPosterTierFor] = _react3.useState.call(void 0, 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
|
-
_react3.useEffect.call(void 0, () => {
|
|
2160
|
-
if (!activated || failed) return void 0;
|
|
2161
|
-
const iframe = iframeRef.current;
|
|
2162
|
-
if (!iframe) return void 0;
|
|
2163
|
-
function subscribe() {
|
|
2164
|
-
_optionalChain([iframe, 'optionalAccess', _103 => _103.contentWindow, 'optionalAccess', _104 => _104.postMessage, 'call', _105 => _105('{"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 (e33) {
|
|
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 = _optionalChain([payload, 'access', _106 => _106.info, 'optionalAccess', _107 => _107.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
|
-
_optionalChain([iframeRef, 'access', _108 => _108.current, 'optionalAccess', _109 => _109.blur, 'call', _110 => _110()]);
|
|
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 = _react3.useRef.call(void 0, false);
|
|
2207
|
-
_react3.useEffect.call(void 0, () => {
|
|
2208
|
-
const wasSuspended = prevSuspendedRef.current;
|
|
2209
|
-
prevSuspendedRef.current = Boolean(suspended);
|
|
2210
|
-
if (!activated || Boolean(suspended) === wasSuspended) return;
|
|
2211
|
-
_optionalChain([iframeRef, 'access', _111 => _111.current, 'optionalAccess', _112 => _112.contentWindow, 'optionalAccess', _113 => _113.postMessage, 'call', _114 => _114(
|
|
2212
|
-
`{"event":"command","func":"${suspended ? "pauseVideo" : "playVideo"}","args":[]}`,
|
|
2213
|
-
YT_NOCOOKIE_ORIGIN
|
|
2214
|
-
)]);
|
|
2215
|
-
}, [suspended, activated]);
|
|
2216
|
-
const wrapperClass = `relative w-full ${_nullishCoalesce(className, () => ( ""))}`;
|
|
2217
|
-
const wrapperStyle = { paddingBottom: "56.25%" };
|
|
2218
|
-
if (activated && failed) {
|
|
2219
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: wrapperClass, style: wrapperStyle, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, VideoErrorOverlay, { onRetry: retry, watchOnYouTubeId: videoId }) });
|
|
2220
|
-
}
|
|
2221
|
-
if (activated) {
|
|
2222
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: wrapperClass, style: wrapperStyle, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
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__ */ _jsxruntime.jsx.call(void 0, "div", { className: wrapperClass, style: wrapperStyle, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
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__ */ _jsxruntime.jsxs.call(void 0, "picture", { children: [
|
|
2245
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "source", { type: "image/webp", srcSet: posterWebp }),
|
|
2246
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
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__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute inset-0 flex items-center justify-center bg-ods-bg bg-opacity-20 transition-opacity duration-200 group-hover:bg-opacity-30", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
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
|
|
|
2273
1231
|
|
|
@@ -2399,8 +1357,8 @@ function DepartmentBadge({
|
|
|
2399
1357
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2400
1358
|
PaletteBadge,
|
|
2401
1359
|
{
|
|
2402
|
-
text: _optionalChain([department, 'optionalAccess',
|
|
2403
|
-
color: _optionalChain([department, 'optionalAccess',
|
|
1360
|
+
text: _optionalChain([department, 'optionalAccess', _17 => _17.name]) || emptyLabel,
|
|
1361
|
+
color: _optionalChain([department, 'optionalAccess', _18 => _18.name]) ? department.color : null,
|
|
2404
1362
|
className,
|
|
2405
1363
|
variant
|
|
2406
1364
|
}
|
|
@@ -2483,536 +1441,12 @@ function AvatarStack({
|
|
|
2483
1441
|
);
|
|
2484
1442
|
}
|
|
2485
1443
|
|
|
2486
|
-
// src/components/chat/utils/icon-registry.ts
|
|
2487
|
-
|
|
2488
|
-
|
|
2489
|
-
|
|
2490
|
-
|
|
2491
|
-
|
|
2492
|
-
|
|
2493
|
-
|
|
2494
|
-
|
|
2495
|
-
|
|
2496
|
-
|
|
2497
|
-
|
|
2498
|
-
|
|
2499
|
-
|
|
2500
|
-
|
|
2501
|
-
|
|
2502
|
-
|
|
2503
|
-
|
|
2504
|
-
|
|
2505
|
-
|
|
2506
|
-
|
|
2507
|
-
|
|
2508
|
-
|
|
2509
|
-
|
|
2510
|
-
|
|
2511
|
-
|
|
2512
|
-
|
|
2513
|
-
|
|
2514
|
-
|
|
2515
|
-
|
|
2516
|
-
|
|
2517
|
-
|
|
2518
|
-
|
|
2519
|
-
|
|
2520
|
-
|
|
2521
|
-
|
|
2522
|
-
|
|
2523
|
-
|
|
2524
|
-
|
|
2525
|
-
|
|
2526
|
-
var OpenFrameLogoIcon = ({ className }) => _react3.createElement.call(void 0, _chunkLLSUVPQCcjs.OpenFrameLogo, { className, upperPathColor: "currentColor" });
|
|
2527
|
-
var ICON_REGISTRY = {
|
|
2528
|
-
// lucide-react (kebab-case)
|
|
2529
|
-
activity: _lucidereact.Activity,
|
|
2530
|
-
banknote: _lucidereact.Banknote,
|
|
2531
|
-
bell: _lucidereact.Bell,
|
|
2532
|
-
"book-open": _lucidereact.BookOpen,
|
|
2533
|
-
box: _lucidereact.Box,
|
|
2534
|
-
briefcase: _lucidereact.Briefcase,
|
|
2535
|
-
calendar: _lucidereact.Calendar,
|
|
2536
|
-
"check-square": _lucidereact.CheckSquare,
|
|
2537
|
-
"dollar-sign": _lucidereact.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: _chunkLLSUVPQCcjs.FacebookIcon,
|
|
2541
|
-
"facebook-lucide": _lucidereact.Facebook,
|
|
2542
|
-
"file-text": _lucidereact.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: _chunkLLSUVPQCcjs.GitHubIcon,
|
|
2550
|
-
"github-lucide": _lucidereact.Github,
|
|
2551
|
-
globe: _lucidereact.Globe,
|
|
2552
|
-
"graduation-cap": _lucidereact.GraduationCap,
|
|
2553
|
-
headphones: _lucidereact.Headphones,
|
|
2554
|
-
info: _lucidereact.Info,
|
|
2555
|
-
instagram: _chunkLLSUVPQCcjs.InstagramIcon,
|
|
2556
|
-
"instagram-lucide": _lucidereact.Instagram,
|
|
2557
|
-
mail: _lucidereact.Mail,
|
|
2558
|
-
megaphone: _lucidereact.Megaphone,
|
|
2559
|
-
"message-circle": _lucidereact.MessageCircle,
|
|
2560
|
-
"message-square": _lucidereact.MessageSquare,
|
|
2561
|
-
newspaper: _lucidereact.Newspaper,
|
|
2562
|
-
package: _lucidereact.Package,
|
|
2563
|
-
"pen-square": _lucidereact.PenSquare,
|
|
2564
|
-
phone: _lucidereact.Phone,
|
|
2565
|
-
rocket: _lucidereact.Rocket,
|
|
2566
|
-
search: _lucidereact.Search,
|
|
2567
|
-
send: _lucidereact.Send,
|
|
2568
|
-
shield: _lucidereact.Shield,
|
|
2569
|
-
star: _lucidereact.Star,
|
|
2570
|
-
table: _lucidereact.TableProperties,
|
|
2571
|
-
"trending-up": _lucidereact.TrendingUp,
|
|
2572
|
-
twitter: _lucidereact.Twitter,
|
|
2573
|
-
users: _lucidereact.Users,
|
|
2574
|
-
video: _lucidereact.Video,
|
|
2575
|
-
whatsapp: _chunkLLSUVPQCcjs.WhatsAppIcon,
|
|
2576
|
-
youtube: _chunkLLSUVPQCcjs.YouTubeIcon,
|
|
2577
|
-
"youtube-lucide": _lucidereact.Youtube,
|
|
2578
|
-
// brand-only icons (no lucide variant in current use)
|
|
2579
|
-
slack: _chunkLLSUVPQCcjs.SlackIcon,
|
|
2580
|
-
clickup: _chunkLLSUVPQCcjs.ClickUpIcon,
|
|
2581
|
-
hubspot: _chunkLLSUVPQCcjs.HubspotIcon,
|
|
2582
|
-
linkedin: _chunkLLSUVPQCcjs.LinkedInIcon,
|
|
2583
|
-
x: _chunkLLSUVPQCcjs.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 _nullishCoalesce(PASCAL_TO_KEBAB_ALIASES[key], () => ( key));
|
|
2641
|
-
}
|
|
2642
|
-
function getIconComponent(iconName) {
|
|
2643
|
-
if (!iconName) return _lucidereact.FileText;
|
|
2644
|
-
return _nullishCoalesce(ICON_REGISTRY[normalizeIconKey(iconName)], () => ( _lucidereact.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 _react3.createElement.call(void 0, _lucidereact.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 _react3.createElement.call(void 0, 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 _react3.createElement.call(void 0, _lucidereact.Globe, { className: finalClassName });
|
|
2681
|
-
}
|
|
2682
|
-
|
|
2683
|
-
// src/components/chat/utils/icon-library.tsx
|
|
2684
|
-
|
|
2685
|
-
|
|
2686
|
-
function sizedLogo(Logo) {
|
|
2687
|
-
return function SizedLogo({ size: size2 = 16, className }) {
|
|
2688
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Logo, { className, style: { width: size2, height: size2 } });
|
|
2689
|
-
};
|
|
2690
|
-
}
|
|
2691
|
-
var brandColor = (platform) => `var(${_chunkLM7TXMLUcjs.platformAccentVarName.call(void 0, platform)})`;
|
|
2692
|
-
var OpenmspLogoIcon = ({ size: size2 = 16, className }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2693
|
-
_chunkLLSUVPQCcjs.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(_chunkLLSUVPQCcjs.FlamingoLogo);
|
|
2703
|
-
var MlgLogoIcon = ({ size: size2 = 16, className, color }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLLSUVPQCcjs.MlgLogo, { size: size2, className, color: _nullishCoalesce(color, () => ( "var(--color-text-primary)")) });
|
|
2704
|
-
var TmcgLogoIcon = ({ size: size2 = 16, className }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2705
|
-
_chunkLLSUVPQCcjs.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 = _nullishCoalesce(color, () => ( "currentColor"));
|
|
2715
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2716
|
-
_chunkLLSUVPQCcjs.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: _chunkVX4E6YSBcjs.ClickupLogoGreyIcon,
|
|
2728
|
-
slack: _chunkVX4E6YSBcjs.SlackLogoGreyIcon,
|
|
2729
|
-
hubspot: _chunkVX4E6YSBcjs.HubspotLogoGreyIcon,
|
|
2730
|
-
github: _chunkVX4E6YSBcjs.GithubIcon,
|
|
2731
|
-
openframe: LogoOpenframeIcon,
|
|
2732
|
-
newspaper: _chunkVX4E6YSBcjs.NewspaperIcon,
|
|
2733
|
-
rocket: _chunkVX4E6YSBcjs.Rocket02Icon,
|
|
2734
|
-
briefcase: _chunkVX4E6YSBcjs.BriefcaseIcon,
|
|
2735
|
-
"graduation-cap": _chunkVX4E6YSBcjs.GraduationCapIcon,
|
|
2736
|
-
video: _chunkVX4E6YSBcjs.VideoRecorderIcon,
|
|
2737
|
-
headphones: _chunkVX4E6YSBcjs.HeadphoneIcon,
|
|
2738
|
-
calendar: _chunkVX4E6YSBcjs.CalendarIcon,
|
|
2739
|
-
compass: _chunkVX4E6YSBcjs.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": _chunkVX4E6YSBcjs.ClickupLogoGreyIcon,
|
|
2743
|
-
"clickup-logo-grey": _chunkVX4E6YSBcjs.ClickupLogoGreyIcon,
|
|
2744
|
-
"slack-logo": _chunkVX4E6YSBcjs.SlackLogoGreyIcon,
|
|
2745
|
-
"slack-logo-grey": _chunkVX4E6YSBcjs.SlackLogoGreyIcon,
|
|
2746
|
-
"hubspot-logo": _chunkVX4E6YSBcjs.HubspotLogoGreyIcon,
|
|
2747
|
-
"hubspot-logo-grey": _chunkVX4E6YSBcjs.HubspotLogoGreyIcon,
|
|
2748
|
-
"github-logo": _chunkVX4E6YSBcjs.GithubIcon,
|
|
2749
|
-
"logo-openframe": LogoOpenframeIcon,
|
|
2750
|
-
"rocket-01": _chunkVX4E6YSBcjs.Rocket02Icon,
|
|
2751
|
-
"rocket-02": _chunkVX4E6YSBcjs.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: _lucidereact.Megaphone,
|
|
2761
|
-
bell: _lucidereact.Bell,
|
|
2762
|
-
info: _lucidereact.Info,
|
|
2763
|
-
star: _lucidereact.Star,
|
|
2764
|
-
package: _lucidereact.Package,
|
|
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: _chunk4GFNWALLcjs.SearchIcon,
|
|
2768
|
-
ticket: _chunkVX4E6YSBcjs.TicketIcon,
|
|
2769
|
-
book: _chunkVX4E6YSBcjs.BookIcon,
|
|
2770
|
-
"book-open": _chunkVX4E6YSBcjs.BookIcon,
|
|
2771
|
-
bug: _chunkVX4E6YSBcjs.BugIcon,
|
|
2772
|
-
layers: _chunkVX4E6YSBcjs.LayersIcon,
|
|
2773
|
-
file: _chunkVX4E6YSBcjs.FileIcon,
|
|
2774
|
-
"file-text": _chunkVX4E6YSBcjs.FileIcon,
|
|
2775
|
-
chats: _chunkVX4E6YSBcjs.ChatsIcon,
|
|
2776
|
-
"message-square": _chunkVX4E6YSBcjs.ChatsIcon,
|
|
2777
|
-
"message-circle": _chunkVX4E6YSBcjs.ChatsIcon,
|
|
2778
|
-
"bracket-curly": _chunkVX4E6YSBcjs.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 = _chunkVX4E6YSBcjs.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 = (_nullishCoalesce(name, () => ( ""))).split(/[^A-Za-z0-9]+/).filter(Boolean);
|
|
2797
|
-
const pascal = (word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
|
|
2798
|
-
const registry = _chunkVX4E6YSBcjs.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 (_optionalChain([opts, 'optionalAccess', _117 => _117.variant]) === "brand") {
|
|
2809
|
-
return getIconComponent(iconName);
|
|
2810
|
-
}
|
|
2811
|
-
if (!iconName) return _chunkVX4E6YSBcjs.FileIcon;
|
|
2812
|
-
return _nullishCoalesce(_nullishCoalesce(ICON_ALIASES[iconName], () => ( resolveFromLibrary(iconName))), () => ( _chunkVX4E6YSBcjs.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
|
-
|
|
3006
|
-
function AgentMark({ agent, className = "", faeAvatarSrc = FAE_AVATAR_DATA_URI }) {
|
|
3007
|
-
return agent === "mingo" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLLSUVPQCcjs.MingoIcon, { className, "aria-hidden": "true", focusable: "false" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "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;
|
|
3013
|
-
const proxyPrefix = _optionalChain([options, 'optionalAccess',
|
|
3014
|
-
const skipDomains = _nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
3015
|
-
const directHttps = _nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
1447
|
+
const proxyPrefix = _optionalChain([options, 'optionalAccess', _19 => _19.proxyPrefix]);
|
|
1448
|
+
const skipDomains = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _20 => _20.skipDomains]), () => ( []));
|
|
1449
|
+
const directHttps = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _21 => _21.directHttps]), () => ( false));
|
|
3016
1450
|
if (proxyPrefix && imageUrl.includes(proxyPrefix)) {
|
|
3017
1451
|
return imageUrl;
|
|
3018
1452
|
}
|
|
@@ -3035,7 +1469,7 @@ function getProxiedImageUrl(imageUrl, options) {
|
|
|
3035
1469
|
function urlPathLooksLikeSvg(imageUrl) {
|
|
3036
1470
|
try {
|
|
3037
1471
|
return /\.svg$/i.test(new URL(imageUrl).pathname);
|
|
3038
|
-
} catch (
|
|
1472
|
+
} catch (e3) {
|
|
3039
1473
|
return /\.svg(\?|#|$)/i.test(imageUrl);
|
|
3040
1474
|
}
|
|
3041
1475
|
}
|
|
@@ -3054,47 +1488,11 @@ function skipsImageOptimizer(url) {
|
|
|
3054
1488
|
try {
|
|
3055
1489
|
const hostname = new URL(url.startsWith("//") ? `https:${url}` : url).hostname.toLowerCase();
|
|
3056
1490
|
return hostname === "googleusercontent.com" || hostname.endsWith(".googleusercontent.com");
|
|
3057
|
-
} catch (
|
|
1491
|
+
} catch (e4) {
|
|
3058
1492
|
return false;
|
|
3059
1493
|
}
|
|
3060
1494
|
}
|
|
3061
1495
|
|
|
3062
|
-
// src/components/icon-display.tsx
|
|
3063
|
-
|
|
3064
|
-
var BRAND_MARK_NAMES = /* @__PURE__ */ new Set(["fae", "mingo"]);
|
|
3065
|
-
function EntityIcon({
|
|
3066
|
-
icon,
|
|
3067
|
-
size: size2 = 20,
|
|
3068
|
-
className
|
|
3069
|
-
}) {
|
|
3070
|
-
if (_optionalChain([icon, 'optionalAccess', _121 => _121.url])) {
|
|
3071
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3072
|
-
_chunkMGHIV4L6cjs.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 (_optionalChain([icon, 'optionalAccess', _122 => _122.name]) && BRAND_MARK_NAMES.has(icon.name)) {
|
|
3085
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3086
|
-
"span",
|
|
3087
|
-
{
|
|
3088
|
-
className: `inline-flex${className ? ` ${className}` : ""}`,
|
|
3089
|
-
style: className ? void 0 : { width: size2, height: size2 },
|
|
3090
|
-
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AgentMark, { agent: icon.name, className: "h-full w-full" })
|
|
3091
|
-
}
|
|
3092
|
-
);
|
|
3093
|
-
}
|
|
3094
|
-
const Glyph = resolveIcon(_nullishCoalesce(_optionalChain([icon, 'optionalAccess', _123 => _123.name]), () => ( void 0)));
|
|
3095
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Glyph, { size: size2, className, ..._nullishCoalesce(_optionalChain([icon, 'optionalAccess', _124 => _124.props]), () => ( {})) });
|
|
3096
|
-
}
|
|
3097
|
-
|
|
3098
1496
|
// src/utils/escape-regexp.ts
|
|
3099
1497
|
function escapeRegExp(value) {
|
|
3100
1498
|
return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
@@ -3128,14 +1526,14 @@ function isSameOriginAbsoluteHref(href) {
|
|
|
3128
1526
|
if (!/^https?:\/\//i.test(href)) return false;
|
|
3129
1527
|
try {
|
|
3130
1528
|
return new URL(href).origin === new URL(window.location.href).origin;
|
|
3131
|
-
} catch (
|
|
1529
|
+
} catch (e5) {
|
|
3132
1530
|
return false;
|
|
3133
1531
|
}
|
|
3134
1532
|
}
|
|
3135
1533
|
function computeIsNewTab(runtime, href, targetPlatform) {
|
|
3136
1534
|
if (!href) return false;
|
|
3137
1535
|
if (runtime.navigation.mode === "embed") return !isSameOriginAbsoluteHref(href);
|
|
3138
|
-
return _nullishCoalesce(_optionalChain([runtime, 'access',
|
|
1536
|
+
return _nullishCoalesce(_optionalChain([runtime, 'access', _22 => _22.navigation, 'access', _23 => _23.decideNewTab, 'optionalCall', _24 => _24({ href, targetPlatform })]), () => ( decideNewTab({
|
|
3139
1537
|
href,
|
|
3140
1538
|
targetPlatform,
|
|
3141
1539
|
currentSource: _nullishCoalesce(runtime.source, () => ( ""))
|
|
@@ -3201,7 +1599,7 @@ function EntityAuthorCard({
|
|
|
3201
1599
|
renderEmptyAuthor = false,
|
|
3202
1600
|
className
|
|
3203
1601
|
}) {
|
|
3204
|
-
const hasAuthor = !!_optionalChain([author, 'optionalAccess',
|
|
1602
|
+
const hasAuthor = !!_optionalChain([author, 'optionalAccess', _25 => _25.full_name]);
|
|
3205
1603
|
if (!hasAuthor && !renderEmptyAuthor) return null;
|
|
3206
1604
|
const effectiveAuthor = hasAuthor ? author : EMPTY_AUTHOR_PLACEHOLDER;
|
|
3207
1605
|
const formatted = publishedAt ? formatDate(publishedAt) : "";
|
|
@@ -3303,14 +1701,14 @@ function EntityPortraitCard({
|
|
|
3303
1701
|
}) {
|
|
3304
1702
|
const { src, onError: onMediaError } = useCoverImageFallback(imageUrl, placeholderUrl);
|
|
3305
1703
|
const [measured, setMeasured] = _react3.useState.call(void 0, null);
|
|
3306
|
-
const isWide = _optionalChain([measured, 'optionalAccess',
|
|
1704
|
+
const isWide = _optionalChain([measured, 'optionalAccess', _26 => _26.src]) === src ? measured.isWide : null;
|
|
3307
1705
|
const onMediaLoad = (e) => {
|
|
3308
1706
|
const img = e.currentTarget;
|
|
3309
1707
|
if (img.naturalWidth > 0 && img.naturalHeight > 0) {
|
|
3310
1708
|
setMeasured({ src, isWide: img.naturalWidth / img.naturalHeight >= MIN_WIDE_RATIO });
|
|
3311
1709
|
}
|
|
3312
1710
|
};
|
|
3313
|
-
const edgeColor =
|
|
1711
|
+
const edgeColor = _chunkRKV5B7EUcjs.useImageEdgeColor.call(void 0, isWide === false ? src : null, "var(--color-bg-surface)");
|
|
3314
1712
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "a", { href, target, rel, className: _chunk3ATAYP36cjs.cn.call(void 0, "block h-full", className), "aria-label": `Open ${title}`, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, Card, { className: _chunk3ATAYP36cjs.cn.call(void 0, CONTENT_CARD_FRAME_CLASS, "flex h-full flex-col gap-6 p-6"), children: [
|
|
3315
1713
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3316
1714
|
"div",
|
|
@@ -3393,7 +1791,7 @@ function EntityPortraitCard({
|
|
|
3393
1791
|
|
|
3394
1792
|
// src/components/flamingo-logo.tsx
|
|
3395
1793
|
|
|
3396
|
-
function
|
|
1794
|
+
function FlamingoLogo({
|
|
3397
1795
|
className = "",
|
|
3398
1796
|
color = "var(--ods-flamingo-pink-base)",
|
|
3399
1797
|
size: size2 = 120,
|
|
@@ -3423,7 +1821,7 @@ function FlamingoLogo2({
|
|
|
3423
1821
|
|
|
3424
1822
|
// src/components/openmsp-logo.tsx
|
|
3425
1823
|
|
|
3426
|
-
function
|
|
1824
|
+
function OpenmspLogo({
|
|
3427
1825
|
className = "",
|
|
3428
1826
|
frontBubbleColor = "#000000",
|
|
3429
1827
|
innerFrontBubbleColor = "#ffffff",
|
|
@@ -3493,7 +1891,7 @@ var PlatformIcon = ({ platform, className }) => {
|
|
|
3493
1891
|
switch (platform) {
|
|
3494
1892
|
case "openmsp":
|
|
3495
1893
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3496
|
-
|
|
1894
|
+
OpenmspLogo,
|
|
3497
1895
|
{
|
|
3498
1896
|
className,
|
|
3499
1897
|
frontBubbleColor: "currentColor",
|
|
@@ -3503,17 +1901,17 @@ var PlatformIcon = ({ platform, className }) => {
|
|
|
3503
1901
|
);
|
|
3504
1902
|
case "flamingo":
|
|
3505
1903
|
case "flamingo-teaser":
|
|
3506
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1904
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, FlamingoLogo, { className });
|
|
3507
1905
|
case "openframe":
|
|
3508
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1906
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQZVSJF2Kcjs.OpenFrameLogo, { className });
|
|
3509
1907
|
case "tmcg":
|
|
3510
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1908
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQZVSJF2Kcjs.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__ */ _jsxruntime.jsx.call(void 0,
|
|
1914
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, FlamingoLogo, { className, fill: "currentColor" });
|
|
3517
1915
|
default:
|
|
3518
1916
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Globe, { className });
|
|
3519
1917
|
}
|
|
@@ -3523,7 +1921,7 @@ function PlatformBadge({ platform, size: size2 = "sm", showLabel = true, classNa
|
|
|
3523
1921
|
return null;
|
|
3524
1922
|
}
|
|
3525
1923
|
const sizes = sizeClasses[size2];
|
|
3526
|
-
const colors =
|
|
1924
|
+
const colors = _chunkRKV5B7EUcjs.getPlatformBrandClasses.call(void 0, platform.name);
|
|
3527
1925
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
3528
1926
|
"div",
|
|
3529
1927
|
{
|
|
@@ -3565,7 +1963,7 @@ function AdminContentCard({
|
|
|
3565
1963
|
const [loadedUrl, setLoadedUrl] = _react3.useState.call(void 0, null);
|
|
3566
1964
|
const displayUrl = imageUrl && !imageError ? imageUrl : placeholderUrl;
|
|
3567
1965
|
const imageLoaded = Boolean(displayUrl) && loadedUrl === displayUrl;
|
|
3568
|
-
const imageBgColor =
|
|
1966
|
+
const imageBgColor = _chunkRKV5B7EUcjs.useImageEdgeColor.call(void 0, displayUrl || null, "transparent");
|
|
3569
1967
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "article", { className: _chunk3ATAYP36cjs.cn.call(void 0, CONTENT_CARD_FRAME_CLASS, "flex h-full flex-col", className), children: [
|
|
3570
1968
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "relative aspect-[3/2] w-full shrink-0 overflow-hidden", style: { backgroundColor: imageBgColor }, children: displayUrl ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
3571
1969
|
!imageLoaded && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute inset-0 animate-pulse bg-ods-border/20" }),
|
|
@@ -3592,8 +1990,8 @@ function AdminContentCard({
|
|
|
3592
1990
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: _chunk3ATAYP36cjs.cn.call(void 0, "line-clamp-2 break-words text-ods-text-primary text-h3", reserveRows && "min-h-[2lh]"), children: title }),
|
|
3593
1991
|
(subtitle || reserveRows && subtitleRow) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: _chunk3ATAYP36cjs.cn.call(void 0, "truncate text-ods-text-secondary text-h6", reserveRows && "min-h-[1lh]"), children: subtitle }),
|
|
3594
1992
|
(summary || reserveRows) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: _chunk3ATAYP36cjs.cn.call(void 0, "line-clamp-2 text-ods-text-secondary text-h6", reserveRows && "min-h-[2lh]"), children: summary }),
|
|
3595
|
-
(Number(_optionalChain([platforms, 'optionalAccess',
|
|
3596
|
-
_optionalChain([platforms, 'optionalAccess',
|
|
1993
|
+
(Number(_optionalChain([platforms, 'optionalAccess', _27 => _27.length])) > 0 || badges || reserveRows) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "flex flex-wrap items-center gap-2", reserveRows && "min-h-7"), children: [
|
|
1994
|
+
_optionalChain([platforms, 'optionalAccess', _28 => _28.map, 'call', _29 => _29((p) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3597
1995
|
PlatformBadge,
|
|
3598
1996
|
{
|
|
3599
1997
|
platform: { id: p.id || p.platform_id || "", name: p.name, display_name: p.display_name || p.name },
|
|
@@ -3736,7 +2134,7 @@ function EmployeeEntryCard({
|
|
|
3736
2134
|
] }) : null,
|
|
3737
2135
|
meta: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
3738
2136
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex min-w-0 items-center gap-2", children: [
|
|
3739
|
-
_optionalChain([entry, 'access',
|
|
2137
|
+
_optionalChain([entry, 'access', _30 => _30.author, 'optionalAccess', _31 => _31.avatar_url]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3740
2138
|
_chunkMGHIV4L6cjs.next_image_default,
|
|
3741
2139
|
{
|
|
3742
2140
|
src: _nullishCoalesce(getProxiedImageUrl2(entry.author.avatar_url), () => ( entry.author.avatar_url)),
|
|
@@ -3747,7 +2145,7 @@ function EmployeeEntryCard({
|
|
|
3747
2145
|
unoptimized: true
|
|
3748
2146
|
}
|
|
3749
2147
|
) : null,
|
|
3750
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate", children: _nullishCoalesce(_optionalChain([entry, 'access',
|
|
2148
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate", children: _nullishCoalesce(_optionalChain([entry, 'access', _32 => _32.author, 'optionalAccess', _33 => _33.full_name]), () => ( "")) })
|
|
3751
2149
|
] }),
|
|
3752
2150
|
dateLabel ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: dateLabel }) : null
|
|
3753
2151
|
] }),
|
|
@@ -3805,7 +2203,7 @@ var HowIWorkCardSkeleton = EmployeeEntryCardSkeleton;
|
|
|
3805
2203
|
// src/components/chat/entity-cards/ai-prompt-card.tsx
|
|
3806
2204
|
|
|
3807
2205
|
function AiPromptCard({ entry, placeholderUrl, actions, anchorProps, className }) {
|
|
3808
|
-
const departmentName = _optionalChain([entry, 'access',
|
|
2206
|
+
const departmentName = _optionalChain([entry, 'access', _34 => _34.department, 'optionalAccess', _35 => _35.name, 'optionalAccess', _36 => _36.trim, 'call', _37 => _37()]);
|
|
3809
2207
|
const steps = typeof entry.step_count === "number" ? entry.step_count : 0;
|
|
3810
2208
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3811
2209
|
EmployeeEntryCard,
|
|
@@ -3813,7 +2211,7 @@ function AiPromptCard({ entry, placeholderUrl, actions, anchorProps, className }
|
|
|
3813
2211
|
entry,
|
|
3814
2212
|
dateLabel: entry.published_at ? formatDateUTC(entry.published_at, { fallback: "" }) || null : null,
|
|
3815
2213
|
extraBadges: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
3816
|
-
departmentName ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DepartmentBadge, { department: { name: departmentName, color: _nullishCoalesce(_optionalChain([entry, 'access',
|
|
2214
|
+
departmentName ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DepartmentBadge, { department: { name: departmentName, color: _nullishCoalesce(_optionalChain([entry, 'access', _38 => _38.department, 'optionalAccess', _39 => _39.color]), () => ( null)) } }) : null,
|
|
3817
2215
|
steps > 1 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EmployeeEntryBadge, { children: `${steps} steps` }) : null
|
|
3818
2216
|
] }),
|
|
3819
2217
|
untitledLabel: "Untitled prompt",
|
|
@@ -3850,7 +2248,7 @@ function PageHeading({
|
|
|
3850
2248
|
var SENTENCE_MARK = /([.:?!]+)(?=\s|$)/g;
|
|
3851
2249
|
var ONLY_MARKS = /^\s*[.:?!]+\s*$/;
|
|
3852
2250
|
function headingAccentClass(platform) {
|
|
3853
|
-
return platform ?
|
|
2251
|
+
return platform ? _chunkRKV5B7EUcjs.getPlatformBrandClasses.call(void 0, platform).accentText : "text-ods-accent";
|
|
3854
2252
|
}
|
|
3855
2253
|
function accentSentenceMarks(node, platform) {
|
|
3856
2254
|
return accentMarks(node, headingAccentClass(platform));
|
|
@@ -3932,7 +2330,7 @@ function SectionHeading({
|
|
|
3932
2330
|
// src/components/features/video-bites-shared.ts
|
|
3933
2331
|
var DEFAULT_VIDEO_BITES_TITLE = "Key Moments";
|
|
3934
2332
|
function toStripProfile(p, fallbackSubtitle) {
|
|
3935
|
-
if (!_optionalChain([p, 'optionalAccess',
|
|
2333
|
+
if (!_optionalChain([p, 'optionalAccess', _40 => _40.full_name])) return null;
|
|
3936
2334
|
return {
|
|
3937
2335
|
name: p.full_name,
|
|
3938
2336
|
avatarUrl: _nullishCoalesce(p.avatar_url, () => ( null)),
|
|
@@ -3952,95 +2350,6 @@ 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
|
-
|
|
3957
|
-
|
|
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 = _react3.useRef.call(void 0, null);
|
|
3982
|
-
const [isNear, setIsNear] = _react3.useState.call(void 0, false);
|
|
3983
|
-
_react3.useEffect.call(void 0, () => {
|
|
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(_nullishCoalesce(_optionalChain([entries, 'access', _144 => _144[0], 'optionalAccess', _145 => _145.isIntersecting]), () => ( false))), {
|
|
3988
|
-
rootMargin: _chunkLM7TXMLUcjs.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__ */ _jsxruntime.jsx.call(void 0, "div", { ref: rootElRef, className: _chunk3ATAYP36cjs.cn.call(void 0, "absolute inset-0", className), inert: isClone || void 0, children: showMedia ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
3997
|
-
posterSrc ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3998
|
-
_chunkMGHIV4L6cjs.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__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute inset-0 bg-ods-card" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Video, { kind: "file", url: previewUrl, firstFrameOnly: true, layout: "fill", fit }),
|
|
4009
|
-
badge === "play" && !active && !continuation && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, VideoPlayBadge, { className: "absolute inset-0 z-10 m-auto" }),
|
|
4010
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4011
|
-
"div",
|
|
4012
|
-
{
|
|
4013
|
-
className: "absolute inset-0",
|
|
4014
|
-
style: { "--media-background-color": "transparent" },
|
|
4015
|
-
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
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__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute inset-0 bg-ods-card" }) });
|
|
4042
|
-
}
|
|
4043
|
-
|
|
4044
2353
|
// src/components/shared/product-release/product-release-card.tsx
|
|
4045
2354
|
|
|
4046
2355
|
|
|
@@ -4063,7 +2372,7 @@ function ProductReleaseCard({
|
|
|
4063
2372
|
changelogCounts
|
|
4064
2373
|
}) {
|
|
4065
2374
|
if (size2 === "lg") {
|
|
4066
|
-
const totalChangelog = (_nullishCoalesce(_optionalChain([changelogCounts, 'optionalAccess',
|
|
2375
|
+
const totalChangelog = (_nullishCoalesce(_optionalChain([changelogCounts, 'optionalAccess', _41 => _41.features]), () => ( 0))) + (_nullishCoalesce(_optionalChain([changelogCounts, 'optionalAccess', _42 => _42.fixes]), () => ( 0))) + (_nullishCoalesce(_optionalChain([changelogCounts, 'optionalAccess', _43 => _43.improvements]), () => ( 0))) + (_nullishCoalesce(_optionalChain([changelogCounts, 'optionalAccess', _44 => _44.breaking]), () => ( 0)));
|
|
4067
2376
|
const valueCells = [
|
|
4068
2377
|
releaseType && releaseTypeBadgeColor ? {
|
|
4069
2378
|
value: releaseType.toUpperCase(),
|
|
@@ -4082,7 +2391,7 @@ function ProductReleaseCard({
|
|
|
4082
2391
|
uppercase: false
|
|
4083
2392
|
} : { value: "\u2014", label: "Released", uppercase: false }
|
|
4084
2393
|
];
|
|
4085
|
-
const effectiveAuthor = _optionalChain([author, 'optionalAccess',
|
|
2394
|
+
const effectiveAuthor = _optionalChain([author, 'optionalAccess', _45 => _45.full_name]) ? author : { full_name: "\u2014", avatar_url: null, job_title: "Unknown" };
|
|
4086
2395
|
const gridColsClass = "content-md:grid-cols-4";
|
|
4087
2396
|
const dividerClass = "border-b content-md:border-b-0 content-md:border-r border-ods-border";
|
|
4088
2397
|
const interactive = !!anchorProps || !!onClick;
|
|
@@ -4425,10 +2734,10 @@ function buildProductReleaseCardProps(item) {
|
|
|
4425
2734
|
job_title: release.author.job_title
|
|
4426
2735
|
} : void 0,
|
|
4427
2736
|
changelogCounts: {
|
|
4428
|
-
features: _nullishCoalesce(_optionalChain([release, 'access',
|
|
4429
|
-
fixes: _nullishCoalesce(_optionalChain([release, 'access',
|
|
4430
|
-
improvements: _nullishCoalesce(_optionalChain([release, 'access',
|
|
4431
|
-
breaking: _nullishCoalesce(_optionalChain([release, 'access',
|
|
2737
|
+
features: _nullishCoalesce(_optionalChain([release, 'access', _46 => _46.features_added, 'optionalAccess', _47 => _47.length]), () => ( 0)),
|
|
2738
|
+
fixes: _nullishCoalesce(_optionalChain([release, 'access', _48 => _48.bugs_fixed, 'optionalAccess', _49 => _49.length]), () => ( 0)),
|
|
2739
|
+
improvements: _nullishCoalesce(_optionalChain([release, 'access', _50 => _50.improvements, 'optionalAccess', _51 => _51.length]), () => ( 0)),
|
|
2740
|
+
breaking: _nullishCoalesce(_optionalChain([release, 'access', _52 => _52.breaking_changes, 'optionalAccess', _53 => _53.length]), () => ( 0))
|
|
4432
2741
|
}
|
|
4433
2742
|
};
|
|
4434
2743
|
}
|
|
@@ -4439,7 +2748,7 @@ var SAME_ORIGIN_PROBE = "https://_sameorigin_.invalid";
|
|
|
4439
2748
|
function isSameOriginPath(candidate) {
|
|
4440
2749
|
try {
|
|
4441
2750
|
return new URL(candidate, SAME_ORIGIN_PROBE).origin === SAME_ORIGIN_PROBE;
|
|
4442
|
-
} catch (
|
|
2751
|
+
} catch (e6) {
|
|
4443
2752
|
return false;
|
|
4444
2753
|
}
|
|
4445
2754
|
}
|
|
@@ -4473,7 +2782,7 @@ function safeHref(url) {
|
|
|
4473
2782
|
if (!SAFE_URL_SCHEMES.includes(parsed.protocol)) return null;
|
|
4474
2783
|
if ((parsed.protocol === "https:" || parsed.protocol === "http:") && !parsed.hostname) return null;
|
|
4475
2784
|
return trimmed;
|
|
4476
|
-
} catch (
|
|
2785
|
+
} catch (e7) {
|
|
4477
2786
|
return null;
|
|
4478
2787
|
}
|
|
4479
2788
|
}
|
|
@@ -4502,7 +2811,7 @@ function useEntityCardPlaceholder({
|
|
|
4502
2811
|
siteName = "",
|
|
4503
2812
|
aspect = "wide"
|
|
4504
2813
|
}) {
|
|
4505
|
-
const derived =
|
|
2814
|
+
const derived = _chunkRKV5B7EUcjs.useOgPlaceholderUrl.call(void 0, { title, siteName, aspect });
|
|
4506
2815
|
return placeholderUrl !== void 0 ? placeholderUrl : derived;
|
|
4507
2816
|
}
|
|
4508
2817
|
|
|
@@ -4560,7 +2869,7 @@ function BlogCard({
|
|
|
4560
2869
|
const { src: displayImage, onError: onImageError } = useCoverImageFallback(post.featured_image, placeholderUrl);
|
|
4561
2870
|
if (size2 === "sm") {
|
|
4562
2871
|
const dateStr2 = post.published_at ? formatDateWithTimezone(post.published_at, null, "medium") : "";
|
|
4563
|
-
const firstCategory = _optionalChain([post, 'access',
|
|
2872
|
+
const firstCategory = _optionalChain([post, 'access', _54 => _54.categories, 'optionalAccess', _55 => _55.find, 'call', _56 => _56((c) => c && c.name), 'optionalAccess', _57 => _57.name]);
|
|
4564
2873
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
4565
2874
|
"a",
|
|
4566
2875
|
{
|
|
@@ -4699,7 +3008,6 @@ function BlogCard({
|
|
|
4699
3008
|
|
|
4700
3009
|
// src/components/chat/entity-cards/case-study-card.tsx
|
|
4701
3010
|
|
|
4702
|
-
|
|
4703
3011
|
function CaseStudyCardSkeleton({ size: size2 = "default" }) {
|
|
4704
3012
|
if (size2 === "sm") {
|
|
4705
3013
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_SKELETON_OUTER, children: [
|
|
@@ -4726,13 +3034,6 @@ function CaseStudyCardSkeleton({ size: size2 = "default" }) {
|
|
|
4726
3034
|
] })
|
|
4727
3035
|
] });
|
|
4728
3036
|
}
|
|
4729
|
-
function caseStudyHighlight(study) {
|
|
4730
|
-
if (study.highlight_video_url) {
|
|
4731
|
-
return { url: study.highlight_video_url, posterUrl: _nullishCoalesce(study.highlight_video_thumbnail, () => ( null)) };
|
|
4732
|
-
}
|
|
4733
|
-
const bite = (_nullishCoalesce(study.video_bites, () => ( []))).filter((candidate) => candidate.featured === true && candidate.url).sort(sortBitesByFeaturedAtDesc)[0];
|
|
4734
|
-
return bite ? { url: bite.url, posterUrl: _nullishCoalesce(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] = _react3.useState.call(void 0, false);
|
|
4750
3048
|
const { target, rel } = useEntityCardLink({
|
|
4751
3049
|
href,
|
|
4752
3050
|
targetPlatform,
|
|
@@ -4765,7 +3063,7 @@ function CaseStudyCard({
|
|
|
4765
3063
|
_chunkMGHIV4L6cjs.next_image_default,
|
|
4766
3064
|
{
|
|
4767
3065
|
src: coverImage,
|
|
4768
|
-
alt: `${_optionalChain([study, 'access',
|
|
3066
|
+
alt: `${_optionalChain([study, 'access', _58 => _58.msp, 'optionalAccess', _59 => _59.name]) || study.title} cover`,
|
|
4769
3067
|
className: "object-contain",
|
|
4770
3068
|
fill: true,
|
|
4771
3069
|
sizes: "56px",
|
|
@@ -4775,81 +3073,11 @@ function CaseStudyCard({
|
|
|
4775
3073
|
) : null }),
|
|
4776
3074
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
4777
3075
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_TITLE, children: study.title }) }),
|
|
4778
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_SUBTITLE, children: [_optionalChain([study, 'access',
|
|
3076
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_SUBTITLE, children: [_optionalChain([study, 'access', _60 => _60.msp, 'optionalAccess', _61 => _61.name]), _optionalChain([study, 'access', _62 => _62.user, 'optionalAccess', _63 => _63.full_name])].filter(Boolean).join(" \xB7 ") || "Case study" }) }),
|
|
4779
3077
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_SUMMARY, children: study.summary || COMPACT_CARD_ROW_FILLER }) })
|
|
4780
3078
|
] })
|
|
4781
3079
|
] });
|
|
4782
3080
|
}
|
|
4783
|
-
if (size2 === "menu") {
|
|
4784
|
-
const preview = caseStudyHighlight(study);
|
|
4785
|
-
const videoUrl = _nullishCoalesce(_optionalChain([preview, 'optionalAccess', _169 => _169.url]), () => ( null));
|
|
4786
|
-
const hasAnyVideo = !!(videoUrl || study.main_video_url);
|
|
4787
|
-
const poster = study.main_video_thumbnail || study.featured_image || _optionalChain([preview, 'optionalAccess', _170 => _170.posterUrl]) || null;
|
|
4788
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
4789
|
-
_chunkLLRGR4I5cjs.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: _chunk3ATAYP36cjs.cn.call(void 0,
|
|
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__ */ _jsxruntime.jsx.call(void 0, "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__ */ _jsxruntime.jsx.call(void 0,
|
|
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__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
4821
|
-
(_nullishCoalesce(poster, () => ( placeholderUrl))) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4822
|
-
_chunkMGHIV4L6cjs.next_image_default,
|
|
4823
|
-
{
|
|
4824
|
-
src: _nullishCoalesce(_nullishCoalesce(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__ */ _jsxruntime.jsx.call(void 0, CardHoverPlay, { size: "md" })
|
|
4834
|
-
] }) }),
|
|
4835
|
-
_optionalChain([study, 'access', _171 => _171.msp, 'optionalAccess', _172 => _172.name]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex items-center gap-[var(--spacing-system-xsf)] text-ods-text-secondary text-h6", children: [
|
|
4836
|
-
study.msp.icon_url && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
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__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-w-0 truncate", children: study.msp.name })
|
|
4845
|
-
] }),
|
|
4846
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "line-clamp-2 text-h6", children: study.title }),
|
|
4847
|
-
_optionalChain([study, 'access', _173 => _173.user, 'optionalAccess', _174 => _174.full_name]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate text-ods-text-muted text-h6", children: study.user.job_title ? `${study.user.full_name}, ${study.user.job_title}` : study.user.full_name }),
|
|
4848
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "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
3082
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4855
3083
|
EntityPortraitCard,
|
|
@@ -4860,13 +3088,13 @@ function CaseStudyCard({
|
|
|
4860
3088
|
typeLabel: showTypeBadge ? "Case Study" : void 0,
|
|
4861
3089
|
imageUrl: study.featured_image,
|
|
4862
3090
|
placeholderUrl,
|
|
4863
|
-
imageAlt: _optionalChain([study, 'access',
|
|
3091
|
+
imageAlt: _optionalChain([study, 'access', _64 => _64.msp, 'optionalAccess', _65 => _65.name]) || study.title,
|
|
4864
3092
|
title: study.title,
|
|
4865
3093
|
person: {
|
|
4866
|
-
name: _optionalChain([study, 'access',
|
|
4867
|
-
avatarUrl: _optionalChain([study, 'access',
|
|
4868
|
-
subtitle: _nullishCoalesce(_optionalChain([study, 'access',
|
|
4869
|
-
iconOverlayUrl: _nullishCoalesce(_optionalChain([study, 'access',
|
|
3094
|
+
name: _optionalChain([study, 'access', _66 => _66.user, 'optionalAccess', _67 => _67.full_name]) || "Anonymous",
|
|
3095
|
+
avatarUrl: _optionalChain([study, 'access', _68 => _68.user, 'optionalAccess', _69 => _69.avatar_url]),
|
|
3096
|
+
subtitle: _nullishCoalesce(_optionalChain([study, 'access', _70 => _70.msp, 'optionalAccess', _71 => _71.name]), () => ( null)),
|
|
3097
|
+
iconOverlayUrl: _nullishCoalesce(_optionalChain([study, 'access', _72 => _72.msp, 'optionalAccess', _73 => _73.icon_url]), () => ( null))
|
|
4870
3098
|
},
|
|
4871
3099
|
className
|
|
4872
3100
|
}
|
|
@@ -4877,7 +3105,7 @@ function CaseStudyCard({
|
|
|
4877
3105
|
_chunkMGHIV4L6cjs.next_image_default,
|
|
4878
3106
|
{
|
|
4879
3107
|
src: coverImage,
|
|
4880
|
-
alt: _optionalChain([study, 'access',
|
|
3108
|
+
alt: _optionalChain([study, 'access', _74 => _74.msp, 'optionalAccess', _75 => _75.name]) || study.title,
|
|
4881
3109
|
className: "h-full w-full object-cover",
|
|
4882
3110
|
sizes: "(min-width: 1545px) 515px, (min-width: 1280px) 33vw, (min-width: 800px) 50vw, 100vw",
|
|
4883
3111
|
fill: true,
|
|
@@ -4888,18 +3116,18 @@ function CaseStudyCard({
|
|
|
4888
3116
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-[72px] shrink-0 items-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "line-clamp-3 break-words text-ods-text-primary text-h4", children: study.title }) }),
|
|
4889
3117
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-[60px] shrink-0 items-center", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full min-w-0 items-center gap-3", children: [
|
|
4890
3118
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative h-12 w-12 shrink-0", children: [
|
|
4891
|
-
_optionalChain([study, 'access',
|
|
3119
|
+
_optionalChain([study, 'access', _76 => _76.user, 'optionalAccess', _77 => _77.avatar_url]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4892
3120
|
_chunkMGHIV4L6cjs.next_image_default,
|
|
4893
3121
|
{
|
|
4894
3122
|
src: study.user.avatar_url,
|
|
4895
|
-
alt: _optionalChain([study, 'access',
|
|
3123
|
+
alt: _optionalChain([study, 'access', _78 => _78.user, 'optionalAccess', _79 => _79.full_name]) || "User",
|
|
4896
3124
|
className: "h-12 w-12 rounded-full border border-ods-border bg-ods-bg object-cover",
|
|
4897
3125
|
width: 48,
|
|
4898
3126
|
height: 48,
|
|
4899
3127
|
unoptimized: true
|
|
4900
3128
|
}
|
|
4901
|
-
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-12 w-12 items-center justify-center rounded-full border border-ods-border bg-ods-bg", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary text-h4", children: (_optionalChain([study, 'access',
|
|
4902
|
-
_optionalChain([study, 'access',
|
|
3129
|
+
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-12 w-12 items-center justify-center rounded-full border border-ods-border bg-ods-bg", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary text-h4", children: (_optionalChain([study, 'access', _80 => _80.user, 'optionalAccess', _81 => _81.full_name]) || "A").charAt(0).toUpperCase() }) }),
|
|
3130
|
+
_optionalChain([study, 'access', _82 => _82.msp, 'optionalAccess', _83 => _83.icon_url]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute -bottom-1 -right-1 flex h-6 w-6 items-center justify-center overflow-hidden rounded-full bg-ods-text-primary ring-1 ring-ods-bg", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4903
3131
|
_chunkMGHIV4L6cjs.next_image_default,
|
|
4904
3132
|
{
|
|
4905
3133
|
src: study.msp.icon_url,
|
|
@@ -4913,13 +3141,13 @@ function CaseStudyCard({
|
|
|
4913
3141
|
] }),
|
|
4914
3142
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "min-w-0 flex-1", children: [
|
|
4915
3143
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "truncate text-ods-text-primary text-h6", children: [
|
|
4916
|
-
_optionalChain([study, 'access',
|
|
4917
|
-
_optionalChain([study, 'access',
|
|
3144
|
+
_optionalChain([study, 'access', _84 => _84.user, 'optionalAccess', _85 => _85.full_name]) || "Anonymous",
|
|
3145
|
+
_optionalChain([study, 'access', _86 => _86.msp, 'optionalAccess', _87 => _87.name]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary", children: [
|
|
4918
3146
|
" \u2022 ",
|
|
4919
3147
|
study.msp.name
|
|
4920
3148
|
] })
|
|
4921
3149
|
] }),
|
|
4922
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "truncate text-ods-text-secondary text-h6", children: _optionalChain([study, 'access',
|
|
3150
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "truncate text-ods-text-secondary text-h6", children: _optionalChain([study, 'access', _88 => _88.user, 'optionalAccess', _89 => _89.job_title]) || "\xA0" })
|
|
4923
3151
|
] })
|
|
4924
3152
|
] }) })
|
|
4925
3153
|
] }) });
|
|
@@ -5001,7 +3229,7 @@ function CustomerInterviewCard({
|
|
|
5001
3229
|
] }),
|
|
5002
3230
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
5003
3231
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_TITLE, children: interview.title }) }),
|
|
5004
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_SUBTITLE, children: [_optionalChain([interview, 'access',
|
|
3232
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_SUBTITLE, children: [_optionalChain([interview, 'access', _90 => _90.user, 'optionalAccess', _91 => _91.full_name]), _optionalChain([interview, 'access', _92 => _92.msp, 'optionalAccess', _93 => _93.name])].filter(Boolean).join(" \xB7 ") || "Customer interview" }) }),
|
|
5005
3233
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_SUMMARY, children: interview.video_summary || COMPACT_CARD_ROW_FILLER }) })
|
|
5006
3234
|
] })
|
|
5007
3235
|
] });
|
|
@@ -5019,10 +3247,10 @@ function CustomerInterviewCard({
|
|
|
5019
3247
|
imageAlt: interview.title,
|
|
5020
3248
|
title: interview.title,
|
|
5021
3249
|
person: {
|
|
5022
|
-
name: _optionalChain([interview, 'access',
|
|
5023
|
-
avatarUrl: _optionalChain([interview, 'access',
|
|
5024
|
-
subtitle: _nullishCoalesce(_optionalChain([interview, 'access',
|
|
5025
|
-
iconOverlayUrl: _nullishCoalesce(_optionalChain([interview, 'access',
|
|
3250
|
+
name: _optionalChain([interview, 'access', _94 => _94.user, 'optionalAccess', _95 => _95.full_name]) || "Customer",
|
|
3251
|
+
avatarUrl: _optionalChain([interview, 'access', _96 => _96.user, 'optionalAccess', _97 => _97.avatar_url]),
|
|
3252
|
+
subtitle: _nullishCoalesce(_optionalChain([interview, 'access', _98 => _98.msp, 'optionalAccess', _99 => _99.name]), () => ( null)),
|
|
3253
|
+
iconOverlayUrl: _nullishCoalesce(_optionalChain([interview, 'access', _100 => _100.msp, 'optionalAccess', _101 => _101.icon_url]), () => ( null))
|
|
5026
3254
|
},
|
|
5027
3255
|
className
|
|
5028
3256
|
}
|
|
@@ -5048,18 +3276,18 @@ function CustomerInterviewCard({
|
|
|
5048
3276
|
interview.video_summary && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "line-clamp-3 text-ods-text-secondary text-h6", children: interview.video_summary }) }),
|
|
5049
3277
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mt-auto flex h-[60px] shrink-0 items-center", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full min-w-0 items-center gap-3", children: [
|
|
5050
3278
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative h-12 w-12 shrink-0", children: [
|
|
5051
|
-
_optionalChain([interview, 'access',
|
|
3279
|
+
_optionalChain([interview, 'access', _102 => _102.user, 'optionalAccess', _103 => _103.avatar_url]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
5052
3280
|
_chunkMGHIV4L6cjs.next_image_default,
|
|
5053
3281
|
{
|
|
5054
3282
|
src: interview.user.avatar_url,
|
|
5055
|
-
alt: _optionalChain([interview, 'access',
|
|
3283
|
+
alt: _optionalChain([interview, 'access', _104 => _104.user, 'optionalAccess', _105 => _105.full_name]) || "Customer",
|
|
5056
3284
|
className: "h-12 w-12 rounded-full border border-ods-border bg-ods-bg object-cover",
|
|
5057
3285
|
width: 48,
|
|
5058
3286
|
height: 48,
|
|
5059
3287
|
unoptimized: true
|
|
5060
3288
|
}
|
|
5061
|
-
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-12 w-12 items-center justify-center rounded-full border border-ods-border bg-ods-bg", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary text-h4", children: (_optionalChain([interview, 'access',
|
|
5062
|
-
_optionalChain([interview, 'access',
|
|
3289
|
+
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-12 w-12 items-center justify-center rounded-full border border-ods-border bg-ods-bg", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary text-h4", children: (_optionalChain([interview, 'access', _106 => _106.user, 'optionalAccess', _107 => _107.full_name]) || "A").charAt(0).toUpperCase() }) }),
|
|
3290
|
+
_optionalChain([interview, 'access', _108 => _108.msp, 'optionalAccess', _109 => _109.icon_url]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute -bottom-1 -right-1 flex h-6 w-6 items-center justify-center overflow-hidden rounded-full bg-ods-text-primary ring-1 ring-ods-bg", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
5063
3291
|
_chunkMGHIV4L6cjs.next_image_default,
|
|
5064
3292
|
{
|
|
5065
3293
|
src: interview.msp.icon_url,
|
|
@@ -5073,13 +3301,13 @@ function CustomerInterviewCard({
|
|
|
5073
3301
|
] }),
|
|
5074
3302
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "min-w-0 flex-1", children: [
|
|
5075
3303
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "truncate text-ods-text-primary text-h6", children: [
|
|
5076
|
-
_optionalChain([interview, 'access',
|
|
5077
|
-
_optionalChain([interview, 'access',
|
|
3304
|
+
_optionalChain([interview, 'access', _110 => _110.user, 'optionalAccess', _111 => _111.full_name]) || "Anonymous",
|
|
3305
|
+
_optionalChain([interview, 'access', _112 => _112.msp, 'optionalAccess', _113 => _113.name]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary", children: [
|
|
5078
3306
|
" \u2022 ",
|
|
5079
3307
|
interview.msp.name
|
|
5080
3308
|
] })
|
|
5081
3309
|
] }),
|
|
5082
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "truncate text-ods-text-secondary text-h6", children: _optionalChain([interview, 'access',
|
|
3310
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "truncate text-ods-text-secondary text-h6", children: _optionalChain([interview, 'access', _114 => _114.user, 'optionalAccess', _115 => _115.job_title]) || " " })
|
|
5083
3311
|
] })
|
|
5084
3312
|
] }) })
|
|
5085
3313
|
] }) });
|
|
@@ -5088,7 +3316,7 @@ function CustomerInterviewCard({
|
|
|
5088
3316
|
// src/components/chat/types/entities/investor-update.ts
|
|
5089
3317
|
function formatInvestorUpdatePeriod(start, end, options) {
|
|
5090
3318
|
if (!start && !end) return "";
|
|
5091
|
-
const fmt = (d) => formatDateWithTimezone(d, null, _optionalChain([options, 'optionalAccess',
|
|
3319
|
+
const fmt = (d) => formatDateWithTimezone(d, null, _optionalChain([options, 'optionalAccess', _116 => _116.monthFormat]) === "long" ? "monthYear" : "monthYearShort") || "?";
|
|
5092
3320
|
const s = start ? fmt(start) : "?";
|
|
5093
3321
|
const e = end ? fmt(end) : "?";
|
|
5094
3322
|
return `${s} - ${e}`;
|
|
@@ -5199,7 +3427,7 @@ function InvestorUpdateCard({
|
|
|
5199
3427
|
imageUrl: update.featured_image,
|
|
5200
3428
|
placeholderUrl,
|
|
5201
3429
|
title: update.title || `Update #${update.update_number || "?"}`,
|
|
5202
|
-
summary: _optionalChain([update, 'access',
|
|
3430
|
+
summary: _optionalChain([update, 'access', _117 => _117.strategic_update, 'optionalAccess', _118 => _118.slice, 'call', _119 => _119(0, 120)]) || _optionalChain([update, 'access', _120 => _120.content, 'optionalAccess', _121 => _121.slice, 'call', _122 => _122(0, 120)]) || "No description",
|
|
5203
3431
|
badges: update.update_number ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "rounded bg-ods-accent/10 px-2 py-0.5 text-xs font-medium text-ods-accent", children: [
|
|
5204
3432
|
"#",
|
|
5205
3433
|
update.update_number
|
|
@@ -5401,7 +3629,7 @@ function OnboardingGuideCard({
|
|
|
5401
3629
|
const compactCover = coverImage || placeholderUrl || null;
|
|
5402
3630
|
const hasVideoCover = !guide.featured_image && !!guide.main_video_thumbnail;
|
|
5403
3631
|
const summary2 = stripMarkdownPreview(guide.video_summary || guide.content || "");
|
|
5404
|
-
const author = _optionalChain([guide, 'access',
|
|
3632
|
+
const author = _optionalChain([guide, 'access', _123 => _123.author, 'optionalAccess', _124 => _124.full_name, 'optionalAccess', _125 => _125.trim, 'call', _126 => _126()]) || "";
|
|
5405
3633
|
const subtitleParts = [`Step ${guide.step_order}`, guide.section, author].filter(
|
|
5406
3634
|
(s) => typeof s === "string" && s.length > 0
|
|
5407
3635
|
);
|
|
@@ -5455,7 +3683,7 @@ function OnboardingGuideCard({
|
|
|
5455
3683
|
|
|
5456
3684
|
// src/components/chat/utils/agent-status-message.ts
|
|
5457
3685
|
function getStatusColorScheme(status) {
|
|
5458
|
-
const s = _optionalChain([status, 'optionalAccess',
|
|
3686
|
+
const s = _optionalChain([status, 'optionalAccess', _127 => _127.toLowerCase, 'call', _128 => _128()]) || "";
|
|
5459
3687
|
switch (status) {
|
|
5460
3688
|
case "completed":
|
|
5461
3689
|
case "success":
|
|
@@ -5549,7 +3777,7 @@ function RoadmapVoteButton({
|
|
|
5549
3777
|
color,
|
|
5550
3778
|
className
|
|
5551
3779
|
}) {
|
|
5552
|
-
const Icon = voteType === "up" ?
|
|
3780
|
+
const Icon = voteType === "up" ? _chunkQZVSJF2Kcjs.ThumbsUpIcon : _chunkQZVSJF2Kcjs.ThumbsDownIcon;
|
|
5553
3781
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
5554
3782
|
_chunkDFQYAYBHcjs.Button,
|
|
5555
3783
|
{
|
|
@@ -5706,7 +3934,7 @@ function RoadmapCard({
|
|
|
5706
3934
|
const compactHref = safeHref(_nullishCoalesce(href, () => ( null)));
|
|
5707
3935
|
const hasVotes = (_nullishCoalesce(item.upvotes, () => ( 0))) > 0 || (_nullishCoalesce(item.downvotes, () => ( 0))) > 0;
|
|
5708
3936
|
const hasFigma = !!item.figmaUrl;
|
|
5709
|
-
const hasScreenshots = (_nullishCoalesce(_optionalChain([item, 'access',
|
|
3937
|
+
const hasScreenshots = (_nullishCoalesce(_optionalChain([item, 'access', _129 => _129.screenshots, 'optionalAccess', _130 => _130.length]), () => ( 0))) > 0;
|
|
5710
3938
|
const typeLabel = getTaskTypeLabel(item.customItemId);
|
|
5711
3939
|
const useTypeIcon = cardType === "internal_task" || !iconSrc && item.customItemId != null;
|
|
5712
3940
|
const body = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
@@ -5725,7 +3953,7 @@ function RoadmapCard({
|
|
|
5725
3953
|
unoptimized: true,
|
|
5726
3954
|
className: "h-8 w-8 object-contain"
|
|
5727
3955
|
}
|
|
5728
|
-
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "uppercase text-ods-text-secondary text-h6", children: _optionalChain([item, 'access',
|
|
3956
|
+
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "uppercase text-ods-text-secondary text-h6", children: _optionalChain([item, 'access', _131 => _131.title, 'optionalAccess', _132 => _132.substring, 'call', _133 => _133(0, 2)]) || "??" })
|
|
5729
3957
|
}
|
|
5730
3958
|
),
|
|
5731
3959
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
@@ -5766,14 +3994,14 @@ function RoadmapCard({
|
|
|
5766
3994
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: _nullishCoalesce(item.downvotes, () => ( 0)) })
|
|
5767
3995
|
] })
|
|
5768
3996
|
] }) : null,
|
|
5769
|
-
hasFigma ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "hidden shrink-0 items-center sm:flex", title: "Has Figma prototype", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3997
|
+
hasFigma ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "hidden shrink-0 items-center sm:flex", title: "Has Figma prototype", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQZVSJF2Kcjs.FigmaIcon, { className: "h-3 w-3" }) }) : null,
|
|
5770
3998
|
hasScreenshots ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
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__ */ _jsxruntime.jsx.call(void 0,
|
|
4004
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQZVSJF2Kcjs.ImageIcon, { className: "h-3 w-3" }),
|
|
5777
4005
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: item.screenshots.length })
|
|
5778
4006
|
]
|
|
5779
4007
|
}
|
|
@@ -5809,7 +4037,7 @@ function RoadmapCard({
|
|
|
5809
4037
|
unoptimized: true,
|
|
5810
4038
|
className: "object-contain p-1"
|
|
5811
4039
|
}
|
|
5812
|
-
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-xs font-medium uppercase text-ods-text-secondary", children: _optionalChain([item, 'access',
|
|
4040
|
+
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-xs font-medium uppercase text-ods-text-secondary", children: _optionalChain([item, 'access', _134 => _134.title, 'optionalAccess', _135 => _135.substring, 'call', _136 => _136(0, 2)]) || "??" }) }),
|
|
5813
4041
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col", children: [
|
|
5814
4042
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex min-h-[48px] items-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "line-clamp-2 flex-1 text-ods-text-primary text-h3", children: item.title }) }),
|
|
5815
4043
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex min-h-[20px] items-center", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "truncate text-ods-text-secondary text-h5", children: [
|
|
@@ -5872,7 +4100,7 @@ function RoadmapCard({
|
|
|
5872
4100
|
variant: "outline",
|
|
5873
4101
|
size: "small-legacy",
|
|
5874
4102
|
onClick: () => setShowScreenshots(true),
|
|
5875
|
-
leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4103
|
+
leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQZVSJF2Kcjs.ImageIcon, { className: "h-5 w-5" })
|
|
5876
4104
|
}
|
|
5877
4105
|
),
|
|
5878
4106
|
(() => {
|
|
@@ -5884,7 +4112,7 @@ function RoadmapCard({
|
|
|
5884
4112
|
size: "small-legacy",
|
|
5885
4113
|
openInNewTab: true,
|
|
5886
4114
|
href: figmaSafe,
|
|
5887
|
-
leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4115
|
+
leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQZVSJF2Kcjs.FigmaIcon, { className: "h-5 w-5" })
|
|
5888
4116
|
}
|
|
5889
4117
|
) : null;
|
|
5890
4118
|
})(),
|
|
@@ -5910,10 +4138,10 @@ var MEDIA_TYPE = {
|
|
|
5910
4138
|
VIDEO: "video"
|
|
5911
4139
|
};
|
|
5912
4140
|
function isVideoMedia(media) {
|
|
5913
|
-
return _optionalChain([media, 'optionalAccess',
|
|
4141
|
+
return _optionalChain([media, 'optionalAccess', _137 => _137.media_type]) === MEDIA_TYPE.VIDEO;
|
|
5914
4142
|
}
|
|
5915
4143
|
function isImageMedia(media) {
|
|
5916
|
-
return _optionalChain([media, 'optionalAccess',
|
|
4144
|
+
return _optionalChain([media, 'optionalAccess', _138 => _138.media_type]) === MEDIA_TYPE.IMAGE;
|
|
5917
4145
|
}
|
|
5918
4146
|
function isPublishableMediaType(mediaType) {
|
|
5919
4147
|
return mediaType === MEDIA_TYPE.VIDEO || mediaType === MEDIA_TYPE.IMAGE;
|
|
@@ -6013,7 +4241,7 @@ function programItemToStripProfile(item) {
|
|
|
6013
4241
|
const fromAuthor = toStripProfile(item.author);
|
|
6014
4242
|
if (fromAuthor) return fromAuthor;
|
|
6015
4243
|
const host = Array.isArray(item.hosts) ? item.hosts[0] : null;
|
|
6016
|
-
if (!_optionalChain([host, 'optionalAccess',
|
|
4244
|
+
if (!_optionalChain([host, 'optionalAccess', _139 => _139.name])) return null;
|
|
6017
4245
|
return toStripProfile({ full_name: host.name, avatar_url: _nullishCoalesce(host.avatar_url, () => ( null)) });
|
|
6018
4246
|
}
|
|
6019
4247
|
|
|
@@ -6189,10 +4417,10 @@ function ProgramEditorialCard({
|
|
|
6189
4417
|
playable,
|
|
6190
4418
|
className
|
|
6191
4419
|
}) {
|
|
6192
|
-
const edgeColor =
|
|
4420
|
+
const edgeColor = _chunkRKV5B7EUcjs.useImageEdgeColor.call(void 0, feature ? cover : null, "transparent");
|
|
6193
4421
|
const meta = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: EDITORIAL_META_ROW, children: [
|
|
6194
4422
|
date && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-flamingo-pink", children: date }),
|
|
6195
|
-
[typeMeta, feature ? null : _optionalChain([profile, 'optionalAccess',
|
|
4423
|
+
[typeMeta, feature ? null : _optionalChain([profile, 'optionalAccess', _140 => _140.name])].filter((part) => !!part).map((part) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex items-center gap-[var(--spacing-system-s)] text-ods-text-secondary", children: [
|
|
6196
4424
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { "aria-hidden": "true", children: "\u2022" }),
|
|
6197
4425
|
part
|
|
6198
4426
|
] }, part))
|
|
@@ -6366,7 +4594,7 @@ function ProgramCard({
|
|
|
6366
4594
|
const itemDate = compactDate;
|
|
6367
4595
|
const compactCover = coverImage || placeholderUrl || null;
|
|
6368
4596
|
const typeMeta = compactTypeMetaValue;
|
|
6369
|
-
const subtitleParts = [itemDate, typeMeta, _optionalChain([config, 'access',
|
|
4597
|
+
const subtitleParts = [itemDate, typeMeta, _optionalChain([config, 'access', _141 => _141.labels, 'optionalAccess', _142 => _142.singular])].filter(
|
|
6370
4598
|
(s) => typeof s === "string" && s.length > 0
|
|
6371
4599
|
);
|
|
6372
4600
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "a", { href, target, rel, className: _chunk3ATAYP36cjs.cn.call(void 0, COMPACT_CARD_OUTER, "group", className), children: [
|
|
@@ -6916,25 +5144,4 @@ function buildListUrl(contentRefType, ids, base = "") {
|
|
|
6916
5144
|
|
|
6917
5145
|
|
|
6918
5146
|
|
|
6919
|
-
|
|
6920
|
-
|
|
6921
|
-
|
|
6922
|
-
|
|
6923
|
-
|
|
6924
|
-
|
|
6925
|
-
|
|
6926
|
-
|
|
6927
|
-
|
|
6928
|
-
|
|
6929
|
-
|
|
6930
|
-
|
|
6931
|
-
|
|
6932
|
-
|
|
6933
|
-
|
|
6934
|
-
|
|
6935
|
-
|
|
6936
|
-
|
|
6937
|
-
|
|
6938
|
-
|
|
6939
|
-
|
|
6940
|
-
exports.FloatingTooltip = FloatingTooltip; exports.tagVariants = tagVariants; exports.Tag = Tag; exports.Card = Card; exports.CardHeader = CardHeader; exports.CardTitle = CardTitle; exports.CardDescription = CardDescription; exports.CardContent = CardContent; exports.CardFooter = CardFooter; exports.CardHorizontal = CardHorizontal; exports.VENDOR_CLASSIFICATIONS = VENDOR_CLASSIFICATIONS; exports.OPENFRAME_CLASSIFICATIONS = OPENFRAME_CLASSIFICATIONS; exports.isVendorClassification = isVendorClassification; exports.isOpenFrameClassification = isOpenFrameClassification; exports.formatDate = formatDate; exports.formatNumber = formatNumber; exports.formatPrice = formatPrice; exports.formatBytes = formatBytes; exports.formatBytesShort = formatBytesShort; exports.formatFileSize = formatFileSize; exports.formatLargeNumber = formatLargeNumber; exports.formatAbbreviatedNumber = formatAbbreviatedNumber; exports.nameInitials = nameInitials; exports.personInitials = personInitials; exports.personFirstName = personFirstName; exports.singleInitial = singleInitial; exports.formatDurationMMSS = formatDurationMMSS; exports.formatDurationCompact = formatDurationCompact; exports.VIEWER_TIMEZONE = VIEWER_TIMEZONE; exports.formatDateWithTimezone = formatDateWithTimezone; exports.formatDateTimeYmd = formatDateTimeYmd; exports.formatTimeWithTimezone = formatTimeWithTimezone; exports.formatProgramDate = formatProgramDate; exports.formatProgramDateRange = formatProgramDateRange; exports.isOrderedRange = isOrderedRange; exports.formatDurationFromRange = formatDurationFromRange; exports.formatDateUTC = formatDateUTC; exports.formatEntryMonthUTC = formatEntryMonthUTC; exports.formatLegalDate = formatLegalDate; exports.formatCurrency = formatCurrency; exports.formatPercent = formatPercent; exports.formatWholeDollars = formatWholeDollars; exports.formatCompactMetric = formatCompactMetric; exports.getTrendColors = getTrendColors; exports.formatDateRange = formatDateRange; exports.formatDateTimeAt = formatDateTimeAt; exports.formatDurationFromMs = formatDurationFromMs; exports.formatDuration = formatDuration; exports.titleCaseFromSlug = titleCaseFromSlug; exports.formatUnderscoreText = formatUnderscoreText; exports.stripHtml = stripHtml; exports.formatClassification = formatClassification; exports.formatPricingModel = formatPricingModel; exports.formatBioText = formatBioText; exports.formatProgramTimeRange = formatProgramTimeRange; exports.formatWebinarTimeMeta = formatWebinarTimeMeta; exports.SquareAvatar = SquareAvatar; exports.InteractiveCard = InteractiveCard; exports.Modal = Modal; exports.ModalContent = ModalContent; exports.ModalHeader = ModalHeader; exports.ModalTitle = ModalTitle; exports.ModalFooter = ModalFooter; exports.ImageGalleryModal = ImageGalleryModal; exports.fetchPriorityProp = fetchPriorityProp; exports.MUX_STREAM_ORIGIN = MUX_STREAM_ORIGIN; exports.MUX_IMAGE_ORIGIN = MUX_IMAGE_ORIGIN; exports.saveDataEnabled = saveDataEnabled; exports.useVideoOriginPreconnect = useVideoOriginPreconnect; exports.useVideoWarmup = useVideoWarmup; exports.VideoPlayBadge = VideoPlayBadge; exports.CardHoverPlay = CardHoverPlay; exports.VideoUnmuteGlyph = VideoUnmuteGlyph; exports.extractYouTubeId = extractYouTubeId; exports.VIDEO_PLAYBACK_FAILED_EVENT = VIDEO_PLAYBACK_FAILED_EVENT; exports.Video = Video; exports.statusBadgeVariants = statusBadgeVariants; exports.genBadgeBgOpacity = genBadgeBgOpacity; exports.generationTierFromLabel = generationTierFromLabel; exports.StatusBadge = StatusBadge; exports.BADGE_PALETTE = BADGE_PALETTE; exports.isBadgePaletteKey = isBadgePaletteKey; exports.pickBadgePaletteColor = pickBadgePaletteColor; exports.PaletteBadge = PaletteBadge; exports.DepartmentBadge = DepartmentBadge; exports.AvatarStack = AvatarStack; exports.ICON_REGISTRY = ICON_REGISTRY; exports.normalizeIconKey = normalizeIconKey; exports.getIconComponent = getIconComponent; exports.getDynamicIcon = getDynamicIcon; exports.ICON_ALIASES = ICON_ALIASES; exports.brandLogoForName = brandLogoForName; exports.resolveIcon = resolveIcon; exports.ICON_OPTIONS = ICON_OPTIONS; exports.FAE_AVATAR_DATA_URI = FAE_AVATAR_DATA_URI; exports.AgentMark = AgentMark; exports.getProxiedImageUrl = getProxiedImageUrl; exports.urlPathLooksLikeSvg = urlPathLooksLikeSvg; exports.shouldProxyImage = shouldProxyImage; exports.generateImageSizes = generateImageSizes; exports.skipsImageOptimizer = skipsImageOptimizer; exports.EntityIcon = EntityIcon; exports.escapeRegExp = escapeRegExp; exports.isCrossOriginUrl = isCrossOriginUrl; exports.decideNewTab = decideNewTab; exports.isSameOriginAbsoluteHref = isSameOriginAbsoluteHref; exports.computeIsNewTab = computeIsNewTab; exports.newTabAnchorAttrs = newTabAnchorAttrs; exports.buildAnchorProps = buildAnchorProps; exports.EMPTY_AUTHOR_PLACEHOLDER = EMPTY_AUTHOR_PLACEHOLDER; exports.EntityMetadataValueCell = EntityMetadataValueCell; exports.EntityMetadataAuthorCell = EntityMetadataAuthorCell; exports.EntityAuthorCard = EntityAuthorCard; exports.BlogImagePlaceholder = BlogImagePlaceholder; exports.CONTENT_CARD_FRAME_CLASS = CONTENT_CARD_FRAME_CLASS; exports.CONTENT_CARD_SKELETON_FRAME_CLASS = CONTENT_CARD_SKELETON_FRAME_CLASS; exports.ContentCardFrame = ContentCardFrame; exports.useCoverImageFallback = useCoverImageFallback; exports.hideOnError = hideOnError; exports.EntityPortraitCard = EntityPortraitCard; exports.FlamingoLogo = FlamingoLogo2; exports.PlatformBadge = PlatformBadge; exports.AdminContentCard = AdminContentCard; exports.ADMIN_CONTENT_CARD_GRID_CLASS = ADMIN_CONTENT_CARD_GRID_CLASS; exports.AdminContentCardSkeleton = AdminContentCardSkeleton; exports.AdminContentCardGrid = AdminContentCardGrid; exports.getProxiedImageUrl2 = getProxiedImageUrl2; exports.EmployeeEntryBadge = EmployeeEntryBadge; exports.EmployeeEntryCard = EmployeeEntryCard; exports.EmployeeEntryCardSkeleton = EmployeeEntryCardSkeleton; exports.WhatIShippedCard = WhatIShippedCard; exports.WhatIShippedCardSkeleton = WhatIShippedCardSkeleton; exports.HowIWorkCard = HowIWorkCard; exports.HowIWorkCardSkeleton = HowIWorkCardSkeleton; exports.AiPromptCard = AiPromptCard; exports.AiPromptCardSkeleton = AiPromptCardSkeleton; exports.PAGE_HEADING_CLASS = PAGE_HEADING_CLASS; exports.SECTION_HEADING_CLASS = SECTION_HEADING_CLASS; exports.PageHeading = PageHeading; exports.headingAccentClass = headingAccentClass; exports.accentSentenceMarks = accentSentenceMarks; exports.SectionHeading = SectionHeading; exports.DEFAULT_VIDEO_BITES_TITLE = DEFAULT_VIDEO_BITES_TITLE; exports.toStripProfile = toStripProfile; exports.sortBitesByCreatedAtDesc = sortBitesByCreatedAtDesc; exports.sortBitesByFeaturedAtDesc = sortBitesByFeaturedAtDesc; exports.VideoHoverPreviewSurface = VideoHoverPreviewSurface; exports.ProductReleaseCard = ProductReleaseCard; exports.ProductReleaseCardSkeleton = ProductReleaseCardSkeleton; exports.formatReleaseDate = formatReleaseDate; exports.formatDateShort = formatDateShort; exports.formatDateSlashUTC = formatDateSlashUTC; exports.releaseTypeToBadgeColor = releaseTypeToBadgeColor; exports.resolveReleaseCover = resolveReleaseCover; exports.defaultBuildProductReleaseCardProps = defaultBuildProductReleaseCardProps; exports.buildProductReleaseCardProps = buildProductReleaseCardProps; exports.UNSAFE_URL_CHARS = UNSAFE_URL_CHARS; exports.COMPACT_CARD_OUTER = COMPACT_CARD_OUTER; exports.COMPACT_CARD_OUTER_STATIC = COMPACT_CARD_OUTER_STATIC; exports.COMPACT_CARD_SKELETON_OUTER = COMPACT_CARD_SKELETON_OUTER; exports.COMPACT_CARD_IMAGE_SLOT = COMPACT_CARD_IMAGE_SLOT; exports.COMPACT_CARD_SKELETON_IMAGE_SLOT = COMPACT_CARD_SKELETON_IMAGE_SLOT; exports.COMPACT_CARD_ICON_SLOT = COMPACT_CARD_ICON_SLOT; exports.COMPACT_CARD_TEXT_COL = COMPACT_CARD_TEXT_COL; exports.COMPACT_CARD_TITLE_ROW = COMPACT_CARD_TITLE_ROW; exports.COMPACT_CARD_META_ROW_BOX = COMPACT_CARD_META_ROW_BOX; exports.COMPACT_CARD_TITLE = COMPACT_CARD_TITLE; exports.COMPACT_CARD_SUBTITLE = COMPACT_CARD_SUBTITLE; exports.COMPACT_CARD_SUMMARY = COMPACT_CARD_SUMMARY; exports.COMPACT_CARD_META_ROW = COMPACT_CARD_META_ROW; exports.COMPACT_CARD_ROW_FILLER = COMPACT_CARD_ROW_FILLER; exports.safeHref = safeHref; exports.useEntityCardLink = useEntityCardLink; exports.BlogCardSkeleton = BlogCardSkeleton; exports.BlogCard = BlogCard; exports.CaseStudyCardSkeleton = CaseStudyCardSkeleton; exports.CaseStudyCard = CaseStudyCard; exports.CustomerInterviewCardSkeleton = CustomerInterviewCardSkeleton; exports.CustomerInterviewCard = CustomerInterviewCard; exports.formatInvestorUpdatePeriod = formatInvestorUpdatePeriod; exports.InvestorUpdateCardSkeleton = InvestorUpdateCardSkeleton; exports.InvestorUpdateCard = InvestorUpdateCard; exports.OnboardingGuideCardSkeleton = OnboardingGuideCardSkeleton; exports.OnboardingGuideCard = OnboardingGuideCard; exports.getStatusColorScheme = getStatusColorScheme; exports.CUSTOM_ITEM_ID = CUSTOM_ITEM_ID; exports.getTaskTypeLabel = getTaskTypeLabel; exports.RoadmapVoteButton = RoadmapVoteButton; exports.TaskTypeIcon = TaskTypeIcon; exports.RoadmapCardSkeleton = RoadmapCardSkeleton; exports.RoadmapCard = RoadmapCard; exports.MEDIA_TYPE = MEDIA_TYPE; exports.isVideoMedia = isVideoMedia; exports.isImageMedia = isImageMedia; exports.isPublishableMediaType = isPublishableMediaType; exports.partitionMediaByType = partitionMediaByType; exports.IMAGE_FILE_ACCEPT = IMAGE_FILE_ACCEPT; exports.MEDIA_FILE_ACCEPT = MEDIA_FILE_ACCEPT; exports.fileMediaType = fileMediaType; exports.mediaNameKey = mediaNameKey; exports.fileContentKey = fileContentKey; exports.programStr = programStr; exports.programDateInstant = programDateInstant; exports.webinarTiming = webinarTiming; exports.programMetaLine = programMetaLine; exports.eventAudience = eventAudience; exports.programMetaFormatters = programMetaFormatters; exports.PROGRAM_META_RENDERERS = PROGRAM_META_RENDERERS; exports.programItemToStripProfile = programItemToStripProfile; exports.ProgramCardSkeleton = ProgramCardSkeleton; exports.ProgramCard = ProgramCard; exports.TRUST_FRAMEWORK_MONITORING = TRUST_FRAMEWORK_MONITORING; exports.trustFrameworkMonitoringEntry = trustFrameworkMonitoringEntry; exports.trustFrameworkBadge = trustFrameworkBadge; exports.TRUST_CENTER_SECTIONS = TRUST_CENTER_SECTIONS; exports.TRUST_CENTER_TITLE = TRUST_CENTER_TITLE; exports.TRUST_CENTER_TAGLINE = TRUST_CENTER_TAGLINE; exports.TRUST_CENTER_API_PATH = TRUST_CENTER_API_PATH; exports.TRUST_CENTER_CACHE_SECONDS = TRUST_CENTER_CACHE_SECONDS; exports.TRUST_CENTER_DOCUMENT_CACHE_SECONDS = TRUST_CENTER_DOCUMENT_CACHE_SECONDS; exports.TRUST_CENTER_CARD_ID = TRUST_CENTER_CARD_ID; exports.TRUST_CENTER_DOCUMENT_TYPE = TRUST_CENTER_DOCUMENT_TYPE; exports.TRUST_CENTER_PAGE_PATH = TRUST_CENTER_PAGE_PATH; exports.isTrustCenterMonitored = isTrustCenterMonitored; exports.trustFrameworksSummary = trustFrameworksSummary; exports.trustCenterDocumentUrl = trustCenterDocumentUrl; exports.TRUST_CENTER_SEARCH_PARAM = TRUST_CENTER_SEARCH_PARAM; exports.TRUST_CENTER_SEARCH_MAX_CHARS = TRUST_CENTER_SEARCH_MAX_CHARS; exports.TRUST_CENTER_SEARCH_DEBOUNCE_MS = TRUST_CENTER_SEARCH_DEBOUNCE_MS; exports.TRUST_CENTER_DOMAIN_PARAM = TRUST_CENTER_DOMAIN_PARAM; exports.normalizeTrustControlQuery = normalizeTrustControlQuery; exports.trustControlQueryMatcher = trustControlQueryMatcher; exports.filterTrustControlDomains = filterTrustControlDomains; exports.trustCenterControlsUrl = trustCenterControlsUrl; exports.extractItems = extractItems; exports.extractItemId = extractItemId; exports.extractCardItems = extractCardItems; exports.canonicalContentRefType = canonicalContentRefType; exports.buildListUrl = buildListUrl;
|
|
5147
|
+
exports.FloatingTooltip = FloatingTooltip; exports.tagVariants = tagVariants; exports.Tag = Tag; exports.Card = Card; exports.CardHeader = CardHeader; exports.CardTitle = CardTitle; exports.CardDescription = CardDescription; exports.CardContent = CardContent; exports.CardFooter = CardFooter; exports.CardHorizontal = CardHorizontal; exports.VENDOR_CLASSIFICATIONS = VENDOR_CLASSIFICATIONS; exports.OPENFRAME_CLASSIFICATIONS = OPENFRAME_CLASSIFICATIONS; exports.isVendorClassification = isVendorClassification; exports.isOpenFrameClassification = isOpenFrameClassification; exports.formatDate = formatDate; exports.formatNumber = formatNumber; exports.formatPrice = formatPrice; exports.formatBytes = formatBytes; exports.formatBytesShort = formatBytesShort; exports.formatFileSize = formatFileSize; exports.formatLargeNumber = formatLargeNumber; exports.formatAbbreviatedNumber = formatAbbreviatedNumber; exports.nameInitials = nameInitials; exports.personInitials = personInitials; exports.personFirstName = personFirstName; exports.singleInitial = singleInitial; exports.formatDurationMMSS = formatDurationMMSS; exports.formatDurationCompact = formatDurationCompact; exports.VIEWER_TIMEZONE = VIEWER_TIMEZONE; exports.formatDateWithTimezone = formatDateWithTimezone; exports.formatDateTimeYmd = formatDateTimeYmd; exports.formatTimeWithTimezone = formatTimeWithTimezone; exports.formatProgramDate = formatProgramDate; exports.formatProgramDateRange = formatProgramDateRange; exports.isOrderedRange = isOrderedRange; exports.formatDurationFromRange = formatDurationFromRange; exports.formatDateUTC = formatDateUTC; exports.formatEntryMonthUTC = formatEntryMonthUTC; exports.formatLegalDate = formatLegalDate; exports.formatCurrency = formatCurrency; exports.formatPercent = formatPercent; exports.formatWholeDollars = formatWholeDollars; exports.formatCompactMetric = formatCompactMetric; exports.getTrendColors = getTrendColors; exports.formatDateRange = formatDateRange; exports.formatDateTimeAt = formatDateTimeAt; exports.formatDurationFromMs = formatDurationFromMs; exports.formatDuration = formatDuration; exports.titleCaseFromSlug = titleCaseFromSlug; exports.formatUnderscoreText = formatUnderscoreText; exports.stripHtml = stripHtml; exports.formatClassification = formatClassification; exports.formatPricingModel = formatPricingModel; exports.formatBioText = formatBioText; exports.formatProgramTimeRange = formatProgramTimeRange; exports.formatWebinarTimeMeta = formatWebinarTimeMeta; exports.SquareAvatar = SquareAvatar; exports.InteractiveCard = InteractiveCard; exports.Modal = Modal; exports.ModalContent = ModalContent; exports.ModalHeader = ModalHeader; exports.ModalTitle = ModalTitle; exports.ModalFooter = ModalFooter; exports.ImageGalleryModal = ImageGalleryModal; exports.VideoPlayBadge = VideoPlayBadge; exports.CardHoverPlay = CardHoverPlay; exports.VideoUnmuteGlyph = VideoUnmuteGlyph; exports.statusBadgeVariants = statusBadgeVariants; exports.genBadgeBgOpacity = genBadgeBgOpacity; exports.generationTierFromLabel = generationTierFromLabel; exports.StatusBadge = StatusBadge; exports.BADGE_PALETTE = BADGE_PALETTE; exports.isBadgePaletteKey = isBadgePaletteKey; exports.pickBadgePaletteColor = pickBadgePaletteColor; exports.PaletteBadge = PaletteBadge; exports.DepartmentBadge = DepartmentBadge; exports.AvatarStack = AvatarStack; exports.getProxiedImageUrl = getProxiedImageUrl; exports.urlPathLooksLikeSvg = urlPathLooksLikeSvg; exports.shouldProxyImage = shouldProxyImage; exports.generateImageSizes = generateImageSizes; exports.skipsImageOptimizer = skipsImageOptimizer; exports.escapeRegExp = escapeRegExp; exports.isCrossOriginUrl = isCrossOriginUrl; exports.decideNewTab = decideNewTab; exports.isSameOriginAbsoluteHref = isSameOriginAbsoluteHref; exports.computeIsNewTab = computeIsNewTab; exports.newTabAnchorAttrs = newTabAnchorAttrs; exports.buildAnchorProps = buildAnchorProps; exports.EMPTY_AUTHOR_PLACEHOLDER = EMPTY_AUTHOR_PLACEHOLDER; exports.EntityMetadataValueCell = EntityMetadataValueCell; exports.EntityMetadataAuthorCell = EntityMetadataAuthorCell; exports.EntityAuthorCard = EntityAuthorCard; exports.BlogImagePlaceholder = BlogImagePlaceholder; exports.CONTENT_CARD_FRAME_CLASS = CONTENT_CARD_FRAME_CLASS; exports.CONTENT_CARD_SKELETON_FRAME_CLASS = CONTENT_CARD_SKELETON_FRAME_CLASS; exports.ContentCardFrame = ContentCardFrame; exports.useCoverImageFallback = useCoverImageFallback; exports.hideOnError = hideOnError; exports.EntityPortraitCard = EntityPortraitCard; exports.FlamingoLogo = FlamingoLogo; exports.PlatformBadge = PlatformBadge; exports.AdminContentCard = AdminContentCard; exports.ADMIN_CONTENT_CARD_GRID_CLASS = ADMIN_CONTENT_CARD_GRID_CLASS; exports.AdminContentCardSkeleton = AdminContentCardSkeleton; exports.AdminContentCardGrid = AdminContentCardGrid; exports.getProxiedImageUrl2 = getProxiedImageUrl2; exports.EmployeeEntryBadge = EmployeeEntryBadge; exports.EmployeeEntryCard = EmployeeEntryCard; exports.EmployeeEntryCardSkeleton = EmployeeEntryCardSkeleton; exports.WhatIShippedCard = WhatIShippedCard; exports.WhatIShippedCardSkeleton = WhatIShippedCardSkeleton; exports.HowIWorkCard = HowIWorkCard; exports.HowIWorkCardSkeleton = HowIWorkCardSkeleton; exports.AiPromptCard = AiPromptCard; exports.AiPromptCardSkeleton = AiPromptCardSkeleton; exports.PAGE_HEADING_CLASS = PAGE_HEADING_CLASS; exports.SECTION_HEADING_CLASS = SECTION_HEADING_CLASS; exports.PageHeading = PageHeading; exports.headingAccentClass = headingAccentClass; exports.accentSentenceMarks = accentSentenceMarks; exports.SectionHeading = SectionHeading; exports.DEFAULT_VIDEO_BITES_TITLE = DEFAULT_VIDEO_BITES_TITLE; exports.toStripProfile = toStripProfile; exports.sortBitesByCreatedAtDesc = sortBitesByCreatedAtDesc; exports.sortBitesByFeaturedAtDesc = sortBitesByFeaturedAtDesc; exports.ProductReleaseCard = ProductReleaseCard; exports.ProductReleaseCardSkeleton = ProductReleaseCardSkeleton; exports.formatReleaseDate = formatReleaseDate; exports.formatDateShort = formatDateShort; exports.formatDateSlashUTC = formatDateSlashUTC; exports.releaseTypeToBadgeColor = releaseTypeToBadgeColor; exports.resolveReleaseCover = resolveReleaseCover; exports.defaultBuildProductReleaseCardProps = defaultBuildProductReleaseCardProps; exports.buildProductReleaseCardProps = buildProductReleaseCardProps; exports.UNSAFE_URL_CHARS = UNSAFE_URL_CHARS; exports.COMPACT_CARD_OUTER = COMPACT_CARD_OUTER; exports.COMPACT_CARD_OUTER_STATIC = COMPACT_CARD_OUTER_STATIC; exports.COMPACT_CARD_SKELETON_OUTER = COMPACT_CARD_SKELETON_OUTER; exports.COMPACT_CARD_IMAGE_SLOT = COMPACT_CARD_IMAGE_SLOT; exports.COMPACT_CARD_SKELETON_IMAGE_SLOT = COMPACT_CARD_SKELETON_IMAGE_SLOT; exports.COMPACT_CARD_ICON_SLOT = COMPACT_CARD_ICON_SLOT; exports.COMPACT_CARD_TEXT_COL = COMPACT_CARD_TEXT_COL; exports.COMPACT_CARD_TITLE_ROW = COMPACT_CARD_TITLE_ROW; exports.COMPACT_CARD_META_ROW_BOX = COMPACT_CARD_META_ROW_BOX; exports.COMPACT_CARD_TITLE = COMPACT_CARD_TITLE; exports.COMPACT_CARD_SUBTITLE = COMPACT_CARD_SUBTITLE; exports.COMPACT_CARD_SUMMARY = COMPACT_CARD_SUMMARY; exports.COMPACT_CARD_META_ROW = COMPACT_CARD_META_ROW; exports.COMPACT_CARD_ROW_FILLER = COMPACT_CARD_ROW_FILLER; exports.safeHref = safeHref; exports.useEntityCardLink = useEntityCardLink; exports.BlogCardSkeleton = BlogCardSkeleton; exports.BlogCard = BlogCard; exports.CaseStudyCardSkeleton = CaseStudyCardSkeleton; exports.CaseStudyCard = CaseStudyCard; exports.CustomerInterviewCardSkeleton = CustomerInterviewCardSkeleton; exports.CustomerInterviewCard = CustomerInterviewCard; exports.formatInvestorUpdatePeriod = formatInvestorUpdatePeriod; exports.InvestorUpdateCardSkeleton = InvestorUpdateCardSkeleton; exports.InvestorUpdateCard = InvestorUpdateCard; exports.OnboardingGuideCardSkeleton = OnboardingGuideCardSkeleton; exports.OnboardingGuideCard = OnboardingGuideCard; exports.getStatusColorScheme = getStatusColorScheme; exports.CUSTOM_ITEM_ID = CUSTOM_ITEM_ID; exports.getTaskTypeLabel = getTaskTypeLabel; exports.RoadmapVoteButton = RoadmapVoteButton; exports.TaskTypeIcon = TaskTypeIcon; exports.RoadmapCardSkeleton = RoadmapCardSkeleton; exports.RoadmapCard = RoadmapCard; exports.MEDIA_TYPE = MEDIA_TYPE; exports.isVideoMedia = isVideoMedia; exports.isImageMedia = isImageMedia; exports.isPublishableMediaType = isPublishableMediaType; exports.partitionMediaByType = partitionMediaByType; exports.IMAGE_FILE_ACCEPT = IMAGE_FILE_ACCEPT; exports.MEDIA_FILE_ACCEPT = MEDIA_FILE_ACCEPT; exports.fileMediaType = fileMediaType; exports.mediaNameKey = mediaNameKey; exports.fileContentKey = fileContentKey; exports.programStr = programStr; exports.programDateInstant = programDateInstant; exports.webinarTiming = webinarTiming; exports.programMetaLine = programMetaLine; exports.eventAudience = eventAudience; exports.programMetaFormatters = programMetaFormatters; exports.PROGRAM_META_RENDERERS = PROGRAM_META_RENDERERS; exports.programItemToStripProfile = programItemToStripProfile; exports.ProgramCardSkeleton = ProgramCardSkeleton; exports.ProgramCard = ProgramCard; exports.TRUST_FRAMEWORK_MONITORING = TRUST_FRAMEWORK_MONITORING; exports.trustFrameworkMonitoringEntry = trustFrameworkMonitoringEntry; exports.trustFrameworkBadge = trustFrameworkBadge; exports.TRUST_CENTER_SECTIONS = TRUST_CENTER_SECTIONS; exports.TRUST_CENTER_TITLE = TRUST_CENTER_TITLE; exports.TRUST_CENTER_TAGLINE = TRUST_CENTER_TAGLINE; exports.TRUST_CENTER_API_PATH = TRUST_CENTER_API_PATH; exports.TRUST_CENTER_CACHE_SECONDS = TRUST_CENTER_CACHE_SECONDS; exports.TRUST_CENTER_DOCUMENT_CACHE_SECONDS = TRUST_CENTER_DOCUMENT_CACHE_SECONDS; exports.TRUST_CENTER_CARD_ID = TRUST_CENTER_CARD_ID; exports.TRUST_CENTER_DOCUMENT_TYPE = TRUST_CENTER_DOCUMENT_TYPE; exports.TRUST_CENTER_PAGE_PATH = TRUST_CENTER_PAGE_PATH; exports.isTrustCenterMonitored = isTrustCenterMonitored; exports.trustFrameworksSummary = trustFrameworksSummary; exports.trustCenterDocumentUrl = trustCenterDocumentUrl; exports.TRUST_CENTER_SEARCH_PARAM = TRUST_CENTER_SEARCH_PARAM; exports.TRUST_CENTER_SEARCH_MAX_CHARS = TRUST_CENTER_SEARCH_MAX_CHARS; exports.TRUST_CENTER_SEARCH_DEBOUNCE_MS = TRUST_CENTER_SEARCH_DEBOUNCE_MS; exports.TRUST_CENTER_DOMAIN_PARAM = TRUST_CENTER_DOMAIN_PARAM; exports.normalizeTrustControlQuery = normalizeTrustControlQuery; exports.trustControlQueryMatcher = trustControlQueryMatcher; exports.filterTrustControlDomains = filterTrustControlDomains; exports.trustCenterControlsUrl = trustCenterControlsUrl; exports.extractItems = extractItems; exports.extractItemId = extractItemId; exports.extractCardItems = extractCardItems; exports.canonicalContentRefType = canonicalContentRefType; exports.buildListUrl = buildListUrl;
|