@flamingo-stack/openframe-frontend-core 0.0.757 → 0.0.758

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 (87) hide show
  1. package/dist/build/export-map.json +1 -1
  2. package/dist/{chunk-S5ITKW6G.cjs → chunk-2AEGJHW2.cjs} +51 -50
  3. package/dist/{chunk-7RADSQJF.cjs → chunk-5THYJU3G.cjs} +47 -1
  4. package/dist/{chunk-ORC3ZKHT.cjs → chunk-ECHJO4NI.cjs} +43 -19
  5. package/dist/{chunk-CT3UDNAV.cjs → chunk-GU3M4YF3.cjs} +64 -57
  6. package/dist/{chunk-VD4HVLXG.cjs → chunk-IQFXJSAH.cjs} +15 -15
  7. package/dist/{chunk-BLYP7ZT4.cjs → chunk-N2US7DLB.cjs} +25 -14
  8. package/dist/{chunk-33PJH2TF.cjs → chunk-RUMRBL5X.cjs} +10 -10
  9. package/dist/{chunk-HB3QFOHD.cjs → chunk-SEPHTWFL.cjs} +3 -3
  10. package/dist/{chunk-33RJU565.cjs → chunk-U2UVB4IF.cjs} +2 -2
  11. package/dist/{chunk-UWXUGP3V.cjs → chunk-YBOA5GZV.cjs} +3 -3
  12. package/dist/{chunk-AZFSHHWT.cjs → chunk-YLVTECAD.cjs} +2 -2
  13. package/dist/{cloud-tenants-PA5UU2KQ.cjs → cloud-tenants-WJCL4P3Y.cjs} +2 -2
  14. package/dist/components/case-studies/index.cjs +10 -10
  15. package/dist/components/contact/index.cjs +3 -3
  16. package/dist/components/docs/doc-viewer.d.ts +4 -0
  17. package/dist/components/docs/doc-viewer.d.ts.map +1 -1
  18. package/dist/components/docs/doc-viewer.js +3 -0
  19. package/dist/components/docs/index.cjs +5 -5
  20. package/dist/components/docs/use-document-tree.d.ts.map +1 -1
  21. package/dist/components/docs/use-document-tree.js +9 -1
  22. package/dist/components/embeds/index.cjs +3 -3
  23. package/dist/components/faq/index.cjs +3 -3
  24. package/dist/components/features/index.cjs +2 -2
  25. package/dist/components/help-center-pages/index.cjs +48 -47
  26. package/dist/components/help-center-pages/trust-center-page.d.ts +7 -1
  27. package/dist/components/help-center-pages/trust-center-page.d.ts.map +1 -1
  28. package/dist/components/help-center-pages/trust-center-page.js +4 -3
  29. package/dist/components/index.cjs +19 -17
  30. package/dist/components/layout/page-data-sync.d.ts +18 -0
  31. package/dist/components/layout/page-data-sync.d.ts.map +1 -0
  32. package/dist/components/layout/page-data-sync.js +33 -0
  33. package/dist/components/meeting-scheduler/index.cjs +13 -13
  34. package/dist/components/navigation/index.cjs +3 -3
  35. package/dist/components/onboarding-guides/index.cjs +4 -4
  36. package/dist/components/product-demo/index.cjs +7 -7
  37. package/dist/components/shared/delivery/delivery-lists.d.ts.map +1 -1
  38. package/dist/components/shared/delivery/delivery-lists.js +6 -0
  39. package/dist/components/shared/dev-section/dev-section-view.d.ts +3 -16
  40. package/dist/components/shared/dev-section/dev-section-view.d.ts.map +1 -1
  41. package/dist/components/shared/dev-section/dev-section-view.js +6 -13
  42. package/dist/components/shared/legal-document/legal-document-page.d.ts +1 -3
  43. package/dist/components/shared/legal-document/legal-document-page.d.ts.map +1 -1
  44. package/dist/components/shared/legal-document/legal-document-page.js +3 -9
  45. package/dist/components/shared/roadmap/roadmap-view.d.ts.map +1 -1
  46. package/dist/components/shared/roadmap/roadmap-view.js +29 -17
  47. package/dist/components/tickets/hooks/use-tickets-list.d.ts +4 -0
  48. package/dist/components/tickets/hooks/use-tickets-list.d.ts.map +1 -1
  49. package/dist/components/tickets/hooks/use-tickets-list.js +1 -0
  50. package/dist/components/tickets/index.cjs +5 -5
  51. package/dist/components/tickets/ticket-center.d.ts.map +1 -1
  52. package/dist/components/tickets/ticket-center.js +5 -6
  53. package/dist/components/ui/data-attribution.d.ts +13 -0
  54. package/dist/components/ui/data-attribution.d.ts.map +1 -1
  55. package/dist/components/ui/data-attribution.js +30 -1
  56. package/dist/components/ui/index.cjs +4 -2
  57. package/dist/{devices-72YSJM4Z.cjs → devices-PCMSALOA.cjs} +3 -3
  58. package/dist/index.cjs +9 -3
  59. package/dist/{knowledge-76RIDA7P.cjs → knowledge-FVCXNAMW.cjs} +2 -2
  60. package/dist/{logs-ODMJ3KOP.cjs → logs-IINFWMUF.cjs} +10 -10
  61. package/dist/{policies-5BZ5X2S4.cjs → policies-P3ZT774G.cjs} +6 -6
  62. package/dist/{scripts-TWQPG46M.cjs → scripts-KO4V2XO5.cjs} +7 -7
  63. package/dist/{software-update-TSGISQV5.cjs → software-update-PSJUU363.cjs} +5 -5
  64. package/dist/types/data-sync.d.ts +22 -0
  65. package/dist/types/data-sync.d.ts.map +1 -0
  66. package/dist/types/data-sync.js +12 -0
  67. package/dist/types/doc-source.d.ts +4 -0
  68. package/dist/types/doc-source.d.ts.map +1 -1
  69. package/dist/types/index.cjs +12 -0
  70. package/dist/types/index.d.ts +1 -0
  71. package/dist/types/index.d.ts.map +1 -1
  72. package/dist/types/index.js +1 -0
  73. package/package.json +1 -1
  74. package/src/components/docs/doc-viewer.tsx +9 -0
  75. package/src/components/docs/use-document-tree.ts +10 -0
  76. package/src/components/help-center-pages/trust-center-page.tsx +10 -3
  77. package/src/components/layout/page-data-sync.tsx +60 -0
  78. package/src/components/shared/delivery/delivery-lists.tsx +12 -2
  79. package/src/components/shared/dev-section/dev-section-view.tsx +37 -56
  80. package/src/components/shared/legal-document/legal-document-page.tsx +5 -13
  81. package/src/components/shared/roadmap/roadmap-view.tsx +37 -20
  82. package/src/components/tickets/hooks/use-tickets-list.ts +7 -0
  83. package/src/components/tickets/ticket-center.tsx +7 -3
  84. package/src/components/ui/data-attribution.tsx +44 -0
  85. package/src/types/data-sync.ts +26 -0
  86. package/src/types/doc-source.ts +4 -0
  87. package/src/types/index.ts +1 -0
