@flamingo-stack/openframe-frontend-core 0.0.773 → 0.0.775
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/build/export-map.json +1 -1
- package/dist/{chunk-VW2QQKQ6.cjs → chunk-36GYLB3Z.cjs} +15 -15
- package/dist/{chunk-5HBGBLJT.cjs → chunk-3XLDYEQD.cjs} +74 -63
- package/dist/{chunk-7P2QXBWE.cjs → chunk-42JGOJCB.cjs} +234 -213
- package/dist/{chunk-I4ZVMNHO.cjs → chunk-4LFB4YY3.cjs} +6 -6
- package/dist/{chunk-JJNOAYD4.cjs → chunk-5AOKXXHV.cjs} +4 -4
- package/dist/{chunk-MT5Z2LSV.cjs → chunk-5YJWT5ZQ.cjs} +72 -72
- package/dist/{chunk-42YLIZFD.cjs → chunk-6SJYFUGD.cjs} +22 -22
- package/dist/{chunk-BPAYT72L.cjs → chunk-BTVO676B.cjs} +148 -131
- package/dist/{chunk-TZ4GKUO2.cjs → chunk-CZIMISAR.cjs} +5 -1
- package/dist/{chunk-XVFM6SJA.cjs → chunk-E64HPPRH.cjs} +31 -31
- package/dist/{chunk-CTRJNTYU.cjs → chunk-EQBJHJS7.cjs} +2 -2
- package/dist/{chunk-6LLF2QCS.cjs → chunk-F67SEXCW.cjs} +39 -39
- package/dist/{chunk-HEEK42BL.cjs → chunk-FHTTRWAK.cjs} +81 -81
- package/dist/{chunk-NRFNZ35Z.cjs → chunk-IQQ3SLUK.cjs} +19 -19
- package/dist/{chunk-RNLRS4ID.cjs → chunk-KKAY6GPU.cjs} +2 -2
- package/dist/{chunk-ILZEXCJH.cjs → chunk-KWZ62LPZ.cjs} +124 -104
- package/dist/{chunk-KDMWXXLE.cjs → chunk-L5CKY5WA.cjs} +15 -15
- package/dist/{chunk-CW3ML76U.cjs → chunk-NTPX5GXI.cjs} +4 -0
- package/dist/{chunk-NPCFVTA2.cjs → chunk-ODF3KCRK.cjs} +31 -31
- package/dist/{chunk-YSKX42LW.cjs → chunk-PMX6QNNN.cjs} +12 -12
- package/dist/{chunk-2A56MLLL.cjs → chunk-SWEPHSIP.cjs} +4 -4
- package/dist/{chunk-7J4YWDT6.cjs → chunk-TF2XYDH3.cjs} +3 -3
- package/dist/{chunk-KSCEAIBS.cjs → chunk-TOPGBOCN.cjs} +2 -2
- package/dist/{chunk-FPCGKH5K.cjs → chunk-TUXPFF4P.cjs} +31 -29
- package/dist/{chunk-SE76YGR3.cjs → chunk-USMR73ND.cjs} +4 -4
- package/dist/{chunk-BMFU2CUL.cjs → chunk-VAGZJRYV.cjs} +4 -4
- package/dist/{chunk-3FREBLAJ.cjs → chunk-VDXBACD3.cjs} +47 -45
- package/dist/{chunk-X5Z4HRH7.cjs → chunk-VISK6LKE.cjs} +2 -2
- package/dist/{chunk-5V7BIUGA.cjs → chunk-Y3EBUFX4.cjs} +92 -21
- package/dist/{cloud-tenants-EE5ULFOK.cjs → cloud-tenants-ISGAMTJD.cjs} +11 -11
- package/dist/components/authors/author-detail-view.d.ts.map +1 -1
- package/dist/components/authors/author-detail-view.js +12 -2
- package/dist/components/case-studies/index.cjs +28 -28
- package/dist/components/chat/ask-prompts.d.ts.map +1 -1
- package/dist/components/chat/ask-prompts.js +28 -19
- package/dist/components/chat/entity-cards/entity-portrait-card.d.ts +3 -1
- package/dist/components/chat/entity-cards/entity-portrait-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/entity-portrait-card.js +2 -0
- package/dist/components/chat/entity-cards/program-card.d.ts +6 -1
- package/dist/components/chat/entity-cards/program-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/program-card.js +19 -2
- package/dist/components/chat/index.cjs +10 -8
- package/dist/components/chat/index.d.ts +1 -1
- package/dist/components/chat/index.d.ts.map +1 -1
- package/dist/components/chat/index.js +10 -4
- package/dist/components/chat/utils/ask-ai-events.d.ts +10 -0
- package/dist/components/chat/utils/ask-ai-events.d.ts.map +1 -1
- package/dist/components/chat/utils/ask-ai-events.js +21 -1
- package/dist/components/contact/index.cjs +12 -12
- package/dist/components/docs/index.cjs +15 -15
- package/dist/components/embeds/index.cjs +12 -12
- package/dist/components/faq/index.cjs +13 -13
- package/dist/components/features/index.cjs +11 -11
- package/dist/components/features/video-hover-preview.d.ts.map +1 -1
- package/dist/components/features/video-hover-preview.js +5 -2
- package/dist/components/features/video-shared.d.ts +2 -1
- package/dist/components/features/video-shared.d.ts.map +1 -1
- package/dist/components/features/video.d.ts.map +1 -1
- package/dist/components/features/video.js +64 -13
- package/dist/components/help-center-pages/index.cjs +100 -100
- package/dist/components/index.cjs +74 -62
- package/dist/components/meeting-scheduler/index.cjs +46 -46
- package/dist/components/navigation/index.cjs +14 -14
- package/dist/components/navigation/mingo-ai-button.d.ts.map +1 -1
- package/dist/components/navigation/mingo-ai-button.js +2 -1
- package/dist/components/navigation/site-header.d.ts.map +1 -1
- package/dist/components/navigation/site-header.js +3 -1
- package/dist/components/onboarding-guides/index.cjs +14 -14
- package/dist/components/product-demo/index.cjs +20 -20
- package/dist/components/related-content/card-registry.d.ts +5 -0
- package/dist/components/related-content/card-registry.d.ts.map +1 -1
- package/dist/components/related-content/card-registry.js +2 -0
- package/dist/components/related-content/index.cjs +7 -6
- package/dist/components/related-content/index.d.ts +2 -1
- package/dist/components/related-content/index.d.ts.map +1 -1
- package/dist/components/related-content/index.js +2 -2
- package/dist/components/related-content/related-content-section.d.ts +8 -10
- package/dist/components/related-content/related-content-section.d.ts.map +1 -1
- package/dist/components/related-content/related-content-section.js +20 -11
- package/dist/components/tickets/index.cjs +17 -17
- package/dist/components/ui/index.cjs +13 -11
- package/dist/components/ui/photo-wall.d.ts +16 -1
- package/dist/components/ui/photo-wall.d.ts.map +1 -1
- package/dist/components/ui/photo-wall.js +24 -9
- package/dist/components/ui/tab-navigation.d.ts +8 -1
- package/dist/components/ui/tab-navigation.d.ts.map +1 -1
- package/dist/components/ui/tab-navigation.js +9 -3
- package/dist/{devices-EBGGHEGR.cjs → devices-AHJX6ACJ.cjs} +12 -12
- package/dist/{embeddable-chat-HCT4QV35.cjs → embeddable-chat-DI7ZZTBP.cjs} +75 -75
- package/dist/hooks/index.cjs +4 -4
- package/dist/hooks/use-near-viewport.d.ts.map +1 -1
- package/dist/hooks/use-near-viewport.js +4 -0
- package/dist/index.cjs +23 -15
- package/dist/{knowledge-5ZSMKKTL.cjs → knowledge-FH5GVRVP.cjs} +12 -12
- package/dist/{logs-GUV3BMGC.cjs → logs-JBIHHLUQ.cjs} +19 -19
- package/dist/{policies-HPMTDOAS.cjs → policies-XLJ2ABY5.cjs} +15 -15
- package/dist/{scripts-QYYKCIUW.cjs → scripts-CQLXM7PP.cjs} +16 -16
- package/dist/{software-update-NC2KZKEI.cjs → software-update-7NYZ7L76.cjs} +14 -14
- package/dist/utils/content-ref-groups.d.ts +8 -0
- package/dist/utils/content-ref-groups.d.ts.map +1 -1
- package/dist/utils/content-ref-groups.js +2 -0
- package/dist/utils/dismiss-cookie.d.ts +14 -0
- package/dist/utils/dismiss-cookie.d.ts.map +1 -1
- package/dist/utils/dismiss-cookie.js +4 -0
- package/dist/utils/index.cjs +10 -0
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +2 -0
- package/dist/utils/visitor-os.d.ts +9 -0
- package/dist/utils/visitor-os.d.ts.map +1 -1
- package/dist/utils/visitor-os.js +4 -0
- package/dist/{video-file-player-COXRF4M5.cjs → video-file-player-4TXA7BZF.cjs} +3 -3
- package/package.json +1 -1
- package/src/components/authors/author-detail-view.tsx +10 -2
- package/src/components/chat/ask-prompts.tsx +6 -1
- package/src/components/chat/entity-cards/entity-portrait-card.tsx +4 -0
- package/src/components/chat/entity-cards/program-card.tsx +24 -2
- package/src/components/chat/index.ts +16 -9
- package/src/components/chat/utils/ask-ai-events.ts +26 -0
- package/src/components/features/video-hover-preview.tsx +46 -37
- package/src/components/features/video-shared.tsx +2 -1
- package/src/components/features/video.tsx +102 -19
- package/src/components/navigation/mingo-ai-button.tsx +2 -1
- package/src/components/navigation/site-header.tsx +3 -1
- package/src/components/related-content/card-registry.tsx +7 -0
- package/src/components/related-content/index.ts +2 -1
- package/src/components/related-content/related-content-section.tsx +38 -14
- package/src/components/ui/photo-wall.tsx +43 -10
- package/src/components/ui/tab-navigation.tsx +18 -3
- package/src/hooks/use-near-viewport.ts +6 -0
- package/src/utils/content-ref-groups.ts +9 -0
- package/src/utils/dismiss-cookie.ts +17 -0
- package/src/utils/index.ts +1 -0
- package/src/utils/visitor-os.ts +12 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/index.js
CHANGED
|
@@ -219,6 +219,7 @@ import { buildListUrl, canonicalContentRefType } from "./list-url.js";
|
|
|
219
219
|
import { faqSectionSlug, faqItemAnchor, parseFaqHash } from "./faq-anchor.js";
|
|
220
220
|
import {
|
|
221
221
|
CONTENT_REF_GROUPS,
|
|
222
|
+
GROUP_PAGE_SIZE,
|
|
222
223
|
getContentRefLabel,
|
|
223
224
|
getContentRefLabelOrTitleCase,
|
|
224
225
|
orderContentRefTypes
|
|
@@ -284,6 +285,7 @@ export {
|
|
|
284
285
|
DOC_TABLE_TYPES,
|
|
285
286
|
EMBED_PROXY_OPTIONAL_HEADERS,
|
|
286
287
|
FullscreenSwitchController,
|
|
288
|
+
GROUP_PAGE_SIZE,
|
|
287
289
|
HEX_PATTERN,
|
|
288
290
|
HUB_HEADER_OFFSET_PX,
|
|
289
291
|
ICON_REGISTRY,
|
|
@@ -42,4 +42,13 @@ export declare function detectDesktopOs(userAgent: string | null | undefined, hi
|
|
|
42
42
|
export declare function usesCommandKey(os: VisitorOs | null): boolean;
|
|
43
43
|
/** A shortcut as its hint reads on the visitor's system: `⌘K` or `Ctrl K`. */
|
|
44
44
|
export declare function shortcutLabel(os: VisitorOs | null, key: string): string;
|
|
45
|
+
/**
|
|
46
|
+
* The inline script that marks the document with the visitor's DESKTOP system before the first paint
|
|
47
|
+
* (`attribute` = `mac` | `windows` | `linux`, absent for a phone, a tablet or an unknown system), for a page the
|
|
48
|
+
* server renders the same for every visitor (and a CDN may cache): it draws every system's variant and the host's
|
|
49
|
+
* CSS shows the one the attribute names, so the right one is there from the first frame with no hydration
|
|
50
|
+
* mismatch. The same rule as `detectVisitorOs` (Client Hints platform, then the User-Agent, touch points telling an
|
|
51
|
+
* iPad from a Mac), held equal to it by the tests. Any throw leaves the attribute off: the host's no-system variant.
|
|
52
|
+
*/
|
|
53
|
+
export declare function desktopOsBeforePaintScript(attribute: string): string;
|
|
45
54
|
//# sourceMappingURL=visitor-os.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visitor-os.d.ts","sourceRoot":"","sources":["../../src/utils/visitor-os.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,SAAS,GAAG,OAAO,GAAG,KAAK,GAAG,SAAS,CAAC;AAExE,+CAA+C;AAC/C,eAAO,MAAM,YAAY,sCAAuC,CAAC;AACjE,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtD,MAAM,WAAW,cAAc;IAC7B;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAaD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,KAAK,GAAE,cAAmB,GAAG,SAAS,GAAG,IAAI,CAclH;AAED,uFAAuF;AACvF,wBAAgB,WAAW,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAElE;AAED,uFAAuF;AACvF,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,KAAK,CAAC,EAAE,cAAc,GAAG,SAAS,GAAG,IAAI,CAE9G;AAED,wFAAwF;AACxF,wBAAgB,cAAc,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI,GAAG,OAAO,CAE5D;AAED,8EAA8E;AAC9E,wBAAgB,aAAa,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAEvE"}
|
|
1
|
+
{"version":3,"file":"visitor-os.d.ts","sourceRoot":"","sources":["../../src/utils/visitor-os.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,SAAS,GAAG,OAAO,GAAG,KAAK,GAAG,SAAS,CAAC;AAExE,+CAA+C;AAC/C,eAAO,MAAM,YAAY,sCAAuC,CAAC;AACjE,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtD,MAAM,WAAW,cAAc;IAC7B;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAaD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,KAAK,GAAE,cAAmB,GAAG,SAAS,GAAG,IAAI,CAclH;AAED,uFAAuF;AACvF,wBAAgB,WAAW,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAElE;AAED,uFAAuF;AACvF,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,KAAK,CAAC,EAAE,cAAc,GAAG,SAAS,GAAG,IAAI,CAE9G;AAED,wFAAwF;AACxF,wBAAgB,cAAc,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI,GAAG,OAAO,CAE5D;AAED,8EAA8E;AAC9E,wBAAgB,aAAa,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAEvE;AAED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEpE"}
|
package/dist/utils/visitor-os.js
CHANGED
|
@@ -33,8 +33,12 @@ function usesCommandKey(os) {
|
|
|
33
33
|
function shortcutLabel(os, key) {
|
|
34
34
|
return usesCommandKey(os) ? `\u2318${key}` : `Ctrl ${key}`;
|
|
35
35
|
}
|
|
36
|
+
function desktopOsBeforePaintScript(attribute) {
|
|
37
|
+
return `(function(){try{var n=window.navigator,h=n.userAgentData&&n.userAgentData.platform,p=String(h||'').replace(/"/g,'').trim().toLowerCase(),t=(n.maxTouchPoints||0)>1,o=null,m=${JSON.stringify(HINT_PLATFORMS)};if(m[p])o=m[p];else{var u=n.userAgent||'';if(/iPhone|iPad|iPod/i.test(u))o='ios';else if(/Android/i.test(u))o='android';else if(/Windows NT|Win64|Win32/i.test(u))o='windows';else if(/Macintosh|Mac OS X/i.test(u))o='mac';else if(/Linux|X11|CrOS/i.test(u))o='linux'}if(o==='mac'&&t)o='ios';if(o==='mac'||o==='windows'||o==='linux')document.documentElement.setAttribute(${JSON.stringify(attribute)},o)}catch(e){}})();`;
|
|
38
|
+
}
|
|
36
39
|
export {
|
|
37
40
|
DESKTOP_OSES,
|
|
41
|
+
desktopOsBeforePaintScript,
|
|
38
42
|
desktopOsOf,
|
|
39
43
|
detectDesktopOs,
|
|
40
44
|
detectVisitorOs,
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"use client";
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var _chunkKKAY6GPUcjs = require('./chunk-KKAY6GPU.cjs');
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
var _chunkJKX2C3I2cjs = require('./chunk-JKX2C3I2.cjs');
|
|
@@ -16,7 +16,7 @@ var _chunkJKX2C3I2cjs = require('./chunk-JKX2C3I2.cjs');
|
|
|
16
16
|
var _chunkSETFUCZAcjs = require('./chunk-SETFUCZA.cjs');
|
|
17
17
|
require('./chunk-S5C3OZCO.cjs');
|
|
18
18
|
require('./chunk-4IYNDV3G.cjs');
|
|
19
|
-
require('./chunk-
|
|
19
|
+
require('./chunk-NTPX5GXI.cjs');
|
|
20
20
|
|
|
21
21
|
|
|
22
22
|
var _chunkDGFDBPO7cjs = require('./chunk-DGFDBPO7.cjs');
|
|
@@ -415,7 +415,7 @@ function FilePlayer({
|
|
|
415
415
|
src: url,
|
|
416
416
|
poster: poster || void 0,
|
|
417
417
|
streamType: "on-demand",
|
|
418
|
-
preload: _nullishCoalesce(preload, () => ( (
|
|
418
|
+
preload: _nullishCoalesce(preload, () => ( (_chunkKKAY6GPUcjs.saveDataEnabled.call(void 0, ) ? "none" : "metadata"))),
|
|
419
419
|
playsInline: true,
|
|
420
420
|
muted,
|
|
421
421
|
preferCmcd: "header",
|
package/package.json
CHANGED
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
|
|
26
26
|
import type React from 'react';
|
|
27
27
|
import Image from '../../embed-shims/next-image';
|
|
28
|
-
import { AVATAR_SIZE } from '../../styles/component-sizes';
|
|
28
|
+
import { AVATAR_SIZE, AVATAR_SIZE_PX } from '../../styles/component-sizes';
|
|
29
29
|
import type { AuthorProfile } from '../../types/entity-author';
|
|
30
30
|
import { cn } from '../../utils/cn';
|
|
31
31
|
import { formatBioText } from '../../utils/format';
|
|
@@ -77,7 +77,15 @@ export function AuthorDetailView({ author, proxyImageUrl, children, className }:
|
|
|
77
77
|
) : (
|
|
78
78
|
<div className="relative h-full w-full overflow-hidden rounded-full border border-ods-border bg-ods-bg-surface">
|
|
79
79
|
{proxiedAvatar ? (
|
|
80
|
-
<Image
|
|
80
|
+
<Image
|
|
81
|
+
src={proxiedAvatar}
|
|
82
|
+
alt={author.fullName}
|
|
83
|
+
fill
|
|
84
|
+
// The frame's size, so a host that resizes serves a 96 px picture, not the 2500 px original.
|
|
85
|
+
sizes={`${AVATAR_SIZE_PX.profile}px`}
|
|
86
|
+
className="object-cover"
|
|
87
|
+
unoptimized
|
|
88
|
+
/>
|
|
81
89
|
) : (
|
|
82
90
|
<div className="flex h-full w-full items-center justify-center text-ods-text-secondary text-h2">
|
|
83
91
|
{author.fullName.charAt(0).toUpperCase()}
|
|
@@ -6,6 +6,7 @@ import { AgentMark } from '../agent-mark';
|
|
|
6
6
|
import { MingoAiButton, openAskAi } from '../navigation/mingo-ai-button';
|
|
7
7
|
import { ScrollShadow } from '../ui/scroll-fade';
|
|
8
8
|
import { QuickActionChipButton, QuickActionChipSkeleton, type QuickActionIconSpec } from './quick-action-chip';
|
|
9
|
+
import { ASK_AI_TRIGGER_ATTRIBUTE } from './utils/ask-ai-events';
|
|
9
10
|
|
|
10
11
|
/** One question a page offers: the chip shows `label` as written, the chat is sent `prompt`. */
|
|
11
12
|
export interface AskPrompt {
|
|
@@ -104,7 +105,11 @@ function QuestionChips({
|
|
|
104
105
|
{Array.from({ length: count }, (_, slot) => {
|
|
105
106
|
const prompt = loading ? undefined : prompts[slot];
|
|
106
107
|
return (
|
|
107
|
-
<span
|
|
108
|
+
<span
|
|
109
|
+
key={prompt?.id ?? `slot-${slot}`}
|
|
110
|
+
className={slotClassName ?? CHIP_SLOT_CLASS}
|
|
111
|
+
{...(prompt ? { [ASK_AI_TRIGGER_ATTRIBUTE]: '' } : {})}
|
|
112
|
+
>
|
|
108
113
|
{loading ? (
|
|
109
114
|
<QuickActionChipSkeleton
|
|
110
115
|
variant="question"
|
|
@@ -85,6 +85,8 @@ export interface EntityPortraitCardProps {
|
|
|
85
85
|
/** Typography override for the title (entity identity), zone box unchanged. */
|
|
86
86
|
titleClassName?: string;
|
|
87
87
|
person?: EntityPortraitPerson | null;
|
|
88
|
+
/** The card's picture is likely the page's largest paint: fetch it at once and ranked high, not lazily. */
|
|
89
|
+
priority?: boolean;
|
|
88
90
|
className?: string;
|
|
89
91
|
}
|
|
90
92
|
|
|
@@ -99,6 +101,7 @@ export function EntityPortraitCard({
|
|
|
99
101
|
title,
|
|
100
102
|
titleClassName,
|
|
101
103
|
person,
|
|
104
|
+
priority,
|
|
102
105
|
className,
|
|
103
106
|
}: EntityPortraitCardProps) {
|
|
104
107
|
const loading = useLoadingScope();
|
|
@@ -140,6 +143,7 @@ export function EntityPortraitCard({
|
|
|
140
143
|
className={cn('h-full w-full', isWide === false ? 'object-contain' : 'object-cover')}
|
|
141
144
|
sizes="(min-width: 800px) 400px, 100vw"
|
|
142
145
|
fill
|
|
146
|
+
priority={priority}
|
|
143
147
|
unoptimized
|
|
144
148
|
onLoad={onMediaLoad}
|
|
145
149
|
onError={onMediaError}
|
|
@@ -259,6 +259,11 @@ export interface ProgramCardProps<T extends BaseProgramItem> {
|
|
|
259
259
|
eyebrow?: string;
|
|
260
260
|
/** `default` density: the item's tags, drawn under the description. */
|
|
261
261
|
tags?: string[];
|
|
262
|
+
/**
|
|
263
|
+
* The card is the first thing a list draws, so its cover is likely the page's largest paint: fetch it at once and
|
|
264
|
+
* ranked high, instead of lazily (the default for every other card).
|
|
265
|
+
*/
|
|
266
|
+
priority?: boolean;
|
|
262
267
|
className?: string;
|
|
263
268
|
}
|
|
264
269
|
|
|
@@ -355,6 +360,7 @@ function ProgramEditorialCard({
|
|
|
355
360
|
typeMeta,
|
|
356
361
|
profile,
|
|
357
362
|
playable,
|
|
363
|
+
priority,
|
|
358
364
|
className,
|
|
359
365
|
}: {
|
|
360
366
|
feature: boolean;
|
|
@@ -369,6 +375,7 @@ function ProgramEditorialCard({
|
|
|
369
375
|
typeMeta: string | null | undefined;
|
|
370
376
|
profile: ReturnType<typeof programItemToStripProfile>;
|
|
371
377
|
playable: boolean;
|
|
378
|
+
priority?: boolean;
|
|
372
379
|
className?: string;
|
|
373
380
|
}) {
|
|
374
381
|
// The cover is shown WHOLE on its own edge colour: the fill AdminContentCard
|
|
@@ -392,7 +399,9 @@ function ProgramEditorialCard({
|
|
|
392
399
|
return (
|
|
393
400
|
<ContentCardFrame as="a" href={href} target={target} rel={rel} className={cn(EDITORIAL_ROW_GRID, className)}>
|
|
394
401
|
<span className={cn(EDITORIAL_ROW_THUMB, 'bg-ods-bg')}>
|
|
395
|
-
{cover &&
|
|
402
|
+
{cover && (
|
|
403
|
+
<Image src={cover} alt="" fill sizes="120px" className="object-cover" priority={priority} unoptimized />
|
|
404
|
+
)}
|
|
396
405
|
{playable && cover && <CardHoverPlay size="md" />}
|
|
397
406
|
</span>
|
|
398
407
|
<span className={EDITORIAL_ROW_TEXT}>
|
|
@@ -417,6 +426,7 @@ function ProgramEditorialCard({
|
|
|
417
426
|
fill
|
|
418
427
|
sizes="(min-width: 1024px) 640px, 100vw"
|
|
419
428
|
className="object-contain"
|
|
429
|
+
priority={priority}
|
|
420
430
|
unoptimized
|
|
421
431
|
/>
|
|
422
432
|
)}
|
|
@@ -464,6 +474,7 @@ export function ProgramCard<T extends BaseProgramItem>({
|
|
|
464
474
|
wholeCardClickable = false,
|
|
465
475
|
eyebrow,
|
|
466
476
|
tags = [],
|
|
477
|
+
priority,
|
|
467
478
|
className,
|
|
468
479
|
}: ProgramCardProps<T>) {
|
|
469
480
|
const { target, rel } = useEntityCardLink({
|
|
@@ -529,6 +540,7 @@ export function ProgramCard<T extends BaseProgramItem>({
|
|
|
529
540
|
imageAlt={item.title}
|
|
530
541
|
title={item.title}
|
|
531
542
|
titleClassName="font-['Azeret_Mono'] font-semibold text-lg leading-6"
|
|
543
|
+
priority={priority}
|
|
532
544
|
person={
|
|
533
545
|
profile
|
|
534
546
|
? { name: profile.name, avatarUrl: profile.avatarUrl, subtitle: profile.subtitle || dateMeta }
|
|
@@ -554,6 +566,7 @@ export function ProgramCard<T extends BaseProgramItem>({
|
|
|
554
566
|
typeMeta={compactTypeMetaValue}
|
|
555
567
|
profile={programItemToStripProfile(item)}
|
|
556
568
|
playable={isPlayable}
|
|
569
|
+
priority={priority}
|
|
557
570
|
className={className}
|
|
558
571
|
/>
|
|
559
572
|
);
|
|
@@ -570,7 +583,15 @@ export function ProgramCard<T extends BaseProgramItem>({
|
|
|
570
583
|
<Link href={href} target={target} rel={rel} className={cn(COMPACT_CARD_OUTER, 'group', className)}>
|
|
571
584
|
<span className={COMPACT_CARD_IMAGE_SLOT}>
|
|
572
585
|
{compactCover ? (
|
|
573
|
-
<Image
|
|
586
|
+
<Image
|
|
587
|
+
src={compactCover}
|
|
588
|
+
alt={item.title}
|
|
589
|
+
fill
|
|
590
|
+
sizes="56px"
|
|
591
|
+
className="object-contain"
|
|
592
|
+
priority={priority}
|
|
593
|
+
unoptimized
|
|
594
|
+
/>
|
|
574
595
|
) : (
|
|
575
596
|
<span className="flex h-full w-full items-center justify-center text-ods-accent">
|
|
576
597
|
{config.type === 'podcast' ? (
|
|
@@ -659,6 +680,7 @@ export function ProgramCard<T extends BaseProgramItem>({
|
|
|
659
680
|
fill
|
|
660
681
|
sizes="(min-width: 1280px) 400px, (min-width: 768px) 320px, 100vw"
|
|
661
682
|
className="object-cover"
|
|
683
|
+
priority={priority}
|
|
662
684
|
unoptimized
|
|
663
685
|
/>
|
|
664
686
|
{isPlayable && <CardHoverPlay size="md" />}
|
|
@@ -2,9 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
// Chat components exports
|
|
4
4
|
import { createElement, forwardRef, lazy, Suspense, useEffect, useState } from 'react';
|
|
5
|
-
import { afterPageLoad } from '../../utils/after-page-load';
|
|
6
5
|
import type { EmbeddableChatHandle, EmbeddableChatProps } from './embeddable-chat';
|
|
7
|
-
import { ASK_AI_OPEN_EVENTS, holdAskAiOpens } from './utils/ask-ai-events';
|
|
6
|
+
import { ASK_AI_OPEN_EVENTS, askAiOpenIsHeld, holdAskAiOpens, onAskAiIntent } from './utils/ask-ai-events';
|
|
8
7
|
export * from './approval-request-message';
|
|
9
8
|
export * from './approval-batch-message';
|
|
10
9
|
export * from './escalation-offer-message';
|
|
@@ -106,11 +105,12 @@ export * from './utils';
|
|
|
106
105
|
|
|
107
106
|
// EmbeddableChat — THE chat. Hosts mount it once at the root after providing a
|
|
108
107
|
// <ChatRuntimeContext.Provider>. Its module is loaded on its own (`lazy`), and
|
|
109
|
-
// only
|
|
110
|
-
//
|
|
111
|
-
//
|
|
112
|
-
//
|
|
113
|
-
//
|
|
108
|
+
// only when the visitor shows they want it: a pointer, a touch or the focus on
|
|
109
|
+
// an element that opens it (`onAskAiIntent`, `ASK_AI_TRIGGER_ATTRIBUTE`), or at
|
|
110
|
+
// once when something asks for it (an open event, `open` or `defaultOpen`). A
|
|
111
|
+
// chat that starts closed costs a page nothing: it used to load on every page
|
|
112
|
+
// once the browser was idle, about 650 KB of script most visitors never opened.
|
|
113
|
+
// An open sent before it has loaded is held and delivered (`ask-ai-events`).
|
|
114
114
|
export type { ChatPrefillDraft, EmbeddableChatHandle, EmbeddableChatProps } from './embeddable-chat';
|
|
115
115
|
const LoadedEmbeddableChat = lazy(() =>
|
|
116
116
|
import('./embeddable-chat').then(module => ({ default: module.EmbeddableChat })),
|
|
@@ -122,8 +122,10 @@ export const EmbeddableChat = forwardRef<EmbeddableChatHandle, EmbeddableChatPro
|
|
|
122
122
|
useEffect(() => {
|
|
123
123
|
if (load) return undefined;
|
|
124
124
|
const start = () => setLoadRequested(true);
|
|
125
|
+
// An open sent before this mounted (a deep link, an early click) is waiting: load now to deliver it.
|
|
126
|
+
if (askAiOpenIsHeld()) queueMicrotask(start);
|
|
125
127
|
for (const name of ASK_AI_OPEN_EVENTS) window.addEventListener(name, start);
|
|
126
|
-
const cancel =
|
|
128
|
+
const cancel = onAskAiIntent(start);
|
|
127
129
|
return () => {
|
|
128
130
|
cancel();
|
|
129
131
|
for (const name of ASK_AI_OPEN_EVENTS) window.removeEventListener(name, start);
|
|
@@ -134,5 +136,10 @@ export const EmbeddableChat = forwardRef<EmbeddableChatHandle, EmbeddableChatPro
|
|
|
134
136
|
});
|
|
135
137
|
EmbeddableChat.displayName = 'EmbeddableChat';
|
|
136
138
|
export { MINGO_V2_RAIL_WIDTH, MINGO_V2_SPLIT_WIDTH } from './chat-dimensions';
|
|
137
|
-
export {
|
|
139
|
+
export {
|
|
140
|
+
ASK_AI_OPEN_EVENT,
|
|
141
|
+
ASK_AI_OPEN_EVENTS,
|
|
142
|
+
ASK_AI_OPEN_WITH_REF_EVENT,
|
|
143
|
+
ASK_AI_TRIGGER_ATTRIBUTE,
|
|
144
|
+
} from './utils/ask-ai-events';
|
|
138
145
|
export * from './proxy-credentials-panel';
|
|
@@ -35,6 +35,11 @@ export function holdAskAiOpens(): void {
|
|
|
35
35
|
for (const name of ASK_AI_OPEN_EVENTS) window.addEventListener(name, holdOpen);
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
+
/** An open came before any chat was listening, and waits to be delivered: the chat must load now. */
|
|
39
|
+
export function askAiOpenIsHeld(): boolean {
|
|
40
|
+
return heldOpen !== null;
|
|
41
|
+
}
|
|
42
|
+
|
|
38
43
|
/**
|
|
39
44
|
* A chat is listening now: stop holding, and send it the open that came before
|
|
40
45
|
* it was. Returns what to call when that chat stops listening.
|
|
@@ -49,3 +54,24 @@ export function chatListensForAskAiOpens(): () => void {
|
|
|
49
54
|
listening -= 1;
|
|
50
55
|
};
|
|
51
56
|
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* The attribute every element that opens the chat carries (the Mingo button, an ask prompt). A pointer or focus
|
|
60
|
+
* reaching one is the visitor's intent to open it: the chat starts loading then, a moment before the click, instead
|
|
61
|
+
* of on every page view (`onAskAiIntent`).
|
|
62
|
+
*/
|
|
63
|
+
export const ASK_AI_TRIGGER_ATTRIBUTE = 'data-ask-ai-trigger';
|
|
64
|
+
|
|
65
|
+
/** Runs `run` once a pointer, a touch or the focus reaches an element carrying `ASK_AI_TRIGGER_ATTRIBUTE`. */
|
|
66
|
+
export function onAskAiIntent(run: () => void): () => void {
|
|
67
|
+
if (typeof document === 'undefined') return () => {};
|
|
68
|
+
const selector = `[${ASK_AI_TRIGGER_ATTRIBUTE}]`;
|
|
69
|
+
const onIntent = (event: Event) => {
|
|
70
|
+
if (event.target instanceof Element && event.target.closest(selector)) run();
|
|
71
|
+
};
|
|
72
|
+
const kinds = ['pointerover', 'focusin', 'touchstart'] as const;
|
|
73
|
+
for (const kind of kinds) document.addEventListener(kind, onIntent, { capture: true, passive: true });
|
|
74
|
+
return () => {
|
|
75
|
+
for (const kind of kinds) document.removeEventListener(kind, onIntent, { capture: true });
|
|
76
|
+
};
|
|
77
|
+
}
|
|
@@ -125,6 +125,13 @@ export function VideoHoverPreviewSurface({
|
|
|
125
125
|
}, [gateControlled]);
|
|
126
126
|
// Continuation forces the media + player on regardless of hover/viewport gate.
|
|
127
127
|
const showMedia = continuation || (gateControlled ? playerMounted : isNear);
|
|
128
|
+
// The hover player (and its script, the Mux player and hls.js: the largest a page can load) mounts on the first
|
|
129
|
+
// hover, never before: a card that is near the screen but never hovered shows its poster and costs nothing more.
|
|
130
|
+
// A widget pinned to the screen is always "near", so mounting on proximity loaded that script on every page view
|
|
131
|
+
// (CU-17tkuw5xp4q). Once mounted it stays, so the next hover plays at once.
|
|
132
|
+
const [engaged, setEngaged] = useState(false);
|
|
133
|
+
if ((active || continuation) && !engaged) setEngaged(true);
|
|
134
|
+
const showPlayer = continuation || engaged;
|
|
128
135
|
|
|
129
136
|
// Poster resolution — the shared entity-card cover fallback chain: the real
|
|
130
137
|
// thumbnail, dropped on load error. Null → first-frame facade (unless the
|
|
@@ -159,43 +166,45 @@ export function VideoHoverPreviewSurface({
|
|
|
159
166
|
|
|
160
167
|
{badge === 'play' && !active && !continuation && <VideoPlayBadge className="absolute inset-0 z-10 m-auto" />}
|
|
161
168
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
169
|
+
{showPlayer ? (
|
|
170
|
+
<div
|
|
171
|
+
className="absolute inset-0"
|
|
172
|
+
style={{ '--media-background-color': 'transparent' } as React.CSSProperties}
|
|
173
|
+
>
|
|
174
|
+
<Video
|
|
175
|
+
// Remount between modes: `startTime` + autoplay are LOAD-TIME
|
|
176
|
+
// props (playback-core binds them to one-shot durationchange /
|
|
177
|
+
// loadstart handlers), so re-propping an already-loaded element
|
|
178
|
+
// silently drops the seek. Only a Mux preview rewrite changed
|
|
179
|
+
// `src` before, which is why HLS resumed and plain MP4 did not.
|
|
180
|
+
key={continuation ? 'continuation' : 'preview'}
|
|
181
|
+
kind="file"
|
|
182
|
+
// Rendition-capped in BOTH modes: the cap was only skipped
|
|
183
|
+
// because changing `src` used to be the sole trigger for the
|
|
184
|
+
// seek; the explicit key handles that now, and a 320px mini
|
|
185
|
+
// player should never pull the uncapped manifest.
|
|
186
|
+
url={previewUrl}
|
|
187
|
+
poster={posterUrl}
|
|
188
|
+
{...(continuation
|
|
189
|
+
? {
|
|
190
|
+
startTime,
|
|
191
|
+
autoPlay: autoPlay && startMuted,
|
|
192
|
+
startMuted,
|
|
193
|
+
autoPlayUnmuted: autoPlay && !startMuted,
|
|
194
|
+
}
|
|
195
|
+
: { playWhenHovered: active })}
|
|
196
|
+
chromeless
|
|
197
|
+
layout="fill"
|
|
198
|
+
fit={fit}
|
|
199
|
+
preload={preload}
|
|
200
|
+
mutedIntent={mutedIntent}
|
|
201
|
+
hideMutedBadge={hideMutedBadge}
|
|
202
|
+
onMutedFallbackChange={onMutedFallbackChange}
|
|
203
|
+
onEnded={onEnded}
|
|
204
|
+
playerHandleRef={previewHandleRef}
|
|
205
|
+
/>
|
|
206
|
+
</div>
|
|
207
|
+
) : null}
|
|
199
208
|
</>
|
|
200
209
|
) : (
|
|
201
210
|
<div className="absolute inset-0 bg-ods-card" />
|
|
@@ -164,7 +164,7 @@ export interface VideoCommonProps {
|
|
|
164
164
|
priority?: boolean;
|
|
165
165
|
/** Tailwind classes applied to the underlying player root. */
|
|
166
166
|
className?: string;
|
|
167
|
-
/** Accessible label
|
|
167
|
+
/** Accessible label: the play button of either facade (YouTube, or a file video that waits for a click). */
|
|
168
168
|
title?: string;
|
|
169
169
|
/**
|
|
170
170
|
* Mount the player only once its box comes near the viewport (shared
|
|
@@ -172,6 +172,7 @@ export interface VideoCommonProps {
|
|
|
172
172
|
* Until then the box shows the poster (or nothing) — the caller's container
|
|
173
173
|
* still owns the size, so nothing shifts when the player mounts. For grids
|
|
174
174
|
* of players: a library of 20 clips costs 20 posters, not 20 players.
|
|
175
|
+
* Default `true` (every video is drawn on approach); `false` mounts it at once.
|
|
175
176
|
*/
|
|
176
177
|
lazy?: boolean;
|
|
177
178
|
/**
|