@flamingo-stack/openframe-frontend-core 0.0.490 → 0.0.491

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 (154) hide show
  1. package/dist/{chunk-VUXNXWOQ.cjs → chunk-2RTNC3KP.cjs} +1036 -873
  2. package/dist/chunk-2RTNC3KP.cjs.map +1 -0
  3. package/dist/{chunk-VDZO6IDR.js → chunk-2YQK6LHR.js} +5 -5
  4. package/dist/{chunk-BZMOEWWS.js → chunk-35CTCUJ7.js} +6 -6
  5. package/dist/{chunk-GUTYUMGV.cjs → chunk-6O3YTVLG.cjs} +12 -12
  6. package/dist/{chunk-GUTYUMGV.cjs.map → chunk-6O3YTVLG.cjs.map} +1 -1
  7. package/dist/{chunk-RW2LPL72.js → chunk-6WTCJI5R.js} +2 -2
  8. package/dist/{chunk-WLM3F3WU.js → chunk-6XNWT2KC.js} +3 -3
  9. package/dist/{chunk-IEZ3YBAP.cjs → chunk-7NRRONK5.cjs} +32 -32
  10. package/dist/{chunk-IEZ3YBAP.cjs.map → chunk-7NRRONK5.cjs.map} +1 -1
  11. package/dist/{chunk-OQIMH2WQ.js → chunk-CYIUPI7J.js} +1167 -1004
  12. package/dist/{chunk-OQIMH2WQ.js.map → chunk-CYIUPI7J.js.map} +1 -1
  13. package/dist/{chunk-6CJ2K7BD.js → chunk-CZTKQVIQ.js} +3 -3
  14. package/dist/{chunk-3IEVA5AO.cjs → chunk-EHHX22JL.cjs} +93 -93
  15. package/dist/{chunk-3IEVA5AO.cjs.map → chunk-EHHX22JL.cjs.map} +1 -1
  16. package/dist/{chunk-7I42V2OD.cjs → chunk-GL33BHGZ.cjs} +73 -73
  17. package/dist/{chunk-7I42V2OD.cjs.map → chunk-GL33BHGZ.cjs.map} +1 -1
  18. package/dist/{chunk-AIRNG27G.js → chunk-GTMW4KY7.js} +6 -6
  19. package/dist/{chunk-EJQUYZXF.cjs → chunk-HRMOCJKU.cjs} +12 -12
  20. package/dist/{chunk-EJQUYZXF.cjs.map → chunk-HRMOCJKU.cjs.map} +1 -1
  21. package/dist/{chunk-AW63ET2A.cjs → chunk-ITV6LSG7.cjs} +19 -19
  22. package/dist/{chunk-AW63ET2A.cjs.map → chunk-ITV6LSG7.cjs.map} +1 -1
  23. package/dist/{chunk-6CFFISUC.js → chunk-IUGJAILN.js} +3 -3
  24. package/dist/{chunk-FY5XAW3H.cjs → chunk-J2V4B6FF.cjs} +18 -18
  25. package/dist/{chunk-FY5XAW3H.cjs.map → chunk-J2V4B6FF.cjs.map} +1 -1
  26. package/dist/{chunk-UZZT65PQ.cjs → chunk-PVSXTCJY.cjs} +40 -40
  27. package/dist/{chunk-UZZT65PQ.cjs.map → chunk-PVSXTCJY.cjs.map} +1 -1
  28. package/dist/{chunk-VL2YMDPH.js → chunk-QF54RPHZ.js} +6 -6
  29. package/dist/{chunk-GZK7FWJJ.js → chunk-QKWOBV55.js} +12 -12
  30. package/dist/chunk-QKWOBV55.js.map +1 -0
  31. package/dist/{chunk-D5LQMRPU.cjs → chunk-QNFAZIFC.cjs} +5 -5
  32. package/dist/{chunk-D5LQMRPU.cjs.map → chunk-QNFAZIFC.cjs.map} +1 -1
  33. package/dist/{chunk-STYA77PH.cjs → chunk-SGL6URIJ.cjs} +12 -12
  34. package/dist/chunk-SGL6URIJ.cjs.map +1 -0
  35. package/dist/{chunk-EGXCWZYP.js → chunk-T4BUS6JV.js} +3 -3
  36. package/dist/{chunk-KP5KRRD6.cjs → chunk-THC3K262.cjs} +3 -3
  37. package/dist/{chunk-KP5KRRD6.cjs.map → chunk-THC3K262.cjs.map} +1 -1
  38. package/dist/{chunk-BIKOJ4FH.cjs → chunk-TTYJAZ7P.cjs} +58 -32
  39. package/dist/chunk-TTYJAZ7P.cjs.map +1 -0
  40. package/dist/{chunk-MPYDX5WX.js → chunk-U2JIGUXF.js} +4 -4
  41. package/dist/{chunk-2MKUHJ3O.cjs → chunk-VD4QDSP7.cjs} +40 -40
  42. package/dist/{chunk-2MKUHJ3O.cjs.map → chunk-VD4QDSP7.cjs.map} +1 -1
  43. package/dist/{chunk-PB3BTZDU.js → chunk-WEUNPE3S.js} +139 -113
  44. package/dist/chunk-WEUNPE3S.js.map +1 -0
  45. package/dist/{chunk-GMPYR3MX.cjs → chunk-YKE2KZ2Y.cjs} +33 -33
  46. package/dist/{chunk-GMPYR3MX.cjs.map → chunk-YKE2KZ2Y.cjs.map} +1 -1
  47. package/dist/{chunk-NGEFYPY7.js → chunk-ZDUJ6BDI.js} +4 -4
  48. package/dist/{chunk-6QK3ONDD.js → chunk-ZEC5U5T7.js} +2 -2
  49. package/dist/components/case-studies/index.cjs +10 -10
  50. package/dist/components/case-studies/index.js +4 -4
  51. package/dist/components/chat/index.cjs +4 -4
  52. package/dist/components/chat/index.js +3 -3
  53. package/dist/components/contact/index.cjs +5 -5
  54. package/dist/components/contact/index.js +4 -4
  55. package/dist/components/docs/index.cjs +7 -7
  56. package/dist/components/docs/index.js +6 -6
  57. package/dist/components/embeds/index.cjs +5 -5
  58. package/dist/components/embeds/index.js +4 -4
  59. package/dist/components/faq/index.cjs +6 -6
  60. package/dist/components/faq/index.js +5 -5
  61. package/dist/components/features/index.cjs +4 -4
  62. package/dist/components/features/index.js +3 -3
  63. package/dist/components/features/select-button.d.ts.map +1 -1
  64. package/dist/components/help-center-pages/index.cjs +23 -23
  65. package/dist/components/help-center-pages/index.js +14 -14
  66. package/dist/components/index.cjs +161 -161
  67. package/dist/components/index.js +12 -12
  68. package/dist/components/layout/page-layout.d.ts +7 -1
  69. package/dist/components/layout/page-layout.d.ts.map +1 -1
  70. package/dist/components/layout/title-block.d.ts +23 -1
  71. package/dist/components/layout/title-block.d.ts.map +1 -1
  72. package/dist/components/navigation/index.cjs +4 -4
  73. package/dist/components/navigation/index.js +3 -3
  74. package/dist/components/onboarding-guides/index.cjs +8 -8
  75. package/dist/components/onboarding-guides/index.js +7 -7
  76. package/dist/components/related-content/index.cjs +6 -6
  77. package/dist/components/related-content/index.js +5 -5
  78. package/dist/components/tickets/index.cjs +7 -7
  79. package/dist/components/tickets/index.js +6 -6
  80. package/dist/components/ui/autocomplete.d.ts.map +1 -1
  81. package/dist/components/ui/checkbox-block.d.ts.map +1 -1
  82. package/dist/components/ui/date-picker.d.ts.map +1 -1
  83. package/dist/components/ui/field-wrapper.d.ts +10 -1
  84. package/dist/components/ui/field-wrapper.d.ts.map +1 -1
  85. package/dist/components/ui/file-manager/index.cjs +50 -50
  86. package/dist/components/ui/file-manager/index.js +1 -1
  87. package/dist/components/ui/floating-tooltip.d.ts +8 -1
  88. package/dist/components/ui/floating-tooltip.d.ts.map +1 -1
  89. package/dist/components/ui/index.cjs +4 -4
  90. package/dist/components/ui/index.js +3 -3
  91. package/dist/components/ui/input-trigger.d.ts.map +1 -1
  92. package/dist/components/ui/input.d.ts.map +1 -1
  93. package/dist/components/ui/page-actions.d.ts +7 -1
  94. package/dist/components/ui/page-actions.d.ts.map +1 -1
  95. package/dist/components/ui/radio-group.d.ts.map +1 -1
  96. package/dist/components/ui/search-input.d.ts.map +1 -1
  97. package/dist/components/ui/select.d.ts.map +1 -1
  98. package/dist/components/ui/tab-navigation.d.ts +10 -1
  99. package/dist/components/ui/tab-navigation.d.ts.map +1 -1
  100. package/dist/components/ui/tag-search-input.d.ts.map +1 -1
  101. package/dist/components/ui/textarea.d.ts.map +1 -1
  102. package/dist/components/ui/truncate-text.d.ts +2 -2
  103. package/dist/components/ui/truncate-text.d.ts.map +1 -1
  104. package/dist/hooks/index.cjs +4 -2
  105. package/dist/hooks/index.cjs.map +1 -1
  106. package/dist/hooks/index.js +3 -1
  107. package/dist/hooks/ui/index.d.ts +1 -0
  108. package/dist/hooks/ui/index.d.ts.map +1 -1
  109. package/dist/hooks/ui/use-is-truncated.d.ts +33 -0
  110. package/dist/hooks/ui/use-is-truncated.d.ts.map +1 -0
  111. package/dist/index.cjs +6 -4
  112. package/dist/index.cjs.map +1 -1
  113. package/dist/index.js +5 -3
  114. package/package.json +1 -1
  115. package/src/components/features/select-button.tsx +4 -1
  116. package/src/components/layout/page-layout.tsx +16 -0
  117. package/src/components/layout/title-block.tsx +106 -7
  118. package/src/components/ui/.field-wrapper.md +5 -4
  119. package/src/components/ui/.tab-navigation.md +14 -1
  120. package/src/components/ui/autocomplete.tsx +13 -1
  121. package/src/components/ui/button/button.tsx +1 -1
  122. package/src/components/ui/checkbox-block.tsx +27 -3
  123. package/src/components/ui/date-picker.tsx +15 -1
  124. package/src/components/ui/field-wrapper.tsx +12 -6
  125. package/src/components/ui/floating-tooltip.tsx +9 -1
  126. package/src/components/ui/input-trigger.tsx +8 -1
  127. package/src/components/ui/input.tsx +8 -1
  128. package/src/components/ui/page-actions.tsx +142 -30
  129. package/src/components/ui/radio-group.tsx +28 -3
  130. package/src/components/ui/search-input.tsx +2 -1
  131. package/src/components/ui/select.tsx +7 -0
  132. package/src/components/ui/tab-navigation.tsx +26 -4
  133. package/src/components/ui/tag-search-input.tsx +9 -2
  134. package/src/components/ui/textarea.tsx +8 -1
  135. package/src/components/ui/truncate-text.tsx +3 -18
  136. package/src/hooks/ui/index.ts +1 -0
  137. package/src/hooks/ui/use-is-truncated.ts +66 -0
  138. package/dist/chunk-BIKOJ4FH.cjs.map +0 -1
  139. package/dist/chunk-GZK7FWJJ.js.map +0 -1
  140. package/dist/chunk-PB3BTZDU.js.map +0 -1
  141. package/dist/chunk-STYA77PH.cjs.map +0 -1
  142. package/dist/chunk-VUXNXWOQ.cjs.map +0 -1
  143. /package/dist/{chunk-VDZO6IDR.js.map → chunk-2YQK6LHR.js.map} +0 -0
  144. /package/dist/{chunk-BZMOEWWS.js.map → chunk-35CTCUJ7.js.map} +0 -0
  145. /package/dist/{chunk-RW2LPL72.js.map → chunk-6WTCJI5R.js.map} +0 -0
  146. /package/dist/{chunk-WLM3F3WU.js.map → chunk-6XNWT2KC.js.map} +0 -0
  147. /package/dist/{chunk-6CJ2K7BD.js.map → chunk-CZTKQVIQ.js.map} +0 -0
  148. /package/dist/{chunk-AIRNG27G.js.map → chunk-GTMW4KY7.js.map} +0 -0
  149. /package/dist/{chunk-6CFFISUC.js.map → chunk-IUGJAILN.js.map} +0 -0
  150. /package/dist/{chunk-VL2YMDPH.js.map → chunk-QF54RPHZ.js.map} +0 -0
  151. /package/dist/{chunk-EGXCWZYP.js.map → chunk-T4BUS6JV.js.map} +0 -0
  152. /package/dist/{chunk-MPYDX5WX.js.map → chunk-U2JIGUXF.js.map} +0 -0
  153. /package/dist/{chunk-NGEFYPY7.js.map → chunk-ZDUJ6BDI.js.map} +0 -0
  154. /package/dist/{chunk-6QK3ONDD.js.map → chunk-ZEC5U5T7.js.map} +0 -0
