@flamingo-stack/openframe-frontend-core 0.0.841 → 0.0.843

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 (104) hide show
  1. package/dist/build/export-map.json +1 -1
  2. package/dist/{case-study-card-TK7ZCNLM.cjs → case-study-card-VN3JBNF5.cjs} +3 -3
  3. package/dist/{chunk-RSJYTQEA.cjs → chunk-23DVVS4I.cjs} +104 -104
  4. package/dist/{chunk-IELPVUPR.cjs → chunk-2H5D2PUC.cjs} +23 -23
  5. package/dist/{chunk-275AQ6LC.cjs → chunk-2JZFXGHE.cjs} +4 -4
  6. package/dist/{chunk-DYDQLS2R.cjs → chunk-2WGA2IRN.cjs} +370 -298
  7. package/dist/{chunk-VBH2RCFM.cjs → chunk-3IXW2EKO.cjs} +78 -78
  8. package/dist/{chunk-DGY5KEPY.cjs → chunk-4ASUUB3A.cjs} +83 -83
  9. package/dist/{chunk-WCOSGDGA.cjs → chunk-4R4HAFXI.cjs} +2 -2
  10. package/dist/{chunk-INBFKUZA.cjs → chunk-5CPEMPNP.cjs} +15 -15
  11. package/dist/{chunk-CCRXBFNL.cjs → chunk-6HFTSVVC.cjs} +8 -8
  12. package/dist/{chunk-FHI4I3TQ.cjs → chunk-6M764K5Z.cjs} +12 -12
  13. package/dist/{chunk-SOCCHWDK.cjs → chunk-BHOVF4KP.cjs} +2 -2
  14. package/dist/{chunk-WVNUCKB7.cjs → chunk-CNMXP77I.cjs} +4 -4
  15. package/dist/{chunk-HXTZZE3R.cjs → chunk-DUB2UVYS.cjs} +61 -72
  16. package/dist/{chunk-TD4CC4KV.cjs → chunk-EUEPGHY4.cjs} +6 -6
  17. package/dist/{chunk-Q6WUHYOG.cjs → chunk-HLMA6CDT.cjs} +85 -85
  18. package/dist/{chunk-ZAO5SYBJ.cjs → chunk-MWQOM2EI.cjs} +4 -4
  19. package/dist/{chunk-WI7EXAZT.cjs → chunk-NMLNZCK2.cjs} +2 -2
  20. package/dist/{chunk-GUKFMMDZ.cjs → chunk-OGINOWMT.cjs} +3 -3
  21. package/dist/{chunk-APNONOHY.cjs → chunk-PZNWIJRZ.cjs} +13 -10
  22. package/dist/{chunk-GMK4JGC2.cjs → chunk-QBZ73IK7.cjs} +44 -44
  23. package/dist/{chunk-Z35PL3UR.cjs → chunk-QJRZVIQP.cjs} +34 -34
  24. package/dist/{chunk-SMZWXY4X.cjs → chunk-QKZQ5Q6E.cjs} +6 -1
  25. package/dist/{chunk-MYAPG3FQ.cjs → chunk-QPJUQ5YU.cjs} +21 -21
  26. package/dist/{chunk-JUEAZCD6.cjs → chunk-RSZZTB5T.cjs} +54 -54
  27. package/dist/{chunk-7WKRMJI6.cjs → chunk-SC36S7DJ.cjs} +2 -2
  28. package/dist/{chunk-AT6D7BAZ.cjs → chunk-SOQVKIWM.cjs} +3 -3
  29. package/dist/{chunk-UZPYYHF5.cjs → chunk-SOTTMZ6U.cjs} +19 -19
  30. package/dist/{chunk-E7M54JWW.cjs → chunk-SSSI2RBV.cjs} +14 -14
  31. package/dist/{chunk-EV6BPF47.cjs → chunk-WPMJUYW3.cjs} +143 -143
  32. package/dist/{chunk-FRL2ZN4O.cjs → chunk-XCVH5BCZ.cjs} +6 -6
  33. package/dist/{chunk-JM2XA7VY.cjs → chunk-ZXEWBJUE.cjs} +15 -15
  34. package/dist/{cloud-tenants-PV63RZ73.cjs → cloud-tenants-VPYROTKH.cjs} +11 -11
  35. package/dist/components/case-studies/index.cjs +26 -26
  36. package/dist/components/chat/index.cjs +8 -8
  37. package/dist/components/contact/index.cjs +12 -12
  38. package/dist/components/docs/index.cjs +15 -15
  39. package/dist/components/embeds/index.cjs +12 -12
  40. package/dist/components/faq/index.cjs +13 -13
  41. package/dist/components/features/devices/device-unread-indicator.d.ts +6 -0
  42. package/dist/components/features/devices/device-unread-indicator.d.ts.map +1 -0
  43. package/dist/components/features/devices/device-unread-indicator.js +12 -0
  44. package/dist/components/features/devices/devices-grid.d.ts.map +1 -1
  45. package/dist/components/features/devices/devices-grid.js +5 -1
  46. package/dist/components/features/devices/devices-table-columns.d.ts.map +1 -1
  47. package/dist/components/features/devices/devices-table-columns.js +3 -1
  48. package/dist/components/features/devices/devices-view-config.d.ts +6 -4
  49. package/dist/components/features/devices/devices-view-config.d.ts.map +1 -1
  50. package/dist/components/features/devices/index.d.ts +1 -0
  51. package/dist/components/features/devices/index.d.ts.map +1 -1
  52. package/dist/components/features/devices/index.js +2 -0
  53. package/dist/components/features/devices/types.d.ts +2 -0
  54. package/dist/components/features/devices/types.d.ts.map +1 -1
  55. package/dist/components/features/index.cjs +13 -11
  56. package/dist/components/help-center-pages/index.cjs +105 -105
  57. package/dist/components/index.cjs +73 -65
  58. package/dist/components/meeting-scheduler/index.cjs +50 -50
  59. package/dist/components/navigation/count-pill.d.ts +10 -0
  60. package/dist/components/navigation/count-pill.d.ts.map +1 -0
  61. package/dist/components/navigation/count-pill.js +18 -0
  62. package/dist/components/navigation/index.cjs +20 -14
  63. package/dist/components/navigation/index.d.ts +4 -0
  64. package/dist/components/navigation/index.d.ts.map +1 -1
  65. package/dist/components/navigation/index.js +5 -0
  66. package/dist/components/navigation/navigation-sidebar-grouped.d.ts.map +1 -1
  67. package/dist/components/navigation/navigation-sidebar-grouped.js +1 -12
  68. package/dist/components/navigation/unread-notifications-indicator.d.ts +19 -0
  69. package/dist/components/navigation/unread-notifications-indicator.d.ts.map +1 -0
  70. package/dist/components/navigation/unread-notifications-indicator.js +45 -0
  71. package/dist/components/onboarding-guides/index.cjs +14 -14
  72. package/dist/components/product-demo/fixtures/devices.d.ts.map +1 -1
  73. package/dist/components/product-demo/fixtures/devices.js +6 -1
  74. package/dist/components/product-demo/index.cjs +20 -20
  75. package/dist/components/related-content/index.cjs +7 -7
  76. package/dist/components/tickets/index.cjs +18 -18
  77. package/dist/components/ui/index.cjs +11 -11
  78. package/dist/{devices-VECG5JNC.cjs → devices-W76BAABE.cjs} +14 -14
  79. package/dist/{embeddable-chat-VRYAQQF6.cjs → embeddable-chat-C6DUH2JL.cjs} +78 -78
  80. package/dist/hooks/index.cjs +4 -4
  81. package/dist/index.cjs +23 -15
  82. package/dist/{knowledge-YJSDJIXT.cjs → knowledge-ILAIWOSY.cjs} +12 -12
  83. package/dist/{logs-42JG3NZ5.cjs → logs-VCPRFJGB.cjs} +18 -18
  84. package/dist/platform-domains.cjs +14 -10
  85. package/dist/platform-domains.d.ts +12 -7
  86. package/dist/platform-domains.d.ts.map +1 -1
  87. package/dist/platform-domains.js +14 -10
  88. package/dist/{policies-D4QNVJ26.cjs → policies-3BNAW4M5.cjs} +15 -15
  89. package/dist/{scripts-4VFYBXBE.cjs → scripts-VFFSJDYV.cjs} +16 -16
  90. package/dist/{software-update-OSDZQ5CP.cjs → software-update-VTBTLCZO.cjs} +16 -16
  91. package/dist/utils/index.cjs +13 -10
  92. package/package.json +1 -1
  93. package/src/components/features/devices/device-unread-indicator.tsx +14 -0
  94. package/src/components/features/devices/devices-grid.tsx +9 -1
  95. package/src/components/features/devices/devices-table-columns.tsx +3 -0
  96. package/src/components/features/devices/devices-view-config.tsx +6 -4
  97. package/src/components/features/devices/index.ts +1 -0
  98. package/src/components/features/devices/types.ts +2 -0
  99. package/src/components/navigation/count-pill.tsx +25 -0
  100. package/src/components/navigation/index.ts +4 -0
  101. package/src/components/navigation/navigation-sidebar-grouped.tsx +1 -14
  102. package/src/components/navigation/unread-notifications-indicator.tsx +69 -0
  103. package/src/components/product-demo/fixtures/devices.ts +7 -0
  104. package/src/platform-domains.ts +28 -20
