@takazudo/zudo-doc 5.28.2 → 6.0.1

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 (511) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/README.md +49 -16
  3. package/bin/gen-z-index.mjs +18 -18
  4. package/dist/agent-docs/identity.d.ts +4 -0
  5. package/dist/agent-docs/identity.js +24 -0
  6. package/dist/agent-docs/index.d.ts +5 -0
  7. package/dist/agent-docs/index.js +5 -0
  8. package/dist/agent-docs/limits.d.ts +11 -0
  9. package/dist/agent-docs/limits.js +24 -0
  10. package/dist/agent-docs/search.d.ts +14 -0
  11. package/dist/agent-docs/search.js +82 -0
  12. package/dist/agent-docs/tokenize.d.ts +2 -0
  13. package/dist/agent-docs/tokenize.js +22 -0
  14. package/dist/agent-docs/types.d.ts +68 -0
  15. package/dist/agent-docs/types.js +0 -0
  16. package/dist/ai-chat-modal/index.d.ts +1 -4
  17. package/dist/ai-chat-modal/index.js +183 -123
  18. package/dist/asset-components/asset-card.d.ts +1 -2
  19. package/dist/asset-components/asset-card.js +12 -12
  20. package/dist/asset-components/asset-code.d.ts +1 -2
  21. package/dist/asset-components/asset-code.js +10 -10
  22. package/dist/asset-components/shared.d.ts +3 -4
  23. package/dist/asset-components/shared.js +4 -4
  24. package/dist/asset-index-page/body.d.ts +5 -6
  25. package/dist/asset-index-page/body.js +6 -6
  26. package/dist/asset-index-page/index.d.ts +1 -2
  27. package/dist/asset-index-page/index.js +1 -1
  28. package/dist/asset-page/body.d.ts +5 -9
  29. package/dist/asset-page/body.js +3 -3
  30. package/dist/asset-page/components.d.ts +16 -17
  31. package/dist/asset-page/components.js +10 -9
  32. package/dist/asset-page/index.d.ts +1 -2
  33. package/dist/asset-page/index.js +1 -1
  34. package/dist/auto-logo/index.d.ts +1 -2
  35. package/dist/auto-logo/index.js +2 -2
  36. package/dist/body-foot-util/body-foot-util-area.d.ts +3 -4
  37. package/dist/body-foot-util/body-foot-util-area.js +1 -2
  38. package/dist/body-foot-util/edit-link.d.ts +2 -3
  39. package/dist/body-foot-util/edit-link.js +1 -2
  40. package/dist/breadcrumb/breadcrumb.d.ts +6 -6
  41. package/dist/breadcrumb/breadcrumb.js +3 -4
  42. package/dist/catalog.js +1 -1
  43. package/dist/category-nav/index.d.ts +1 -2
  44. package/dist/category-nav/index.js +11 -5
  45. package/dist/category-tree-nav/index.d.ts +1 -2
  46. package/dist/category-tree-nav/index.js +3 -3
  47. package/dist/chrome/derive.d.ts +18 -27
  48. package/dist/chrome/derive.js +47 -29
  49. package/dist/chrome/index.d.ts +5 -5
  50. package/dist/chrome/index.js +1 -1
  51. package/dist/chrome/island-data.d.ts +4 -0
  52. package/dist/chrome/island-data.js +52 -0
  53. package/dist/chrome/primary-slots.d.ts +2 -3
  54. package/dist/chrome-bindings.d.ts +30 -22
  55. package/dist/code-group/index.d.ts +3 -4
  56. package/dist/code-group/index.js +3 -7
  57. package/dist/code-syntax/code-block-enhancer.d.ts +1 -2
  58. package/dist/code-syntax/code-block-enhancer.js +2 -2
  59. package/dist/code-syntax/mermaid-init.d.ts +1 -2
  60. package/dist/code-syntax/mermaid-init.js +5 -2
  61. package/dist/code-syntax/tabs-init-script.js +1 -1
  62. package/dist/code-syntax/tabs-init.d.ts +1 -2
  63. package/dist/code-syntax/tabs-init.js +2 -2
  64. package/dist/code-syntax/tabs.d.ts +6 -6
  65. package/dist/code-syntax/tabs.js +8 -8
  66. package/dist/compiled.css +2937 -2942
  67. package/dist/config/component-tokens.d.ts +1 -1
  68. package/dist/config/component-tokens.js +22 -0
  69. package/dist/config-assertions/index.d.ts +13 -0
  70. package/dist/config-assertions/index.js +14 -0
  71. package/dist/config.d.ts +36 -17
  72. package/dist/config.js +23 -95
  73. package/dist/content/content-blockquote.d.ts +2 -3
  74. package/dist/content/content-blockquote.js +3 -3
  75. package/dist/content/content-code.d.ts +3 -4
  76. package/dist/content/content-code.js +5 -5
  77. package/dist/content/content-link.d.ts +3 -4
  78. package/dist/content/content-link.js +10 -10
  79. package/dist/content/content-ol.d.ts +2 -3
  80. package/dist/content/content-ol.js +5 -4
  81. package/dist/content/content-paragraph.d.ts +2 -3
  82. package/dist/content/content-paragraph.js +1 -1
  83. package/dist/content/content-strong.d.ts +2 -3
  84. package/dist/content/content-strong.js +3 -3
  85. package/dist/content/content-table.d.ts +2 -3
  86. package/dist/content/content-table.js +4 -4
  87. package/dist/content/content-ul.d.ts +2 -3
  88. package/dist/content/content-ul.js +4 -4
  89. package/dist/content/heading-h2.d.ts +2 -3
  90. package/dist/content/heading-h2.js +4 -4
  91. package/dist/content/heading-h3.d.ts +2 -3
  92. package/dist/content/heading-h3.js +4 -4
  93. package/dist/content/heading-h4.d.ts +2 -3
  94. package/dist/content/heading-h4.js +4 -4
  95. package/dist/content-admonition/index.d.ts +3 -4
  96. package/dist/content-admonition/index.js +2 -2
  97. package/dist/content.css +35 -33
  98. package/dist/design-token-panel-bootstrap-controller.d.ts +178 -0
  99. package/dist/design-token-panel-bootstrap-controller.js +359 -0
  100. package/dist/design-token-panel-bootstrap-island.d.ts +5 -0
  101. package/dist/design-token-panel-bootstrap-island.js +19 -0
  102. package/dist/design-token-panel-bootstrap.d.ts +5 -195
  103. package/dist/design-token-panel-bootstrap.js +3 -288
  104. package/dist/desktop-sidebar-toggle-island/index.d.ts +2 -7
  105. package/dist/desktop-sidebar-toggle-island/index.js +2 -58
  106. package/dist/desktop-sidebar-toggle-island/island.d.ts +4 -0
  107. package/dist/desktop-sidebar-toggle-island/island.js +43 -0
  108. package/dist/desktop-sidebar-toggle-island/storage.d.ts +4 -0
  109. package/dist/desktop-sidebar-toggle-island/storage.js +29 -0
  110. package/dist/desktop-toc-toggle-island/index.d.ts +2 -7
  111. package/dist/desktop-toc-toggle-island/index.js +2 -58
  112. package/dist/desktop-toc-toggle-island/island.d.ts +4 -0
  113. package/dist/desktop-toc-toggle-island/island.js +43 -0
  114. package/dist/desktop-toc-toggle-island/storage.d.ts +4 -0
  115. package/dist/desktop-toc-toggle-island/storage.js +29 -0
  116. package/dist/details/details.d.ts +3 -4
  117. package/dist/details/details.js +1 -1
  118. package/dist/doc-body-end/index.d.ts +1 -2
  119. package/dist/doc-body-end/index.js +1 -1
  120. package/dist/doc-body-end-islands/design-token-panel-island.d.ts +2 -2
  121. package/dist/doc-body-end-islands/design-token-panel-island.js +3 -7
  122. package/dist/doc-body-end-islands/index.d.ts +4 -21
  123. package/dist/doc-body-end-islands/index.js +5 -3
  124. package/dist/doc-body-end-islands/theme-pack-switcher-island.d.ts +3 -13
  125. package/dist/doc-body-end-islands/theme-pack-switcher-island.js +11 -13
  126. package/dist/doc-content-header/index.d.ts +1 -2
  127. package/dist/doc-content-header/index.js +1 -1
  128. package/dist/doc-history/index.d.ts +1 -1
  129. package/dist/doc-history/index.js +166 -141
  130. package/dist/doc-history-area/index.d.ts +6 -4
  131. package/dist/doc-history-area/index.js +17 -16
  132. package/dist/doc-metainfo-area/index.d.ts +2 -3
  133. package/dist/doc-metainfo-area/index.js +1 -1
  134. package/dist/doc-page-renderer/index.d.ts +13 -7
  135. package/dist/doc-page-renderer/index.js +10 -1
  136. package/dist/doc-page-shell/index.d.ts +20 -7
  137. package/dist/doc-page-shell/index.js +17 -6
  138. package/dist/doc-pager/index.d.ts +1 -2
  139. package/dist/doc-pager/index.js +3 -3
  140. package/dist/doc-tags-area/index.d.ts +2 -3
  141. package/dist/doc-tags-area/index.js +1 -1
  142. package/dist/doclayout/doc-layout-with-defaults.d.ts +9 -9
  143. package/dist/doclayout/doc-layout-with-defaults.js +5 -15
  144. package/dist/doclayout/doc-layout.d.ts +26 -27
  145. package/dist/doclayout/doc-layout.js +23 -14
  146. package/dist/docs-schema/index.d.ts +4 -0
  147. package/dist/docs-schema/index.js +1 -0
  148. package/dist/extract-headings/index.js +43 -12
  149. package/dist/factory-context/index.d.ts +22 -19
  150. package/dist/features.css +75 -8
  151. package/dist/find-in-page/find-bar.d.ts +4 -2
  152. package/dist/find-in-page/find-bar.js +58 -69
  153. package/dist/find-in-page/index.d.ts +2 -8
  154. package/dist/find-in-page/index.js +33 -30
  155. package/dist/footer/footer.d.ts +3 -4
  156. package/dist/footer/footer.js +3 -3
  157. package/dist/footer-with-defaults/index.d.ts +2 -3
  158. package/dist/footer-with-defaults/index.js +1 -1
  159. package/dist/frontmatter-preview-defaults/index.js +1 -0
  160. package/dist/head/doc-head.d.ts +1 -1
  161. package/dist/head/doc-head.js +24 -32
  162. package/dist/head/og-tags.d.ts +1 -1
  163. package/dist/head/og-tags.js +8 -7
  164. package/dist/head/twitter-card.d.ts +1 -1
  165. package/dist/head/twitter-card.js +1 -1
  166. package/dist/head-with-defaults/index.d.ts +7 -2
  167. package/dist/head-with-defaults/index.js +46 -32
  168. package/dist/header/header.d.ts +8 -8
  169. package/dist/header/header.js +9 -11
  170. package/dist/header/types.d.ts +7 -7
  171. package/dist/header-with-defaults/index.d.ts +3 -4
  172. package/dist/header-with-defaults/index.js +27 -14
  173. package/dist/home-intro/index.d.ts +2 -5
  174. package/dist/home-intro/index.js +7 -5
  175. package/dist/home-intro/prepare.js +4 -3
  176. package/dist/home-page/index.d.ts +3 -3
  177. package/dist/home-page/index.js +19 -17
  178. package/dist/html-preview-wrapper/highlighted-code.d.ts +3 -4
  179. package/dist/html-preview-wrapper/highlighted-code.js +19 -17
  180. package/dist/html-preview-wrapper/html-preview-wrapper.d.ts +4 -25
  181. package/dist/html-preview-wrapper/html-preview-wrapper.js +2 -87
  182. package/dist/html-preview-wrapper/html-preview.d.ts +3 -10
  183. package/dist/html-preview-wrapper/html-preview.js +13 -37
  184. package/dist/html-preview-wrapper/index.d.ts +2 -1
  185. package/dist/html-preview-wrapper/index.js +1 -1
  186. package/dist/html-preview-wrapper/preview-base.d.ts +3 -5
  187. package/dist/html-preview-wrapper/preview-base.js +56 -59
  188. package/dist/html-preview-wrapper/wrapper.d.ts +20 -0
  189. package/dist/html-preview-wrapper/wrapper.js +37 -0
  190. package/dist/hydration-pending.d.ts +3 -5
  191. package/dist/hydration-pending.js +7 -5
  192. package/dist/i18n-version/language-switcher.d.ts +5 -32
  193. package/dist/i18n-version/language-switcher.js +5 -106
  194. package/dist/i18n-version/switcher-generated-scripts.d.ts +2 -0
  195. package/dist/i18n-version/switcher-generated-scripts.js +107 -0
  196. package/dist/i18n-version/switcher-url-state.d.ts +76 -0
  197. package/dist/i18n-version/switcher-url-state.js +103 -0
  198. package/dist/i18n-version/version-banner.d.ts +2 -3
  199. package/dist/i18n-version/version-banner.js +1 -1
  200. package/dist/i18n-version/version-switcher.d.ts +5 -50
  201. package/dist/i18n-version/version-switcher.js +5 -157
  202. package/dist/icons/index.d.ts +18 -19
  203. package/dist/icons/index.js +17 -33
  204. package/dist/image-enlarge/index.d.ts +1 -10
  205. package/dist/image-enlarge/index.js +80 -55
  206. package/dist/image-enlarge/public.d.ts +2 -0
  207. package/dist/image-enlarge/public.js +6 -0
  208. package/dist/image-enlarge/ssr-fallback.d.ts +2 -0
  209. package/dist/image-enlarge/ssr-fallback.js +8 -0
  210. package/dist/index.d.ts +11 -4
  211. package/dist/inline-version-switcher/index.d.ts +1 -2
  212. package/dist/inline-version-switcher/index.js +1 -1
  213. package/dist/island-types/index.d.ts +2 -2
  214. package/dist/island-types/index.js +1 -5
  215. package/dist/math-block/index.d.ts +4 -7
  216. package/dist/math-block/index.js +5 -5
  217. package/dist/mcp/handler.d.ts +8 -0
  218. package/dist/mcp/handler.js +129 -0
  219. package/dist/mcp/index.d.ts +4 -0
  220. package/dist/mcp/index.js +7 -0
  221. package/dist/mcp/loader.d.ts +19 -0
  222. package/dist/mcp/loader.js +202 -0
  223. package/dist/mdx-components/index.js +40 -108
  224. package/dist/mermaid-enlarge/index.d.ts +1 -8
  225. package/dist/mermaid-enlarge/index.js +174 -158
  226. package/dist/mermaid-enlarge/public.d.ts +2 -0
  227. package/dist/mermaid-enlarge/public.js +6 -0
  228. package/dist/mermaid-enlarge/ssr-fallback.d.ts +2 -0
  229. package/dist/mermaid-enlarge/ssr-fallback.js +8 -0
  230. package/dist/metainfo/doc-metainfo.d.ts +2 -3
  231. package/dist/metainfo/doc-metainfo.js +1 -4
  232. package/dist/metainfo/doc-tags.d.ts +2 -3
  233. package/dist/metainfo/doc-tags.js +1 -1
  234. package/dist/metainfo/frontmatter-preview.d.ts +3 -4
  235. package/dist/metainfo/frontmatter-preview.js +1 -1
  236. package/dist/nav-data-prep/index.js +6 -4
  237. package/dist/nav-indexing/category-nav.d.ts +2 -3
  238. package/dist/nav-indexing/category-nav.js +1 -2
  239. package/dist/nav-indexing/category-tree-nav.d.ts +2 -3
  240. package/dist/nav-indexing/category-tree-nav.js +1 -1
  241. package/dist/nav-indexing/doc-card-grid.d.ts +2 -3
  242. package/dist/nav-indexing/doc-card-grid.js +1 -2
  243. package/dist/nav-indexing/docs-sitemap.d.ts +2 -3
  244. package/dist/nav-indexing/docs-sitemap.js +2 -2
  245. package/dist/nav-indexing/index.d.ts +1 -1
  246. package/dist/nav-indexing/nav-card-grid.d.ts +2 -3
  247. package/dist/nav-indexing/nav-card-grid.js +1 -2
  248. package/dist/nav-indexing/note-tray-index-parts/card-list.d.ts +1 -2
  249. package/dist/nav-indexing/note-tray-index-parts/card-list.js +4 -4
  250. package/dist/nav-indexing/note-tray-index-parts/date-line.d.ts +2 -3
  251. package/dist/nav-indexing/note-tray-index-parts/date-line.js +1 -1
  252. package/dist/nav-indexing/note-tray-index-parts/index-list.d.ts +1 -2
  253. package/dist/nav-indexing/note-tray-index-parts/index-list.js +2 -2
  254. package/dist/nav-indexing/note-tray-index-parts/timeline.d.ts +1 -2
  255. package/dist/nav-indexing/note-tray-index-parts/timeline.js +2 -2
  256. package/dist/nav-indexing/note-tray-index.d.ts +1 -2
  257. package/dist/nav-indexing/note-tray-index.js +1 -1
  258. package/dist/nav-indexing/site-tree-nav-demo.d.ts +2 -3
  259. package/dist/nav-indexing/site-tree-nav-demo.js +2 -2
  260. package/dist/nav-indexing/tag-nav.d.ts +1 -2
  261. package/dist/nav-indexing/tag-nav.js +1 -1
  262. package/dist/nav-indexing/types.d.ts +2 -2
  263. package/dist/nav-indexing/versions-page-content.d.ts +2 -3
  264. package/dist/nav-indexing/versions-page-content.js +8 -8
  265. package/dist/note-tray-index/index.d.ts +1 -2
  266. package/dist/note-tray-index/index.js +1 -1
  267. package/dist/page-loading/page-loading-overlay.d.ts +1 -2
  268. package/dist/page-loading/page-loading-overlay.js +3 -5
  269. package/dist/plugins/agent-export.d.ts +3 -0
  270. package/dist/plugins/agent-export.js +34 -0
  271. package/dist/plugins/internal/agent-export/chunk.d.ts +5 -0
  272. package/dist/plugins/internal/agent-export/chunk.js +90 -0
  273. package/dist/plugins/internal/agent-export/index.d.ts +24 -0
  274. package/dist/plugins/internal/agent-export/index.js +123 -0
  275. package/dist/plugins/internal/agent-export/normalize.d.ts +5 -0
  276. package/dist/plugins/internal/agent-export/normalize.js +73 -0
  277. package/dist/plugins/internal/llms-txt/dev-middleware.d.ts +6 -0
  278. package/dist/plugins/internal/llms-txt/dev-middleware.js +8 -3
  279. package/dist/plugins/internal/llms-txt/emit.js +23 -6
  280. package/dist/plugins/internal/llms-txt/generate.d.ts +7 -1
  281. package/dist/plugins/internal/llms-txt/generate.js +9 -2
  282. package/dist/plugins/internal/llms-txt/load.d.ts +2 -0
  283. package/dist/plugins/internal/llms-txt/load.js +20 -4
  284. package/dist/plugins/internal/llms-txt/types.d.ts +10 -0
  285. package/dist/plugins/routes.js +4 -0
  286. package/dist/preset.d.ts +19 -9
  287. package/dist/preset.js +20 -1
  288. package/dist/route-context-payload/index.js +1 -1
  289. package/dist/routes/404.d.ts +2 -3
  290. package/dist/routes/404.js +1 -1
  291. package/dist/routes/_chrome.d.ts +5 -5
  292. package/dist/routes/_chrome.js +7 -2
  293. package/dist/routes/_context.d.ts +4 -4
  294. package/dist/routes/_design-token-panel-bootstrap.d.ts +1 -4
  295. package/dist/routes/_design-token-panel-bootstrap.js +9 -1
  296. package/dist/routes/docs-slug.d.ts +2 -3
  297. package/dist/routes/docs-tags-index.d.ts +2 -3
  298. package/dist/routes/docs-tags-index.js +1 -1
  299. package/dist/routes/docs-tags-tag.d.ts +2 -3
  300. package/dist/routes/docs-tags-tag.js +1 -1
  301. package/dist/routes/docs-versions.d.ts +2 -3
  302. package/dist/routes/docs-versions.js +1 -1
  303. package/dist/routes/files-path.d.ts +2 -3
  304. package/dist/routes/files-path.js +1 -1
  305. package/dist/routes/index.d.ts +2 -3
  306. package/dist/routes/index.js +1 -1
  307. package/dist/routes/locale-docs-slug.d.ts +2 -3
  308. package/dist/routes/locale-docs-tags-index.d.ts +2 -3
  309. package/dist/routes/locale-docs-tags-index.js +1 -1
  310. package/dist/routes/locale-docs-tags-tag.d.ts +2 -3
  311. package/dist/routes/locale-docs-tags-tag.js +1 -1
  312. package/dist/routes/locale-docs-versions.d.ts +2 -3
  313. package/dist/routes/locale-docs-versions.js +1 -1
  314. package/dist/routes/locale-files-path.d.ts +2 -3
  315. package/dist/routes/locale-files-path.js +1 -1
  316. package/dist/routes/locale-index.d.ts +2 -3
  317. package/dist/routes/locale-index.js +1 -1
  318. package/dist/routes/mcp.d.ts +5 -0
  319. package/dist/routes/mcp.js +25 -0
  320. package/dist/routes/v-docs-slug.d.ts +2 -3
  321. package/dist/routes/v-locale-docs-slug.d.ts +2 -3
  322. package/dist/search-widget/index.d.ts +1 -2
  323. package/dist/search-widget/index.js +4 -7
  324. package/dist/search-widget-script/generated-script.js +12 -5
  325. package/dist/settings-defaults.d.ts +2 -0
  326. package/dist/settings-defaults.js +93 -0
  327. package/dist/settings.d.ts +8 -2
  328. package/dist/sidebar/client-data.d.ts +18 -0
  329. package/dist/sidebar/client-data.js +47 -0
  330. package/dist/sidebar/index.d.ts +3 -1
  331. package/dist/sidebar/index.js +3 -1
  332. package/dist/sidebar/sidebar.d.ts +12 -44
  333. package/dist/sidebar/sidebar.js +4 -3
  334. package/dist/sidebar/types.d.ts +14 -0
  335. package/dist/sidebar-prepaint/index.d.ts +1 -2
  336. package/dist/sidebar-prepaint/index.js +4 -6
  337. package/dist/sidebar-resizer/sidebar-resizer-init.d.ts +2 -3
  338. package/dist/sidebar-resizer/sidebar-resizer-init.js +3 -3
  339. package/dist/sidebar-toggle-island/index.d.ts +8 -11
  340. package/dist/sidebar-toggle-island/index.js +75 -62
  341. package/dist/sidebar-tree/build-tree.js +5 -6
  342. package/dist/sidebar-tree/types.d.ts +2 -0
  343. package/dist/sidebar-tree-island/index.d.ts +4 -19
  344. package/dist/sidebar-tree-island/index.js +782 -436
  345. package/dist/sidebar-tree-island/scope-state.d.ts +38 -0
  346. package/dist/sidebar-tree-island/scope-state.js +151 -0
  347. package/dist/sidebar-tree-island/sidebar-scroll-preserve.js +6 -2
  348. package/dist/sidebar-utils/index.d.ts +17 -19
  349. package/dist/sidebar-utils/index.js +100 -3
  350. package/dist/sidebar-utils/scope.d.ts +11 -0
  351. package/dist/sidebar-utils/scope.js +67 -0
  352. package/dist/sidebar-with-defaults/index.d.ts +1 -2
  353. package/dist/sidebar-with-defaults/index.js +19 -18
  354. package/dist/site-schema/nav-tree.js +15 -15
  355. package/dist/site-schema/types.d.ts +1 -0
  356. package/dist/site-tree-nav/index.d.ts +2 -3
  357. package/dist/site-tree-nav/index.js +11 -12
  358. package/dist/site-tree-nav/normalize-island-props.d.ts +16 -0
  359. package/dist/site-tree-nav/normalize-island-props.js +122 -0
  360. package/dist/site-tree-nav-island/index.d.ts +3 -3
  361. package/dist/site-tree-nav-island/index.js +243 -144
  362. package/dist/smart-break/index.d.ts +3 -4
  363. package/dist/smart-break/index.js +1 -1
  364. package/dist/tab-item/tab-item.d.ts +3 -4
  365. package/dist/tab-item/tab-item.js +1 -1
  366. package/dist/tag-pages/index.d.ts +3 -3
  367. package/dist/tag-pages/index.js +10 -10
  368. package/dist/theme/color-scheme-provider.d.ts +3 -3
  369. package/dist/theme/color-scheme-provider.js +3 -3
  370. package/dist/theme/theme-pack-provider.d.ts +1 -1
  371. package/dist/theme/theme-pack-provider.js +3 -3
  372. package/dist/theme/theme-toggle.d.ts +2 -3
  373. package/dist/theme/theme-toggle.js +1 -1
  374. package/dist/theme-pack-dialog/index.d.ts +1 -1
  375. package/dist/theme-pack-dialog/index.js +69 -75
  376. package/dist/theme-pack-dialog/theme-pack-card.d.ts +3 -4
  377. package/dist/theme-pack-dialog/theme-pack-card.js +19 -17
  378. package/dist/theme-pack-switcher/index.d.ts +4 -5
  379. package/dist/theme-pack-switcher/index.js +52 -49
  380. package/dist/theme-packs/academia/meta.json +1 -1
  381. package/dist/theme-packs/academia/pack.css +1 -1
  382. package/dist/theme-packs/bauhaus/meta.json +1 -1
  383. package/dist/theme-packs/bauhaus/pack.css +2 -2
  384. package/dist/theme-packs/blueprint/meta.json +1 -1
  385. package/dist/theme-packs/blueprint/pack.css +2 -2
  386. package/dist/theme-packs/botanica/meta.json +1 -1
  387. package/dist/theme-packs/botanica/pack.css +2 -2
  388. package/dist/theme-packs/broadsheet/meta.json +1 -1
  389. package/dist/theme-packs/broadsheet/pack.css +2 -2
  390. package/dist/theme-packs/brutalist/meta.json +1 -1
  391. package/dist/theme-packs/brutalist/pack.css +2 -2
  392. package/dist/theme-packs/eink/meta.json +1 -1
  393. package/dist/theme-packs/eink/pack.css +1 -1
  394. package/dist/theme-packs/futura-editorial/meta.json +1 -1
  395. package/dist/theme-packs/futura-editorial/pack.css +2 -2
  396. package/dist/theme-packs/hearth/meta.json +1 -1
  397. package/dist/theme-packs/hearth/pack.css +2 -2
  398. package/dist/theme-packs/ledger/meta.json +1 -1
  399. package/dist/theme-packs/ledger/pack.css +1 -1
  400. package/dist/theme-packs/manuscript/meta.json +1 -1
  401. package/dist/theme-packs/manuscript/pack.css +1 -1
  402. package/dist/theme-packs/matcha/meta.json +1 -1
  403. package/dist/theme-packs/matcha/pack.css +2 -2
  404. package/dist/theme-packs/nocturne/meta.json +1 -1
  405. package/dist/theme-packs/nocturne/pack.css +2 -2
  406. package/dist/theme-packs/observatory/meta.json +1 -1
  407. package/dist/theme-packs/observatory/pack.css +2 -2
  408. package/dist/theme-packs/onyx/meta.json +1 -1
  409. package/dist/theme-packs/onyx/pack.css +2 -2
  410. package/dist/theme-packs/phosphor/meta.json +1 -1
  411. package/dist/theme-packs/phosphor/pack.css +2 -2
  412. package/dist/theme-packs/riso/meta.json +1 -1
  413. package/dist/theme-packs/riso/pack.css +2 -2
  414. package/dist/theme-packs/sakura/meta.json +1 -1
  415. package/dist/theme-packs/sakura/pack.css +2 -2
  416. package/dist/theme-packs/scandi/meta.json +1 -1
  417. package/dist/theme-packs/scandi/pack.css +1 -1
  418. package/dist/theme-packs/solar/meta.json +1 -1
  419. package/dist/theme-packs/solar/pack.css +1 -1
  420. package/dist/theme-packs/sumi/meta.json +1 -1
  421. package/dist/theme-packs/sumi/pack.css +2 -2
  422. package/dist/theme-packs/swissgrid/meta.json +1 -1
  423. package/dist/theme-packs/swissgrid/pack.css +1 -1
  424. package/dist/theme-packs/timberline/meta.json +1 -1
  425. package/dist/theme-packs/timberline/pack.css +2 -2
  426. package/dist/theme-packs/washi/meta.json +1 -1
  427. package/dist/theme-packs/washi/pack.css +2 -2
  428. package/dist/theme-toggle/index.d.ts +1 -1
  429. package/dist/theme-toggle/index.js +154 -167
  430. package/dist/theme.css +47 -121
  431. package/dist/toc/mobile-toc.d.ts +3 -5
  432. package/dist/toc/mobile-toc.js +29 -27
  433. package/dist/toc/toc.d.ts +3 -4
  434. package/dist/toc/toc.js +18 -18
  435. package/dist/toc/use-active-heading.d.ts +5 -4
  436. package/dist/toc/use-active-heading.js +36 -30
  437. package/dist/toc-prepaint/index.d.ts +1 -2
  438. package/dist/toc-prepaint/index.js +4 -6
  439. package/dist/transitions/nested-island-props-refresh.d.ts +3 -16
  440. package/dist/transitions/nested-island-props-refresh.js +133 -151
  441. package/dist/transitions/page-events.d.ts +8 -13
  442. package/dist/tree-nav-shared/index.d.ts +4 -5
  443. package/dist/tree-nav-shared/index.js +6 -7
  444. package/dist/use-modal-dialog/index.d.ts +9 -63
  445. package/dist/use-modal-dialog/index.js +41 -59
  446. package/dist/versions-page/index.d.ts +3 -3
  447. package/dist/versions-page/index.js +5 -5
  448. package/dist/wind/index.d.ts +5 -0
  449. package/dist/wind/index.js +169 -0
  450. package/dist/wind.json +498 -0
  451. package/dist/z-index-defaults/index.d.ts +4 -4
  452. package/dist/zdtp-loader.d.ts +7 -0
  453. package/dist/zdtp-loader.js +8 -0
  454. package/eject/asset-components/asset-card.tsx +14 -16
  455. package/eject/asset-components/asset-code.tsx +10 -12
  456. package/eject/asset-components/shared.tsx +5 -7
  457. package/eject/breadcrumb/breadcrumb.tsx +15 -16
  458. package/eject/code-group/index.tsx +4 -10
  459. package/eject/content-admonition/index.tsx +5 -6
  460. package/eject/desktop-sidebar-toggle-island/index.ts +4 -0
  461. package/eject/desktop-sidebar-toggle-island/island.tsx +50 -0
  462. package/eject/desktop-sidebar-toggle-island/storage.ts +27 -0
  463. package/eject/details/details.tsx +3 -5
  464. package/eject/doc-history/index.tsx +193 -179
  465. package/eject/doc-pager/index.tsx +3 -4
  466. package/eject/footer/footer.tsx +7 -9
  467. package/eject/header/header.tsx +42 -54
  468. package/eject/header/nav-overflow-script.ts +1 -1
  469. package/eject/header/types.ts +12 -13
  470. package/eject/image-enlarge/index.tsx +84 -69
  471. package/eject/image-enlarge/public.ts +2 -0
  472. package/eject/image-enlarge/ssr-fallback.tsx +7 -0
  473. package/eject/page-loading/page-loading-overlay.tsx +8 -15
  474. package/eject/sidebar/client-data.ts +68 -0
  475. package/eject/sidebar/index.ts +3 -0
  476. package/eject/sidebar/sidebar.tsx +16 -97
  477. package/eject/sidebar/types.ts +15 -0
  478. package/eject/sidebar-toggle-island/index.tsx +103 -102
  479. package/eject/sidebar-tree-island/index.tsx +827 -615
  480. package/eject/sidebar-tree-island/scope-state.ts +154 -0
  481. package/eject/sidebar-tree-island/sidebar-scroll-preserve.ts +8 -2
  482. package/eject/site-tree-nav-island/index.tsx +349 -222
  483. package/eject/tab-item/tab-item.tsx +2 -4
  484. package/eject/theme-toggle/hydration-pending.ts +6 -10
  485. package/eject/theme-toggle/index.tsx +133 -173
  486. package/eject/toc/mobile-toc.tsx +27 -31
  487. package/eject/toc/toc.tsx +21 -24
  488. package/eject/toc/use-active-heading.ts +43 -38
  489. package/package.json +40 -22
  490. package/routes-src/404.tsx +2 -3
  491. package/routes-src/_chrome.tsx +7 -2
  492. package/routes-src/_design-token-panel-bootstrap.tsx +1 -63
  493. package/routes-src/docs-slug.tsx +2 -3
  494. package/routes-src/docs-tags-index.tsx +2 -3
  495. package/routes-src/docs-tags-tag.tsx +2 -3
  496. package/routes-src/docs-versions.tsx +2 -3
  497. package/routes-src/files-path.tsx +2 -4
  498. package/routes-src/index.tsx +2 -3
  499. package/routes-src/locale-docs-slug.tsx +2 -3
  500. package/routes-src/locale-docs-tags-index.tsx +2 -3
  501. package/routes-src/locale-docs-tags-tag.tsx +2 -3
  502. package/routes-src/locale-docs-versions.tsx +2 -3
  503. package/routes-src/locale-files-path.tsx +2 -4
  504. package/routes-src/locale-index.tsx +2 -3
  505. package/routes-src/mcp.tsx +25 -0
  506. package/routes-src/v-docs-slug.tsx +2 -3
  507. package/routes-src/v-locale-docs-slug.tsx +2 -3
  508. package/tsconfig.base.json +1 -1
  509. package/dist/safelist.css +0 -2
  510. package/dist/theme-no-reset.css +0 -379
  511. package/eject/desktop-sidebar-toggle-island/index.tsx +0 -110