@@ -3,11 +3,11 @@ import {
3
3
  FileDownloadCard,
4
4
  GoogleSheetsViewer,
5
5
  PdfViewer
6
- } from "./chunk-6CFFISUC.js";
6
+ } from "./chunk-IUGJAILN.js";
7
7
  import {
8
8
  DocSearchBar,
9
9
  useDocSearch
10
- } from "./chunk-EGXCWZYP.js";
10
+ } from "./chunk-T4BUS6JV.js";
11
11
  import {
12
12
  DEFAULT_FOLDER_INDEX_FILE,
13
13
  FigmaEmbed,
@@ -19,13 +19,13 @@ import {
19
19
  findDocNodeByPath,
20
20
  getDocAncestorNodeIds,
21
21
  stripFolderIndexFromPath
22
- } from "./chunk-OQIMH2WQ.js";
22
+ } from "./chunk-CYIUPI7J.js";
23
23
  import {
24
24
  HUB_HEADER_OFFSET_PX,
25
25
  contentFetch,
26
26
  navigateSamePageHash,
27
27
  scrollElementIntoView
28
- } from "./chunk-PB3BTZDU.js";
28
+ } from "./chunk-WEUNPE3S.js";
29
29
  import {
30
30
  useChatRuntime
31
31
  } from "./chunk-6GT557KN.js";
