@takazudo/zudo-doc 3.2.0 → 4.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 (439) hide show
  1. package/CHANGELOG.md +61 -0
  2. package/README.md +2 -2
  3. package/bin/tag-cli-config.ts +126 -0
  4. package/bin/tags-audit-runner.ts +60 -76
  5. package/bin/tags-audit.mjs +17 -36
  6. package/bin/tags-suggest-runner.ts +429 -0
  7. package/bin/tags-suggest.mjs +30 -0
  8. package/bin/zudo-doc.mjs +78 -25
  9. package/dist/breadcrumb/breadcrumb.d.ts +4 -4
  10. package/dist/breadcrumb/find-path.d.ts +2 -2
  11. package/dist/breadcrumb/index.d.ts +1 -1
  12. package/dist/breadcrumb/types.d.ts +0 -5
  13. package/dist/chrome/derive.d.ts +16 -4
  14. package/dist/chrome/derive.js +64 -4
  15. package/dist/chrome/index.d.ts +13 -10
  16. package/dist/chrome/index.js +12 -6
  17. package/dist/chrome/primary-slots.d.ts +21 -0
  18. package/dist/chrome/primary-slots.js +59 -0
  19. package/dist/chrome-bindings.d.ts +227 -0
  20. package/dist/chrome-bindings.js +6 -0
  21. package/dist/code-syntax/code-block-enhancer-script.d.ts +4 -0
  22. package/dist/code-syntax/code-block-enhancer-script.js +7 -4
  23. package/dist/code-syntax/code-block-enhancer.d.ts +2 -2
  24. package/dist/code-syntax/code-block-enhancer.js +1 -3
  25. package/dist/code-syntax/index.d.ts +5 -5
  26. package/dist/code-syntax/index.js +4 -13
  27. package/dist/code-syntax/mermaid-init-script.d.ts +1 -22
  28. package/dist/code-syntax/mermaid-init-script.js +0 -2
  29. package/dist/code-syntax/mermaid-init.d.ts +0 -1
  30. package/dist/code-syntax/mermaid-init.js +3 -4
  31. package/dist/code-syntax/tabs-init.d.ts +0 -1
  32. package/dist/code-syntax/tabs-init.js +1 -3
  33. package/dist/code-syntax/tabs.d.ts +0 -1
  34. package/dist/code-syntax/tabs.js +1 -3
  35. package/dist/color-scheme-utils.d.ts +72 -4
  36. package/dist/color-scheme-utils.js +137 -0
  37. package/dist/color-schemes-defaults/index.d.ts +23 -0
  38. package/dist/color-schemes-defaults/index.js +134 -0
  39. package/dist/config.d.ts +459 -0
  40. package/dist/config.js +125 -0
  41. package/dist/content/component-map.d.ts +0 -16
  42. package/dist/content/component-map.js +2 -4
  43. package/dist/content/index.d.ts +1 -1
  44. package/dist/content/index.js +2 -3
  45. package/dist/content.css +1 -1
  46. package/dist/design-token-panel-bootstrap.d.ts +82 -27
  47. package/dist/design-token-panel-bootstrap.js +110 -21
  48. package/dist/design-token-panel-config/index.d.ts +49 -0
  49. package/dist/design-token-panel-config/index.js +211 -0
  50. package/dist/design-token-panel-config/manifest.d.ts +46 -0
  51. package/dist/design-token-panel-config/manifest.js +105 -0
  52. package/dist/directive-vocabulary-defaults/index.d.ts +16 -0
  53. package/dist/directive-vocabulary-defaults/index.js +12 -0
  54. package/dist/doc-body-end-islands/design-token-panel-island.d.ts +15 -0
  55. package/dist/doc-body-end-islands/design-token-panel-island.js +31 -0
  56. package/dist/doc-body-end-islands/index.d.ts +52 -7
  57. package/dist/doc-body-end-islands/index.js +19 -0
  58. package/dist/doc-body-end-islands/theme-pack-switcher-island.d.ts +37 -0
  59. package/dist/doc-body-end-islands/theme-pack-switcher-island.js +18 -0
  60. package/dist/doc-content-header/index.js +1 -1
  61. package/dist/doc-history-area/index.d.ts +10 -4
  62. package/dist/doc-history-area/index.js +3 -2
  63. package/dist/doc-metainfo-area/index.d.ts +1 -0
  64. package/dist/doc-page-props/index.d.ts +7 -23
  65. package/dist/doc-page-renderer/index.d.ts +1 -0
  66. package/dist/doc-page-renderer/index.js +1 -0
  67. package/dist/doc-page-shell/index.js +19 -12
  68. package/dist/doc-pager/index.js +1 -1
  69. package/dist/doc-route-entries/index.d.ts +2 -2
  70. package/dist/doclayout/doc-layout-with-defaults.js +4 -4
  71. package/dist/doclayout/doc-layout.d.ts +8 -0
  72. package/dist/doclayout/doc-layout.js +10 -1
  73. package/dist/docs-schema/index.d.ts +67 -0
  74. package/dist/docs-schema/index.js +43 -0
  75. package/dist/eject/index.d.ts +16 -0
  76. package/dist/eject/index.js +122 -28
  77. package/dist/extract-headings/index.d.ts +5 -8
  78. package/dist/extract-headings/index.js +2 -9
  79. package/dist/factory-context/index.d.ts +56 -4
  80. package/dist/features.css +65 -43
  81. package/dist/find-in-page/find-bar.d.ts +9 -0
  82. package/dist/find-in-page/find-bar.js +114 -0
  83. package/dist/find-in-page/find-in-page.d.ts +17 -0
  84. package/dist/find-in-page/find-in-page.js +131 -0
  85. package/dist/find-in-page/index.d.ts +11 -0
  86. package/dist/find-in-page/index.js +49 -0
  87. package/dist/footer/footer.js +1 -0
  88. package/dist/frontmatter-preview-defaults/index.d.ts +16 -0
  89. package/dist/frontmatter-preview-defaults/index.js +25 -0
  90. package/dist/head-with-defaults/index.d.ts +2 -0
  91. package/dist/head-with-defaults/index.js +16 -0
  92. package/dist/header/header.d.ts +10 -5
  93. package/dist/header/header.js +45 -5
  94. package/dist/header/index.d.ts +1 -1
  95. package/dist/header/types.d.ts +30 -1
  96. package/dist/header-with-defaults/index.js +1 -0
  97. package/dist/home-page/index.d.ts +2 -0
  98. package/dist/home-page/index.js +11 -5
  99. package/dist/home-page/prepare-home-data.js +1 -1
  100. package/dist/i18n-defaults/index.d.ts +22 -0
  101. package/dist/i18n-defaults/index.js +167 -0
  102. package/dist/locale-merge/index.d.ts +9 -14
  103. package/dist/locale-merge/index.js +6 -4
  104. package/dist/mdx-components/index.js +4 -4
  105. package/dist/plugins/claude-resources.d.ts +1 -0
  106. package/dist/plugins/claude-resources.js +4 -2
  107. package/dist/plugins/doc-history.js +1 -1
  108. package/dist/{integrations → plugins/internal}/claude-resources/index.d.ts +1 -16
  109. package/dist/{integrations → plugins/internal}/claude-resources/index.js +0 -9
  110. package/dist/{integrations → plugins/internal}/doc-history/index.d.ts +0 -17
  111. package/dist/{integrations → plugins/internal}/doc-history/index.js +0 -4
  112. package/dist/{integrations → plugins/internal}/doc-history/pre-build.d.ts +2 -4
  113. package/dist/plugins/internal/llms-txt/index.d.ts +7 -0
  114. package/dist/{integrations → plugins/internal}/llms-txt/load.d.ts +1 -1
  115. package/dist/{integrations → plugins/internal}/llms-txt/load.js +2 -2
  116. package/dist/{integrations → plugins/internal}/llms-txt/strip.d.ts +2 -3
  117. package/dist/{integrations → plugins/internal}/llms-txt/strip.js +1 -1
  118. package/dist/{integrations → plugins/internal}/llms-txt/types.d.ts +13 -22
  119. package/dist/{integrations → plugins/internal}/search-index/collect.js +1 -1
  120. package/dist/plugins/internal/theme-packs/copy.d.ts +32 -0
  121. package/dist/plugins/internal/theme-packs/copy.js +45 -0
  122. package/dist/plugins/internal/theme-packs/dev-middleware.d.ts +22 -0
  123. package/dist/plugins/internal/theme-packs/dev-middleware.js +80 -0
  124. package/dist/plugins/internal/theme-packs/index.d.ts +6 -0
  125. package/dist/plugins/internal/theme-packs/index.js +9 -0
  126. package/dist/plugins/internal/theme-packs/resolve.d.ts +17 -0
  127. package/dist/plugins/internal/theme-packs/resolve.js +17 -0
  128. package/dist/plugins/internal/theme-packs/types.d.ts +22 -0
  129. package/dist/plugins/internal/theme-packs/types.js +0 -0
  130. package/dist/plugins/llms-txt.js +1 -1
  131. package/dist/plugins/routes.js +55 -21
  132. package/dist/plugins/search-index.js +1 -1
  133. package/dist/plugins/theme-packs.d.ts +3 -0
  134. package/dist/plugins/theme-packs.js +40 -0
  135. package/dist/preset.d.ts +28 -14
  136. package/dist/preset.js +24 -9
  137. package/dist/route-context/index.js +4 -6
  138. package/dist/route-enumerators/index.d.ts +6 -18
  139. package/dist/route-enumerators/index.js +8 -6
  140. package/dist/routes/404.js +3 -1
  141. package/dist/routes/_chrome.js +3 -2
  142. package/dist/routes/_context.d.ts +7 -3
  143. package/dist/routes/_context.js +2 -0
  144. package/dist/routes/_docs-helpers.js +9 -21
  145. package/dist/safelist.css +1 -1
  146. package/dist/settings.d.ts +64 -12
  147. package/dist/sidebar-tree/build-tree.d.ts +3 -4
  148. package/dist/sidebar-tree/build-tree.js +4 -3
  149. package/dist/sidebar-tree/index.d.ts +2 -2
  150. package/dist/sidebar-tree/types.d.ts +6 -17
  151. package/dist/site-tree-nav-island/index.d.ts +3 -1
  152. package/dist/site-tree-nav-island/index.js +17 -5
  153. package/dist/site-tree-nav-island/state.d.ts +4 -0
  154. package/dist/site-tree-nav-island/state.js +10 -0
  155. package/dist/tag-helpers/index.d.ts +6 -13
  156. package/dist/tag-helpers/index.js +5 -23
  157. package/dist/tag-pages/index.d.ts +8 -21
  158. package/dist/tag-pages/index.js +14 -10
  159. package/dist/tags-audit.d.ts +16 -44
  160. package/dist/tags-audit.js +9 -172
  161. package/dist/theme/color-scheme-provider.d.ts +2 -3
  162. package/dist/theme/color-scheme-provider.js +2 -10
  163. package/dist/theme/index.d.ts +1 -4
  164. package/dist/theme/index.js +2 -30
  165. package/dist/theme/theme-pack-provider.d.ts +42 -0
  166. package/dist/theme/theme-pack-provider.js +75 -0
  167. package/dist/theme-cli/apply.d.ts +16 -0
  168. package/dist/theme-cli/apply.js +61 -0
  169. package/dist/theme-cli/config-io.d.ts +15 -0
  170. package/dist/theme-cli/config-io.js +51 -0
  171. package/dist/theme-cli/config-rewriter.d.ts +21 -0
  172. package/dist/theme-cli/config-rewriter.js +141 -0
  173. package/dist/theme-cli/config-scanner.d.ts +63 -0
  174. package/dist/theme-cli/config-scanner.js +288 -0
  175. package/dist/theme-cli/index.d.ts +7 -0
  176. package/dist/theme-cli/index.js +38 -0
  177. package/dist/theme-cli/list.d.ts +27 -0
  178. package/dist/theme-cli/list.js +64 -0
  179. package/dist/theme-cli/provenance.d.ts +17 -0
  180. package/dist/theme-cli/provenance.js +35 -0
  181. package/dist/theme-cli/registry.d.ts +14 -0
  182. package/dist/theme-cli/registry.js +13 -0
  183. package/dist/theme-pack-dialog/dialog-state.d.ts +25 -0
  184. package/dist/theme-pack-dialog/dialog-state.js +40 -0
  185. package/dist/theme-pack-dialog/index.d.ts +5 -0
  186. package/dist/theme-pack-dialog/index.js +152 -0
  187. package/dist/theme-pack-dialog/theme-pack-card.d.ts +25 -0
  188. package/dist/theme-pack-dialog/theme-pack-card.js +72 -0
  189. package/dist/theme-pack-switcher/index.d.ts +49 -0
  190. package/dist/theme-pack-switcher/index.js +205 -0
  191. package/dist/theme-pack-switcher/switcher-state.d.ts +56 -0
  192. package/dist/theme-pack-switcher/switcher-state.js +43 -0
  193. package/dist/theme-pack-switcher/theme-pack-sync.d.ts +85 -0
  194. package/dist/theme-pack-switcher/theme-pack-sync.js +121 -0
  195. package/dist/theme-packs/beacon/fonts/AtkinsonHyperlegible-400-latin.woff2 +0 -0
  196. package/dist/theme-packs/beacon/fonts/AtkinsonHyperlegible-700-latin.woff2 +0 -0
  197. package/dist/theme-packs/beacon/fonts/AtkinsonHyperlegible-italic-400-latin.woff2 +0 -0
  198. package/dist/theme-packs/beacon/fonts/AtkinsonHyperlegible-italic-700-latin.woff2 +0 -0
  199. package/dist/theme-packs/beacon/fonts/AtkinsonHyperlegibleMono-italic-latin.woff2 +0 -0
  200. package/dist/theme-packs/beacon/fonts/AtkinsonHyperlegibleMono-latin.woff2 +0 -0
  201. package/dist/theme-packs/beacon/fonts/OFL.txt +94 -0
  202. package/dist/theme-packs/beacon/meta.json +37 -0
  203. package/dist/theme-packs/beacon/pack.css +442 -0
  204. package/dist/theme-packs/broadsheet/fonts/CourierPrime-400-latin.woff2 +0 -0
  205. package/dist/theme-packs/broadsheet/fonts/CourierPrime-700-latin.woff2 +0 -0
  206. package/dist/theme-packs/broadsheet/fonts/OFL.txt +95 -0
  207. package/dist/theme-packs/broadsheet/fonts/PlayfairDisplay-italic-latin.woff2 +0 -0
  208. package/dist/theme-packs/broadsheet/fonts/PlayfairDisplay-latin.woff2 +0 -0
  209. package/dist/theme-packs/broadsheet/fonts/SourceSerif4-italic-latin.woff2 +0 -0
  210. package/dist/theme-packs/broadsheet/fonts/SourceSerif4-latin.woff2 +0 -0
  211. package/dist/theme-packs/broadsheet/meta.json +38 -0
  212. package/dist/theme-packs/broadsheet/pack.css +448 -0
  213. package/dist/theme-packs/brutalist/fonts/ArchivoBlack-latin.woff2 +0 -0
  214. package/dist/theme-packs/brutalist/fonts/IBMPlexMono-400-latin.woff2 +0 -0
  215. package/dist/theme-packs/brutalist/fonts/IBMPlexMono-500-latin.woff2 +0 -0
  216. package/dist/theme-packs/brutalist/fonts/IBMPlexMono-700-latin.woff2 +0 -0
  217. package/dist/theme-packs/brutalist/fonts/OFL.txt +95 -0
  218. package/dist/theme-packs/brutalist/fonts/SpaceGrotesk-latin.woff2 +0 -0
  219. package/dist/theme-packs/brutalist/meta.json +38 -0
  220. package/dist/theme-packs/brutalist/pack.css +546 -0
  221. package/dist/theme-packs/default/meta.json +37 -0
  222. package/dist/theme-packs/drift/fonts/IBMPlexMono-400-latin-ext.woff2 +0 -0
  223. package/dist/theme-packs/drift/fonts/IBMPlexMono-400-latin.woff2 +0 -0
  224. package/dist/theme-packs/drift/fonts/IBMPlexMono-500-latin-ext.woff2 +0 -0
  225. package/dist/theme-packs/drift/fonts/IBMPlexMono-500-latin.woff2 +0 -0
  226. package/dist/theme-packs/drift/fonts/IBMPlexSans-italic-latin.woff2 +0 -0
  227. package/dist/theme-packs/drift/fonts/IBMPlexSans-latin-ext.woff2 +0 -0
  228. package/dist/theme-packs/drift/fonts/IBMPlexSans-latin.woff2 +0 -0
  229. package/dist/theme-packs/drift/fonts/OFL.txt +93 -0
  230. package/dist/theme-packs/drift/meta.json +37 -0
  231. package/dist/theme-packs/drift/pack.css +478 -0
  232. package/dist/theme-packs/fjord/fonts/Inter-latin-ext.woff2 +0 -0
  233. package/dist/theme-packs/fjord/fonts/Inter-latin.woff2 +0 -0
  234. package/dist/theme-packs/fjord/fonts/JetBrainsMono-latin-ext.woff2 +0 -0
  235. package/dist/theme-packs/fjord/fonts/JetBrainsMono-latin.woff2 +0 -0
  236. package/dist/theme-packs/fjord/fonts/OFL.txt +94 -0
  237. package/dist/theme-packs/fjord/meta.json +37 -0
  238. package/dist/theme-packs/fjord/pack.css +375 -0
  239. package/dist/theme-packs/foundry/fonts/Inter-latin-ext.woff2 +0 -0
  240. package/dist/theme-packs/foundry/fonts/Inter-latin.woff2 +0 -0
  241. package/dist/theme-packs/foundry/fonts/OFL.txt +93 -0
  242. package/dist/theme-packs/foundry/meta.json +37 -0
  243. package/dist/theme-packs/foundry/pack.css +202 -0
  244. package/dist/theme-packs/futura-editorial/fonts/Jost-latin.woff2 +0 -0
  245. package/dist/theme-packs/futura-editorial/fonts/NotoSans-italic-latin.woff2 +0 -0
  246. package/dist/theme-packs/futura-editorial/fonts/NotoSans-latin.woff2 +0 -0
  247. package/dist/theme-packs/futura-editorial/fonts/OFL.txt +95 -0
  248. package/dist/theme-packs/futura-editorial/fonts/SpaceMono-400-latin.woff2 +0 -0
  249. package/dist/theme-packs/futura-editorial/fonts/SpaceMono-700-latin.woff2 +0 -0
  250. package/dist/theme-packs/futura-editorial/meta.json +38 -0
  251. package/dist/theme-packs/futura-editorial/pack.css +313 -0
  252. package/dist/theme-packs/hearth/fonts/Fraunces-italic-latin.woff2 +0 -0
  253. package/dist/theme-packs/hearth/fonts/Fraunces-latin.woff2 +0 -0
  254. package/dist/theme-packs/hearth/fonts/Nunito-latin.woff2 +0 -0
  255. package/dist/theme-packs/hearth/fonts/OFL.txt +95 -0
  256. package/dist/theme-packs/hearth/fonts/SplineSansMono-latin.woff2 +0 -0
  257. package/dist/theme-packs/hearth/meta.json +38 -0
  258. package/dist/theme-packs/hearth/pack.css +385 -0
  259. package/dist/theme-packs/hollow/fonts/OFL.txt +94 -0
  260. package/dist/theme-packs/hollow/fonts/SpaceGrotesk-latin.woff2 +0 -0
  261. package/dist/theme-packs/hollow/fonts/SpaceMono-400-italic-latin.woff2 +0 -0
  262. package/dist/theme-packs/hollow/fonts/SpaceMono-400-latin.woff2 +0 -0
  263. package/dist/theme-packs/hollow/fonts/SpaceMono-700-latin.woff2 +0 -0
  264. package/dist/theme-packs/hollow/meta.json +37 -0
  265. package/dist/theme-packs/hollow/pack.css +428 -0
  266. package/dist/theme-packs/ledger/fonts/CrimsonPro-latin-ext-italic.woff2 +0 -0
  267. package/dist/theme-packs/ledger/fonts/CrimsonPro-latin-ext.woff2 +0 -0
  268. package/dist/theme-packs/ledger/fonts/CrimsonPro-latin-italic.woff2 +0 -0
  269. package/dist/theme-packs/ledger/fonts/CrimsonPro-latin.woff2 +0 -0
  270. package/dist/theme-packs/ledger/fonts/IBMPlexMono-400-latin-ext.woff2 +0 -0
  271. package/dist/theme-packs/ledger/fonts/IBMPlexMono-400-latin.woff2 +0 -0
  272. package/dist/theme-packs/ledger/fonts/IBMPlexMono-500-latin-ext.woff2 +0 -0
  273. package/dist/theme-packs/ledger/fonts/IBMPlexMono-500-latin.woff2 +0 -0
  274. package/dist/theme-packs/ledger/fonts/OFL.txt +94 -0
  275. package/dist/theme-packs/ledger/meta.json +37 -0
  276. package/dist/theme-packs/ledger/pack.css +463 -0
  277. package/dist/theme-packs/manuscript/fonts/CourierPrime-400-latin-ext.woff2 +0 -0
  278. package/dist/theme-packs/manuscript/fonts/CourierPrime-400-latin.woff2 +0 -0
  279. package/dist/theme-packs/manuscript/fonts/CourierPrime-700-latin-ext.woff2 +0 -0
  280. package/dist/theme-packs/manuscript/fonts/CourierPrime-700-latin.woff2 +0 -0
  281. package/dist/theme-packs/manuscript/fonts/EBGaramond-latin-italic.woff2 +0 -0
  282. package/dist/theme-packs/manuscript/fonts/EBGaramond-latin.woff2 +0 -0
  283. package/dist/theme-packs/manuscript/fonts/OFL.txt +94 -0
  284. package/dist/theme-packs/manuscript/meta.json +37 -0
  285. package/dist/theme-packs/manuscript/pack.css +376 -0
  286. package/dist/theme-packs/matcha/fonts/MPLUS1Code-latin.woff2 +0 -0
  287. package/dist/theme-packs/matcha/fonts/OFL.txt +95 -0
  288. package/dist/theme-packs/matcha/fonts/ShipporiMincho-500-latin.woff2 +0 -0
  289. package/dist/theme-packs/matcha/fonts/ShipporiMincho-700-latin.woff2 +0 -0
  290. package/dist/theme-packs/matcha/fonts/ZenKakuGothicNew-400-latin.woff2 +0 -0
  291. package/dist/theme-packs/matcha/fonts/ZenKakuGothicNew-500-latin.woff2 +0 -0
  292. package/dist/theme-packs/matcha/meta.json +38 -0
  293. package/dist/theme-packs/matcha/pack.css +409 -0
  294. package/dist/theme-packs/nocturne/fonts/CormorantGaramond-italic-latin.woff2 +0 -0
  295. package/dist/theme-packs/nocturne/fonts/CormorantGaramond-latin.woff2 +0 -0
  296. package/dist/theme-packs/nocturne/fonts/IBMPlexMono-400-latin.woff2 +0 -0
  297. package/dist/theme-packs/nocturne/fonts/IBMPlexMono-500-latin.woff2 +0 -0
  298. package/dist/theme-packs/nocturne/fonts/IBMPlexMono-italic-latin.woff2 +0 -0
  299. package/dist/theme-packs/nocturne/fonts/Manrope-latin.woff2 +0 -0
  300. package/dist/theme-packs/nocturne/fonts/OFL.txt +95 -0
  301. package/dist/theme-packs/nocturne/meta.json +38 -0
  302. package/dist/theme-packs/nocturne/pack.css +502 -0
  303. package/dist/theme-packs/observatory/fonts/JosefinSans-latin.woff2 +0 -0
  304. package/dist/theme-packs/observatory/fonts/Jost-italic-latin.woff2 +0 -0
  305. package/dist/theme-packs/observatory/fonts/Jost-latin.woff2 +0 -0
  306. package/dist/theme-packs/observatory/fonts/OFL.txt +95 -0
  307. package/dist/theme-packs/observatory/fonts/SpaceMono-400-latin.woff2 +0 -0
  308. package/dist/theme-packs/observatory/fonts/SpaceMono-700-latin.woff2 +0 -0
  309. package/dist/theme-packs/observatory/fonts/SpaceMono-italic-latin.woff2 +0 -0
  310. package/dist/theme-packs/observatory/meta.json +38 -0
  311. package/dist/theme-packs/observatory/pack.css +728 -0
  312. package/dist/theme-packs/onyx/fonts/CormorantGaramond-italic-latin.woff2 +0 -0
  313. package/dist/theme-packs/onyx/fonts/CormorantGaramond-latin.woff2 +0 -0
  314. package/dist/theme-packs/onyx/fonts/IBMPlexMono-400-latin-ext.woff2 +0 -0
  315. package/dist/theme-packs/onyx/fonts/IBMPlexMono-400-latin.woff2 +0 -0
  316. package/dist/theme-packs/onyx/fonts/IBMPlexMono-500-latin-ext.woff2 +0 -0
  317. package/dist/theme-packs/onyx/fonts/IBMPlexMono-500-latin.woff2 +0 -0
  318. package/dist/theme-packs/onyx/fonts/Jost-latin.woff2 +0 -0
  319. package/dist/theme-packs/onyx/fonts/OFL.txt +95 -0
  320. package/dist/theme-packs/onyx/meta.json +38 -0
  321. package/dist/theme-packs/onyx/pack.css +497 -0
  322. package/dist/theme-packs/phosphor/fonts/JetBrainsMono-latin-ext.woff2 +0 -0
  323. package/dist/theme-packs/phosphor/fonts/JetBrainsMono-latin.woff2 +0 -0
  324. package/dist/theme-packs/phosphor/fonts/OFL.txt +94 -0
  325. package/dist/theme-packs/phosphor/fonts/VT323-latin-ext.woff2 +0 -0
  326. package/dist/theme-packs/phosphor/fonts/VT323-latin.woff2 +0 -0
  327. package/dist/theme-packs/phosphor/meta.json +38 -0
  328. package/dist/theme-packs/phosphor/pack.css +493 -0
  329. package/dist/theme-packs/solar/fonts/OFL.txt +94 -0
  330. package/dist/theme-packs/solar/fonts/SourceCodePro-italic-latin.woff2 +0 -0
  331. package/dist/theme-packs/solar/fonts/SourceCodePro-latin.woff2 +0 -0
  332. package/dist/theme-packs/solar/fonts/SourceSans3-italic-latin.woff2 +0 -0
  333. package/dist/theme-packs/solar/fonts/SourceSans3-latin.woff2 +0 -0
  334. package/dist/theme-packs/solar/meta.json +37 -0
  335. package/dist/theme-packs/solar/pack.css +380 -0
  336. package/dist/theme-packs/sumi/fonts/IBMPlexMono-400-latin-ext.woff2 +0 -0
  337. package/dist/theme-packs/sumi/fonts/IBMPlexMono-400-latin.woff2 +0 -0
  338. package/dist/theme-packs/sumi/fonts/IBMPlexMono-500-latin-ext.woff2 +0 -0
  339. package/dist/theme-packs/sumi/fonts/IBMPlexMono-500-latin.woff2 +0 -0
  340. package/dist/theme-packs/sumi/fonts/OFL.txt +95 -0
  341. package/dist/theme-packs/sumi/fonts/ShipporiMinchoB1-600-latin.woff2 +0 -0
  342. package/dist/theme-packs/sumi/fonts/ShipporiMinchoB1-700-latin.woff2 +0 -0
  343. package/dist/theme-packs/sumi/fonts/ShipporiMinchoB1-800-latin.woff2 +0 -0
  344. package/dist/theme-packs/sumi/fonts/ZenKakuGothicNew-400-latin.woff2 +0 -0
  345. package/dist/theme-packs/sumi/fonts/ZenKakuGothicNew-500-latin.woff2 +0 -0
  346. package/dist/theme-packs/sumi/meta.json +38 -0
  347. package/dist/theme-packs/sumi/pack.css +502 -0
  348. package/dist/theme-packs/swissgrid/fonts/IBMPlexMono-400-latin-ext.woff2 +0 -0
  349. package/dist/theme-packs/swissgrid/fonts/IBMPlexMono-400-latin.woff2 +0 -0
  350. package/dist/theme-packs/swissgrid/fonts/IBMPlexMono-600-latin.woff2 +0 -0
  351. package/dist/theme-packs/swissgrid/fonts/Inter-latin-ext.woff2 +0 -0
  352. package/dist/theme-packs/swissgrid/fonts/Inter-latin.woff2 +0 -0
  353. package/dist/theme-packs/swissgrid/fonts/InterTight-latin.woff2 +0 -0
  354. package/dist/theme-packs/swissgrid/fonts/OFL.txt +95 -0
  355. package/dist/theme-packs/swissgrid/meta.json +38 -0
  356. package/dist/theme-packs/swissgrid/pack.css +518 -0
  357. package/dist/theme-packs/washi/fonts/MPlus1Code-400-latin.woff2 +0 -0
  358. package/dist/theme-packs/washi/fonts/MPlus1Code-500-latin.woff2 +0 -0
  359. package/dist/theme-packs/washi/fonts/OFL.txt +95 -0
  360. package/dist/theme-packs/washi/fonts/ShipporiMincho-500-latin.woff2 +0 -0
  361. package/dist/theme-packs/washi/fonts/ShipporiMincho-600-latin.woff2 +0 -0
  362. package/dist/theme-packs/washi/fonts/ShipporiMincho-700-latin.woff2 +0 -0
  363. package/dist/theme-packs/washi/fonts/ZenKakuGothicNew-400-latin.woff2 +0 -0
  364. package/dist/theme-packs/washi/fonts/ZenKakuGothicNew-500-latin.woff2 +0 -0
  365. package/dist/theme-packs/washi/fonts/ZenKakuGothicNew-700-latin.woff2 +0 -0
  366. package/dist/theme-packs/washi/meta.json +38 -0
  367. package/dist/theme-packs/washi/pack.css +479 -0
  368. package/dist/theme-packs-registry/index.d.ts +5 -0
  369. package/dist/theme-packs-registry/index.js +30 -0
  370. package/dist/theme-packs-registry/load-registry.d.ts +23 -0
  371. package/dist/theme-packs-registry/load-registry.js +64 -0
  372. package/dist/theme-packs-registry/meta-schema.d.ts +70 -0
  373. package/dist/theme-packs-registry/meta-schema.js +38 -0
  374. package/dist/theme-packs-registry/resolve-enabled-packs.d.ts +25 -0
  375. package/dist/theme-packs-registry/resolve-enabled-packs.js +43 -0
  376. package/dist/theme-packs-registry/token-manifest.d.ts +19 -0
  377. package/dist/theme-packs-registry/token-manifest.js +57 -0
  378. package/dist/theme-packs-registry/validator.d.ts +35 -0
  379. package/dist/theme-packs-registry/validator.js +284 -0
  380. package/dist/theme-toggle/color-scheme-sync.d.ts +2 -4
  381. package/dist/theme.css +319 -0
  382. package/dist/versions-page/index.d.ts +2 -2
  383. package/dist/versions-page/index.js +8 -8
  384. package/dist/z-index-defaults/index.d.ts +45 -0
  385. package/dist/z-index-defaults/index.js +34 -0
  386. package/eject/breadcrumb/breadcrumb.tsx +4 -4
  387. package/eject/breadcrumb/find-path.ts +2 -2
  388. package/eject/breadcrumb/index.ts +1 -1
  389. package/eject/breadcrumb/types.ts +0 -6
  390. package/eject/code-group/index.tsx +2 -2
  391. package/eject/doc-history/index.tsx +1 -1
  392. package/eject/doc-pager/index.tsx +1 -1
  393. package/eject/footer/footer.tsx +1 -0
  394. package/eject/header/header.tsx +86 -21
  395. package/eject/header/index.ts +3 -0
  396. package/eject/header/types.ts +39 -1
  397. package/eject/site-tree-nav-island/index.tsx +15 -3
  398. package/eject/site-tree-nav-island/state.ts +9 -0
  399. package/eject/theme-toggle/color-scheme-sync.ts +2 -4
  400. package/package.json +82 -29
  401. package/routes-src/404.tsx +4 -1
  402. package/routes-src/_chrome.tsx +31 -8
  403. package/routes-src/_context.ts +4 -0
  404. package/routes-src/_docs-helpers.ts +9 -29
  405. package/routes-src/_virtual.d.ts +38 -2
  406. package/tsconfig.base.json +29 -0
  407. package/virtual-modules.d.ts +83 -0
  408. package/zfb-config-shim.d.ts +210 -0
  409. package/dist/integrations/llms-txt/index.d.ts +0 -33
  410. package/dist/theme/color-tweak-export-modal.d.ts +0 -16
  411. package/dist/theme/color-tweak-export-modal.js +0 -138
  412. package/dist/theme/design-token-serde.d.ts +0 -183
  413. package/dist/theme/design-token-serde.js +0 -346
  414. package/dist/theme/design-token-types.d.ts +0 -13
  415. package/dist/theme/design-token-types.js +0 -6
  416. package/dist/theme/iframe-bridge.d.ts +0 -42
  417. package/dist/theme/iframe-bridge.js +0 -72
  418. /package/dist/{integrations → plugins/internal}/claude-resources/escape-for-mdx.d.ts +0 -0
  419. /package/dist/{integrations → plugins/internal}/claude-resources/escape-for-mdx.js +0 -0
  420. /package/dist/{integrations → plugins/internal}/claude-resources/generate.d.ts +0 -0
  421. /package/dist/{integrations → plugins/internal}/claude-resources/generate.js +0 -0
  422. /package/dist/{integrations → plugins/internal}/doc-history/pre-build.js +0 -0
  423. /package/dist/{integrations → plugins/internal}/llms-txt/dev-middleware.d.ts +0 -0
  424. /package/dist/{integrations → plugins/internal}/llms-txt/dev-middleware.js +0 -0
  425. /package/dist/{integrations → plugins/internal}/llms-txt/emit.d.ts +0 -0
  426. /package/dist/{integrations → plugins/internal}/llms-txt/emit.js +0 -0
  427. /package/dist/{integrations → plugins/internal}/llms-txt/generate.d.ts +0 -0
  428. /package/dist/{integrations → plugins/internal}/llms-txt/generate.js +0 -0
  429. /package/dist/{integrations → plugins/internal}/llms-txt/index.js +0 -0
  430. /package/dist/{integrations → plugins/internal}/llms-txt/types.js +0 -0
  431. /package/dist/{integrations → plugins/internal}/search-index/build-emitter.d.ts +0 -0
  432. /package/dist/{integrations → plugins/internal}/search-index/build-emitter.js +0 -0
  433. /package/dist/{integrations → plugins/internal}/search-index/collect.d.ts +0 -0
  434. /package/dist/{integrations → plugins/internal}/search-index/dev-middleware.d.ts +0 -0
  435. /package/dist/{integrations → plugins/internal}/search-index/dev-middleware.js +0 -0
  436. /package/dist/{integrations → plugins/internal}/search-index/index.d.ts +0 -0
  437. /package/dist/{integrations → plugins/internal}/search-index/index.js +0 -0
  438. /package/dist/{integrations → plugins/internal}/search-index/types.d.ts +0 -0
  439. /package/dist/{integrations → plugins/internal}/search-index/types.js +0 -0