@@ -5,12 +5,12 @@ var _chunkFDZOE5TLcjs = require('./chunk-FDZOE5TL.cjs');
5
5
 
6
6
 
7
7
 
8
- var _chunkDYDQLS2Rcjs = require('./chunk-DYDQLS2R.cjs');
8
+ var _chunk2WGA2IRNcjs = require('./chunk-2WGA2IRN.cjs');
9
9
 
10
10
  // src/components/product-demo/screens/devices-view.tsx
11
11
  var _jsxruntime = require('react/jsx-runtime');
12
12
  var DEVICES_SEARCH_QUERY = "Windows";
13
- var TOOLBAR = { ..._chunkDYDQLS2Rcjs.IDLE_DEVICES_TOOLBAR, searchValue: DEVICES_SEARCH_QUERY };
13
+ var TOOLBAR = { ..._chunk2WGA2IRNcjs.IDLE_DEVICES_TOOLBAR, searchValue: DEVICES_SEARCH_QUERY };
14
14
  var NO_HEADER = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, {});
15
15
  var HIDDEN_WHEN_COMPACT = ["organization"];
16
16
  var NO_DEVICES = [];
@@ -22,7 +22,7 @@ function DevicesScreenView({
22
22
  loading = false
23
23
  }) {
24
24
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-full bg-ods-bg", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
25
- _chunkDYDQLS2Rcjs.DevicesPanelView,
25
+ _chunk2WGA2IRNcjs.DevicesPanelView,
26
26
  {
27
27
  className: "p-[var(--spacing-system-l)]",
28
28
  headerSlot: NO_HEADER,
@@ -251,16 +251,7 @@ function getPlatformByHostname(hostname) {
251
251
  function isPreviewHost(hostname) {
252
252
  return hostname.endsWith(".vercel.app");
253
253
  }
254
- function getAllPlatformBaseDomains() {
255
- if (typeof window === "undefined") return [];
256
- const hostname = window.location.hostname;
257
- if (hostname === "localhost" || hostname === "127.0.0.1" || hostname.startsWith("127.")) {
258
- return [];
259
- }
260
- const previewEnv = process.env.VERCEL_ENV === "preview" || process.env.NEXT_PUBLIC_VERCEL_ENV === "preview" || isPreviewHost(hostname);
261
- if (previewEnv) {
262
- return [".vercel.app", "vercel.app"];
263
- }
254
+ function getPlatformBaseDomains() {
264
255
  const baseDomains = /* @__PURE__ */ new Set();
265
256
  for (const entry of PLATFORM_DOMAINS) {
266
257
  if (entry.pseudo) continue;
@@ -274,6 +265,18 @@ function getAllPlatformBaseDomains() {
274
265
  }
275
266
  return Array.from(baseDomains);
276
267
  }
268
+ function getAllPlatformBaseDomains() {
269
+ if (typeof window === "undefined") return [];
270
+ const hostname = window.location.hostname;
271
+ if (hostname === "localhost" || hostname === "127.0.0.1" || hostname.startsWith("127.")) {
272
+ return [];
273
+ }
274
+ const previewEnv = process.env.VERCEL_ENV === "preview" || process.env.NEXT_PUBLIC_VERCEL_ENV === "preview" || isPreviewHost(hostname);
275
+ if (previewEnv) {
276
+ return [".vercel.app", "vercel.app"];
277
+ }
278
+ return getPlatformBaseDomains();
279
+ }
277
280
  var _orderIdx = (k) => PLATFORM_DOMAINS.findIndex((e) => e.key === k);
278
281
  if (_orderIdx("flamingo") > _orderIdx("universal") || getPlatformByHostname("flamingo.cx") !== "flamingo" || getPlatformByHostname("hub.openframe.ai") !== "openframe") {
279
282
  console.error(
@@ -3,24 +3,24 @@
3
3
 
4
4
 
5
5
 
6
- var _chunkAT6D7BAZcjs = require('./chunk-AT6D7BAZ.cjs');
6
+ var _chunkSOQVKIWMcjs = require('./chunk-SOQVKIWM.cjs');
7
7
 
8
8
 
9
9
 
10
10
 
11
11
 
12
- var _chunkINBFKUZAcjs = require('./chunk-INBFKUZA.cjs');
12
+ var _chunk5CPEMPNPcjs = require('./chunk-5CPEMPNP.cjs');
13
13
 
14
14
 
15
15
 
16
- var _chunkFHI4I3TQcjs = require('./chunk-FHI4I3TQ.cjs');
16
+ var _chunk6M764K5Zcjs = require('./chunk-6M764K5Z.cjs');
17
17
 
18
18
 
19
19
 
20
20
 
21
21
 
22
22
 
23
- var _chunkDYDQLS2Rcjs = require('./chunk-DYDQLS2R.cjs');
23
+ var _chunk2WGA2IRNcjs = require('./chunk-2WGA2IRN.cjs');
24
24
 
25
25
 
26
26
  var _chunkWCK5T3UDcjs = require('./chunk-WCK5T3UD.cjs');
@@ -29,18 +29,18 @@ var _chunkWCK5T3UDcjs = require('./chunk-WCK5T3UD.cjs');
29
29
 
30
30
 
31
31
 
32
- var _chunkDGY5KEPYcjs = require('./chunk-DGY5KEPY.cjs');
32
+ var _chunk4ASUUB3Acjs = require('./chunk-4ASUUB3A.cjs');
33
33
 
34
34
 
35
35
 
36
36
 
37
37
 
38
- var _chunkEV6BPF47cjs = require('./chunk-EV6BPF47.cjs');
38
+ var _chunkWPMJUYW3cjs = require('./chunk-WPMJUYW3.cjs');
39
39
 
40
40
 
41
41
 
42
42
 
43
- var _chunkFRL2ZN4Ocjs = require('./chunk-FRL2ZN4O.cjs');
43
+ var _chunkXCVH5BCZcjs = require('./chunk-XCVH5BCZ.cjs');
44
44
 
45
45
 
46
46
  var _chunk7DNL734Scjs = require('./chunk-7DNL734S.cjs');
@@ -251,9 +251,9 @@ function useDocsResolveLink(sourceId, resolveLinkEndpoint) {
251
251
  function scrollToContent() {
252
252
  const article = document.querySelector("article");
253
253
  if (article) {
254
- _chunkFRL2ZN4Ocjs.scrollElementIntoView.call(void 0, article, { headerOffset: _chunkFRL2ZN4Ocjs.HUB_HEADER_OFFSET_PX });
254
+ _chunkXCVH5BCZcjs.scrollElementIntoView.call(void 0, article, { headerOffset: _chunkXCVH5BCZcjs.HUB_HEADER_OFFSET_PX });
255
255
  } else {
256
- _chunkFRL2ZN4Ocjs.scrollElementIntoView.call(void 0, document.documentElement);
256
+ _chunkXCVH5BCZcjs.scrollElementIntoView.call(void 0, document.documentElement);
257
257
  }
258
258
  }
259
259
  function findFirstDocPath(folder) {
@@ -354,13 +354,13 @@ function toDocContent(value, requestedPath) {
354
354
  function toDataSync(value) {
355
355
  if (!isRecord(value)) return void 0;
356
356
  const source = readString(value, "source");
357
- if (!_chunkDYDQLS2Rcjs.isDataSyncSource.call(void 0, source)) return void 0;
357
+ if (!_chunk2WGA2IRNcjs.isDataSyncSource.call(void 0, source)) return void 0;
358
358
  return { source, syncedAt: _nullishCoalesce(readString(value, "syncedAt"), () => ( null)) };
359
359
  }
360
360
  function useDocumentTree(config, initialPath) {
361
361
  const { structureEndpoint, contentEndpoint, baseRoute } = config;
362
- const folderIndexFile = _nullishCoalesce(config.folderIndexFile, () => ( _chunkDGY5KEPYcjs.DEFAULT_FOLDER_INDEX_FILE));
363
- const cleanInitialPath = _chunkDGY5KEPYcjs.stripFolderIndexFromPath.call(void 0, _optionalChain([initialPath, 'optionalAccess', _4 => _4.replace, 'call', _5 => _5(/\/$/, "")]) || "", folderIndexFile);
362
+ const folderIndexFile = _nullishCoalesce(config.folderIndexFile, () => ( _chunk4ASUUB3Acjs.DEFAULT_FOLDER_INDEX_FILE));
363
+ const cleanInitialPath = _chunk4ASUUB3Acjs.stripFolderIndexFromPath.call(void 0, _optionalChain([initialPath, 'optionalAccess', _4 => _4.replace, 'call', _5 => _5(/\/$/, "")]) || "", folderIndexFile);
364
364
  const [structure, setStructure] = _react.useState.call(void 0, []);
365
365
  const [selectedPath, setSelectedPath] = _react.useState.call(void 0, cleanInitialPath);
366
366
  const [content, setContent] = _react.useState.call(void 0, null);
@@ -386,12 +386,12 @@ function useDocumentTree(config, initialPath) {
386
386
  } else if (pathname.startsWith(`${normalizedBaseRoute}/`)) {
387
387
  pathFromUrl = pathname.substring(`${normalizedBaseRoute}/`.length);
388
388
  }
389
- pathFromUrl = _chunkDGY5KEPYcjs.stripFolderIndexFromPath.call(void 0, pathFromUrl, folderIndexFile);
389
+ pathFromUrl = _chunk4ASUUB3Acjs.stripFolderIndexFromPath.call(void 0, pathFromUrl, folderIndexFile);
390
390
  if (pathFromUrl !== selectedPathRef.current) {
391
391
  setSelectedPath(pathFromUrl);
392
392
  if (pathFromUrl) {
393
393
  const parentPath = pathFromUrl.includes("/") ? pathFromUrl.substring(0, pathFromUrl.lastIndexOf("/")) : pathFromUrl;
394
- setExpandedNodes(new Set(_chunkDGY5KEPYcjs.getDocAncestorNodeIds.call(void 0, parentPath)));
394
+ setExpandedNodes(new Set(_chunk4ASUUB3Acjs.getDocAncestorNodeIds.call(void 0, parentPath)));
395
395
  }
396
396
  setTimeout(() => {
397
397
  scrollToContent();
@@ -409,7 +409,7 @@ function useDocumentTree(config, initialPath) {
409
409
  setSelectedPath(cleanInitialPath);
410
410
  if (cleanInitialPath) {
411
411
  const parentPath = cleanInitialPath.includes("/") ? cleanInitialPath.substring(0, cleanInitialPath.lastIndexOf("/")) : cleanInitialPath;
412
- setExpandedNodes(new Set(_chunkDGY5KEPYcjs.getDocAncestorNodeIds.call(void 0, parentPath)));
412
+ setExpandedNodes(new Set(_chunk4ASUUB3Acjs.getDocAncestorNodeIds.call(void 0, parentPath)));
413
413
  }
414
414
  setExternalNavCount((n) => n + 1);
415
415
  }
@@ -434,7 +434,7 @@ function useDocumentTree(config, initialPath) {
434
434
  if (cleanInitialPath) {
435
435
  const pathForExpansion = cleanInitialPath.includes(".") ? cleanInitialPath.substring(0, cleanInitialPath.lastIndexOf("/")) : cleanInitialPath;
436
436
  if (pathForExpansion) {
437
- setExpandedNodes(new Set(_chunkDGY5KEPYcjs.getDocAncestorNodeIds.call(void 0, pathForExpansion)));
437
+ setExpandedNodes(new Set(_chunk4ASUUB3Acjs.getDocAncestorNodeIds.call(void 0, pathForExpansion)));
438
438
  }
439
439
  } else if (nodes.length > 0) {
440
440
  const hasRootReadme = nodes.some((node) => node.type === "file" && node.path === folderIndexFile);
@@ -474,7 +474,7 @@ function useDocumentTree(config, initialPath) {
474
474
  setContent(null);
475
475
  return;
476
476
  }
477
- const probe = _chunkDGY5KEPYcjs.findDocNodeByPath.call(void 0, _chunkDGY5KEPYcjs.stripFolderIndexFromPath.call(void 0, path, folderIndexFile), structure);
477
+ const probe = _chunk4ASUUB3Acjs.findDocNodeByPath.call(void 0, _chunk4ASUUB3Acjs.stripFolderIndexFromPath.call(void 0, path, folderIndexFile), structure);
478
478
  const probeIsNoReadmeFolder = !!probe && probe.type === "folder" && !probe.hasReadme;
479
479
  const preStructureFolderLike = structure.length === 0 && !path.endsWith(".md");
480
480
  if (probeIsNoReadmeFolder || preStructureFolderLike) {
@@ -533,7 +533,7 @@ function useDocumentTree(config, initialPath) {
533
533
  if (selectedPath === "") {
534
534
  pathToFetch = folderIndexFile;
535
535
  } else {
536
- const node = _chunkDGY5KEPYcjs.findDocNodeByPath.call(void 0, selectedPath, structure);
536
+ const node = _chunk4ASUUB3Acjs.findDocNodeByPath.call(void 0, selectedPath, structure);
537
537
  if (node && node.type === "folder" && !node.hasReadme) {
538
538
  const firstDocPath = findFirstDocPath(node);
539
539
  if (!firstDocPath) {
@@ -574,16 +574,16 @@ function useDocumentTree(config, initialPath) {
574
574
  if (node.type === "folder") {
575
575
  setExpandedNodes((prev) => {
576
576
  if (prev.has(node.id)) {
577
- const ancestorIds = _chunkDGY5KEPYcjs.getDocAncestorNodeIds.call(void 0, node.path);
577
+ const ancestorIds = _chunk4ASUUB3Acjs.getDocAncestorNodeIds.call(void 0, node.path);
578
578
  ancestorIds.pop();
579
579
  return new Set(ancestorIds);
580
580
  }
581
- return new Set(_chunkDGY5KEPYcjs.getDocAncestorNodeIds.call(void 0, node.path));
581
+ return new Set(_chunk4ASUUB3Acjs.getDocAncestorNodeIds.call(void 0, node.path));
582
582
  });
583
583
  } else {
584
584
  const lastSlash = node.path.lastIndexOf("/");
585
585
  if (lastSlash > 0) {
586
- setExpandedNodes(new Set(_chunkDGY5KEPYcjs.getDocAncestorNodeIds.call(void 0, node.path.substring(0, lastSlash))));
586
+ setExpandedNodes(new Set(_chunk4ASUUB3Acjs.getDocAncestorNodeIds.call(void 0, node.path.substring(0, lastSlash))));
587
587
  }
588
588
  }
589
589
  lastFetchedPath.current = null;
@@ -598,9 +598,9 @@ function useDocumentTree(config, initialPath) {
598
598
  const hashIndex = path.indexOf("#");
599
599
  const anchor = hashIndex !== -1 ? path.substring(hashIndex) : "";
600
600
  const cleanPath = path.replace(/\/$/, "").split("#")[0];
601
- const pathForSelection = anchor && _optionalChain([options, 'optionalAccess', _6 => _6.fromInternalLink]) && cleanPath === "" ? selectedPathRef.current : _chunkDGY5KEPYcjs.stripFolderIndexFromPath.call(void 0, cleanPath, folderIndexFile);
601
+ const pathForSelection = anchor && _optionalChain([options, 'optionalAccess', _6 => _6.fromInternalLink]) && cleanPath === "" ? selectedPathRef.current : _chunk4ASUUB3Acjs.stripFolderIndexFromPath.call(void 0, cleanPath, folderIndexFile);
602
602
  if (anchor && _optionalChain([options, 'optionalAccess', _7 => _7.fromInternalLink]) && pathForSelection === selectedPathRef.current) {
603
- _chunkFRL2ZN4Ocjs.navigateSamePageHash.call(void 0, anchor, { headerOffset: _chunkFRL2ZN4Ocjs.HUB_HEADER_OFFSET_PX });
603
+ _chunkXCVH5BCZcjs.navigateSamePageHash.call(void 0, anchor, { headerOffset: _chunkXCVH5BCZcjs.HUB_HEADER_OFFSET_PX });
604
604
  return;
605
605
  }
606
606
  const scrollAfterNav = () => {
@@ -608,7 +608,7 @@ function useDocumentTree(config, initialPath) {
608
608
  setTimeout(() => {
609
609
  const el = document.getElementById(anchor.substring(1));
610
610
  if (el) {
611
- _chunkFRL2ZN4Ocjs.scrollElementIntoView.call(void 0, el, { headerOffset: _chunkFRL2ZN4Ocjs.HUB_HEADER_OFFSET_PX });
611
+ _chunkXCVH5BCZcjs.scrollElementIntoView.call(void 0, el, { headerOffset: _chunkXCVH5BCZcjs.HUB_HEADER_OFFSET_PX });
612
612
  } else {
613
613
  scrollToContent();
614
614
  }
@@ -662,15 +662,15 @@ function useDocumentTree(config, initialPath) {
662
662
  return docNavigation.register({
663
663
  baseRoute: normalizedBaseRoute,
664
664
  findNodeByPath: (path) => {
665
- const clean = _chunkDGY5KEPYcjs.stripFolderIndexFromPath.call(void 0, path.replace(/\/$/, "").split("#")[0], folderIndexFile);
666
- return _nullishCoalesce(_chunkDGY5KEPYcjs.findDocNodeByPath.call(void 0, clean, structure), () => ( null));
665
+ const clean = _chunk4ASUUB3Acjs.stripFolderIndexFromPath.call(void 0, path.replace(/\/$/, "").split("#")[0], folderIndexFile);
666
+ return _nullishCoalesce(_chunk4ASUUB3Acjs.findDocNodeByPath.call(void 0, clean, structure), () => ( null));
667
667
  },
668
668
  selectNode
669
669
  });
670
670
  }, [docNavigation, normalizedBaseRoute, structure, selectNode, folderIndexFile]);
671
671
  const isEmptyFolder = _react.useMemo.call(void 0, () => {
672
672
  if (!selectedPath || structure.length === 0) return false;
673
- const node = _chunkDGY5KEPYcjs.findDocNodeByPath.call(void 0, selectedPath, structure);
673
+ const node = _chunk4ASUUB3Acjs.findDocNodeByPath.call(void 0, selectedPath, structure);
674
674
  return !!node && node.type === "folder" && !node.hasReadme && !findFirstDocPath(node);
675
675
  }, [selectedPath, structure]);
676
676
  return {
@@ -753,14 +753,14 @@ function DocViewerContent({
753
753
  },
754
754
  docPath
755
755
  );
756
- const { activeSection, handleSectionClick } = _chunkINBFKUZAcjs.useScrollSpy.call(void 0, _optionalChain([content, 'optionalAccess', _11 => _11.sections]));
756
+ const { activeSection, handleSectionClick } = _chunk5CPEMPNPcjs.useScrollSpy.call(void 0, _optionalChain([content, 'optionalAccess', _11 => _11.sections]));
757
757
  const docNav = useDocNavigation();
758
758
  const router = _chunk7DNL734Scjs.useRouter.call(void 0, );
759
759
  const backCfg = backButton === false ? null : {
760
760
  label: _nullishCoalesce(_optionalChain([backButton, 'optionalAccess', _12 => _12.label]), () => ( "Back to home")),
761
761
  onClick: () => router.push(_nullishCoalesce(_optionalChain([backButton, 'optionalAccess', _13 => _13.href]), () => ( "/")))
762
762
  };
763
- const docSearch = _chunkFHI4I3TQcjs.useDocSearch.call(void 0, {
763
+ const docSearch = _chunk6M764K5Zcjs.useDocSearch.call(void 0, {
764
764
  source: chatSource,
765
765
  baseRoute,
766
766
  searchEndpoint,
@@ -784,7 +784,7 @@ function DocViewerContent({
784
784
  onResolveLink: resolveLink
785
785
  });
786
786
  }, [content, renderContent, navigateToDoc, sourceId, resolveLink]);
787
- const selectedNodeDocType = selectedPath && structure.length > 0 ? _optionalChain([_chunkDGY5KEPYcjs.findDocNodeByPath.call(void 0, selectedPath, structure), 'optionalAccess', _14 => _14.documentType]) : void 0;
787
+ const selectedNodeDocType = selectedPath && structure.length > 0 ? _optionalChain([_chunk4ASUUB3Acjs.findDocNodeByPath.call(void 0, selectedPath, structure), 'optionalAccess', _14 => _14.documentType]) : void 0;
788
788
  const activeDocType = _nullishCoalesce(_optionalChain([content, 'optionalAccess', _15 => _15.documentType]), () => ( selectedNodeDocType));
789
789
  const isMarkdownContent = !activeDocType || activeDocType === "markdown";
790
790
  const showStickyNav = isMarkdownContent;
@@ -796,9 +796,9 @@ function DocViewerContent({
796
796
  const defaultEmptyText = structure.length > 0 ? "Select a document from the sidebar to view" : "No documents yet. Add content from the admin panel.";
797
797
  const resolvedEmptyText = emptyStateText || defaultEmptyText;
798
798
  const inner = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { style: { ...bgStyle, ...containerBgStyle }, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWCK5T3UDcjs.PageLayout, { title, subtitle, titleSize: "h1", titleWrap: true, backButton: _nullishCoalesce(backCfg, () => ( void 0)), children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col gap-10", children: [
799
- synced && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDYDQLS2Rcjs.DataSyncLine, { sync: _optionalChain([content, 'optionalAccess', _19 => _19.sync]), loading: !content && (isLoadingContent || isLoadingStructure) }),
799
+ synced && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2WGA2IRNcjs.DataSyncLine, { sync: _optionalChain([content, 'optionalAccess', _19 => _19.sync]), loading: !content && (isLoadingContent || isLoadingStructure) }),
800
800
  showAIChat && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
801
- _chunkFHI4I3TQcjs.DocSearchBar,
801
+ _chunk6M764K5Zcjs.DocSearchBar,
802
802
  {
803
803
  placeholder: `Search ${_optionalChain([sidebarLabel, 'optionalAccess', _20 => _20.toLowerCase, 'call', _21 => _21()]) || "documents"}...`,
804
804
  query: docSearch.query,
@@ -819,7 +819,7 @@ function DocViewerContent({
819
819
  !error && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-1 flex-col items-start gap-6 content-lg:flex-row content-lg:gap-10", children: [
820
820
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full content-lg:w-[320px] content-lg:shrink-0", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "content-lg:sticky content-lg:top-20", children: [
821
821
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PersistentMobileDropdown, { isLoading: false, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
822
- _chunkINBFKUZAcjs.MobileNavigationDropdown,
822
+ _chunk5CPEMPNPcjs.MobileNavigationDropdown,
823
823
  {
824
824
  nodes: structure,
825
825
  selectedPath,
@@ -833,7 +833,7 @@ function DocViewerContent({
833
833
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PersistentSidebar, { isLoading: false, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden content-lg:block", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
834
834
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "font-semibold text-ods-text-secondary text-h5", children: sidebarLabel }),
835
835
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
836
- _chunkINBFKUZAcjs.MultiLevelNavigation,
836
+ _chunk5CPEMPNPcjs.MultiLevelNavigation,
837
837
  {
838
838
  nodes: structure,
839
839
  selectedPath,
@@ -872,7 +872,7 @@ function DocViewerContent({
872
872
  showStickyNav && content && stickyNavSections.length > 0 && !isLoadingContent && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden content-lg:block", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "sticky top-24", children: [
873
873
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: ON_THIS_PAGE_HEADING_CLASS, children: ON_THIS_PAGE_LABEL }),
874
874
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
875
- _chunkINBFKUZAcjs.StickySectionNav,
875
+ _chunk5CPEMPNPcjs.StickySectionNav,
876
876
  {
877
877
  sections: stickyNavSections,
878
878
  activeSection,
@@ -887,7 +887,7 @@ function DocViewerContent({
887
887
  ) })
888
888
  ] })
889
889
  ] }) }) });
890
- return shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDYDQLS2Rcjs.PageShell, { contentClassName: `${bgClass} ${className}`, children: inner }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `page-shell-content ${bgClass} ${className}`.trim(), children: inner });
890
+ return shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2WGA2IRNcjs.PageShell, { contentClassName: `${bgClass} ${className}`, children: inner }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `page-shell-content ${bgClass} ${className}`.trim(), children: inner });
891
891
  }
892
892
 
893
893
  // src/components/docs/skeletons.tsx
@@ -903,14 +903,14 @@ var MARKDOWN_SKELETON_BLOCKS = [
903
903
  { kind: "p", lines: 3 },
904
904
  { kind: "p", lines: 4 }
905
905
  ];
906
- var MARKDOWN_SKELETON_H2_CLASS = _chunk63A4GZMBcjs.cn.call(void 0, _chunkEV6BPF47cjs.MARKDOWN_H2_CLASS, _chunkEV6BPF47cjs.TEXT_SIZE_PRESETS.default.h2);
907
- var MARKDOWN_SKELETON_P_CLASS = _chunk63A4GZMBcjs.cn.call(void 0, _chunkEV6BPF47cjs.MARKDOWN_PARAGRAPH_CLASS, _chunkEV6BPF47cjs.TEXT_SIZE_PRESETS.default.p);
906
+ var MARKDOWN_SKELETON_H2_CLASS = _chunk63A4GZMBcjs.cn.call(void 0, _chunkWPMJUYW3cjs.MARKDOWN_H2_CLASS, _chunkWPMJUYW3cjs.TEXT_SIZE_PRESETS.default.h2);
907
+ var MARKDOWN_SKELETON_P_CLASS = _chunk63A4GZMBcjs.cn.call(void 0, _chunkWPMJUYW3cjs.MARKDOWN_PARAGRAPH_CLASS, _chunkWPMJUYW3cjs.TEXT_SIZE_PRESETS.default.p);
908
908
  function MarkdownSkeleton({
909
909
  region = true
910
910
  } = {}) {
911
911
  return (
912
912
  // The renderer's root class, and its box (no margin of its own, like the rendered body): the document's first fold.
913
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2XCORRJVcjs.LoadingRegion, { label: "Loading the document", announce: region, className: _chunkEV6BPF47cjs.MARKDOWN_RENDERER_CLASS, children: MARKDOWN_SKELETON_BLOCKS.map(
913
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2XCORRJVcjs.LoadingRegion, { label: "Loading the document", announce: region, className: _chunkWPMJUYW3cjs.MARKDOWN_RENDERER_CLASS, children: MARKDOWN_SKELETON_BLOCKS.map(
914
914
  (block, i) => block.kind === "h2" ? (
915
915
  // biome-ignore lint/suspicious/noArrayIndexKey: skeleton blocks never reorder
916
916
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: MARKDOWN_SKELETON_H2_CLASS, "aria-hidden": true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk3TOWCFIKcjs.TextLineSkeleton, { type: "inherit", as: "span", className: "w-1/3" }) }, i)
@@ -959,7 +959,7 @@ function EmbedSkeleton({ documentType, region = true } = {}) {
959
959
  ] }),
960
960
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex w-full items-center gap-2 content-sm:w-auto", children: Array.from({ length: buttonCount }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk3TOWCFIKcjs.UnifiedSkeleton, { className: "h-10 w-full flex-1 rounded content-sm:w-32 content-sm:flex-initial" }, i)) })
961
961
  ] }),
962
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDYDQLS2Rcjs.EmbedLoadingSkeleton, { region: false })
962
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2WGA2IRNcjs.EmbedLoadingSkeleton, { region: false })
963
963
  ] });
964
964
  }
965
965
 
@@ -967,11 +967,11 @@ function EmbedSkeleton({ documentType, region = true } = {}) {
967
967
 
968
968
  var DEFAULT_TITLE = "Documents";
969
969
  var defaultFallbackRenderer = () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "py-16 text-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary", children: "Unsupported document type" }) });
970
- var defaultPdfRenderer = (content, handlers) => content.fileUrl ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkAT6D7BAZcjs.PdfViewer, { src: content.fileUrl, fileName: content.fileName }) : defaultFallbackRenderer(content, handlers);
971
- var defaultGoogleSheetRenderer = (content, handlers) => content.externalUrl ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkAT6D7BAZcjs.GoogleSheetsViewer, { externalUrl: content.externalUrl, fileName: content.fileName }) : defaultFallbackRenderer(content, handlers);
972
- var defaultFigmaRenderer = (content, handlers) => content.externalUrl ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDYDQLS2Rcjs.FigmaEmbed, { url: content.externalUrl, title: content.fileName, loading: "eager" }) : defaultFallbackRenderer(content, handlers);
970
+ var defaultPdfRenderer = (content, handlers) => content.fileUrl ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkSOQVKIWMcjs.PdfViewer, { src: content.fileUrl, fileName: content.fileName }) : defaultFallbackRenderer(content, handlers);
971
+ var defaultGoogleSheetRenderer = (content, handlers) => content.externalUrl ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkSOQVKIWMcjs.GoogleSheetsViewer, { externalUrl: content.externalUrl, fileName: content.fileName }) : defaultFallbackRenderer(content, handlers);
972
+ var defaultFigmaRenderer = (content, handlers) => content.externalUrl ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2WGA2IRNcjs.FigmaEmbed, { url: content.externalUrl, title: content.fileName, loading: "eager" }) : defaultFallbackRenderer(content, handlers);
973
973
  var defaultFileRenderer = (content) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
974
- _chunkAT6D7BAZcjs.FileDownloadCard,
974
+ _chunkSOQVKIWMcjs.FileDownloadCard,
975
975
  {
976
976
  fileName: content.fileName,
977
977
  mimeType: content.mimeType,
@@ -1,30 +1,30 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }"use client";
2
2
 
3
3
 
4
- var _chunk7WKRMJI6cjs = require('./chunk-7WKRMJI6.cjs');
4
+ var _chunkSC36S7DJcjs = require('./chunk-SC36S7DJ.cjs');
5
5
 
6
6
 
7
7
 
8
- var _chunkFHI4I3TQcjs = require('./chunk-FHI4I3TQ.cjs');
8
+ var _chunk6M764K5Zcjs = require('./chunk-6M764K5Z.cjs');
9
9
 
10
10
 
11
11
 
12
12
 
13
13
 
14
14
 
15
- var _chunkDYDQLS2Rcjs = require('./chunk-DYDQLS2R.cjs');
15
+ var _chunk2WGA2IRNcjs = require('./chunk-2WGA2IRN.cjs');
16
16
 
17
17
 
18
18
  var _chunkWCK5T3UDcjs = require('./chunk-WCK5T3UD.cjs');
19
19
 
20
20
 
21
- var _chunkDGY5KEPYcjs = require('./chunk-DGY5KEPY.cjs');
21
+ var _chunk4ASUUB3Acjs = require('./chunk-4ASUUB3A.cjs');
22
22
 
23
23
 
24
24
 
25
25
 
26
26
 
27
- var _chunkEV6BPF47cjs = require('./chunk-EV6BPF47.cjs');
27
+ var _chunkWPMJUYW3cjs = require('./chunk-WPMJUYW3.cjs');
28
28
 
29
29
 
30
30
  var _chunk6CZVQ72Ccjs = require('./chunk-6CZVQ72C.cjs');
@@ -34,17 +34,17 @@ var _chunk6CZVQ72Ccjs = require('./chunk-6CZVQ72C.cjs');
34
34
  var _chunk7DNL734Scjs = require('./chunk-7DNL734S.cjs');
35
35
 
36
36
 
37
- var _chunkCCRXBFNLcjs = require('./chunk-CCRXBFNL.cjs');
37
+ var _chunk6HFTSVVCcjs = require('./chunk-6HFTSVVC.cjs');
38
38
 
39
39
 
40
40
 
41
- var _chunkRSJYTQEAcjs = require('./chunk-RSJYTQEA.cjs');
41
+ var _chunk23DVVS4Icjs = require('./chunk-23DVVS4I.cjs');
42
42
 
43
43
 
44
- var _chunkTD4CC4KVcjs = require('./chunk-TD4CC4KV.cjs');
44
+ var _chunkEUEPGHY4cjs = require('./chunk-EUEPGHY4.cjs');
45
45
 
46
46
 
47
- var _chunkAPNONOHYcjs = require('./chunk-APNONOHY.cjs');
47
+ var _chunkPZNWIJRZcjs = require('./chunk-PZNWIJRZ.cjs');
48
48
 
49
49
 
50
50
  var _chunkUJ7AXHRZcjs = require('./chunk-UJ7AXHRZ.cjs');
@@ -75,7 +75,7 @@ function OnboardingCatalogSectionsSkeleton() {
75
75
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk3TOWCFIKcjs.TextLineSkeleton, { type: "inherit", as: "span", className: "w-40" }),
76
76
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: CATALOG_SECTION_COUNT_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk3TOWCFIKcjs.TextLineSkeleton, { type: "inherit", as: "span", className: "w-3" }) })
77
77
  ] }),
78
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "ul", { className: CATALOG_LIST_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk63A4GZMBcjs.LoadingItems, { count: ONBOARDING_CATALOG_SKELETON_CARDS, children: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "li", { "data-loading-item": true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRSJYTQEAcjs.OnboardingGuideCard, { loading: true, size: "catalog" }) }) }) })
78
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "ul", { className: CATALOG_LIST_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk63A4GZMBcjs.LoadingItems, { count: ONBOARDING_CATALOG_SKELETON_CARDS, children: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "li", { "data-loading-item": true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk23DVVS4Icjs.OnboardingGuideCard, { loading: true, size: "catalog" }) }) }) })
79
79
  ] }) });
