@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
@@ -1,5 +1,5 @@
1
1
  /** Minimal shape the active-path resolver needs from a header nav item. */
2
- interface NavItemLike {
2
+ export interface NavItemLike {
3
3
  path: string;
4
4
  /**
5
5
  * The "big category" this nav entry claims (mirrors the host's
@@ -24,14 +24,14 @@ interface NavItemLike {
24
24
  * pathForMatch("/docs/intro", "en", "en") === "/docs/intro"
25
25
  * pathForMatch(null, "ja", "en") === ""
26
26
  */
27
- declare function pathForMatch(pathWithoutBase: string, lang: string | undefined, defaultLocale: string): string;
28
- declare function computeActiveNavPath(navItems: readonly NavItemLike[], pathForMatchValue: string): string | undefined;
27
+ export declare function pathForMatch(pathWithoutBase: string, lang: string | undefined, defaultLocale: string): string;
28
+ export declare function computeActiveNavPath(navItems: readonly NavItemLike[], pathForMatchValue: string): string | undefined;
29
29
  /**
30
30
  * Active-state predicate for a top-level nav item: the item itself, or
31
31
  * any of its children, matches the active path. Mirrors the inline
32
32
  * `isNavItemActive` helper in the legacy template.
33
33
  */
34
- declare function isNavItemActive(item: NavItemLike, activeNavPath: string | undefined): boolean;
34
+ export declare function isNavItemActive(item: NavItemLike, activeNavPath: string | undefined): boolean;
35
35
  /**
36
36
  * Category-based active-state predicate. A nav entry is active when its
37
37
  * own `categoryMatch` equals the page's resolved big category
@@ -49,6 +49,4 @@ declare function isNavItemActive(item: NavItemLike, activeNavPath: string | unde
49
49
  * `children` of its own, so the call collapses to a single
50
50
  * `categoryMatch` comparison.
51
51
  */
52
- declare function isNavItemActiveByCategory(item: NavItemLike, activeCategory: string | undefined): boolean;
53
-
54
- export { type NavItemLike, computeActiveNavPath, isNavItemActive, isNavItemActiveByCategory, pathForMatch };
52
+ export declare function isNavItemActiveByCategory(item: NavItemLike, activeCategory: string | undefined): boolean;
@@ -1,3 +1 @@
1
- declare const NAV_OVERFLOW_SCRIPT: string;
2
-
3
- export { NAV_OVERFLOW_SCRIPT };
1
+ export declare const NAV_OVERFLOW_SCRIPT: string;
@@ -1,5 +1,4 @@
1
- import { HeaderRightItem } from './types.js';
2
-
1
+ import type { HeaderRightItem } from "./types.js";
3
2
  /**
4
3
  * Runtime gates for `filterHeaderRightItems`.
5
4
  *
@@ -14,7 +13,7 @@ import { HeaderRightItem } from './types.js';
14
13
  * - `hasVersions` — `Boolean(settings.versions)`
15
14
  * - `hasGithubUrl` — `Boolean(settings.githubUrl)`
16
15
  */
17
- interface HeaderRightItemFlags {
16
+ export interface HeaderRightItemFlags {
18
17
  designTokenPanel: boolean;
19
18
  aiAssistant: boolean;
20
19
  colorMode: boolean;
@@ -29,6 +28,4 @@ interface HeaderRightItemFlags {
29
28
  * Items not gated by any flag (links, raw HTML, version-switcher when
30
29
  * versions are configured, search, …) pass through untouched.
31
30
  */
32
- declare function filterHeaderRightItems(items: HeaderRightItem[], flags: HeaderRightItemFlags): HeaderRightItem[];
33
-
34
- export { type HeaderRightItemFlags, filterHeaderRightItems };
31
+ export declare function filterHeaderRightItems(items: HeaderRightItem[], flags: HeaderRightItemFlags): HeaderRightItem[];
@@ -4,37 +4,35 @@
4
4
  * package can render for any project's locale set without a generic
5
5
  * parameter (super-epic #1724, sub-issue #1729).
6
6
  */
7
- type Locale = string;
8
- interface HeaderNavChildItem {
7
+ export type Locale = string;
8
+ export interface HeaderNavChildItem {
9
9
  label: string;
10
10
  labelKey?: string;
11
11
  path: string;
12
12
  categoryMatch?: string;
13
13
  }
14
- interface HeaderNavItem extends HeaderNavChildItem {
14
+ export interface HeaderNavItem extends HeaderNavChildItem {
15
15
  children?: HeaderNavChildItem[];
16
16
  }
17
- type HeaderRightComponentName = "theme-toggle" | "language-switcher" | "version-switcher" | "github-link" | "search";
18
- type HeaderRightTriggerName = "design-token-panel" | "ai-chat";
19
- interface HeaderRightComponentItem {
17
+ export type HeaderRightComponentName = "theme-toggle" | "language-switcher" | "version-switcher" | "github-link" | "search";
18
+ export type HeaderRightTriggerName = "design-token-panel" | "ai-chat";
19
+ export interface HeaderRightComponentItem {
20
20
  type: "component";
21
21
  component: HeaderRightComponentName;
22
22
  }
23
- interface HeaderRightTriggerItem {
23
+ export interface HeaderRightTriggerItem {
24
24
  type: "trigger";
25
25
  trigger: HeaderRightTriggerName;
26
26
  }
27
- interface HeaderRightLinkItem {
27
+ export interface HeaderRightLinkItem {
28
28
  type: "link";
29
29
  href: string;
30
30
  label?: string;
31
31
  ariaLabel?: string;
32
32
  icon?: "github";
33
33
  }
34
- interface HeaderRightHtmlItem {
34
+ export interface HeaderRightHtmlItem {
35
35
  type: "html";
36
36
  html: string;
37
37
  }
38
- type HeaderRightItem = HeaderRightComponentItem | HeaderRightTriggerItem | HeaderRightLinkItem | HeaderRightHtmlItem;
39
-
40
- export type { HeaderNavChildItem, HeaderNavItem, HeaderRightComponentItem, HeaderRightComponentName, HeaderRightHtmlItem, HeaderRightItem, HeaderRightLinkItem, HeaderRightTriggerItem, HeaderRightTriggerName, Locale };
38
+ export type HeaderRightItem = HeaderRightComponentItem | HeaderRightTriggerItem | HeaderRightLinkItem | HeaderRightHtmlItem;
@@ -0,0 +1,77 @@
1
+ /** @jsxRuntime automatic */
2
+ /** @jsxImportSource preact */
3
+ import type { JSX } from "preact";
4
+ import type { SidebarNavNode, SidebarRootMenuItem } from "../sidebar/types.js";
5
+ import type { LocaleLink } from "../url-helpers/index.js";
6
+ export interface HeaderWithDefaultsProps {
7
+ /** Active locale; defaults to the configured defaultLocale. */
8
+ lang?: string;
9
+ /** Current page URL path. Used to compute the active nav item. */
10
+ currentPath?: string;
11
+ /** Active version slug, when rendering inside /v/{version}/... routes. */
12
+ currentVersion?: string;
13
+ /** Slug of the active doc page. */
14
+ currentSlug?: string;
15
+ /** Header-nav category matcher used to scope the sidebar tree. */
16
+ navSection?: string;
17
+ }
18
+ /** Version config entry subset the factory reads. */
19
+ export interface HeaderVersionEntry {
20
+ slug: string;
21
+ label?: string;
22
+ }
23
+ /** Settings subset read by {@link createHeaderWithDefaults}. */
24
+ export interface HeaderWithDefaultsSettings {
25
+ siteName: string;
26
+ headerNav: Array<{
27
+ label: string;
28
+ labelKey?: string;
29
+ path: string;
30
+ categoryMatch?: string;
31
+ children?: Array<{
32
+ label: string;
33
+ labelKey?: string;
34
+ path: string;
35
+ }>;
36
+ }>;
37
+ headerRightItems?: unknown[];
38
+ designTokenPanel?: boolean;
39
+ aiAssistant?: boolean;
40
+ colorMode?: {
41
+ defaultMode?: string;
42
+ } | null | false;
43
+ locales: Record<string, unknown>;
44
+ versions?: HeaderVersionEntry[] | false;
45
+ githubUrl?: string | false;
46
+ }
47
+ /** Dependencies injected by the host stub. */
48
+ export interface HeaderWithDefaultsDeps {
49
+ settings: HeaderWithDefaultsSettings;
50
+ defaultLocale: string;
51
+ locales: readonly string[];
52
+ t: (key: string, lang: string) => string;
53
+ withBase: (path: string) => string;
54
+ stripBase: (path: string) => string;
55
+ docsUrl: (slug: string, lang: string) => string;
56
+ navHref: (path: string, lang: string | undefined, version: string | undefined) => string;
57
+ versionedDocsUrl: (slug: string, versionSlug: string, lang: string) => string;
58
+ buildLocaleLinksForNav: (currentPath: string, lang: string, localeCount: number) => LocaleLink[] | undefined;
59
+ buildRootMenuItems: (lang: string, currentVersion: string | undefined) => SidebarRootMenuItem[];
60
+ buildSidebarNodes: (lang: string, navSection: string | undefined, currentVersion: string | undefined) => SidebarNavNode[];
61
+ getThemeDefaultMode: () => "light" | "dark" | undefined;
62
+ buildGitHubRepoUrl: () => string | null;
63
+ SearchWidget: (props: {
64
+ placeholderText: string;
65
+ shortcutHint: string;
66
+ resultCountTemplate: string;
67
+ searchLabel: string;
68
+ searchUnavailableText: string;
69
+ loadingIndexText: string;
70
+ noResultsText: string;
71
+ }) => JSX.Element;
72
+ }
73
+ /**
74
+ * Create a `HeaderWithDefaults` component bound to the host's settings
75
+ * and data-prep utilities.
76
+ */
77
+ export declare function createHeaderWithDefaults(deps: HeaderWithDefaultsDeps): (props: HeaderWithDefaultsProps) => JSX.Element;
@@ -0,0 +1,163 @@
1
+ import { jsx } from "preact/jsx-runtime";
2
+ import { Island } from "@takazudo/zfb";
3
+ import { Header, filterHeaderRightItems } from "../header/index.js";
4
+ import {
5
+ LanguageSwitcher,
6
+ VersionSwitcher
7
+ } from "../i18n-version/index.js";
8
+ import { ThemeToggle } from "../theme-toggle/index.js";
9
+ import { SidebarToggle } from "../sidebar-toggle-island/index.js";
10
+ function createHeaderWithDefaults(deps) {
11
+ const {
12
+ settings,
13
+ defaultLocale,
14
+ locales,
15
+ t,
16
+ withBase,
17
+ stripBase,
18
+ docsUrl,
19
+ navHref,
20
+ versionedDocsUrl,
21
+ buildLocaleLinksForNav,
22
+ buildRootMenuItems,
23
+ buildSidebarNodes,
24
+ getThemeDefaultMode,
25
+ buildGitHubRepoUrl,
26
+ SearchWidget
27
+ } = deps;
28
+ function HeaderWithDefaults(props) {
29
+ const {
30
+ lang: langProp = defaultLocale,
31
+ currentPath = "",
32
+ currentVersion,
33
+ currentSlug,
34
+ navSection
35
+ } = props;
36
+ const lang = langProp;
37
+ const rootMenuItems = buildRootMenuItems(lang, currentVersion);
38
+ const backToMenuLabel = t("nav.backToMenu", lang);
39
+ const localeLinks = buildLocaleLinksForNav(currentPath, lang, locales.length);
40
+ const themeDefaultMode = getThemeDefaultMode();
41
+ const sidebarNodes = buildSidebarNodes(lang, navSection, currentVersion);
42
+ const sidebarToggle = Island({
43
+ when: "visible",
44
+ children: /* @__PURE__ */ jsx(
45
+ SidebarToggle,
46
+ {
47
+ nodes: sidebarNodes,
48
+ currentSlug,
49
+ rootMenuItems,
50
+ backToMenuLabel,
51
+ localeLinks,
52
+ themeDefaultMode
53
+ }
54
+ )
55
+ });
56
+ const themeToggle = Island({
57
+ when: "load",
58
+ children: /* @__PURE__ */ jsx(ThemeToggle, { defaultMode: themeDefaultMode })
59
+ });
60
+ const searchWidget = /* @__PURE__ */ jsx(
61
+ SearchWidget,
62
+ {
63
+ placeholderText: t("search.placeholder", lang),
64
+ shortcutHint: t("search.shortcutHint", lang),
65
+ resultCountTemplate: t("search.resultCount", lang),
66
+ searchLabel: t("search.label", lang),
67
+ searchUnavailableText: t("search.unavailable", lang),
68
+ loadingIndexText: t("search.loadingIndex", lang),
69
+ noResultsText: t("search.noResults", lang)
70
+ }
71
+ );
72
+ let versionSwitcher;
73
+ if (settings.versions && settings.versions.length > 0) {
74
+ const isNonDefaultLocale = lang !== defaultLocale;
75
+ const versionsPageUrl = withBase(
76
+ isNonDefaultLocale ? `/${lang}/docs/versions` : "/docs/versions"
77
+ );
78
+ const latestUrl = currentSlug != null ? docsUrl(currentSlug, lang) : versionsPageUrl;
79
+ const versionUrls = {};
80
+ for (const v of settings.versions) {
81
+ versionUrls[v.slug] = currentSlug != null ? versionedDocsUrl(currentSlug, v.slug, lang) : versionsPageUrl;
82
+ }
83
+ const labels = {
84
+ latest: t("version.latest", lang),
85
+ switcher: t("version.switcher.label", lang),
86
+ unavailable: t("version.switcher.unavailable", lang),
87
+ allVersions: t("version.switcher.allVersions", lang)
88
+ };
89
+ versionSwitcher = /* @__PURE__ */ jsx(
90
+ VersionSwitcher,
91
+ {
92
+ versions: settings.versions.map((v) => ({
93
+ slug: v.slug,
94
+ label: v.label ?? v.slug
95
+ })),
96
+ currentVersion,
97
+ latestUrl,
98
+ versionsPageUrl,
99
+ versionUrls,
100
+ labels,
101
+ idSuffix: "header"
102
+ }
103
+ );
104
+ }
105
+ const languageSwitcher = localeLinks != null ? /* @__PURE__ */ jsx(
106
+ LanguageSwitcher,
107
+ {
108
+ links: localeLinks
109
+ }
110
+ ) : void 0;
111
+ const persistKey = `header-${lang}`;
112
+ const headerRightItems = filterHeaderRightItems(
113
+ settings.headerRightItems ?? [],
114
+ {
115
+ designTokenPanel: Boolean(settings.designTokenPanel),
116
+ aiAssistant: Boolean(settings.aiAssistant),
117
+ colorMode: Boolean(settings.colorMode),
118
+ hasLocales: Object.keys(settings.locales).length > 0,
119
+ hasVersions: Boolean(settings.versions),
120
+ hasGithubUrl: Boolean(settings.githubUrl)
121
+ }
122
+ );
123
+ const githubRepoUrl = buildGitHubRepoUrl();
124
+ const githubLabel = t("header.github", lang);
125
+ return /* @__PURE__ */ jsx(
126
+ Header,
127
+ {
128
+ lang,
129
+ currentPath,
130
+ currentVersion,
131
+ activeCategory: navSection,
132
+ sidebarToggle,
133
+ themeToggle,
134
+ search: searchWidget,
135
+ versionSwitcher,
136
+ languageSwitcher,
137
+ persistKey,
138
+ siteName: settings.siteName,
139
+ headerNav: settings.headerNav,
140
+ headerRightItems,
141
+ colorModeEnabled: Boolean(settings.colorMode),
142
+ hasLocales: locales.length > 1,
143
+ hasVersions: Boolean(settings.versions),
144
+ githubRepoUrl,
145
+ githubLabel,
146
+ urlHelpers: {
147
+ withBase,
148
+ stripBase,
149
+ navHref: (path, l, v) => navHref(path, l, v)
150
+ },
151
+ i18n: {
152
+ defaultLocale,
153
+ locales,
154
+ t
155
+ }
156
+ }
157
+ );
158
+ }
159
+ return HeaderWithDefaults;
160
+ }
161
+ export {
162
+ createHeaderWithDefaults
163
+ };
@@ -5,6 +5,4 @@
5
5
  * Copied from src/utils/dedent.ts so the v2 package has no upward dependency
6
6
  * on the host project's source.
7
7
  */
8
- declare function dedent(text: string): string;
9
-
10
- export { dedent };
8
+ export declare function dedent(text: string): string;
@@ -1,9 +1,7 @@
1
- import { VNode } from 'preact';
2
-
3
1
  /** @jsxRuntime automatic */
4
2
  /** @jsxImportSource preact */
5
-
6
- interface HighlightedCodeProps {
3
+ import type { VNode } from "preact";
4
+ export interface HighlightedCodeProps {
7
5
  code: string;
8
6
  language: string;
9
7
  }
@@ -13,6 +11,4 @@ interface HighlightedCodeProps {
13
11
  *
14
12
  * JSX port of src/components/html-preview/highlighted-code.tsx.
15
13
  */
16
- declare function HighlightedCode({ code, language, }: HighlightedCodeProps): VNode;
17
-
18
- export { HighlightedCode, type HighlightedCodeProps };
14
+ export declare function HighlightedCode({ code, language, }: HighlightedCodeProps): VNode;
@@ -1,14 +1,12 @@
1
- import { VNode } from 'preact';
2
-
3
1
  /** @jsxRuntime automatic */
4
2
  /** @jsxImportSource preact */
5
-
3
+ import type { VNode } from "preact";
6
4
  /**
7
5
  * Global HTML preview configuration. Mirrors the `settings.htmlPreview`
8
6
  * shape from the host project so callers can pass the resolved config
9
7
  * object directly.
10
8
  */
11
- interface HtmlPreviewGlobalConfig {
9
+ export interface HtmlPreviewGlobalConfig {
12
10
  /** CSS appended to every preview iframe (e.g. global component library styles). */
13
11
  css?: string;
14
12
  /** HTML injected into the `<head>` of every preview iframe. */
@@ -16,7 +14,7 @@ interface HtmlPreviewGlobalConfig {
16
14
  /** JavaScript appended to every preview iframe's `<body>`. */
17
15
  js?: string;
18
16
  }
19
- interface HtmlPreviewWrapperProps {
17
+ export interface HtmlPreviewWrapperProps {
20
18
  /**
21
19
  * Site-wide HTML preview configuration (resolved from
22
20
  * `settings.htmlPreview` by the caller). When provided, its
@@ -83,8 +81,8 @@ interface HtmlPreviewWrapperProps {
83
81
  * (`HtmlPreviewWrapperInner`) and is exported, so the marker resolves to
84
82
  * THIS bare component and the bundle hydrates it in-place.
85
83
  */
86
- declare function HtmlPreviewWrapperInner(props: HtmlPreviewWrapperProps): VNode;
87
- declare namespace HtmlPreviewWrapperInner {
84
+ export declare function HtmlPreviewWrapperInner(props: HtmlPreviewWrapperProps): VNode;
85
+ export declare namespace HtmlPreviewWrapperInner {
88
86
  var displayName: string;
89
87
  }
90
88
  /**
@@ -103,6 +101,4 @@ declare namespace HtmlPreviewWrapperInner {
103
101
  * `HtmlPreview: HtmlPreviewWrapper` keep working (and now hydrate correctly)
104
102
  * with no call-site change.
105
103
  */
106
- declare function HtmlPreviewWrapper(props: HtmlPreviewWrapperProps): VNode;
107
-
108
- export { type HtmlPreviewGlobalConfig, HtmlPreviewWrapper, HtmlPreviewWrapperInner, type HtmlPreviewWrapperProps };
104
+ export declare function HtmlPreviewWrapper(props: HtmlPreviewWrapperProps): VNode;
@@ -1,9 +1,7 @@
1
- import { VNode } from 'preact';
2
-
3
1
  /** @jsxRuntime automatic */
4
2
  /** @jsxImportSource preact */
5
-
6
- interface HtmlPreviewProps {
3
+ import type { VNode } from "preact";
4
+ export interface HtmlPreviewProps {
7
5
  html: string;
8
6
  css?: string;
9
7
  head?: string;
@@ -39,7 +37,7 @@ interface HtmlPreviewProps {
39
37
  /** Per-component js for code block display (before global merge) */
40
38
  componentJs?: string;
41
39
  }
42
- declare function containsScript(head?: string, js?: string): boolean;
40
+ export declare function containsScript(head?: string, js?: string): boolean;
43
41
  /**
44
42
  * Resolve the iframe `sandbox` attribute value.
45
43
  *
@@ -58,7 +56,7 @@ declare function containsScript(head?: string, js?: string): boolean;
58
56
  * author-trusted MDX. See {@link HtmlPreviewProps.sandbox} for the downstream
59
57
  * trust note.
60
58
  */
61
- declare function resolveSandbox(sandbox: string | undefined, hasScripts: boolean): string;
59
+ export declare function resolveSandbox(sandbox: string | undefined, hasScripts: boolean): string;
62
60
  /**
63
61
  * HTML preview widget — renders an isolated iframe with viewport
64
62
  * controls and a collapsible code section.
@@ -71,6 +69,4 @@ declare function resolveSandbox(sandbox: string | undefined, hasScripts: boolean
71
69
  * Astro, or wire up the SSR-skip placeholder pattern for non-Astro
72
70
  * consumers.
73
71
  */
74
- declare function HtmlPreview({ html, css, head, js, title, height, defaultOpen, sandbox, componentCss, componentHead, componentJs, }: HtmlPreviewProps): VNode;
75
-
76
- export { HtmlPreview, type HtmlPreviewProps, containsScript, resolveSandbox };
72
+ export declare function HtmlPreview({ html, css, head, js, title, height, defaultOpen, sandbox, componentCss, componentHead, componentJs, }: HtmlPreviewProps): VNode;
@@ -1,5 +1,8 @@
1
- export { HtmlPreviewGlobalConfig, HtmlPreviewWrapper, HtmlPreviewWrapperInner, HtmlPreviewWrapperProps } from './html-preview-wrapper.js';
2
- export { HtmlPreview, HtmlPreviewProps } from './html-preview.js';
3
- export { CodeBlockData, PreviewBase, PreviewBaseProps } from './preview-base.js';
4
- export { HighlightedCode, HighlightedCodeProps } from './highlighted-code.js';
5
- import 'preact';
1
+ export { HtmlPreviewWrapper, HtmlPreviewWrapperInner, } from "./html-preview-wrapper.js";
2
+ export type { HtmlPreviewWrapperProps, HtmlPreviewGlobalConfig, } from "./html-preview-wrapper.js";
3
+ export { HtmlPreview } from "./html-preview.js";
4
+ export type { HtmlPreviewProps } from "./html-preview.js";
5
+ export { PreviewBase } from "./preview-base.js";
6
+ export type { PreviewBaseProps, CodeBlockData } from "./preview-base.js";
7
+ export { HighlightedCode } from "./highlighted-code.js";
8
+ export type { HighlightedCodeProps } from "./highlighted-code.js";
@@ -8,6 +8,4 @@
8
8
  * Copied verbatim from src/components/html-preview/preflight.ts so the
9
9
  * v2 package has no upward dependency on the host project's source.
10
10
  */
11
- declare const preflightCss = "\n*,\n::after,\n::before,\n::backdrop,\n::file-selector-button {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n}\n\nhtml,\n:host {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n font-family: ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';\n -webkit-tap-highlight-color: transparent;\n}\n\nhr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n}\n\nabbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\n\nh1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n}\n\na {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n}\n\nb, strong {\n font-weight: bolder;\n}\n\ncode, kbd, samp, pre {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;\n font-size: 1em;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub, sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub { bottom: -0.25em; }\nsup { top: -0.5em; }\n\ntable {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n}\n\nol, ul, menu {\n list-style: none;\n}\n\nimg, svg, video, canvas, audio, iframe, embed, object {\n display: block;\n vertical-align: middle;\n}\n\nimg, video {\n max-width: 100%;\n height: auto;\n}\n\nbutton, input, select, optgroup, textarea, ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n}\n\ntextarea {\n resize: vertical;\n}\n\n[hidden]:where(:not([hidden='until-found'])) {\n display: none !important;\n}\n";
12
-
13
- export { preflightCss };
11
+ export declare const preflightCss = "\n*,\n::after,\n::before,\n::backdrop,\n::file-selector-button {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n}\n\nhtml,\n:host {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n font-family: ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';\n -webkit-tap-highlight-color: transparent;\n}\n\nhr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n}\n\nabbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\n\nh1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n}\n\na {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n}\n\nb, strong {\n font-weight: bolder;\n}\n\ncode, kbd, samp, pre {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;\n font-size: 1em;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub, sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub { bottom: -0.25em; }\nsup { top: -0.5em; }\n\ntable {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n}\n\nol, ul, menu {\n list-style: none;\n}\n\nimg, svg, video, canvas, audio, iframe, embed, object {\n display: block;\n vertical-align: middle;\n}\n\nimg, video {\n max-width: 100%;\n height: auto;\n}\n\nbutton, input, select, optgroup, textarea, ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n}\n\ntextarea {\n resize: vertical;\n}\n\n[hidden]:where(:not([hidden='until-found'])) {\n display: none !important;\n}\n";
@@ -1,14 +1,12 @@
1
- import { VNode } from 'preact';
2
-
3
1
  /** @jsxRuntime automatic */
4
2
  /** @jsxImportSource preact */
5
-
6
- interface CodeBlockData {
3
+ import type { VNode } from "preact";
4
+ export interface CodeBlockData {
7
5
  language: string;
8
6
  title: string;
9
7
  code: string;
10
8
  }
11
- interface PreviewBaseProps {
9
+ export interface PreviewBaseProps {
12
10
  title?: string;
13
11
  height?: number;
14
12
  srcdoc: string;
@@ -24,6 +22,4 @@ interface PreviewBaseProps {
24
22
  * JSX port of src/components/html-preview/preview-base.tsx with
25
23
  * React → Preact hook imports and `className` → `class` attribute.
26
24
  */
27
- declare function PreviewBase({ title, height, srcdoc, sandbox, syncDelay, codeBlocks, defaultOpen, }: PreviewBaseProps): VNode;
28
-
29
- export { type CodeBlockData, PreviewBase, type PreviewBaseProps };
25
+ export declare function PreviewBase({ title, height, srcdoc, sandbox, syncDelay, codeBlocks, defaultOpen, }: PreviewBaseProps): VNode;
@@ -1,5 +1,7 @@
1
- export { LanguageSwitcher, LanguageSwitcherProps } from './language-switcher.js';
2
- export { VERSION_SWITCHER_INIT_SCRIPT, VERSION_SWITCHER_VISIBILITY_STYLE, VersionSwitcher, VersionSwitcherProps } from './version-switcher.js';
3
- export { VersionBanner, VersionBannerLabels, VersionBannerProps } from './version-banner.js';
4
- export { LocaleLink, VersionEntry, VersionSwitcherLabels } from './types.js';
5
- import 'preact';
1
+ export { LanguageSwitcher } from "./language-switcher.js";
2
+ export type { LanguageSwitcherProps } from "./language-switcher.js";
3
+ export { VersionSwitcher, VERSION_SWITCHER_INIT_SCRIPT, VERSION_SWITCHER_VISIBILITY_STYLE, } from "./version-switcher.js";
4
+ export type { VersionSwitcherProps } from "./version-switcher.js";
5
+ export { VersionBanner } from "./version-banner.js";
6
+ export type { VersionBannerProps, VersionBannerLabels } from "./version-banner.js";
7
+ export type { LocaleLink, VersionEntry, VersionSwitcherLabels, } from "./types.js";
@@ -1,10 +1,8 @@
1
- import { VNode } from 'preact';
2
- import { LocaleLink } from './types.js';
3
-
4
1
  /** @jsxRuntime automatic */
5
2
  /** @jsxImportSource preact */
6
-
7
- interface LanguageSwitcherProps {
3
+ import type { VNode } from "preact";
4
+ import type { LocaleLink } from "./types.js";
5
+ export interface LanguageSwitcherProps {
8
6
  /**
9
7
  * Pre-built locale links, ordered as they should appear in the bar.
10
8
  * The host project typically derives this with its own
@@ -19,6 +17,5 @@ interface LanguageSwitcherProps {
19
17
  * template's `localeLinks.length > 1 &&` guard so call-sites can mount
20
18
  * the component unconditionally).
21
19
  */
22
- declare function LanguageSwitcher({ links }: LanguageSwitcherProps): VNode | null;
23
-
24
- export { LanguageSwitcher, type LanguageSwitcherProps, LocaleLink };
20
+ export declare function LanguageSwitcher({ links }: LanguageSwitcherProps): VNode | null;
21
+ export type { LocaleLink };
@@ -4,7 +4,7 @@
4
4
  * Mirrors the shape of `LocaleLink` from src/types/locale.ts so existing
5
5
  * call-sites can pass their already-built links straight through.
6
6
  */
7
- interface LocaleLink {
7
+ export interface LocaleLink {
8
8
  /** BCP-47 code, e.g. "en", "ja". Rendered as the anchor's `lang` attribute. */
9
9
  code: string;
10
10
  /** Display label (typically the uppercased code). */
@@ -20,7 +20,7 @@ interface LocaleLink {
20
20
  * Slug is the URL-segment identifier; label is the user-visible string
21
21
  * (e.g. "v2.0", "1.x").
22
22
  */
23
- interface VersionEntry {
23
+ export interface VersionEntry {
24
24
  slug: string;
25
25
  label: string;
26
26
  }
@@ -29,7 +29,7 @@ interface VersionEntry {
29
29
  * than wired to a host-side i18n module so the v2 package stays
30
30
  * locale-system agnostic.
31
31
  */
32
- interface VersionSwitcherLabels {
32
+ export interface VersionSwitcherLabels {
33
33
  /** Label for the "latest" entry, e.g. "Latest" / "最新". */
34
34
  latest: string;
35
35
  /** Trigger-button prefix, e.g. "Version" / "バージョン". */
@@ -39,5 +39,3 @@ interface VersionSwitcherLabels {
39
39
  /** Footer link label, e.g. "All versions". */
40
40
  allVersions: string;
41
41
  }
42
-
43
- export type { LocaleLink, VersionEntry, VersionSwitcherLabels };
@@ -1,15 +1,13 @@
1
- import { VNode } from 'preact';
2
-
3
1
  /** @jsxRuntime automatic */
4
2
  /** @jsxImportSource preact */
5
-
6
- interface VersionBannerLabels {
3
+ import type { VNode } from "preact";
4
+ export interface VersionBannerLabels {
7
5
  /** Banner body text (e.g. "You are viewing documentation for an older version."). */
8
6
  message: string;
9
7
  /** Link label to the latest version (e.g. "View the latest version"). */
10
8
  latestLink: string;
11
9
  }
12
- interface VersionBannerProps {
10
+ export interface VersionBannerProps {
13
11
  /** Variant — drives icon/colour selection downstream and is exposed via `data-variant`. */
14
12
  type: "unmaintained" | "unreleased";
15
13
  /** Pre-resolved href to the latest version of the current page. */
@@ -25,6 +23,4 @@ interface VersionBannerProps {
25
23
  * The host typically resolves `labels` via `t("version.banner.*", lang)`
26
24
  * and `latestUrl` via the project's URL helpers.
27
25
  */
28
- declare function VersionBanner(props: VersionBannerProps): VNode;
29
-
30
- export { VersionBanner, type VersionBannerLabels, type VersionBannerProps };
26
+ export declare function VersionBanner(props: VersionBannerProps): VNode;
@@ -1,10 +1,8 @@
1
- import { VNode } from 'preact';
2
- import { VersionEntry, VersionSwitcherLabels } from './types.js';
3
-
4
1
  /** @jsxRuntime automatic */
5
2
  /** @jsxImportSource preact */
6
-
7
- interface VersionSwitcherProps {
3
+ import type { VNode } from "preact";
4
+ import type { VersionEntry, VersionSwitcherLabels } from "./types.js";
5
+ export interface VersionSwitcherProps {
8
6
  /**
9
7
  * All known versions, in display order (latest at top of the dropdown
10
8
  * is rendered separately via `latestUrl` — this list is the
@@ -74,7 +72,7 @@ interface VersionSwitcherProps {
74
72
  * also wins over `@layer utilities` regardless of specificity, so this rule
75
73
  * reliably overrides the wrapper's `display: none` at `>= 64rem`.
76
74
  */
77
- declare const VERSION_SWITCHER_VISIBILITY_STYLE = "@media (min-width:64rem){.hidden:has(> [data-version-switcher]){display:block}}";
75
+ export declare const VERSION_SWITCHER_VISIBILITY_STYLE = "@media (min-width:64rem){.hidden:has(> [data-version-switcher]){display:block}}";
78
76
  /**
79
77
  * Drop-down version switcher rendered in the header.
80
78
  *
@@ -82,7 +80,7 @@ declare const VERSION_SWITCHER_VISIBILITY_STYLE = "@media (min-width:64rem){.hid
82
80
  * `VERSION_SWITCHER_INIT_SCRIPT` — mount it once at body-end on any
83
81
  * page that includes a `<VersionSwitcher>`.
84
82
  */
85
- declare function VersionSwitcher(props: VersionSwitcherProps): VNode;
83
+ export declare function VersionSwitcher(props: VersionSwitcherProps): VNode;
86
84
  /**
87
85
  * Self-contained init script for the version-switcher's interactive
88
86
  * behavior. Mount once per page (e.g. inside the layout's body-end
@@ -99,6 +97,5 @@ declare function VersionSwitcher(props: VersionSwitcherProps): VNode;
99
97
  * version-switcher; behaviour is unchanged modulo the lifecycle
100
98
  * vocabulary swap.
101
99
  */
102
- declare const VERSION_SWITCHER_INIT_SCRIPT: string;
103
-
104
- export { VERSION_SWITCHER_INIT_SCRIPT, VERSION_SWITCHER_VISIBILITY_STYLE, VersionEntry, VersionSwitcher, VersionSwitcherLabels, type VersionSwitcherProps };
100
+ export declare const VERSION_SWITCHER_INIT_SCRIPT: string;
101
+ export type { VersionEntry, VersionSwitcherLabels };