@takazudo/zudo-doc 0.2.21 → 1.0.0

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 (373) hide show
  1. package/bin/gen-z-index.mjs +164 -0
  2. package/bin/tags-audit-runner.ts +126 -0
  3. package/bin/tags-audit.mjs +64 -0
  4. package/bin/zudo-doc.mjs +83 -0
  5. package/dist/ai-chat-modal/index.d.ts +8 -0
  6. package/dist/ai-chat-modal/index.js +243 -0
  7. package/dist/body-foot-util/body-foot-util-area.d.ts +4 -8
  8. package/dist/body-foot-util/edit-link.d.ts +4 -8
  9. package/dist/body-foot-util/index.d.ts +4 -3
  10. package/dist/breadcrumb/breadcrumb.d.ts +5 -9
  11. package/dist/breadcrumb/find-path.d.ts +2 -5
  12. package/dist/breadcrumb/index.d.ts +4 -4
  13. package/dist/breadcrumb/types.d.ts +3 -5
  14. package/dist/category-nav/index.d.ts +86 -0
  15. package/dist/category-nav/index.js +44 -0
  16. package/dist/category-tree-nav/index.d.ts +65 -0
  17. package/dist/category-tree-nav/index.js +24 -0
  18. package/dist/code-group/index.d.ts +10 -0
  19. package/dist/code-group/index.js +37 -0
  20. package/dist/code-syntax/code-block-enhancer-script.d.ts +1 -3
  21. package/dist/code-syntax/code-block-enhancer.d.ts +3 -6
  22. package/dist/code-syntax/index.d.ts +9 -8
  23. package/dist/code-syntax/mermaid-init-script.d.ts +3 -5
  24. package/dist/code-syntax/mermaid-init.d.ts +4 -7
  25. package/dist/code-syntax/tabs-init-script.d.ts +1 -3
  26. package/dist/code-syntax/tabs-init.d.ts +3 -6
  27. package/dist/code-syntax/tabs.d.ts +4 -7
  28. package/dist/color-scheme-utils.d.ts +125 -0
  29. package/dist/color-scheme-utils.js +151 -0
  30. package/dist/compose-meta-title/index.d.ts +7 -0
  31. package/dist/compose-meta-title/index.js +10 -0
  32. package/dist/content/component-map.d.ts +13 -17
  33. package/dist/content/content-blockquote.d.ts +3 -6
  34. package/dist/content/content-code.d.ts +3 -6
  35. package/dist/content/content-code.js +1 -1
  36. package/dist/content/content-link.d.ts +3 -6
  37. package/dist/content/content-link.js +1 -1
  38. package/dist/content/content-ol.d.ts +3 -6
  39. package/dist/content/content-paragraph.d.ts +3 -6
  40. package/dist/content/content-strong.d.ts +3 -6
  41. package/dist/content/content-table.d.ts +3 -6
  42. package/dist/content/content-ul.d.ts +3 -6
  43. package/dist/content/heading-h2.d.ts +3 -6
  44. package/dist/content/heading-h3.d.ts +3 -6
  45. package/dist/content/heading-h4.d.ts +3 -6
  46. package/dist/content/index.d.ts +29 -13
  47. package/dist/content-admonition/index.d.ts +15 -0
  48. package/dist/content-admonition/index.js +14 -0
  49. package/dist/design-token-panel-bootstrap.d.ts +38 -0
  50. package/dist/design-token-panel-bootstrap.js +29 -0
  51. package/dist/desktop-sidebar-toggle-island/index.d.ts +5 -0
  52. package/dist/desktop-sidebar-toggle-island/index.js +62 -0
  53. package/dist/details/details.d.ts +3 -7
  54. package/dist/details/index.d.ts +2 -2
  55. package/dist/doc-body-end/index.d.ts +21 -0
  56. package/dist/doc-body-end/index.js +15 -0
  57. package/dist/doc-content-header/index.d.ts +69 -0
  58. package/dist/doc-content-header/index.js +49 -0
  59. package/dist/doc-history/index.d.ts +10 -0
  60. package/dist/doc-history/index.js +407 -0
  61. package/dist/doc-history-area/index.d.ts +84 -0
  62. package/dist/doc-history-area/index.js +76 -0
  63. package/dist/doc-metainfo-area/index.d.ts +46 -0
  64. package/dist/doc-metainfo-area/index.js +41 -0
  65. package/dist/doc-page-props/index.d.ts +93 -0
  66. package/dist/doc-page-props/index.js +0 -0
  67. package/dist/doc-page-renderer/index.d.ts +128 -0
  68. package/dist/doc-page-renderer/index.js +103 -0
  69. package/dist/doc-page-shell/index.d.ts +136 -0
  70. package/dist/doc-page-shell/index.js +127 -0
  71. package/dist/doc-pager/index.d.ts +25 -0
  72. package/dist/doc-pager/index.js +41 -0
  73. package/dist/doc-route-entries/index.d.ts +125 -0
  74. package/dist/doc-route-entries/index.js +76 -0
  75. package/dist/doc-route-paths/index.d.ts +54 -0
  76. package/dist/doc-route-paths/index.js +61 -0
  77. package/dist/doc-tags-area/index.d.ts +38 -0
  78. package/dist/doc-tags-area/index.js +30 -0
  79. package/dist/doclayout/anchors.d.ts +7 -9
  80. package/dist/doclayout/doc-layout-with-defaults.d.ts +16 -12
  81. package/dist/doclayout/doc-layout.d.ts +5 -9
  82. package/dist/doclayout/index.d.ts +6 -6
  83. package/dist/eject/index.d.ts +33 -0
  84. package/dist/eject/index.js +229 -0
  85. package/dist/extract-headings/index.d.ts +43 -0
  86. package/dist/extract-headings/index.js +111 -0
  87. package/dist/factory-context/index.d.ts +80 -0
  88. package/dist/factory-context/index.js +0 -0
  89. package/dist/features.css +882 -0
  90. package/dist/footer/footer.d.ts +4 -8
  91. package/dist/footer/index.d.ts +13 -3
  92. package/dist/footer/types.d.ts +4 -6
  93. package/dist/footer-with-defaults/index.d.ts +63 -0
  94. package/dist/footer-with-defaults/index.js +128 -0
  95. package/dist/frontmatter-preview-data/index.d.ts +26 -0
  96. package/dist/frontmatter-preview-data/index.js +23 -0
  97. package/dist/github-helpers/index.d.ts +17 -0
  98. package/dist/github-helpers/index.js +16 -0
  99. package/dist/head/doc-head.d.ts +3 -6
  100. package/dist/head/index.d.ts +9 -5
  101. package/dist/head/og-tags.d.ts +4 -7
  102. package/dist/head/twitter-card.d.ts +3 -6
  103. package/dist/head/types.d.ts +1 -3
  104. package/dist/head-with-defaults/index.d.ts +49 -0
  105. package/dist/head-with-defaults/index.js +62 -0
  106. package/dist/header/header.d.ts +6 -10
  107. package/dist/header/index.d.ts +16 -6
  108. package/dist/header/nav-active.d.ts +5 -7
  109. package/dist/header/nav-overflow-script.d.ts +1 -3
  110. package/dist/header/right-items.d.ts +3 -6
  111. package/dist/header/types.d.ts +10 -12
  112. package/dist/header-with-defaults/index.d.ts +77 -0
  113. package/dist/header-with-defaults/index.js +163 -0
  114. package/dist/html-preview-wrapper/dedent.d.ts +1 -3
  115. package/dist/html-preview-wrapper/highlighted-code.d.ts +3 -7
  116. package/dist/html-preview-wrapper/html-preview-wrapper.d.ts +6 -10
  117. package/dist/html-preview-wrapper/html-preview.d.ts +5 -9
  118. package/dist/html-preview-wrapper/index.d.ts +8 -5
  119. package/dist/html-preview-wrapper/preflight.d.ts +1 -3
  120. package/dist/html-preview-wrapper/preview-base.d.ts +4 -8
  121. package/dist/i18n-version/index.d.ts +7 -5
  122. package/dist/i18n-version/language-switcher.d.ts +5 -8
  123. package/dist/i18n-version/types.d.ts +3 -5
  124. package/dist/i18n-version/version-banner.d.ts +4 -8
  125. package/dist/i18n-version/version-switcher.d.ts +7 -10
  126. package/dist/icons/index.d.ts +9 -13
  127. package/dist/image-enlarge/index.d.ts +13 -0
  128. package/dist/image-enlarge/index.js +176 -0
  129. package/dist/index.d.ts +26 -2
  130. package/dist/inline-version-switcher/index.d.ts +31 -0
  131. package/dist/inline-version-switcher/index.js +44 -0
  132. package/dist/integrations/claude-resources/escape-for-mdx.d.ts +1 -3
  133. package/dist/integrations/claude-resources/generate.d.ts +2 -4
  134. package/dist/integrations/claude-resources/index.d.ts +7 -10
  135. package/dist/integrations/doc-history/index.d.ts +21 -24
  136. package/dist/integrations/doc-history/pre-build.d.ts +7 -9
  137. package/dist/integrations/llms-txt/dev-middleware.d.ts +7 -11
  138. package/dist/integrations/llms-txt/emit.d.ts +2 -7
  139. package/dist/integrations/llms-txt/generate.d.ts +3 -8
  140. package/dist/integrations/llms-txt/index.d.ts +33 -8
  141. package/dist/integrations/llms-txt/load.d.ts +3 -7
  142. package/dist/integrations/llms-txt/strip.d.ts +2 -6
  143. package/dist/integrations/llms-txt/types.d.ts +9 -13
  144. package/dist/integrations/search-index/build-emitter.d.ts +4 -7
  145. package/dist/integrations/search-index/collect.d.ts +2 -5
  146. package/dist/integrations/search-index/dev-middleware.d.ts +5 -8
  147. package/dist/integrations/search-index/index.d.ts +7 -5
  148. package/dist/integrations/search-index/types.d.ts +5 -7
  149. package/dist/island-types/index.d.ts +44 -0
  150. package/dist/island-types/index.js +12 -0
  151. package/dist/locale-merge/index.d.ts +114 -0
  152. package/dist/locale-merge/index.js +27 -0
  153. package/dist/math-block/index.d.ts +18 -0
  154. package/dist/math-block/index.js +29 -0
  155. package/dist/md-utils/index.d.ts +6 -8
  156. package/dist/md-utils/index.js +2 -1
  157. package/dist/mdx-components/index.d.ts +46 -0
  158. package/dist/mdx-components/index.js +161 -0
  159. package/dist/mermaid-enlarge/index.d.ts +11 -0
  160. package/dist/mermaid-enlarge/index.js +290 -0
  161. package/dist/metainfo/doc-metainfo.d.ts +5 -9
  162. package/dist/metainfo/doc-tags.d.ts +7 -11
  163. package/dist/metainfo/frontmatter-preview.d.ts +8 -12
  164. package/dist/metainfo/index.d.ts +6 -4
  165. package/dist/nav-data-prep/index.d.ts +72 -0
  166. package/dist/nav-data-prep/index.js +34 -0
  167. package/dist/nav-indexing/category-nav.d.ts +4 -8
  168. package/dist/nav-indexing/category-tree-nav.d.ts +4 -8
  169. package/dist/nav-indexing/doc-card-grid.d.ts +4 -8
  170. package/dist/nav-indexing/docs-sitemap.d.ts +4 -8
  171. package/dist/nav-indexing/index.d.ts +37 -10
  172. package/dist/nav-indexing/nav-card-grid.d.ts +4 -8
  173. package/dist/nav-indexing/site-tree-nav-demo.d.ts +4 -8
  174. package/dist/nav-indexing/tag-nav.d.ts +6 -10
  175. package/dist/nav-indexing/types.d.ts +6 -8
  176. package/dist/nav-indexing/versions-page-content.d.ts +4 -8
  177. package/dist/nav-scope/index.d.ts +41 -0
  178. package/dist/nav-scope/index.js +41 -0
  179. package/dist/nav-source-cache/index.d.ts +13 -0
  180. package/dist/nav-source-cache/index.js +28 -0
  181. package/dist/nav-source-docs/index.d.ts +169 -0
  182. package/dist/nav-source-docs/index.js +123 -0
  183. package/dist/page-loading/index.d.ts +1 -2
  184. package/dist/page-loading/page-loading-overlay.d.ts +4 -8
  185. package/dist/plugins/claude-resources.d.ts +3 -0
  186. package/dist/plugins/claude-resources.js +27 -0
  187. package/dist/plugins/connect-adapter.d.ts +31 -0
  188. package/dist/plugins/connect-adapter.js +78 -0
  189. package/dist/plugins/doc-history.d.ts +3 -0
  190. package/dist/plugins/doc-history.js +54 -0
  191. package/dist/plugins/llms-txt.d.ts +3 -0
  192. package/dist/plugins/llms-txt.js +48 -0
  193. package/dist/plugins/plugin-utils.d.ts +17 -0
  194. package/dist/plugins/plugin-utils.js +11 -0
  195. package/dist/plugins/routes.d.ts +2 -0
  196. package/dist/plugins/routes.js +100 -0
  197. package/dist/plugins/search-index.d.ts +3 -0
  198. package/dist/plugins/search-index.js +24 -0
  199. package/dist/preset.d.ts +198 -0
  200. package/dist/preset.js +185 -0
  201. package/dist/render-markdown/index.d.ts +5 -0
  202. package/dist/render-markdown/index.js +115 -0
  203. package/dist/robots.d.ts +36 -0
  204. package/dist/robots.js +17 -0
  205. package/dist/route-enumerators/index.d.ts +204 -0
  206. package/dist/route-enumerators/index.js +156 -0
  207. package/dist/routes/404.d.ts +7 -0
  208. package/dist/routes/404.js +47 -0
  209. package/dist/routes/_chrome.d.ts +32 -0
  210. package/dist/routes/_chrome.js +365 -0
  211. package/dist/routes/_context.d.ts +56 -0
  212. package/dist/routes/_context.js +222 -0
  213. package/dist/routes/_docs-helpers.d.ts +43 -0
  214. package/dist/routes/_docs-helpers.js +173 -0
  215. package/dist/routes/_virtual.d.js +0 -0
  216. package/dist/routes/api-ai-chat.d.ts +5 -0
  217. package/dist/routes/api-ai-chat.js +24 -0
  218. package/dist/routes/docs-slug.d.ts +21 -0
  219. package/dist/routes/docs-slug.js +26 -0
  220. package/dist/routes/docs-tags-index.d.ts +7 -0
  221. package/dist/routes/docs-tags-index.js +11 -0
  222. package/dist/routes/docs-tags-tag.d.ts +23 -0
  223. package/dist/routes/docs-tags-tag.js +19 -0
  224. package/dist/routes/docs-versions.d.ts +7 -0
  225. package/dist/routes/docs-versions.js +11 -0
  226. package/dist/routes/index.d.ts +7 -0
  227. package/dist/routes/index.js +117 -0
  228. package/dist/routes/locale-docs-slug.d.ts +27 -0
  229. package/dist/routes/locale-docs-slug.js +40 -0
  230. package/dist/routes/locale-docs-tags-index.d.ts +18 -0
  231. package/dist/routes/locale-docs-tags-index.js +15 -0
  232. package/dist/routes/locale-docs-tags-tag.d.ts +25 -0
  233. package/dist/routes/locale-docs-tags-tag.js +22 -0
  234. package/dist/routes/locale-docs-versions.d.ts +18 -0
  235. package/dist/routes/locale-docs-versions.js +15 -0
  236. package/dist/routes/locale-index.d.ts +24 -0
  237. package/dist/routes/locale-index.js +132 -0
  238. package/dist/routes/robots.txt.d.ts +3 -0
  239. package/dist/routes/robots.txt.js +8 -0
  240. package/dist/routes/sitemap.xml.d.ts +5 -0
  241. package/dist/routes/sitemap.xml.js +31 -0
  242. package/dist/routes/v-docs-slug.d.ts +27 -0
  243. package/dist/routes/v-docs-slug.js +34 -0
  244. package/dist/routes/v-locale-docs-slug.d.ts +31 -0
  245. package/dist/routes/v-locale-docs-slug.js +50 -0
  246. package/dist/safelist.css +1 -1
  247. package/dist/search-widget/index.d.ts +38 -0
  248. package/dist/search-widget/index.js +169 -0
  249. package/dist/search-widget-script/index.d.ts +18 -0
  250. package/dist/search-widget-script/index.js +465 -0
  251. package/dist/settings.d.ts +270 -0
  252. package/dist/settings.js +0 -0
  253. package/dist/sidebar/index.d.ts +21 -3
  254. package/dist/sidebar/sidebar.d.ts +5 -9
  255. package/dist/sidebar/types.d.ts +4 -6
  256. package/dist/sidebar-prepaint/index.d.ts +21 -0
  257. package/dist/sidebar-prepaint/index.js +23 -0
  258. package/dist/sidebar-resizer/index.d.ts +2 -6
  259. package/dist/sidebar-resizer/sidebar-resizer-init.d.ts +6 -10
  260. package/dist/sidebar-toggle-island/index.d.ts +13 -0
  261. package/dist/sidebar-toggle-island/index.js +122 -0
  262. package/dist/sidebar-tree/build-tree.d.ts +4 -8
  263. package/dist/sidebar-tree/category-meta.d.ts +3 -6
  264. package/dist/sidebar-tree/index.d.ts +18 -3
  265. package/dist/sidebar-tree/types.d.ts +6 -8
  266. package/dist/sidebar-tree-island/index.d.ts +13 -0
  267. package/dist/sidebar-tree-island/index.js +454 -0
  268. package/dist/sidebar-utils/index.d.ts +64 -0
  269. package/dist/sidebar-utils/index.js +88 -0
  270. package/dist/sidebar-with-defaults/index.d.ts +38 -0
  271. package/dist/sidebar-with-defaults/index.js +45 -0
  272. package/dist/site-tree-nav/index.d.ts +71 -0
  273. package/dist/site-tree-nav/index.js +36 -0
  274. package/dist/site-tree-nav-island/index.d.ts +11 -0
  275. package/dist/site-tree-nav-island/index.js +176 -0
  276. package/dist/slug/index.d.ts +4 -0
  277. package/dist/slug/index.js +19 -0
  278. package/dist/smart-break/index.d.ts +55 -0
  279. package/dist/{toc/smart-break.js → smart-break/index.js} +30 -3
  280. package/dist/tab-item/index.d.ts +2 -2
  281. package/dist/tab-item/tab-item.d.ts +6 -7
  282. package/dist/tag-helpers/index.d.ts +40 -0
  283. package/dist/tag-helpers/index.js +54 -0
  284. package/dist/tag-pages/index.d.ts +114 -0
  285. package/dist/tag-pages/index.js +146 -0
  286. package/dist/tags-audit.d.ts +107 -0
  287. package/dist/tags-audit.js +321 -0
  288. package/dist/theme/color-scheme-provider.d.ts +4 -8
  289. package/dist/theme/color-tweak-export-modal.d.ts +4 -7
  290. package/dist/theme/design-token-serde.d.ts +14 -17
  291. package/dist/theme/design-token-types.d.ts +4 -6
  292. package/dist/theme/iframe-bridge.d.ts +12 -14
  293. package/dist/theme/index.d.ts +7 -9
  294. package/dist/theme/theme-toggle.d.ts +3 -8
  295. package/dist/theme-toggle/color-scheme-sync.d.ts +5 -7
  296. package/dist/theme-toggle/index.d.ts +4 -8
  297. package/dist/toc/cx.d.ts +2 -3
  298. package/dist/toc/index.d.ts +8 -6
  299. package/dist/toc/mobile-toc.d.ts +5 -9
  300. package/dist/toc/mobile-toc.js +1 -1
  301. package/dist/toc/toc-title.d.ts +1 -3
  302. package/dist/toc/toc.d.ts +5 -9
  303. package/dist/toc/toc.js +1 -1
  304. package/dist/toc/types.d.ts +1 -3
  305. package/dist/toc/use-active-heading.d.ts +4 -7
  306. package/dist/transitions/index.d.ts +1 -1
  307. package/dist/transitions/page-events.d.ts +4 -6
  308. package/dist/tree-nav-shared/index.d.ts +22 -0
  309. package/dist/tree-nav-shared/index.js +66 -0
  310. package/dist/url-helpers/index.d.ts +37 -0
  311. package/dist/url-helpers/index.js +106 -0
  312. package/dist/url-normalizer/index.d.ts +39 -1
  313. package/dist/url-normalizer/normalize.d.ts +3 -5
  314. package/dist/use-modal-dialog/index.d.ts +70 -0
  315. package/dist/use-modal-dialog/index.js +73 -0
  316. package/dist/versions-page/index.d.ts +55 -0
  317. package/dist/versions-page/index.js +73 -0
  318. package/eject/breadcrumb/breadcrumb.tsx +194 -0
  319. package/eject/breadcrumb/find-path.ts +26 -0
  320. package/eject/breadcrumb/index.ts +4 -0
  321. package/eject/breadcrumb/types.ts +32 -0
  322. package/eject/code-group/index.tsx +78 -0
  323. package/eject/content-admonition/index.tsx +50 -0
  324. package/eject/details/details.tsx +34 -0
  325. package/eject/details/index.ts +4 -0
  326. package/eject/doc-pager/index.tsx +91 -0
  327. package/eject/footer/footer.tsx +167 -0
  328. package/eject/footer/index.ts +19 -0
  329. package/eject/footer/types.ts +60 -0
  330. package/eject/header/header.tsx +725 -0
  331. package/eject/header/index.ts +36 -0
  332. package/eject/header/nav-active.ts +122 -0
  333. package/eject/header/nav-overflow-script.ts +302 -0
  334. package/eject/header/right-items.ts +78 -0
  335. package/eject/header/types.ts +69 -0
  336. package/eject/page-loading/index.ts +10 -0
  337. package/eject/page-loading/page-loading-overlay.tsx +103 -0
  338. package/eject/sidebar/index.ts +27 -0
  339. package/eject/sidebar/sidebar.tsx +137 -0
  340. package/eject/sidebar/types.ts +73 -0
  341. package/eject/tab-item/index.ts +7 -0
  342. package/eject/tab-item/tab-item.tsx +70 -0
  343. package/eject/theme-toggle/color-scheme-sync.ts +73 -0
  344. package/eject/theme-toggle/index.tsx +120 -0
  345. package/eject/toc/cx.ts +38 -0
  346. package/eject/toc/index.ts +11 -0
  347. package/eject/toc/mobile-toc.tsx +133 -0
  348. package/eject/toc/toc-title.ts +33 -0
  349. package/eject/toc/toc.tsx +119 -0
  350. package/eject/toc/types.ts +14 -0
  351. package/eject/toc/use-active-heading.ts +162 -0
  352. package/package.json +371 -11
  353. package/routes-src/404.tsx +49 -0
  354. package/routes-src/_chrome.tsx +470 -0
  355. package/routes-src/_context.ts +314 -0
  356. package/routes-src/_docs-helpers.ts +284 -0
  357. package/routes-src/_virtual.d.ts +15 -0
  358. package/routes-src/api-ai-chat.tsx +46 -0
  359. package/routes-src/docs-slug.tsx +43 -0
  360. package/routes-src/docs-tags-index.tsx +14 -0
  361. package/routes-src/docs-tags-tag.tsx +29 -0
  362. package/routes-src/docs-versions.tsx +15 -0
  363. package/routes-src/index.tsx +134 -0
  364. package/routes-src/locale-docs-slug.tsx +69 -0
  365. package/routes-src/locale-docs-tags-index.tsx +23 -0
  366. package/routes-src/locale-docs-tags-tag.tsx +39 -0
  367. package/routes-src/locale-docs-versions.tsx +23 -0
  368. package/routes-src/locale-index.tsx +150 -0
  369. package/routes-src/robots.txt.tsx +13 -0
  370. package/routes-src/sitemap.xml.tsx +48 -0
  371. package/routes-src/v-docs-slug.tsx +64 -0
  372. package/routes-src/v-locale-docs-slug.tsx +85 -0
  373. package/dist/toc/smart-break.d.ts +0 -27
