@flamingo-stack/openframe-frontend-core 0.0.701 → 0.0.702

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 (89) hide show
  1. package/dist/{chunk-MFORWVGD.js → chunk-2V4Z44G6.js} +4 -4
  2. package/dist/{chunk-GFXZMFDX.cjs → chunk-3G76LRGL.cjs} +9 -9
  3. package/dist/{chunk-65YVUYWJ.cjs → chunk-3WSFIV5G.cjs} +32 -32
  4. package/dist/{chunk-GD4JALTR.js → chunk-446KS5BG.js} +1 -1
  5. package/dist/{chunk-BRQY2HKD.cjs → chunk-AEQANLBW.cjs} +17 -17
  6. package/dist/{chunk-ZSPHOHOW.cjs → chunk-ASN65P3F.cjs} +2 -2
  7. package/dist/{chunk-YBC346FY.cjs → chunk-B3LZJ6J3.cjs} +12 -12
  8. package/dist/{chunk-JPVDJB27.js → chunk-BO5ZHDA4.js} +3 -3
  9. package/dist/{chunk-2CSYUMNM.cjs → chunk-CXDJUKC6.cjs} +2 -2
  10. package/dist/{chunk-QPNR4N7N.cjs → chunk-CYYTD5ZK.cjs} +16 -16
  11. package/dist/{chunk-B7M6QEEM.js → chunk-CZ34HXDW.js} +661 -275
  12. package/dist/{chunk-4H5Q6MQG.cjs → chunk-E3DH543A.cjs} +35 -35
  13. package/dist/{chunk-BZYMGI4L.js → chunk-ETFFEA3J.js} +1 -1
  14. package/dist/{chunk-QDIX2ZRL.cjs → chunk-FD4DBTFO.cjs} +430 -44
  15. package/dist/{chunk-BPS7JQCI.cjs → chunk-FHM7GD5B.cjs} +2 -2
  16. package/dist/{chunk-QZGFJBG5.cjs → chunk-HIXGAY2L.cjs} +50 -50
  17. package/dist/{chunk-V5QNDOEL.js → chunk-HPJ4XS2L.js} +3 -3
  18. package/dist/{chunk-DJLZXJYB.js → chunk-HYFLTFFB.js} +1 -1
  19. package/dist/{chunk-CUPJCGLB.js → chunk-IZKOQVXO.js} +1 -1
  20. package/dist/{chunk-N7DPIH57.js → chunk-JOY6HVPV.js} +1 -1
  21. package/dist/{chunk-NIT257DV.cjs → chunk-L7KZA7ZD.cjs} +2 -2
  22. package/dist/{chunk-BQ34PIFC.cjs → chunk-LZNJH23A.cjs} +3 -3
  23. package/dist/{chunk-EONNPRAW.js → chunk-MWUBBBWZ.js} +1 -1
  24. package/dist/{chunk-N7HMUQRV.js → chunk-PLK6GHN7.js} +1 -1
  25. package/dist/{chunk-DG2I57UM.cjs → chunk-QFW3RUZS.cjs} +16 -16
  26. package/dist/{chunk-S4ADN25W.js → chunk-RS7HWAYX.js} +1 -1
  27. package/dist/{chunk-PNWIVND4.js → chunk-SAA7B3DA.js} +2 -2
  28. package/dist/{chunk-6JG75WVO.js → chunk-UJJWTJ6S.js} +4 -4
  29. package/dist/{chunk-7ZDTAABP.cjs → chunk-YGRHITPY.cjs} +3 -3
  30. package/dist/{chunk-A5ZGKBN2.js → chunk-Z5HDCZAS.js} +1 -1
  31. package/dist/components/case-studies/index.cjs +11 -11
  32. package/dist/components/case-studies/index.js +2 -2
  33. package/dist/components/contact/index.cjs +3 -3
  34. package/dist/components/contact/index.js +2 -2
  35. package/dist/components/docs/index.cjs +6 -6
  36. package/dist/components/docs/index.js +5 -5
  37. package/dist/components/embeds/index.cjs +3 -3
  38. package/dist/components/embeds/index.js +2 -2
  39. package/dist/components/faq/index.cjs +3 -3
  40. package/dist/components/faq/index.js +2 -2
  41. package/dist/components/features/index.cjs +22 -2
  42. package/dist/components/features/index.js +21 -1
  43. package/dist/components/features/remote-session/index.d.ts +9 -1
  44. package/dist/components/features/remote-session/index.d.ts.map +1 -1
  45. package/dist/components/features/remote-session/remote-session-block.d.ts +4 -2
  46. package/dist/components/features/remote-session/remote-session-block.d.ts.map +1 -1
  47. package/dist/components/features/remote-session/remote-session-chat-panel.d.ts +4 -2
  48. package/dist/components/features/remote-session/remote-session-chat-panel.d.ts.map +1 -1
  49. package/dist/components/features/remote-session/remote-session-events.d.ts +24 -0
  50. package/dist/components/features/remote-session/remote-session-events.d.ts.map +1 -0
  51. package/dist/components/features/remote-session/remote-session-keep-modals.d.ts +41 -0
  52. package/dist/components/features/remote-session/remote-session-keep-modals.d.ts.map +1 -0
  53. package/dist/components/features/remote-session/remote-session-parts.d.ts +13 -2
  54. package/dist/components/features/remote-session/remote-session-parts.d.ts.map +1 -1
  55. package/dist/components/features/remote-session/remote-session-status.d.ts +34 -0
  56. package/dist/components/features/remote-session/remote-session-status.d.ts.map +1 -0
  57. package/dist/components/features/remote-session/remote-session-viewers.d.ts +15 -0
  58. package/dist/components/features/remote-session/remote-session-viewers.d.ts.map +1 -0
  59. package/dist/components/features/remote-session/types.d.ts +22 -0
  60. package/dist/components/features/remote-session/types.d.ts.map +1 -1
  61. package/dist/components/help-center-pages/index.cjs +49 -49
  62. package/dist/components/help-center-pages/index.js +13 -13
  63. package/dist/components/index.cjs +53 -33
  64. package/dist/components/index.js +32 -12
  65. package/dist/components/meeting-scheduler/index.cjs +22 -22
  66. package/dist/components/meeting-scheduler/index.js +1 -1
  67. package/dist/components/navigation/index.cjs +5 -5
  68. package/dist/components/navigation/index.js +4 -4
  69. package/dist/components/onboarding-guides/index.cjs +5 -5
  70. package/dist/components/onboarding-guides/index.js +4 -4
  71. package/dist/components/tickets/index.cjs +6 -6
  72. package/dist/components/tickets/index.js +5 -5
  73. package/dist/components/ui/index.cjs +2 -2
  74. package/dist/components/ui/index.js +1 -1
  75. package/dist/index.cjs +26 -6
  76. package/dist/index.js +25 -5
  77. package/dist/tailwind.config.cjs +7 -1
  78. package/dist/tailwind.config.js +7 -1
  79. package/package.json +1 -1
  80. package/src/components/features/remote-session/index.ts +28 -0
  81. package/src/components/features/remote-session/remote-session-block.tsx +6 -3
  82. package/src/components/features/remote-session/remote-session-chat-panel.tsx +11 -7
  83. package/src/components/features/remote-session/remote-session-events.tsx +93 -0
  84. package/src/components/features/remote-session/remote-session-keep-modals.tsx +208 -0
  85. package/src/components/features/remote-session/remote-session-parts.tsx +32 -3
  86. package/src/components/features/remote-session/remote-session-status.tsx +102 -0
  87. package/src/components/features/remote-session/remote-session-viewers.tsx +103 -0
  88. package/src/components/features/remote-session/types.ts +26 -0
  89. package/tailwind.config.ts +6 -0
