@flamingo-stack/openframe-frontend-core 0.0.766 → 0.0.767

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/dist/build/export-map.json +1 -1
  2. package/dist/{chunk-NJMZ3N7Q.cjs → chunk-7TJVYRHR.cjs} +5 -5
  3. package/dist/{chunk-X7ECVSVN.cjs → chunk-7ZU3AVEX.cjs} +11 -11
  4. package/dist/{chunk-F7R3U5EN.cjs → chunk-BXMDLQUA.cjs} +2 -2
  5. package/dist/{chunk-VRDHAR3X.cjs → chunk-FVH53QZJ.cjs} +100 -88
  6. package/dist/{chunk-7XFVUUVZ.cjs → chunk-GJ5DHDFQ.cjs} +2 -2
  7. package/dist/{chunk-JKQVKWLB.cjs → chunk-GQ7RGD4Y.cjs} +43 -43
  8. package/dist/{chunk-K3IHNXR4.cjs → chunk-I7A5MPXA.cjs} +3 -3
  9. package/dist/{chunk-VYYLYZUC.cjs → chunk-IKXUJUXC.cjs} +2 -2
  10. package/dist/{chunk-7VI7TOGI.cjs → chunk-JBJVUQVH.cjs} +134 -96
  11. package/dist/{chunk-JGWN6GH5.cjs → chunk-KHISVNNH.cjs} +4 -4
  12. package/dist/{chunk-WO3XO27C.cjs → chunk-M2UU3CWX.cjs} +3 -3
  13. package/dist/{chunk-INI4ADPT.cjs → chunk-MNIMYGFR.cjs} +13 -13
  14. package/dist/{chunk-NF3PBWDJ.cjs → chunk-NO2DEFAP.cjs} +43 -43
  15. package/dist/{chunk-UW7UWUZU.cjs → chunk-TPOLNGOW.cjs} +35 -35
  16. package/dist/{chunk-HNQRY6RU.cjs → chunk-UHDBMKJB.cjs} +3 -3
  17. package/dist/{chunk-7U3ELNGC.cjs → chunk-WEPIWJGR.cjs} +10 -10
  18. package/dist/{chunk-RTBYQWAV.cjs → chunk-XIXR6BHI.cjs} +27 -27
  19. package/dist/{cloud-tenants-U2KMEIO7.cjs → cloud-tenants-WXK5RDSY.cjs} +3 -3
  20. package/dist/components/case-studies/index.cjs +13 -13
  21. package/dist/components/chat/index.cjs +2 -2
  22. package/dist/components/chat/index.d.ts.map +1 -1
  23. package/dist/components/chat/index.js +18 -4
  24. package/dist/components/contact/index.cjs +4 -4
  25. package/dist/components/docs/index.cjs +7 -7
  26. package/dist/components/embeds/index.cjs +4 -4
  27. package/dist/components/embeds/rich-markdown-runtime.d.ts +4 -1
  28. package/dist/components/embeds/rich-markdown-runtime.d.ts.map +1 -1
  29. package/dist/components/embeds/rich-markdown-runtime.js +6 -5
  30. package/dist/components/faq/index.cjs +5 -5
  31. package/dist/components/features/index.cjs +3 -3
  32. package/dist/components/features/walkthrough-video.d.ts.map +1 -1
  33. package/dist/components/features/walkthrough-video.js +3 -1
  34. package/dist/components/help-center-pages/index.cjs +58 -58
  35. package/dist/components/index.cjs +33 -33
  36. package/dist/components/meeting-scheduler/index.cjs +24 -24
  37. package/dist/components/navigation/index.cjs +6 -6
  38. package/dist/components/onboarding-guides/index.cjs +5 -5
  39. package/dist/components/product-demo/index.cjs +12 -12
  40. package/dist/components/tickets/index.cjs +8 -8
  41. package/dist/components/ui/index.cjs +3 -3
  42. package/dist/components/ui/markdown/rich/embed-overrides.d.ts.map +1 -1
  43. package/dist/components/ui/markdown/rich/embed-overrides.js +10 -1
  44. package/dist/{devices-2D3XSIIE.cjs → devices-UHHHTCJF.cjs} +4 -4
  45. package/dist/index.cjs +9 -7
  46. package/dist/{knowledge-AJ36PMK2.cjs → knowledge-TJKHM7W4.cjs} +3 -3
  47. package/dist/{logs-DNE44ACE.cjs → logs-B3KCCMPE.cjs} +11 -11
  48. package/dist/{policies-AJHSP6ZY.cjs → policies-ZTUIXSYZ.cjs} +7 -7
  49. package/dist/{scripts-4YO2QL36.cjs → scripts-FIFAHBS6.cjs} +8 -8
  50. package/dist/{software-update-KMI2EOO3.cjs → software-update-62PLASQU.cjs} +6 -6
  51. package/dist/utils/after-page-load.d.ts +8 -0
  52. package/dist/utils/after-page-load.d.ts.map +1 -0
  53. package/dist/utils/after-page-load.js +24 -0
  54. package/dist/utils/index.cjs +24 -0
  55. package/dist/utils/index.d.ts +1 -0
  56. package/dist/utils/index.d.ts.map +1 -1
  57. package/dist/utils/index.js +1 -0
  58. package/package.json +1 -1
  59. package/src/components/chat/index.ts +22 -5
  60. package/src/components/embeds/rich-markdown-runtime.tsx +10 -6
  61. package/src/components/features/walkthrough-video.tsx +8 -1
  62. package/src/components/ui/markdown/rich/embed-overrides.tsx +11 -1
  63. package/src/utils/after-page-load.ts +30 -0
  64. package/src/utils/index.ts +1 -0
@@ -12,6 +12,7 @@
12
12
 
13
13
 
14
14
 
15
+
15
16
  var _chunkYL6ZB2SRcjs = require('./chunk-YL6ZB2SR.cjs');
16
17
 
17
18
 
@@ -181,6 +182,29 @@ var _chunkKHKPLOU4cjs = require('./chunk-KHKPLOU4.cjs');
181
182
  // src/components/chat/index.ts
182
183
  var _react = require('react'); var _react2 = _interopRequireDefault(_react);
183
184
 
185
+ // src/utils/after-page-load.ts
186
+ function afterPageLoad(run, maxWaitMs = 2e3) {
187
+ if (typeof window === "undefined") return () => {
188
+ };
189
+ const w = window;
190
+ let idleHandle = null;
191
+ let timer = null;
192
+ let cancelled = false;
193
+ const whenIdle = () => {
194
+ if (cancelled) return;
195
+ if (typeof w.requestIdleCallback === "function") idleHandle = w.requestIdleCallback(run, { timeout: maxWaitMs });
196
+ else timer = setTimeout(run, 0);
197
+ };
198
+ if (document.readyState === "complete") whenIdle();
199
+ else window.addEventListener("load", whenIdle, { once: true });
200
+ return () => {
201
+ cancelled = true;
202
+ window.removeEventListener("load", whenIdle);
203
+ if (idleHandle !== null) _optionalChain([w, 'access', _2 => _2.cancelIdleCallback, 'optionalCall', _3 => _3(idleHandle)]);
204
+ if (timer !== null) clearTimeout(timer);
205
+ };
206
+ }
207
+
184
208
  // src/components/chat/chat-message-row.tsx
185
209
 
186
210
  var _jsxruntime = require('react/jsx-runtime');