@@ -1845,4 +1845,4 @@ export {
1845
1845
  EmbedSkeleton,
1846
1846
  DocsHubPage
1847
1847
  };
1848
- //# sourceMappingURL=chunk-VDZO6IDR.js.map
1848
+ //# sourceMappingURL=chunk-2YQK6LHR.js.map
@@ -4,13 +4,13 @@ import {
4
4
  EmptyState,
5
5
  init_unified_pagination,
6
6
  unified_pagination_exports
7
- } from "./chunk-WLM3F3WU.js";
7
+ } from "./chunk-6XNWT2KC.js";
8
8
  import {
9
9
  DetailPageSkeleton
10
- } from "./chunk-6QK3ONDD.js";
10
+ } from "./chunk-ZEC5U5T7.js";
11
11
  import {
12
12
  useSelfFetch
13
- } from "./chunk-RW2LPL72.js";
13
+ } from "./chunk-6WTCJI5R.js";
14
14
  import {
15
15
  Accordion,
16
16
  AccordionContent,
@@ -42,12 +42,12 @@ import {
42
42
  resolveContentHref,
43
43
  toStripProfile,
44
44
  useEntityCardLink
45
- } from "./chunk-OQIMH2WQ.js";
45
+ } from "./chunk-CYIUPI7J.js";
46
46
  import {
47
47
  STICKY_HEADER_OFFSET_PX,
48
48
  contentFetch,
49
49
  useScrollToHash
50
- } from "./chunk-PB3BTZDU.js";
50
+ } from "./chunk-WEUNPE3S.js";
51
51
  import {
52
52
  useChatRuntime
53
53
  } from "./chunk-6GT557KN.js";
@@ -1462,4 +1462,4 @@ export {
1462
1462
  useLegalDocs,
1463
1463
  LegalDocumentPage
1464
1464
  };
1465
- //# sourceMappingURL=chunk-BZMOEWWS.js.map
1465
+ //# sourceMappingURL=chunk-35CTCUJ7.js.map
@@ -4,14 +4,14 @@
4
4
 
5
5
 
6
6
 
7
- var _chunkVUXNXWOQcjs = require('./chunk-VUXNXWOQ.cjs');
7
+ var _chunk2RTNC3KPcjs = require('./chunk-2RTNC3KP.cjs');
8
8
 
9
9
 
10
10
 
11
11
  var _chunkBGD345ZVcjs = require('./chunk-BGD345ZV.cjs');
12
12
 
13
13
 
14
- var _chunkSTYA77PHcjs = require('./chunk-STYA77PH.cjs');
14
+ var _chunkSGL6URIJcjs = require('./chunk-SGL6URIJ.cjs');
15
15
 
16
16
  // src/components/embeds/pdf-viewer.tsx
17
17
  var _lucidereact = require('lucide-react');
@@ -32,7 +32,7 @@ function PdfViewer({ src, fileName, onPreview, onDownload, height }) {
32
32
  ] }),
33
33
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2 w-full sm:w-auto", children: [
34
34
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
35
- _chunkSTYA77PHcjs.Button,
35
+ _chunkSGL6URIJcjs.Button,
36
36
  {
37
37
  variant: "outline",
38
38
  size: "small-legacy",
@@ -45,7 +45,7 @@ function PdfViewer({ src, fileName, onPreview, onDownload, height }) {
45
45
  }
46
46
  ),
47
47
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
48
- _chunkSTYA77PHcjs.Button,
48
+ _chunkSGL6URIJcjs.Button,
49
49
  {
50
50
  variant: "outline",
51
51
  size: "small-legacy",
@@ -59,7 +59,7 @@ function PdfViewer({ src, fileName, onPreview, onDownload, height }) {
59
59
  )
60
60
  ] })
61
61
  ] }),
62
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVUXNXWOQcjs.EmbedIframe, { src, title: displayName, height })
62
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2RTNC3KPcjs.EmbedIframe, { src, title: displayName, height })
63
63
  ] });
64
64
  }
65
65
 
@@ -81,11 +81,11 @@ function GoogleSheetsViewer({ externalUrl, fileName, height }) {
81
81
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: "text-h3 text-ods-text-primary truncate", children: displayName })
82
82
  ] }),