@@ -0,0 +1,409 @@
1
+ /* ============================================================
2
+ Matcha — zudo-doc theme pack (ADR docs/adr/theme-packs.md)
3
+
4
+ Green tea ceremony: deep whisked matcha on warm cream paper,
5
+ Shippori Mincho ceremony headings over a Zen Kaku Gothic New
6
+ reading face, M PLUS 1 Code on the tool tray. Light = the tea
7
+ room at noon; dark = the tea house at night — charcoal-green
8
+ walls, cream ink, a milky matcha glow. Shape language is the
9
+ shoji screen: square, no rounded corners anywhere.
10
+
11
+ Every rule below is scoped under html[data-theme-pack="matcha"]
12
+ — this is what makes the runtime pack swap atomic (Decision 3)
13
+ and lets the validator prove a pack can never leak styles while
14
+ inactive (Decision 6.7). The @font-face blocks are the sole
15
+ exception (at-rules can't be selector-scoped).
16
+
17
+ CJK font policy (Decision 5): the three Japanese families ship
18
+ ONLY their latin-subset woff2 — every family stack ends in its
19
+ bare generic (sans-serif / serif / monospace) so the platform
20
+ renders CJK with its own Japanese fonts.
21
+
22
+ Prototype-selector adaptations against the REAL DOM (tokens-dump
23
+ §6 + component sources), noted inline where they matter:
24
+ - `.lead` → `p[data-doc-description]` (#2873 stable hook on
25
+ the description paragraph DocContentHeader
26
+ emits; only renders when the page has a
27
+ frontmatter description — no longer falls back
28
+ onto the opening body paragraph)
29
+ - `.toc-active` → `nav[data-zd-toc] a[aria-current="true"]`
30
+ - `.doc-pager` → `.zd-content > nav[data-doc-pager]` (#2873
31
+ stable hook on the DocPager nav)
32
+ - `footer[data-footer]` → `footer[data-footer]` (#2873 stable hook;
33
+ the wrapper-descendant form is no longer needed)
34
+ - the h2 chashaku-scoop rule → a background-image gradient after
35
+ `border-image: none !important` clears the SSR-inlined default
36
+ - the theme-switcher flyout ("the presented bowl") now HAS stable
37
+ hooks (`[data-switcher-card]` / `[data-switcher-launcher]`,
38
+ #2873); its matcha lip remains intentionally NOT ported — an
39
+ unchanged design decision, not a selector gap.
40
+ ============================================================ */
41
+
42
+ /* ---- Zen Kaku Gothic New — the reading face (static 400 + 500;
43
+ 600/700 requests resolve to the 500 face, browsers add
44
+ synthetic bold where needed). Latin subset only. ---- */
45
+
46
+ @font-face {
47
+ font-family: "Zen Kaku Gothic New";
48
+ font-style: normal;
49
+ font-weight: 400;
50
+ font-display: swap;
51
+ src: url("./fonts/ZenKakuGothicNew-400-latin.woff2") format("woff2");
52
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
53
+ U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191,
54
+ U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
55
+ }
56
+
57
+ @font-face {
58
+ font-family: "Zen Kaku Gothic New";
59
+ font-style: normal;
60
+ font-weight: 500;
61
+ font-display: swap;
62
+ src: url("./fonts/ZenKakuGothicNew-500-latin.woff2") format("woff2");
63
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
64
+ U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191,
65
+ U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
66
+ }
67
+
68
+ /* ---- Shippori Mincho — the ceremony face for h1/h2, the lead and
69
+ pull quotes (static 500 + 700; the heading weight 600 resolves
70
+ to the 700 face for latin, platform mincho carries CJK). ---- */
71
+
72
+ @font-face {
73
+ font-family: "Shippori Mincho";
74
+ font-style: normal;
75
+ font-weight: 500;
76
+ font-display: swap;
77
+ src: url("./fonts/ShipporiMincho-500-latin.woff2") format("woff2");
78
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
79
+ U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191,
80
+ U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
81
+ }
82
+
83
+ @font-face {
84
+ font-family: "Shippori Mincho";
85
+ font-style: normal;
86
+ font-weight: 700;
87
+ font-display: swap;
88
+ src: url("./fonts/ShipporiMincho-700-latin.woff2") format("woff2");
89
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
90
+ U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191,
91
+ U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
92
+ }
93
+
94
+ /* ---- M PLUS 1 Code — the tools on the tray (variable, 400-700).
95
+ Latin subset only. ---- */
96
+
97
+ @font-face {
98
+ font-family: "M PLUS 1 Code";
99
+ font-style: normal;
100
+ font-weight: 400 700;
101
+ font-display: swap;
102
+ src: url("./fonts/MPLUS1Code-latin.woff2") format("woff2");
103
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
104
+ U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191,
105
+ U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
106
+ }
107
+
108
+ html[data-theme-pack="matcha"] {
109
+ /* Tier-2 semantic roles — warm cream paper, green-tinted charcoal
110
+ ink, deep whisked matcha (light); tea house at night: charcoal-
111
+ green walls, cream ink, milky matcha glow (dark). Both modes
112
+ always via light-dark(). */
113
+ --zd-bg: light-dark(oklch(0.973 0.012 106), oklch(0.205 0.016 152));
114
+ --zd-fg: light-dark(oklch(0.245 0.018 148), oklch(0.938 0.018 106));
115
+ --zd-selection-bg: light-dark(oklch(0.865 0.072 130), oklch(0.435 0.075 145));
116
+ --zd-selection-fg: light-dark(oklch(0.215 0.028 148), oklch(0.965 0.014 106));
117
+ --zd-surface: light-dark(oklch(0.951 0.022 116), oklch(0.236 0.02 150));
118
+ --zd-muted: light-dark(oklch(0.468 0.046 142), oklch(0.716 0.04 132));
119
+ --zd-accent: light-dark(oklch(0.435 0.105 142), oklch(0.79 0.115 138));
120
+ --zd-accent-hover: light-dark(oklch(0.355 0.092 145), oklch(0.85 0.1 134));
121
+ --zd-code-bg: light-dark(oklch(0.937 0.026 118), oklch(0.248 0.022 152));
122
+ --zd-code-fg: light-dark(oklch(0.258 0.02 148), oklch(0.926 0.02 108));
123
+ --zd-success: light-dark(oklch(0.455 0.12 148), oklch(0.765 0.125 148));
124
+ --zd-danger: light-dark(oklch(0.495 0.14 30), oklch(0.705 0.135 30));
125
+ --zd-warning: light-dark(oklch(0.515 0.1 76), oklch(0.795 0.108 80));
126
+ --zd-info: light-dark(oklch(0.455 0.08 200), oklch(0.765 0.088 195));
127
+
128
+ /* syntax — all 9 roles, both modes: a tea tray. Matcha keywords,
129
+ bamboo strings, hojicha numbers, raku-clay types, wet-stone teal
130
+ callables, mossy comments; inserted/deleted reuse the
131
+ success/danger hues. */
132
+ --zd-syntax-comment: light-dark(oklch(0.512 0.034 130), oklch(0.668 0.034 130));
133
+ --zd-syntax-string: light-dark(oklch(0.47 0.092 106), oklch(0.822 0.102 108));
134
+ --zd-syntax-number: light-dark(oklch(0.505 0.102 70), oklch(0.802 0.106 78));
135
+ --zd-syntax-keyword: light-dark(oklch(0.418 0.105 150), oklch(0.782 0.118 148));
136
+ --zd-syntax-callable: light-dark(oklch(0.438 0.082 196), oklch(0.772 0.088 192));
137
+ --zd-syntax-type: light-dark(oklch(0.488 0.095 46), oklch(0.782 0.098 48));
138
+ --zd-syntax-name: light-dark(oklch(0.278 0.02 148), oklch(0.92 0.02 108));
139
+ --zd-syntax-inserted: light-dark(oklch(0.455 0.12 148), oklch(0.765 0.125 148));
140
+ --zd-syntax-deleted: light-dark(oklch(0.495 0.14 30), oklch(0.705 0.135 30));
141
+
142
+ /* fonts — latin subsets only; each stack ends in its bare generic
143
+ so the platform renders CJK (Decision 5 CJK rule). */
144
+ --font-sans: "Zen Kaku Gothic New", system-ui, sans-serif;
145
+ --font-mono: "M PLUS 1 Code", ui-monospace, SFMono-Regular, Menlo, monospace;
146
+ --font-display: "Shippori Mincho", serif;
147
+
148
+ /* Tier-3 component seams — mincho ceremony headings (600 resolves
149
+ to the loaded 700 face for latin; platform CJK serif renders its
150
+ own 600); shoji-screen geometry: square, zero radii; matcha-fill
151
+ active nav. */
152
+ --zdc-doc-title-font: var(--font-display);
153
+ --zdc-doc-title-weight: 600;
154
+ --zdc-doc-title-tracking: 0.015em;
155
+ --zdc-doc-h2-font: var(--font-display);
156
+ --zdc-doc-h2-weight: 600;
157
+ --zdc-doc-h2-tracking: 0.01em;
158
+ --zdc-doc-h3-weight: 600;
159
+ --zdc-admonition-radius: 0;
160
+ --zdc-admonition-border-width: 3px;
161
+ --zdc-card-radius: 0;
162
+ --zdc-nav-active-indicator-color: var(--zd-accent);
163
+ }
164
+
165
+ /* ---- Matcha extras ---- */
166
+
167
+ /* page wash: tea-foam gradient settling downward + a faint CSS-only
168
+ enso ring floating top-right, behind the content column */
169
+ html[data-theme-pack="matcha"] body {
170
+ background-image:
171
+ radial-gradient(
172
+ circle at 86% 5rem,
173
+ transparent 15.6rem,
174
+ color-mix(in oklch, var(--zd-accent) 9%, transparent) 15.9rem,
175
+ color-mix(in oklch, var(--zd-accent) 9%, transparent) 17rem,
176
+ transparent 17.35rem
177
+ ),
178
+ linear-gradient(
179
+ 180deg,
180
+ color-mix(in srgb, var(--zd-accent) 4%, var(--zd-bg)),
181
+ var(--zd-bg) 30rem
182
+ );
183
+ background-attachment: fixed;
184
+ }
185
+
186
+ /* zen prose: let the reading column breathe. The package flow-space
187
+ rhythm (vsp-2xl h2 / vsp-xl h3) already sits within 0.1rem of the
188
+ prototype's spacing, so only the line-height lever is ported. */
189
+ html[data-theme-pack="matcha"] .zd-content {
190
+ line-height: 1.9;
191
+ }
192
+
193
+ /* the lead: mincho standfirst under the ceremony title. Targets the
194
+ `data-doc-description` hook (#2873) — the description paragraph
195
+ DocContentHeader renders. Only present when the page has a
196
+ frontmatter description; pages without one simply render no lead. */
197
+ html[data-theme-pack="matcha"] .zd-content > p[data-doc-description] {
198
+ font-family: var(--font-display);
199
+ line-height: 1.75;
200
+ }
201
+
202
+ /* h2 rule: a chashaku scoop of matcha, then the line dissolves like
203
+ foam. `border-image: none !important` defeats the SSR-inlined
204
+ `style="border-image:linear-gradient(...)"` (Decision 6.6's sole
205
+ allowlisted carve-out); the scoop itself is a 1px background
206
+ gradient so no border-image fight remains. */
207
+ html[data-theme-pack="matcha"] .zd-content h2 {
208
+ border-image: none !important;
209
+ border-top-width: 0;
210
+ padding-top: 1.35rem;
211
+ background-image: linear-gradient(
212
+ to right,
213
+ var(--zd-accent) 0,
214
+ var(--zd-accent) 2.75rem,
215
+ color-mix(in oklch, var(--zd-muted) 32%, transparent) 2.75rem,
216
+ transparent 100%
217
+ );
218
+ background-repeat: no-repeat;
219
+ background-size: 100% 1px;
220
+ }
221
+
222
+ /* h3: quiet, slightly tracked (weight 600 rides --zdc-doc-h3-weight) */
223
+ html[data-theme-pack="matcha"] .zd-content h3 {
224
+ letter-spacing: 0.01em;
225
+ }
226
+
227
+ /* hr: a short centered accent line — a single brush stroke */
228
+ html[data-theme-pack="matcha"] .zd-content hr {
229
+ border: none;
230
+ border-bottom: 1px solid color-mix(in oklch, var(--zd-accent) 55%, transparent);
231
+ width: 6rem;
232
+ margin: 3rem auto;
233
+ }
234
+
235
+ /* header: the tea room's lintel — foam gradient over a matcha hairline */
236
+ html[data-theme-pack="matcha"] header[data-header] {
237
+ border-bottom-color: color-mix(in oklch, var(--zd-accent) 28%, transparent);
238
+ background-image: linear-gradient(
239
+ 180deg,
240
+ color-mix(in srgb, var(--zd-accent) 5%, var(--zd-surface)),
241
+ var(--zd-surface)
242
+ );
243
+ }
244
+ html[data-theme-pack="matcha"] [data-header-logo] {
245
+ font-family: var(--font-display);
246
+ font-weight: 600;
247
+ letter-spacing: 0.05em;
248
+ }
249
+
250
+ /* sidebar: tea-foam surface, shoji-square links, tatami-quiet active */
251
+ html[data-theme-pack="matcha"] #desktop-sidebar {
252
+ background-color: var(--zd-surface);
253
+ border-right-color: color-mix(in oklch, var(--zd-muted) 30%, transparent);
254
+ }
255
+ html[data-theme-pack="matcha"] #desktop-sidebar a {
256
+ border-radius: 0;
257
+ }
258
+ html[data-theme-pack="matcha"] a[data-nav-active] {
259
+ letter-spacing: 0.01em;
260
+ }
261
+
262
+ /* code: the tea bowl — square, glazed with a thin matcha lip and a
263
+ foam gradient settling from the rim */
264
+ html[data-theme-pack="matcha"] pre.hi-root {
265
+ border-color: color-mix(in oklch, var(--zd-muted) 32%, transparent);
266
+ border-left: 3px solid var(--zd-accent);
267
+ border-radius: 0;
268
+ padding: 1.2rem 1.35rem;
269
+ line-height: 1.75;
270
+ background-image: linear-gradient(
271
+ 180deg,
272
+ color-mix(in oklch, var(--zd-accent) 4%, transparent),
273
+ transparent 4rem
274
+ );
275
+ }
276
+
277
+ /* inline code: a square sip of matcha */
278
+ html[data-theme-pack="matcha"] .zd-content code:not(pre code) {
279
+ background-color: color-mix(in srgb, var(--zd-accent) 9%, var(--zd-bg));
280
+ border: 1px solid color-mix(in oklch, var(--zd-accent) 16%, transparent);
281
+ border-radius: 0;
282
+ }
283
+
284
+ /* admonitions: zen marks instead of emoji, whispered small-caps
285
+ titles, tea-foam tints softened below the stock 12% mix across all
286
+ seven variants (variant → hue map follows content.css: note/
287
+ important → accent, tip → success, info → info, warning → warning,
288
+ danger/caution → danger) */
289
+ html[data-theme-pack="matcha"] [data-admonition] {
290
+ padding: 1.2rem 1.35rem 1.05rem;
291
+ }
292
+ html[data-theme-pack="matcha"] [data-admonition] .admonition-title {
293
+ font-size: 0.8rem;
294
+ font-weight: 600;
295
+ letter-spacing: 0.16em;
296
+ text-transform: uppercase;
297
+ }
298
+ html[data-theme-pack="matcha"] [data-admonition] .admonition-title::before {
299
+ font-weight: 400;
300
+ }
301
+ html[data-theme-pack="matcha"] [data-admonition="note"] .admonition-title::before {
302
+ content: "\25EF\2002"; /* enso circle */
303
+ }
304
+ html[data-theme-pack="matcha"] [data-admonition="tip"] .admonition-title::before {
305
+ content: "\274B\2002"; /* eight-petalled blossom */
306
+ }
307
+ html[data-theme-pack="matcha"] [data-admonition="info"] .admonition-title::before {
308
+ content: "\25CE\2002"; /* double circle — the bowl seen from above */
309
+ }
310
+ html[data-theme-pack="matcha"] [data-admonition="warning"] .admonition-title::before {
311
+ content: "\25B3\2002"; /* open triangle */
312
+ }
313
+ html[data-theme-pack="matcha"] [data-admonition="important"] .admonition-title::before {
314
+ content: "\25C6\2002"; /* filled diamond */
315
+ }
316
+ html[data-theme-pack="matcha"] [data-admonition="danger"] .admonition-title::before {
317
+ content: "\25B2\2002"; /* filled triangle */
318
+ }
319
+ html[data-theme-pack="matcha"] [data-admonition="caution"] .admonition-title::before {
320
+ content: "\203B\2002"; /* komejirushi reference mark */
321
+ }
322
+ html[data-theme-pack="matcha"] [data-admonition="note"] {
323
+ background-color: color-mix(in srgb, var(--zd-accent) 7%, var(--zd-bg));
324
+ }
325
+ html[data-theme-pack="matcha"] [data-admonition="tip"] {
326
+ background-color: color-mix(in srgb, var(--zd-success) 7%, var(--zd-bg));
327
+ }
328
+ html[data-theme-pack="matcha"] [data-admonition="info"] {
329
+ background-color: color-mix(in srgb, var(--zd-info) 7%, var(--zd-bg));
330
+ }
331
+ html[data-theme-pack="matcha"] [data-admonition="warning"] {
332
+ background-color: color-mix(in srgb, var(--zd-warning) 8%, var(--zd-bg));
333
+ }
334
+ html[data-theme-pack="matcha"] [data-admonition="important"] {
335
+ background-color: color-mix(in srgb, var(--zd-accent) 7%, var(--zd-bg));
336
+ }
337
+ html[data-theme-pack="matcha"] [data-admonition="danger"] {
338
+ background-color: color-mix(in srgb, var(--zd-danger) 8%, var(--zd-bg));
339
+ }
340
+ html[data-theme-pack="matcha"] [data-admonition="caution"] {
341
+ background-color: color-mix(in srgb, var(--zd-danger) 8%, var(--zd-bg));
342
+ }
343
+
344
+ /* blockquote: a line of calligraphy — upright mincho on a matcha rule
345
+ (the stock italic is a westernism the ceremony doesn't keep) */
346
+ html[data-theme-pack="matcha"] .zd-content blockquote {
347
+ font-family: var(--font-display);
348
+ font-style: normal;
349
+ font-size: 1.08rem;
350
+ line-height: 1.85;
351
+ border-left-color: var(--zd-accent);
352
+ padding: 0.45rem 0 0.45rem 1.4rem;
353
+ color: color-mix(in oklch, var(--zd-fg) 80%, var(--zd-muted));
354
+ }
355
+
356
+ /* table: lacquered tray rules — matcha head rule, foam-faint body */
357
+ html[data-theme-pack="matcha"] .zd-content th,
358
+ html[data-theme-pack="matcha"] .zd-content td {
359
+ padding: 0.72rem 0.85rem;
360
+ border-bottom-color: color-mix(in oklch, var(--zd-muted) 26%, transparent);
361
+ }
362
+ html[data-theme-pack="matcha"] .zd-content th {
363
+ border-bottom: 2px solid color-mix(in oklch, var(--zd-accent) 60%, transparent);
364
+ letter-spacing: 0.04em;
365
+ color: color-mix(in oklch, var(--zd-accent) 80%, var(--zd-fg));
366
+ }
367
+
368
+ /* TOC: matcha marker on a foam-quiet rail. The real DOM marks the
369
+ active entry with aria-current="true" (toc/toc.tsx), not the
370
+ prototype's .toc-active mock class. */
371
+ html[data-theme-pack="matcha"] nav[data-zd-toc] ul {
372
+ border-left-color: color-mix(in oklch, var(--zd-accent) 30%, transparent);
373
+ }
374
+ html[data-theme-pack="matcha"] nav[data-zd-toc] a[aria-current="true"] {
375
+ background: var(--zd-accent);
376
+ color: var(--zd-bg);
377
+ }
378
+
379
+ /* pager: tea-foam cards, mincho titles, whispered labels. Targets the
380
+ DocPager's `data-doc-pager` hook (#2873) directly instead of the
381
+ positional :last-of-type:not([aria-label]) guard. */
382
+ html[data-theme-pack="matcha"] .zd-content > nav[data-doc-pager] > a {
383
+ background: var(--zd-surface);
384
+ border-color: color-mix(in oklch, var(--zd-muted) 30%, transparent);
385
+ border-radius: 0;
386
+ padding: 1rem 1.2rem;
387
+ transition:
388
+ border-color 0.18s ease,
389
+ background-color 0.18s ease;
390
+ }
391
+ html[data-theme-pack="matcha"] .zd-content > nav[data-doc-pager] > a:hover {
392
+ background: color-mix(in srgb, var(--zd-accent) 6%, var(--zd-surface));
393
+ border-color: var(--zd-accent);
394
+ }
395
+ html[data-theme-pack="matcha"] .zd-content > nav[data-doc-pager] > a > div {
396
+ text-transform: uppercase;
397
+ font-size: 0.72rem;
398
+ letter-spacing: 0.1em;
399
+ }
400
+ html[data-theme-pack="matcha"] .zd-content > nav[data-doc-pager] > a p {
401
+ font-family: var(--font-display);
402
+ font-weight: 600;
403
+ }
404
+
405
+ /* footer: the room's far wall under a matcha hairline. Targets the
406
+ `data-footer` hook (#2873) directly. */
407
+ html[data-theme-pack="matcha"] footer[data-footer] {
408
+ border-top-color: color-mix(in oklch, var(--zd-accent) 26%, transparent);
409
+ }
@@ -0,0 +1,95 @@
1
+ Copyright 2022 The Cormorant Project Authors (https://github.com/CatharsisFonts/Cormorant)
2
+ Copyright 2018 The Manrope Project Authors (https://github.com/sharanda/manrope)
3
+ Copyright 2017 IBM Corp. All rights reserved. (https://github.com/IBM/plex)
4
+
5
+ This Font Software is licensed under the SIL Open Font License, Version 1.1.
6
+ This license is copied below, and is also available with a FAQ at:
7
+ https://scripts.sil.org/OFL
8
+
9
+
10
+ -----------------------------------------------------------
11
+ SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
12
+ -----------------------------------------------------------
13
+
14
+ PREAMBLE
15
+ The goals of the Open Font License (OFL) are to stimulate worldwide
16
+ development of collaborative font projects, to support the font creation
17
+ efforts of academic and linguistic communities, and to provide a free and
18
+ open framework in which fonts may be shared and improved in partnership
19
+ with others.
20
+
21
+ The OFL allows the licensed fonts to be used, studied, modified and
22
+ redistributed freely as long as they are not sold by themselves. The
23
+ fonts, including any derivative works, can be bundled, embedded,
24
+ redistributed and/or sold with any software provided that any reserved
25
+ names are not used by derivative works. The fonts and derivatives,
26
+ however, cannot be released under any other type of license. The
27
+ requirement for fonts to remain under this license does not apply
28
+ to any document created using the fonts or their derivatives.
29
+
30
+ DEFINITIONS
31
+ "Font Software" refers to the set of files released by the Copyright
32
+ Holder(s) under this license and clearly marked as such. This may
33
+ include source files, build scripts and documentation.
34
+
35
+ "Reserved Font Name" refers to any names specified as such after the
36
+ copyright statement(s).
37
+
38
+ "Original Version" refers to the collection of Font Software components as
39
+ distributed by the Copyright Holder(s).
40
+
41
+ "Modified Version" refers to any derivative made by adding to, deleting,
42
+ or substituting -- in part or in whole -- any of the components of the
43
+ Original Version, by changing formats or by porting the Font Software to a
44
+ new environment.
45
+
46
+ "Author" refers to any designer, engineer, programmer, technical
47
+ writer or other person who contributed to the Font Software.
48
+
49
+ PERMISSION & CONDITIONS
50
+ Permission is hereby granted, free of charge, to any person obtaining
51
+ a copy of the Font Software, to use, study, copy, merge, embed, modify,
52
+ redistribute, and sell modified and unmodified copies of the Font
53
+ Software, subject to the following conditions:
54
+
55
+ 1) Neither the Font Software nor any of its individual components,
56
+ in Original or Modified Versions, may be sold by itself.
57
+
58
+ 2) Original or Modified Versions of the Font Software may be bundled,
59
+ redistributed and/or sold with any software, provided that each copy
60
+ contains the above copyright notice and this license. These can be
61
+ included either as stand-alone text files, human-readable headers or
62
+ in the appropriate machine-readable metadata fields within text or
63
+ binary files as long as those fields can be easily viewed by the user.
64
+
65
+ 3) No Modified Version of the Font Software may use the Reserved Font
66
+ Name(s) unless explicit written permission is granted by the corresponding
67
+ Copyright Holder. This restriction only applies to the primary font name as
68
+ presented to the users.
69
+
70
+ 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
71
+ Software shall not be used to promote, endorse or advertise any
72
+ Modified Version, except to acknowledge the contribution(s) of the
73
+ Copyright Holder(s) and the Author(s) or with their explicit written
74
+ permission.
75
+
76
+ 5) The Font Software, modified or unmodified, in part or in whole,
77
+ must be distributed entirely under this license, and must not be
78
+ distributed under any other license. The requirement for fonts to
79
+ remain under this license does not apply to any document created
80
+ using the Font Software.
81
+
82
+ TERMINATION
83
+ This license becomes null and void if any of the above conditions are
84
+ not met.
85
+
86
+ DISCLAIMER
87
+ THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
88
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
89
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
90
+ OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
91
+ COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
92
+ INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
93
+ DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
94
+ FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
95
+ OTHER DEALINGS IN THE FONT SOFTWARE.
@@ -0,0 +1,38 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "slug": "nocturne",
4
+ "name": "Nocturne",
5
+ "description": "Purple midnight — velvet aubergine depths, lavender links, and muted gold hairlines. Elegant, never neon.",
6
+ "mode": "dark",
7
+ "version": "1.0.1",
8
+ "fonts": {
9
+ "sans": "Manrope",
10
+ "mono": "IBM Plex Mono",
11
+ "display": "Cormorant Garamond",
12
+ "loaded": ["Cormorant Garamond", "Manrope", "IBM Plex Mono"]
13
+ },
14
+ "preview": {
15
+ "light": {
16
+ "bg": "oklch(0.958 0.012 300)",
17
+ "fg": "oklch(0.245 0.05 312)",
18
+ "accent": "oklch(0.455 0.15 295)",
19
+ "syntax": {
20
+ "keyword": "oklch(0.46 0.16 295)",
21
+ "string": "oklch(0.5 0.105 85)",
22
+ "comment": "oklch(0.5 0.042 305)",
23
+ "callable": "oklch(0.455 0.125 265)"
24
+ }
25
+ },
26
+ "dark": {
27
+ "bg": "oklch(0.155 0.03 310)",
28
+ "fg": "oklch(0.922 0.018 300)",
29
+ "accent": "oklch(0.765 0.105 292)",
30
+ "syntax": {
31
+ "keyword": "oklch(0.772 0.128 293)",
32
+ "string": "oklch(0.8 0.108 88)",
33
+ "comment": "oklch(0.645 0.045 302)",
34
+ "callable": "oklch(0.77 0.095 262)"
35
+ }
36
+ }
37
+ }
38
+ }