@@ -252,10 +276,10 @@ function ChatTurn({
252
276
  ChatTurnSkeleton,
253
277
  {
254
278
  nameSize,
255
- time: _nullishCoalesce(_optionalChain([skeleton, 'optionalAccess', _2 => _2.time]), () => ( time != null)),
256
- meta: _nullishCoalesce(_optionalChain([skeleton, 'optionalAccess', _3 => _3.meta]), () => ( !!meta)),
257
- lines: _optionalChain([skeleton, 'optionalAccess', _4 => _4.lines]),
258
- avatarPx: _optionalChain([skeleton, 'optionalAccess', _5 => _5.avatarPx]),
279
+ time: _nullishCoalesce(_optionalChain([skeleton, 'optionalAccess', _4 => _4.time]), () => ( time != null)),
280
+ meta: _nullishCoalesce(_optionalChain([skeleton, 'optionalAccess', _5 => _5.meta]), () => ( !!meta)),
281
+ lines: _optionalChain([skeleton, 'optionalAccess', _6 => _6.lines]),
282
+ avatarPx: _optionalChain([skeleton, 'optionalAccess', _7 => _7.avatarPx]),
259
283
  className
260
284
  }
261
285
  );
@@ -326,8 +350,8 @@ function aiProvider(key, stated) {
326
350
  const known = AI_PROVIDERS[key];
327
351
  const parts = words(key);
328
352
  return {
329
- label: _optionalChain([stated, 'optionalAccess', _6 => _6.label]) || _optionalChain([known, 'optionalAccess', _7 => _7.label]) || parts.map((word) => word.charAt(0).toUpperCase() + word.slice(1)).join(" ") || key,
330
- icon: _optionalChain([stated, 'optionalAccess', _8 => _8.icon]) || _optionalChain([known, 'optionalAccess', _9 => _9.icon]) || `${parts.join("-")}-logo-grey`
353
+ label: _optionalChain([stated, 'optionalAccess', _8 => _8.label]) || _optionalChain([known, 'optionalAccess', _9 => _9.label]) || parts.map((word) => word.charAt(0).toUpperCase() + word.slice(1)).join(" ") || key,
354
+ icon: _optionalChain([stated, 'optionalAccess', _10 => _10.icon]) || _optionalChain([known, 'optionalAccess', _11 => _11.icon]) || `${parts.join("-")}-logo-grey`
331
355
  };
332
356
  }
333
357
 
@@ -391,7 +415,7 @@ function trialLabels(days) {
391
415
  var NO_ROW_CLICK_SELECTOR = "[data-no-row-click]";
392
416
  var CONTROL_SELECTOR = 'a, button, input, select, textarea, label, [role="button"], [role="link"]';
393
417
  function isOwnClick(target, container, { controls = false } = {}) {
394
- if (!(target instanceof Element) || !_optionalChain([container, 'optionalAccess', _10 => _10.contains, 'call', _11 => _11(target)])) return false;
418
+ if (!(target instanceof Element) || !_optionalChain([container, 'optionalAccess', _12 => _12.contains, 'call', _13 => _13(target)])) return false;
395
419
  if (target.closest(NO_ROW_CLICK_SELECTOR)) return false;
396
420
  if (controls) {
397
421
  const control = target.closest(CONTROL_SELECTOR);
@@ -772,7 +796,7 @@ function getShellIcon(shellType) {
772
796
  if (!shellType) return void 0;
773
797
  const normalized = shellType.toUpperCase();
774
798
  const shellDef = SHELL_TYPES.find((s) => s.id === normalized);
775
- return _optionalChain([shellDef, 'optionalAccess', _12 => _12.icon]);
799
+ return _optionalChain([shellDef, 'optionalAccess', _14 => _14.icon]);
776
800
  }
777
801
 
778
802
  // src/utils/video-bite-id.ts
@@ -874,7 +898,7 @@ function getOSIcon(osType) {
874
898
  const normalized = normalizeOSType(osType);
875
899
  if (!normalized) return void 0;
876
900
  const osTypeDef = OS_TYPES.find((t) => t.id === normalized);
877
- return _optionalChain([osTypeDef, 'optionalAccess', _13 => _13.icon]);
901
+ return _optionalChain([osTypeDef, 'optionalAccess', _15 => _15.icon]);
878
902
  }
879
903
  function getOSTypeDefinition(osType) {
880
904
  if (!osType) return void 0;
@@ -884,7 +908,7 @@ function getOSTypeDefinition(osType) {
884
908
  }
885
909
  function getOSPlatformId(osType) {
886
910
  const osTypeDef = getOSTypeDefinition(osType);
887
- return _optionalChain([osTypeDef, 'optionalAccess', _14 => _14.platformId]);
911
+ return _optionalChain([osTypeDef, 'optionalAccess', _16 => _16.platformId]);
888
912
  }
889
913
  function isOSPlatform(deviceOS, targetPlatform) {
890
914
  if (!deviceOS || !targetPlatform) return false;
@@ -1047,7 +1071,7 @@ function getCountryByName(name) {
1047
1071
  }
1048
1072
  function getFlagFromCountryName(countryName) {
1049
1073
  const country = getCountryByName(countryName);
1050
- return _optionalChain([country, 'optionalAccess', _15 => _15.flag]);
1074
+ return _optionalChain([country, 'optionalAccess', _17 => _17.flag]);
1051
1075
  }
1052
1076
  function validatePhoneNumber(phoneNumber, countryCode) {
1053
1077
  if (!phoneNumber.trim()) return true;
@@ -1156,10 +1180,10 @@ var GENERIC_EMAIL_DOMAINS = [
1156
1180
  ];
1157
1181
  function extractDomainFromEmail(email) {
1158
1182
  if (!email || !email.includes("@")) return null;
1159
- return _optionalChain([email, 'access', _16 => _16.split, 'call', _17 => _17("@"), 'access', _18 => _18[1], 'optionalAccess', _19 => _19.toLowerCase, 'call', _20 => _20()]) || null;
1183
+ return _optionalChain([email, 'access', _18 => _18.split, 'call', _19 => _19("@"), 'access', _20 => _20[1], 'optionalAccess', _21 => _21.toLowerCase, 'call', _22 => _22()]) || null;
1160
1184
  }
1161
1185
  function normalizeDomain(domain) {
1162
- return _optionalChain([domain, 'optionalAccess', _21 => _21.toLowerCase, 'call', _22 => _22(), 'access', _23 => _23.replace, 'call', _24 => _24(/^https?:\/\//, ""), 'access', _25 => _25.replace, 'call', _26 => _26(/^www\./, ""), 'access', _27 => _27.split, 'call', _28 => _28("/"), 'access', _29 => _29[0], 'access', _30 => _30.trim, 'call', _31 => _31()]) || "";
1186
+ return _optionalChain([domain, 'optionalAccess', _23 => _23.toLowerCase, 'call', _24 => _24(), 'access', _25 => _25.replace, 'call', _26 => _26(/^https?:\/\//, ""), 'access', _27 => _27.replace, 'call', _28 => _28(/^www\./, ""), 'access', _29 => _29.split, 'call', _30 => _30("/"), 'access', _31 => _31[0], 'access', _32 => _32.trim, 'call', _33 => _33()]) || "";
1163
1187
  }
1164
1188
  function isGenericDomain(domain) {
1165
1189
  const normalized = normalizeDomain(domain);
@@ -1257,7 +1281,7 @@ function clearLegacyAnnouncementCache(platform) {
1257
1281
  // src/utils/announcement-surface.ts
1258
1282
  function isAnnouncementOnSurface(announcement, surface) {
1259
1283
  const surfaces = announcement.surfaces;
1260
- return !_optionalChain([surfaces, 'optionalAccess', _32 => _32.length]) || surfaces.includes(surface);
1284
+ return !_optionalChain([surfaces, 'optionalAccess', _34 => _34.length]) || surfaces.includes(surface);
1261
1285
  }
1262
1286
 
1263
1287
  // src/utils/dismissal-storage.ts
@@ -1324,7 +1348,7 @@ function createSseSubscription(options) {
1324
1348
  if (connected === next) return;
1325
1349
  connected = next;
1326
1350
  try {
1327
- _optionalChain([onConnectedChange, 'optionalCall', _33 => _33(next)]);
1351
+ _optionalChain([onConnectedChange, 'optionalCall', _35 => _35(next)]);
1328
1352
  } catch (err) {
1329
1353
  console.error("[sse-subscription] onConnectedChange threw:", err);
1330
1354
  }
@@ -1340,7 +1364,7 @@ function createSseSubscription(options) {
1340
1364
  if (status !== "open") {
1341
1365
  confirmTimerId = clearLifecycleTimer(confirmTimerId);
1342
1366
  }
1343
- _optionalChain([onStatusChange, 'optionalCall', _34 => _34(status)]);
1367
+ _optionalChain([onStatusChange, 'optionalCall', _36 => _36(status)]);
1344
1368
  };
1345
1369
  const internalReconnect = (delayMs) => {
1346
1370
  failedDelayTimerId = clearLifecycleTimer(failedDelayTimerId);
@@ -1354,7 +1378,7 @@ function createSseSubscription(options) {
1354
1378
  }, delayMs);
1355
1379
  };
1356
1380
  const handleServerStatus = (data) => {
1357
- const status = _optionalChain([data, 'optionalAccess', _35 => _35.status]);
1381
+ const status = _optionalChain([data, 'optionalAccess', _37 => _37.status]);
1358
1382
  if (status === "subscribed") {
1359
1383
  confirmTimerId = clearLifecycleTimer(confirmTimerId);
1360
1384
  serverGraceTimerId = clearLifecycleTimer(serverGraceTimerId);
@@ -1395,7 +1419,7 @@ function createSseSubscription(options) {
1395
1419
  const armSilenceTimer = () => {
1396
1420
  if (silenceTimerId) clearTimeout(silenceTimerId);
1397
1421
  silenceTimerId = setTimeout(() => {
1398
- _optionalChain([abortController, 'optionalAccess', _36 => _36.abort, 'call', _37 => _37()]);
1422
+ _optionalChain([abortController, 'optionalAccess', _38 => _38.abort, 'call', _39 => _39()]);
1399
1423
  }, silenceTimeoutMs);
1400
1424
  };
1401
1425
  const scheduleReconnect = (delayMs) => {
@@ -1548,7 +1572,7 @@ function createSseSubscription(options) {
1548
1572
  generation += 1;
1549
1573
  clearTimers();
1550
1574
  attempt = 0;
1551
- _optionalChain([abortController, 'optionalAccess', _38 => _38.abort, 'call', _39 => _39()]);
1575
+ _optionalChain([abortController, 'optionalAccess', _40 => _40.abort, 'call', _41 => _41()]);
1552
1576
  void connect();
1553
1577
  }
1554
1578
  const suspend = () => {
@@ -1556,7 +1580,7 @@ function createSseSubscription(options) {
1556
1580
  suspended = true;
1557
1581
  generation += 1;
1558
1582
  clearTimers();
1559
- _optionalChain([abortController, 'optionalAccess', _40 => _40.abort, 'call', _41 => _41()]);
1583
+ _optionalChain([abortController, 'optionalAccess', _42 => _42.abort, 'call', _43 => _43()]);
1560
1584
  setStatus("suspended");
1561
1585
  };
1562
1586
  const retryIfStalled = () => {
@@ -1601,15 +1625,15 @@ function createSseSubscription(options) {
1601
1625
  generation += 1;
1602
1626
  clearTimers();
1603
1627
  hiddenGraceTimerId = clearLifecycleTimer(hiddenGraceTimerId);
1604
- _optionalChain([abortController, 'optionalAccess', _42 => _42.abort, 'call', _43 => _43()]);
1628
+ _optionalChain([abortController, 'optionalAccess', _44 => _44.abort, 'call', _45 => _45()]);
1605
1629
  if (listenersActive) {
1606
1630
  document.removeEventListener("visibilitychange", onVisibilityChange);
1607
1631
  window.removeEventListener("online", onOnline);
1608
1632
  window.removeEventListener("focus", retryIfStalled);
1609
1633
  }
1610
- _optionalChain([unsubscribeCredentials, 'optionalCall', _44 => _44()]);
1634
+ _optionalChain([unsubscribeCredentials, 'optionalCall', _46 => _46()]);
1611
1635
  setConnected(false);
1612
- _optionalChain([onStatusChange, 'optionalCall', _45 => _45("closed")]);
1636
+ _optionalChain([onStatusChange, 'optionalCall', _47 => _47("closed")]);
1613
1637
  },
1614
1638
  reconnectNow: () => {
1615
1639
  if (closed) return;
@@ -1621,7 +1645,7 @@ function createSseSubscription(options) {
1621
1645
 
1622
1646
  // src/utils/sse-decision-frame.ts
1623
1647
  async function readLeadingDecisionFrame(response) {
1624
- const reader = _optionalChain([response, 'access', _46 => _46.body, 'optionalAccess', _47 => _47.getReader, 'call', _48 => _48()]);
1648
+ const reader = _optionalChain([response, 'access', _48 => _48.body, 'optionalAccess', _49 => _49.getReader, 'call', _50 => _50()]);
1625
1649
  if (!reader) throw new Error("readLeadingDecisionFrame: response has no body");
1626
1650
  const decoder = new TextDecoder();
1627
1651
  let buffer = "";
@@ -1646,8 +1670,8 @@ async function readLeadingDecisionFrame(response) {
1646
1670
  throw new Error(`readLeadingDecisionFrame: leading JSON parse failed: ${err.message}`);
1647
1671
  }
1648
1672
  const obj = parsed;
1649
- if (_optionalChain([obj, 'optionalAccess', _49 => _49.kind]) !== "decision_resolved") {
1650
- throw new Error(`readLeadingDecisionFrame: expected decision_resolved, got kind=${String(_optionalChain([obj, 'optionalAccess', _50 => _50.kind]))}`);
1673
+ if (_optionalChain([obj, 'optionalAccess', _51 => _51.kind]) !== "decision_resolved") {
1674
+ throw new Error(`readLeadingDecisionFrame: expected decision_resolved, got kind=${String(_optionalChain([obj, 'optionalAccess', _52 => _52.kind]))}`);
1651
1675
  }
1652
1676
  frame = normalizeDecisionFrame(obj);
1653
1677
  buffer = buffer.slice(nullIdx + 1);
@@ -1858,12 +1882,12 @@ var FullscreenSwitchController = class {
1858
1882
  if (fullscreenElementOf(doc)) {
1859
1883
  if (doc.exitFullscreen) doc.exitFullscreen().catch(() => {
1860
1884
  });
1861
- else _optionalChain([doc, 'access', _51 => _51.webkitExitFullscreen, 'optionalCall', _52 => _52()]);
1885
+ else _optionalChain([doc, 'access', _53 => _53.webkitExitFullscreen, 'optionalCall', _54 => _54()]);
1862
1886
  } else {
1863
- const el = _nullishCoalesce(_optionalChain([this, 'access', _53 => _53.opts, 'access', _54 => _54.target, 'optionalCall', _55 => _55()]), () => ( document.documentElement));
1887
+ const el = _nullishCoalesce(_optionalChain([this, 'access', _55 => _55.opts, 'access', _56 => _56.target, 'optionalCall', _57 => _57()]), () => ( document.documentElement));
1864
1888
  if (el.requestFullscreen) el.requestFullscreen({ navigationUI: "hide" }).catch(() => {
1865
1889
  });
1866
- else _optionalChain([el, 'access', _56 => _56.webkitRequestFullscreen, 'optionalCall', _57 => _57()]);
1890
+ else _optionalChain([el, 'access', _58 => _58.webkitRequestFullscreen, 'optionalCall', _59 => _59()]);
1867
1891
  }
1868
1892
  };
1869
1893
  /** Raise the mask + start tracking. Idempotent — safe from the pre-emptive
@@ -1878,7 +1902,7 @@ var FullscreenSwitchController = class {
1878
1902
  window.clearTimeout(this.quietTimer);
1879
1903
  window.clearTimeout(this.capTimer);
1880
1904
  window.removeEventListener("resize", this.onResize);
1881
- _optionalChain([this, 'access', _58 => _58.opts, 'access', _59 => _59.onGeometryPulse, 'optionalCall', _60 => _60()]);
1905
+ _optionalChain([this, 'access', _60 => _60.opts, 'access', _61 => _61.onGeometryPulse, 'optionalCall', _62 => _62()]);
1882
1906
  if (this.opts.switchingClass) document.documentElement.classList.remove(this.opts.switchingClass);
1883
1907
  };
1884
1908
  this.armQuiet = () => {
@@ -1886,7 +1910,7 @@ var FullscreenSwitchController = class {
1886
1910
  this.quietTimer = window.setTimeout(this.endSwitch, _nullishCoalesce(this.opts.quietMs, () => ( DEFAULT_QUIET_MS)));
1887
1911
  };
1888
1912
  this.onResize = () => {
1889
- _optionalChain([this, 'access', _61 => _61.opts, 'access', _62 => _62.onGeometryPulse, 'optionalCall', _63 => _63()]);
1913
+ _optionalChain([this, 'access', _63 => _63.opts, 'access', _64 => _64.onGeometryPulse, 'optionalCall', _65 => _65()]);
1890
1914
  this.armQuiet();
1891
1915
  };
1892
1916
  /** Escape is the one exit path that skips toggle() — pre-mask on the
@@ -1898,7 +1922,7 @@ var FullscreenSwitchController = class {
1898
1922
  const fs = this.isFullscreen;
1899
1923
  if (this.opts.activeClass) document.documentElement.classList.toggle(this.opts.activeClass, fs);
1900
1924
  this.beginSwitch();
1901
- requestAnimationFrame(() => _optionalChain([this, 'access', _64 => _64.opts, 'access', _65 => _65.onGeometryPulse, 'optionalCall', _66 => _66()]));
1925
+ requestAnimationFrame(() => _optionalChain([this, 'access', _66 => _66.opts, 'access', _67 => _67.onGeometryPulse, 'optionalCall', _68 => _68()]));
1902
1926
  this.armQuiet();
1903
1927
  this.opts.onFullscreenChange(fs);
1904
1928
  };
@@ -1912,7 +1936,7 @@ var FullscreenSwitchController = class {
1912
1936
  }
1913
1937
  get isFullscreen() {
1914
1938
  const fs = fullscreenElementOf(document);
1915
- const target = _optionalChain([this, 'access', _67 => _67.opts, 'access', _68 => _68.target, 'optionalCall', _69 => _69()]);
1939
+ const target = _optionalChain([this, 'access', _69 => _69.opts, 'access', _70 => _70.target, 'optionalCall', _71 => _71()]);
1916
1940
  return target ? fs === target : Boolean(fs);
1917
1941
  }
1918
1942
  attach() {
@@ -1959,7 +1983,7 @@ function primaryPlatformOf(platforms) {
1959
1983
  if (!Array.isArray(platforms)) return null;
1960
1984
  for (const entry of platforms) {
1961
1985
  const row = entry;
1962
- const name = _nullishCoalesce(_nullishCoalesce(_optionalChain([row, 'optionalAccess', _70 => _70.platforms, 'optionalAccess', _71 => _71.name]), () => ( _optionalChain([row, 'optionalAccess', _72 => _72.platform_name]))), () => ( _optionalChain([row, 'optionalAccess', _73 => _73.name])));
1986
+ const name = _nullishCoalesce(_nullishCoalesce(_optionalChain([row, 'optionalAccess', _72 => _72.platforms, 'optionalAccess', _73 => _73.name]), () => ( _optionalChain([row, 'optionalAccess', _74 => _74.platform_name]))), () => ( _optionalChain([row, 'optionalAccess', _75 => _75.name])));
1963
1987
  if (typeof name === "string" && name.trim()) return name.trim();
1964
1988
  }
1965
1989
  return null;
@@ -1982,7 +2006,7 @@ function makeComposeContentUrl(opts) {
1982
2006
  const seg = _nullishCoalesce((Object.prototype.hasOwnProperty.call(suffixes, type) ? suffixes[type] : void 0), () => ( type));
1983
2007
  if (opts.hostedTypes.has(type)) {
1984
2008
  const recovered = externalUrl ? lastPathSegment(externalUrl) : null;
1985
- const slug = recovered && recovered !== seg ? recovered : _optionalChain([slugHint, 'optionalAccess', _74 => _74.trim, 'call', _75 => _75()]) || identifier;
2009
+ const slug = recovered && recovered !== seg ? recovered : _optionalChain([slugHint, 'optionalAccess', _76 => _76.trim, 'call', _77 => _77()]) || identifier;
1986
2010
  return { href: `/${seg}/${slug}`, targetPlatform: null };
1987
2011
  }
1988
2012
  if (externalUrl) return { href: externalUrl, targetPlatform: _nullishCoalesce(targetPlatform, () => ( null)) };
@@ -1990,7 +2014,7 @@ function makeComposeContentUrl(opts) {
1990
2014
  const owner = claimedOwner && _chunkYL6ZB2SRcjs.byKey.call(void 0, claimedOwner) ? claimedOwner : null;
1991
2015
  const origin = owner ? _chunkYL6ZB2SRcjs.getPlatformProductionUrl.call(void 0, owner) : opts.contentOrigin;
1992
2016
  return {
1993
- href: `${origin.replace(/\/+$/, "")}/${seg}/${_optionalChain([slugHint, 'optionalAccess', _76 => _76.trim, 'call', _77 => _77()]) || identifier}`,
2017
+ href: `${origin.replace(/\/+$/, "")}/${seg}/${_optionalChain([slugHint, 'optionalAccess', _78 => _78.trim, 'call', _79 => _79()]) || identifier}`,
1994
2018
  // Report the owner so `decideNewTab` can compare it against the current
1995
2019
  // app instead of falling back to an origin guess (which is unreliable in
1996
2020
  // dev, where every platform shares localhost). `null` whenever the href
@@ -2066,7 +2090,7 @@ function getDocSourceDefaultPath(structure, folderIndexFile = DEFAULT_FOLDER_IND
2066
2090
  const hasRootIndex = structure.some((node) => node.type === "file" && node.path === folderIndexFile);
2067
2091
  if (hasRootIndex) return null;
2068
2092
  const firstFolderWithReadme = structure.find((node) => node.type === "folder" && node.hasReadme && !!node.path);
2069
- return _nullishCoalesce(_optionalChain([firstFolderWithReadme, 'optionalAccess', _78 => _78.path]), () => ( null));
2093
+ return _nullishCoalesce(_optionalChain([firstFolderWithReadme, 'optionalAccess', _80 => _80.path]), () => ( null));
2070
2094
  }
2071
2095
 
2072
2096
  // src/utils/doc-path-utils.ts
@@ -2077,7 +2101,7 @@ function pathToNodeId(path) {
2077
2101
  return path.replace(/[/\s]/g, "-").toLowerCase();
2078
2102
  }
2079
2103
  function normalizeDocPath(segments, folderIndexFile = DEFAULT_FOLDER_INDEX_FILE) {
2080
- const lowerPath = (_optionalChain([segments, 'optionalAccess', _79 => _79.join, 'call', _80 => _80("/")]) || "").toLowerCase();
2104
+ const lowerPath = (_optionalChain([segments, 'optionalAccess', _81 => _81.join, 'call', _82 => _82("/")]) || "").toLowerCase();
2081
2105
  const lowerIndex = folderIndexFile.toLowerCase();
2082
2106
  const suffix = `/${lowerIndex}`;
2083
2107
  if (lowerPath.endsWith(suffix)) return lowerPath.slice(0, -suffix.length);
@@ -2435,7 +2459,7 @@ function isValidPathPattern(pattern) {
2435
2459
  return pattern.trim().length > 0 && compile(pattern.trim()) !== null;
2436
2460
  }
2437
2461
  function matchesPathPattern(pathname, pattern) {
2438
- return _nullishCoalesce(_optionalChain([compile, 'call', _81 => _81(pattern.trim()), 'optionalAccess', _82 => _82.test, 'call', _83 => _83(pathname)]), () => ( false));
2462
+ return _nullishCoalesce(_optionalChain([compile, 'call', _83 => _83(pattern.trim()), 'optionalAccess', _84 => _84.test, 'call', _85 => _85(pathname)]), () => ( false));
2439
2463
  }
2440
2464
  function pathMatchesAny(pathname, patterns) {
2441
2465
  return (_nullishCoalesce(patterns, () => ( []))).some((pattern) => matchesPathPattern(pathname, pattern));
@@ -2482,7 +2506,7 @@ function demoClockTimes(seed, options = {}) {
2482
2506
  // src/components/navigation/mingo-ai-button.tsx
2483
2507
 
2484
2508
  function openAskAi(source, options) {
2485
- const prompt = _optionalChain([options, 'optionalAccess', _84 => _84.prompt, 'optionalAccess', _85 => _85.trim, 'call', _86 => _86()]);
2509
+ const prompt = _optionalChain([options, 'optionalAccess', _86 => _86.prompt, 'optionalAccess', _87 => _87.trim, 'call', _88 => _88()]);
2486
2510
  const detail = prompt ? { source: _nullishCoalesce(source, () => ( "")), prompt } : { source: _nullishCoalesce(source, () => ( "")) };
2487
2511
  window.dispatchEvent(new CustomEvent(_chunkYL6ZB2SRcjs.ASK_AI_OPEN_EVENT, { detail }));
2488
2512
  }
@@ -2501,10 +2525,10 @@ function MingoAiButton({
2501
2525
  const inPage = variant === "button";
2502
2526
  const commandKey = visitor.known && _chunkTZ4GKUO2cjs.usesCommandKey.call(void 0, visitor.os);
2503
2527
  const assistant = _chunkEWPR7662cjs.useAssistantRuntime.call(void 0, );
2504
- const label = _nullishCoalesce(labelProp, () => ( _optionalChain([assistant, 'optionalAccess', _87 => _87.name])));
2505
- const icon = _nullishCoalesce(iconProp, () => ( _optionalChain([assistant, 'optionalAccess', _88 => _88.icon])));
2506
- const runtimeOpen = _optionalChain([assistant, 'optionalAccess', _89 => _89.open]);
2507
- const eventSource = _nullishCoalesce(source, () => ( _optionalChain([assistant, 'optionalAccess', _90 => _90.source])));
2528
+ const label = _nullishCoalesce(labelProp, () => ( _optionalChain([assistant, 'optionalAccess', _89 => _89.name])));
2529
+ const icon = _nullishCoalesce(iconProp, () => ( _optionalChain([assistant, 'optionalAccess', _90 => _90.icon])));
2530
+ const runtimeOpen = _optionalChain([assistant, 'optionalAccess', _91 => _91.open]);
2531
+ const eventSource = _nullishCoalesce(source, () => ( _optionalChain([assistant, 'optionalAccess', _92 => _92.source])));
2508
2532
  const openRef = _react.useRef.call(void 0, () => void 0);
2509
2533
  _react.useEffect.call(void 0, () => {
2510
2534
  openRef.current = () => runtimeOpen ? runtimeOpen({}) : openAskAi(eventSource);
@@ -2534,7 +2558,7 @@ function MingoAiButton({
2534
2558
  onClick: (e) => {
2535
2559
  if (runtimeOpen) runtimeOpen({});
2536
2560
  else openAskAi(eventSource);
2537
- _optionalChain([onClick, 'optionalCall', _91 => _91(e)]);
2561
+ _optionalChain([onClick, 'optionalCall', _93 => _93(e)]);
2538
2562
  },
2539
2563
  className: _chunk65VVJSQZcjs.cn.call(void 0,
2540
2564
  "group/mingo flex shrink-0 justify-start focus-visible:ring-ods-accent",
@@ -2645,10 +2669,10 @@ function QuestionChips({
2645
2669
  const request = { prompt: _nullishCoalesce(prompt.prompt, () => ( prompt.label)) };
2646
2670
  if (onOpen) onOpen(request);
2647
2671
  else openAskAi(source, request);
2648
- _optionalChain([onAsk, 'optionalCall', _92 => _92(prompt)]);
2672
+ _optionalChain([onAsk, 'optionalCall', _94 => _94(prompt)]);
2649
2673
  }
2650
2674
  }
2651
- ) : null }, _nullishCoalesce(_optionalChain([prompt, 'optionalAccess', _93 => _93.id]), () => ( `slot-${slot}`)));
2675
+ ) : null }, _nullishCoalesce(_optionalChain([prompt, 'optionalAccess', _95 => _95.id]), () => ( `slot-${slot}`)));
2652
2676
  }) });
2653
2677
  }
2654
2678
  function AskPrompts({
@@ -2759,7 +2783,7 @@ function buildAskPromptsUrl(base, { count, topic, exclude = [] }) {
2759
2783
  return `${base}${base.includes("?") ? "&" : "?"}${params.toString()}`;
2760
2784
  }
2761
2785
  function assistantAvailable(assistant) {
2762
- return !!_optionalChain([assistant, 'optionalAccess', _94 => _94.available]);
2786
+ return !!_optionalChain([assistant, 'optionalAccess', _96 => _96.available]);
2763
2787
  }
2764
2788
  function useAskPrompts({
2765
2789
  topic,
@@ -2772,12 +2796,12 @@ function useAskPrompts({
2772
2796
  const url = base && enabled ? buildAskPromptsUrl(base, { count, topic, exclude }) : null;
2773
2797
  const { data, dataUrl, error } = _chunkFZB4RMRKcjs.useSelfFetch.call(void 0, url);
2774
2798
  const landed = url !== null && (dataUrl === url || error);
2775
- return { prompts: landed ? _nullishCoalesce(_optionalChain([data, 'optionalAccess', _95 => _95.prompts]), () => ( [])) : [], isLoading: !!base && !landed, supported: !!base };
2799
+ return { prompts: landed ? _nullishCoalesce(_optionalChain([data, 'optionalAccess', _97 => _97.prompts]), () => ( [])) : [], isLoading: !!base && !landed, supported: !!base };
2776
2800
  }
2777
2801
  function useAssistantOpen(topic, onOpen) {
2778
2802
  const assistant = _chunkEWPR7662cjs.useAssistantRuntime.call(void 0, );
2779
- const runtimeOpen = _optionalChain([assistant, 'optionalAccess', _96 => _96.open]);
2780
- const source = _optionalChain([assistant, 'optionalAccess', _97 => _97.source]);
2803
+ const runtimeOpen = _optionalChain([assistant, 'optionalAccess', _98 => _98.open]);
2804
+ const source = _optionalChain([assistant, 'optionalAccess', _99 => _99.source]);
2781
2805
  return _react.useCallback.call(void 0,
2782
2806
  (request) => {
2783
2807
  const full = { ...request, topic };
@@ -2803,7 +2827,7 @@ function createAskQueue() {
2803
2827
  },
2804
2828
  settle(surface, ids) {
2805
2829
  const entry = entries.get(surface);
2806
- if (!entry || (_nullishCoalesce(_optionalChain([entry, 'access', _98 => _98.ids, 'optionalAccess', _99 => _99.join, 'call', _100 => _100(",")]), () => ( null))) === (_nullishCoalesce(_optionalChain([ids, 'optionalAccess', _101 => _101.join, 'call', _102 => _102(",")]), () => ( null)))) return;
2830
+ if (!entry || (_nullishCoalesce(_optionalChain([entry, 'access', _100 => _100.ids, 'optionalAccess', _101 => _101.join, 'call', _102 => _102(",")]), () => ( null))) === (_nullishCoalesce(_optionalChain([ids, 'optionalAccess', _103 => _103.join, 'call', _104 => _104(",")]), () => ( null)))) return;
2807
2831
  entry.ids = ids;
2808
2832
  publish();
2809
2833
  },
@@ -2832,7 +2856,7 @@ function createAskQueue() {
2832
2856
  }
2833
2857
  var askQueues = /* @__PURE__ */ new Map();
2834
2858
  function useAskQueue() {
2835
- const scope = _nullishCoalesce(_optionalChain([_chunkEWPR7662cjs.useAssistantRuntime.call(void 0, ), 'optionalAccess', _103 => _103.askPromptsUrl]), () => ( ""));
2859
+ const scope = _nullishCoalesce(_optionalChain([_chunkEWPR7662cjs.useAssistantRuntime.call(void 0, ), 'optionalAccess', _105 => _105.askPromptsUrl]), () => ( ""));
2836
2860
  let queue = askQueues.get(scope);
2837
2861
  if (!queue) {
2838
2862
  queue = createAskQueue();
@@ -2878,8 +2902,8 @@ function useAskSurface({
2878
2902
  }, [queue, surface, settled]);
2879
2903
  const open = useAssistantOpen(topic, onOpen);
2880
2904
  const scoped = _react.useMemo.call(void 0, () => assistant ? { ...assistant, open } : null, [assistant, open]);
2881
- const onAsk = _optionalChain([assistant, 'optionalAccess', _104 => _104.onAsk]);
2882
- const reportAsk = _react.useCallback.call(void 0, (prompt) => _optionalChain([onAsk, 'optionalCall', _105 => _105({ promptId: prompt.id, topic })]), [onAsk, topic]);
2905
+ const onAsk = _optionalChain([assistant, 'optionalAccess', _106 => _106.onAsk]);
2906
+ const reportAsk = _react.useCallback.call(void 0, (prompt) => _optionalChain([onAsk, 'optionalCall', _107 => _107({ promptId: prompt.id, topic })]), [onAsk, topic]);
2883
2907
  return { assistant, scoped, prompts, isLoading: supported && (!picks || isLoading), supported, open, reportAsk };
2884
2908
  }
2885
2909
 
@@ -2907,7 +2931,7 @@ function AssistantAskPrompts({
2907
2931
  }) {
2908
2932
  const card = variant === "card";
2909
2933
  const assistant = _chunkEWPR7662cjs.useAssistantRuntime.call(void 0, );
2910
- const slots = _nullishCoalesce(_nullishCoalesce(count, () => ( (card ? _optionalChain([assistant, 'optionalAccess', _106 => _106.askCard, 'optionalAccess', _107 => _107.count]) : void 0))), () => ( ASK_PROMPTS_DEFAULT_COUNT));
2934
+ const slots = _nullishCoalesce(_nullishCoalesce(count, () => ( (card ? _optionalChain([assistant, 'optionalAccess', _108 => _108.askCard, 'optionalAccess', _109 => _109.count]) : void 0))), () => ( ASK_PROMPTS_DEFAULT_COUNT));
2911
2935
  const ask = useAskSurface({ topic, count: slots, exclude, enabled, onOpen });
2912
2936
  if (!assistantAvailable(assistant)) return null;
2913
2937
  const shared = {
@@ -2921,12 +2945,12 @@ function AssistantAskPrompts({
2921
2945
  if (card) {
2922
2946
  const name = _nullishCoalesce(label, () => ( assistant.name));
2923
2947
  if (!name) return null;
2924
- const words2 = _nullishCoalesce(_nullishCoalesce(description, () => ( _optionalChain([assistant, 'access', _108 => _108.askCard, 'optionalAccess', _109 => _109.description]))), () => ( DEFAULT_ASK_CARD.description));
2948
+ const words2 = _nullishCoalesce(_nullishCoalesce(description, () => ( _optionalChain([assistant, 'access', _110 => _110.askCard, 'optionalAccess', _111 => _111.description]))), () => ( DEFAULT_ASK_CARD.description));
2925
2949
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEWPR7662cjs.AssistantRuntimeContext.Provider, { value: ask.scoped, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2926
2950
  AskCard,
2927
2951
  {
2928
2952
  ...shared,
2929
- title: fillAssistant(_nullishCoalesce(_nullishCoalesce(title, () => ( _optionalChain([assistant, 'access', _110 => _110.askCard, 'optionalAccess', _111 => _111.title]))), () => ( DEFAULT_ASK_CARD.title)), name),
2953
+ title: fillAssistant(_nullishCoalesce(_nullishCoalesce(title, () => ( _optionalChain([assistant, 'access', _112 => _112.askCard, 'optionalAccess', _113 => _113.title]))), () => ( DEFAULT_ASK_CARD.title)), name),
2930
2954
  description: words2 ? fillAssistant(words2, name) : void 0,
2931
2955
  count: ask.supported ? slots : 0,
2932
2956
  label: name,
@@ -3030,7 +3054,7 @@ var ChatTicketItem = _react.forwardRef.call(void 0,
3030
3054
  {
3031
3055
  ref,
3032
3056
  type: "button",
3033
- onClick: () => _optionalChain([onClick, 'optionalCall', _112 => _112(ticket.id)]),
3057
+ onClick: () => _optionalChain([onClick, 'optionalCall', _114 => _114(ticket.id)]),
3034
3058
  className: _chunk65VVJSQZcjs.cn.call(void 0,
3035
3059
  TICKET_ROW,
3036
3060
  "cursor-pointer transition-colors duration-150",
@@ -3194,8 +3218,8 @@ ChatSidebarSkeleton.displayName = "ChatSidebarSkeleton";
3194
3218
  var DialogListItem = _react.forwardRef.call(void 0,
3195
3219
  ({ className, dialog, isActive, onDialogSelect, onClick, ...props }, ref) => {
3196
3220
  const handleClick = (e) => {
3197
- _optionalChain([onDialogSelect, 'optionalCall', _113 => _113(dialog.id)]);
3198
- _optionalChain([onClick, 'optionalCall', _114 => _114(e)]);
3221
+ _optionalChain([onDialogSelect, 'optionalCall', _115 => _115(dialog.id)]);
3222
+ _optionalChain([onClick, 'optionalCall', _116 => _116(e)]);
3199
3223
  };
3200
3224
  const formatTimestamp = (timestamp) => {
3201
3225
  return _chunkJTSUAHDLcjs.formatDateWithTimezone.call(void 0, timestamp, _chunkJTSUAHDLcjs.VIEWER_TIMEZONE, "numericDateTime24h");
@@ -3268,7 +3292,7 @@ var ChatSidebar = _react.forwardRef.call(void 0,
3268
3292
  (entries) => {
3269
3293
  const [entry] = entries;
3270
3294
  if (entry.isIntersecting && !isFetchingRef.current) {
3271
- _optionalChain([onLoadMoreRef, 'access', _115 => _115.current, 'optionalCall', _116 => _116()]);
3295
+ _optionalChain([onLoadMoreRef, 'access', _117 => _117.current, 'optionalCall', _118 => _118()]);
3272
3296
  }
3273
3297
  },
3274
3298
  { root: scrollContainer, rootMargin: "100px", threshold: 0.1 }
@@ -3483,7 +3507,7 @@ function OnboardingCarousel({
3483
3507
  " of ",
3484
3508
  steps.length,
3485
3509
  ": ",
3486
- _optionalChain([steps, 'access', _117 => _117[index], 'optionalAccess', _118 => _118.title])
3510
+ _optionalChain([steps, 'access', _119 => _119[index], 'optionalAccess', _120 => _120.title])
3487
3511
  ] }),
3488
3512
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center", role: "group", "aria-label": "Choose step", children: steps.map((step, i) => {
3489
3513
  const isCurrent = i === index;
@@ -3804,7 +3828,7 @@ function DataRoomDocCard({ item, className, badgeText, anchorProps }) {
3804
3828
  ] }) : null,
3805
3829
  item.preview ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "line-clamp-2 whitespace-pre-wrap break-words text-ods-text-secondary text-h6", children: item.preview }) }) : null
3806
3830
  ] }),
3807
- _optionalChain([anchorProps, 'optionalAccess', _119 => _119.href]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex h-5 shrink-0 items-center self-start text-ods-text-secondary", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "h-3.5 w-3.5" }) }) : null
3831
+ _optionalChain([anchorProps, 'optionalAccess', _121 => _121.href]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex h-5 shrink-0 items-center self-start text-ods-text-secondary", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "h-3.5 w-3.5" }) }) : null
3808
3832
  ] });
3809
3833
  if (!anchorProps) {
3810
3834
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${_chunkDGNBXZXTcjs.COMPACT_CARD_OUTER_STATIC} ${_nullishCoalesce(className, () => ( ""))}`, "aria-label": "No link available", children: body });
@@ -3830,7 +3854,7 @@ function DataRoomDocCardSkeleton({ className }) {
3830
3854
 
3831
3855
  function CampaignCardAdmin({ campaign, className, anchorProps }) {
3832
3856
  if (_chunkXFRBEXQNcjs.useLoadingScope.call(void 0, )) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CampaignCardAdminSkeleton, { className });
3833
- const goalsCount = _optionalChain([campaign, 'access', _120 => _120.goals, 'optionalAccess', _121 => _121.length]) || 0;
3857
+ const goalsCount = _optionalChain([campaign, 'access', _122 => _122.goals, 'optionalAccess', _123 => _123.length]) || 0;
3834
3858
  const innerChildren = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
3835
3859
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkDGNBXZXTcjs.COMPACT_CARD_ICON_SLOT, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Megaphone, { className: "h-5 w-5" }) }),
3836
3860
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkDGNBXZXTcjs.COMPACT_CARD_TEXT_COL, children: [
@@ -3923,7 +3947,7 @@ var NETWORK_CONFIG = {
3923
3947
 
3924
3948
  var EMPTY_FRAME = { messages: [], phase: "idle", typing: false, delayMs: 0 };
3925
3949
  function prefersReducedMotion() {
3926
- return typeof window !== "undefined" && _optionalChain([window, 'access', _122 => _122.matchMedia, 'optionalCall', _123 => _123("(prefers-reduced-motion: reduce)"), 'access', _124 => _124.matches]) === true;
3950
+ return typeof window !== "undefined" && _optionalChain([window, 'access', _124 => _124.matchMedia, 'optionalCall', _125 => _125("(prefers-reduced-motion: reduce)"), 'access', _126 => _126.matches]) === true;
3927
3951
  }
3928
3952
  function useScriptedStream(frames, resetKey, enabled = true) {
3929
3953
  const [index, setIndex] = _react.useState.call(void 0, 0);
@@ -3934,7 +3958,7 @@ function useScriptedStream(frames, resetKey, enabled = true) {
3934
3958
  setIndex(0);
3935
3959
  }
3936
3960
  _react.useEffect.call(void 0, () => {
3937
- const mq = _optionalChain([window, 'access', _125 => _125.matchMedia, 'optionalCall', _126 => _126("(prefers-reduced-motion: reduce)")]);
3961
+ const mq = _optionalChain([window, 'access', _127 => _127.matchMedia, 'optionalCall', _128 => _128("(prefers-reduced-motion: reduce)")]);
3938
3962
  const sync = () => setReducedMotion(mq ? mq.matches : prefersReducedMotion());
3939
3963
  sync();
3940
3964
  if (!mq) return void 0;
@@ -4079,7 +4103,7 @@ function useJetStreamDialogSubscription({
4079
4103
  const lifecycle = _chunkKHKPLOU4cjs.startConnectionLifecycle.call(void 0, {
4080
4104
  conn: sharedConn,
4081
4105
  wsUrl,
4082
- onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _127 => _127.current, 'optionalCall', _128 => _128()]),
4106
+ onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _129 => _129.current, 'optionalCall', _130 => _130()]),
4083
4107
  backoff: reconnectionBackoffRef.current,
4084
4108
  getFreshUrl: () => getNatsWsUrlRef.current(),
4085
4109
  // JetStream emits 'error' for protocol-level failures (e.g. -ERR Permissions
@@ -4094,7 +4118,7 @@ function useJetStreamDialogSubscription({
4094
4118
  setReconnectionCount((c) => c + 1);
4095
4119
  }
4096
4120
  hadConnectionBeforeRef.current = true;
4097
- _optionalChain([onConnectRef, 'access', _129 => _129.current, 'optionalCall', _130 => _130()]);
4121
+ _optionalChain([onConnectRef, 'access', _131 => _131.current, 'optionalCall', _132 => _132()]);
4098
4122
  }
4099
4123
  if (status === "error") {
4100
4124
  console.warn("[JetStream] NATS protocol error:", evt.data);
@@ -4104,7 +4128,7 @@ function useJetStreamDialogSubscription({
4104
4128
  setIsConnected(false);
4105
4129
  setIsSubscribed(false);
4106
4130
  tearDownSubscription();
4107
- _optionalChain([onDisconnectRef, 'access', _131 => _131.current, 'optionalCall', _132 => _132()]);
4131
+ _optionalChain([onDisconnectRef, 'access', _133 => _133.current, 'optionalCall', _134 => _134()]);
4108
4132
  }
4109
4133
  }
4110
4134
  });
@@ -4248,7 +4272,7 @@ function useJetStreamDialogSubscription({
4248
4272
  subscriptionRef.current = handle;
4249
4273
  setIsSubscribed(true);
4250
4274
  try {
4251
- _optionalChain([onSubscribedRef, 'access', _133 => _133.current, 'optionalCall', _134 => _134()]);
4275
+ _optionalChain([onSubscribedRef, 'access', _135 => _135.current, 'optionalCall', _136 => _136()]);
4252
4276
  } catch (e) {
4253
4277
  console.warn("[JetStream] onSubscribed threw:", e);
4254
4278
  }
@@ -4360,7 +4384,7 @@ function useChat({
4360
4384
  onMessagesChangeRef.current = onMessagesChange;
4361
4385
  });
4362
4386
  _react.useEffect.call(void 0, () => {
4363
- _optionalChain([onMessagesChangeRef, 'access', _135 => _135.current, 'optionalCall', _136 => _136(messages)]);
4387
+ _optionalChain([onMessagesChangeRef, 'access', _137 => _137.current, 'optionalCall', _138 => _138(messages)]);
4364
4388
  }, [messages]);
4365
4389
  const {
4366
4390
  streamMessage,
@@ -4397,7 +4421,7 @@ function useChat({
4397
4421
  name: "You",
4398
4422
  content: text,
4399
4423
  timestamp: /* @__PURE__ */ new Date(),
4400
- ..._optionalChain([options, 'optionalAccess', _137 => _137.hidden]) ? { hidden: true } : {}
4424
+ ..._optionalChain([options, 'optionalAccess', _139 => _139.hidden]) ? { hidden: true } : {}
4401
4425
  };
4402
4426
  addMessage(userMessage);
4403
4427
  setIsTyping(true);
@@ -4628,19 +4652,19 @@ function turnRequestKeys(content) {
4628
4652
  if (!Array.isArray(content)) return keys;
4629
4653
  for (const seg of content) {
4630
4654
  if (seg.type === "tool_execution") {
4631
- const id = _optionalChain([seg, 'access', _138 => _138.data, 'optionalAccess', _139 => _139.toolExecutionRequestId]);
4655
+ const id = _optionalChain([seg, 'access', _140 => _140.data, 'optionalAccess', _141 => _141.toolExecutionRequestId]);
4632
4656
  if (id) keys.add(id);
4633
4657
  } else if (seg.type === "approval_request") {
4634
- const id = _optionalChain([seg, 'access', _140 => _140.data, 'optionalAccess', _141 => _141.requestId]);
4658
+ const id = _optionalChain([seg, 'access', _142 => _142.data, 'optionalAccess', _143 => _143.requestId]);
4635
4659
  if (id) keys.add(id);
4636
4660
  } else if (seg.type === "escalation_offer") {
4637
- const id = _optionalChain([seg, 'access', _142 => _142.data, 'optionalAccess', _143 => _143.offerId]);
4661
+ const id = _optionalChain([seg, 'access', _144 => _144.data, 'optionalAccess', _145 => _145.offerId]);
4638
4662
  if (id) keys.add(id);
4639
4663
  } else if (seg.type === "approval_batch") {
4640
4664
  const data = seg.data;
4641
- if (_optionalChain([data, 'optionalAccess', _144 => _144.approvalRequestId])) keys.add(data.approvalRequestId);
4642
- for (const call of _nullishCoalesce(_optionalChain([data, 'optionalAccess', _145 => _145.toolCalls]), () => ( []))) {
4643
- if (_optionalChain([call, 'optionalAccess', _146 => _146.toolExecutionRequestId])) keys.add(call.toolExecutionRequestId);
4665
+ if (_optionalChain([data, 'optionalAccess', _146 => _146.approvalRequestId])) keys.add(data.approvalRequestId);
4666
+ for (const call of _nullishCoalesce(_optionalChain([data, 'optionalAccess', _147 => _147.toolCalls]), () => ( []))) {
4667
+ if (_optionalChain([call, 'optionalAccess', _148 => _148.toolExecutionRequestId])) keys.add(call.toolExecutionRequestId);
4644
4668
  }
4645
4669
  }
4646
4670
  }
@@ -4744,18 +4768,18 @@ function mergeHistoryWithRealtime(input) {
4744
4768
  }
4745
4769
  }
4746
4770
  const trailing = processedHistory[processedHistory.length - 1];
4747
- const historyTrailingAssistant = _optionalChain([trailing, 'optionalAccess', _147 => _147.role]) === "assistant" ? trailing : null;
4748
- const historyBatchId = historyTrailingAssistant && Array.isArray(historyTrailingAssistant.content) ? _nullishCoalesce(_optionalChain([historyTrailingAssistant, 'access', _148 => _148.content, 'access', _149 => _149.find, 'call', _150 => _150((s) => s.type === "approval_batch"), 'optionalAccess', _151 => _151.data, 'optionalAccess', _152 => _152.approvalRequestId]), () => ( null)) : null;
4771
+ const historyTrailingAssistant = _optionalChain([trailing, 'optionalAccess', _149 => _149.role]) === "assistant" ? trailing : null;
4772
+ const historyBatchId = historyTrailingAssistant && Array.isArray(historyTrailingAssistant.content) ? _nullishCoalesce(_optionalChain([historyTrailingAssistant, 'access', _150 => _150.content, 'access', _151 => _151.find, 'call', _152 => _152((s) => s.type === "approval_batch"), 'optionalAccess', _153 => _153.data, 'optionalAccess', _154 => _154.approvalRequestId]), () => ( null)) : null;
4749
4773
  let processedToUse = processedHistory;
4750
4774
  const pinnedSyntheticIds = /* @__PURE__ */ new Set();
4751
4775
  const droppedSyntheticIds = /* @__PURE__ */ new Set();
4752
4776
  if (historyBatchId) {
4753
4777
  const batchTwins = existingMessages.filter(
4754
- (m) => m.role === "assistant" && Array.isArray(m.content) && m.content.some((s) => s.type === "approval_batch" && _optionalChain([s, 'access', _153 => _153.data, 'optionalAccess', _154 => _154.approvalRequestId]) === historyBatchId)
4778
+ (m) => m.role === "assistant" && Array.isArray(m.content) && m.content.some((s) => s.type === "approval_batch" && _optionalChain([s, 'access', _155 => _155.data, 'optionalAccess', _156 => _156.approvalRequestId]) === historyBatchId)
4755
4779
  );
4756
4780
  const existingWithSameBatch = _nullishCoalesce(batchTwins.find((m) => m.id === streamingMessageId), () => ( batchTwins[batchTwins.length - 1]));
4757
4781
  if (existingWithSameBatch && Array.isArray(existingWithSameBatch.content)) {
4758
- const histSize = Array.isArray(_optionalChain([historyTrailingAssistant, 'optionalAccess', _155 => _155.content])) ? historyTrailingAssistant.content.length : 0;
4782
+ const histSize = Array.isArray(_optionalChain([historyTrailingAssistant, 'optionalAccess', _157 => _157.content])) ? historyTrailingAssistant.content.length : 0;
4759
4783
  const realtimeSize = existingWithSameBatch.content.length;
4760
4784
  if (existingWithSameBatch.id === streamingMessageId || realtimeSize > histSize) {
4761
4785
  processedToUse = processedHistory.slice(0, -1);
@@ -4788,9 +4812,9 @@ function mergeHistoryWithRealtime(input) {
4788
4812
  const trailingAssistantText = lastProcessed && lastProcessed.role === "assistant" ? assistantAnswerText(lastProcessed.content) : "";
4789
4813
  const windowSignals = collectTwinSignals(processedToUse);
4790
4814
  const seenUserSyntheticByContent = /* @__PURE__ */ new Map();
4791
- const isInWindow = (m) => processedIds.has(m.id) || (_nullishCoalesce(_optionalChain([rawHistoryIds, 'optionalAccess', _156 => _156.has, 'call', _157 => _157(m.id)]), () => ( false)));
4815
+ const isInWindow = (m) => processedIds.has(m.id) || (_nullishCoalesce(_optionalChain([rawHistoryIds, 'optionalAccess', _158 => _158.has, 'call', _159 => _159(m.id)]), () => ( false)));
4792
4816
  const firstWindowIndex = existingMessages.findIndex(isInWindow);
4793
- const isPersistedOlder = (m) => !isClientMintedId(m.id) && (_nullishCoalesce(_optionalChain([m, 'access', _158 => _158.timestamp, 'optionalAccess', _159 => _159.getTime, 'call', _160 => _160()]), () => ( 0))) <= historyFetchedAt;
4817
+ const isPersistedOlder = (m) => !isClientMintedId(m.id) && (_nullishCoalesce(_optionalChain([m, 'access', _160 => _160.timestamp, 'optionalAccess', _161 => _161.getTime, 'call', _162 => _162()]), () => ( 0))) <= historyFetchedAt;
4794
4818
  let lastOlderPersistedIndex = -1;
4795
4819
  if (firstWindowIndex < 0) {
4796
4820
  for (const [index, m] of existingMessages.entries()) {
@@ -4808,7 +4832,7 @@ function mergeHistoryWithRealtime(input) {
4808
4832
  } else if (pm.role === "assistant") {
4809
4833
  windowHasUnstampedAssistant = true;
4810
4834
  }
4811
- const time = _optionalChain([pm, 'access', _161 => _161.timestamp, 'optionalAccess', _162 => _162.getTime, 'call', _163 => _163()]);
4835
+ const time = _optionalChain([pm, 'access', _163 => _163.timestamp, 'optionalAccess', _164 => _164.getTime, 'call', _165 => _165()]);
4812
4836
  if (typeof time === "number" && time < windowMinTime) windowMinTime = time;
4813
4837
  }
4814
4838
  const threadHasClientMintedRow = existingMessages.some((m) => isClientMintedId(m.id));
@@ -4826,14 +4850,14 @@ function mergeHistoryWithRealtime(input) {
4826
4850
  const verdict = twinVerdict(windowSignals, m);
4827
4851
  return verdict === "unknown" ? !seqCanMislead(m) : verdict === "distinct";
4828
4852
  }
4829
- const time = _optionalChain([m, 'access', _164 => _164.timestamp, 'optionalAccess', _165 => _165.getTime, 'call', _166 => _166()]);
4853
+ const time = _optionalChain([m, 'access', _166 => _166.timestamp, 'optionalAccess', _167 => _167.getTime, 'call', _168 => _168()]);
4830
4854
  if (typeof time !== "number" || time > historyFetchedAt) return false;
4831
4855
  if (!Number.isFinite(windowMinTime) || time >= windowMinTime) return false;
4832
4856
  return twinVerdict(windowSignals, m) === "distinct";
4833
4857
  };
4834
4858
  const keepRealtime = (m) => {
4835
4859
  if (m.role === "user" && isOptimisticId(m.id) && typeof m.content === "string") {
4836
- const canBeInSnapshot = (_nullishCoalesce(_optionalChain([m, 'access', _167 => _167.timestamp, 'optionalAccess', _168 => _168.getTime, 'call', _169 => _169()]), () => ( 0))) <= historyFetchedAt;
4860
+ const canBeInSnapshot = (_nullishCoalesce(_optionalChain([m, 'access', _169 => _169.timestamp, 'optionalAccess', _170 => _170.getTime, 'call', _171 => _171()]), () => ( 0))) <= historyFetchedAt;
4837
4861
  return !(canBeInSnapshot && windowSignals.userContents.has(userTwinKey(m)));
4838
4862
  }
4839
4863
  if (isSyntheticRealtimeId(m.id) && m.id !== streamingMessageId) {
@@ -4858,7 +4882,7 @@ function mergeHistoryWithRealtime(input) {
4858
4882
  } else if (typeof m.streamSeq === "number") {
4859
4883
  covered = historyMaxStreamSeq > 0 && historyMaxStreamSeq >= m.streamSeq;
4860
4884
  } else {
4861
- covered = historyCoversRealtime !== null ? historyCoversRealtime : (_nullishCoalesce(_optionalChain([m, 'access', _170 => _170.timestamp, 'optionalAccess', _171 => _171.getTime, 'call', _172 => _172()]), () => ( 0))) <= historyFetchedAt;
4885
+ covered = historyCoversRealtime !== null ? historyCoversRealtime : (_nullishCoalesce(_optionalChain([m, 'access', _172 => _172.timestamp, 'optionalAccess', _173 => _173.getTime, 'call', _174 => _174()]), () => ( 0))) <= historyFetchedAt;
4862
4886
  }
4863
4887
  if (covered) return false;
4864
4888
  }
@@ -4949,7 +4973,7 @@ function normalizeHistoricalMessageData(md) {
4949
4973
  function isHistoricalUserTurn(m) {
4950
4974
  return !!m.owner;
4951
4975
  }
4952
- var isTextSegment = (d) => _optionalChain([d, 'optionalAccess', _173 => _173.type]) === "TEXT" && typeof d.text === "string";
4976
+ var isTextSegment = (d) => _optionalChain([d, 'optionalAccess', _175 => _175.type]) === "TEXT" && typeof d.text === "string";
4953
4977
  var THINK_MS = 550;
4954
4978
  var TOKEN_MS = 55;
4955
4979
  var USER_MS = 480;
@@ -5116,7 +5140,7 @@ var GROUPS = [
5116
5140
  }
5117
5141
  ];
5118
5142
  function maskKey(key) {
5119
- const prefix = _nullishCoalesce(_optionalChain([/^fpk_[a-z0-9-]+_/i, 'access', _174 => _174.exec, 'call', _175 => _175(key), 'optionalAccess', _176 => _176[0]]), () => ( ""));
5143
+ const prefix = _nullishCoalesce(_optionalChain([/^fpk_[a-z0-9-]+_/i, 'access', _176 => _176.exec, 'call', _177 => _177(key), 'optionalAccess', _178 => _178[0]]), () => ( ""));
5120
5144
  return key.length - prefix.length <= 8 ? `${prefix}\u2022\u2022\u2022\u2022` : `${prefix}\u2026${key.slice(-4)}`;
5121
5145
  }
5122
5146
  function HeaderName({ children }) {
@@ -5153,8 +5177,8 @@ function ProxyCredentialsForm({ description, saved }) {
5153
5177
  const errors = _react.useMemo.call(void 0, () => {
5154
5178
  const out = {};
5155
5179
  for (const { field } of _chunkDGFDBPO7cjs.EMBED_PROXY_OPTIONAL_HEADERS) {
5156
- const value = _optionalChain([optional, 'access', _177 => _177[field], 'optionalAccess', _178 => _178.trim, 'call', _179 => _179()]);
5157
- const message = value ? _optionalChain([OPTIONAL_FIELD_COPY, 'access', _180 => _180[field], 'access', _181 => _181.validate, 'optionalCall', _182 => _182(value)]) : null;
5180
+ const value = _optionalChain([optional, 'access', _179 => _179[field], 'optionalAccess', _180 => _180.trim, 'call', _181 => _181()]);
5181
+ const message = value ? _optionalChain([OPTIONAL_FIELD_COPY, 'access', _182 => _182[field], 'access', _183 => _183.validate, 'optionalCall', _184 => _184(value)]) : null;
5158
5182
  if (message) out[field] = message;
5159
5183
  }
5160
5184
  return out;
@@ -5166,12 +5190,12 @@ function ProxyCredentialsForm({ description, saved }) {
5166
5190
  ...keyForPreview ? [["Authorization", `Bearer ${keyForPreview}`]] : [],
5167
5191
  ...email.trim() ? [["X-Chat-Act-As", email.trim().toLowerCase()]] : [],
5168
5192
  ..._chunkDGFDBPO7cjs.EMBED_PROXY_OPTIONAL_HEADERS.flatMap(({ field, header }) => {
5169
- const value = _optionalChain([optional, 'access', _183 => _183[field], 'optionalAccess', _184 => _184.trim, 'call', _185 => _185()]);
5193
+ const value = _optionalChain([optional, 'access', _185 => _185[field], 'optionalAccess', _186 => _186.trim, 'call', _187 => _187()]);
5170
5194
  return value ? [[header, value]] : [];
5171
5195
  })
5172
5196
  ];
5173
5197
  const save = () => {
5174
- const key = secret.trim() || _optionalChain([_chunkDGFDBPO7cjs.getEmbedProxyAuth.call(void 0, ), 'optionalAccess', _186 => _186.secret]);
5198
+ const key = secret.trim() || _optionalChain([_chunkDGFDBPO7cjs.getEmbedProxyAuth.call(void 0, ), 'optionalAccess', _188 => _188.secret]);
5175
5199
  const actAs = email.trim().toLowerCase();
5176
5200
  if (!key || !actAs || hasErrors) {
5177
5201
  setStatus(hasErrors ? "Fix the highlighted fields first." : "API key and act-as email are required.");
@@ -5299,7 +5323,20 @@ var LoadedEmbeddableChat = _react.lazy.call(void 0,
5299
5323
  () => Promise.resolve().then(() => _interopRequireWildcard(require("./embeddable-chat-YL6ZSTDJ.cjs"))).then((module) => ({ default: module.EmbeddableChat }))
5300
5324
  );
5301
5325
  var EmbeddableChat = _react.forwardRef.call(void 0, (props, ref) => {
5326
+ const [loadRequested, setLoadRequested] = _react.useState.call(void 0, false);
5327
+ const load = loadRequested || Boolean(props.open) || Boolean(props.defaultOpen);
5302
5328
  _react.useEffect.call(void 0, () => _chunkYL6ZB2SRcjs.holdAskAiOpens.call(void 0, ), []);
5329
+ _react.useEffect.call(void 0, () => {
5330
+ if (load) return void 0;
5331
+ const start = () => setLoadRequested(true);
5332
+ for (const name of _chunkYL6ZB2SRcjs.ASK_AI_OPEN_EVENTS) window.addEventListener(name, start);
5333
+ const cancel = afterPageLoad(start);
5334
+ return () => {
5335
+ cancel();
5336
+ for (const name of _chunkYL6ZB2SRcjs.ASK_AI_OPEN_EVENTS) window.removeEventListener(name, start);
5337
+ };
5338
+ }, [load]);
5339
+ if (!load) return null;
5303
5340
  return _react.createElement.call(void 0, _react.Suspense, { fallback: null }, _react.createElement.call(void 0, LoadedEmbeddableChat, { ...props, ref }));
5304
5341
  });
5305
5342
  EmbeddableChat.displayName = "EmbeddableChat";
@@ -5523,4 +5560,5 @@ EmbeddableChat.displayName = "EmbeddableChat";
5523
5560
 
5524
5561
 
5525
5562
 
5526
- exports.InfoHint = InfoHint; exports.Field = Field; exports.HUBSPOT_DO_NOT_COLLECT_FORM_PROPS = HUBSPOT_DO_NOT_COLLECT_FORM_PROPS; exports.FullscreenSwitchController = FullscreenSwitchController; exports.SOCIAL_PLATFORM_ALIASES = SOCIAL_PLATFORM_ALIASES; exports.normalizeSocialPlatform = normalizeSocialPlatform; exports.hostMatches = hostMatches; exports.SOCIAL_PLATFORM_ALT_HOSTS = SOCIAL_PLATFORM_ALT_HOSTS; exports.socialPlatformHosts = socialPlatformHosts; exports.classifySocialHost = classifySocialHost; exports.pickSocialLink = pickSocialLink; exports.ChatMessageRow = ChatMessageRow; exports.ChatMessageRowSkeleton = ChatMessageRowSkeleton; exports.TURN_ROW_CLASS = TURN_ROW_CLASS; exports.TURN_BODY_CLASS = TURN_BODY_CLASS; exports.ChatTurn = ChatTurn; exports.ChatTurnNameSkeleton = ChatTurnNameSkeleton; exports.ChatTurnSkeleton = ChatTurnSkeleton; exports.AI_PROVIDERS = AI_PROVIDERS; exports.aiProvider = aiProvider; exports.TOKEN_RATE_EMPTY = TOKEN_RATE_EMPTY; exports.formatTokenRate = formatTokenRate; exports.tokenCost = tokenCost; exports.formatTokenAmount = formatTokenAmount; exports.tokensForBalance = tokensForBalance; exports.tokenRateProviderLabel = tokenRateProviderLabel; exports.groupTokenRatesByProvider = groupTokenRatesByProvider; exports.TRIAL_TERMS = TRIAL_TERMS; exports.trialLengthLabel = trialLengthLabel; exports.trialLabels = trialLabels; exports.isOwnClick = isOwnClick; exports.SEO_TITLE_MAX_LENGTH = SEO_TITLE_MAX_LENGTH; exports.SEO_DESCRIPTION_MAX_LENGTH = SEO_DESCRIPTION_MAX_LENGTH; exports.BRAND_MARK_SVGS = BRAND_MARK_SVGS; exports.brandMarkDataUri = brandMarkDataUri; exports.OS_PLATFORMS = OS_PLATFORMS; exports.DEFAULT_OS_PLATFORM = DEFAULT_OS_PLATFORM; exports.isValidEmailDomain = isValidEmailDomain; exports.validateEmailDomain = validateEmailDomain; exports.validateEmailDomainList = validateEmailDomainList; exports.cleanEmailDomain = cleanEmailDomain; exports.getConfidenceColorClass = getConfidenceColorClass; exports.getConfidenceLevel = getConfidenceLevel; exports.getConfidenceBorderClass = getConfidenceBorderClass; exports.getConfidenceTextClass = getConfidenceTextClass; exports.getConfidenceBgClass = getConfidenceBgClass; exports.getConfidenceLabel = getConfidenceLabel; exports.DEV_SECTION_PARAM_KEYS = DEV_SECTION_PARAM_KEYS; exports.devSectionAnchorId = devSectionAnchorId; exports.TICKET_OPEN_PARAM = TICKET_OPEN_PARAM; exports.buildTicketOpenHref = buildTicketOpenHref; exports.ToolTypeValues = ToolTypeValues; exports.toolLabels = toolLabels; exports.normalizeToolType = normalizeToolType; exports.normalizeToolTypeWithFallback = normalizeToolTypeWithFallback; exports.toToolLabel = toToolLabel; exports.isValidToolType = isValidToolType; exports.getToolTypeAliases = getToolTypeAliases; exports.getToolLabel = getToolLabel; exports.ShellTypeValues = ShellTypeValues; exports.SHELL_TYPES = SHELL_TYPES; exports.shellLabels = shellLabels; exports.getShellLabel = getShellLabel; exports.getShellIcon = getShellIcon; exports.BITE_ID_RE = BITE_ID_RE; exports.generateBiteId = generateBiteId; exports.ensureBiteIds = ensureBiteIds; exports.matchBiteElement = matchBiteElement; exports.OSTypeValues = OSTypeValues; exports.OS_TYPES = OS_TYPES; exports.osLabels = osLabels; exports.normalizeOSType = normalizeOSType; exports.getOSLabel = getOSLabel; exports.getOSIcon = getOSIcon; exports.getOSTypeDefinition = getOSTypeDefinition; exports.getOSPlatformId = getOSPlatformId; exports.isOSPlatform = isOSPlatform; exports.DOWNLOAD_PAGE_PATH = DOWNLOAD_PAGE_PATH; exports.resolveMobileStoreUrl = resolveMobileStoreUrl; exports.getCountryPhoneData = getCountryPhoneData; exports.getCountryByCode = getCountryByCode; exports.getCountryByName = getCountryByName; exports.getFlagFromCountryName = getFlagFromCountryName; exports.validatePhoneNumber = validatePhoneNumber; exports.formatPhoneE164 = formatPhoneE164; exports.COMPLIANCE_STANDARDS = COMPLIANCE_STANDARDS; exports.complianceStandardForName = complianceStandardForName; exports.GENERIC_EMAIL_DOMAINS = GENERIC_EMAIL_DOMAINS; exports.extractDomainFromEmail = extractDomainFromEmail; exports.normalizeDomain = normalizeDomain; exports.isGenericDomain = isGenericDomain; exports.hasGenericEmailDomain = hasGenericEmailDomain; exports.isGenericWebsiteDomain = isGenericWebsiteDomain; exports.isDismissedCookieValue = isDismissedCookieValue; exports.readDismissCookie = readDismissCookie; exports.writeDismissCookie = writeDismissCookie; exports.clearDismissCookie = clearDismissCookie; exports.announcementDismissCookieName = announcementDismissCookieName; exports.dismissAnnouncement = dismissAnnouncement; exports.isAnnouncementDismissed = isAnnouncementDismissed; exports.clearAnnouncementDismissals = clearAnnouncementDismissals; exports.clearLegacyAnnouncementCache = clearLegacyAnnouncementCache; exports.isAnnouncementOnSurface = isAnnouncementOnSurface; exports.WALKTHROUGH_VIDEO_DISMISS_KEY = WALKTHROUGH_VIDEO_DISMISS_KEY; exports.walkthroughDismissCookieName = walkthroughDismissCookieName; exports.isWalkthroughDismissed = isWalkthroughDismissed; exports.dismissWalkthrough = dismissWalkthrough; exports.clearWalkthroughDismissal = clearWalkthroughDismissal; exports.WALKTHROUGH_OPEN_QUERY_PARAM = WALKTHROUGH_OPEN_QUERY_PARAM; exports.withWalkthroughOpenParam = withWalkthroughOpenParam; exports.createSseSubscription = createSseSubscription; exports.readLeadingDecisionFrame = readLeadingDecisionFrame; exports.releaseTypeOptions = releaseTypeOptions; exports.releaseStatusOptions = releaseStatusOptions; exports.changelogLabels = changelogLabels; exports.SEMVER_REGEX = SEMVER_REGEX; exports.ROADMAP_STATUS_OPTIONS = ROADMAP_STATUS_OPTIONS; exports.DELIVERY_TASK_TYPE_OPTIONS = DELIVERY_TASK_TYPE_OPTIONS; exports.TICKET_STATUS_OPTIONS = TICKET_STATUS_OPTIONS; exports.OPENFRAME_DEV_SECTIONS = OPENFRAME_DEV_SECTIONS; exports.openInNewTab = openInNewTab; exports.DEFAULT_CONTENT_SUFFIXES = DEFAULT_CONTENT_SUFFIXES; exports.makeComposeContentUrl = makeComposeContentUrl; exports.buildDefaultHref = buildDefaultHref; exports.resolveContentHref = resolveContentHref; exports.LEGAL_DOCUMENT_TYPES = LEGAL_DOCUMENT_TYPES; exports.isLegalDocumentType = isLegalDocumentType; exports.DEFAULT_FOLDER_INDEX_FILE = DEFAULT_FOLDER_INDEX_FILE; exports.stripFolderIndexFromPath = stripFolderIndexFromPath; exports.findDocNodeByPath = findDocNodeByPath; exports.getDocAncestorNodeIds = getDocAncestorNodeIds; exports.resolveContentFetchPath = resolveContentFetchPath; exports.getInitialExpandedNodeIds = getInitialExpandedNodeIds; exports.getDocSourceDefaultPath = getDocSourceDefaultPath; exports.toDocSlug = toDocSlug; exports.pathToNodeId = pathToNodeId; exports.normalizeDocPath = normalizeDocPath; exports.formatDocName = formatDocName; exports.sortTreeChildren = sortTreeChildren; exports.buildDocumentTree = buildDocumentTree; exports.extractSections = extractSections; exports.SCHEDULING_SLUG_SHAPE = SCHEDULING_SLUG_SHAPE; exports.MAX_MONTH_OFFSET = MAX_MONTH_OFFSET; exports.normalizeSchedulingSlug = normalizeSchedulingSlug; exports.isValidSchedulingSlug = isValidSchedulingSlug; exports.parseSchedulingLinkName = parseSchedulingLinkName; exports.isListedSchedulingName = isListedSchedulingName; exports.schedulingAudienceKey = schedulingAudienceKey; exports.SECTION_HERO_ICON_CLASS = SECTION_HERO_ICON_CLASS; exports.FIRST_TOUCH_ATTRIBUTION_KEY = FIRST_TOUCH_ATTRIBUTION_KEY; exports.sanitizeLandingUrl = sanitizeLandingUrl; exports.parseAttributionFromUrl = parseAttributionFromUrl; exports.captureFirstTouchAttribution = captureFirstTouchAttribution; exports.getFirstTouchAttribution = getFirstTouchAttribution; exports.withFirstTouchAttribution = withFirstTouchAttribution; exports.clearFirstTouchAttribution = clearFirstTouchAttribution; exports.ODS_SPACING_TOKENS = ODS_SPACING_TOKENS; exports.ODS_SPACING_TOKEN_PATTERN = ODS_SPACING_TOKEN_PATTERN; exports.ODS_SPACING_PROPS = ODS_SPACING_PROPS; exports.TAILWIND_STEP_TO_ODS_TOKEN = TAILWIND_STEP_TO_ODS_TOKEN; exports.CSV_CONTENT_TYPE = CSV_CONTENT_TYPE; exports.csvEscape = csvEscape; exports.toCsv = toCsv; exports.copyrightLine = copyrightLine; exports.isValidPathPattern = isValidPathPattern; exports.matchesPathPattern = matchesPathPattern; exports.pathMatchesAny = pathMatchesAny; exports.formatDemoClock = formatDemoClock; exports.demoClockTimes = demoClockTimes; exports.openAskAi = openAskAi; exports.MingoAiButton = MingoAiButton; exports.AskPrompts = AskPrompts; exports.AskCard = AskCard; exports.ASK_PROMPTS_DEFAULT_COUNT = ASK_PROMPTS_DEFAULT_COUNT; exports.buildAskPromptsUrl = buildAskPromptsUrl; exports.assistantAvailable = assistantAvailable; exports.useAskPrompts = useAskPrompts; exports.useAssistantOpen = useAssistantOpen; exports.useAskSurface = useAskSurface; exports.AssistantAskPrompts = AssistantAskPrompts; exports.QuickActionMarquee = QuickActionMarquee; exports.ChatTicketItemSkeleton = ChatTicketItemSkeleton; exports.ChatTicketItem = ChatTicketItem; exports.ChatTicketList = ChatTicketList; exports.DialogListItem = DialogListItem; exports.ChatSidebar = ChatSidebar; exports.ChatTopNavigation = ChatTopNavigation; exports.OnboardingCarousel = OnboardingCarousel; exports.ADMIN_CONTENT_CARD_GRID_CLASS = ADMIN_CONTENT_CARD_GRID_CLASS; exports.AdminContentCardGridSkeleton = AdminContentCardGridSkeleton; exports.AdminContentCardGrid = AdminContentCardGrid; exports.SlackMessageCard = SlackMessageCard; exports.SlackMessageCardSkeleton = SlackMessageCardSkeleton; exports.HubspotTicketCard = HubspotTicketCard; exports.HubspotTicketCardSkeleton = HubspotTicketCardSkeleton; exports.DataRoomDocCard = DataRoomDocCard; exports.DataRoomDocCardSkeleton = DataRoomDocCardSkeleton; exports.CampaignCardAdmin = CampaignCardAdmin; exports.CampaignCardAdminSkeleton = CampaignCardAdminSkeleton; exports.GenericEntityCard = GenericEntityCard; exports.GenericEntityCardSkeleton = GenericEntityCardSkeleton; exports.NETWORK_CONFIG = NETWORK_CONFIG; exports.useScriptedStream = useScriptedStream; exports.RESYNC_AFTER_HIDDEN_MS = RESYNC_AFTER_HIDDEN_MS; exports.useJetStreamDialogSubscription = useJetStreamDialogSubscription; exports.useSSE = useSSE; exports.useChat = useChat; exports.SYNTHETIC_REALTIME_ID_PREFIXES = SYNTHETIC_REALTIME_ID_PREFIXES; exports.flattenMessagePagesChronological = flattenMessagePagesChronological; exports.maxPersistedStreamSeq = maxPersistedStreamSeq; exports.mergeHistoryWithRealtime = mergeHistoryWithRealtime; exports.computeHistoryPrepend = computeHistoryPrepend; exports.CHIP_ACTION_BUTTON_CLASS = CHIP_ACTION_BUTTON_CLASS; exports.normalizeHistoricalMessageData = normalizeHistoricalMessageData; exports.isHistoricalUserTurn = isHistoricalUserTurn; exports.buildStreamFrames = buildStreamFrames; exports.ProxyCredentialsPanel = ProxyCredentialsPanel; exports.EmbeddableChat = EmbeddableChat;
5563
+
5564
+ exports.InfoHint = InfoHint; exports.Field = Field; exports.HUBSPOT_DO_NOT_COLLECT_FORM_PROPS = HUBSPOT_DO_NOT_COLLECT_FORM_PROPS; exports.FullscreenSwitchController = FullscreenSwitchController; exports.SOCIAL_PLATFORM_ALIASES = SOCIAL_PLATFORM_ALIASES; exports.normalizeSocialPlatform = normalizeSocialPlatform; exports.hostMatches = hostMatches; exports.SOCIAL_PLATFORM_ALT_HOSTS = SOCIAL_PLATFORM_ALT_HOSTS; exports.socialPlatformHosts = socialPlatformHosts; exports.classifySocialHost = classifySocialHost; exports.pickSocialLink = pickSocialLink; exports.afterPageLoad = afterPageLoad; exports.ChatMessageRow = ChatMessageRow; exports.ChatMessageRowSkeleton = ChatMessageRowSkeleton; exports.TURN_ROW_CLASS = TURN_ROW_CLASS; exports.TURN_BODY_CLASS = TURN_BODY_CLASS; exports.ChatTurn = ChatTurn; exports.ChatTurnNameSkeleton = ChatTurnNameSkeleton; exports.ChatTurnSkeleton = ChatTurnSkeleton; exports.AI_PROVIDERS = AI_PROVIDERS; exports.aiProvider = aiProvider; exports.TOKEN_RATE_EMPTY = TOKEN_RATE_EMPTY; exports.formatTokenRate = formatTokenRate; exports.tokenCost = tokenCost; exports.formatTokenAmount = formatTokenAmount; exports.tokensForBalance = tokensForBalance; exports.tokenRateProviderLabel = tokenRateProviderLabel; exports.groupTokenRatesByProvider = groupTokenRatesByProvider; exports.TRIAL_TERMS = TRIAL_TERMS; exports.trialLengthLabel = trialLengthLabel; exports.trialLabels = trialLabels; exports.isOwnClick = isOwnClick; exports.SEO_TITLE_MAX_LENGTH = SEO_TITLE_MAX_LENGTH; exports.SEO_DESCRIPTION_MAX_LENGTH = SEO_DESCRIPTION_MAX_LENGTH; exports.BRAND_MARK_SVGS = BRAND_MARK_SVGS; exports.brandMarkDataUri = brandMarkDataUri; exports.OS_PLATFORMS = OS_PLATFORMS; exports.DEFAULT_OS_PLATFORM = DEFAULT_OS_PLATFORM; exports.isValidEmailDomain = isValidEmailDomain; exports.validateEmailDomain = validateEmailDomain; exports.validateEmailDomainList = validateEmailDomainList; exports.cleanEmailDomain = cleanEmailDomain; exports.getConfidenceColorClass = getConfidenceColorClass; exports.getConfidenceLevel = getConfidenceLevel; exports.getConfidenceBorderClass = getConfidenceBorderClass; exports.getConfidenceTextClass = getConfidenceTextClass; exports.getConfidenceBgClass = getConfidenceBgClass; exports.getConfidenceLabel = getConfidenceLabel; exports.DEV_SECTION_PARAM_KEYS = DEV_SECTION_PARAM_KEYS; exports.devSectionAnchorId = devSectionAnchorId; exports.TICKET_OPEN_PARAM = TICKET_OPEN_PARAM; exports.buildTicketOpenHref = buildTicketOpenHref; exports.ToolTypeValues = ToolTypeValues; exports.toolLabels = toolLabels; exports.normalizeToolType = normalizeToolType; exports.normalizeToolTypeWithFallback = normalizeToolTypeWithFallback; exports.toToolLabel = toToolLabel; exports.isValidToolType = isValidToolType; exports.getToolTypeAliases = getToolTypeAliases; exports.getToolLabel = getToolLabel; exports.ShellTypeValues = ShellTypeValues; exports.SHELL_TYPES = SHELL_TYPES; exports.shellLabels = shellLabels; exports.getShellLabel = getShellLabel; exports.getShellIcon = getShellIcon; exports.BITE_ID_RE = BITE_ID_RE; exports.generateBiteId = generateBiteId; exports.ensureBiteIds = ensureBiteIds; exports.matchBiteElement = matchBiteElement; exports.OSTypeValues = OSTypeValues; exports.OS_TYPES = OS_TYPES; exports.osLabels = osLabels; exports.normalizeOSType = normalizeOSType; exports.getOSLabel = getOSLabel; exports.getOSIcon = getOSIcon; exports.getOSTypeDefinition = getOSTypeDefinition; exports.getOSPlatformId = getOSPlatformId; exports.isOSPlatform = isOSPlatform; exports.DOWNLOAD_PAGE_PATH = DOWNLOAD_PAGE_PATH; exports.resolveMobileStoreUrl = resolveMobileStoreUrl; exports.getCountryPhoneData = getCountryPhoneData; exports.getCountryByCode = getCountryByCode; exports.getCountryByName = getCountryByName; exports.getFlagFromCountryName = getFlagFromCountryName; exports.validatePhoneNumber = validatePhoneNumber; exports.formatPhoneE164 = formatPhoneE164; exports.COMPLIANCE_STANDARDS = COMPLIANCE_STANDARDS; exports.complianceStandardForName = complianceStandardForName; exports.GENERIC_EMAIL_DOMAINS = GENERIC_EMAIL_DOMAINS; exports.extractDomainFromEmail = extractDomainFromEmail; exports.normalizeDomain = normalizeDomain; exports.isGenericDomain = isGenericDomain; exports.hasGenericEmailDomain = hasGenericEmailDomain; exports.isGenericWebsiteDomain = isGenericWebsiteDomain; exports.isDismissedCookieValue = isDismissedCookieValue; exports.readDismissCookie = readDismissCookie; exports.writeDismissCookie = writeDismissCookie; exports.clearDismissCookie = clearDismissCookie; exports.announcementDismissCookieName = announcementDismissCookieName; exports.dismissAnnouncement = dismissAnnouncement; exports.isAnnouncementDismissed = isAnnouncementDismissed; exports.clearAnnouncementDismissals = clearAnnouncementDismissals; exports.clearLegacyAnnouncementCache = clearLegacyAnnouncementCache; exports.isAnnouncementOnSurface = isAnnouncementOnSurface; exports.WALKTHROUGH_VIDEO_DISMISS_KEY = WALKTHROUGH_VIDEO_DISMISS_KEY; exports.walkthroughDismissCookieName = walkthroughDismissCookieName; exports.isWalkthroughDismissed = isWalkthroughDismissed; exports.dismissWalkthrough = dismissWalkthrough; exports.clearWalkthroughDismissal = clearWalkthroughDismissal; exports.WALKTHROUGH_OPEN_QUERY_PARAM = WALKTHROUGH_OPEN_QUERY_PARAM; exports.withWalkthroughOpenParam = withWalkthroughOpenParam; exports.createSseSubscription = createSseSubscription; exports.readLeadingDecisionFrame = readLeadingDecisionFrame; exports.releaseTypeOptions = releaseTypeOptions; exports.releaseStatusOptions = releaseStatusOptions; exports.changelogLabels = changelogLabels; exports.SEMVER_REGEX = SEMVER_REGEX; exports.ROADMAP_STATUS_OPTIONS = ROADMAP_STATUS_OPTIONS; exports.DELIVERY_TASK_TYPE_OPTIONS = DELIVERY_TASK_TYPE_OPTIONS; exports.TICKET_STATUS_OPTIONS = TICKET_STATUS_OPTIONS; exports.OPENFRAME_DEV_SECTIONS = OPENFRAME_DEV_SECTIONS; exports.openInNewTab = openInNewTab; exports.DEFAULT_CONTENT_SUFFIXES = DEFAULT_CONTENT_SUFFIXES; exports.makeComposeContentUrl = makeComposeContentUrl; exports.buildDefaultHref = buildDefaultHref; exports.resolveContentHref = resolveContentHref; exports.LEGAL_DOCUMENT_TYPES = LEGAL_DOCUMENT_TYPES; exports.isLegalDocumentType = isLegalDocumentType; exports.DEFAULT_FOLDER_INDEX_FILE = DEFAULT_FOLDER_INDEX_FILE; exports.stripFolderIndexFromPath = stripFolderIndexFromPath; exports.findDocNodeByPath = findDocNodeByPath; exports.getDocAncestorNodeIds = getDocAncestorNodeIds; exports.resolveContentFetchPath = resolveContentFetchPath; exports.getInitialExpandedNodeIds = getInitialExpandedNodeIds; exports.getDocSourceDefaultPath = getDocSourceDefaultPath; exports.toDocSlug = toDocSlug; exports.pathToNodeId = pathToNodeId; exports.normalizeDocPath = normalizeDocPath; exports.formatDocName = formatDocName; exports.sortTreeChildren = sortTreeChildren; exports.buildDocumentTree = buildDocumentTree; exports.extractSections = extractSections; exports.SCHEDULING_SLUG_SHAPE = SCHEDULING_SLUG_SHAPE; exports.MAX_MONTH_OFFSET = MAX_MONTH_OFFSET; exports.normalizeSchedulingSlug = normalizeSchedulingSlug; exports.isValidSchedulingSlug = isValidSchedulingSlug; exports.parseSchedulingLinkName = parseSchedulingLinkName; exports.isListedSchedulingName = isListedSchedulingName; exports.schedulingAudienceKey = schedulingAudienceKey; exports.SECTION_HERO_ICON_CLASS = SECTION_HERO_ICON_CLASS; exports.FIRST_TOUCH_ATTRIBUTION_KEY = FIRST_TOUCH_ATTRIBUTION_KEY; exports.sanitizeLandingUrl = sanitizeLandingUrl; exports.parseAttributionFromUrl = parseAttributionFromUrl; exports.captureFirstTouchAttribution = captureFirstTouchAttribution; exports.getFirstTouchAttribution = getFirstTouchAttribution; exports.withFirstTouchAttribution = withFirstTouchAttribution; exports.clearFirstTouchAttribution = clearFirstTouchAttribution; exports.ODS_SPACING_TOKENS = ODS_SPACING_TOKENS; exports.ODS_SPACING_TOKEN_PATTERN = ODS_SPACING_TOKEN_PATTERN; exports.ODS_SPACING_PROPS = ODS_SPACING_PROPS; exports.TAILWIND_STEP_TO_ODS_TOKEN = TAILWIND_STEP_TO_ODS_TOKEN; exports.CSV_CONTENT_TYPE = CSV_CONTENT_TYPE; exports.csvEscape = csvEscape; exports.toCsv = toCsv; exports.copyrightLine = copyrightLine; exports.isValidPathPattern = isValidPathPattern; exports.matchesPathPattern = matchesPathPattern; exports.pathMatchesAny = pathMatchesAny; exports.formatDemoClock = formatDemoClock; exports.demoClockTimes = demoClockTimes; exports.openAskAi = openAskAi; exports.MingoAiButton = MingoAiButton; exports.AskPrompts = AskPrompts; exports.AskCard = AskCard; exports.ASK_PROMPTS_DEFAULT_COUNT = ASK_PROMPTS_DEFAULT_COUNT; exports.buildAskPromptsUrl = buildAskPromptsUrl; exports.assistantAvailable = assistantAvailable; exports.useAskPrompts = useAskPrompts; exports.useAssistantOpen = useAssistantOpen; exports.useAskSurface = useAskSurface; exports.AssistantAskPrompts = AssistantAskPrompts; exports.QuickActionMarquee = QuickActionMarquee; exports.ChatTicketItemSkeleton = ChatTicketItemSkeleton; exports.ChatTicketItem = ChatTicketItem; exports.ChatTicketList = ChatTicketList; exports.DialogListItem = DialogListItem; exports.ChatSidebar = ChatSidebar; exports.ChatTopNavigation = ChatTopNavigation; exports.OnboardingCarousel = OnboardingCarousel; exports.ADMIN_CONTENT_CARD_GRID_CLASS = ADMIN_CONTENT_CARD_GRID_CLASS; exports.AdminContentCardGridSkeleton = AdminContentCardGridSkeleton; exports.AdminContentCardGrid = AdminContentCardGrid; exports.SlackMessageCard = SlackMessageCard; exports.SlackMessageCardSkeleton = SlackMessageCardSkeleton; exports.HubspotTicketCard = HubspotTicketCard; exports.HubspotTicketCardSkeleton = HubspotTicketCardSkeleton; exports.DataRoomDocCard = DataRoomDocCard; exports.DataRoomDocCardSkeleton = DataRoomDocCardSkeleton; exports.CampaignCardAdmin = CampaignCardAdmin; exports.CampaignCardAdminSkeleton = CampaignCardAdminSkeleton; exports.GenericEntityCard = GenericEntityCard; exports.GenericEntityCardSkeleton = GenericEntityCardSkeleton; exports.NETWORK_CONFIG = NETWORK_CONFIG; exports.useScriptedStream = useScriptedStream; exports.RESYNC_AFTER_HIDDEN_MS = RESYNC_AFTER_HIDDEN_MS; exports.useJetStreamDialogSubscription = useJetStreamDialogSubscription; exports.useSSE = useSSE; exports.useChat = useChat; exports.SYNTHETIC_REALTIME_ID_PREFIXES = SYNTHETIC_REALTIME_ID_PREFIXES; exports.flattenMessagePagesChronological = flattenMessagePagesChronological; exports.maxPersistedStreamSeq = maxPersistedStreamSeq; exports.mergeHistoryWithRealtime = mergeHistoryWithRealtime; exports.computeHistoryPrepend = computeHistoryPrepend; exports.CHIP_ACTION_BUTTON_CLASS = CHIP_ACTION_BUTTON_CLASS; exports.normalizeHistoricalMessageData = normalizeHistoricalMessageData; exports.isHistoricalUserTurn = isHistoricalUserTurn; exports.buildStreamFrames = buildStreamFrames; exports.ProxyCredentialsPanel = ProxyCredentialsPanel; exports.EmbeddableChat = EmbeddableChat;