83
83
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
84
- _chunkSTYA77PHcjs.Button,
84
+ _chunkSGL6URIJcjs.Button,
85
85
  {
86
86
  variant: "outline",
87
87
  size: "small-legacy",
88
- href: _chunkVUXNXWOQcjs.toGoogleSheetsOriginalUrl.call(void 0, externalUrl),
88
+ href: _chunk2RTNC3KPcjs.toGoogleSheetsOriginalUrl.call(void 0, externalUrl),
89
89
  openInNewTab: true,
90
90
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBGD345ZVcjs.GoogleSheetsIcon, { className: "w-4 h-4" }),
91
91
  rightIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "w-4 h-4" }),
@@ -95,9 +95,9 @@ function GoogleSheetsViewer({ externalUrl, fileName, height }) {
95
95
  )
96
96
  ] }),
97
97
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
98
- _chunkVUXNXWOQcjs.EmbedIframe,
98
+ _chunk2RTNC3KPcjs.EmbedIframe,
99
99
  {
100
- src: _chunkVUXNXWOQcjs.toGoogleSheetsEmbedUrl.call(void 0, externalUrl),
100
+ src: _chunk2RTNC3KPcjs.toGoogleSheetsEmbedUrl.call(void 0, externalUrl),
101
101
  title: displayName,
102
102
  height
103
103
  }
@@ -120,11 +120,11 @@ function FileDownloadCard({
120
120
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "text-h3 text-ods-text-primary", children: fileName || "File" }),
121
121
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-center gap-3 mt-2 text-h6 text-ods-text-secondary", children: [
122
122
  mimeType && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: mimeType }),
123
- typeof fileSize === "number" && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: _chunkVUXNXWOQcjs.formatFileSize.call(void 0, fileSize) })
123
+ typeof fileSize === "number" && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: _chunk2RTNC3KPcjs.formatFileSize.call(void 0, fileSize) })
124
124
  ] })
125
125
  ] }),
126
126
  fileUrl && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