@@ -1,14 +1,14 @@
1
1
  "use client";
2
2
  import {
3
3
  ContactForm
4
- } from "./chunk-CUPJCGLB.js";
4
+ } from "./chunk-IZKOQVXO.js";
5
5
  import {
6
6
  DeliveryRow,
7
7
  DevCardRowContent,
8
8
  DevCardRowSkeletonList,
9
9
  DevSectionPage,
10
10
  ListEmptyState
11
- } from "./chunk-A5ZGKBN2.js";
11
+ } from "./chunk-Z5HDCZAS.js";
12
12
  import {
13
13
  EmptyState,
14
14
  UnifiedPagination
@@ -19,7 +19,7 @@ import {
19
19
  TOAST_COPY,
20
20
  isOptimistic,
21
21
  useOptionalTicketLive
22
- } from "./chunk-S4ADN25W.js";
22
+ } from "./chunk-RS7HWAYX.js";
23
23
  import {
24
24
  AlertDialog,
25
25
  AlertDialogAction,
@@ -35,7 +35,7 @@ import {
35
35
  Textarea,
36
36
  TicketAttachmentsList,
37
37
  devSectionAnchorId
38
- } from "./chunk-B7M6QEEM.js";
38
+ } from "./chunk-CZ34HXDW.js";
39
39
  import {
40
40
  toast,
41
41
  useScrollToHash
@@ -10,7 +10,7 @@ var _chunkHUOLB7ZNcjs = require('./chunk-HUOLB7ZN.cjs');
10
10
 
11
11
 
12
12
 
13
- var _chunkQDIX2ZRLcjs = require('./chunk-QDIX2ZRL.cjs');
13
+ var _chunkFD4DBTFOcjs = require('./chunk-FD4DBTFO.cjs');
14
14
 
15
15
 
16
16
 
@@ -63,7 +63,7 @@ function ListEmptyState({ isFiltered, filtered, onClearFilters, empty }) {
63
63
  var _react = require('react');
64
64
 
65
65
  function DevSectionView({ sectionKey, hero, preControls, children, showHeading = true }) {
66
- const section = _chunkQDIX2ZRLcjs.OPENFRAME_DEV_SECTIONS[sectionKey];
66
+ const section = _chunkFD4DBTFOcjs.OPENFRAME_DEV_SECTIONS[sectionKey];
67
67
  const router = _chunk7DNL734Scjs.useRouter.call(void 0, );
68
68
  const pathname = _chunk7DNL734Scjs.usePathname.call(void 0, );
69
69
  const searchParams = _chunk7DNL734Scjs.useSearchParams.call(void 0, );
@@ -114,7 +114,7 @@ function DevSectionView({ sectionKey, hero, preControls, children, showHeading =
114
114
  preControls,
115
115
  (search || filter) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
116
116
  search && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
117
- _chunkQDIX2ZRLcjs.SearchInput,
117
+ _chunkFD4DBTFOcjs.SearchInput,
118
118
  {
119
119
  showDropdown: false,
120
120
  placeholder: search.placeholder,
@@ -124,7 +124,7 @@ function DevSectionView({ sectionKey, hero, preControls, children, showHeading =
124
124
  }
125
125
  ),
126
126
  filter && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
127
- _chunkQDIX2ZRLcjs.StatusFilterComponent,
127
+ _chunkFD4DBTFOcjs.StatusFilterComponent,
128
128
  {
129
129
  selectedStatus: currentFilterValue,
130
130
  onStatusChange: handleFilterChange,
@@ -148,7 +148,7 @@ function DevSectionPage({
148
148
  shell = true
149
149
  }) {
150
150
  const router = _chunk7DNL734Scjs.useRouter.call(void 0, );
151
- const section = _chunkQDIX2ZRLcjs.OPENFRAME_DEV_SECTIONS[sectionKey];
151
+ const section = _chunkFD4DBTFOcjs.OPENFRAME_DEV_SECTIONS[sectionKey];
152
152
  const backCfg = backButton === false ? void 0 : {
153
153
  label: _nullishCoalesce((backButton ? backButton.label : void 0), () => ( "Back to home")),
154
154
  onClick: () => router.push(_nullishCoalesce((backButton ? backButton.href : void 0), () => ( "/")))
@@ -161,7 +161,7 @@ function DevSectionPage({
161
161
  // duplicate title. (The hero icon is intentionally dropped: TitleBlock is
162
162
  // frozen and renders title-only.)
163
163
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
164
- _chunkQDIX2ZRLcjs.PageLayout,
164
+ _chunkFD4DBTFOcjs.PageLayout,
165
165
  {
166
166
  title: _nullishCoalesce(title, () => ( section.hero.title)),
167
167
  subtitle: _nullishCoalesce(subtitle, () => ( section.hero.description)),
@@ -172,7 +172,7 @@ function DevSectionPage({
172
172
  }
173
173
  )
174
174
  );
175
- return shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQDIX2ZRLcjs.PageShell, { children: inner }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: inner });
175
+ return shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFD4DBTFOcjs.PageShell, { children: inner }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: inner });
176
176
  }
177
177
 
178
178
  // src/components/shared/dev-section/dev-card-row.tsx
@@ -230,8 +230,8 @@ function getRelativeTime(timestamp) {
230
230
  }
231
231
  function DeliveryRow({ item, href, target, caption, id, className }) {
232
232
  const taskType = item.taskType;
233
- const typeBadgeLabel = _chunkQDIX2ZRLcjs.TASK_TYPE_LABELS[taskType] || "TASK";
234
- const typeBadgeTextColor = _chunkQDIX2ZRLcjs.TASK_TYPE_TEXT_COLORS[taskType] || "";
233
+ const typeBadgeLabel = _chunkFD4DBTFOcjs.TASK_TYPE_LABELS[taskType] || "TASK";
234
+ const typeBadgeTextColor = _chunkFD4DBTFOcjs.TASK_TYPE_TEXT_COLORS[taskType] || "";
235
235
  const statusBadgeScheme = _chunkEMCQGFXDcjs.getStatusColorScheme.call(void 0, item.status);
236
236
  const relativeTime = getRelativeTime(item.dateUpdated);
237
237
  const subtitle = `ACTIVE ${relativeTime}${item.listNames.length > 0 ? `, ${item.listNames.join(", ")}` : ""}, ${item.id}`;
@@ -3,16 +3,16 @@
3
3
 
4
4
 
5
5
 
6
- var _chunkBQ34PIFCcjs = require('./chunk-BQ34PIFC.cjs');
6
+ var _chunkLZNJH23Acjs = require('./chunk-LZNJH23A.cjs');
7
7
 
8
8
 
9
9
 
10
10
 
11
- var _chunk2CSYUMNMcjs = require('./chunk-2CSYUMNM.cjs');
11
+ var _chunkCXDJUKC6cjs = require('./chunk-CXDJUKC6.cjs');
12
12
 
13
13
 
14
14
 
15
- var _chunkZSPHOHOWcjs = require('./chunk-ZSPHOHOW.cjs');
15
+ var _chunkASN65P3Fcjs = require('./chunk-ASN65P3F.cjs');
16
16
 
17
17
 
18
18
 
@@ -22,7 +22,7 @@ var _chunkZSPHOHOWcjs = require('./chunk-ZSPHOHOW.cjs');
22
22
 
23
23
 
24
24
 
25
- var _chunkQDIX2ZRLcjs = require('./chunk-QDIX2ZRL.cjs');
25
+ var _chunkFD4DBTFOcjs = require('./chunk-FD4DBTFO.cjs');
26
26
 
27
27
 
28
28
  var _chunk4OGAXAEGcjs = require('./chunk-4OGAXAEG.cjs');
@@ -325,8 +325,8 @@ function toDocContent(value, requestedPath) {
325
325
  }
326
326
  function useDocumentTree(config, initialPath) {
327
327
  const { structureEndpoint, contentEndpoint, baseRoute } = config;
328
- const folderIndexFile = _nullishCoalesce(config.folderIndexFile, () => ( _chunkQDIX2ZRLcjs.DEFAULT_FOLDER_INDEX_FILE));
329
- const cleanInitialPath = _chunkQDIX2ZRLcjs.stripFolderIndexFromPath.call(void 0, _optionalChain([initialPath, 'optionalAccess', _4 => _4.replace, 'call', _5 => _5(/\/$/, "")]) || "", folderIndexFile);
328
+ const folderIndexFile = _nullishCoalesce(config.folderIndexFile, () => ( _chunkFD4DBTFOcjs.DEFAULT_FOLDER_INDEX_FILE));
329
+ const cleanInitialPath = _chunkFD4DBTFOcjs.stripFolderIndexFromPath.call(void 0, _optionalChain([initialPath, 'optionalAccess', _4 => _4.replace, 'call', _5 => _5(/\/$/, "")]) || "", folderIndexFile);
330
330
  const [structure, setStructure] = _react.useState.call(void 0, []);
331
331
  const [selectedPath, setSelectedPath] = _react.useState.call(void 0, cleanInitialPath);
332
332
  const [content, setContent] = _react.useState.call(void 0, null);
@@ -350,12 +350,12 @@ function useDocumentTree(config, initialPath) {
350
350
  } else if (pathname.startsWith(`${normalizedBaseRoute}/`)) {
351
351
  pathFromUrl = pathname.substring(`${normalizedBaseRoute}/`.length);
352
352
  }
353
- pathFromUrl = _chunkQDIX2ZRLcjs.stripFolderIndexFromPath.call(void 0, pathFromUrl, folderIndexFile);
353
+ pathFromUrl = _chunkFD4DBTFOcjs.stripFolderIndexFromPath.call(void 0, pathFromUrl, folderIndexFile);
354
354
  if (pathFromUrl !== selectedPathRef.current) {
355
355
  setSelectedPath(pathFromUrl);
356
356
  if (pathFromUrl) {
357
357
  const parentPath = pathFromUrl.includes("/") ? pathFromUrl.substring(0, pathFromUrl.lastIndexOf("/")) : pathFromUrl;
358
- setExpandedNodes(new Set(_chunkQDIX2ZRLcjs.getDocAncestorNodeIds.call(void 0, parentPath)));
358
+ setExpandedNodes(new Set(_chunkFD4DBTFOcjs.getDocAncestorNodeIds.call(void 0, parentPath)));
359
359
  }
360
360
  setTimeout(() => {
361
361
  scrollToContent();
@@ -373,7 +373,7 @@ function useDocumentTree(config, initialPath) {
373
373
  setSelectedPath(cleanInitialPath);
374
374
  if (cleanInitialPath) {
375
375
  const parentPath = cleanInitialPath.includes("/") ? cleanInitialPath.substring(0, cleanInitialPath.lastIndexOf("/")) : cleanInitialPath;
376
- setExpandedNodes(new Set(_chunkQDIX2ZRLcjs.getDocAncestorNodeIds.call(void 0, parentPath)));
376
+ setExpandedNodes(new Set(_chunkFD4DBTFOcjs.getDocAncestorNodeIds.call(void 0, parentPath)));
377
377
  }
378
378
  setExternalNavCount((n) => n + 1);
379
379
  }
@@ -398,7 +398,7 @@ function useDocumentTree(config, initialPath) {
398
398
  if (cleanInitialPath) {
399
399
  const pathForExpansion = cleanInitialPath.includes(".") ? cleanInitialPath.substring(0, cleanInitialPath.lastIndexOf("/")) : cleanInitialPath;
400
400
  if (pathForExpansion) {
401
- setExpandedNodes(new Set(_chunkQDIX2ZRLcjs.getDocAncestorNodeIds.call(void 0, pathForExpansion)));
401
+ setExpandedNodes(new Set(_chunkFD4DBTFOcjs.getDocAncestorNodeIds.call(void 0, pathForExpansion)));
402
402
  }
403
403
  } else if (nodes.length > 0) {
404
404
  const hasRootReadme = nodes.some((node) => node.type === "file" && node.path === folderIndexFile);
@@ -438,7 +438,7 @@ function useDocumentTree(config, initialPath) {
438
438
  setContent(null);
439
439
  return;
440
440
  }
441
- const probe = _chunkQDIX2ZRLcjs.findDocNodeByPath.call(void 0, _chunkQDIX2ZRLcjs.stripFolderIndexFromPath.call(void 0, path, folderIndexFile), structure);
441
+ const probe = _chunkFD4DBTFOcjs.findDocNodeByPath.call(void 0, _chunkFD4DBTFOcjs.stripFolderIndexFromPath.call(void 0, path, folderIndexFile), structure);
442
442
  const probeIsNoReadmeFolder = !!probe && probe.type === "folder" && !probe.hasReadme;
443
443
  const preStructureFolderLike = structure.length === 0 && !path.endsWith(".md");
444
444
  if (probeIsNoReadmeFolder || preStructureFolderLike) {
@@ -495,7 +495,7 @@ function useDocumentTree(config, initialPath) {
495
495
  if (selectedPath === "") {
496
496
  pathToFetch = folderIndexFile;
497
497
  } else {
498
- const node = _chunkQDIX2ZRLcjs.findDocNodeByPath.call(void 0, selectedPath, structure);
498
+ const node = _chunkFD4DBTFOcjs.findDocNodeByPath.call(void 0, selectedPath, structure);
499
499
  if (node && node.type === "folder" && !node.hasReadme) {
500
500
  const firstDocPath = findFirstDocPath(node);
501
501
  if (!firstDocPath) {
@@ -536,16 +536,16 @@ function useDocumentTree(config, initialPath) {
536
536
  if (node.type === "folder") {
537
537
  setExpandedNodes((prev) => {
538
538
  if (prev.has(node.id)) {
539
- const ancestorIds = _chunkQDIX2ZRLcjs.getDocAncestorNodeIds.call(void 0, node.path);
539
+ const ancestorIds = _chunkFD4DBTFOcjs.getDocAncestorNodeIds.call(void 0, node.path);
540
540
  ancestorIds.pop();
541
541
  return new Set(ancestorIds);
542
542
  }
543
- return new Set(_chunkQDIX2ZRLcjs.getDocAncestorNodeIds.call(void 0, node.path));
543
+ return new Set(_chunkFD4DBTFOcjs.getDocAncestorNodeIds.call(void 0, node.path));
544
544
  });
545
545
  } else {
546
546
  const lastSlash = node.path.lastIndexOf("/");
547
547
  if (lastSlash > 0) {
548
- setExpandedNodes(new Set(_chunkQDIX2ZRLcjs.getDocAncestorNodeIds.call(void 0, node.path.substring(0, lastSlash))));
548
+ setExpandedNodes(new Set(_chunkFD4DBTFOcjs.getDocAncestorNodeIds.call(void 0, node.path.substring(0, lastSlash))));
549
549
  }
550
550
  }
551
551
  lastFetchedPath.current = null;
@@ -560,7 +560,7 @@ function useDocumentTree(config, initialPath) {
560
560
  const hashIndex = path.indexOf("#");
561
561
  const anchor = hashIndex !== -1 ? path.substring(hashIndex) : "";
562
562
  const cleanPath = path.replace(/\/$/, "").split("#")[0];
563
- const pathForSelection = anchor && _optionalChain([options, 'optionalAccess', _6 => _6.fromInternalLink]) && cleanPath === "" ? selectedPathRef.current : _chunkQDIX2ZRLcjs.stripFolderIndexFromPath.call(void 0, cleanPath, folderIndexFile);
563
+ const pathForSelection = anchor && _optionalChain([options, 'optionalAccess', _6 => _6.fromInternalLink]) && cleanPath === "" ? selectedPathRef.current : _chunkFD4DBTFOcjs.stripFolderIndexFromPath.call(void 0, cleanPath, folderIndexFile);
564
564
  if (anchor && _optionalChain([options, 'optionalAccess', _7 => _7.fromInternalLink]) && pathForSelection === selectedPathRef.current) {
565
565
  _chunkIIMICN7Lcjs.navigateSamePageHash.call(void 0, anchor, { headerOffset: _chunkIIMICN7Lcjs.HUB_HEADER_OFFSET_PX });
566
566
  return;
@@ -624,15 +624,15 @@ function useDocumentTree(config, initialPath) {
624
624
  return docNavigation.register({
625
625
  baseRoute: normalizedBaseRoute,
626
626
  findNodeByPath: (path) => {
627
- const clean = _chunkQDIX2ZRLcjs.stripFolderIndexFromPath.call(void 0, path.replace(/\/$/, "").split("#")[0], folderIndexFile);
628
- return _nullishCoalesce(_chunkQDIX2ZRLcjs.findDocNodeByPath.call(void 0, clean, structure), () => ( null));
627
+ const clean = _chunkFD4DBTFOcjs.stripFolderIndexFromPath.call(void 0, path.replace(/\/$/, "").split("#")[0], folderIndexFile);
628
+ return _nullishCoalesce(_chunkFD4DBTFOcjs.findDocNodeByPath.call(void 0, clean, structure), () => ( null));
629
629
  },
630
630
  selectNode
631
631
  });
632
632
  }, [docNavigation, normalizedBaseRoute, structure, selectNode, folderIndexFile]);
633
633
  const isEmptyFolder = _react.useMemo.call(void 0, () => {
634
634
  if (!selectedPath || structure.length === 0) return false;
635
- const node = _chunkQDIX2ZRLcjs.findDocNodeByPath.call(void 0, selectedPath, structure);
635
+ const node = _chunkFD4DBTFOcjs.findDocNodeByPath.call(void 0, selectedPath, structure);
636
636
  return !!node && node.type === "folder" && !node.hasReadme && !findFirstDocPath(node);
637
637
  }, [selectedPath, structure]);
638
638
  return {
@@ -815,7 +815,7 @@ function DocViewerContent({
815
815
  label: _nullishCoalesce(_optionalChain([backButton, 'optionalAccess', _16 => _16.label]), () => ( "Back to home")),
816
816
  onClick: () => router.push(_nullishCoalesce(_optionalChain([backButton, 'optionalAccess', _17 => _17.href]), () => ( "/")))
817
817
  };
818
- const docSearch = _chunkZSPHOHOWcjs.useDocSearch.call(void 0, {
818
+ const docSearch = _chunkASN65P3Fcjs.useDocSearch.call(void 0, {
819
819
  source: chatSource,
820
820
  baseRoute,
821
821
  searchEndpoint,
@@ -839,7 +839,7 @@ function DocViewerContent({
839
839
  onResolveLink: resolveLink
840
840
  });
841
841
  }, [content, renderContent, navigateToDoc, sourceId, resolveLink]);
842
- const selectedNodeDocType = selectedPath && structure.length > 0 ? _optionalChain([_chunkQDIX2ZRLcjs.findDocNodeByPath.call(void 0, selectedPath, structure), 'optionalAccess', _18 => _18.documentType]) : void 0;
842
+ const selectedNodeDocType = selectedPath && structure.length > 0 ? _optionalChain([_chunkFD4DBTFOcjs.findDocNodeByPath.call(void 0, selectedPath, structure), 'optionalAccess', _18 => _18.documentType]) : void 0;
843
843
  const activeDocType = _nullishCoalesce(_optionalChain([content, 'optionalAccess', _19 => _19.documentType]), () => ( selectedNodeDocType));
844
844
  const isMarkdownContent = !activeDocType || activeDocType === "markdown";
845
845
  const showStickyNav = isMarkdownContent;
@@ -850,9 +850,9 @@ function DocViewerContent({
850
850
  const containerBgStyle = colorPalette.containerBackground !== "transparent" ? { backgroundColor: colorPalette.containerBackground } : {};
851
851
  const defaultEmptyText = structure.length > 0 ? "Select a document from the sidebar to view" : "No documents yet. Add content from the admin panel.";
852
852
  const resolvedEmptyText = emptyStateText || defaultEmptyText;
853
- const inner = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { style: { ...bgStyle, ...containerBgStyle }, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQDIX2ZRLcjs.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: [
853
+ const inner = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { style: { ...bgStyle, ...containerBgStyle }, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFD4DBTFOcjs.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: [
854
854
  showAIChat && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
855
- _chunkZSPHOHOWcjs.DocSearchBar,
855
+ _chunkASN65P3Fcjs.DocSearchBar,
856
856
  {
857
857
  placeholder: `Search ${_optionalChain([sidebarLabel, 'optionalAccess', _23 => _23.toLowerCase, 'call', _24 => _24()]) || "documents"}...`,
858
858
  query: docSearch.query,
@@ -871,9 +871,9 @@ function DocViewerContent({
871
871
  ] })
872
872
  ] }) }),
873
873
  !error && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-1 flex-col items-start gap-6 lg:flex-row lg:gap-10", children: [
874
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full lg:w-[320px] lg:shrink-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "lg:sticky lg:top-20", children: isLoadingStructure ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQDIX2ZRLcjs.CategorySidebarSkeleton, {}) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
874
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full lg:w-[320px] lg:shrink-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "lg:sticky lg:top-20", children: isLoadingStructure ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFD4DBTFOcjs.CategorySidebarSkeleton, {}) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
875
875
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PersistentMobileDropdown, { isLoading: false, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
876
- _chunk2CSYUMNMcjs.MobileNavigationDropdown,
876
+ _chunkCXDJUKC6cjs.MobileNavigationDropdown,
877
877
  {
878
878
  nodes: structure,
879
879
  selectedPath,
@@ -887,7 +887,7 @@ function DocViewerContent({
887
887
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PersistentSidebar, { isLoading: false, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden lg:block", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
888
888
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "font-semibold text-ods-text-secondary text-h5", children: sidebarLabel }),
889
889
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
890
- _chunk2CSYUMNMcjs.MultiLevelNavigation,
890
+ _chunkCXDJUKC6cjs.MultiLevelNavigation,
891
891
  {
892
892
  nodes: structure,
893
893
  selectedPath,
@@ -926,7 +926,7 @@ function DocViewerContent({
926
926
  showStickyNav && content && stickyNavSections.length > 0 && !isLoadingContent && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden lg:block", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "sticky top-24", children: [
927
927
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "mb-4 font-semibold text-ods-text-secondary text-h5", children: "ON THIS PAGE" }),
928
928
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
929
- _chunk2CSYUMNMcjs.StickySectionNav,
929
+ _chunkCXDJUKC6cjs.StickySectionNav,
930
930
  {
931
931
  sections: stickyNavSections,
932
932
  activeSection,
@@ -941,7 +941,7 @@ function DocViewerContent({
941
941
  ) })
942
942
  ] })
943
943
  ] }) }) });
944
- return shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQDIX2ZRLcjs.PageShell, { contentClassName: `${bgClass} ${className}`, children: inner }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `page-shell-content ${bgClass} ${className}`.trim(), children: inner });
944
+ return shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFD4DBTFOcjs.PageShell, { contentClassName: `${bgClass} ${className}`, children: inner }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `page-shell-content ${bgClass} ${className}`.trim(), children: inner });
945
945
  }
946
946
 
947
947
  // src/components/docs/skeletons.tsx
@@ -1031,11 +1031,11 @@ function EmbedSkeleton({ documentType } = {}) {
1031
1031
 
1032
1032
  var DEFAULT_TITLE = "Documents";
1033
1033
  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" }) });
1034
- var defaultPdfRenderer = (content, handlers) => content.fileUrl ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBQ34PIFCcjs.PdfViewer, { src: content.fileUrl, fileName: content.fileName }) : defaultFallbackRenderer(content, handlers);
1035
- var defaultGoogleSheetRenderer = (content, handlers) => content.externalUrl ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBQ34PIFCcjs.GoogleSheetsViewer, { externalUrl: content.externalUrl, fileName: content.fileName }) : defaultFallbackRenderer(content, handlers);
1036
- var defaultFigmaRenderer = (content, handlers) => content.externalUrl ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQDIX2ZRLcjs.FigmaEmbed, { url: content.externalUrl, title: content.fileName, loading: "eager" }) : defaultFallbackRenderer(content, handlers);
1034
+ var defaultPdfRenderer = (content, handlers) => content.fileUrl ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLZNJH23Acjs.PdfViewer, { src: content.fileUrl, fileName: content.fileName }) : defaultFallbackRenderer(content, handlers);
1035
+ var defaultGoogleSheetRenderer = (content, handlers) => content.externalUrl ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLZNJH23Acjs.GoogleSheetsViewer, { externalUrl: content.externalUrl, fileName: content.fileName }) : defaultFallbackRenderer(content, handlers);
1036
+ var defaultFigmaRenderer = (content, handlers) => content.externalUrl ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFD4DBTFOcjs.FigmaEmbed, { url: content.externalUrl, title: content.fileName, loading: "eager" }) : defaultFallbackRenderer(content, handlers);
1037
1037
  var defaultFileRenderer = (content) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1038
- _chunkBQ34PIFCcjs.FileDownloadCard,
1038
+ _chunkLZNJH23Acjs.FileDownloadCard,
1039
1039
  {
1040
1040
  fileName: content.fileName,
1041
1041
  mimeType: content.mimeType,
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import {
3
3
  SearchInput
4
- } from "./chunk-B7M6QEEM.js";
4
+ } from "./chunk-CZ34HXDW.js";
5
5
  import {
6
6
  contentFetch
7
7
  } from "./chunk-Q76ZTHNV.js";
@@ -1,7 +1,7 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 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 _chunkNIT257DVcjs = require('./chunk-NIT257DV.cjs');
4
+ var _chunkL7KZA7ZDcjs = require('./chunk-L7KZA7ZD.cjs');
5
5
 
6
6
 
7
7
 
@@ -13,7 +13,7 @@ var _chunkNIT257DVcjs = require('./chunk-NIT257DV.cjs');
13
13
 
14
14
 
15
15
 
16
- var _chunkQDIX2ZRLcjs = require('./chunk-QDIX2ZRL.cjs');
16
+ var _chunkFD4DBTFOcjs = require('./chunk-FD4DBTFO.cjs');
17
17
 
18
18
 
19
19
 
@@ -242,16 +242,16 @@ function MobileNavPanel({ isOpen, config }) {
242
242
  // src/components/navigation/ticket-alerts-button.tsx
243
243
 
244
244
  function TicketAlertsButton({ href, onNavigate, disabled, className }) {
245
- const live = _chunkNIT257DVcjs.useOptionalTicketLive.call(void 0, );
245
+ const live = _chunkL7KZA7ZDcjs.useOptionalTicketLive.call(void 0, );
246
246
  if (!live || !live.authed || live.unreadTotal === 0) return null;
247
247
  const targetId = live.nextUnreadTicketId;
248
- const target = targetId ? _chunkQDIX2ZRLcjs.buildTicketOpenHref.call(void 0, href, targetId) : href;
248
+ const target = targetId ? _chunkFD4DBTFOcjs.buildTicketOpenHref.call(void 0, href, targetId) : href;
249
249
  const handleClick = () => {
250
250
  if (onNavigate) onNavigate(target);
251
251
  else window.location.assign(target);
252
252
  };
253
253
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
254
- _chunkQDIX2ZRLcjs.HeaderButton,
254
+ _chunkFD4DBTFOcjs.HeaderButton,
255
255
  {
256
256
  icon: (
257
257
  // Glyph inherits HeaderButton's standard cell coloring (secondary at
@@ -261,7 +261,7 @@ function TicketAlertsButton({ href, onNavigate, disabled, className }) {
261
261
  // existing while updates are unread — never by tinting the glyph.
262
262
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "relative inline-flex", children: [
263
263
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkN3COXDBHcjs.LifeBuoyIcon, { className: "h-6 w-6" }),
264
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQDIX2ZRLcjs.UnreadCountBadge, { count: live.unreadTotal })
264
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFD4DBTFOcjs.UnreadCountBadge, { count: live.unreadTotal })
265
265
  ] })
266
266
  ),
267
267
  "aria-label": `Support tickets \u2014 ${live.unreadTotal} unread ${live.unreadTotal === 1 ? "update" : "updates"}`,
@@ -579,7 +579,7 @@ function Header({ config }) {
579
579
  leading: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
580
580
  !!_optionalChain([config, 'access', _12 => _12.actions, 'optionalAccess', _13 => _13.left, 'optionalAccess', _14 => _14.length]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-full items-center border-r border-ods-border", children: config.actions.left }),
581
581
  _optionalChain([config, 'access', _15 => _15.mobile, 'optionalAccess', _16 => _16.enabled]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
582
- _chunkQDIX2ZRLcjs.HeaderButton,
582
+ _chunkFD4DBTFOcjs.HeaderButton,
583
583
  {
584
584
  className: "border-r border-ods-border lg:hidden",
585
585
  onClick: () => {
@@ -966,7 +966,7 @@ var NavigationSidebarItemButton = _react.memo.call(void 0, function NavigationSi
966
966
  _react.cloneElement.call(void 0, item.icon, {
967
967
  color: isActive && !disabled ? "text-ods-accent" : "text-ods-text-secondary"
968
968
  }),
969
- hasUnread && !showLabel && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQDIX2ZRLcjs.UnreadDot, { size: "fixed" })
969
+ hasUnread && !showLabel && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFD4DBTFOcjs.UnreadDot, { size: "fixed" })
970
970
  ] }),
971
971
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
972
972
  "span",
@@ -1249,7 +1249,7 @@ function HeaderGlobalSearch({
1249
1249
  "form",
1250
1250
  {
1251
1251
  onSubmit: handleSubmit,
1252
- ..._chunkQDIX2ZRLcjs.HUBSPOT_DO_NOT_COLLECT_FORM_PROPS,
1252
+ ..._chunkFD4DBTFOcjs.HUBSPOT_DO_NOT_COLLECT_FORM_PROPS,
1253
1253
  className: _chunk3ATAYP36cjs.cn.call(void 0,
1254
1254
  "flex h-full flex-1 items-center gap-2 px-3",
1255
1255
  // Transparent so the cell inherits the bar's background
@@ -1436,7 +1436,7 @@ var AppHeader = _react2.default.memo(function AppHeaderImpl({
1436
1436
  leading: (
1437
1437
  // Mobile: Burger Menu Button
1438
1438
  !isMdUp && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1439
- _chunkQDIX2ZRLcjs.HeaderButton,
1439
+ _chunkFD4DBTFOcjs.HeaderButton,
1440
1440
  {
1441
1441
  onClick: onToggleMobileMenu,
1442
1442
  isActive: isMobileMenuOpen,
@@ -1462,7 +1462,7 @@ var AppHeader = _react2.default.memo(function AppHeaderImpl({
1462
1462
  center: showSearch ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, HeaderGlobalSearch, { onSubmit: onSearch, className: _chunk3ATAYP36cjs.cn.call(void 0, "w-full", dimmedClass) }) : void 0,
1463
1463
  sideActions: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
1464
1464
  showSearch && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1465
- _chunkQDIX2ZRLcjs.HeaderButton,
1465
+ _chunkFD4DBTFOcjs.HeaderButton,
1466
1466
  {
1467
1467
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk4GFNWALLcjs.SearchIcon, { className: "h-6 w-6" }),
1468
1468
  "aria-label": "Search",
@@ -1479,7 +1479,7 @@ var AppHeader = _react2.default.memo(function AppHeaderImpl({
1479
1479
  className: _chunk3ATAYP36cjs.cn.call(void 0, "hidden lg:flex", dimmedClass)
1480
1480
  }
1481
1481
  ),
1482
- showTimeTracker && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQDIX2ZRLcjs.TimeTrackerHeaderButton, { disabled, className: _chunk3ATAYP36cjs.cn.call(void 0, cellDivider, dimmedClass) }),
1482
+ showTimeTracker && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFD4DBTFOcjs.TimeTrackerHeaderButton, { disabled, className: _chunk3ATAYP36cjs.cn.call(void 0, cellDivider, dimmedClass) }),
1483
1483
  showNotifications && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1484
1484
  NotificationsHeaderButton,
1485
1485
  {
@@ -1499,7 +1499,7 @@ var AppHeader = _react2.default.memo(function AppHeaderImpl({
1499
1499
  ),
1500
1500
  isMdUp && showUser && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunk2A4XES7Rcjs.DropdownMenu, { children: [
1501
1501
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2A4XES7Rcjs.DropdownMenuTrigger, { asChild: true, disabled, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1502
- _chunkQDIX2ZRLcjs.HeaderButton,
1502
+ _chunkFD4DBTFOcjs.HeaderButton,
1503
1503
  {
1504
1504
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1505
1505
  _chunkEMCQGFXDcjs.SquareAvatar,
@@ -1583,12 +1583,12 @@ var AppHeader = _react2.default.memo(function AppHeaderImpl({
1583
1583
  );
1584
1584
  });
1585
1585
  function NotificationsHeaderButton({ fallbackUnreadCount, disabled, dimmedClass }) {
1586
- const ctx = _chunkQDIX2ZRLcjs.useOptionalNotifications.call(void 0, );
1586
+ const ctx = _chunkFD4DBTFOcjs.useOptionalNotifications.call(void 0, );
1587
1587
  const hasUnread = (_nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _94 => _94.unreadCount]), () => ( fallbackUnreadCount))) > 0;
1588
1588
  const isActive = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _95 => _95.isOpen]), () => ( false));
1589
1589
  const onClick = _optionalChain([ctx, 'optionalAccess', _96 => _96.toggle]);
1590
1590
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1591
- _chunkQDIX2ZRLcjs.HeaderButton,
1591
+ _chunkFD4DBTFOcjs.HeaderButton,
1592
1592
  {
1593
1593
  icon: isActive ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkN3COXDBHcjs.XmarkIcon, { className: "h-6 w-6" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkN3COXDBHcjs.BellIcon, { className: "h-6 w-6" }),
1594
1594
  showUnreadDot: !isActive && hasUnread,
@@ -1866,7 +1866,7 @@ function AppLayout({
1866
1866
  }),
1867
1867
  []
1868
1868
  );
1869
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQDIX2ZRLcjs.AppLayoutDrawerContainerContext.Provider, { value: drawerContainer, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQDIX2ZRLcjs.AppLayoutDrawerCoordinationContext.Provider, { value: drawerCoordination, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "flex h-screen flex-col bg-ods-bg", className), children: [
1869
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFD4DBTFOcjs.AppLayoutDrawerContainerContext.Provider, { value: drawerContainer, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFD4DBTFOcjs.AppLayoutDrawerCoordinationContext.Provider, { value: drawerCoordination, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "flex h-screen flex-col bg-ods-bg", className), children: [
1870
1870
  topBar,
1871
1871
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative flex min-h-0 flex-1", children: [
1872
1872
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, NavigationSidebar, { config: sidebarConfig, disabled }),
@@ -1890,7 +1890,7 @@ function AppLayout({
1890
1890
  disabled
1891
1891
  }
1892
1892
  ),
1893
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQDIX2ZRLcjs.NotificationDrawer, {}),
1893
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFD4DBTFOcjs.NotificationDrawer, {}),
1894
1894
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { ref: setDrawerContainer, className: "relative flex flex-1 flex-col overflow-hidden", children: [
1895
1895
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "main", { className: _chunk3ATAYP36cjs.cn.call(void 0, "flex-1 overflow-y-auto", mainClassName), children }),
1896
1896
  drawer
@@ -1,7 +1,7 @@
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 _chunkQDIX2ZRLcjs = require('./chunk-QDIX2ZRL.cjs');
4
+ var _chunkFD4DBTFOcjs = require('./chunk-FD4DBTFO.cjs');
5
5
 
6
6
 
7
7
  var _chunk4OGAXAEGcjs = require('./chunk-4OGAXAEG.cjs');
@@ -69,7 +69,7 @@ function DocSearchBar({
69
69
  renderResult
70
70
  }) {
71
71
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
72
- _chunkQDIX2ZRLcjs.SearchInput,
72
+ _chunkFD4DBTFOcjs.SearchInput,
73
73
  {
74
74
  placeholder,
75
75
  value: query,
@@ -4,7 +4,7 @@
4
4
 
5
5
 
6
6
 
7
- var _chunkQDIX2ZRLcjs = require('./chunk-QDIX2ZRL.cjs');
7
+ var _chunkFD4DBTFOcjs = require('./chunk-FD4DBTFO.cjs');
8
8
 
9
9
 
10
10
  var _chunk3L7KCOGOcjs = require('./chunk-3L7KCOGO.cjs');
@@ -129,7 +129,7 @@ var ToolBadge = ({
129
129
  className,
130
130
  iconClassName
131
131
  }) => {
132
- const text = _nullishCoalesce(label, () => ( (toolType ? _chunkQDIX2ZRLcjs.getToolLabel.call(void 0, toolType) : "")));
132
+ const text = _nullishCoalesce(label, () => ( (toolType ? _chunkFD4DBTFOcjs.getToolLabel.call(void 0, toolType) : "")));
133
133
  const mark = _nullishCoalesce(icon, () => ( (toolType ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIIMICN7Lcjs.ToolIcon, { toolType, className: iconClassName, size: 16 }) : null)));
134
134
  const linked = (node, linkClassName) => href ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "a", { href, target: "_blank", rel: "noopener noreferrer", title: text || void 0, className: linkClassName, children: node }) : node;
135
135
  if (variant === "chip") {
@@ -163,31 +163,31 @@ var ToolBadge = ({
163
163
  // src/components/platform/ShellTypeBadge.tsx
164
164
 
165
165
  var shellIconMap = {
166
- [_chunkQDIX2ZRLcjs.ShellTypeValues.POWERSHELL]: {
166
+ [_chunkFD4DBTFOcjs.ShellTypeValues.POWERSHELL]: {
167
167
  icon: _chunkN3COXDBHcjs.PowershellLogoGreyIcon,
168
168
  props: { size: 16, className: "text-ods-text-secondary" }
169
169
  },
170
- [_chunkQDIX2ZRLcjs.ShellTypeValues.CMD]: {
170
+ [_chunkFD4DBTFOcjs.ShellTypeValues.CMD]: {
171
171
  icon: _chunkX72J4ACLcjs.CmdIcon,
172
172
  props: { size: 16, color: "var(--color-text-secondary)" }
173
173
  },
174
- [_chunkQDIX2ZRLcjs.ShellTypeValues.BASH]: {
174
+ [_chunkFD4DBTFOcjs.ShellTypeValues.BASH]: {
175
175
  icon: _chunkX72J4ACLcjs.BashIcon,
176
176
  props: { size: 16, color: "var(--color-text-secondary)" }
177
177
  },
178
- [_chunkQDIX2ZRLcjs.ShellTypeValues.PYTHON]: {
178
+ [_chunkFD4DBTFOcjs.ShellTypeValues.PYTHON]: {
179
179
  icon: _chunkN3COXDBHcjs.PythonLogoIcon,
180
180
  props: { size: 16, className: "text-ods-text-secondary" }
181
181
  },
182
- [_chunkQDIX2ZRLcjs.ShellTypeValues.NUSHELL]: {
182
+ [_chunkFD4DBTFOcjs.ShellTypeValues.NUSHELL]: {
183
183
  icon: _chunkX72J4ACLcjs.NushellIcon,
184
184
  props: { size: 16, color: "var(--color-text-secondary)" }
185
185
  },
186
- [_chunkQDIX2ZRLcjs.ShellTypeValues.DENO]: {
186
+ [_chunkFD4DBTFOcjs.ShellTypeValues.DENO]: {
187
187
  icon: _chunkX72J4ACLcjs.DenoIcon,
188
188
  props: { size: 16, color: "var(--color-text-secondary)" }
189
189
  },
190
- [_chunkQDIX2ZRLcjs.ShellTypeValues.SHELL]: {
190
+ [_chunkFD4DBTFOcjs.ShellTypeValues.SHELL]: {
191
191
  icon: _chunkX72J4ACLcjs.ShellIcon,
192
192
  props: { size: 16, color: "var(--color-text-secondary)" }
193
193
  }
@@ -198,7 +198,7 @@ var defaultIconConfig = {
198
198
  };
199
199
  var ShellTypeBadge = ({ shellType, className, iconClassName }) => {
200
200
  const normalizedType = _optionalChain([shellType, 'optionalAccess', _ => _.toUpperCase, 'call', _2 => _2()]);
201
- const label = _chunkQDIX2ZRLcjs.getShellLabel.call(void 0, normalizedType);
201
+ const label = _chunkFD4DBTFOcjs.getShellLabel.call(void 0, normalizedType);
202
202
  const { icon: IconComponent, props: iconProps } = _nullishCoalesce(shellIconMap[normalizedType], () => ( defaultIconConfig));
203
203
  const defaultIconClassName = "className" in iconProps ? iconProps.className : void 0;
204
204
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "flex items-center gap-1", className), children: [
@@ -214,7 +214,7 @@ function formatSupportedPlatforms(platforms) {
214
214
  if (!platforms || platforms.length === 0) {
215
215
  return "All Platforms";
216
216
  }
217
- return platforms.map((platform) => _chunkQDIX2ZRLcjs.getOSLabel.call(void 0, platform)).join(", ");
217
+ return platforms.map((platform) => _chunkFD4DBTFOcjs.getOSLabel.call(void 0, platform)).join(", ");
218
218
  }
219
219
  function InfoCell({ label, value, avatar, className }) {
220
220
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "flex min-w-0 items-center gap-2", className), children: [
@@ -234,7 +234,7 @@ var ScriptInfoSection = ({
234
234
  author,
235
235
  className
236
236
  }) => {
237
- const shellLabel = _chunkQDIX2ZRLcjs.getShellLabel.call(void 0, shellType);
237
+ const shellLabel = _chunkFD4DBTFOcjs.getShellLabel.call(void 0, shellType);
238
238
  const platformsLabel = formatSupportedPlatforms(supportedPlatforms);
239
239
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "overflow-hidden rounded-[6px] border border-ods-border bg-ods-card", className), children: [
240
240
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "border-b border-ods-border p-4", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-1", children: [
@@ -2,11 +2,11 @@
2
2
  import {
3
3
  ArticleAuthorByline,
4
4
  DetailPageSkeleton
5
- } from "./chunk-N7DPIH57.js";
5
+ } from "./chunk-JOY6HVPV.js";
6
6
  import {
7
7
  DocSearchBar,
8
8
  useDocSearch
9
- } from "./chunk-GD4JALTR.js";
9
+ } from "./chunk-446KS5BG.js";
10
10
  import {
11
11
  useSelfFetch
12
12
  } from "./chunk-5FFNNJM7.js";
@@ -18,7 +18,7 @@ import {
18
18
  PageShell,
19
19
  RichMarkdownRenderer,
20
20
  resolveContentHref
21
- } from "./chunk-B7M6QEEM.js";
21
+ } from "./chunk-CZ34HXDW.js";
22
22
  import {
23
23
  EntityVideoSection,
24
24
  VideoBitesStrip,
@@ -1,7 +1,7 @@
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 _chunkQDIX2ZRLcjs = require('./chunk-QDIX2ZRL.cjs');
4
+ var _chunkFD4DBTFOcjs = require('./chunk-FD4DBTFO.cjs');
5
5
 
6
6
 
7
7
  var _chunkIIMICN7Lcjs = require('./chunk-IIMICN7L.cjs');
@@ -130,7 +130,7 @@ function useSectionNavigation(sections, options) {
130
130
  // src/components/navigation/multi-level-navigation.tsx
131
131
  var _lucidereact = require('lucide-react');
132
132
 
133
- var DEFAULT_FOLDER_INDEX_FILE2 = _chunkQDIX2ZRLcjs.DEFAULT_FOLDER_INDEX_FILE;
133
+ var DEFAULT_FOLDER_INDEX_FILE2 = _chunkFD4DBTFOcjs.DEFAULT_FOLDER_INDEX_FILE;
134
134
  function isNodeVisuallySelected(node, selectedPath, folderIndexFile = DEFAULT_FOLDER_INDEX_FILE2) {
135
135
  const FOLDER_INDEX_FILE = folderIndexFile.toLowerCase();
136
136
  if (selectedPath === node.path) {