80
80
  }
81
81
  function OnboardingGuidesCatalogView({
@@ -96,10 +96,10 @@ function OnboardingGuidesCatalogView({
96
96
  const sectionValue = selfFetch ? _nullishCoalesce(searchParams.get("section"), () => ( "")) : initialSection;
97
97
  const activeSection = sectionValue || "all";
98
98
  const guidesQs = sectionValue ? `?section=${encodeURIComponent(sectionValue)}` : "";
99
- const guidesRes = _chunkCCRXBFNLcjs.useSelfFetch.call(void 0,
99
+ const guidesRes = _chunk6HFTSVVCcjs.useSelfFetch.call(void 0,
100
100
  selfFetch && guidesEndpoint ? `${guidesEndpoint}${guidesQs}` : null
101
101
  );
102
- const sectionsRes = _chunkCCRXBFNLcjs.useSelfFetch.call(void 0, selfFetch && sectionsEndpoint ? sectionsEndpoint : null);
102
+ const sectionsRes = _chunk6HFTSVVCcjs.useSelfFetch.call(void 0, selfFetch && sectionsEndpoint ? sectionsEndpoint : null);
103
103
  const guides = _react.useMemo.call(void 0, () => _nullishCoalesce(_nullishCoalesce(initialGuides, () => ( _optionalChain([guidesRes, 'access', _2 => _2.data, 'optionalAccess', _3 => _3.data]))), () => ( [])), [initialGuides, _optionalChain([guidesRes, 'access', _4 => _4.data, 'optionalAccess', _5 => _5.data])]);
104
104
  const sections = _react.useMemo.call(void 0,
105
105
  () => _nullishCoalesce(initialSections, () => ( (Array.isArray(sectionsRes.data) ? sectionsRes.data : []))),
@@ -143,25 +143,25 @@ function OnboardingGuidesCatalogView({
143
143
  });
144
144
  };
145
145
  const source = _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _6 => _6.source]), () => ( "openframe"));
146
- const docSearch = _chunkFHI4I3TQcjs.useDocSearch.call(void 0, {
146
+ const docSearch = _chunk6M764K5Zcjs.useDocSearch.call(void 0, {
147
147
  source,
148
148
  baseRoute: basePath,
149
149
  onNavigate: (path) => router.push(path),
150
150
  tableIds: ["onboarding-guides"]
151
151
  });
152
152
  const defaultRenderCard = (guide) => {
153
- const cta = _chunkDGY5KEPYcjs.resolveContentHref.call(void 0, _optionalChain([runtime, 'optionalAccess', _7 => _7.composeContentUrl]), {
153
+ const cta = _chunk4ASUUB3Acjs.resolveContentHref.call(void 0, _optionalChain([runtime, 'optionalAccess', _7 => _7.composeContentUrl]), {
154
154
  type: "onboarding_guide",
155
155
  slug: guide.slug,
156
156
  basePath,
157
157
  platforms: guide.onboarding_guide_platforms
158
158
  });
159
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRSJYTQEAcjs.OnboardingGuideCard, { guide, href: cta.href, targetPlatform: cta.targetPlatform, size: "catalog" });
159
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk23DVVS4Icjs.OnboardingGuideCard, { guide, href: cta.href, targetPlatform: cta.targetPlatform, size: "catalog" });
160
160
  };
161
161
  const renderCardFn = _nullishCoalesce(renderCard, () => ( defaultRenderCard));
162
162
  const preControls = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: CATALOG_CONTROLS_CLASS, children: [
163
163
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
164
- _chunkFHI4I3TQcjs.DocSearchBar,
164
+ _chunk6M764K5Zcjs.DocSearchBar,
165
165
  {
166
166
  placeholder: "Search onboarding guides, releases, case studies\u2026",
167
167
  query: docSearch.query,
@@ -173,7 +173,7 @@ function OnboardingGuidesCatalogView({
173
173
  }
174
174
  ),
175
175
  (loading || sections.length > 0) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
176
- _chunkDYDQLS2Rcjs.FilterPillRow,
176
+ _chunk2WGA2IRNcjs.FilterPillRow,
177
177
  {
178
178
  label: "Section",
179
179
  selectedValue: activeSection,
@@ -184,7 +184,7 @@ function OnboardingGuidesCatalogView({
184
184
  )
185
185
  ] });
186
186
  if (!loading && selfFetch && guidesRes.error) {
187
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDYDQLS2Rcjs.LoadError, { message: "Failed to load onboarding guides.", onRetry: guidesRes.reload });
187
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2WGA2IRNcjs.LoadError, { message: "Failed to load onboarding guides.", onRetry: guidesRes.reload });
188
188
  }
189
189
  const view = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: CATALOG_VIEW_CLASS, children: [
190
190
  preControls,
@@ -200,7 +200,7 @@ function OnboardingGuidesCatalogView({
200
200
  )
201
201
  ] });
202
202
  if (!loading) return view;
203
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEV6BPF47cjs.LoadingFallback, { label: "Loading onboarding guides", children: view });
203
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWPMJUYW3cjs.LoadingFallback, { label: "Loading onboarding guides", children: view });
204
204
  }