127
- _chunkSTYA77PHcjs.Button,
127
+ _chunkSGL6URIJcjs.Button,
128
128
  {
129
129
  variant: "accent",
130
130
  href: fileUrl,
@@ -141,4 +141,4 @@ function FileDownloadCard({
141
141
 
142
142
 
143
143
  exports.PdfViewer = PdfViewer; exports.GoogleSheetsViewer = GoogleSheetsViewer; exports.FileDownloadCard = FileDownloadCard;
144
- //# sourceMappingURL=chunk-GUTYUMGV.cjs.map
144
+ //# sourceMappingURL=chunk-6O3YTVLG.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-GUTYUMGV.cjs","../src/components/embeds/pdf-viewer.tsx","../src/components/embeds/google-sheets-viewer.tsx","../src/components/embeds/file-download-card.tsx"],"names":["jsxs","jsx","Download"],"mappings":"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","file":"/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-GUTYUMGV.cjs","sourcesContent":[null,"\"use client\"\n\nimport React from 'react'\nimport { Button } from '../ui'\nimport { Download, Eye } from 'lucide-react'\nimport { AdobePdfIcon } from '../icons-v2-generated'\nimport { EmbedIframe } from './embed-iframe'\n\nexport interface PdfViewerProps {\n src: string\n fileName?: string\n onPreview?: () => void\n onDownload?: () => void\n height?: string\n}\n\nexport function PdfViewer({ src, fileName, onPreview, onDownload, height }: PdfViewerProps) {\n const displayName = fileName || 'PDF Document'\n\n if (!src) {\n return (\n <div className=\"flex flex-col items-center justify-center py-16 text-center\">\n <AdobePdfIcon className=\"w-16 h-16 text-ods-text-secondary mb-4\" />\n <p className=\"text-ods-text-secondary\">PDF file not available</p>\n </div>\n )\n }\n\n return (\n <div className=\"space-y-4\">\n <div className=\"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between\">\n <div className=\"flex items-center gap-2 min-w-0\">\n <AdobePdfIcon className=\"w-5 h-5 shrink-0\" />\n <h2 className=\"text-h3 text-ods-text-primary truncate\">{displayName}</h2>\n </div>\n <div className=\"flex items-center gap-2 w-full sm:w-auto\">\n <Button\n variant=\"outline\"\n size=\"small-legacy\"\n href={onPreview ? undefined : src}\n openInNewTab={!onPreview}\n onClick={onPreview}\n leftIcon={<Eye className=\"w-4 h-4\" />}\n className=\"flex-1 sm:flex-initial\"\n >\n Preview\n </Button>\n <Button\n variant=\"outline\"\n size=\"small-legacy\"\n href={onDownload ? undefined : src}\n openInNewTab={!onDownload}\n onClick={onDownload}\n leftIcon={<Download className=\"w-4 h-4\" />}\n className=\"flex-1 sm:flex-initial\"\n >\n Download\n </Button>\n </div>\n </div>\n <EmbedIframe src={src} title={displayName} height={height} />\n </div>\n )\n}\n","\"use client\"\n\nimport React from 'react'\nimport { Button } from '../ui'\nimport { ExternalLink } from 'lucide-react'\nimport { GoogleSheetsIcon } from '../icons-v2-generated'\nimport { EmbedIframe } from './embed-iframe'\nimport { toGoogleSheetsEmbedUrl, toGoogleSheetsOriginalUrl } from '../../utils/embed-url-converters'\n\nexport interface GoogleSheetsViewerProps {\n externalUrl: string\n fileName?: string\n height?: string\n}\n\nexport function GoogleSheetsViewer({ externalUrl, fileName, height }: GoogleSheetsViewerProps) {\n const displayName = fileName || 'Google Sheet'\n\n if (!externalUrl) {\n return (\n <div className=\"flex flex-col items-center justify-center py-16 text-center\">\n <GoogleSheetsIcon className=\"w-16 h-16 text-ods-text-secondary mb-4\" />\n <p className=\"text-ods-text-secondary\">Google Sheet URL not configured</p>\n </div>\n )\n }\n\n return (\n <div className=\"space-y-4\">\n <div className=\"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between\">\n <div className=\"flex items-center gap-2 min-w-0\">\n <GoogleSheetsIcon className=\"w-5 h-5 shrink-0\" />\n <h2 className=\"text-h3 text-ods-text-primary truncate\">{displayName}</h2>\n </div>\n <Button\n variant=\"outline\"\n size=\"small-legacy\"\n href={toGoogleSheetsOriginalUrl(externalUrl)}\n openInNewTab\n leftIcon={<GoogleSheetsIcon className=\"w-4 h-4\" />}\n rightIcon={<ExternalLink className=\"w-4 h-4\" />}\n className=\"w-full sm:w-auto\"\n >\n Open in Google Sheets\n </Button>\n </div>\n <EmbedIframe\n src={toGoogleSheetsEmbedUrl(externalUrl)}\n title={displayName}\n height={height}\n />\n </div>\n )\n}\n","import React from 'react'\nimport { Button } from '../ui'\nimport { FileText, Download } from 'lucide-react'\nimport { formatFileSize } from '../../utils'\n\nexport interface FileDownloadCardProps {\n fileName?: string\n mimeType?: string\n fileSize?: number\n fileUrl?: string\n}\n\n/**\n * Generic downloadable-file card for the `file` document type. Used by\n * `<DocsHubPage>`'s default `documentTypeRenderers.file`. Embedders can\n * override the default by passing their own `file` renderer.\n *\n * When `fileUrl` is missing, the Download button is omitted (the card still\n * renders the filename + type + size so the user knows what they were\n * about to download).\n */\nexport function FileDownloadCard({\n fileName,\n mimeType,\n fileSize,\n fileUrl,\n}: FileDownloadCardProps) {\n return (\n <div className=\"flex flex-col items-center justify-center py-16\">\n <div className=\"bg-ods-card border border-ods-border rounded-xl p-8 max-w-md w-full text-center space-y-4\">\n <FileText className=\"w-16 h-16 text-ods-text-secondary mx-auto\" />\n <div>\n <h3 className=\"text-h3 text-ods-text-primary\">\n {fileName || 'File'}\n </h3>\n <div className=\"flex items-center justify-center gap-3 mt-2 text-h6 text-ods-text-secondary\">\n {mimeType && <span>{mimeType}</span>}\n {typeof fileSize === 'number' && <span>{formatFileSize(fileSize)}</span>}\n </div>\n </div>\n {fileUrl && (\n <Button\n variant=\"accent\"\n href={fileUrl}\n openInNewTab\n leftIcon={<Download className=\"w-4 h-4\" />}\n >\n Download File\n </Button>\n )}\n </div>\n </div>\n )\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-6O3YTVLG.cjs","../src/components/embeds/pdf-viewer.tsx","../src/components/embeds/google-sheets-viewer.tsx","../src/components/embeds/file-download-card.tsx"],"names":["jsxs","jsx","Download"],"mappings":"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","file":"/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-6O3YTVLG.cjs","sourcesContent":[null,"\"use client\"\n\nimport React from 'react'\nimport { Button } from '../ui'\nimport { Download, Eye } from 'lucide-react'\nimport { AdobePdfIcon } from '../icons-v2-generated'\nimport { EmbedIframe } from './embed-iframe'\n\nexport interface PdfViewerProps {\n src: string\n fileName?: string\n onPreview?: () => void\n onDownload?: () => void\n height?: string\n}\n\nexport function PdfViewer({ src, fileName, onPreview, onDownload, height }: PdfViewerProps) {\n const displayName = fileName || 'PDF Document'\n\n if (!src) {\n return (\n <div className=\"flex flex-col items-center justify-center py-16 text-center\">\n <AdobePdfIcon className=\"w-16 h-16 text-ods-text-secondary mb-4\" />\n <p className=\"text-ods-text-secondary\">PDF file not available</p>\n </div>\n )\n }\n\n return (\n <div className=\"space-y-4\">\n <div className=\"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between\">\n <div className=\"flex items-center gap-2 min-w-0\">\n <AdobePdfIcon className=\"w-5 h-5 shrink-0\" />\n <h2 className=\"text-h3 text-ods-text-primary truncate\">{displayName}</h2>\n </div>\n <div className=\"flex items-center gap-2 w-full sm:w-auto\">\n <Button\n variant=\"outline\"\n size=\"small-legacy\"\n href={onPreview ? undefined : src}\n openInNewTab={!onPreview}\n onClick={onPreview}\n leftIcon={<Eye className=\"w-4 h-4\" />}\n className=\"flex-1 sm:flex-initial\"\n >\n Preview\n </Button>\n <Button\n variant=\"outline\"\n size=\"small-legacy\"\n href={onDownload ? undefined : src}\n openInNewTab={!onDownload}\n onClick={onDownload}\n leftIcon={<Download className=\"w-4 h-4\" />}\n className=\"flex-1 sm:flex-initial\"\n >\n Download\n </Button>\n </div>\n </div>\n <EmbedIframe src={src} title={displayName} height={height} />\n </div>\n )\n}\n","\"use client\"\n\nimport React from 'react'\nimport { Button } from '../ui'\nimport { ExternalLink } from 'lucide-react'\nimport { GoogleSheetsIcon } from '../icons-v2-generated'\nimport { EmbedIframe } from './embed-iframe'\nimport { toGoogleSheetsEmbedUrl, toGoogleSheetsOriginalUrl } from '../../utils/embed-url-converters'\n\nexport interface GoogleSheetsViewerProps {\n externalUrl: string\n fileName?: string\n height?: string\n}\n\nexport function GoogleSheetsViewer({ externalUrl, fileName, height }: GoogleSheetsViewerProps) {\n const displayName = fileName || 'Google Sheet'\n\n if (!externalUrl) {\n return (\n <div className=\"flex flex-col items-center justify-center py-16 text-center\">\n <GoogleSheetsIcon className=\"w-16 h-16 text-ods-text-secondary mb-4\" />\n <p className=\"text-ods-text-secondary\">Google Sheet URL not configured</p>\n </div>\n )\n }\n\n return (\n <div className=\"space-y-4\">\n <div className=\"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between\">\n <div className=\"flex items-center gap-2 min-w-0\">\n <GoogleSheetsIcon className=\"w-5 h-5 shrink-0\" />\n <h2 className=\"text-h3 text-ods-text-primary truncate\">{displayName}</h2>\n </div>\n <Button\n variant=\"outline\"\n size=\"small-legacy\"\n href={toGoogleSheetsOriginalUrl(externalUrl)}\n openInNewTab\n leftIcon={<GoogleSheetsIcon className=\"w-4 h-4\" />}\n rightIcon={<ExternalLink className=\"w-4 h-4\" />}\n className=\"w-full sm:w-auto\"\n >\n Open in Google Sheets\n </Button>\n </div>\n <EmbedIframe\n src={toGoogleSheetsEmbedUrl(externalUrl)}\n title={displayName}\n height={height}\n />\n </div>\n )\n}\n","import React from 'react'\nimport { Button } from '../ui'\nimport { FileText, Download } from 'lucide-react'\nimport { formatFileSize } from '../../utils'\n\nexport interface FileDownloadCardProps {\n fileName?: string\n mimeType?: string\n fileSize?: number\n fileUrl?: string\n}\n\n/**\n * Generic downloadable-file card for the `file` document type. Used by\n * `<DocsHubPage>`'s default `documentTypeRenderers.file`. Embedders can\n * override the default by passing their own `file` renderer.\n *\n * When `fileUrl` is missing, the Download button is omitted (the card still\n * renders the filename + type + size so the user knows what they were\n * about to download).\n */\nexport function FileDownloadCard({\n fileName,\n mimeType,\n fileSize,\n fileUrl,\n}: FileDownloadCardProps) {\n return (\n <div className=\"flex flex-col items-center justify-center py-16\">\n <div className=\"bg-ods-card border border-ods-border rounded-xl p-8 max-w-md w-full text-center space-y-4\">\n <FileText className=\"w-16 h-16 text-ods-text-secondary mx-auto\" />\n <div>\n <h3 className=\"text-h3 text-ods-text-primary\">\n {fileName || 'File'}\n </h3>\n <div className=\"flex items-center justify-center gap-3 mt-2 text-h6 text-ods-text-secondary\">\n {mimeType && <span>{mimeType}</span>}\n {typeof fileSize === 'number' && <span>{formatFileSize(fileSize)}</span>}\n </div>\n </div>\n {fileUrl && (\n <Button\n variant=\"accent\"\n href={fileUrl}\n openInNewTab\n leftIcon={<Download className=\"w-4 h-4\" />}\n >\n Download File\n </Button>\n )}\n </div>\n </div>\n )\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import {
3
3
  contentFetch
4
- } from "./chunk-PB3BTZDU.js";
4
+ } from "./chunk-WEUNPE3S.js";
5
5
 
6
6
  // src/hooks/use-self-fetch.ts
7
7
  import { useEffect, useRef, useState } from "react";
@@ -78,4 +78,4 @@ function useSelfFetch(url, options) {
78
78
  export {
79
79
  useSelfFetch
80
80
  };
81
- //# sourceMappingURL=chunk-RW2LPL72.js.map
81
+ //# sourceMappingURL=chunk-6WTCJI5R.js.map
@@ -11,7 +11,7 @@ import {
11
11
  TASK_TYPE_TEXT_COLORS,
12
12
  getStatusColorScheme,
13
13
  init_pagination
14
- } from "./chunk-OQIMH2WQ.js";
14
+ } from "./chunk-CYIUPI7J.js";
15
15
  import {
16
16
  init_next_navigation,
17
17
  usePathname,
@@ -21,7 +21,7 @@ import {
21
21
  import {
22
22
  Button,
23
23
  init_button2 as init_button
24
- } from "./chunk-GZK7FWJJ.js";
24
+ } from "./chunk-QKWOBV55.js";
25
25
  import {
26
26
  init_next_link,
27
27
  next_link_default
@@ -460,4 +460,4 @@ export {
460
460
  DevCardRowSkeletonList,
461
461
  DeliveryRow
462
462
  };
463
- //# sourceMappingURL=chunk-WLM3F3WU.js.map
463
+ //# sourceMappingURL=chunk-6XNWT2KC.js.map
@@ -2,14 +2,14 @@
2
2
 
3
3
 
4
4
 
5
- var _chunkD5LQMRPUcjs = require('./chunk-D5LQMRPU.cjs');
5
+ var _chunkQNFAZIFCcjs = require('./chunk-QNFAZIFC.cjs');
6
6
 
7
7
 
8
8
 
9
- var _chunkEJQUYZXFcjs = require('./chunk-EJQUYZXF.cjs');
9
+ var _chunkHRMOCJKUcjs = require('./chunk-HRMOCJKU.cjs');
10
10
 
11
11
 
12
- var _chunkKP5KRRD6cjs = require('./chunk-KP5KRRD6.cjs');
12
+ var _chunkTHC3K262cjs = require('./chunk-THC3K262.cjs');
13
13
 
14
14
 
15
15
 
@@ -26,10 +26,10 @@ var _chunkKP5KRRD6cjs = require('./chunk-KP5KRRD6.cjs');
26
26
 
27
27
 
28
28
 
29
- var _chunkVUXNXWOQcjs = require('./chunk-VUXNXWOQ.cjs');
29
+ var _chunk2RTNC3KPcjs = require('./chunk-2RTNC3KP.cjs');
30
30
 
31
31
 
32
- var _chunkBIKOJ4FHcjs = require('./chunk-BIKOJ4FH.cjs');
32
+ var _chunkTTYJAZ7Pcjs = require('./chunk-TTYJAZ7P.cjs');
33
33
 
34
34
 
35
35
  var _chunkLILQJ3UZcjs = require('./chunk-LILQJ3UZ.cjs');
@@ -64,7 +64,7 @@ function OnboardingGuidesCatalogSkeleton() {
64
64
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "h-6 w-40 bg-ods-border/70 rounded" }),
65
65
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "h-5 w-8 bg-ods-text-secondary/20 rounded-full" })
66
66
  ] }),
