@flamingo-stack/openframe-frontend-core 0.0.296 → 0.0.297

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 (276) hide show
  1. package/README.md +9 -0
  2. package/dist/{chunk-7RIYT7ZH.js → chunk-2QG57XOJ.js} +1067 -205
  3. package/dist/chunk-2QG57XOJ.js.map +1 -0
  4. package/dist/{chunk-WHMATDVP.js → chunk-3JIQVE7T.js} +9 -15
  5. package/dist/{chunk-WHMATDVP.js.map → chunk-3JIQVE7T.js.map} +1 -1
  6. package/dist/{chunk-GLLDTKZK.cjs → chunk-4PSQS3SW.cjs} +7 -9
  7. package/dist/chunk-4PSQS3SW.cjs.map +1 -0
  8. package/dist/{chunk-OY7OF7E7.js → chunk-4TLE6VLU.js} +30 -24
  9. package/dist/chunk-4TLE6VLU.js.map +1 -0
  10. package/dist/{chunk-W6M2FLLT.cjs → chunk-53FUMSZ5.cjs} +40 -46
  11. package/dist/chunk-53FUMSZ5.cjs.map +1 -0
  12. package/dist/{chunk-D3LEFMOA.cjs → chunk-54KNMC2R.cjs} +3 -3
  13. package/dist/{chunk-D3LEFMOA.cjs.map → chunk-54KNMC2R.cjs.map} +1 -1
  14. package/dist/{chunk-EYEW6PTA.cjs → chunk-6C526VNN.cjs} +358 -118
  15. package/dist/chunk-6C526VNN.cjs.map +1 -0
  16. package/dist/{chunk-XREEV72C.cjs → chunk-7OVGB2DQ.cjs} +19 -25
  17. package/dist/chunk-7OVGB2DQ.cjs.map +1 -0
  18. package/dist/{chunk-6GCI7JOE.js → chunk-AD6C23QY.js} +8 -7
  19. package/dist/{chunk-6GCI7JOE.js.map → chunk-AD6C23QY.js.map} +1 -1
  20. package/dist/chunk-F5OB2YAL.cjs +144 -0
  21. package/dist/chunk-F5OB2YAL.cjs.map +1 -0
  22. package/dist/chunk-FBWXMMRB.cjs +2 -0
  23. package/dist/chunk-FBWXMMRB.cjs.map +1 -0
  24. package/dist/{chunk-YIGPRLQY.cjs → chunk-FCDQNTDG.cjs} +21 -20
  25. package/dist/chunk-FCDQNTDG.cjs.map +1 -0
  26. package/dist/{chunk-IE6OU3WQ.cjs → chunk-FQOTC3UU.cjs} +318 -16
  27. package/dist/chunk-FQOTC3UU.cjs.map +1 -0
  28. package/dist/{chunk-QHIXS3W2.cjs → chunk-GUTS7HGA.cjs} +11590 -2105
  29. package/dist/chunk-GUTS7HGA.cjs.map +1 -0
  30. package/dist/chunk-GZ4C3XW6.js +2 -0
  31. package/dist/chunk-GZ4C3XW6.js.map +1 -0
  32. package/dist/{chunk-5P3B2LZW.js → chunk-IL47XWV5.js} +8 -14
  33. package/dist/{chunk-5P3B2LZW.js.map → chunk-IL47XWV5.js.map} +1 -1
  34. package/dist/{chunk-LCNMR277.js → chunk-IZ7JSBFP.js} +1 -1
  35. package/dist/chunk-IZ7JSBFP.js.map +1 -0
  36. package/dist/{chunk-EL6QLAWX.js → chunk-JALO4TAZ.js} +357 -55
  37. package/dist/chunk-JALO4TAZ.js.map +1 -0
  38. package/dist/{chunk-AQOWFSMB.cjs → chunk-L6PSSIUQ.cjs} +1 -1
  39. package/dist/chunk-L6PSSIUQ.cjs.map +1 -0
  40. package/dist/{chunk-MBFWU2EM.js → chunk-L7ULJKG7.js} +6 -10
  41. package/dist/{chunk-MBFWU2EM.js.map → chunk-L7ULJKG7.js.map} +1 -1
  42. package/dist/{chunk-K2PFPBMF.js → chunk-PC746XCO.js} +15050 -5565
  43. package/dist/chunk-PC746XCO.js.map +1 -0
  44. package/dist/{chunk-3ZXUQQL4.js → chunk-PI4WSYQV.js} +2 -2
  45. package/dist/{chunk-E4XABBSU.js → chunk-PWQUAVA3.js} +338 -98
  46. package/dist/chunk-PWQUAVA3.js.map +1 -0
  47. package/dist/chunk-SA2WPJVO.js +144 -0
  48. package/dist/chunk-SA2WPJVO.js.map +1 -0
  49. package/dist/{chunk-X6BV7MB7.cjs → chunk-UNVE2SDJ.cjs} +37 -31
  50. package/dist/chunk-UNVE2SDJ.cjs.map +1 -0
  51. package/dist/{chunk-5E2HOSSH.cjs → chunk-WMSTJAZT.cjs} +913 -51
  52. package/dist/chunk-WMSTJAZT.cjs.map +1 -0
  53. package/dist/{chunk-ZP4AVIZP.js → chunk-X4DOXQRT.js} +4 -6
  54. package/dist/{chunk-ZP4AVIZP.js.map → chunk-X4DOXQRT.js.map} +1 -1
  55. package/dist/{chunk-X647HY3F.cjs → chunk-YBYI62OE.cjs} +33 -37
  56. package/dist/chunk-YBYI62OE.cjs.map +1 -0
  57. package/dist/components/case-studies/index.cjs +126 -0
  58. package/dist/components/case-studies/index.cjs.map +1 -0
  59. package/dist/components/case-studies/index.d.ts +2 -0
  60. package/dist/components/case-studies/index.d.ts.map +1 -0
  61. package/dist/components/case-studies/index.js +126 -0
  62. package/dist/components/case-studies/index.js.map +1 -0
  63. package/dist/components/case-studies/share-experience-section.d.ts +48 -0
  64. package/dist/components/case-studies/share-experience-section.d.ts.map +1 -0
  65. package/dist/components/chat/index.cjs +8 -18
  66. package/dist/components/chat/index.cjs.map +1 -1
  67. package/dist/components/chat/index.js +75 -85
  68. package/dist/components/contact/index.cjs +8 -15
  69. package/dist/components/contact/index.cjs.map +1 -1
  70. package/dist/components/contact/index.js +7 -14
  71. package/dist/components/docs/doc-viewer.d.ts +39 -2
  72. package/dist/components/docs/doc-viewer.d.ts.map +1 -1
  73. package/dist/components/docs/docs-hub-page.d.ts +46 -0
  74. package/dist/components/docs/docs-hub-page.d.ts.map +1 -0
  75. package/dist/components/docs/index.cjs +17 -9
  76. package/dist/components/docs/index.cjs.map +1 -1
  77. package/dist/components/docs/index.d.ts +4 -0
  78. package/dist/components/docs/index.d.ts.map +1 -1
  79. package/dist/components/docs/index.js +16 -8
  80. package/dist/components/docs/skeletons.d.ts +32 -0
  81. package/dist/components/docs/skeletons.d.ts.map +1 -0
  82. package/dist/components/docs/use-docs-resolve-link.d.ts +20 -0
  83. package/dist/components/docs/use-docs-resolve-link.d.ts.map +1 -0
  84. package/dist/components/docs/use-document-tree.d.ts.map +1 -1
  85. package/dist/components/embeds/embed-container.d.ts +37 -0
  86. package/dist/components/embeds/embed-container.d.ts.map +1 -0
  87. package/dist/components/embeds/embed-iframe.d.ts.map +1 -1
  88. package/dist/components/embeds/file-download-card.d.ts +18 -0
  89. package/dist/components/embeds/file-download-card.d.ts.map +1 -0
  90. package/dist/components/embeds/index.cjs +38 -15
  91. package/dist/components/embeds/index.cjs.map +1 -1
  92. package/dist/components/embeds/index.d.ts +8 -0
  93. package/dist/components/embeds/index.d.ts.map +1 -1
  94. package/dist/components/embeds/index.js +40 -17
  95. package/dist/components/embeds/linkedin-embed-client.d.ts +8 -0
  96. package/dist/components/embeds/linkedin-embed-client.d.ts.map +1 -0
  97. package/dist/components/embeds/markdown-image.d.ts +5 -0
  98. package/dist/components/embeds/markdown-image.d.ts.map +1 -0
  99. package/dist/components/embeds/reddit-embed-client.d.ts +7 -0
  100. package/dist/components/embeds/reddit-embed-client.d.ts.map +1 -0
  101. package/dist/components/embeds/rich-markdown-runtime.d.ts +46 -0
  102. package/dist/components/embeds/rich-markdown-runtime.d.ts.map +1 -0
  103. package/dist/components/embeds/twitter-embed-client.d.ts +8 -0
  104. package/dist/components/embeds/twitter-embed-client.d.ts.map +1 -0
  105. package/dist/components/faq/index.cjs +9 -16
  106. package/dist/components/faq/index.cjs.map +1 -1
  107. package/dist/components/faq/index.js +8 -15
  108. package/dist/components/features/index.cjs +8 -16
  109. package/dist/components/features/index.cjs.map +1 -1
  110. package/dist/components/features/index.js +24 -32
  111. package/dist/components/index.cjs +257 -452
  112. package/dist/components/index.cjs.map +1 -1
  113. package/dist/components/index.js +781 -976
  114. package/dist/components/index.js.map +1 -1
  115. package/dist/components/layout/page-header.d.ts +78 -0
  116. package/dist/components/layout/page-header.d.ts.map +1 -0
  117. package/dist/components/layout/page-layout.d.ts +10 -1
  118. package/dist/components/layout/page-layout.d.ts.map +1 -1
  119. package/dist/components/layout/page-with-header.d.ts +67 -0
  120. package/dist/components/layout/page-with-header.d.ts.map +1 -0
  121. package/dist/components/layout/title-block.d.ts +17 -1
  122. package/dist/components/layout/title-block.d.ts.map +1 -1
  123. package/dist/components/navigation/index.cjs +7 -15
  124. package/dist/components/navigation/index.cjs.map +1 -1
  125. package/dist/components/navigation/index.js +9 -17
  126. package/dist/components/onboarding-guides/index.cjs +35 -36
  127. package/dist/components/onboarding-guides/index.cjs.map +1 -1
  128. package/dist/components/onboarding-guides/index.js +13 -14
  129. package/dist/components/onboarding-guides/index.js.map +1 -1
  130. package/dist/components/onboarding-guides/onboarding-guide-detail-view.d.ts +1 -1
  131. package/dist/components/onboarding-guides/onboarding-guide-detail-view.d.ts.map +1 -1
  132. package/dist/components/related-content/index.cjs +9 -16
  133. package/dist/components/related-content/index.cjs.map +1 -1
  134. package/dist/components/related-content/index.js +8 -15
  135. package/dist/components/shared/dev-section/dev-section-page.d.ts +9 -0
  136. package/dist/components/shared/dev-section/dev-section-page.d.ts.map +1 -1
  137. package/dist/components/shared/dev-section/dev-section-view.d.ts.map +1 -1
  138. package/dist/components/shared/dev-section/index.d.ts +1 -1
  139. package/dist/components/shared/dev-section/index.d.ts.map +1 -1
  140. package/dist/components/shared/doc-search/use-doc-search.d.ts.map +1 -1
  141. package/dist/components/shared/legal-document/legal-document-page.d.ts.map +1 -1
  142. package/dist/components/shared/product-release/release-detail-page.d.ts.map +1 -1
  143. package/dist/components/tickets/index.cjs +100 -112
  144. package/dist/components/tickets/index.cjs.map +1 -1
  145. package/dist/components/tickets/index.js +20 -32
  146. package/dist/components/tickets/index.js.map +1 -1
  147. package/dist/components/ui/file-manager/index.cjs +50 -52
  148. package/dist/components/ui/file-manager/index.cjs.map +1 -1
  149. package/dist/components/ui/file-manager/index.js +4 -6
  150. package/dist/components/ui/file-manager/index.js.map +1 -1
  151. package/dist/components/ui/index.cjs +13 -19
  152. package/dist/components/ui/index.cjs.map +1 -1
  153. package/dist/components/ui/index.d.ts +2 -0
  154. package/dist/components/ui/index.d.ts.map +1 -1
  155. package/dist/components/ui/index.js +133 -139
  156. package/dist/components/ui/release-changelog-section.d.ts +6 -2
  157. package/dist/components/ui/release-changelog-section.d.ts.map +1 -1
  158. package/dist/components/ui/rich-markdown-renderer.d.ts +34 -0
  159. package/dist/components/ui/rich-markdown-renderer.d.ts.map +1 -0
  160. package/dist/components/ui/simple-markdown-renderer.d.ts +2 -8
  161. package/dist/components/ui/simple-markdown-renderer.d.ts.map +1 -1
  162. package/dist/contexts/chat-runtime-context.d.ts +14 -0
  163. package/dist/contexts/chat-runtime-context.d.ts.map +1 -1
  164. package/dist/contexts/index.cjs +3 -3
  165. package/dist/contexts/index.js +5 -5
  166. package/dist/embed-shims/index.cjs +3 -3
  167. package/dist/embed-shims/index.cjs.map +1 -1
  168. package/dist/embed-shims/index.js +4 -4
  169. package/dist/hooks/index.cjs +4 -9
  170. package/dist/hooks/index.cjs.map +1 -1
  171. package/dist/hooks/index.js +6 -11
  172. package/dist/index.cjs +14 -20
  173. package/dist/index.cjs.map +1 -1
  174. package/dist/index.js +362 -368
  175. package/dist/types/doc-source.d.ts +31 -1
  176. package/dist/types/doc-source.d.ts.map +1 -1
  177. package/dist/utils/index.cjs +4 -0
  178. package/dist/utils/index.cjs.map +1 -1
  179. package/dist/utils/index.d.ts +1 -0
  180. package/dist/utils/index.d.ts.map +1 -1
  181. package/dist/utils/index.js +4 -1
  182. package/dist/utils/index.js.map +1 -1
  183. package/dist/utils/page-header-constants.d.ts +15 -0
  184. package/dist/utils/page-header-constants.d.ts.map +1 -0
  185. package/dist/utils/social-embed-cache.d.ts +29 -0
  186. package/dist/utils/social-embed-cache.d.ts.map +1 -0
  187. package/package.json +7 -1
  188. package/src/components/case-studies/index.ts +4 -0
  189. package/src/components/case-studies/share-experience-section.tsx +185 -0
  190. package/src/components/chat/embeddable-chat.tsx +1 -1
  191. package/src/components/docs/doc-viewer.tsx +111 -19
  192. package/src/components/docs/docs-hub-page.tsx +149 -0
  193. package/src/components/docs/index.ts +17 -0
  194. package/src/components/docs/skeletons.tsx +138 -0
  195. package/src/components/docs/use-docs-resolve-link.ts +52 -0
  196. package/src/components/docs/use-document-tree.ts +21 -0
  197. package/src/components/embeds/embed-container.tsx +80 -0
  198. package/src/components/embeds/embed-iframe.tsx +7 -9
  199. package/src/components/embeds/file-download-card.tsx +54 -0
  200. package/src/components/embeds/index.ts +30 -0
  201. package/src/components/embeds/linkedin-embed-client.tsx +100 -0
  202. package/src/components/embeds/markdown-image.tsx +88 -0
  203. package/src/components/embeds/og-link-preview.tsx +13 -13
  204. package/src/components/embeds/reddit-embed-client.tsx +550 -0
  205. package/src/components/embeds/rich-markdown-runtime.tsx +79 -0
  206. package/src/components/embeds/twitter-embed-client.tsx +308 -0
  207. package/src/components/layout/page-header.tsx +182 -0
  208. package/src/components/layout/page-layout.tsx +14 -1
  209. package/src/components/layout/page-with-header.tsx +110 -0
  210. package/src/components/layout/title-block.tsx +40 -62
  211. package/src/components/onboarding-guides/onboarding-guide-detail-view.tsx +3 -3
  212. package/src/components/shared/dev-section/dev-section-page.tsx +9 -1
  213. package/src/components/shared/dev-section/dev-section-view.tsx +14 -9
  214. package/src/components/shared/dev-section/index.ts +1 -1
  215. package/src/components/shared/doc-search/use-doc-search.ts +7 -3
  216. package/src/components/shared/legal-document/legal-document-page.tsx +2 -2
  217. package/src/components/shared/product-release/release-detail-page.tsx +6 -4
  218. package/src/components/ui/index.ts +2 -0
  219. package/src/components/ui/release-changelog-section.tsx +7 -2
  220. package/src/components/ui/rich-markdown-renderer.tsx +1203 -0
  221. package/src/components/ui/simple-markdown-renderer.tsx +7 -11
  222. package/src/contexts/chat-runtime-context.tsx +14 -0
  223. package/src/types/doc-source.ts +33 -1
  224. package/src/utils/index.ts +1 -0
  225. package/src/utils/page-header-constants.ts +15 -0
  226. package/src/utils/social-embed-cache.ts +391 -0
  227. package/dist/chunk-26PKDALD.js +0 -2379
  228. package/dist/chunk-26PKDALD.js.map +0 -1
  229. package/dist/chunk-3MCHAFHB.js +0 -89
  230. package/dist/chunk-3MCHAFHB.js.map +0 -1
  231. package/dist/chunk-5E2HOSSH.cjs.map +0 -1
  232. package/dist/chunk-66AANIOC.cjs +0 -619
  233. package/dist/chunk-66AANIOC.cjs.map +0 -1
  234. package/dist/chunk-6JINAOI7.cjs +0 -311
  235. package/dist/chunk-6JINAOI7.cjs.map +0 -1
  236. package/dist/chunk-7RIYT7ZH.js.map +0 -1
  237. package/dist/chunk-AQOWFSMB.cjs.map +0 -1
  238. package/dist/chunk-BOCFIKYS.cjs +0 -3009
  239. package/dist/chunk-BOCFIKYS.cjs.map +0 -1
  240. package/dist/chunk-D652TJBQ.js +0 -3009
  241. package/dist/chunk-D652TJBQ.js.map +0 -1
  242. package/dist/chunk-E4XABBSU.js.map +0 -1
  243. package/dist/chunk-EL6QLAWX.js.map +0 -1
  244. package/dist/chunk-EYEW6PTA.cjs.map +0 -1
  245. package/dist/chunk-FQJK446R.js +0 -1606
  246. package/dist/chunk-FQJK446R.js.map +0 -1
  247. package/dist/chunk-GLLDTKZK.cjs.map +0 -1
  248. package/dist/chunk-IE6OU3WQ.cjs.map +0 -1
  249. package/dist/chunk-J54Z3OCR.cjs +0 -1606
  250. package/dist/chunk-J54Z3OCR.cjs.map +0 -1
  251. package/dist/chunk-K2PFPBMF.js.map +0 -1
  252. package/dist/chunk-KXCRGTRN.cjs +0 -2379
  253. package/dist/chunk-KXCRGTRN.cjs.map +0 -1
  254. package/dist/chunk-LCNMR277.js.map +0 -1
  255. package/dist/chunk-LFGGF7OT.cjs +0 -449
  256. package/dist/chunk-LFGGF7OT.cjs.map +0 -1
  257. package/dist/chunk-M2OCXTNT.js +0 -311
  258. package/dist/chunk-M2OCXTNT.js.map +0 -1
  259. package/dist/chunk-ME4EVDFP.js +0 -619
  260. package/dist/chunk-ME4EVDFP.js.map +0 -1
  261. package/dist/chunk-OQ6X7ZOC.js +0 -449
  262. package/dist/chunk-OQ6X7ZOC.js.map +0 -1
  263. package/dist/chunk-OY7OF7E7.js.map +0 -1
  264. package/dist/chunk-POKKCWKF.js +0 -354
  265. package/dist/chunk-POKKCWKF.js.map +0 -1
  266. package/dist/chunk-QHIXS3W2.cjs.map +0 -1
  267. package/dist/chunk-TFSYSWPS.cjs +0 -89
  268. package/dist/chunk-TFSYSWPS.cjs.map +0 -1
  269. package/dist/chunk-W6M2FLLT.cjs.map +0 -1
  270. package/dist/chunk-X647HY3F.cjs.map +0 -1
  271. package/dist/chunk-X6BV7MB7.cjs.map +0 -1
  272. package/dist/chunk-XREEV72C.cjs.map +0 -1
  273. package/dist/chunk-YETA25JW.cjs +0 -354
  274. package/dist/chunk-YETA25JW.cjs.map +0 -1
  275. package/dist/chunk-YIGPRLQY.cjs.map +0 -1
  276. /package/dist/{chunk-3ZXUQQL4.js.map → chunk-PI4WSYQV.js.map} +0 -0