205
205
  function OnboardingCatalogSections({
206
206
  grouped,
@@ -304,7 +304,7 @@ function OnboardingGuideDetailView({
304
304
  slug,
305
305
  guideEndpoint,
306
306
  related = [],
307
- MarkdownRenderer = _chunkDYDQLS2Rcjs.RichMarkdownRenderer,
307
+ MarkdownRenderer = _chunk2WGA2IRNcjs.RichMarkdownRenderer,
308
308
  renderRelatedCard,
309
309
  backHref,
310
310
  backLabel = "Back to Getting Started",
@@ -314,9 +314,9 @@ function OnboardingGuideDetailView({
314
314
  }) {
315
315
  const resolvedBackHref = _nullishCoalesce(backHref, () => ( basePath));
316
316
  const runtime = _chunkUJ7AXHRZcjs.useChatRuntime.call(void 0, );
317
- const captions = _chunkEV6BPF47cjs.useCaptions.call(void 0, );
317
+ const captions = _chunkWPMJUYW3cjs.useCaptions.call(void 0, );
318
318
  const router = _chunk7DNL734Scjs.useRouter.call(void 0, );
319
- const renderShell = (node) => shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDYDQLS2Rcjs.PageShell, { children: node }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: node });
319
+ const renderShell = (node) => shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2WGA2IRNcjs.PageShell, { children: node }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: node });
320
320
  const url = initialData ? null : slug && guideEndpoint ? guideEndpoint(slug) : null;
321
321
  const scoped = _chunk63A4GZMBcjs.useLoadingScope.call(void 0, );
322
322
  const {
@@ -324,7 +324,7 @@ function OnboardingGuideDetailView({
324
324
  isLoading,
325
325
  error,
326
326
  reload
327
- } = _chunkCCRXBFNLcjs.useSelfFetch.call(void 0, scoped ? null : url, {
327
+ } = _chunk6HFTSVVCcjs.useSelfFetch.call(void 0, scoped ? null : url, {
328
328
  initialData
329
329
  });
330
330
  const { ref: videoWarmupRef } = _chunk6CZVQ72Ccjs.useVideoWarmup.call(void 0, {
@@ -334,27 +334,27 @@ function OnboardingGuideDetailView({
334
334
  const backCfg = { label: backLabel, onClick: () => router.push(resolvedBackHref) };
335
335
  const loading = scoped || !guide && isLoading;
336
336
  if (!loading && (error || !guide)) {
337
- return renderShell(/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDYDQLS2Rcjs.LoadError, { message: "Guide not found.", onRetry: reload }));
337
+ return renderShell(/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2WGA2IRNcjs.LoadError, { message: "Guide not found.", onRetry: reload }));
338
338
  }
339
339
  const view = _nullishCoalesce(guide, () => ( EMPTY_ONBOARDING_GUIDE));
340
340
  const { captionsUrl, highlightCaptionsUrl } = captions.forEntity("onboarding_guide", view);
341
341
  const videoPoster = view.main_video_thumbnail || view.featured_image || view.og_image_url || // `buildOgPlaceholderUrl` always returns a usable string (relative route at
342
342
  // worst), so it's the terminal fallback — no trailing `|| undefined` needed.
343
- _chunkAPNONOHYcjs.buildOgPlaceholderUrl.call(void 0, _optionalChain([runtime, 'optionalAccess', _11 => _11.endpoints]), view.title, { aspect: "wide" });
343
+ _chunkPZNWIJRZcjs.buildOgPlaceholderUrl.call(void 0, _optionalChain([runtime, 'optionalAccess', _11 => _11.endpoints]), view.title, { aspect: "wide" });
344
344
  const defaultRenderRelatedCard = (g) => {
345
- const cta = _chunkDGY5KEPYcjs.resolveContentHref.call(void 0, _optionalChain([runtime, 'optionalAccess', _12 => _12.composeContentUrl]), {
345
+ const cta = _chunk4ASUUB3Acjs.resolveContentHref.call(void 0, _optionalChain([runtime, 'optionalAccess', _12 => _12.composeContentUrl]), {
346
346
  type: "onboarding_guide",
347
347
  slug: g.slug,
348
348
  basePath,
349
349
  platforms: g.onboarding_guide_platforms
350
350
  });
351
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRSJYTQEAcjs.OnboardingGuideCard, { guide: g, href: cta.href, targetPlatform: cta.targetPlatform });
351
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk23DVVS4Icjs.OnboardingGuideCard, { guide: g, href: cta.href, targetPlatform: cta.targetPlatform });
352
352
  };
353
353
  const renderRelatedCardFn = _nullishCoalesce(renderRelatedCard, () => ( defaultRenderRelatedCard));
354
354
  const page = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkWCK5T3UDcjs.PageLayout, { title: view.title, loading, titleSize: "h1", titleWrap: true, backButton: backCfg, children: [
355
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDYDQLS2Rcjs.EntityTagBadges, { tags: view.onboarding_guide_tags }),
355
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2WGA2IRNcjs.EntityTagBadges, { tags: view.onboarding_guide_tags }),
356
356
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
357
- _chunkRSJYTQEAcjs.EntityAuthorCard,
357
+ _chunk23DVVS4Icjs.EntityAuthorCard,
358
358
  {
359
359
  author: view.author,
360
360
  authorHref,
@@ -370,7 +370,7 @@ function OnboardingGuideDetailView({
370
370
  ),
371
371
  !loading && (view.main_video_url || view.youtube_url) && // A guide's video is optional: the loading state leaves it out.
372
372
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: videoWarmupRef, "data-loading-optional": "", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
373
- _chunkEV6BPF47cjs.EntityVideoSection,
373
+ _chunkWPMJUYW3cjs.EntityVideoSection,
374
374
  {
375
375
  mainVideoUrl: view.main_video_url,
376
376
  youtubeUrl: view.youtube_url || void 0,
@@ -387,17 +387,17 @@ function OnboardingGuideDetailView({
387
387
  ) }),
388
388
  (loading || view.content) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: BODY_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MarkdownRenderer, { content: _nullishCoalesce(view.content, () => ( "")) }) }),
389
389
  loading ? null : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "contents", "data-loading-optional": "", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
390
- _chunkEV6BPF47cjs.VideoBitesStrip,
390
+ _chunkWPMJUYW3cjs.VideoBitesStrip,
391
391
  {
392
392
  bites: _nullishCoalesce(view.video_bites, () => ( [])),
393
393
  filterPublished: true,
394
394
  showTitle: false,
395
- profile: _chunkTD4CC4KVcjs.toStripProfile.call(void 0, view.author),
395
+ profile: _chunkEUEPGHY4cjs.toStripProfile.call(void 0, view.author),
396
396
  href: `/onboarding-guides/${view.slug}`
397
397
  }
398
398
  ) }),
399
399
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
400
- _chunk7WKRMJI6cjs.ArticleAuthorByline,
400
+ _chunkSC36S7DJcjs.ArticleAuthorByline,
401
401
  {
402
402
  author: _nullishCoalesce(_optionalChain([view, 'access', _13 => _13.author, 'optionalAccess', _14 => _14.full_name]), () => ( null)),
403
403
  avatar: _optionalChain([view, 'access', _15 => _15.author, 'optionalAccess', _16 => _16.avatar_url]),
@@ -410,7 +410,7 @@ function OnboardingGuideDetailView({
410
410
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RelatedGuides, { section: view.section, related, renderCard: renderRelatedCardFn }),
411
411
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _react.Fragment, { children: relatedContent }, "related-content")
412
412
  ] });