67
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "ul", { className: "flex flex-col gap-4", children: Array.from({ length: cardCount }).map((_, cardIdx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "li", { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVUXNXWOQcjs.OnboardingGuideCardSkeleton, { size: "catalog" }) }, cardIdx)) })
67
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "ul", { className: "flex flex-col gap-4", children: Array.from({ length: cardCount }).map((_, cardIdx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "li", { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2RTNC3KPcjs.OnboardingGuideCardSkeleton, { size: "catalog" }) }, cardIdx)) })
68
68
  ] }, sectionIdx)) })
69
69
  ] });
70
70
  }
@@ -88,10 +88,10 @@ function OnboardingGuidesCatalogView({
88
88
  const sectionValue = selfFetch ? _nullishCoalesce(searchParams.get("section"), () => ( "")) : initialSection;
89
89
  const activeSection = sectionValue || "all";
90
90
  const guidesQs = sectionValue ? `?section=${encodeURIComponent(sectionValue)}` : "";
91
- const guidesRes = _chunkKP5KRRD6cjs.useSelfFetch.call(void 0,
91
+ const guidesRes = _chunkTHC3K262cjs.useSelfFetch.call(void 0,
92
92
  selfFetch && guidesEndpoint ? `${guidesEndpoint}${guidesQs}` : null
93
93
  );
94
- const sectionsRes = _chunkKP5KRRD6cjs.useSelfFetch.call(void 0,
94
+ const sectionsRes = _chunkTHC3K262cjs.useSelfFetch.call(void 0,
95
95
  selfFetch && sectionsEndpoint ? sectionsEndpoint : null
96
96
  );
97
97
  const guides = _nullishCoalesce(_nullishCoalesce(initialGuides, () => ( _optionalChain([guidesRes, 'access', _2 => _2.data, 'optionalAccess', _3 => _3.data]))), () => ( []));
@@ -133,21 +133,21 @@ function OnboardingGuidesCatalogView({
133
133
  });
134
134
  };
135
135
  const source = _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _4 => _4.source]), () => ( "openframe"));