@@ -16,7 +16,7 @@ export type ComponentTokenSurface = "content" | "chrome";
16
16
  * Provides autocomplete when a consumer iterates or references individual tokens.
17
17
  * Must be kept in sync with the `cssVar` values in `COMPONENT_TOKENS` below.
18
18
  */
19
- export type ComponentTokenName = "--zdc-doc-title-font" | "--zdc-doc-title-weight" | "--zdc-doc-title-tracking" | "--zdc-doc-h2-font" | "--zdc-doc-h2-weight" | "--zdc-doc-h2-tracking" | "--zdc-doc-h3-weight" | "--zdc-doc-h4-weight" | "--zdc-doc-prose-font" | "--zdc-doc-link-decoration" | "--zdc-admonition-radius" | "--zdc-admonition-border-width" | "--zdc-card-radius" | "--zdc-content-max-width" | "--zdc-toc-width" | "--zdc-nav-active-indicator-color" | "--zdc-nav-active-weight" | "--zdc-chrome-font" | "--zdc-header-font" | "--zdc-sidebar-font" | "--zdc-toc-font";
19
+ export type ComponentTokenName = "--zdc-doc-title-font" | "--zdc-doc-title-weight" | "--zdc-doc-title-tracking" | "--zdc-doc-h2-font" | "--zdc-doc-h2-weight" | "--zdc-doc-h2-tracking" | "--zdc-doc-h3-weight" | "--zdc-doc-h4-weight" | "--zdc-doc-prose-font" | "--zdc-doc-link-decoration" | "--zdc-admonition-radius" | "--zdc-admonition-border-width" | "--zdc-card-radius" | "--zdc-content-max-width" | "--zdc-toc-width" | "--zdc-nav-active-indicator-color" | "--zdc-nav-active-weight" | "--zdc-chrome-font" | "--zdc-header-font" | "--zdc-header-logo-font" | "--zdc-header-logo-weight" | "--zdc-sidebar-font" | "--zdc-toc-font";
20
20
  export interface ComponentToken {
21
21
  /**
22
22
  * The CSS custom-property name the consumer redefines in `:root`, e.g.
@@ -337,6 +337,28 @@ const COMPONENT_TOKENS = [
337
337
  category: "typography",
338
338
  description: "Font family of the site header. Defaults to the `--zdc-chrome-font` seam (a no-op until redefined); set in :root to give the header its own face, e.g. a display font for the wordmark and nav. Scoped to the header itself \u2014 it does not leak into the mobile sidebar drawer that the header hosts."
339
339
  },
340
+ // Wordmark-only knobs: the anchor selector beats its font-bold utility.
341
+ // Packs with explicit logo typography preserve their own fallbacks.
342
+ {
343
+ cssVar: "--zdc-header-logo-font",
344
+ selector: "a[data-header-logo]",
345
+ property: "font-family",
346
+ default: "inherit",
347
+ component: "header-logo",
348
+ surface: "chrome",
349
+ category: "typography",
350
+ description: "Font family of the site-name anchor only. Defaults to the inherited header font; theme packs retain their existing logo family as fallback. Navigation and header controls keep their own typography."
351
+ },
352
+ {
353
+ cssVar: "--zdc-header-logo-weight",
354
+ selector: "a[data-header-logo]",
355
+ property: "font-weight",
356
+ default: "var(--font-weight-bold)",
357
+ component: "header-logo",
358
+ surface: "chrome",
359
+ category: "typography",
360
+ description: "Font weight of the site-name anchor only. Defaults to --font-weight-bold, matching font-bold; theme packs retain their existing logo weight as fallback."
361
+ },
340
362
  {
341
363
  cssVar: "--zdc-sidebar-font",
342
364
  selector: "#desktop-sidebar, aside[data-zd-mobile-sidebar]",
@@ -1,4 +1,17 @@
1
1
  import type { FaviconConfig } from "../settings.js";
2
+ /** Structural subset of Settings used by the agent-export/MCP config guard. */
3
+ export interface AgentDocsConsistentSubject {
4
+ agentExport?: unknown;
5
+ mcp?: unknown;
6
+ }
7
+ /**
8
+ * Validate the package-owned static agent export and MCP settings.
9
+ *
10
+ * These fields are booleans in the public config type, but JavaScript callers
11
+ * and casted TypeScript values can still pass unsupported values at runtime.
12
+ * MCP also requires the independently opt-in static feed.
13
+ */
14
+ export declare function assertAgentDocsConsistent(settings: AgentDocsConsistentSubject): void;
2
15
  /** Structural subset of a header dropdown read by the category-match guard. */
3
16
  export interface AmbiguousDropdownCategoryMatchItem {
4
17
  label?: string;
@@ -1,3 +1,16 @@
1
+ function assertAgentDocsConsistent(settings) {
2
+ if (settings.agentExport !== void 0 && typeof settings.agentExport !== "boolean") {
3
+ throw new TypeError("agentExport must be a boolean.");
4
+ }
5
+ if (settings.mcp !== void 0 && typeof settings.mcp !== "boolean") {
6
+ throw new TypeError("mcp must be a boolean.");
7
+ }
8
+ if (settings.mcp === true && settings.agentExport !== true) {
9
+ throw new TypeError(
10
+ "MCP requires agentExport: true. Remove the explicit agent export disable or disable MCP."
11
+ );
12
+ }
13
+ }
1
14
  function assertNoEmptyStringFaviconOrLogo(settings) {
2
15
  if (settings.logo === "") {
3
16
  throw new TypeError(
@@ -77,6 +90,7 @@ function warnAmbiguousDropdownCategoryMatch(headerNav, logger = console) {
77
90
  }
78
91
  }
79
92
  export {
93
+ assertAgentDocsConsistent,
80
94
  assertNoEmptyStringFaviconOrLogo,
81
95
  assertValidSearchMaxBodyLength,
82
96
  assertZdtpBundlingConsistent,
package/dist/config.d.ts CHANGED
@@ -15,8 +15,9 @@
15
15
  * }));
16
16
  * ```
17
17
  *
18
- * `zudoDoc()` SHALLOW-merges the user's fields over {@link DEFAULT_SETTINGS} —
19
- * top-level fields only (`{ ...DEFAULT_SETTINGS, ...user }`). A supplied nested
18
+ * `zudoDoc()` SHALLOW-merges the user's serializable settings fields over
19
+ * {@link DEFAULT_SETTINGS} — top-level fields only
20
+ * (`{ ...DEFAULT_SETTINGS, ...settingsOverrides }`). A supplied nested
20
21
  * object (e.g. `colorMode`, `metaTags`) REPLACES the default wholesale; it is
21
22
  * NOT deep-merged key-by-key. Nested config types that intentionally expose
22
23
  * optional keys (such as `FrontmatterPreviewConfig` and
@@ -31,12 +32,12 @@
31
32
  * host spreads nothing.
32
33
  *
33
34
  * ──────────────────────────────────────────────────────────────────────────
34
- * COMPOSITION MECHANISM (locked, #2653): JS object composition — NOT zfb-native
35
- * `presets:`. `zudoDoc()` builds the full `ZfbConfig` in JS and returns it
36
- * complete; the returned object carries **no `presets` field**. `zudoDocPreset()`
37
- * stays the internal fragment builder this calls (still exported at
38
- * `@takazudo/zudo-doc/preset` as an advanced escape hatch); its
39
- * collections/plugins/markdown logic is NOT reimplemented here.
35
+ * COMPOSITION MECHANISM (locked, #2653; wind exception locked by #4480):
36
+ * `zudoDoc()` builds the full `ZfbConfig` in JS. `zudoDocPreset()` stays the
37
+ * fragment builder for collections/plugins/markdown. Package wind defaults
38
+ * use one zfb-native `presets` entry so zfb can deep-merge a user's top-level
39
+ * `wind` override over the package fragment. No other config surface is
40
+ * delegated to native presets.
40
41
  *
41
42
  * ──────────────────────────────────────────────────────────────────────────
42
43
  * NODE-BUILTIN-FREE EVAL GRAPH (non-negotiable — guarded by a unit test)
@@ -45,10 +46,11 @@
45
46
  * (mirrors zfb's `loader.rs:277`); a transitive `node:*` import fails the load.
46
47
  * `zudoDoc()` is the new central node in that eval graph — it transitively pulls
47
48
  * in `preset.ts` plus every #2654 default module — so this module and all of
48
- * them MUST stay free of `node:*` builtins. `zod` is the only allowed runtime
49
- * dependency on this path (a required peer). The `ZfbConfig`/`BundleConfig`
50
- * imports from `@takazudo/zfb/config` are **type-only** (erased before esbuild
51
- * resolution), so they add nothing to the eval graph. The guard lives in
49
+ * them MUST stay free of `node:*` builtins. Runtime dependencies on this path
50
+ * are `zod` and zfb's `definePreset` helper (used by `wind/index.ts`); both
51
+ * are required peers with node-free config entry points. The `ZfbConfig`,
52
+ * `BundleConfig`, and `WindConfig` imports from `@takazudo/zfb/config` here are
53
+ * **type-only** (erased before esbuild resolution). The guard lives in
52
54
  * `src/__tests__/foundation-eval-graph.test.ts` (`config.ts` is in
53
55
  * `NODE_FREE_MODULES`).
54
56
  *
@@ -56,14 +58,15 @@
56
58
  * SERIALIZABILITY SPLIT
57
59
  * ──────────────────────────────────────────────────────────────────────────
58
60
  * The non-serializable / data overrides (`buildDocsSchema` fn, `colorSchemes`,
59
- * `translations`, `directives`, `tagVocabularyEntries`) and the shell fields
60
- * (`port`/`adapter`/`bundle`) are peeled off `user` up front so they never leak
61
+ * `translations`, `directives`, `tagVocabularyEntries`) and config passthrough
62
+ * fields (`port`/`adapter`/`bundle`/`wind`/`strictContentBridge`) are peeled
63
+ * off `user` up front so they never leak
61
64
  * into the merged `settings` object — only clean, JSON-serializable settings
62
65
  * ride into the routes plugin's virtual-module payload (exactly as
63
66
  * `zudoDocPreset()` does today). The function-valued/data overrides travel the
64
67
  * import-graph side (passed as `zudoDocPreset()` arguments, not serialized).
65
68
  */
66
- import type { ZfbConfig, BundleConfig } from "@takazudo/zfb/config";
69
+ import type { ZfbConfig, BundleConfig, WindConfig } from "@takazudo/zfb/config";
67
70
  import type { ZodType } from "zod";
68
71
  import type { DirectiveVocabulary, PresetTranslations, PresetTagVocabularyEntry } from "./preset.js";
69
72
  import type { ColorScheme } from "./color-scheme-utils.js";
@@ -80,7 +83,7 @@ type CodexResourcesConfig = {
80
83
  projectRoot?: string;
81
84
  scanRoot?: string;
82
85
  } | false;
83
- export declare const DEFAULT_SETTINGS: Settings;
86
+ export { DEFAULT_SETTINGS } from "./settings-defaults.js";
84
87
  export interface ZudoDocConfig {
85
88
  /**
86
89
  * Active color scheme name (must exist in `colorSchemes`).
@@ -291,6 +294,16 @@ export interface ZudoDocConfig {
291
294
  * @default false
292
295
  */
293
296
  llmsTxt?: boolean;
297
+ /**
298
+ * Generate the package-owned static agent documentation feed.
299
+ * @default false
300
+ */
301
+ agentExport?: boolean;
302
+ /**
303
+ * Enable the stateless read-only MCP endpoint. Requires `agentExport: true`.
304
+ * @default false
305
+ */
306
+ mcp?: boolean;
294
307
  /**
295
308
  * Changelog generation config(s), or `false` to disable.
296
309
  * @default false
@@ -606,6 +619,13 @@ export interface ZudoDocConfig {
606
619
  * @default undefined
607
620
  */
608
621
  bundle?: BundleConfig;
622
+ /**
623
+ * zudo-wind configuration override. Package defaults are supplied through
624
+ * a zfb preset and zfb recursively merges this user value over them; `false`
625
+ * disables wind generation.
626
+ * @default undefined (the zudo-doc preset defaults apply)
627
+ */
628
+ wind?: WindConfig | false;
609
629
  /**
610
630
  * Build-only gate that fails `zfb build` when a collection entry falls
611
631
  * back to `<pre data-zfb-content-fallback>` (mirrors zfb's
@@ -628,4 +648,3 @@ export interface ZudoDocConfig {
628
648
  * `defineConfig`.
629
649
  */
630
650
  export declare function zudoDoc(user?: ZudoDocConfig): ZfbConfig;
631
- export {};
package/dist/config.js CHANGED
@@ -7,7 +7,8 @@ import { assertNoCommaInVersionSlugs } from "./version-availability/index.js";
7
7
  import {
8
8
  assertNoEmptyStringFaviconOrLogo,
9
9
  assertZdtpBundlingConsistent,
10
- assertValidSearchMaxBodyLength
10
+ assertValidSearchMaxBodyLength,
11
+ assertAgentDocsConsistent
11
12
  } from "./config-assertions/index.js";
12
13
  import { validateAssetViewerSettings } from "./asset-path/index.js";
13
14
  function mergeDefaultTranslations(overrides) {
@@ -35,94 +36,18 @@ function assertValidAssetViewerSettings(dir, routePrefix) {
35
36
  );
36
37
  }
37
38
  }
38
- const DEFAULT_SETTINGS = {
39
- colorScheme: "Default Dark",
40
- colorMode: {
41
- defaultMode: "dark",
42
- lightScheme: "Default Light",
43
- darkScheme: "Default Dark",
44
- respectPrefersColorScheme: true
45
- },
46
- siteName: "Docs",
47
- siteDescription: "",
48
- logo: "auto",
49
- favicon: void 0,
50
- base: "/",
51
- trailingSlash: false,
52
- home: { wide: false, introMarkdown: "", sitemapHeading: "" },
53
- siteTreeNavIgnore: [],
54
- siteTreeNavSecondary: [],
55
- minifyHtml: true,
56
- docsDir: "src/content/docs",
57
- entryDocSlug: "getting-started",
58
- dateFormat: "locale",
59
- defaultLocale: "en",
60
- locales: {},
61
- mermaid: true,
62
- transclude: false,
63
- noindex: false,
64
- editUrl: false,
65
- githubUrl: false,
66
- siteUrl: "",
67
- metaTags: {
68
- description: true,
69
- keywords: false,
70
- ogImage: false,
71
- ogSiteName: true,
72
- twitterCard: false
73
- },
74
- sitemap: false,
75
- docMetainfo: false,
76
- docMetainfoFields: ["created", "updated", "author"],
77
- docTags: false,
78
- tagPlacement: "after-title",
79
- tagGovernance: "off",
80
- tagVocabulary: false,
81
- llmsTxt: false,
82
- changelogs: false,
83
- math: false,
84
- cjkFriendly: false,
85
- onBrokenMarkdownLinks: "warn",
86
- aiAssistant: false,
87
- aiChatDemoMode: false,
88
- aiChatAllowedOrigins: [],
89
- // Exact UTC-day paid-call admission cap; false disables it. An admission is
90
- // consumed before provider fetch and is not provider-confirmed accounting.
91
- aiChatGlobalDailyLimit: false,
92
- designTokenPanel: false,
93
- tocMinDepth: 2,
94
- tocMaxDepth: 4,
95
- searchMaxBodyLength: 3e3,
96
- sidebarResizer: false,
97
- sidebarToggle: false,
98
- tocToggle: false,
99
- imageEnlarge: false,
100
- findInPage: false,
101
- dynamicPageTransition: false,
102
- frontmatterPreview: false,
103
- docHistory: false,
104
- docHistoryUi: true,
105
- docHistoryExclude: [],
106
- assetViewer: false,
107
- assetViewerDir: "assets",
108
- assetViewerRoutePrefix: "files",
109
- assetViewerExclude: [],
110
- assetViewerIndex: false,
111
- assetViewerIndexing: false,
112
- bodyFootUtilArea: false,
113
- htmlPreview: void 0,
114
- versions: false,
115
- claudeResources: false,
116
- codexResources: false,
117
- defaultLocaleOnlyPrefixes: [],
118
- footer: false,
119
- headerNav: [],
120
- headerRightItems: [{ type: "component", component: "theme-toggle" }],
121
- packageOwnedRoutes: true,
122
- themePack: "default",
123
- themePackSwitcher: false,
124
- themePacks: void 0
125
- };
39
+ function withMcpMainFields(bundle, presetBundle) {
40
+ const mainFields = [...bundle?.mainFields ?? presetBundle?.mainFields ?? []];
41
+ if (!mainFields.includes("module")) mainFields.push("module");
42
+ if (!mainFields.includes("main")) mainFields.push("main");
43
+ return {
44
+ ...presetBundle,
45
+ ...bundle,
46
+ mainFields
47
+ };
48
+ }
49
+ import { DEFAULT_SETTINGS } from "./settings-defaults.js";
50
+ import { DEFAULT_SETTINGS as DEFAULT_SETTINGS2 } from "./settings-defaults.js";
126
51
  function zudoDoc(user = {}) {
127
52
  if ("headingIdStrategy" in user) {
128
53
  throw new TypeError(
@@ -138,6 +63,7 @@ function zudoDoc(user = {}) {
138
63
  port,
139
64
  adapter,
140
65
  bundle,
66
+ wind,
141
67
  strictContentBridge,
142
68
  buildDocsSchema: userBuildDocsSchema,
143
69
  colorSchemes: userColorSchemes,
@@ -146,7 +72,7 @@ function zudoDoc(user = {}) {
146
72
  tagVocabularyEntries: userTagVocabularyEntries,
147
73
  ...settingsOverrides
148
74
  } = user;
149
- const settings = { ...DEFAULT_SETTINGS, ...settingsOverrides };
75
+ const settings = { ...DEFAULT_SETTINGS2, ...settingsOverrides };
150
76
  assertValidAssetViewerSettings(
151
77
  settings.assetViewerDir,
152
78
  settings.assetViewerRoutePrefix
@@ -155,6 +81,7 @@ function zudoDoc(user = {}) {
155
81
  assertNoEmptyStringFaviconOrLogo(settings);
156
82
  assertZdtpBundlingConsistent(settings);
157
83
  assertValidSearchMaxBodyLength(settings.searchMaxBodyLength);
84
+ assertAgentDocsConsistent(settings);
158
85
  const fragment = zudoDocPreset({
159
86
  settings,
160
87
  buildDocsSchema: userBuildDocsSchema ?? (() => defaultBuildDocsSchema({
@@ -166,24 +93,25 @@ function zudoDoc(user = {}) {
166
93
  colorSchemes: userColorSchemes ?? defaultColorSchemes,
167
94
  tagVocabulary: userTagVocabularyEntries ?? []
168
95
  });
96
+ const { bundle: presetBundle, ...presetConfig } = fragment;
97
+ const resolvedBundle = settings.mcp === true ? withMcpMainFields(bundle, presetBundle) : bundle;
169
98
  return {
170
99
  // ── Host-owned shell fields ──────────────────────────────────────────
171
- framework: "preact",
172
100
  port: port ?? 4321,
173
- tailwind: { enabled: true },
174
101
  base: settings.base,
175
102
  ...adapter ? { adapter } : {},
176
- ...bundle ? { bundle } : {},
103
+ ...resolvedBundle ? { bundle: resolvedBundle } : {},
104
+ ...wind !== void 0 ? { wind } : {},
177
105
  ...strictContentBridge !== void 0 ? { strictContentBridge } : {},
178
106
  // ── Preset-owned fields (collections, plugins, markdown, …) ──────────
179
- ...fragment,
107
+ ...presetConfig,
180
108
  // The preset's `markdown.features` intentionally uses the loose Record
181
109
  // shape (the exact shape zfb's config shim binds against); the engine's
182
110
  // strict `MarkdownFeaturesConfig` is a structural subset of it. Every
183
111
  // other preset field type-checks against `ZfbConfig` directly, so only
184
112
  // `markdown` needs this single documented bridge — `satisfies ZfbConfig`
185
113
  // below keeps full strict checking on all the rest.
186
- markdown: fragment.markdown
114
+ markdown: presetConfig.markdown
187
115
  };
188
116
  }
189
117
  export {
@@ -1,6 +1,5 @@
1
1
  /** @jsxRuntime automatic */
2
- /** @jsxImportSource preact */
3
- import type { JSX } from "preact";
2
+ import type { JSX } from "@takazudo/zfb/zudo-react/jsx-runtime";
4
3
  type Props = JSX.IntrinsicElements["blockquote"];
5
- export declare function ContentBlockquote({ children, className, ...rest }: Props): JSX.Element;
4
+ export declare function ContentBlockquote({ children, class: klass, ...rest }: Props): import("@takazudo/zfb").Description;
6
5
  export {};
@@ -1,9 +1,9 @@
1
- import { jsx } from "preact/jsx-runtime";
2
- function ContentBlockquote({ children, className, ...rest }) {
1
+ import { jsx } from "@takazudo/zfb/zudo-react/jsx-runtime";
2
+ function ContentBlockquote({ children, class: klass, ...rest }) {
3
3
  return /* @__PURE__ */ jsx(
4
4
  "blockquote",
5
5
  {
6
- className: `border-l-[3px] border-muted pl-hsp-lg text-muted italic${className ? ` ${className}` : ""}`,
6
+ class: `border-l-[3px] border-muted pl-hsp-lg text-muted italic${klass ? ` ${klass}` : ""}`,
7
7
  ...rest,
8
8
  children
9
9
  }
@@ -1,6 +1,5 @@
1
1
  /** @jsxRuntime automatic */
2
- /** @jsxImportSource preact */
3
- import type { JSX } from "preact";
2
+ import type { JSX } from "@takazudo/zfb/zudo-react/jsx-runtime";
4
3
  type Props = JSX.IntrinsicElements["code"];
5
4
  /**
6
5
  * Override for inline `<code>` in MDX. Wraps text-only inline code with
@@ -12,10 +11,10 @@ type Props = JSX.IntrinsicElements["code"];
12
11
  * nodes (not a plain string). We detect those and render untouched so
13
12
  * syntax highlighting is never disturbed.
14
13
  *
15
- * Astro 6 passes pure-text MDX children wrapped in a `StaticHtml` Preact
14
+ * Legacy MDX may pass pure-text children wrapped in a `StaticHtml`
16
15
  * component whose text lives in `props.value`, not as a string child.
17
16
  * `extractText` unwraps that so the heuristic works regardless of MDX's
18
17
  * internal wrapping.
19
18
  */
20
- export declare function ContentCode({ children, className, ...rest }: Props): JSX.Element;
19
+ export declare function ContentCode({ children, class: klass, ...rest }: Props): import("@takazudo/zfb").Description;
21
20
  export {};
@@ -1,13 +1,13 @@
1
- import { jsx } from "preact/jsx-runtime";
1
+ import { jsx } from "@takazudo/zfb/zudo-react/jsx-runtime";
2
2
  import { SmartBreak as SmartBreakImpl } from "../smart-break/index.js";
3
3
  const SmartBreak = SmartBreakImpl;
4
- function ContentCode({ children, className, ...rest }) {
5
- const isShikiBlock = typeof className === "string" && /(^|\s)language-/.test(className);
4
+ function ContentCode({ children, class: klass, ...rest }) {
5
+ const isShikiBlock = typeof klass === "string" && /(^|\s)language-/.test(klass);
6
6
  const textFromChildren = isShikiBlock ? null : extractText(children);
7
7
  if (textFromChildren === null) {
8
- return /* @__PURE__ */ jsx("code", { className, ...rest, children });
8
+ return /* @__PURE__ */ jsx("code", { class: klass, ...rest, children });
9
9
  }
10
- return /* @__PURE__ */ jsx("code", { className, ...rest, children: /* @__PURE__ */ jsx(SmartBreak, { children: textFromChildren }) });
10
+ return /* @__PURE__ */ jsx("code", { class: klass, ...rest, children: /* @__PURE__ */ jsx(SmartBreak, { children: textFromChildren }) });
11
11
  }
12
12
  function extractText(children) {
13
13
  if (typeof children === "string") return children;
@@ -1,9 +1,8 @@
1
1
  /** @jsxRuntime automatic */
2
- /** @jsxImportSource preact */
3
- import type { JSX } from "preact";
2
+ import type { JSX } from "@takazudo/zfb/zudo-react/jsx-runtime";
4
3
  import type { AssetManifest } from "../route-context-payload/types.js";
5
4
  type Props = JSX.IntrinsicElements["a"];
6
- export declare function ContentLink({ href, className, children, ...rest }: Props): JSX.Element;
5
+ export declare function ContentLink({ href, class: klass, children, ...rest }: Props): import("@takazudo/zfb").Description;
7
6
  export interface CreateContentLinkOptions {
8
7
  base: string;
9
8
  assetManifest: AssetManifest | null;
@@ -18,5 +17,5 @@ export interface CreateContentLinkOptions {
18
17
  * Bind ContentLink to an asset manifest. Only exact manifest entries are
19
18
  * decorated and redirected; every other anchor follows ContentLink verbatim.
20
19
  */
21
- export declare function createContentLink({ base, assetManifest, routePrefix, dir, locale, isDefaultLocaleOnlyPath, }: CreateContentLinkOptions): (props: Props) => JSX.Element;
20
+ export declare function createContentLink({ base, assetManifest, routePrefix, dir, locale, isDefaultLocaleOnlyPath, }: CreateContentLinkOptions): (props: Props) => import("@takazudo/zfb").Description;
22
21
  export {};
@@ -1,12 +1,12 @@
1
- import { jsx, jsxs } from "preact/jsx-runtime";
1
+ import { jsx, jsxs } from "@takazudo/zfb/zudo-react/jsx-runtime";
2
2
  import { SmartBreak as SmartBreakBase } from "../smart-break/index.js";
3
3
  import { decodeAuthoredHref, assetViewerHref } from "../asset-path/index.js";
4
4
  import { AssetFileIcon, formatAssetBytes } from "../asset-components/index.js";
5
5
  const SmartBreak = SmartBreakBase;
6
- function ContentLink({ href, className, children, ...rest }) {
7
- const classes = typeof className === "string" ? className.split(" ") : [];
6
+ function ContentLink({ href, class: klass, children, ...rest }) {
7
+ const classes = typeof klass === "string" ? klass.split(" ") : [];
8
8
  if (classes.includes("block") || classes.includes("hash-link")) {
9
- return /* @__PURE__ */ jsx("a", { href, className, ...rest, children });
9
+ return /* @__PURE__ */ jsx("a", { href, class: klass, ...rest, children });
10
10
  }
11
11
  const textFromChildren = extractText(children);
12
12
  const content = textFromChildren !== null ? /* @__PURE__ */ jsx(SmartBreak, { children: textFromChildren }) : children;
@@ -14,7 +14,7 @@ function ContentLink({ href, className, children, ...rest }) {
14
14
  "a",
15
15
  {
16
16
  href,
17
- className: `text-accent underline hover:text-accent-hover${className ? ` ${className}` : ""}`,
17
+ class: `text-accent underline hover:text-accent-hover${klass ? ` ${klass}` : ""}`,
18
18
  ...rest,
19
19
  children: content
20
20
  }
@@ -29,8 +29,8 @@ function createContentLink({
29
29
  isDefaultLocaleOnlyPath
30
30
  }) {
31
31
  return function ManifestAwareContentLink(props) {
32
- const { href, className, children } = props;
33
- const classes = typeof className === "string" ? className.split(" ") : [];
32
+ const { href, class: klass, children } = props;
33
+ const classes = typeof klass === "string" ? klass.split(" ") : [];
34
34
  if (assetManifest === null || typeof href !== "string" || href.startsWith("#") || classes.includes("block") || classes.includes("hash-link")) {
35
35
  return /* @__PURE__ */ jsx(ContentLink, { ...props });
36
36
  }
@@ -48,10 +48,10 @@ function createContentLink({
48
48
  locale: isDefaultLocaleOnlyPath?.(`/${routePrefix}/${entry.path}`) ? void 0 : locale,
49
49
  fragment: decoded.fragment
50
50
  }),
51
- children: /* @__PURE__ */ jsxs("span", { className: "inline-flex items-baseline gap-x-hsp-xs font-mono", children: [
52
- /* @__PURE__ */ jsx(AssetFileIcon, { className: "h-icon-sm w-icon-sm shrink-0" }),
51
+ children: /* @__PURE__ */ jsxs("span", { class: "inline-flex items-baseline gap-x-hsp-xs font-mono", children: [
52
+ /* @__PURE__ */ jsx(AssetFileIcon, { class: "h-icon-sm w-icon-sm shrink-0" }),
53
53
  /* @__PURE__ */ jsx("span", { children }),
54
- /* @__PURE__ */ jsxs("span", { className: "text-caption text-muted", children: [
54
+ /* @__PURE__ */ jsxs("span", { class: "text-caption text-muted", children: [
55
55
  "(",
56
56
  formatAssetBytes(entry.bytes),
57
57
  ")"
@@ -1,6 +1,5 @@
1
1
  /** @jsxRuntime automatic */
2
- /** @jsxImportSource preact */
3
- import type { JSX } from "preact";
2
+ import type { JSX } from "@takazudo/zfb/zudo-react/jsx-runtime";
4
3
  type Props = JSX.IntrinsicElements["ol"];
5
- export declare function ContentOl({ children, className, ...rest }: Props): JSX.Element;
4
+ export declare function ContentOl({ children, class: klass, start, ...rest }: Props): import("@takazudo/zfb").Description;
6
5
  export {};
@@ -1,11 +1,12 @@
1
- import { jsx } from "preact/jsx-runtime";
2
- function ContentOl({ children, className, ...rest }) {
1
+ import { jsx } from "@takazudo/zfb/zudo-react/jsx-runtime";
2
+ function ContentOl({ children, class: klass, start, ...rest }) {
3
3
  return /* @__PURE__ */ jsx(
4
4
  "ol",
5
5
  {
6
6
  ...rest,
7
- className: className || void 0,
8
- style: { paddingLeft: "2em", listStyleType: "decimal" },
7
+ start,
8
+ class: klass || void 0,
9
+ style: { "padding-left": "2em", "list-style-type": "decimal" },
9
10
  children
10
11
  }
11
12
  );
@@ -1,6 +1,5 @@
1
1
  /** @jsxRuntime automatic */
2
- /** @jsxImportSource preact */
3
- import type { JSX } from "preact";
2
+ import type { JSX } from "@takazudo/zfb/zudo-react/jsx-runtime";
4
3
  type Props = JSX.IntrinsicElements["p"];
5
- export declare function ContentParagraph({ children, ...rest }: Props): JSX.Element;
4
+ export declare function ContentParagraph({ children, ...rest }: Props): import("@takazudo/zfb").Description;
6
5
  export {};
@@ -1,4 +1,4 @@
1
- import { jsx } from "preact/jsx-runtime";
1
+ import { jsx } from "@takazudo/zfb/zudo-react/jsx-runtime";
2
2
  function ContentParagraph({ children, ...rest }) {
3
3
  return /* @__PURE__ */ jsx("p", { ...rest, children });
4
4
  }
@@ -1,6 +1,5 @@
1
1
  /** @jsxRuntime automatic */
2
- /** @jsxImportSource preact */
3
- import type { JSX } from "preact";
2
+ import type { JSX } from "@takazudo/zfb/zudo-react/jsx-runtime";
4
3
  type Props = JSX.IntrinsicElements["strong"];
5
- export declare function ContentStrong({ children, className, ...rest }: Props): JSX.Element;
4
+ export declare function ContentStrong({ children, class: klass, ...rest }: Props): import("@takazudo/zfb").Description;
6
5
  export {};
@@ -1,9 +1,9 @@
1
- import { jsx } from "preact/jsx-runtime";
2
- function ContentStrong({ children, className, ...rest }) {
1
+ import { jsx } from "@takazudo/zfb/zudo-react/jsx-runtime";
2
+ function ContentStrong({ children, class: klass, ...rest }) {
3
3
  return /* @__PURE__ */ jsx(
4
4
  "strong",
5
5
  {
6
- className: `font-bold text-fg${className ? ` ${className}` : ""}`,
6
+ class: `font-bold text-fg${klass ? ` ${klass}` : ""}`,
7
7
  ...rest,
8
8
  children
9
9
  }
@@ -1,6 +1,5 @@
1
1
  /** @jsxRuntime automatic */
2
- /** @jsxImportSource preact */
3
- import type { JSX } from "preact";
2
+ import type { JSX } from "@takazudo/zfb/zudo-react/jsx-runtime";
4
3
  type Props = JSX.IntrinsicElements["table"];
5
- export declare function ContentTable({ children, className, ...rest }: Props): JSX.Element;
4
+ export declare function ContentTable({ children, class: klass, ...rest }: Props): import("@takazudo/zfb").Description;
6
5
  export {};
@@ -1,9 +1,9 @@
1
- import { jsx } from "preact/jsx-runtime";
2
- function ContentTable({ children, className, ...rest }) {
3
- return /* @__PURE__ */ jsx("div", { className: "overflow-x-auto", children: /* @__PURE__ */ jsx(
1
+ import { jsx } from "@takazudo/zfb/zudo-react/jsx-runtime";
2
+ function ContentTable({ children, class: klass, ...rest }) {
3
+ return /* @__PURE__ */ jsx("div", { class: "overflow-x-auto", children: /* @__PURE__ */ jsx(
4
4
  "table",
5
5
  {
6
- className: `w-full border-collapse text-small${className ? ` ${className}` : ""}`,
6
+ class: `w-full border-collapse text-small${klass ? ` ${klass}` : ""}`,
7
7
  ...rest,
8
8
  children
9
9
  }
@@ -1,6 +1,5 @@
1
1
  /** @jsxRuntime automatic */
2
- /** @jsxImportSource preact */
3
- import type { JSX } from "preact";
2
+ import type { JSX } from "@takazudo/zfb/zudo-react/jsx-runtime";
4
3
  type Props = JSX.IntrinsicElements["ul"];
5
- export declare function ContentUl({ children, className, ...rest }: Props): JSX.Element;
4
+ export declare function ContentUl({ children, class: klass, ...rest }: Props): import("@takazudo/zfb").Description;
6
5
  export {};
@@ -1,11 +1,11 @@
1
- import { jsx } from "preact/jsx-runtime";
2
- function ContentUl({ children, className, ...rest }) {
1
+ import { jsx } from "@takazudo/zfb/zudo-react/jsx-runtime";
2
+ function ContentUl({ children, class: klass, ...rest }) {
3
3
  return /* @__PURE__ */ jsx(
4
4
  "ul",
5
5
  {
6
6
  ...rest,
7
- className: className || void 0,
8
- style: { paddingLeft: "2em", listStyleType: "disc" },
7
+ class: klass || void 0,
8
+ style: { "padding-left": "2em", "list-style-type": "disc" },
9
9
  children
10
10
  }
11
11
  );
@@ -1,6 +1,5 @@
1
1
  /** @jsxRuntime automatic */
2
- /** @jsxImportSource preact */
3
- import type { JSX } from "preact";
2
+ import type { JSX } from "@takazudo/zfb/zudo-react/jsx-runtime";
4
3
  type Props = JSX.IntrinsicElements["h2"];
5
- export declare function HeadingH2({ id, children, className, ...rest }: Props): JSX.Element;
4
+ export declare function HeadingH2({ id, children, class: klass, ...rest }: Props): import("@takazudo/zfb").Description;
6
5
  export {};