@@ -3,7 +3,7 @@
3
3
 
4
4
 
5
5
 
6
- var _chunkUWXUGP3Vcjs = require('./chunk-UWXUGP3V.cjs');
6
+ var _chunkYBOA5GZVcjs = require('./chunk-YBOA5GZV.cjs');
7
7
 
8
8
 
9
9
 
@@ -13,13 +13,15 @@ var _chunkJEIAB7JQcjs = require('./chunk-JEIAB7JQ.cjs');
13
13
 
14
14
 
15
15
 
16
- var _chunk33RJU565cjs = require('./chunk-33RJU565.cjs');
16
+ var _chunkU2UVB4IFcjs = require('./chunk-U2UVB4IF.cjs');
17
17
 
18
18
 
19
19
 
20
20
 
21
21
 
22
- var _chunk7RADSQJFcjs = require('./chunk-7RADSQJF.cjs');
22
+
23
+
24
+ var _chunk5THYJU3Gcjs = require('./chunk-5THYJU3G.cjs');
23
25
 
24
26
 
25
27
  var _chunkAXBVN5SWcjs = require('./chunk-AXBVN5SW.cjs');
@@ -339,9 +341,16 @@ function toDocContent(value, requestedPath) {
339
341
  fileName: readString(value, "fileName"),
340
342
  fileSize: typeof fileSize === "number" ? fileSize : void 0,
341
343
  publishedAt: readString(value, "publishedAt"),
342
- updatedAt: readString(value, "updatedAt")
344
+ updatedAt: readString(value, "updatedAt"),
345
+ sync: toDataSync(value.sync)
343
346
  };
344
347
  }
348
+ function toDataSync(value) {
349
+ if (!isRecord(value)) return void 0;
350
+ const source = readString(value, "source");
351
+ if (!_chunk5THYJU3Gcjs.isDataSyncSource.call(void 0, source)) return void 0;
352
+ return { source, syncedAt: _nullishCoalesce(readString(value, "syncedAt"), () => ( null)) };
353
+ }
345
354
  function useDocumentTree(config, initialPath) {
346
355
  const { structureEndpoint, contentEndpoint, baseRoute } = config;
347
356
  const folderIndexFile = _nullishCoalesce(config.folderIndexFile, () => ( _chunk3C4U4UW6cjs.DEFAULT_FOLDER_INDEX_FILE));
@@ -705,6 +714,7 @@ function DocViewerContent({
705
714
  baseRoute,
706
715
  emptyStateText,
707
716
  showAIChat = false,
717
+ synced = false,
708
718
  folderIndexFile,
709
719
  backButton
710
720
  }) {
@@ -738,7 +748,7 @@ function DocViewerContent({
738
748
  label: _nullishCoalesce(_optionalChain([backButton, 'optionalAccess', _12 => _12.label]), () => ( "Back to home")),
739
749
  onClick: () => router.push(_nullishCoalesce(_optionalChain([backButton, 'optionalAccess', _13 => _13.href]), () => ( "/")))
740
750
  };
741
- const docSearch = _chunk33RJU565cjs.useDocSearch.call(void 0, {
751
+ const docSearch = _chunkU2UVB4IFcjs.useDocSearch.call(void 0, {
742
752
  source: chatSource,
743
753
  baseRoute,
744
754
  searchEndpoint,
@@ -774,10 +784,11 @@ function DocViewerContent({
774
784
  const defaultEmptyText = structure.length > 0 ? "Select a document from the sidebar to view" : "No documents yet. Add content from the admin panel.";
775
785
  const resolvedEmptyText = emptyStateText || defaultEmptyText;
776
786
  const inner = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { style: { ...bgStyle, ...containerBgStyle }, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkAXBVN5SWcjs.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: [
787
+ synced && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5THYJU3Gcjs.DataSyncLine, { sync: _optionalChain([content, 'optionalAccess', _19 => _19.sync]), loading: isLoadingContent && !content }),
777
788
  showAIChat && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
778
- _chunk33RJU565cjs.DocSearchBar,
789
+ _chunkU2UVB4IFcjs.DocSearchBar,
779
790
  {
780
- placeholder: `Search ${_optionalChain([sidebarLabel, 'optionalAccess', _19 => _19.toLowerCase, 'call', _20 => _20()]) || "documents"}...`,
791
+ placeholder: `Search ${_optionalChain([sidebarLabel, 'optionalAccess', _20 => _20.toLowerCase, 'call', _21 => _21()]) || "documents"}...`,
781
792
  query: docSearch.query,
782
793
  onQueryChange: docSearch.setQuery,
783
794
  results: docSearch.results,
@@ -794,7 +805,7 @@ function DocViewerContent({
794
805
  ] })
795
806
  ] }) }),
796
807
  !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: [
797
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full content-lg:w-[320px] content-lg:shrink-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "content-lg:sticky content-lg:top-20", children: isLoadingStructure ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7RADSQJFcjs.CategorySidebarSkeleton, {}) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
808
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full content-lg:w-[320px] content-lg:shrink-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "content-lg:sticky content-lg:top-20", children: isLoadingStructure ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5THYJU3Gcjs.CategorySidebarSkeleton, {}) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
798
809
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PersistentMobileDropdown, { isLoading: false, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
799
810
  _chunkJEIAB7JQcjs.MobileNavigationDropdown,
800
811
  {
@@ -864,7 +875,7 @@ function DocViewerContent({
864
875
  ) })
865
876
  ] })
866
877
  ] }) }) });
867
- return shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7RADSQJFcjs.PageShell, { contentClassName: `${bgClass} ${className}`, children: inner }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `page-shell-content ${bgClass} ${className}`.trim(), children: inner });
878
+ return shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5THYJU3Gcjs.PageShell, { contentClassName: `${bgClass} ${className}`, children: inner }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `page-shell-content ${bgClass} ${className}`.trim(), children: inner });
868
879
  }