136
- const docSearch = _chunkEJQUYZXFcjs.useDocSearch.call(void 0, {
136
+ const docSearch = _chunkHRMOCJKUcjs.useDocSearch.call(void 0, {
137
137
  source,
138
138
  baseRoute: basePath,
139
139
  onNavigate: (path) => router.push(path),
140
140
  tableIds: ["onboarding-guides"]
141
141
  });
142
142
  const defaultRenderCard = (guide) => {
143
- const cta = _chunkVUXNXWOQcjs.resolveContentHref.call(void 0, _optionalChain([runtime, 'optionalAccess', _5 => _5.composeContentUrl]), {
143
+ const cta = _chunk2RTNC3KPcjs.resolveContentHref.call(void 0, _optionalChain([runtime, 'optionalAccess', _5 => _5.composeContentUrl]), {
144
144
  type: "onboarding_guide",
145
145
  slug: guide.slug,
146
146
  basePath,
147
147
  platforms: guide.onboarding_guide_platforms
148
148
  });
149
149
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
150
- _chunkVUXNXWOQcjs.OnboardingGuideCard,
150
+ _chunk2RTNC3KPcjs.OnboardingGuideCard,
151
151
  {
152
152
  guide,
153
153
  href: cta.href,
@@ -159,7 +159,7 @@ function OnboardingGuidesCatalogView({
159
159
  const renderCardFn = _nullishCoalesce(renderCard, () => ( defaultRenderCard));
160
160
  const preControls = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
161
161
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
162
- _chunkEJQUYZXFcjs.DocSearchBar,
162
+ _chunkHRMOCJKUcjs.DocSearchBar,
163
163
  {
164
164
  placeholder: "Search onboarding guides, releases, case studies\u2026",
165
165
  query: docSearch.query,
@@ -171,7 +171,7 @@ function OnboardingGuidesCatalogView({
171
171
  }
172
172
  ),
173
173
  sections.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
174
- _chunkVUXNXWOQcjs.FilterPillRow,
174
+ _chunk2RTNC3KPcjs.FilterPillRow,
175
175
  {
176
176
  label: "Section",
177
177
  selectedValue: activeSection,
@@ -181,7 +181,7 @@ function OnboardingGuidesCatalogView({
181
181
  )
182
182
  ] });
183
183
  if (selfFetch && guidesRes.error) {
184
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVUXNXWOQcjs.LoadError, { message: "Failed to load onboarding guides.", onRetry: guidesRes.reload });
184
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2RTNC3KPcjs.LoadError, { message: "Failed to load onboarding guides.", onRetry: guidesRes.reload });
185
185
  }
186
186
  if (selfFetch && guidesRes.data == null && isLoading) {
187
187
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, OnboardingGuidesCatalogSkeleton, {});
@@ -212,7 +212,7 @@ function OnboardingGuideDetailView({
212
212
  slug,
213
213
  guideEndpoint,
214
214
  related = [],
215
- MarkdownRenderer = _chunkVUXNXWOQcjs.RichMarkdownRenderer,
215
+ MarkdownRenderer = _chunk2RTNC3KPcjs.RichMarkdownRenderer,
216
216
  renderRelatedCard,
217
217
  backHref,
218
218
  backLabel = "Back to Getting Started",
@@ -223,49 +223,49 @@ function OnboardingGuideDetailView({
223
223
  const resolvedBackHref = _nullishCoalesce(backHref, () => ( basePath));
224
224
  const runtime = _chunkLILQJ3UZcjs.useChatRuntime.call(void 0, );
225
225
  const router = _chunkSSJNN5BScjs.useRouter.call(void 0, );
226
- const renderShell = (node) => shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVUXNXWOQcjs.PageShell, { children: node }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: node });
226
+ const renderShell = (node) => shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2RTNC3KPcjs.PageShell, { children: node }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: node });
227
227
  const url = initialData ? null : slug && guideEndpoint ? guideEndpoint(slug) : null;
228
- const { data: guide, isLoading, error, reload } = _chunkKP5KRRD6cjs.useSelfFetch.call(void 0, url, { initialData });
229
- const { ref: videoWarmupRef } = _chunkVUXNXWOQcjs.useVideoWarmup.call(void 0, {
228
+ const { data: guide, isLoading, error, reload } = _chunkTHC3K262cjs.useSelfFetch.call(void 0, url, { initialData });
229
+ const { ref: videoWarmupRef } = _chunk2RTNC3KPcjs.useVideoWarmup.call(void 0, {
230
230
  videoUrl: _optionalChain([guide, 'optionalAccess', _6 => _6.main_video_url]),
231
231
  supabaseStorageOrigin: _optionalChain([runtime, 'optionalAccess', _7 => _7.endpoints, 'access', _8 => _8.supabaseStorageOrigin])
232
232
  });
233
233
  if (error || !guide && !isLoading) {
234
- return renderShell(/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVUXNXWOQcjs.LoadError, { message: "Guide not found.", onRetry: reload }));
234
+ return renderShell(/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2RTNC3KPcjs.LoadError, { message: "Guide not found.", onRetry: reload }));
235
235
  }
236
236
  if (!guide) {
237
237
  return renderShell(
238
238
  // Match the loaded page's top offset (TitleBlock's
239
239
  // `pt-[var(--spacing-system-l)]`) so content doesn't jump on load.
240
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pt-[var(--spacing-system-l)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkD5LQMRPUcjs.DetailPageSkeleton, { bare: true, showImageGallery: false }) })
240
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pt-[var(--spacing-system-l)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQNFAZIFCcjs.DetailPageSkeleton, { bare: true, showImageGallery: false }) })
241
241
  );
242
242
  }
243
- const captionsUrl = _chunkVUXNXWOQcjs.getCaptionsUrl.call(void 0, "onboarding_guide", guide.id, guide.srt_content);
243
+ const captionsUrl = _chunk2RTNC3KPcjs.getCaptionsUrl.call(void 0, "onboarding_guide", guide.id, guide.srt_content);
244
244
  const videoPoster = guide.main_video_thumbnail || guide.featured_image || guide.og_image_url || // `buildOgPlaceholderUrl` always returns a usable string (relative route at
245
245
  // worst), so it's the terminal fallback — no trailing `|| undefined` needed.
246
- _chunkBIKOJ4FHcjs.buildOgPlaceholderUrl.call(void 0, _optionalChain([runtime, 'optionalAccess', _9 => _9.endpoints]), guide.title, { aspect: "wide" });
246
+ _chunkTTYJAZ7Pcjs.buildOgPlaceholderUrl.call(void 0, _optionalChain([runtime, 'optionalAccess', _9 => _9.endpoints]), guide.title, { aspect: "wide" });
247
247
  const defaultRenderRelatedCard = (g) => {
248
- const cta = _chunkVUXNXWOQcjs.resolveContentHref.call(void 0, _optionalChain([runtime, 'optionalAccess', _10 => _10.composeContentUrl]), {
248
+ const cta = _chunk2RTNC3KPcjs.resolveContentHref.call(void 0, _optionalChain([runtime, 'optionalAccess', _10 => _10.composeContentUrl]), {
249
249
  type: "onboarding_guide",
250
250
  slug: g.slug,
251
251
  basePath,
252
252
  platforms: g.onboarding_guide_platforms
253
253
  });
254
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVUXNXWOQcjs.OnboardingGuideCard, { guide: g, href: cta.href, targetPlatform: cta.targetPlatform });
254
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2RTNC3KPcjs.OnboardingGuideCard, { guide: g, href: cta.href, targetPlatform: cta.targetPlatform });
255
255
  };
256
256
  const renderRelatedCardFn = _nullishCoalesce(renderRelatedCard, () => ( defaultRenderRelatedCard));
257
257
  return renderShell(
258
258
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
259
- _chunkVUXNXWOQcjs.PageLayout,
259
+ _chunk2RTNC3KPcjs.PageLayout,
260
260
  {
261
261
  title: guide.title,
262
262
  titleSize: "h1",
263
263
  titleWrap: true,
264
264
  backButton: { label: backLabel, onClick: () => router.push(resolvedBackHref) },
265
265
  children: [
266
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVUXNXWOQcjs.EntityTagBadges, { tags: guide.onboarding_guide_tags }),
266
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2RTNC3KPcjs.EntityTagBadges, { tags: guide.onboarding_guide_tags }),
267
267
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
268
- _chunkVUXNXWOQcjs.EntityAuthorCard,
268
+ _chunk2RTNC3KPcjs.EntityAuthorCard,
269
269
  {
270
270
  author: guide.author,
271
271
  authorHref,
@@ -280,7 +280,7 @@ function OnboardingGuideDetailView({
280
280
  }
281
281
  ),
282
282
  (guide.main_video_url || guide.youtube_url) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: videoWarmupRef, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
283
- _chunkVUXNXWOQcjs.EntityVideoSection,
283
+ _chunk2RTNC3KPcjs.EntityVideoSection,
284
284
  {
285
285
  mainVideoUrl: guide.main_video_url,
286
286
  youtubeUrl: guide.youtube_url || void 0,
@@ -297,17 +297,17 @@ function OnboardingGuideDetailView({
297
297
  ) }),
298
298
  guide.content && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MarkdownRenderer, { content: guide.content }) }),
299
299
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
300
- _chunkVUXNXWOQcjs.VideoBitesStrip,
300
+ _chunk2RTNC3KPcjs.VideoBitesStrip,
301
301
  {
302
302
  bites: _nullishCoalesce(guide.video_bites, () => ( [])),
303
303
  filterPublished: true,
304
304
  showTitle: false,
305
- profile: _chunkVUXNXWOQcjs.toStripProfile.call(void 0, guide.author),
305
+ profile: _chunk2RTNC3KPcjs.toStripProfile.call(void 0, guide.author),
306
306
  href: `/onboarding-guides/${guide.slug}`
307
307
  }
308
308
  ),