@@ -0,0 +1,365 @@
1
+ import { Fragment, jsx } from "preact/jsx-runtime";
2
+ import {
3
+ settings,
4
+ defaultLocale,
5
+ locales,
6
+ t,
7
+ withBase,
8
+ stripBase,
9
+ docsUrl,
10
+ versionedDocsUrl,
11
+ absoluteUrl,
12
+ navHref,
13
+ buildLocaleLinks,
14
+ getNavSectionForSlug,
15
+ getCategoryOrder,
16
+ toRouteSlug,
17
+ resolveNavSource,
18
+ loadNavSourceDocs,
19
+ buildNavTree,
20
+ groupSatelliteNodes,
21
+ collectAutoIndexNodes,
22
+ findNode,
23
+ firstRoutedHref,
24
+ collectTags,
25
+ stableDocs
26
+ } from "./_context.js";
27
+ import { createComposeMetaTitle } from "../compose-meta-title/index.js";
28
+ import {
29
+ generateCssCustomProperties,
30
+ generateLightDarkCssProperties
31
+ } from "../color-scheme-utils.js";
32
+ import { createHeadWithDefaults } from "../head-with-defaults/index.js";
33
+ import { createHeaderWithDefaults } from "../header-with-defaults/index.js";
34
+ import { createFooterWithDefaults } from "../footer-with-defaults/index.js";
35
+ import { createSidebarWithDefaults } from "../sidebar-with-defaults/index.js";
36
+ import { createSidebarPrepaint } from "../sidebar-prepaint/index.js";
37
+ import { createDocBodyEnd } from "../doc-body-end/index.js";
38
+ import { createDocPager } from "../doc-pager/index.js";
39
+ import { createDocPageShell } from "../doc-page-shell/index.js";
40
+ import { createDocContentHeader } from "../doc-content-header/index.js";
41
+ import { createDocMetainfoArea } from "../doc-metainfo-area/index.js";
42
+ import { createDocTagsArea } from "../doc-tags-area/index.js";
43
+ import { createDocHistoryArea } from "../doc-history-area/index.js";
44
+ import { createInlineVersionSwitcher } from "../inline-version-switcher/index.js";
45
+ import { createRenderDocPage } from "../doc-page-renderer/index.js";
46
+ import { createVersionsPageView } from "../versions-page/index.js";
47
+ import { createTagPages } from "../tag-pages/index.js";
48
+ import { createMdxComponents } from "../mdx-components/index.js";
49
+ import { createCategoryNavWrapper } from "../category-nav/index.js";
50
+ import { createCategoryTreeNavWrapper } from "../category-tree-nav/index.js";
51
+ import { createSiteTreeNavWrapper } from "../site-tree-nav/index.js";
52
+ import { getTocTitle } from "../toc/index.js";
53
+ import { SearchWidget } from "../search-widget/index.js";
54
+ import { buildGitHubRepoUrl, buildGitHubSourceUrl } from "../github-helpers/index.js";
55
+ import { toHistorySlug } from "../slug/index.js";
56
+ import {
57
+ buildRootMenuItems as buildRootMenuItemsBase,
58
+ buildLocaleLinksForNav as buildLocaleLinksForNavBase,
59
+ remapVersionedHrefs,
60
+ getThemeDefaultMode as getThemeDefaultModeBase
61
+ } from "../nav-data-prep/index.js";
62
+ import { buildSidebarForSection } from "../sidebar-utils/index.js";
63
+ const GREY_RAMP = [
64
+ "#000000",
65
+ "#1a1a1a",
66
+ "#333333",
67
+ "#4d4d4d",
68
+ "#666666",
69
+ "#808080",
70
+ "#999999",
71
+ "#b3b3b3",
72
+ "#cccccc",
73
+ "#d9d9d9",
74
+ "#e6e6e6",
75
+ "#f2f2f2",
76
+ "#ff5555",
77
+ "#50fa7b",
78
+ "#f1fa8c",
79
+ "#8be9fd"
80
+ ];
81
+ const DEFAULT_SCHEME = {
82
+ background: "#000000",
83
+ foreground: "#ffffff",
84
+ cursor: "#ffffff",
85
+ selectionBg: "#444444",
86
+ selectionFg: "#ffffff",
87
+ palette: GREY_RAMP
88
+ };
89
+ const docHistoryMeta = {};
90
+ const sidebarsConfig = {};
91
+ function BodyEndIslandsStub(_props) {
92
+ return /* @__PURE__ */ jsx(Fragment, {});
93
+ }
94
+ function DocHistoryStub(_props) {
95
+ return /* @__PURE__ */ jsx(Fragment, {});
96
+ }
97
+ function SearchWidgetBound(props) {
98
+ return SearchWidget({ ...props, base: withBase("/") });
99
+ }
100
+ const composeMetaTitle = createComposeMetaTitle(settings.siteName);
101
+ const HeadWithDefaults = createHeadWithDefaults({
102
+ settings,
103
+ composeMetaTitle,
104
+ withBase,
105
+ absoluteUrl,
106
+ generateCssCustomProperties: () => generateCssCustomProperties(DEFAULT_SCHEME),
107
+ generateLightDarkCssProperties: () => generateLightDarkCssProperties(DEFAULT_SCHEME, DEFAULT_SCHEME)
108
+ });
109
+ function buildRootMenuItems(lang, currentVersion) {
110
+ return buildRootMenuItemsBase(
111
+ lang,
112
+ currentVersion,
113
+ settings.headerNav,
114
+ (key, l) => t(key, l),
115
+ (path, l, v) => navHref(path, l, v)
116
+ );
117
+ }
118
+ function buildLocaleLinksForNav(currentPath, lang, localeCount) {
119
+ return buildLocaleLinksForNavBase(
120
+ currentPath,
121
+ lang,
122
+ localeCount,
123
+ (path, l) => buildLocaleLinks(path, l)
124
+ );
125
+ }
126
+ function buildSidebarNodes(lang, navSection, currentVersion, emptyWhenUnsectioned = true) {
127
+ if (navSection === void 0 && emptyWhenUnsectioned) return [];
128
+ const { navDocs, categoryMeta } = loadNavSourceDocs(lang, currentVersion);
129
+ const explicitPrefixes = getCategoryOrder().filter((cm) => cm !== "!");
130
+ const rawNodes = buildSidebarForSection(
131
+ navDocs,
132
+ lang,
133
+ navSection,
134
+ categoryMeta,
135
+ sidebarsConfig,
136
+ (d, l, meta) => buildNavTree(
137
+ d,
138
+ l,
139
+ meta,
140
+ (slug, loc) => docsUrl(slug, loc)
141
+ ),
142
+ explicitPrefixes
143
+ );
144
+ return currentVersion ? remapVersionedHrefs(
145
+ rawNodes,
146
+ currentVersion,
147
+ lang,
148
+ (slug, v, l) => versionedDocsUrl(slug, v, l)
149
+ ) : rawNodes;
150
+ }
151
+ function getThemeDefaultMode() {
152
+ return getThemeDefaultModeBase(settings.colorMode);
153
+ }
154
+ const HeaderWithDefaults = createHeaderWithDefaults({
155
+ settings,
156
+ defaultLocale,
157
+ locales,
158
+ t,
159
+ withBase,
160
+ stripBase,
161
+ docsUrl,
162
+ navHref,
163
+ versionedDocsUrl,
164
+ buildLocaleLinksForNav,
165
+ buildRootMenuItems,
166
+ buildSidebarNodes,
167
+ getThemeDefaultMode,
168
+ buildGitHubRepoUrl: () => buildGitHubRepoUrl(settings.githubUrl),
169
+ SearchWidget: SearchWidgetBound
170
+ });
171
+ const FooterWithDefaults = createFooterWithDefaults({
172
+ settings,
173
+ defaultLocale,
174
+ tagVocabulary: [],
175
+ isExternal: (href) => /^https?:\/\//.test(href),
176
+ resolveHref: (href) => /^https?:\/\//.test(href) ? href : withBase(href),
177
+ withBase,
178
+ // The footer taglist is host-bound (project tag aggregation); package default
179
+ // renders no tag columns.
180
+ loadTagsForLocale: () => []
181
+ });
182
+ const SidebarWithDefaults = createSidebarWithDefaults({
183
+ defaultLocale,
184
+ localeCount: locales.length,
185
+ buildRootMenuItems,
186
+ buildLocaleLinksForNav,
187
+ buildSidebarNodes,
188
+ getThemeDefaultMode,
189
+ t
190
+ });
191
+ const SidebarPrepaint = createSidebarPrepaint({ sidebarToggle: settings.sidebarToggle });
192
+ const DocBodyEnd = createDocBodyEnd({ settings, BodyEndIslands: BodyEndIslandsStub });
193
+ const DocPager = createDocPager({ t });
194
+ const DocMetainfoArea = createDocMetainfoArea({
195
+ settings,
196
+ defaultLocale,
197
+ docHistoryMeta,
198
+ t,
199
+ toHistorySlug
200
+ });
201
+ const DocTagsArea = createDocTagsArea({
202
+ settings,
203
+ defaultLocale,
204
+ tagVocabularyEntries: [],
205
+ tagHref: (tag, locale) => {
206
+ const encoded = encodeURIComponent(tag);
207
+ return withBase(
208
+ locale === defaultLocale ? `/docs/tags/${encoded}` : `/${locale}/docs/tags/${encoded}`
209
+ );
210
+ },
211
+ t
212
+ });
213
+ const DocContentHeader = createDocContentHeader({
214
+ t,
215
+ buildFrontmatterPreviewEntries: () => [],
216
+ frontmatterRenderers: {},
217
+ DocMetainfoArea,
218
+ DocTagsArea
219
+ });
220
+ const DocHistoryArea = createDocHistoryArea({
221
+ settings,
222
+ defaultLocale,
223
+ docHistoryMeta,
224
+ t,
225
+ toHistorySlug,
226
+ buildGitHubSourceUrl: (contentDir, entryId) => buildGitHubSourceUrl(settings.githubUrl, contentDir, entryId),
227
+ DocHistory: DocHistoryStub
228
+ });
229
+ const buildInlineVersionSwitcher = createInlineVersionSwitcher({
230
+ settings,
231
+ defaultLocale,
232
+ t,
233
+ docsUrl,
234
+ versionedDocsUrl,
235
+ withBase
236
+ });
237
+ const CategoryNavWrapper = createCategoryNavWrapper({
238
+ defaultLocale,
239
+ resolveNavSource,
240
+ buildNavTree: ((docs, locale, categoryMeta) => buildNavTree(
241
+ docs,
242
+ locale,
243
+ categoryMeta,
244
+ (slug, loc) => docsUrl(slug, loc)
245
+ )),
246
+ findNode,
247
+ firstRoutedHref
248
+ });
249
+ const CategoryTreeNavWrapper = createCategoryTreeNavWrapper({
250
+ defaultLocale,
251
+ resolveNavSource,
252
+ buildNavTree: ((docs, locale, categoryMeta) => buildNavTree(
253
+ docs,
254
+ locale,
255
+ categoryMeta,
256
+ (slug, loc) => docsUrl(slug, loc)
257
+ )),
258
+ groupSatelliteNodes,
259
+ findNode
260
+ });
261
+ const SiteTreeNavWrapper = createSiteTreeNavWrapper({
262
+ defaultLocale,
263
+ resolveNavSource,
264
+ buildNavTree: ((docs, locale, categoryMeta) => buildNavTree(
265
+ docs,
266
+ locale,
267
+ categoryMeta,
268
+ (slug, loc) => docsUrl(slug, loc)
269
+ )),
270
+ groupSatelliteNodes,
271
+ getCategoryOrder
272
+ });
273
+ function createMdxComponentsBound(lang = defaultLocale) {
274
+ return createMdxComponents({
275
+ settings,
276
+ locale: lang,
277
+ navData: {
278
+ CategoryNav: CategoryNavWrapper,
279
+ CategoryTreeNav: CategoryTreeNavWrapper,
280
+ SiteTreeNav: SiteTreeNavWrapper
281
+ },
282
+ // PresetGenerator and other showcase-only slots resolve to a package stub
283
+ // (render nothing) — they are project-bound and not in the package.
284
+ extras: {
285
+ PresetGenerator: (_props) => null
286
+ }
287
+ });
288
+ }
289
+ const DocPageShell = createDocPageShell({
290
+ settings,
291
+ composeMetaTitle,
292
+ getTocTitle,
293
+ HeadWithDefaults,
294
+ SidebarWithDefaults,
295
+ HeaderWithDefaults,
296
+ FooterWithDefaults,
297
+ SidebarPrepaint,
298
+ DocBodyEnd,
299
+ DocPager
300
+ });
301
+ const renderDocPage = createRenderDocPage({
302
+ docsUrl,
303
+ versionedDocsUrl,
304
+ absoluteUrl,
305
+ getNavSectionForSlug,
306
+ toRouteSlug,
307
+ createMdxComponents: createMdxComponentsBound,
308
+ t,
309
+ buildInlineVersionSwitcher,
310
+ DocPageShell,
311
+ DocContentHeader,
312
+ DocMetainfoArea,
313
+ DocHistoryArea
314
+ });
315
+ const VersionsPageView = createVersionsPageView({
316
+ settings,
317
+ defaultLocale,
318
+ t,
319
+ withBase,
320
+ composeMetaTitle,
321
+ components: {
322
+ HeadWithDefaults,
323
+ HeaderWithDefaults,
324
+ FooterWithDefaults,
325
+ BodyEndIslands: BodyEndIslandsStub
326
+ }
327
+ });
328
+ const tagPages = createTagPages({
329
+ settings,
330
+ defaultLocale,
331
+ t,
332
+ withBase,
333
+ docsUrl,
334
+ composeMetaTitle,
335
+ collectTags,
336
+ stableDocs,
337
+ isDefaultLocaleOnlyPath: void 0,
338
+ components: {
339
+ HeadWithDefaults,
340
+ HeaderWithDefaults,
341
+ FooterWithDefaults,
342
+ BodyEndIslands: BodyEndIslandsStub,
343
+ DocHistoryArea
344
+ }
345
+ });
346
+ const { collectTagMapForLocale, TagDetailPageView, TagsIndexPageView } = tagPages;
347
+ import {
348
+ buildDocRouteEntries
349
+ } from "./_context.js";
350
+ export {
351
+ BodyEndIslandsStub,
352
+ FooterWithDefaults,
353
+ HeadWithDefaults,
354
+ HeaderWithDefaults,
355
+ SidebarWithDefaults,
356
+ SiteTreeNavWrapper,
357
+ TagDetailPageView,
358
+ TagsIndexPageView,
359
+ VersionsPageView,
360
+ buildDocRouteEntries,
361
+ collectTagMapForLocale,
362
+ composeMetaTitle,
363
+ createMdxComponentsBound,
364
+ renderDocPage
365
+ };
@@ -0,0 +1,56 @@
1
+ import type { Settings } from "../settings.js";
2
+ import type { FactoryI18n } from "../factory-context/index.js";
3
+ import { type UrlHelpers } from "../url-helpers/index.js";
4
+ import { toRouteSlug, toSlugParams } from "../slug/index.js";
5
+ import { type TagVocabularyEntry } from "../tag-helpers/index.js";
6
+ import type { DocNavNode } from "../doc-page-props/index.js";
7
+ import type { HeadingItem } from "../extract-headings/index.js";
8
+ import { stableDocs, isNavVisible, buildNavTree, collectAutoIndexNodes, groupSatelliteNodes, findNode, firstRoutedHref } from "./_docs-helpers.js";
9
+ export interface RouteContextPayload {
10
+ settings: Settings;
11
+ translations: Record<string, Record<string, string>>;
12
+ tagVocabulary: readonly TagVocabularyEntry[];
13
+ }
14
+ /** The serializable route-context (from the virtual module). */
15
+ export declare const ctx: RouteContextPayload;
16
+ export declare const settings: Settings;
17
+ export declare const defaultLocale: string;
18
+ export declare const locales: readonly string[];
19
+ export declare function getLocaleConfig(locale: string): {
20
+ label: string;
21
+ dir: string;
22
+ } | undefined;
23
+ export declare function getLocaleLabel(locale: string): string;
24
+ export declare function t(key: string, locale?: string): string;
25
+ export declare const i18n: FactoryI18n;
26
+ export declare const urlHelpers: UrlHelpers;
27
+ export declare const withBase: (path: string) => string, stripBase: (path: string) => string, docsUrl: (slug: string, lang?: string) => string, versionedDocsUrl: (slug: string, versionSlug: string, lang?: string) => string, navHref: (path: string, lang: string | undefined, currentVersion: string | undefined) => string, isDefaultLocaleOnlyPath: (path: string) => boolean, absoluteUrl: (pageUrl: string) => string | undefined, isExternal: (href: string) => boolean, resolveHref: (href: string) => string, buildLocaleLinks: (currentPath: string, currentLang: string) => import("../url-helpers/index.js").LocaleLink[];
28
+ export declare function getCategoryOrder(): string[];
29
+ export declare function getNavSectionForSlug(slug: string): string | undefined;
30
+ export declare function getNavSubtree(tree: DocNavNode[], categoryMatch?: string): DocNavNode[];
31
+ export declare function extractHeadings(body: string): HeadingItem[];
32
+ export interface TagInfo {
33
+ tag: string;
34
+ count: number;
35
+ docs: {
36
+ slug: string;
37
+ title: string;
38
+ description?: string;
39
+ }[];
40
+ }
41
+ export declare function resolveTagBound(raw: string): import("../tag-helpers/index.js").ResolvedTag;
42
+ export declare function collectTags(entries: ReadonlyArray<{
43
+ id: string;
44
+ data: {
45
+ slug?: string;
46
+ title?: string;
47
+ description?: string;
48
+ tags?: string[];
49
+ };
50
+ }>, slugFn: (id: string, data: {
51
+ slug?: string;
52
+ }) => string): Map<string, TagInfo>;
53
+ export declare const resolveNavSource: (lang: string, currentVersion: string | undefined, options?: import("../nav-source-docs/index.js").NavSourceOptions) => import("../nav-source-docs/index.js").NavSourceDocs, resolveVersionedLocaleSource: (versionSlug: string, versionDocsDir: string | undefined, lang: string, localeDir: string | undefined, options?: import("../nav-source-docs/index.js").NavSourceOptions) => import("../nav-source-docs/index.js").NavSourceDocs, loadNavSourceDocs: (lang: string, currentVersion: string | undefined) => import("../nav-source-docs/index.js").NavSourceDocs;
54
+ export declare const buildDocRouteEntries: (args: import("../doc-route-entries/index.js").BuildDocRouteEntriesArgs) => import("../doc-route-entries/index.js").DocRouteEntry[];
55
+ export declare const enumerateDocsRoutes: (locale: string) => string[], enumerateTagsRoutes: (locale: string) => string[], enumerateVersionedRoutes: (version: import("../route-enumerators/index.js").VersionConfigForEnum, locale: string) => string[], enumerateAllRoutes: () => Map<string, string>;
56
+ export { buildNavTree, groupSatelliteNodes, findNode, firstRoutedHref, collectAutoIndexNodes, isNavVisible, stableDocs, toRouteSlug, toSlugParams, };
@@ -0,0 +1,222 @@
1
+ import { routeContext } from "virtual:zudo-doc-route-context";
2
+ import { makeUrlHelpers } from "../url-helpers/index.js";
3
+ import {
4
+ loadCategoryMeta
5
+ } from "../sidebar-tree/index.js";
6
+ import { extractHeadings as extractHeadingsBase } from "../extract-headings/index.js";
7
+ import { toRouteSlug, toSlugParams } from "../slug/index.js";
8
+ import { resolveTag } from "../tag-helpers/index.js";
9
+ import {
10
+ getCategoryOrder as getCategoryOrderBase,
11
+ getNavSectionForSlug as getNavSectionForSlugBase,
12
+ getNavSubtree as getNavSubtreeBase
13
+ } from "../nav-scope/index.js";
14
+ import { mergeLocaleDocs } from "../locale-merge/index.js";
15
+ import {
16
+ createNavSourceDocs
17
+ } from "../nav-source-docs/index.js";
18
+ import {
19
+ createDocRouteEntries
20
+ } from "../doc-route-entries/index.js";
21
+ import {
22
+ createRouteEnumerators
23
+ } from "../route-enumerators/index.js";
24
+ import {
25
+ stableDocs,
26
+ isNavVisible,
27
+ buildNavTree,
28
+ buildBreadcrumbs,
29
+ collectAutoIndexNodes,
30
+ groupSatelliteNodes,
31
+ findNode,
32
+ firstRoutedHref
33
+ } from "./_docs-helpers.js";
34
+ const ctx = routeContext;
35
+ const settings = ctx.settings;
36
+ const translations = ctx.translations;
37
+ const tagVocabulary = ctx.tagVocabulary;
38
+ const defaultLocale = settings.defaultLocale;
39
+ const locales = [
40
+ defaultLocale,
41
+ ...Object.keys(settings.locales)
42
+ ];
43
+ function getLocaleConfig(locale) {
44
+ return settings.locales[locale];
45
+ }
46
+ function getLocaleLabel(locale) {
47
+ if (locale === defaultLocale) return defaultLocale.toUpperCase();
48
+ return getLocaleConfig(locale)?.label ?? locale.toUpperCase();
49
+ }
50
+ function t(key, locale = defaultLocale) {
51
+ return translations[locale]?.[key] ?? translations[defaultLocale]?.[key] ?? key;
52
+ }
53
+ const i18n = {
54
+ defaultLocale,
55
+ locales,
56
+ getLocaleLabel,
57
+ t
58
+ };
59
+ const urlHelpers = makeUrlHelpers(settings, i18n);
60
+ const {
61
+ withBase,
62
+ stripBase,
63
+ docsUrl,
64
+ versionedDocsUrl,
65
+ navHref,
66
+ isDefaultLocaleOnlyPath,
67
+ absoluteUrl,
68
+ isExternal,
69
+ resolveHref,
70
+ buildLocaleLinks
71
+ } = urlHelpers;
72
+ function getCategoryOrder() {
73
+ return getCategoryOrderBase(settings.headerNav);
74
+ }
75
+ function getNavSectionForSlug(slug) {
76
+ return getNavSectionForSlugBase(slug, settings.headerNav);
77
+ }
78
+ function getNavSubtree(tree, categoryMatch) {
79
+ return getNavSubtreeBase(tree, categoryMatch, settings.headerNav);
80
+ }
81
+ function extractHeadings(body) {
82
+ return extractHeadingsBase(body, {
83
+ tocMinDepth: settings.tocMinDepth,
84
+ tocMaxDepth: settings.tocMaxDepth,
85
+ strategy: settings.headingIdStrategy
86
+ });
87
+ }
88
+ function getVocab() {
89
+ return settings.tagVocabulary ? tagVocabulary : false;
90
+ }
91
+ function resolveTagBound(raw) {
92
+ return resolveTag(raw, getVocab(), settings.tagGovernance);
93
+ }
94
+ function collectTags(entries, slugFn) {
95
+ const tagMap = /* @__PURE__ */ new Map();
96
+ for (const entry of entries) {
97
+ const rawTags = entry.data.tags ?? [];
98
+ const slug = slugFn(entry.id, entry.data);
99
+ const seen = /* @__PURE__ */ new Set();
100
+ for (const raw of rawTags) {
101
+ const resolved = resolveTagBound(raw);
102
+ if (resolved.deprecated) continue;
103
+ if (seen.has(resolved.canonical)) continue;
104
+ seen.add(resolved.canonical);
105
+ if (!tagMap.has(resolved.canonical)) {
106
+ tagMap.set(resolved.canonical, { tag: resolved.canonical, count: 0, docs: [] });
107
+ }
108
+ const info = tagMap.get(resolved.canonical);
109
+ info.count++;
110
+ info.docs.push({
111
+ slug,
112
+ title: entry.data.title ?? "",
113
+ description: entry.data.description
114
+ });
115
+ }
116
+ }
117
+ return tagMap;
118
+ }
119
+ const navSourceDocs = createNavSourceDocs({
120
+ defaultLocale,
121
+ docsDir: settings.docsDir,
122
+ getVersions: () => settings.versions,
123
+ getLocaleConfig,
124
+ loadCategoryMeta,
125
+ isNavVisible,
126
+ isDefaultLocaleOnlyPath,
127
+ stableDocs
128
+ });
129
+ const {
130
+ resolveNavSource,
131
+ resolveVersionedLocaleSource,
132
+ loadNavSourceDocs
133
+ } = navSourceDocs;
134
+ const docRouteEntries = createDocRouteEntries({
135
+ buildNavTree: (docs, locale, categoryMeta) => buildNavTree(
136
+ docs,
137
+ locale,
138
+ categoryMeta,
139
+ (slug, loc) => docsUrl(slug, loc)
140
+ ),
141
+ buildBreadcrumbs: (tree, slug, locale, urlFor) => buildBreadcrumbs(
142
+ tree,
143
+ slug,
144
+ locale === defaultLocale ? withBase("/") : withBase(`/${locale}/`),
145
+ urlFor
146
+ ),
147
+ collectAutoIndexNodes,
148
+ getNavSectionForSlug,
149
+ getNavSubtree,
150
+ toRouteSlug,
151
+ toSlugParams,
152
+ extractHeadings
153
+ });
154
+ const { buildDocRouteEntries } = docRouteEntries;
155
+ const routeEnumerators = createRouteEnumerators({
156
+ defaultLocale,
157
+ getLocaleKeys: () => Object.keys(settings.locales),
158
+ getVersions: () => settings.versions,
159
+ getDocTags: () => settings.docTags,
160
+ docsUrl,
161
+ versionedDocsUrl,
162
+ withBase,
163
+ loadDocs: (collectionName) => stableDocs(collectionName),
164
+ isDefaultLocaleOnlyPath,
165
+ collectTags: (docs, slugFn) => collectTags(docs, slugFn),
166
+ toRouteSlug,
167
+ buildNavTree: (docs, locale, categoryMeta) => buildNavTree(docs, locale, categoryMeta, (slug, loc) => docsUrl(slug, loc)),
168
+ collectAutoIndexNodes,
169
+ resolveNavSource,
170
+ resolveVersionedLocaleSource,
171
+ mergeLocaleDocs
172
+ });
173
+ const {
174
+ enumerateDocsRoutes,
175
+ enumerateTagsRoutes,
176
+ enumerateVersionedRoutes,
177
+ enumerateAllRoutes
178
+ } = routeEnumerators;
179
+ export {
180
+ absoluteUrl,
181
+ buildDocRouteEntries,
182
+ buildLocaleLinks,
183
+ buildNavTree,
184
+ collectAutoIndexNodes,
185
+ collectTags,
186
+ ctx,
187
+ defaultLocale,
188
+ docsUrl,
189
+ enumerateAllRoutes,
190
+ enumerateDocsRoutes,
191
+ enumerateTagsRoutes,
192
+ enumerateVersionedRoutes,
193
+ extractHeadings,
194
+ findNode,
195
+ firstRoutedHref,
196
+ getCategoryOrder,
197
+ getLocaleConfig,
198
+ getLocaleLabel,
199
+ getNavSectionForSlug,
200
+ getNavSubtree,
201
+ groupSatelliteNodes,
202
+ i18n,
203
+ isDefaultLocaleOnlyPath,
204
+ isExternal,
205
+ isNavVisible,
206
+ loadNavSourceDocs,
207
+ locales,
208
+ navHref,
209
+ resolveHref,
210
+ resolveNavSource,
211
+ resolveTagBound,
212
+ resolveVersionedLocaleSource,
213
+ settings,
214
+ stableDocs,
215
+ stripBase,
216
+ t,
217
+ toRouteSlug,
218
+ toSlugParams,
219
+ urlHelpers,
220
+ versionedDocsUrl,
221
+ withBase
222
+ };
@@ -0,0 +1,43 @@
1
+ import { type CategoryMeta } from "../sidebar-tree/index.js";
2
+ import type { DocNavNode, DocPageEntry } from "../doc-page-props/index.js";
3
+ export type { CategoryMeta, DocNavNode, DocPageEntry };
4
+ /**
5
+ * Identity-stable, draft-filtered `DocPageEntry[]` for a collection. Returns the
6
+ * SAME array instance on every call within one build (anchored on the snapshot
7
+ * array); the no-snapshot (fs-fallback / unit-test) path computes fresh and is
8
+ * deliberately unmemoized. Passed as `stableDocs` to `createNavSourceDocs`.
9
+ */
10
+ export declare function stableDocs(collectionName: string): DocPageEntry[];
11
+ /** Filter predicate: true when a doc should appear in navigation. */
12
+ export declare function isNavVisible(doc: DocPageEntry): boolean;
13
+ /** A docs-href builder: `(slug, locale) => url`. */
14
+ export type BuildHref = (slug: string, locale: string) => string;
15
+ export interface BuildNavTreeOptions {
16
+ buildHref?: BuildHref;
17
+ }
18
+ /**
19
+ * Build a recursive navigation tree from a flat doc collection. Delegates tree
20
+ * construction to the shared `buildSidebarTree`; keeps the host-side concerns
21
+ * (DocNavNode shape, root-index node synthesis). `buildHref` parameterizes the
22
+ * href space (default: the injected `docsUrl`). Unlike the host copy this drops
23
+ * the LRU / identity caches — the snapshot-anchored `stableDocs` already makes
24
+ * the input arrays identity-stable so the factory-level `memoizeDerived` short-
25
+ * circuits per build.
26
+ */
27
+ export declare function buildNavTree(docs: DocPageEntry[], locale: string, categoryMeta: Map<string, CategoryMeta> | undefined, buildHref: BuildHref, options?: BuildNavTreeOptions): DocNavNode[];
28
+ /** Group "satellite" nodes (slug-prefix siblings) under their primary node. */
29
+ export declare function groupSatelliteNodes(tree: DocNavNode[], prefixes: string[]): DocNavNode[];
30
+ /** Find a node by slug anywhere in the tree. */
31
+ export declare function findNode(nodes: DocNavNode[], slug: string): DocNavNode | undefined;
32
+ /** Href of the first routed descendant, walking children depth-first. */
33
+ export declare function firstRoutedHref(node: DocNavNode): string | undefined;
34
+ /** Collect all category nodes that have children but no page (no index.mdx). */
35
+ export declare function collectAutoIndexNodes(nodes: DocNavNode[]): DocNavNode[];
36
+ export interface BreadcrumbItem {
37
+ label: string;
38
+ href?: string;
39
+ }
40
+ /** Build breadcrumb trail by walking the nav tree. `homeHref` is the locale
41
+ * docs root (injected). `hrefFor` optionally remaps intermediate crumbs into
42
+ * a versioned URL space. */
43
+ export declare function buildBreadcrumbs(tree: DocNavNode[], slug: string, homeHref: string, hrefFor?: (slug: string) => string): BreadcrumbItem[];