@@ -0,0 +1,78 @@
1
+ import React from 'react';
2
+ /**
3
+ * Page-header primitive — the canonical "back-button + title + subtitle
4
+ * + (optional) image / actions" chrome every lib page uses.
5
+ *
6
+ * Owns the SSOT for the page-header DOM/CSS that the rest of the lib
7
+ * was duplicating: pre-`mb` top padding, h1 typography (`text-h2`), h6
8
+ * subtitle (`text-h6`), the gap between the back button and the title
9
+ * block, and the right-side actions slot. Consumers either render this
10
+ * directly (e.g. `<DocViewer>` / `<DocsHubPage>`) or compose it through
11
+ * the `<TitleBlock>` adapter which adds the `PageActions` /
12
+ * `ActionsMenu` / selector wiring on top.
13
+ *
14
+ * Why this exists: knowledge-hub vs releases sat at different vertical
15
+ * rhythms (px-perfect mismatch on title baseline + subtitle offset)
16
+ * because the docs surface hand-rolled its own chrome instead of going
17
+ * through `TitleBlock`. Centralizing the layout here means every
18
+ * embeddable lib page (DocViewer, DevSectionPage, LegalDocumentPage,
19
+ * OnboardingGuideDetailView) renders pixel-identical title/subtitle/
20
+ * back-button typography + spacing — and a future spacing/typography
21
+ * tweak is one file.
22
+ */
23
+ export interface PageHeaderProps {
24
+ /** Page title (h1). Plain string — ReactNode is intentionally not
25
+ * supported here so every consumer renders the same typography. */
26
+ title?: string;
27
+ /** Optional icon rendered inline before the title text (e.g. the
28
+ * rocket emoji on /releases, the docs icon on /knowledge-base).
29
+ * Same `flex items-center gap-3` row as `<DevSectionView>`'s hero. */
30
+ titleIcon?: React.ReactNode;
31
+ /** Page subtitle (description paragraph). */
32
+ subtitle?: string;
33
+ /**
34
+ * Render a yellow accent dot (`.`) after the title. Mirrors the
35
+ * hub's legacy `<AdminPageHeader accentDot>` flag — now lib-wide so
36
+ * surfaces like `/knowledge-base` keep their existing accent styling
37
+ * after the migration.
38
+ */
39
+ accentDot?: boolean;
40
+ /** Optional thumbnail / hero image rendered to the left of the
41
+ * title block. Used by entity-image-style headers (onboarding
42
+ * guides, knowledge-base entries). */
43
+ image?: {
44
+ src: string;
45
+ alt?: string;
46
+ };
47
+ /** Back-button shown above the title block. Hidden on mobile (matches
48
+ * the existing TitleBlock + DocViewer behavior). */
49
+ backButton?: {
50
+ label?: string;
51
+ onClick: () => void;
52
+ };
53
+ /** Right-side actions slot (action buttons / menu / tab selector).
54
+ * Composed externally (e.g. `<TitleBlock>` builds `PageActions` + menu
55
+ * + selector and passes the result here). */
56
+ actions?: React.ReactNode;
57
+ /**
58
+ * Visual variant.
59
+ * - `plain` (default): transparent background, no border.
60
+ * - `card`: card background, border, and padding on mobile only —
61
+ * collapses to plain on md+ (legacy `TitleBlock` variant — kept so
62
+ * surfaces that depend on the card affordance don't regress).
63
+ */
64
+ variant?: 'plain' | 'card';
65
+ /** When the consumer wraps `<PageHeader>` in its OWN spacing container
66
+ * (e.g. `<DevSectionView>`'s `gap-10 flex-col`), the default `mb-l`
67
+ * bottom margin doubles up. Pass `noBottomMargin` to opt out. */
68
+ noBottomMargin?: boolean;
69
+ /** Same as `noBottomMargin` for the default `pt-l` top padding. Set
70
+ * this when PageHeader is nested INSIDE another layout that already
71
+ * provides top spacing (e.g. `<DevSectionView>`'s hero, which sits
72
+ * inside `<PageLayout>`'s children flow). */
73
+ noTopPadding?: boolean;
74
+ className?: string;
75
+ }
76
+ export declare function PageHeader({ title, titleIcon, subtitle, accentDot, image, backButton, actions, variant, noBottomMargin, noTopPadding, className, }: PageHeaderProps): React.JSX.Element;
77
+ export default PageHeader;
78
+ //# sourceMappingURL=page-header.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page-header.d.ts","sourceRoot":"","sources":["../../../src/components/layout/page-header.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,eAAe;IAC9B;wEACoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;2EAEuE;IACvE,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC3B,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;2CAEuC;IACvC,KAAK,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACrC;yDACqD;IACrD,UAAU,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE,CAAA;IACpD;;kDAE8C;IAC9C,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IAC1B;;sEAEkE;IAClE,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB;;;kDAG8C;IAC9C,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAmBD,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,SAAS,EACT,QAAQ,EACR,SAAS,EACT,KAAK,EACL,UAAU,EACV,OAAO,EACP,OAAiB,EACjB,cAAsB,EACtB,YAAoB,EACpB,SAAS,GACV,EAAE,eAAe,qBA0EjB;AAED,eAAe,UAAU,CAAA"}
@@ -5,6 +5,11 @@ export interface PageLayoutProps {
5
5
  children: React.ReactNode;
6
6
  title?: string;
7
7
  subtitle?: string;
8
+ /** Inline icon rendered before the title text — forwarded to
9
+ * TitleBlock/PageHeader. Same shape as DevSectionPage's hero icon. */
10
+ titleIcon?: React.ReactNode;
11
+ /** Yellow accent dot after the title — forwarded to TitleBlock/PageHeader. */
12
+ accentDot?: boolean;
8
13
  image?: {
9
14
  src: string;
10
15
  alt?: string;
@@ -29,9 +34,13 @@ export interface PageLayoutProps {
29
34
  *
30
35
  * Uses `--spacing-system-l` as the gap between sections.
31
36
  */
32
- export declare function PageLayout({ children, title, subtitle, image, backButton, actions, actionsVariant, menuActions, selector, headerVariant, className, contentClassName, showHeader, }: PageLayoutProps): React.JSX.Element;
37
+ export declare function PageLayout({ children, title, subtitle, titleIcon, accentDot, image, backButton, actions, actionsVariant, menuActions, selector, headerVariant, className, contentClassName, showHeader, }: PageLayoutProps): React.JSX.Element;
33
38
  export type { PageActionButton } from '../ui/page-actions';
34
39
  export { TitleBlock } from './title-block';
35
40
  export type { TitleBlockProps } from './title-block';
41
+ export { PageHeader } from './page-header';
42
+ export type { PageHeaderProps } from './page-header';
43
+ export { PageWithHeader } from './page-with-header';
44
+ export type { PageWithHeaderProps } from './page-with-header';
36
45
  export default PageLayout;
37
46
  //# sourceMappingURL=page-layout.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"page-layout.d.ts","sourceRoot":"","sources":["../../../src/components/layout/page-layout.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAG1D,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACrC,UAAU,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE,CAAA;IACpD,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC5B,cAAc,CAAC,EAAE,cAAc,GAAG,iBAAiB,GAAG,cAAc,CAAA;IACpE,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAChC,4FAA4F;IAC5F,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,2FAA2F;IAC3F,aAAa,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IAChC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,EACzB,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,KAAK,EACL,UAAU,EACV,OAAO,EACP,cAA+B,EAC/B,WAAW,EACX,QAAQ,EACR,aAAa,EACb,SAAS,EACT,gBAAgB,EAChB,UAAiB,GAClB,EAAE,eAAe,qBA0BjB;AAED,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AACpD,eAAe,UAAU,CAAA"}
1
+ {"version":3,"file":"page-layout.d.ts","sourceRoot":"","sources":["../../../src/components/layout/page-layout.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAG1D,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;2EACuE;IACvE,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC3B,8EAA8E;IAC9E,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,KAAK,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACrC,UAAU,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE,CAAA;IACpD,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC5B,cAAc,CAAC,EAAE,cAAc,GAAG,iBAAiB,GAAG,cAAc,CAAA;IACpE,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAChC,4FAA4F;IAC5F,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,2FAA2F;IAC3F,aAAa,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IAChC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,EACzB,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,SAAS,EACT,SAAS,EACT,KAAK,EACL,UAAU,EACV,OAAO,EACP,cAA+B,EAC/B,WAAW,EACX,QAAQ,EACR,aAAa,EACb,SAAS,EACT,gBAAgB,EAChB,UAAiB,GAClB,EAAE,eAAe,qBA4BjB;AAED,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAC7D,eAAe,UAAU,CAAA"}
@@ -0,0 +1,67 @@
1
+ import React from 'react';
2
+ import { type PageHeaderProps } from './page-header';
3
+ /**
4
+ * `<PageWithHeader>` — the canonical 4-layer unified-chrome wrapper that
5
+ * every public lib/hub page now uses (Knowledge Hub, Roadmap, FAQs,
6
+ * Authors, Blog, Vendors, Case Studies, Interviews, Investor Updates,
7
+ * /webinars-/podcasts-/events, hub admin-but-public pages, …).
8
+ *
9
+ * Renders the same JSX tree every consumer was hand-rolling individually
10
+ * before this helper landed:
11
+ *
12
+ * PageShell ← bg-ods-bg, min-h-screen, max-w-[1920px],
13
+ * page-shell-px/pt/pb gutters
14
+ * PageLayout backButton ← TitleBlock → PageHeader #1 (back-btn row
15
+ * only, pt-l + mb-l)
16
+ * div.w-full.flex-col.gap-10 ← matches DevSectionView's hero container
17
+ * PageHeader title/subtitle ← PageHeader #2 (noTopPadding +
18
+ * titleIcon accentDot noBottomMargin so PageLayout's gap-l owns
19
+ * noTopPadding the spacing between #1 and #2)
20
+ * noBottomMargin
21
+ * children ← page-specific body (search, lists, forms)
22
+ *
23
+ * Why this exists: 15+ pages copy-pasted the EXACT same nesting + the
24
+ * EXACT same `noTopPadding + noBottomMargin + accentDot` triplet on the
25
+ * inner `<PageHeader>`. Forgetting one of those flags collapsed the gap
26
+ * to ~8px (the FAQs-vs-Onboarding-Guides bug). Centralizing the chain
27
+ * here makes the spacing invariant compiler-enforced — consumers can't
28
+ * pick the wrong combination.
29
+ *
30
+ * **Back button is config-driven by default.** Consumers don't have to
31
+ * thread `useRouter()` + `() => router.push('/')` themselves anymore —
32
+ * the helper supplies a sane default (`{ label: 'Back to home', href: '/' }`).
33
+ * Hosts whose `/` lives elsewhere should pass their own `href`. Pass
34
+ * `backButton={false}` to suppress entirely (the lib's own
35
+ * `<DocsHubPage>` does this on the platform-home docs landing).
36
+ */
37
+ export interface PageWithHeaderProps {
38
+ /** Title — passed straight to inner `<PageHeader>`. */
39
+ title?: string;
40
+ /** Inline icon rendered before the title (lucide / SVG node). Wrap with
41
+ * `SECTION_HERO_ICON_CLASS` at the call site, or use the lib's
42
+ * `<PageHeader>`'s `titleIcon` ReactNode signature directly. */
43
+ titleIcon?: PageHeaderProps['titleIcon'];
44
+ /** Subtitle (1-2 lines, auto-clamped to 2 + min-h-[56px]). */
45
+ subtitle?: string;
46
+ /** Render yellow accent dot after the title (default true — matches every
47
+ * unified surface). Pass `false` to opt out. */
48
+ accentDot?: boolean;
49
+ /** Back-button config. Defaults to `{ label: 'Back to home', href: '/' }`.
50
+ * Pass `false` to hide entirely (platform-home docs landings). */
51
+ backButton?: {
52
+ label?: string;
53
+ href?: string;
54
+ } | false;
55
+ /** Optional image (entity-image-style — onboarding guides etc.). */
56
+ image?: PageHeaderProps['image'];
57
+ /** Optional actions slot (right side of header). */
58
+ actions?: React.ReactNode;
59
+ /** Page body — search bars, lists, forms, sections. Rendered INSIDE the
60
+ * gap-10 flex column so it shares gutters + vertical rhythm with the
61
+ * header. */
62
+ children: React.ReactNode;
63
+ /** Extra class applied to the gap-10 content wrapper. */
64
+ contentClassName?: string;
65
+ }
66
+ export declare function PageWithHeader({ title, titleIcon, subtitle, accentDot, backButton, image, actions, children, contentClassName, }: PageWithHeaderProps): React.JSX.Element;
67
+ //# sourceMappingURL=page-with-header.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page-with-header.d.ts","sourceRoot":"","sources":["../../../src/components/layout/page-with-header.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,eAAe,CAAA;AAEhE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,WAAW,mBAAmB;IAClC,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;qEAEiE;IACjE,SAAS,CAAC,EAAE,eAAe,CAAC,WAAW,CAAC,CAAA;IACxC,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;qDACiD;IACjD,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;uEACmE;IACnE,UAAU,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,KAAK,CAAA;IACtD,oEAAoE;IACpE,KAAK,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,CAAA;IAChC,oDAAoD;IACpD,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB;;kBAEc;IACd,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,yDAAyD;IACzD,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,SAAS,EACT,QAAQ,EACR,SAAgB,EAChB,UAAU,EACV,KAAK,EACL,OAAO,EACP,QAAQ,EACR,gBAAgB,GACjB,EAAE,mBAAmB,qBA8BrB"}
@@ -1,9 +1,25 @@
1
1
  import React from 'react';
2
2
  import type { ActionsMenuGroup } from '../ui/actions-menu';
3
3
  import { type PageActionButton } from '../ui/page-actions';
4
+ /**
5
+ * `<TitleBlock>` — thin adapter over `<PageHeader>` that turns the
6
+ * `actions: PageActionButton[]` / `menuActions` / `selector` API into
7
+ * a `ReactNode` slot that PageHeader can render. Kept as a separate
8
+ * component for backwards compatibility (`PageLayout` consumes it,
9
+ * external callers may too) — all the DOM/CSS lives in PageHeader.
10
+ *
11
+ * If a new consumer doesn't need the `PageActions` wiring, prefer
12
+ * `<PageHeader>` directly.
13
+ */
4
14
  export interface TitleBlockProps {
5
15
  title?: string;
6
16
  subtitle?: string;
17
+ /** Inline icon rendered before the title text (e.g. HelpCircle on /faqs,
18
+ * BookOpen on /knowledge-base, Map on /roadmap). Forwarded verbatim to
19
+ * `<PageHeader>`. */
20
+ titleIcon?: React.ReactNode;
21
+ /** Yellow accent dot after the title — same flag as PageHeader. */
22
+ accentDot?: boolean;
7
23
  image?: {
8
24
  src: string;
9
25
  alt?: string;
@@ -25,6 +41,6 @@ export interface TitleBlockProps {
25
41
  variant?: 'plain' | 'card';
26
42
  className?: string;
27
43
  }
28
- export declare function TitleBlock({ title, subtitle, image, backButton, actions, actionsVariant, menuActions, selector, variant, className, }: TitleBlockProps): React.JSX.Element;
44
+ export declare function TitleBlock({ title, subtitle, titleIcon, accentDot, image, backButton, actions, actionsVariant, menuActions, selector, variant, className, }: TitleBlockProps): React.JSX.Element;
29
45
  export default TitleBlock;
30
46
  //# sourceMappingURL=title-block.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"title-block.d.ts","sourceRoot":"","sources":["../../../src/components/layout/title-block.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAE1D,OAAO,EAAe,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAGvE,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACrC,UAAU,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE,CAAA;IACpD,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC5B,cAAc,CAAC,EAAE,cAAc,GAAG,iBAAiB,GAAG,cAAc,CAAA;IACpE,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAChC,4FAA4F;IAC5F,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,QAAQ,EACR,KAAK,EACL,UAAU,EACV,OAAO,EACP,cAA+B,EAC/B,WAAW,EACX,QAAQ,EACR,OAAiB,EACjB,SAAS,GACV,EAAE,eAAe,qBAiEjB;AAED,eAAe,UAAU,CAAA"}
1
+ {"version":3,"file":"title-block.d.ts","sourceRoot":"","sources":["../../../src/components/layout/title-block.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,EAAe,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAGvE;;;;;;;;;GASG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;0BAEsB;IACtB,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC3B,mEAAmE;IACnE,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,KAAK,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACrC,UAAU,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE,CAAA;IACpD,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC5B,cAAc,CAAC,EAAE,cAAc,GAAG,iBAAiB,GAAG,cAAc,CAAA;IACpE,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAChC,4FAA4F;IAC5F,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,QAAQ,EACR,SAAS,EACT,SAAS,EACT,KAAK,EACL,UAAU,EACV,OAAO,EACP,cAA+B,EAC/B,WAAW,EACX,QAAQ,EACR,OAAiB,EACjB,SAAS,GACV,EAAE,eAAe,qBA2BjB;AAED,eAAe,UAAU,CAAA"}
@@ -24,33 +24,25 @@
24
24
 
25
25
 
26
26
 
27
- var _chunkQHIXS3W2cjs = require('../../chunk-QHIXS3W2.cjs');
28
27
 
29
28
 
30
29
 
31
30
 
32
-
33
- var _chunkKXCRGTRNcjs = require('../../chunk-KXCRGTRN.cjs');
34
- require('../../chunk-5E2HOSSH.cjs');
35
- require('../../chunk-LFGGF7OT.cjs');
31
+ var _chunkGUTS7HGAcjs = require('../../chunk-GUTS7HGA.cjs');
32
+ require('../../chunk-WMSTJAZT.cjs');
33
+ require('../../chunk-L6PSSIUQ.cjs');
36
34
  require('../../chunk-27APPAJN.cjs');
37
- require('../../chunk-6JINAOI7.cjs');
38
- require('../../chunk-PXXS27EE.cjs');
39
- require('../../chunk-BOCFIKYS.cjs');
40
- require('../../chunk-J54Z3OCR.cjs');
41
- require('../../chunk-TFSYSWPS.cjs');
42
- require('../../chunk-YETA25JW.cjs');
43
- require('../../chunk-AQOWFSMB.cjs');
35
+ require('../../chunk-BZFW3FOF.cjs');
44
36
  require('../../chunk-G7UE6RKV.cjs');
45
37
  require('../../chunk-XL4V2PYG.cjs');
46
- require('../../chunk-BZFW3FOF.cjs');
47
- require('../../chunk-IE6OU3WQ.cjs');
38
+ require('../../chunk-FQOTC3UU.cjs');
48
39
  require('../../chunk-WBR7H6E3.cjs');
49
40
  require('../../chunk-LGLPNWS6.cjs');
50
41
  require('../../chunk-FIG2RKZF.cjs');
51
42
  require('../../chunk-ZS2SBWBR.cjs');
52
43
  require('../../chunk-WZW7C7TF.cjs');
53
44
  require('../../chunk-XQFFGR6U.cjs');
45
+ require('../../chunk-PXXS27EE.cjs');
54
46
  require('../../chunk-VRHGVLSL.cjs');
55
47
 
56
48
 
@@ -80,5 +72,5 @@ require('../../chunk-VRHGVLSL.cjs');
80
72
 
81
73
 
82
74
 
83
- exports.AppHeader = _chunkQHIXS3W2cjs.AppHeader; exports.AppLayout = _chunkQHIXS3W2cjs.AppLayout; exports.AppLayoutDrawer = _chunkQHIXS3W2cjs.AppLayoutDrawerRoot; exports.AppLayoutDrawerBody = _chunkQHIXS3W2cjs.AppLayoutDrawerBody; exports.AppLayoutDrawerClose = _chunkQHIXS3W2cjs.AppLayoutDrawerClose; exports.AppLayoutDrawerContent = _chunkQHIXS3W2cjs.AppLayoutDrawerContent; exports.AppLayoutDrawerDescription = _chunkQHIXS3W2cjs.AppLayoutDrawerDescription; exports.AppLayoutDrawerFooter = _chunkQHIXS3W2cjs.AppLayoutDrawerFooter; exports.AppLayoutDrawerHeader = _chunkQHIXS3W2cjs.AppLayoutDrawerHeader; exports.AppLayoutDrawerTitle = _chunkQHIXS3W2cjs.AppLayoutDrawerTitle; exports.AppLayoutDrawerTrigger = _chunkQHIXS3W2cjs.AppLayoutDrawerTrigger; exports.ClientOnlyHeader = _chunkQHIXS3W2cjs.ClientOnlyHeader; exports.Header = _chunkQHIXS3W2cjs.Header; exports.HeaderButton = _chunkQHIXS3W2cjs.HeaderButton; exports.HeaderGlobalSearch = _chunkQHIXS3W2cjs.HeaderGlobalSearch; exports.HeaderMingoButton = _chunkQHIXS3W2cjs.HeaderMingoButton; exports.HeaderOrganizationFilter = _chunkQHIXS3W2cjs.HeaderOrganizationFilter; exports.HeaderSkeleton = _chunkQHIXS3W2cjs.HeaderSkeleton; exports.MobileBurgerMenu = _chunkQHIXS3W2cjs.MobileBurgerMenu; exports.MobileNavPanel = _chunkQHIXS3W2cjs.MobileNavPanel; exports.MobileNavigationDropdown = _chunkKXCRGTRNcjs.MobileNavigationDropdown; exports.MultiLevelNavigation = _chunkKXCRGTRNcjs.MultiLevelNavigation; exports.NavigationSidebar = _chunkQHIXS3W2cjs.NavigationSidebar; exports.SlidingSidebar = _chunkQHIXS3W2cjs.SlidingSidebar; exports.StickySectionNav = _chunkKXCRGTRNcjs.StickySectionNav; exports.useAppLayoutDrawerContainer = _chunkQHIXS3W2cjs.useAppLayoutDrawerContainer; exports.useSectionNavigation = _chunkKXCRGTRNcjs.useSectionNavigation;
75
+ exports.AppHeader = _chunkGUTS7HGAcjs.AppHeader; exports.AppLayout = _chunkGUTS7HGAcjs.AppLayout; exports.AppLayoutDrawer = _chunkGUTS7HGAcjs.AppLayoutDrawerRoot; exports.AppLayoutDrawerBody = _chunkGUTS7HGAcjs.AppLayoutDrawerBody; exports.AppLayoutDrawerClose = _chunkGUTS7HGAcjs.AppLayoutDrawerClose; exports.AppLayoutDrawerContent = _chunkGUTS7HGAcjs.AppLayoutDrawerContent; exports.AppLayoutDrawerDescription = _chunkGUTS7HGAcjs.AppLayoutDrawerDescription; exports.AppLayoutDrawerFooter = _chunkGUTS7HGAcjs.AppLayoutDrawerFooter; exports.AppLayoutDrawerHeader = _chunkGUTS7HGAcjs.AppLayoutDrawerHeader; exports.AppLayoutDrawerTitle = _chunkGUTS7HGAcjs.AppLayoutDrawerTitle; exports.AppLayoutDrawerTrigger = _chunkGUTS7HGAcjs.AppLayoutDrawerTrigger; exports.ClientOnlyHeader = _chunkGUTS7HGAcjs.ClientOnlyHeader; exports.Header = _chunkGUTS7HGAcjs.Header; exports.HeaderButton = _chunkGUTS7HGAcjs.HeaderButton; exports.HeaderGlobalSearch = _chunkGUTS7HGAcjs.HeaderGlobalSearch; exports.HeaderMingoButton = _chunkGUTS7HGAcjs.HeaderMingoButton; exports.HeaderOrganizationFilter = _chunkGUTS7HGAcjs.HeaderOrganizationFilter; exports.HeaderSkeleton = _chunkGUTS7HGAcjs.HeaderSkeleton; exports.MobileBurgerMenu = _chunkGUTS7HGAcjs.MobileBurgerMenu; exports.MobileNavPanel = _chunkGUTS7HGAcjs.MobileNavPanel; exports.MobileNavigationDropdown = _chunkGUTS7HGAcjs.MobileNavigationDropdown; exports.MultiLevelNavigation = _chunkGUTS7HGAcjs.MultiLevelNavigation; exports.NavigationSidebar = _chunkGUTS7HGAcjs.NavigationSidebar; exports.SlidingSidebar = _chunkGUTS7HGAcjs.SlidingSidebar; exports.StickySectionNav = _chunkGUTS7HGAcjs.StickySectionNav; exports.useAppLayoutDrawerContainer = _chunkGUTS7HGAcjs.useAppLayoutDrawerContainer; exports.useSectionNavigation = _chunkGUTS7HGAcjs.useSectionNavigation;
84
76
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/components/navigation/index.cjs"],"names":[],"mappings":"AAAA,qFAAY;AACZ,YAAY;AACZ;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,4DAAiC;AACjC;AACE;AACA;AACA;AACA;AACF,4DAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,swDAAC","file":"/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/components/navigation/index.cjs"}
1
+ {"version":3,"sources":["/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/components/navigation/index.cjs"],"names":[],"mappings":"AAAA,qFAAY;AACZ,YAAY;AACZ;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,4DAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,swDAAC","file":"/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/components/navigation/index.cjs"}
@@ -21,36 +21,28 @@ import {
21
21
  HeaderSkeleton,
22
22
  MobileBurgerMenu,
23
23
  MobileNavPanel,
24
- NavigationSidebar,
25
- SlidingSidebar,
26
- useAppLayoutDrawerContainer
27
- } from "../../chunk-K2PFPBMF.js";
28
- import {
29
24
  MobileNavigationDropdown,
30
25
  MultiLevelNavigation,
26
+ NavigationSidebar,
27
+ SlidingSidebar,
31
28
  StickySectionNav,
29
+ useAppLayoutDrawerContainer,
32
30
  useSectionNavigation
33
- } from "../../chunk-26PKDALD.js";
34
- import "../../chunk-7RIYT7ZH.js";
35
- import "../../chunk-OQ6X7ZOC.js";
31
+ } from "../../chunk-PC746XCO.js";
32
+ import "../../chunk-2QG57XOJ.js";
33
+ import "../../chunk-IZ7JSBFP.js";
36
34
  import "../../chunk-MJNXIEV2.js";
37
- import "../../chunk-M2OCXTNT.js";
38
- import "../../chunk-PHWQLKVE.js";
39
- import "../../chunk-D652TJBQ.js";
40
- import "../../chunk-FQJK446R.js";
41
- import "../../chunk-3MCHAFHB.js";
42
- import "../../chunk-POKKCWKF.js";
43
- import "../../chunk-LCNMR277.js";
35
+ import "../../chunk-EL5YVPD5.js";
44
36
  import "../../chunk-PLJLE4A4.js";
45
37
  import "../../chunk-LXC6P2EO.js";
46
- import "../../chunk-EL5YVPD5.js";
47
- import "../../chunk-EL6QLAWX.js";
38
+ import "../../chunk-JALO4TAZ.js";
48
39
  import "../../chunk-OHPI2HRK.js";
49
40
  import "../../chunk-V4IIBNTA.js";
50
41
  import "../../chunk-XTCBRQN2.js";
51
42
  import "../../chunk-J7AV6H63.js";
52
43
  import "../../chunk-6U3IUD57.js";
53
44
  import "../../chunk-W72U7OU7.js";
45
+ import "../../chunk-PHWQLKVE.js";
54
46
  import "../../chunk-GGWZFCYS.js";
55
47
  export {
56
48
  AppHeader,
@@ -2,14 +2,14 @@
2
2
 
3
3
 
4
4
 
5
- var _chunkGLLDTKZKcjs = require('../../chunk-GLLDTKZK.cjs');
5
+ var _chunk4PSQS3SWcjs = require('../../chunk-4PSQS3SW.cjs');
6
6
 
7
7
 
8
8
 
9
- var _chunkYIGPRLQYcjs = require('../../chunk-YIGPRLQY.cjs');
9
+ var _chunkFCDQNTDGcjs = require('../../chunk-FCDQNTDG.cjs');
10
10
 
11
11
 
12
- var _chunkD3LEFMOAcjs = require('../../chunk-D3LEFMOA.cjs');
12
+ var _chunk54KNMC2Rcjs = require('../../chunk-54KNMC2R.cjs');
13
13
  require('../../chunk-VFKQMAUF.cjs');
14
14
 
15
15
 
@@ -25,28 +25,27 @@ require('../../chunk-VFKQMAUF.cjs');
25
25
 
26
26
 
27
27
 
28
- var _chunkBOCFIKYScjs = require('../../chunk-BOCFIKYS.cjs');
29
28
 
29
+ var _chunkGUTS7HGAcjs = require('../../chunk-GUTS7HGA.cjs');
30
+ require('../../chunk-WMSTJAZT.cjs');
30
31
 
31
- var _chunkJ54Z3OCRcjs = require('../../chunk-J54Z3OCR.cjs');
32
- require('../../chunk-TFSYSWPS.cjs');
33
- require('../../chunk-YETA25JW.cjs');
34
32
 
35
-
36
- var _chunkAQOWFSMBcjs = require('../../chunk-AQOWFSMB.cjs');
33
+ var _chunkL6PSSIUQcjs = require('../../chunk-L6PSSIUQ.cjs');
34
+ require('../../chunk-27APPAJN.cjs');
35
+ require('../../chunk-BZFW3FOF.cjs');
37
36
 
38
37
 
39
38
 
40
39
  var _chunkG7UE6RKVcjs = require('../../chunk-G7UE6RKV.cjs');
41
40
  require('../../chunk-XL4V2PYG.cjs');
42
- require('../../chunk-BZFW3FOF.cjs');
43
- require('../../chunk-IE6OU3WQ.cjs');
41
+ require('../../chunk-FQOTC3UU.cjs');
44
42
  require('../../chunk-WBR7H6E3.cjs');
45
43
  require('../../chunk-LGLPNWS6.cjs');
46
44
  require('../../chunk-FIG2RKZF.cjs');
47
45
  require('../../chunk-ZS2SBWBR.cjs');
48
46
  require('../../chunk-WZW7C7TF.cjs');
49
47
  require('../../chunk-XQFFGR6U.cjs');
48
+ require('../../chunk-PXXS27EE.cjs');
50
49
  require('../../chunk-VRHGVLSL.cjs');
51
50
 
52
51
  // src/components/onboarding-guides/onboarding-guides-catalog-view.tsx
@@ -75,7 +74,7 @@ function OnboardingGuidesCatalogSkeleton() {
75
74
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "h-6 w-40 bg-ods-border/70 rounded" }),
76
75
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "h-5 w-8 bg-ods-text-secondary/20 rounded-full" })
77
76
  ] }),
78
- /* @__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, _chunkBOCFIKYScjs.OnboardingGuideCardSkeleton, { size: "catalog" }) }, cardIdx)) })
77
+ /* @__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, _chunkGUTS7HGAcjs.OnboardingGuideCardSkeleton, { size: "catalog" }) }, cardIdx)) })
79
78
  ] }, sectionIdx)) })
80
79
  ] });
81
80
  }
@@ -94,15 +93,15 @@ function OnboardingGuidesCatalogView({
94
93
  const router = _chunkG7UE6RKVcjs.useRouter.call(void 0, );
95
94
  const searchParams = _chunkG7UE6RKVcjs.useSearchParams.call(void 0, );
96
95
  const [isPending, startTransition] = _react.useTransition.call(void 0, );
97
- const runtime = _chunkAQOWFSMBcjs.useChatRuntime.call(void 0, );
96
+ const runtime = _chunkL6PSSIUQcjs.useChatRuntime.call(void 0, );
98
97
  const selfFetch = initialGuides === void 0 && guidesEndpoint !== void 0;
99
98
  const sectionValue = selfFetch ? _nullishCoalesce(searchParams.get("section"), () => ( "")) : initialSection;
100
99
  const activeSection = sectionValue || "all";
101
100
  const guidesQs = sectionValue ? `?section=${encodeURIComponent(sectionValue)}` : "";
102
- const guidesRes = _chunkD3LEFMOAcjs.useSelfFetch.call(void 0,
101
+ const guidesRes = _chunk54KNMC2Rcjs.useSelfFetch.call(void 0,
103
102
  selfFetch && guidesEndpoint ? `${guidesEndpoint}${guidesQs}` : null
104
103
  );
105
- const sectionsRes = _chunkD3LEFMOAcjs.useSelfFetch.call(void 0,
104
+ const sectionsRes = _chunk54KNMC2Rcjs.useSelfFetch.call(void 0,
106
105
  selfFetch && sectionsEndpoint ? sectionsEndpoint : null
107
106
  );
108
107
  const guides = _nullishCoalesce(_nullishCoalesce(initialGuides, () => ( _optionalChain([guidesRes, 'access', _2 => _2.data, 'optionalAccess', _3 => _3.data]))), () => ( []));
@@ -144,21 +143,21 @@ function OnboardingGuidesCatalogView({
144
143
  });
145
144
  };
146
145
  const source = _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _4 => _4.source]), () => ( "openframe"));
147
- const docSearch = _chunkYIGPRLQYcjs.useDocSearch.call(void 0, {
146
+ const docSearch = _chunkFCDQNTDGcjs.useDocSearch.call(void 0, {
148
147
  source,
149
148
  baseRoute: basePath,
150
149
  onNavigate: (path) => router.push(path),
151
150
  tableIds: ["onboarding-guides"]
152
151
  });
153
152
  const defaultRenderCard = (guide) => {
154
- const cta = _chunkJ54Z3OCRcjs.resolveContentHref.call(void 0, _optionalChain([runtime, 'optionalAccess', _5 => _5.composeContentUrl]), {
153
+ const cta = _chunkGUTS7HGAcjs.resolveContentHref.call(void 0, _optionalChain([runtime, 'optionalAccess', _5 => _5.composeContentUrl]), {
155
154
  type: "onboarding_guide",
156
155
  slug: guide.slug,
157
156
  basePath,
158
157
  platforms: guide.onboarding_guide_platforms
159
158
  });
160
159
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
161
- _chunkBOCFIKYScjs.OnboardingGuideCard,
160
+ _chunkGUTS7HGAcjs.OnboardingGuideCard,
162
161
  {
163
162
  guide,
164
163
  href: cta.href,
@@ -170,7 +169,7 @@ function OnboardingGuidesCatalogView({
170
169
  const renderCardFn = _nullishCoalesce(renderCard, () => ( defaultRenderCard));
171
170
  const preControls = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
172
171
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
173
- _chunkYIGPRLQYcjs.DocSearchBar,
172
+ _chunkFCDQNTDGcjs.DocSearchBar,
174
173
  {
175
174
  placeholder: "Search onboarding guides, releases, case studies\u2026",
176
175
  query: docSearch.query,
@@ -182,7 +181,7 @@ function OnboardingGuidesCatalogView({
182
181
  }
183
182
  ),
184
183
  sections.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
185
- _chunkBOCFIKYScjs.FilterPillRow,
184
+ _chunkGUTS7HGAcjs.FilterPillRow,
186
185
  {
187
186
  label: "Section",
188
187
  selectedValue: activeSection,
@@ -192,7 +191,7 @@ function OnboardingGuidesCatalogView({
192
191
  )
193
192
  ] });
194
193
  if (selfFetch && guidesRes.error) {
195
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBOCFIKYScjs.LoadError, { message: "Failed to load onboarding guides.", onRetry: guidesRes.reload });
194
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGUTS7HGAcjs.LoadError, { message: "Failed to load onboarding guides.", onRetry: guidesRes.reload });
196
195
  }
197
196
  if (selfFetch && guidesRes.data == null && isLoading) {
198
197
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, OnboardingGuidesCatalogSkeleton, {});
@@ -223,44 +222,44 @@ function OnboardingGuideDetailView({
223
222
  slug,
224
223
  guideEndpoint,
225
224
  related = [],
226
- MarkdownRenderer = _chunkBOCFIKYScjs.SimpleMarkdownRenderer,
225
+ MarkdownRenderer = _chunkGUTS7HGAcjs.RichMarkdownRenderer,
227
226
  renderRelatedCard,
228
227
  backHref,
229
228
  backLabel = "Back to Getting Started",
230
229
  basePath = "/onboarding-guides"
231
230
  }) {
232
231
  const resolvedBackHref = _nullishCoalesce(backHref, () => ( basePath));
233
- const runtime = _chunkAQOWFSMBcjs.useChatRuntime.call(void 0, );
232
+ const runtime = _chunkL6PSSIUQcjs.useChatRuntime.call(void 0, );
234
233
  const router = _chunkG7UE6RKVcjs.useRouter.call(void 0, );
235
234
  const url = initialData ? null : slug && guideEndpoint ? guideEndpoint(slug) : null;
236
- const { data: guide, isLoading, error, reload } = _chunkD3LEFMOAcjs.useSelfFetch.call(void 0, url, { initialData });
237
- const { ref: videoWarmupRef } = _chunkBOCFIKYScjs.useVideoWarmup.call(void 0, {
235
+ const { data: guide, isLoading, error, reload } = _chunk54KNMC2Rcjs.useSelfFetch.call(void 0, url, { initialData });
236
+ const { ref: videoWarmupRef } = _chunkGUTS7HGAcjs.useVideoWarmup.call(void 0, {
238
237
  videoUrl: _optionalChain([guide, 'optionalAccess', _6 => _6.main_video_url]),
239
238
  supabaseStorageOrigin: _optionalChain([runtime, 'optionalAccess', _7 => _7.endpoints, 'access', _8 => _8.supabaseStorageOrigin])
240
239
  });
241
240
  if (error || !guide && !isLoading) {
242
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBOCFIKYScjs.PageShell, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBOCFIKYScjs.LoadError, { message: "Guide not found.", onRetry: reload }) });
241
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGUTS7HGAcjs.PageShell, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGUTS7HGAcjs.LoadError, { message: "Guide not found.", onRetry: reload }) });
243
242
  }
244
243
  if (!guide) {
245
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBOCFIKYScjs.PageShell, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pt-[var(--spacing-system-l)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGLLDTKZKcjs.DetailPageSkeleton, { bare: true, showImageGallery: false }) }) });
244
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGUTS7HGAcjs.PageShell, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pt-[var(--spacing-system-l)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk4PSQS3SWcjs.DetailPageSkeleton, { bare: true, showImageGallery: false }) }) });
246
245
  }
247
- const captionsUrl = _chunkBOCFIKYScjs.getCaptionsUrl.call(void 0, "onboarding_guide", guide.id, guide.srt_content);
246
+ const captionsUrl = _chunkGUTS7HGAcjs.getCaptionsUrl.call(void 0, "onboarding_guide", guide.id, guide.srt_content);
248
247
  const videoPoster = guide.main_video_thumbnail || guide.featured_image || guide.og_image_url || _optionalChain([runtime, 'optionalAccess', _9 => _9.resolvePlaceholderUrl, 'optionalCall', _10 => _10(guide.title, { aspect: "wide" })]) || void 0;
249
248
  const defaultRenderRelatedCard = (g) => {
250
- const cta = _chunkJ54Z3OCRcjs.resolveContentHref.call(void 0, _optionalChain([runtime, 'optionalAccess', _11 => _11.composeContentUrl]), {
249
+ const cta = _chunkGUTS7HGAcjs.resolveContentHref.call(void 0, _optionalChain([runtime, 'optionalAccess', _11 => _11.composeContentUrl]), {
251
250
  type: "onboarding_guide",
252
251
  slug: g.slug,
253
252
  basePath,
254
253
  platforms: g.onboarding_guide_platforms
255
254
  });
256
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBOCFIKYScjs.OnboardingGuideCard, { guide: g, href: cta.href, targetPlatform: cta.targetPlatform });
255
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGUTS7HGAcjs.OnboardingGuideCard, { guide: g, href: cta.href, targetPlatform: cta.targetPlatform });
257
256
  };
258
257
  const renderRelatedCardFn = _nullishCoalesce(renderRelatedCard, () => ( defaultRenderRelatedCard));
259
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBOCFIKYScjs.PageShell, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkBOCFIKYScjs.PageLayout, { backButton: { label: backLabel, onClick: () => router.push(resolvedBackHref) }, children: [
258
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGUTS7HGAcjs.PageShell, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkGUTS7HGAcjs.PageLayout, { backButton: { label: backLabel, onClick: () => router.push(resolvedBackHref) }, children: [
260
259
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { className: "text-h1 tracking-[-1.12px] text-ods-text-primary", children: guide.title }),
261
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBOCFIKYScjs.EntityTagBadges, { tags: guide.onboarding_guide_tags }),
260
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGUTS7HGAcjs.EntityTagBadges, { tags: guide.onboarding_guide_tags }),
262
261
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
263
- _chunkBOCFIKYScjs.EntityAuthorCard,
262
+ _chunkGUTS7HGAcjs.EntityAuthorCard,
264
263
  {
265
264
  author: guide.author,
266
265
  authorHref,
@@ -275,7 +274,7 @@ function OnboardingGuideDetailView({
275
274
  }
276
275
  ),
277
276
  (guide.main_video_url || guide.youtube_url) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: videoWarmupRef, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
278
- _chunkBOCFIKYScjs.EntityVideoSection,
277
+ _chunkGUTS7HGAcjs.EntityVideoSection,
279
278
  {
280
279
  mainVideoUrl: guide.main_video_url,
281
280
  youtubeUrl: guide.youtube_url || void 0,
@@ -292,7 +291,7 @@ function OnboardingGuideDetailView({
292
291
  ) }),
293
292
  guide.content && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MarkdownRenderer, { content: guide.content }) }),
294
293
  guide.video_bites && guide.video_bites.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
295
- _chunkBOCFIKYScjs.VideoBitesDisplay,
294
+ _chunkGUTS7HGAcjs.VideoBitesDisplay,
296
295
  {
297
296
  bites: guide.video_bites,
298
297
  filterPublished: true,
@@ -300,7 +299,7 @@ function OnboardingGuideDetailView({
300
299
  }
301
300
  ),
302
301
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
303
- _chunkGLLDTKZKcjs.ArticleAuthorByline,
302
+ _chunk4PSQS3SWcjs.ArticleAuthorByline,
304
303
  {
305
304
  author: _nullishCoalesce(_optionalChain([guide, 'access', _12 => _12.author, 'optionalAccess', _13 => _13.full_name]), () => ( null)),
306
305
  avatar: _optionalChain([guide, 'access', _14 => _14.author, 'optionalAccess', _15 => _15.avatar_url]),