309
309
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
310
- _chunkD5LQMRPUcjs.ArticleAuthorByline,
310
+ _chunkQNFAZIFCcjs.ArticleAuthorByline,
311
311
  {
312
312
  author: _nullishCoalesce(_optionalChain([guide, 'access', _11 => _11.author, 'optionalAccess', _12 => _12.full_name]), () => ( null)),
313
313
  avatar: _optionalChain([guide, 'access', _13 => _13.author, 'optionalAccess', _14 => _14.avatar_url]),
@@ -395,4 +395,4 @@ function useOnboardingGuideSections() {
395
395
 
396
396
 
397
397
  exports.OnboardingGuidesCatalogSkeleton = OnboardingGuidesCatalogSkeleton; exports.OnboardingGuidesCatalogView = OnboardingGuidesCatalogView; exports.OnboardingGuideDetailView = OnboardingGuideDetailView; exports.onboardingGuideKeys = onboardingGuideKeys; exports.useOnboardingGuides = useOnboardingGuides; exports.useOnboardingGuide = useOnboardingGuide; exports.useOnboardingGuideSections = useOnboardingGuideSections;
398
- //# sourceMappingURL=chunk-IEZ3YBAP.cjs.map
398
+ //# sourceMappingURL=chunk-7NRRONK5.cjs.map