413
- return renderShell(loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEV6BPF47cjs.LoadingFallback, { label: "Loading the guide", children: page }) : page);
413
+ return renderShell(loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWPMJUYW3cjs.LoadingFallback, { label: "Loading the guide", children: page }) : page);
414
414
  }
415
415
 
416
416
  // src/components/onboarding-guides/hooks/use-onboarding-guides.ts
@@ -6,6 +6,10 @@
6
6
  var _chunkFDZOE5TLcjs = require('./chunk-FDZOE5TL.cjs');
7
7
 
8
8
  // src/components/product-demo/fixtures/devices.ts
9
+ var DEMO_UNREAD_NOTIFICATIONS = {
10
+ "device-reception": 2,
11
+ "device-leo": 1
12
+ };
9
13
  function device(cast, demo, type, status, lastSeenMinutesAgo) {
10
14
  const organization = cast.organization(demo.organization);
11
15
  return {
@@ -19,7 +23,8 @@ function device(cast, demo, type, status, lastSeenMinutesAgo) {
19
23
  last_seen: _chunkFDZOE5TLcjs.demoMinutesAgo.call(void 0, lastSeenMinutesAgo),
20
24
  organizationId: organization.id,
21
25
  organization: organization.name,
22
- organizationImageUrl: organization.logoUrl
26
+ organizationImageUrl: organization.logoUrl,
27
+ unreadNotificationCount: DEMO_UNREAD_NOTIFICATIONS[demo.id]
23
28
  };
24
29
  }
25
30
  function countBy(devices, pick) {