869
880
 
870
881
  // src/components/docs/skeletons.tsx
@@ -950,7 +961,7 @@ function EmbedSkeleton({ documentType, region = true } = {}) {
950
961
  ] }),
951
962
  /* @__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, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-10 w-full flex-1 rounded content-sm:w-32 content-sm:flex-initial" }, i)) })
952
963
  ] }),
953
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7RADSQJFcjs.EmbedLoadingSkeleton, { region: false })
964
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5THYJU3Gcjs.EmbedLoadingSkeleton, { region: false })
954
965
  ] });
955
966
  }
956
967
 
@@ -958,11 +969,11 @@ function EmbedSkeleton({ documentType, region = true } = {}) {
958
969
 
959
970
  var DEFAULT_TITLE = "Documents";
960
971
  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" }) });
961
- var defaultPdfRenderer = (content, handlers) => content.fileUrl ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUWXUGP3Vcjs.PdfViewer, { src: content.fileUrl, fileName: content.fileName }) : defaultFallbackRenderer(content, handlers);
962
- var defaultGoogleSheetRenderer = (content, handlers) => content.externalUrl ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUWXUGP3Vcjs.GoogleSheetsViewer, { externalUrl: content.externalUrl, fileName: content.fileName }) : defaultFallbackRenderer(content, handlers);
963
- var defaultFigmaRenderer = (content, handlers) => content.externalUrl ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7RADSQJFcjs.FigmaEmbed, { url: content.externalUrl, title: content.fileName, loading: "eager" }) : defaultFallbackRenderer(content, handlers);
972
+ var defaultPdfRenderer = (content, handlers) => content.fileUrl ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYBOA5GZVcjs.PdfViewer, { src: content.fileUrl, fileName: content.fileName }) : defaultFallbackRenderer(content, handlers);
973
+ var defaultGoogleSheetRenderer = (content, handlers) => content.externalUrl ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYBOA5GZVcjs.GoogleSheetsViewer, { externalUrl: content.externalUrl, fileName: content.fileName }) : defaultFallbackRenderer(content, handlers);
974
+ var defaultFigmaRenderer = (content, handlers) => content.externalUrl ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5THYJU3Gcjs.FigmaEmbed, { url: content.externalUrl, title: content.fileName, loading: "eager" }) : defaultFallbackRenderer(content, handlers);
964
975
  var defaultFileRenderer = (content) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
965
- _chunkUWXUGP3Vcjs.FileDownloadCard,
976
+ _chunkYBOA5GZVcjs.FileDownloadCard,
966
977
  {
967
978
  fileName: content.fileName,
968
979
  mimeType: content.mimeType,
@@ -6,14 +6,14 @@ var _chunkVUSXDMCEcjs = require('./chunk-VUSXDMCE.cjs');
6
6
 
7
7
 
8
8
 
9
- var _chunk33RJU565cjs = require('./chunk-33RJU565.cjs');
9
+ var _chunkU2UVB4IFcjs = require('./chunk-U2UVB4IF.cjs');
10
10
 
11
11
 
12
12
 
13
13
 
14
14
 
15
15
 
16
- var _chunk7RADSQJFcjs = require('./chunk-7RADSQJF.cjs');
16
+ var _chunk5THYJU3Gcjs = require('./chunk-5THYJU3G.cjs');
17
17
 
18
18
 
19
19
  var _chunkAXBVN5SWcjs = require('./chunk-AXBVN5SW.cjs');
@@ -146,7 +146,7 @@ function OnboardingGuidesCatalogView({
146
146
  });
147
147
  };
148
148
  const source = _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _6 => _6.source]), () => ( "openframe"));
149
- const docSearch = _chunk33RJU565cjs.useDocSearch.call(void 0, {
149
+ const docSearch = _chunkU2UVB4IFcjs.useDocSearch.call(void 0, {
150
150
  source,
151
151
  baseRoute: basePath,
152
152
  onNavigate: (path) => router.push(path),
@@ -164,7 +164,7 @@ function OnboardingGuidesCatalogView({
164
164
  const renderCardFn = _nullishCoalesce(renderCard, () => ( defaultRenderCard));
165
165
  const preControls = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
166
166
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
167
- _chunk33RJU565cjs.DocSearchBar,
167
+ _chunkU2UVB4IFcjs.DocSearchBar,
168
168
  {
169
169
  placeholder: "Search onboarding guides, releases, case studies\u2026",
170
170
  query: docSearch.query,
@@ -176,7 +176,7 @@ function OnboardingGuidesCatalogView({
176
176
  }
177
177
  ),
178
178
  sections.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
179
- _chunk7RADSQJFcjs.FilterPillRow,
179
+ _chunk5THYJU3Gcjs.FilterPillRow,
180
180
  {
181
181
  label: "Section",
182
182
  selectedValue: activeSection,
@@ -186,7 +186,7 @@ function OnboardingGuidesCatalogView({
186
186
  )
187
187
  ] });
188
188
  if (selfFetch && guidesRes.error) {
189
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7RADSQJFcjs.LoadError, { message: "Failed to load onboarding guides.", onRetry: guidesRes.reload });
189
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5THYJU3Gcjs.LoadError, { message: "Failed to load onboarding guides.", onRetry: guidesRes.reload });
190
190
  }
191
191
  if (selfFetch && guidesRes.data == null && isLoading) {
192
192
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, OnboardingGuidesCatalogSkeleton, {});
@@ -218,7 +218,7 @@ function OnboardingGuideDetailView({
218
218
  slug,
219
219
  guideEndpoint,
220
220
  related = [],
221
- MarkdownRenderer = _chunk7RADSQJFcjs.RichMarkdownRenderer,
221
+ MarkdownRenderer = _chunk5THYJU3Gcjs.RichMarkdownRenderer,
222
222
  renderRelatedCard,
223
223
  backHref,
224
224
  backLabel = "Back to Getting Started",
@@ -230,7 +230,7 @@ function OnboardingGuideDetailView({
230
230
  const runtime = _chunkUJ7AXHRZcjs.useChatRuntime.call(void 0, );
231
231
  const captions = _chunkQTYSYEHKcjs.useCaptions.call(void 0, );
232
232
  const router = _chunk7DNL734Scjs.useRouter.call(void 0, );
233
- const renderShell = (node) => shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7RADSQJFcjs.PageShell, { children: node }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: node });
233
+ const renderShell = (node) => shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5THYJU3Gcjs.PageShell, { children: node }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: node });
234
234
  const url = initialData ? null : slug && guideEndpoint ? guideEndpoint(slug) : null;
235
235
  const { data: guide, isLoading, error, reload } = _chunkB27XV2TCcjs.useSelfFetch.call(void 0, url, { initialData });
236
236
  const { ref: videoWarmupRef } = _chunk3RFQPQ7Zcjs.useVideoWarmup.call(void 0, {
@@ -238,7 +238,7 @@ function OnboardingGuideDetailView({
238
238
  supabaseStorageOrigin: _optionalChain([runtime, 'optionalAccess', _9 => _9.endpoints, 'access', _10 => _10.supabaseStorageOrigin])
239
239
  });
240
240
  if (error || !guide && !isLoading) {
241
- return renderShell(/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7RADSQJFcjs.LoadError, { message: "Guide not found.", onRetry: reload }));
241
+ return renderShell(/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5THYJU3Gcjs.LoadError, { message: "Guide not found.", onRetry: reload }));
242
242
  }
243
243
  if (!guide) {
244
244
  return renderShell(
@@ -270,7 +270,7 @@ function OnboardingGuideDetailView({
270
270
  titleWrap: true,
271
271
  backButton: { label: backLabel, onClick: () => router.push(resolvedBackHref) },
272
272
  children: [
273
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7RADSQJFcjs.EntityTagBadges, { tags: guide.onboarding_guide_tags }),
273
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5THYJU3Gcjs.EntityTagBadges, { tags: guide.onboarding_guide_tags }),
274
274
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
275
275
  _chunk7Z4EQOIXcjs.EntityAuthorCard,
276
276
  {
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- var _chunk7RADSQJFcjs = require('./chunk-7RADSQJF.cjs');
5
+ var _chunk5THYJU3Gcjs = require('./chunk-5THYJU3G.cjs');
6
6
 
7
7
 
8
8
 
@@ -209,7 +209,7 @@ function ContactForm({
209
209
  !showEmail && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "input", { type: "hidden", ...register("email") }),
210
210
  !showHelpCategory && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "input", { type: "hidden", ...register("helpCategory") }),
211
211
  !showMessage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "input", { type: "hidden", ...register("message") }),
212
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7RADSQJFcjs.HoneypotField, { ...honeypotInputProps }),
212
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5THYJU3Gcjs.HoneypotField, { ...honeypotInputProps }),
213
213
  extraTopField,
214
214
  showNameEmailRow && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid grid-cols-1 gap-4 content-md:grid-cols-2 content-md:gap-6", children: [
215
215
  showName && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col", children: [
@@ -334,7 +334,7 @@ function ContactForm({
334
334
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHTRILBJDcjs.RequiredMark, {})
335
335
  ] }),
336
336
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
337
- _chunk7RADSQJFcjs.Textarea,
337
+ _chunk5THYJU3Gcjs.Textarea,
338
338
  {
339
339
  id: "message",
340
340
  ...register("message"),
@@ -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 _chunk7RADSQJFcjs = require('./chunk-7RADSQJF.cjs');
4
+ var _chunk5THYJU3Gcjs = require('./chunk-5THYJU3G.cjs');
5
5
 
6
6
 
7
7
 
@@ -70,7 +70,7 @@ function DocSearchBar({
70
70
  renderResult
71
71
  }) {
72
72
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
73
- _chunk7RADSQJFcjs.SearchInput,
73
+ _chunk5THYJU3Gcjs.SearchInput,
74
74
  {
75
75
  placeholder,
76
76
  value: query,
@@ -1,7 +1,7 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
2
 
3
3
 
4
- var _chunk7RADSQJFcjs = require('./chunk-7RADSQJF.cjs');
4
+ var _chunk5THYJU3Gcjs = require('./chunk-5THYJU3G.cjs');
5
5
 
6
6
 
7
7
  var _chunkCKR42OBKcjs = require('./chunk-CKR42OBK.cjs');
@@ -48,7 +48,7 @@ function GoogleSheetsViewer({ externalUrl, fileName, height }) {
48
48
  ] });
49
49
  }
50
50
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
51
- _chunk7RADSQJFcjs.EmbedViewerFrame,
51
+ _chunk5THYJU3Gcjs.EmbedViewerFrame,
52
52
  {
53
53
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCKR42OBKcjs.GoogleSheetsIcon, { className: "h-5 w-5 shrink-0" }),
54
54
  title: displayName,
@@ -83,7 +83,7 @@ function PdfViewer({ src, fileName, onPreview, onDownload, height }) {
83
83
  ] });
84
84
  }
85
85
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
86
- _chunk7RADSQJFcjs.EmbedViewerFrame,
86
+ _chunk5THYJU3Gcjs.EmbedViewerFrame,
87
87
  {
88
88
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM7ZSKWT3cjs.AdobePdfIcon, { className: "h-5 w-5 shrink-0" }),
89
89
  title: displayName,
@@ -4,7 +4,7 @@
4
4
  var _chunkRPADJ2E6cjs = require('./chunk-RPADJ2E6.cjs');
5
5
 
6
6
 
7
- var _chunk7RADSQJFcjs = require('./chunk-7RADSQJF.cjs');
7
+ var _chunk5THYJU3Gcjs = require('./chunk-5THYJU3G.cjs');
8
8
 
9
9
 
10
10
  var _chunkAXBVN5SWcjs = require('./chunk-AXBVN5SW.cjs');
@@ -49,7 +49,7 @@ function FaqDocumentPage({
49
49
  ask
50
50
  }
51
51
  ) });
52
- return shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7RADSQJFcjs.PageShell, { children: inner }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: inner });
52
+ return shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5THYJU3Gcjs.PageShell, { children: inner }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: inner });
53
53
  }
54
54
 
55
55
 
@@ -9,7 +9,7 @@ var _chunkSTEJZPIOcjs = require('./chunk-STEJZPIO.cjs');
9
9
  var _chunkDKOLQPE7cjs = require('./chunk-DKOLQPE7.cjs');
10
10
 
11
11
 
12
- var _chunk7RADSQJFcjs = require('./chunk-7RADSQJF.cjs');
12
+ var _chunk5THYJU3Gcjs = require('./chunk-5THYJU3G.cjs');
13
13
  require('./chunk-2ANICXS7.cjs');
14
14
  require('./chunk-NTGIQP7O.cjs');
15
15
  require('./chunk-AXBVN5SW.cjs');
@@ -1920,7 +1920,7 @@ var getHref = () => "#";
1920
1920
  function CloudTenantsScreen(_props) {
1921
1921
  const cast = _chunkSTEJZPIOcjs.useProductDemoCast.call(void 0, );
1922
1922
  const fixture = _react.useMemo.call(void 0, () => buildCloudTenantsFixture(cast), [cast]);
1923
- const table = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7RADSQJFcjs.TenantsTableView, { rows: fixture.rows, getHref, now: fixture.now });
1923
+ const table = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5THYJU3Gcjs.TenantsTableView, { rows: fixture.rows, getHref, now: fixture.now });
1924
1924
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-full bg-ods-bg p-[var(--spacing-system-l)]", children: table });
1925
1925
  }
1926
1926
 
@@ -4,13 +4,13 @@
4
4
  var _chunkDTKGIG4Acjs = require('../../chunk-DTKGIG4A.cjs');
5
5
 
6
6
 
7
- var _chunkHB3QFOHDcjs = require('../../chunk-HB3QFOHD.cjs');
7
+ var _chunkSEPHTWFLcjs = require('../../chunk-SEPHTWFL.cjs');
8
8
 
9
9
 
10
10
 
11
11
 
12
12
 
13
- var _chunk7RADSQJFcjs = require('../../chunk-7RADSQJF.cjs');
13
+ var _chunk5THYJU3Gcjs = require('../../chunk-5THYJU3G.cjs');
14
14
  require('../../chunk-2ANICXS7.cjs');
15
15
  require('../../chunk-NTGIQP7O.cjs');
16
16
  require('../../chunk-AXBVN5SW.cjs');
@@ -1927,9 +1927,9 @@ function ShareExperienceSection({
1927
1927
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "text-h2", children: howItWorksTitle }),
1928
1928
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h4", children: howItWorksBody })
1929
1929
  ] }),
1930
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunk7RADSQJFcjs.BenefitCardGrid, { columns: 4, children: [
1930
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunk5THYJU3Gcjs.BenefitCardGrid, { columns: 4, children: [
1931
1931
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1932
- _chunk7RADSQJFcjs.BenefitCard,
1932
+ _chunk5THYJU3Gcjs.BenefitCard,
1933
1933
  {
1934
1934
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-12 w-12 items-center justify-center rounded-md border border-ods-border bg-ods-bg p-2", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkMJQLBIZMcjs.G2Icon, { color: "var(--social-g2)", size: 24 }) }),
1935
1935
  title: "G2",
@@ -1938,7 +1938,7 @@ function ShareExperienceSection({
1938
1938
  }
1939
1939
  ),
1940
1940
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1941
- _chunk7RADSQJFcjs.BenefitCard,
1941
+ _chunk5THYJU3Gcjs.BenefitCard,
1942
1942
  {
1943
1943
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-12 w-12 items-center justify-center rounded-md border border-ods-border bg-ods-bg p-2", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkA2VKPXOBcjs.CapterraIcon, { size: 24 }) }),
1944
1944
  title: "Capterra",
@@ -1947,7 +1947,7 @@ function ShareExperienceSection({
1947
1947
  }
1948
1948
  ),
1949
1949
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1950
- _chunk7RADSQJFcjs.BenefitCard,
1950
+ _chunk5THYJU3Gcjs.BenefitCard,
1951
1951
  {
1952
1952
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-12 w-12 items-center justify-center rounded-md border border-ods-border bg-ods-bg p-2", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTLKSZG3Dcjs.TrustpilotIcon, { size: 24 }) }),
1953
1953
  title: "TrustPilot",
@@ -1956,7 +1956,7 @@ function ShareExperienceSection({
1956
1956
  }
1957
1957
  ),
1958
1958
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1959
- _chunk7RADSQJFcjs.BenefitCard,
1959
+ _chunk5THYJU3Gcjs.BenefitCard,
1960
1960
  {
1961
1961
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-12 w-12 items-center justify-center rounded-md border border-ods-border bg-ods-bg p-2", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkILYW6BQNcjs.GetappIcon, { size: 24 }) }),
1962
1962
  title: "GetApp",
@@ -1965,7 +1965,7 @@ function ShareExperienceSection({
1965
1965
  }
1966
1966
  )
1967
1967
  ] }),
1968
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHB3QFOHDcjs.ContactForm, { ...DEFAULT_CONTACT_FORM_PROPS, ...contactFormProps })
1968
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkSEPHTWFLcjs.ContactForm, { ...DEFAULT_CONTACT_FORM_PROPS, ...contactFormProps })
1969
1969
  ] }) })
1970
1970
  ] });
1971
1971
  }
@@ -1975,7 +1975,7 @@ function ShareExperienceSection({
1975
1975
  function EntityQuotesPanel({ quotes, className }) {
1976
1976
  if (!quotes || quotes.length === 0) return null;
1977
1977
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1978
- _chunk7RADSQJFcjs.StackedRowsPanel,
1978
+ _chunk5THYJU3Gcjs.StackedRowsPanel,
1979
1979
  {
1980
1980
  className,
1981
1981
  title: `${_chunkDTKGIG4Acjs.ENTITY_QUOTES_TITLE} \xB7 ${quotes.length}`,
@@ -2019,7 +2019,7 @@ function QuoteCardsStrip({ quotes, className }) {
2019
2019
  onPointerLeave: ctx.isTouch ? void 0 : () => ctx.onDeactivate(ctx.cardKey),
2020
2020
  className: "relative shrink-0 rounded-md border-ods-border bg-ods-card p-[var(--spacing-system-sf)] shadow-none hover:border-ods-border-hover",
2021
2021
  children: [
2022
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7RADSQJFcjs.PersonCell, { size: "lg", name: `"${quote.text}"`, secondary: quote.attribution, avatarUrl: quote.logoUrl }),
2022
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5THYJU3Gcjs.PersonCell, { size: "lg", name: `"${quote.text}"`, secondary: quote.attribution, avatarUrl: quote.logoUrl }),
2023
2023
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQTYSYEHKcjs.CardHitLayer, { href: quote.href, label: `${quote.text}, ${quote.attribution}`, decorative: ctx.isClone })
2024
2024
  ]
2025
2025
  },
@@ -1,8 +1,8 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
2
 
3
3
 
4
- var _chunkHB3QFOHDcjs = require('../../chunk-HB3QFOHD.cjs');
5
- require('../../chunk-7RADSQJF.cjs');
4
+ var _chunkSEPHTWFLcjs = require('../../chunk-SEPHTWFL.cjs');
5
+ require('../../chunk-5THYJU3G.cjs');
6
6
  require('../../chunk-2ANICXS7.cjs');
7
7
  require('../../chunk-NTGIQP7O.cjs');
8
8
  require('../../chunk-AXBVN5SW.cjs');
@@ -1856,4 +1856,4 @@ require('../../chunk-H3RYUTND.cjs');
1856
1856
  require('../../chunk-3ATAYP36.cjs');
1857
1857
 
1858
1858
 
1859
- exports.ContactForm = _chunkHB3QFOHDcjs.ContactForm;
1859
+ exports.ContactForm = _chunkSEPHTWFLcjs.ContactForm;
@@ -90,6 +90,10 @@ export interface DocViewerProps {
90
90
  emptyStateText?: string;
91
91
  /** Whether to render the doc-search bar (bound to chat). */
