@flamingo-stack/openframe-frontend-core 0.0.772 → 0.0.774
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-ZVKJKWAB.cjs → chunk-4JZC624S.cjs} +226 -206
- package/dist/{chunk-JJNOAYD4.cjs → chunk-5AOKXXHV.cjs} +4 -4
- package/dist/{chunk-VZAOLKKF.cjs → chunk-5Z3XL2VU.cjs} +72 -72
- package/dist/{chunk-YI3CDGKM.cjs → chunk-BTVO676B.cjs} +148 -131
- package/dist/{chunk-TZ4GKUO2.cjs → chunk-CZIMISAR.cjs} +5 -1
- package/dist/{chunk-7FYOVKQD.cjs → chunk-E5E7IE7X.cjs} +12 -12
- package/dist/{chunk-XVFM6SJA.cjs → chunk-E64HPPRH.cjs} +31 -31
- package/dist/{chunk-CTRJNTYU.cjs → chunk-EQBJHJS7.cjs} +2 -2
- package/dist/{chunk-S3NEBAKD.cjs → chunk-HTSRAQVG.cjs} +4 -4
- package/dist/{chunk-FT5NPAZY.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-REFL3YNE.cjs → chunk-L5CKY5WA.cjs} +15 -15
- package/dist/{chunk-IHCHU355.cjs → chunk-LEVA5WO3.cjs} +39 -39
- package/dist/{chunk-CW3ML76U.cjs → chunk-NTPX5GXI.cjs} +4 -0
- package/dist/{chunk-J5ZNEAGY.cjs → chunk-NX7P2T2U.cjs} +15 -15
- package/dist/{chunk-E25TJPWV.cjs → chunk-Q6B2DC65.cjs} +3 -3
- package/dist/{chunk-QOEOY7BJ.cjs → chunk-Q7EXOVMT.cjs} +31 -31
- package/dist/{chunk-ZYGC2A7G.cjs → chunk-SWEPHSIP.cjs} +4 -4
- package/dist/{chunk-KSCEAIBS.cjs → chunk-TOPGBOCN.cjs} +2 -2
- package/dist/{chunk-W5LX7DFB.cjs → chunk-TTQHSSHF.cjs} +6 -6
- package/dist/{chunk-FPCGKH5K.cjs → chunk-TUXPFF4P.cjs} +31 -29
- package/dist/{chunk-QPK2433W.cjs → chunk-U332FL4C.cjs} +22 -22
- package/dist/{chunk-2MAENZL3.cjs → chunk-UAKXZ2KD.cjs} +47 -45
- package/dist/{chunk-HFNWBNLE.cjs → chunk-USMR73ND.cjs} +4 -4
- package/dist/{chunk-X5Z4HRH7.cjs → chunk-VISK6LKE.cjs} +2 -2
- package/dist/{chunk-UR3I3J5K.cjs → chunk-VWUQVJ2D.cjs} +81 -81
- package/dist/{chunk-5V7BIUGA.cjs → chunk-Y3EBUFX4.cjs} +92 -21
- package/dist/{chunk-5HBGBLJT.cjs → chunk-ZHGOXDA3.cjs} +63 -59
- package/dist/{cloud-tenants-CUNC5KBD.cjs → cloud-tenants-7RNZ6GHM.cjs} +11 -11
- 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/embeddable-chat.d.ts +3 -3
- package/dist/components/chat/embeddable-chat.js +7 -17
- 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/hooks/use-what-to-ask.d.ts +2 -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 +63 -61
- 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/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 +11 -7
- package/dist/components/tickets/index.cjs +17 -17
- package/dist/components/ui/index.cjs +13 -11
- package/dist/components/ui/photo-wall.d.ts +7 -0
- package/dist/components/ui/photo-wall.d.ts.map +1 -1
- package/dist/components/ui/photo-wall.js +16 -2
- 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-TO4VUO7F.cjs → devices-NNDBC6IH.cjs} +12 -12
- package/dist/{embeddable-chat-CEAP424I.cjs → embeddable-chat-DI7ZZTBP.cjs} +82 -92
- 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-CYJP4XYY.cjs → knowledge-DPUMWQED.cjs} +12 -12
- package/dist/{logs-NL3ZBQKC.cjs → logs-EE25MWYM.cjs} +19 -19
- package/dist/{policies-WTUV4EIT.cjs → policies-H5LPZWEM.cjs} +15 -15
- package/dist/{scripts-EE6MLBQP.cjs → scripts-YGO4LOES.cjs} +16 -16
- package/dist/{software-update-HX6PN4SB.cjs → software-update-5BEB62ZH.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/chat/ask-prompts.tsx +6 -1
- package/src/components/chat/embeddable-chat.tsx +15 -28
- 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/hooks/use-what-to-ask.ts +2 -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/index.ts +2 -1
- package/src/components/related-content/related-content-section.tsx +26 -12
- package/src/components/ui/photo-wall.tsx +24 -2
- 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
|
@@ -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"
|
|
@@ -500,9 +500,9 @@ export interface EmbeddableChatProps {
|
|
|
500
500
|
onWhatToAsk?: () => void;
|
|
501
501
|
/**
|
|
502
502
|
* v2: the "What to ask?" exchange the list's entry shows (when no
|
|
503
|
-
* `onWhatToAsk` takes it over):
|
|
504
|
-
*
|
|
505
|
-
* chip sends its prompt in that chat, like a quick action.
|
|
503
|
+
* `onWhatToAsk` takes it over): every click opens a new chat holding it,
|
|
504
|
+
* never the open conversation. Local - never sent, never stored. Picking a
|
|
505
|
+
* chip sends its prompt in that new chat, like a quick action.
|
|
506
506
|
*
|
|
507
507
|
* A function is called on each click and the exchange appears, whole, once
|
|
508
508
|
* its promise settles (prompts built from live data, e.g. the workspace's
|
|
@@ -2315,30 +2315,20 @@ function EmbeddableChatInner({
|
|
|
2315
2315
|
(pendingApprovals?.length ?? 0) > 0 ||
|
|
2316
2316
|
awaitsDecision(hostMessages);
|
|
2317
2317
|
|
|
2318
|
-
// "What to ask Mingo?" with `whatToAsk`:
|
|
2319
|
-
//
|
|
2320
|
-
//
|
|
2321
|
-
//
|
|
2322
|
-
|
|
2323
|
-
|
|
2324
|
-
|
|
2325
|
-
const showWhatToAsk = (content: WhatToAskContent, newChat = false) => {
|
|
2326
|
-
if (!newChat && activeDialogId && hasConversation && !isViewingArchived && !isMessagesLoading && !isChatBlocked) {
|
|
2327
|
-
whatToAsk.ask('current', content);
|
|
2328
|
-
return;
|
|
2329
|
-
}
|
|
2330
|
-
const isUnsentNewChat = activeDialogId == null && hostMessages.length === 0 && !isViewingArchived;
|
|
2331
|
-
if (!isUnsentNewChat) {
|
|
2332
|
-
whatToAsk.clearDraft();
|
|
2333
|
-
resetToNewChat();
|
|
2334
|
-
}
|
|
2318
|
+
// "What to ask Mingo?" with `whatToAsk`: every click opens a new chat with
|
|
2319
|
+
// the exchange - never the open conversation, whatever its state, and not
|
|
2320
|
+
// the new chat already holding one (its exchange is dropped for a fresh
|
|
2321
|
+
// one). The prompts always start a conversation of their own.
|
|
2322
|
+
const showWhatToAsk = (content: WhatToAskContent) => {
|
|
2323
|
+
whatToAsk.clearDraft();
|
|
2324
|
+
resetToNewChat();
|
|
2335
2325
|
setComposeOpen(true);
|
|
2336
2326
|
whatToAsk.ask('draft', content);
|
|
2337
2327
|
};
|
|
2338
2328
|
|
|
2339
2329
|
// A "What to ask?" chip: its prompt goes out on its own, like a quick action
|
|
2340
2330
|
// (whatever is staged in the composer stays staged), into the chat the chip
|
|
2341
|
-
// sits in - not while that chat is blocked.
|
|
2331
|
+
// sits in - not while that chat is blocked. The first send from the new chat
|
|
2342
2332
|
// creates the dialog the exchange moves to.
|
|
2343
2333
|
useEffect(() => {
|
|
2344
2334
|
sendPromptRef.current = text => {
|
|
@@ -2356,16 +2346,16 @@ function EmbeddableChatInner({
|
|
|
2356
2346
|
showWhatToAskRef.current = showWhatToAsk;
|
|
2357
2347
|
});
|
|
2358
2348
|
const whatToAskPendingRef = useRef(false);
|
|
2359
|
-
const requestWhatToAsk = (
|
|
2349
|
+
const requestWhatToAsk = () => {
|
|
2360
2350
|
if (!whatToAskContent) return;
|
|
2361
2351
|
if (typeof whatToAskContent !== 'function') {
|
|
2362
|
-
showWhatToAsk(whatToAskContent
|
|
2352
|
+
showWhatToAsk(whatToAskContent);
|
|
2363
2353
|
return;
|
|
2364
2354
|
}
|
|
2365
2355
|
if (whatToAskPendingRef.current) return;
|
|
2366
2356
|
whatToAskPendingRef.current = true;
|
|
2367
2357
|
whatToAskContent()
|
|
2368
|
-
.then(content => showWhatToAskRef.current(content
|
|
2358
|
+
.then(content => showWhatToAskRef.current(content))
|
|
2369
2359
|
.catch((err: unknown) => console.error('[EmbeddableChat] whatToAsk failed:', err))
|
|
2370
2360
|
.finally(() => {
|
|
2371
2361
|
whatToAskPendingRef.current = false;
|
|
@@ -2542,11 +2532,8 @@ function EmbeddableChatInner({
|
|
|
2542
2532
|
onOpenArchive: headerOnOpenArchive && (archiveOpen ? closeArchive : headerOnOpenArchive),
|
|
2543
2533
|
archiveActive: archiveOpen,
|
|
2544
2534
|
// The suggestions a new chat opens on, unless the host has a surface of its own.
|
|
2545
|
-
// From the archive list no chat is on screen, even though the one open
|
|
2546
|
-
// before it is still the active dialog: that click opens a new chat.
|
|
2547
2535
|
onWhatToAsk: () => {
|
|
2548
|
-
|
|
2549
|
-
leaveArchiveThen(onWhatToAsk ?? (whatToAskContent ? () => requestWhatToAsk(fromArchive) : handleNewChat))();
|
|
2536
|
+
leaveArchiveThen(onWhatToAsk ?? (whatToAskContent ? requestWhatToAsk : handleNewChat))();
|
|
2550
2537
|
},
|
|
2551
2538
|
statusOf: dialogStatusOf,
|
|
2552
2539
|
onRequestRename: mingoCaps.canRename ? setRenameTarget : undefined,
|
|
@@ -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" />}
|
|
@@ -165,8 +165,8 @@ function exchangeMessages(
|
|
|
165
165
|
|
|
166
166
|
/**
|
|
167
167
|
* Whether the thread waits on the user before it can go on: an approval or an
|
|
168
|
-
* escalation offer nobody has answered. "What to ask?"
|
|
169
|
-
*
|
|
168
|
+
* escalation offer nobody has answered. A "What to ask?" chip does not send
|
|
169
|
+
* then: the conversation cannot take a message.
|
|
170
170
|
*/
|
|
171
171
|
export function awaitsDecision(messages: readonly Message[]): boolean {
|
|
172
172
|
return messages.some(
|
|
@@ -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
|
/**
|