92
92
  showAIChat?: boolean;
93
+ /** This source's documents are mirrored from another system and carry a `sync` (the knowledge base, from GitHub):
94
+ * the page then states it in the first row under its title, holding the row with a skeleton while a document
95
+ * loads. Default false: a source nothing syncs (the data room) never draws the row. */
96
+ synced?: boolean;
93
97
  /** Folder-index filename (default `'README.md'`). */
94
98
  folderIndexFile?: string;
95
99
  /** Back-button shown above the title. Mirrors `<DevSectionPage>` /
@@ -1 +1 @@
1
- {"version":3,"file":"doc-viewer.d.ts","sourceRoot":"","sources":["../../../src/components/docs/doc-viewer.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAelG;;4EAE4E;AAC5E,eAAO,MAAM,0BAA0B;;;;;;;;;CAS7B,CAAC;AAEX,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,QAAQ,EAAE,WAAW,CAAC;IAEtB;;;;OAIG;IACH,aAAa,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,iBAAiB,KAAK,KAAK,CAAC,SAAS,CAAC;IAErF;;;;OAIG;IACH,cAAc,EAAE,CAAC,YAAY,EAAE,OAAO,CAAC,cAAc,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC;IAE3E;;;;OAIG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;;sDAGkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;uCAImC;IACnC,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;yEAEqE;IACrE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,OAAO,0BAA0B,CAAC;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;oEAEgE;IAChE,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,0CAA0C;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,8DAA8D;IAC9D,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,8FAA8F;IAC9F,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;iFAE6E;IAC7E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;uDAKmD;IACnD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAElB,gDAAgD;IAChD,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,4DAA4D;IAC5D,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,qDAAqD;IACrD,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;;0BAIsB;IACtB,UAAU,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,KAAK,CAAC;CACxD;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,qBAE9C"}
1
+ {"version":3,"file":"doc-viewer.d.ts","sourceRoot":"","sources":["../../../src/components/docs/doc-viewer.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAgBlG;;4EAE4E;AAC5E,eAAO,MAAM,0BAA0B;;;;;;;;;CAS7B,CAAC;AAEX,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,QAAQ,EAAE,WAAW,CAAC;IAEtB;;;;OAIG;IACH,aAAa,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,iBAAiB,KAAK,KAAK,CAAC,SAAS,CAAC;IAErF;;;;OAIG;IACH,cAAc,EAAE,CAAC,YAAY,EAAE,OAAO,CAAC,cAAc,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC;IAE3E;;;;OAIG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;;sDAGkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;uCAImC;IACnC,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;yEAEqE;IACrE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,OAAO,0BAA0B,CAAC;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;oEAEgE;IAChE,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,0CAA0C;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,8DAA8D;IAC9D,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,8FAA8F;IAC9F,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;iFAE6E;IAC7E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;uDAKmD;IACnD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAElB,gDAAgD;IAChD,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,4DAA4D;IAC5D,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;4FAEwF;IACxF,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,qDAAqD;IACrD,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;;0BAIsB;IACtB,UAAU,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,KAAK,CAAC;CACxD;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,qBAE9C"}
@@ -11,6 +11,7 @@ import { MultiLevelNavigation, MobileNavigationDropdown } from "../navigation/mu
11
11
  import { StickySectionNav } from "../navigation/sticky-section-nav.js";
12
12
  import { PersistentSidebar, PersistentMobileDropdown } from "../persistent-filter-controls.js";
13
13
  import { DocSearchBar, useDocSearch } from "../shared/doc-search/index.js";
14
+ import { DataSyncLine } from "../ui/data-attribution.js";
14
15
  import { useDocNavigation } from "./doc-navigation-context.js";
15
16
  import { useDocsResolveLink } from "./use-docs-resolve-link.js";
16
17
  import { useDocumentTree } from "./use-document-tree.js";
@@ -47,6 +48,7 @@ function DocViewerContent({
47
48
  baseRoute,
48
49
  emptyStateText,
49
50
  showAIChat = false,
51
+ synced = false,
50
52
  folderIndexFile,
51
53
  backButton
52
54
  }) {
@@ -116,6 +118,7 @@ function DocViewerContent({
116
118
  const defaultEmptyText = structure.length > 0 ? "Select a document from the sidebar to view" : "No documents yet. Add content from the admin panel.";
117
119
  const resolvedEmptyText = emptyStateText || defaultEmptyText;
118
120
  const inner = /* @__PURE__ */ jsx("div", { style: { ...bgStyle, ...containerBgStyle }, children: /* @__PURE__ */ jsx(PageLayout, { title, subtitle, titleSize: "h1", titleWrap: true, backButton: backCfg ?? void 0, children: /* @__PURE__ */ jsxs("div", { className: "flex w-full flex-col gap-10", children: [
121
+ synced && /* @__PURE__ */ jsx(DataSyncLine, { sync: content?.sync, loading: isLoadingContent && !content }),
119
122
  showAIChat && /* @__PURE__ */ jsx(
120
123
  DocSearchBar,
121
124
  {
@@ -8,13 +8,13 @@
8
8
 
9
9
 
10
10
 
11
- var _chunkBLYP7ZT4cjs = require('../../chunk-BLYP7ZT4.cjs');
12
- require('../../chunk-UWXUGP3V.cjs');
11
+ var _chunkN2US7DLBcjs = require('../../chunk-N2US7DLB.cjs');
12
+ require('../../chunk-YBOA5GZV.cjs');
13
13
 
14
14
 
15
15
  var _chunkJEIAB7JQcjs = require('../../chunk-JEIAB7JQ.cjs');
16
- require('../../chunk-33RJU565.cjs');
17
- require('../../chunk-7RADSQJF.cjs');
16
+ require('../../chunk-U2UVB4IF.cjs');
17
+ require('../../chunk-5THYJU3G.cjs');
18
18
  require('../../chunk-2ANICXS7.cjs');
19
19
  require('../../chunk-NTGIQP7O.cjs');
20
20
  require('../../chunk-AXBVN5SW.cjs');
@@ -1875,4 +1875,4 @@ require('../../chunk-3ATAYP36.cjs');
1875
1875
 
1876
1876
 
1877
1877
 
1878
- exports.DocNavigationProvider = _chunkBLYP7ZT4cjs.DocNavigationProvider; exports.DocViewer = _chunkBLYP7ZT4cjs.DocViewer; exports.DocsHubPage = _chunkBLYP7ZT4cjs.DocsHubPage; exports.EmbedSkeleton = _chunkBLYP7ZT4cjs.EmbedSkeleton; exports.MarkdownSkeleton = _chunkBLYP7ZT4cjs.MarkdownSkeleton; exports.useDocNavigation = _chunkBLYP7ZT4cjs.useDocNavigation; exports.useDocumentTree = _chunkBLYP7ZT4cjs.useDocumentTree; exports.useScrollSpy = _chunkJEIAB7JQcjs.useScrollSpy;
1878
+ exports.DocNavigationProvider = _chunkN2US7DLBcjs.DocNavigationProvider; exports.DocViewer = _chunkN2US7DLBcjs.DocViewer; exports.DocsHubPage = _chunkN2US7DLBcjs.DocsHubPage; exports.EmbedSkeleton = _chunkN2US7DLBcjs.EmbedSkeleton; exports.MarkdownSkeleton = _chunkN2US7DLBcjs.MarkdownSkeleton; exports.useDocNavigation = _chunkN2US7DLBcjs.useDocNavigation; exports.useDocumentTree = _chunkN2US7DLBcjs.useDocumentTree; exports.useScrollSpy = _chunkJEIAB7JQcjs.useScrollSpy;
@@ -1 +1 @@
1
- {"version":3,"file":"use-document-tree.d.ts","sourceRoot":"","sources":["../../../src/components/docs/use-document-tree.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAgB,MAAM,wBAAwB,CAAC;AAoLhF,MAAM,WAAW,qBAAqB;IACpC,4DAA4D;IAC5D,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iDAAiD;IACjD,eAAe,EAAE,MAAM,CAAC;IACxB,iFAAiF;IACjF,SAAS,EAAE,MAAM,CAAC;IAClB,uDAAuD;IACvD,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,qBAAqB,EAAE,WAAW,CAAC,EAAE,MAAM;;;;;;;;;yBAgVzC,MAAM;uBAiBrC,IAAI,CAAC,OAAO,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC;0BAgCnD,MAAM,YAAY;QAAE,YAAY,CAAC,EAAE,OAAO,CAAC;QAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAE;;;EAoJlF;AAED,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"use-document-tree.d.ts","sourceRoot":"","sources":["../../../src/components/docs/use-document-tree.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAgB,MAAM,wBAAwB,CAAC;AA6LhF,MAAM,WAAW,qBAAqB;IACpC,4DAA4D;IAC5D,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iDAAiD;IACjD,eAAe,EAAE,MAAM,CAAC;IACxB,iFAAiF;IACjF,SAAS,EAAE,MAAM,CAAC;IAClB,uDAAuD;IACvD,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,qBAAqB,EAAE,WAAW,CAAC,EAAE,MAAM;;;;;;;;;yBAgVzC,MAAM;uBAiBrC,IAAI,CAAC,OAAO,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC;0BAgCnD,MAAM,YAAY;QAAE,YAAY,CAAC,EAAE,OAAO,CAAC;QAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAE;;;EAoJlF;AAED,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC"}
@@ -1,5 +1,6 @@
1
1
  "use client";
2
2
  import { useState, useEffect, useCallback, useMemo, useRef } from "react";
3
+ import { isDataSyncSource } from "../../types/data-sync.js";
3
4
  import { apiErrorMessage } from "../../utils/common.js";
4
5
  import {
5
6
  stripFolderIndexFromPath,
@@ -110,9 +111,16 @@ function toDocContent(value, requestedPath) {
110
111
  fileName: readString(value, "fileName"),
111
112
  fileSize: typeof fileSize === "number" ? fileSize : void 0,
112
113
  publishedAt: readString(value, "publishedAt"),
113
- updatedAt: readString(value, "updatedAt")
114
+ updatedAt: readString(value, "updatedAt"),
115
+ sync: toDataSync(value.sync)
114
116
  };
115
117
  }
118
+ function toDataSync(value) {
119
+ if (!isRecord(value)) return void 0;
120
+ const source = readString(value, "source");
121
+ if (!isDataSyncSource(source)) return void 0;
122
+ return { source, syncedAt: readString(value, "syncedAt") ?? null };
123
+ }
116
124
  function useDocumentTree(config, initialPath) {
117
125
  const { structureEndpoint, contentEndpoint, baseRoute } = config;
118
126
  const folderIndexFile = config.folderIndexFile ?? DEFAULT_FOLDER_INDEX_FILE;
@@ -4,7 +4,7 @@ require('../../chunk-7SEARXQW.cjs');
4
4
 
5
5
 
6
6
 
7
- var _chunkUWXUGP3Vcjs = require('../../chunk-UWXUGP3V.cjs');
7
+ var _chunkYBOA5GZVcjs = require('../../chunk-YBOA5GZV.cjs');
8
8
 
9
9
 
10
10
 
@@ -26,7 +26,7 @@ var _chunkUWXUGP3Vcjs = require('../../chunk-UWXUGP3V.cjs');
26
26
 
27
27
 
28
28
 
29
- var _chunk7RADSQJFcjs = require('../../chunk-7RADSQJF.cjs');
29
+ var _chunk5THYJU3Gcjs = require('../../chunk-5THYJU3G.cjs');
30
30
  require('../../chunk-2ANICXS7.cjs');
31
31
  require('../../chunk-NTGIQP7O.cjs');
32
32
  require('../../chunk-AXBVN5SW.cjs');
@@ -1902,4 +1902,4 @@ require('../../chunk-3ATAYP36.cjs');
1902
1902
 
1903
1903
 
1904
1904
 
1905
- exports.ClaudeEmbed = _chunk7RADSQJFcjs.ClaudeEmbed; exports.EMBED_SIZES = _chunk7RADSQJFcjs.EMBED_SIZES; exports.EmbedContainer = _chunk7RADSQJFcjs.EmbedContainer; exports.EmbedIframe = _chunk7RADSQJFcjs.EmbedIframe; exports.EmbedViewerFrame = _chunk7RADSQJFcjs.EmbedViewerFrame; exports.FigmaEmbed = _chunk7RADSQJFcjs.FigmaEmbed; exports.FileDownloadCard = _chunkUWXUGP3Vcjs.FileDownloadCard; exports.GoogleSheetsViewer = _chunkUWXUGP3Vcjs.GoogleSheetsViewer; exports.LinkPreviewContainer = _chunk7RADSQJFcjs.LinkPreviewContainer; exports.LinkedInContainer = _chunk7RADSQJFcjs.LinkedInContainer; exports.LinkedInEmbedClient = _chunk7RADSQJFcjs.LinkedInEmbedClient; exports.MarkdownImage = _chunk7RADSQJFcjs.MarkdownImage; exports.OGLinkErrorBoundary = _chunk7RADSQJFcjs.OGLinkErrorBoundary; exports.OGLinkPreview = _chunk7RADSQJFcjs.OGLinkPreview; exports.OGLinkTileSkeleton = _chunk7RADSQJFcjs.OGLinkTileSkeleton; exports.PdfViewer = _chunkUWXUGP3Vcjs.PdfViewer; exports.RedditContainer = _chunk7RADSQJFcjs.RedditContainer; exports.RedditEmbedClient = _chunk7RADSQJFcjs.RedditEmbedClient; exports.RichMarkdownRuntimeProvider = _chunk7RADSQJFcjs.RichMarkdownRuntimeProvider; exports.TwitterContainer = _chunk7RADSQJFcjs.TwitterContainer; exports.TwitterEmbedClient = _chunk7RADSQJFcjs.TwitterEmbedClient; exports.YouTubeContainer = _chunk7RADSQJFcjs.YouTubeContainer; exports.useRichMarkdownRuntime = _chunk7RADSQJFcjs.useRichMarkdownRuntime;
1905
+ exports.ClaudeEmbed = _chunk5THYJU3Gcjs.ClaudeEmbed; exports.EMBED_SIZES = _chunk5THYJU3Gcjs.EMBED_SIZES; exports.EmbedContainer = _chunk5THYJU3Gcjs.EmbedContainer; exports.EmbedIframe = _chunk5THYJU3Gcjs.EmbedIframe; exports.EmbedViewerFrame = _chunk5THYJU3Gcjs.EmbedViewerFrame; exports.FigmaEmbed = _chunk5THYJU3Gcjs.FigmaEmbed; exports.FileDownloadCard = _chunkYBOA5GZVcjs.FileDownloadCard; exports.GoogleSheetsViewer = _chunkYBOA5GZVcjs.GoogleSheetsViewer; exports.LinkPreviewContainer = _chunk5THYJU3Gcjs.LinkPreviewContainer; exports.LinkedInContainer = _chunk5THYJU3Gcjs.LinkedInContainer; exports.LinkedInEmbedClient = _chunk5THYJU3Gcjs.LinkedInEmbedClient; exports.MarkdownImage = _chunk5THYJU3Gcjs.MarkdownImage; exports.OGLinkErrorBoundary = _chunk5THYJU3Gcjs.OGLinkErrorBoundary; exports.OGLinkPreview = _chunk5THYJU3Gcjs.OGLinkPreview; exports.OGLinkTileSkeleton = _chunk5THYJU3Gcjs.OGLinkTileSkeleton; exports.PdfViewer = _chunkYBOA5GZVcjs.PdfViewer; exports.RedditContainer = _chunk5THYJU3Gcjs.RedditContainer; exports.RedditEmbedClient = _chunk5THYJU3Gcjs.RedditEmbedClient; exports.RichMarkdownRuntimeProvider = _chunk5THYJU3Gcjs.RichMarkdownRuntimeProvider; exports.TwitterContainer = _chunk5THYJU3Gcjs.TwitterContainer; exports.TwitterEmbedClient = _chunk5THYJU3Gcjs.TwitterEmbedClient; exports.YouTubeContainer = _chunk5THYJU3Gcjs.YouTubeContainer; exports.useRichMarkdownRuntime = _chunk5THYJU3Gcjs.useRichMarkdownRuntime;
@@ -1,14 +1,14 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
2
 
3
3
 
4
- var _chunkAZFSHHWTcjs = require('../../chunk-AZFSHHWT.cjs');
4
+ var _chunkYLVTECADcjs = require('../../chunk-YLVTECAD.cjs');
5
5
 
6
6
 
7
7
 
8
8
 
9
9
 
10
10
  var _chunkRPADJ2E6cjs = require('../../chunk-RPADJ2E6.cjs');
11
- require('../../chunk-7RADSQJF.cjs');
11
+ require('../../chunk-5THYJU3G.cjs');
12
12
  require('../../chunk-2ANICXS7.cjs');
13
13
  require('../../chunk-NTGIQP7O.cjs');
14
14
  require('../../chunk-AXBVN5SW.cjs');
@@ -1866,4 +1866,4 @@ require('../../chunk-3ATAYP36.cjs');
1866
1866
 
1867
1867
 
1868
1868
 
1869
- exports.FaqAskCard = _chunkRPADJ2E6cjs.FaqAskCard; exports.FaqDocumentPage = _chunkAZFSHHWTcjs.FaqDocumentPage; exports.FaqSection = _chunkRPADJ2E6cjs.FaqSection; exports.PAGE_FAQ_SECTION_ID = _chunkRPADJ2E6cjs.PAGE_FAQ_SECTION_ID; exports.pageFaqProps = _chunkRPADJ2E6cjs.pageFaqProps;
1869
+ exports.FaqAskCard = _chunkRPADJ2E6cjs.FaqAskCard; exports.FaqDocumentPage = _chunkYLVTECADcjs.FaqDocumentPage; exports.FaqSection = _chunkRPADJ2E6cjs.FaqSection; exports.PAGE_FAQ_SECTION_ID = _chunkRPADJ2E6cjs.PAGE_FAQ_SECTION_ID; exports.pageFaqProps = _chunkRPADJ2E6cjs.pageFaqProps;