blume 2.1.3 → 2.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (397) hide show
  1. package/AGENTS.md +1 -1
  2. package/CHANGELOG.md +134 -0
  3. package/README.md +4 -4
  4. package/dist/cli/{chunk-y4msrwm9.js → chunk-080mfch6.js} +15 -15
  5. package/dist/cli/{chunk-gfc5fqvf.js → chunk-1ch3ct3r.js} +18 -18
  6. package/dist/cli/{chunk-gfc5fqvf.js.map → chunk-1ch3ct3r.js.map} +1 -1
  7. package/dist/cli/{chunk-32khwcb6.js → chunk-2ssh60qh.js} +42 -69
  8. package/dist/cli/{chunk-32khwcb6.js.map → chunk-2ssh60qh.js.map} +9 -10
  9. package/dist/cli/{chunk-9qzgg6mj.js → chunk-34wap3ed.js} +3 -3
  10. package/dist/cli/{chunk-k3gr1nm9.js → chunk-40vk8kgf.js} +13 -16
  11. package/dist/cli/{chunk-k3gr1nm9.js.map → chunk-40vk8kgf.js.map} +3 -3
  12. package/dist/cli/chunk-487b95qy.js +329 -0
  13. package/dist/cli/chunk-487b95qy.js.map +13 -0
  14. package/dist/cli/chunk-4zxh25hc.js +157 -0
  15. package/dist/cli/chunk-4zxh25hc.js.map +10 -0
  16. package/dist/cli/chunk-69rjf786.js +146 -0
  17. package/dist/cli/chunk-69rjf786.js.map +11 -0
  18. package/dist/cli/{chunk-dqhg54mr.js → chunk-9h8mh2tk.js} +3 -3
  19. package/dist/cli/{chunk-dqhg54mr.js.map → chunk-9h8mh2tk.js.map} +2 -2
  20. package/dist/cli/{chunk-bqxaqn5p.js → chunk-9jqmq5hv.js} +8 -8
  21. package/dist/cli/{chunk-bqxaqn5p.js.map → chunk-9jqmq5hv.js.map} +1 -1
  22. package/dist/cli/{chunk-dv2z0rzf.js → chunk-aafhwx74.js} +38 -13
  23. package/dist/cli/{chunk-dv2z0rzf.js.map → chunk-aafhwx74.js.map} +5 -4
  24. package/dist/cli/{chunk-desvm72z.js → chunk-b680sv30.js} +22 -26
  25. package/dist/cli/chunk-b680sv30.js.map +13 -0
  26. package/dist/cli/{chunk-0w6hs479.js → chunk-beb0z983.js} +30 -18
  27. package/dist/cli/chunk-beb0z983.js.map +10 -0
  28. package/dist/cli/{chunk-1f882900.js → chunk-c5bjxq8v.js} +2 -2
  29. package/dist/cli/chunk-e1n41w9m.js +155 -0
  30. package/dist/cli/chunk-e1n41w9m.js.map +11 -0
  31. package/dist/cli/{chunk-sc93apfs.js → chunk-etckvbrh.js} +17 -17
  32. package/dist/cli/{chunk-sc93apfs.js.map → chunk-etckvbrh.js.map} +2 -2
  33. package/dist/cli/{chunk-bxwhtvw8.js → chunk-f260jdrn.js} +5 -5
  34. package/dist/cli/{chunk-74wfhv79.js → chunk-fnxgtjeq.js} +1 -1
  35. package/dist/cli/{chunk-ms9z66nz.js → chunk-gwy55cx3.js} +2 -2
  36. package/dist/cli/{chunk-ms9z66nz.js.map → chunk-gwy55cx3.js.map} +2 -2
  37. package/dist/cli/{chunk-dhwtqnnd.js → chunk-gxhcf2hs.js} +2 -2
  38. package/dist/cli/{chunk-tfycddbt.js → chunk-h0qwdbem.js} +2 -2
  39. package/dist/cli/{chunk-nbyvgnnm.js → chunk-hktq4j5r.js} +109 -49
  40. package/dist/cli/chunk-hktq4j5r.js.map +36 -0
  41. package/dist/cli/{chunk-twy7psdz.js → chunk-hn3g2b89.js} +14 -10
  42. package/dist/cli/chunk-hn3g2b89.js.map +10 -0
  43. package/dist/cli/{chunk-j1x92mx9.js → chunk-j4nfgn2j.js} +1 -1
  44. package/dist/cli/{chunk-dpy8qdjf.js → chunk-k45sq16q.js} +74 -183
  45. package/dist/cli/chunk-k45sq16q.js.map +18 -0
  46. package/dist/cli/{chunk-5cmts6dv.js → chunk-kmswjxj9.js} +7 -7
  47. package/dist/cli/{chunk-5cmts6dv.js.map → chunk-kmswjxj9.js.map} +1 -1
  48. package/dist/cli/{chunk-36bxs9c7.js → chunk-nqna8dzp.js} +27 -23
  49. package/dist/cli/chunk-nqna8dzp.js.map +10 -0
  50. package/dist/cli/{chunk-a57yh0h9.js → chunk-p834rkcn.js} +7 -7
  51. package/dist/cli/{chunk-a57yh0h9.js.map → chunk-p834rkcn.js.map} +1 -1
  52. package/dist/cli/{chunk-60hz265r.js → chunk-ppa6mg4d.js} +24 -11
  53. package/dist/cli/chunk-ppa6mg4d.js.map +10 -0
  54. package/dist/cli/{chunk-s0bdnc7v.js → chunk-q1wwrxzw.js} +5 -4
  55. package/dist/cli/chunk-q1wwrxzw.js.map +10 -0
  56. package/dist/cli/{chunk-ave1wcbr.js → chunk-qcyxkj44.js} +1 -1
  57. package/dist/cli/{chunk-124fvmzq.js → chunk-r5nm9w0c.js} +11183 -8806
  58. package/dist/cli/{chunk-124fvmzq.js.map → chunk-r5nm9w0c.js.map} +82 -66
  59. package/dist/cli/{chunk-ckrcm08h.js → chunk-rtvgmg2j.js} +48 -62
  60. package/dist/cli/{chunk-ckrcm08h.js.map → chunk-rtvgmg2j.js.map} +4 -5
  61. package/dist/cli/{chunk-297ajdcv.js → chunk-t2h8pwy1.js} +6 -6
  62. package/dist/cli/{chunk-297ajdcv.js.map → chunk-t2h8pwy1.js.map} +3 -3
  63. package/dist/cli/{chunk-gxtg6ed2.js → chunk-x60e15st.js} +21 -21
  64. package/dist/cli/{chunk-gxtg6ed2.js.map → chunk-x60e15st.js.map} +3 -3
  65. package/dist/cli/{chunk-58bt3hag.js → chunk-x7bh6d9j.js} +4 -4
  66. package/dist/cli/{chunk-hvcxng5f.js → chunk-ydqzkhjn.js} +6 -6
  67. package/dist/cli/{chunk-kdpzw38a.js → chunk-yg8ckc3g.js} +95 -7
  68. package/dist/cli/chunk-yg8ckc3g.js.map +11 -0
  69. package/dist/cli/{chunk-0pmb4tr4.js → chunk-zxd5jrgx.js} +1205 -222
  70. package/dist/cli/chunk-zxd5jrgx.js.map +44 -0
  71. package/dist/cli/index.js +78 -42
  72. package/dist/cli/index.js.map +7 -6
  73. package/dist/types/ai/changelog-components.d.ts +18 -0
  74. package/dist/types/ai/changelog-markdown.d.ts +12 -0
  75. package/dist/types/ai/openapi-components.d.ts +7 -7
  76. package/dist/types/ai/operation-details.d.ts +39 -0
  77. package/dist/types/ai/relative-links.d.ts +3 -1
  78. package/dist/types/ai/serializers.d.ts +6 -4
  79. package/dist/types/analytics/head.d.ts +4 -2
  80. package/dist/types/analytics/script.d.ts +8 -2
  81. package/dist/types/components/content/youtube.d.ts +20 -0
  82. package/dist/types/components/layout/nav-utils.d.ts +8 -0
  83. package/dist/types/components/openapi/example-panels.d.ts +33 -0
  84. package/dist/types/components/openapi/helpers.d.ts +53 -11
  85. package/dist/types/components/openapi/snippets.d.ts +7 -1
  86. package/dist/types/core/alert-diagnostics.d.ts +10 -0
  87. package/dist/types/core/builtin-tags.d.ts +16 -0
  88. package/dist/types/core/changelog-list.d.ts +48 -0
  89. package/dist/types/core/closest-match.d.ts +6 -0
  90. package/dist/types/core/code-fence-diagnostics.d.ts +18 -0
  91. package/dist/types/core/code-fences.d.ts +8 -1
  92. package/dist/types/core/config-input.d.ts +38 -6
  93. package/dist/types/core/content-assets.d.ts +16 -18
  94. package/dist/types/core/data.d.ts +6 -2
  95. package/dist/types/core/diagnostics.d.ts +14 -0
  96. package/dist/types/core/directive-diagnostics.d.ts +22 -8
  97. package/dist/types/core/former-routes.d.ts +14 -0
  98. package/dist/types/core/github.d.ts +5 -4
  99. package/dist/types/core/heading-markers.d.ts +65 -2
  100. package/dist/types/core/hidden-pages.d.ts +3 -0
  101. package/dist/types/core/includes.d.ts +23 -0
  102. package/dist/types/core/last-modified.d.ts +18 -6
  103. package/dist/types/core/links.d.ts +42 -2
  104. package/dist/types/core/load-module.d.ts +19 -4
  105. package/dist/types/core/manifest.d.ts +14 -1
  106. package/dist/types/core/markdown-mirrors.d.ts +22 -0
  107. package/dist/types/core/mcp-clients.d.ts +47 -0
  108. package/dist/types/core/mdx-elements.d.ts +32 -0
  109. package/dist/types/core/mdx-syntax.d.ts +100 -0
  110. package/dist/types/core/meta-diagnostics.d.ts +7 -0
  111. package/dist/types/core/meta.d.ts +32 -5
  112. package/dist/types/core/nav-diagnostics.d.ts +16 -2
  113. package/dist/types/core/navigation.d.ts +13 -0
  114. package/dist/types/core/ordering-prefix.d.ts +6 -0
  115. package/dist/types/core/pinned-ids.d.ts +23 -0
  116. package/dist/types/core/project-graph.d.ts +9 -1
  117. package/dist/types/core/redirect-patterns.d.ts +18 -0
  118. package/dist/types/core/relative-files.d.ts +31 -0
  119. package/dist/types/core/schema.d.ts +322 -11
  120. package/dist/types/core/sources/normalize.d.ts +101 -9
  121. package/dist/types/core/sources/types.d.ts +16 -0
  122. package/dist/types/core/static-files.d.ts +10 -0
  123. package/dist/types/core/static-host.d.ts +42 -0
  124. package/dist/types/core/svg-images.d.ts +26 -0
  125. package/dist/types/core/syntax-diagnostics.d.ts +14 -0
  126. package/dist/types/core/types.d.ts +42 -1
  127. package/dist/types/deploy/generated-files.d.ts +41 -0
  128. package/dist/types/deploy/redirects.d.ts +21 -7
  129. package/dist/types/markdown/code-title.d.ts +9 -5
  130. package/dist/types/markdown/directives.d.ts +8 -0
  131. package/dist/types/markdown/fence-language.d.ts +51 -0
  132. package/dist/types/markdown/fence-meta.d.ts +5 -0
  133. package/dist/types/markdown/github-alerts.d.ts +35 -0
  134. package/dist/types/openapi/asyncapi.d.ts +6 -5
  135. package/dist/types/openapi/checks.d.ts +10 -5
  136. package/dist/types/openapi/model.d.ts +55 -8
  137. package/dist/types/openapi/parse.d.ts +4 -1
  138. package/dist/types/ratelimit/index.d.ts +2 -0
  139. package/dist/types/ratelimit/memory.d.ts +1 -1
  140. package/dist/types/ratelimit/schema.d.ts +40 -0
  141. package/dist/types/ratelimit/unkey.d.ts +48 -0
  142. package/dist/types/sources/filesystem.d.ts +14 -4
  143. package/dist/types/sources/mdx-remote.d.ts +6 -3
  144. package/dist/types/sources/registry.d.ts +3 -3
  145. package/dist/types/theme/color.d.ts +33 -0
  146. package/dist/types/theme/palette.d.ts +122 -0
  147. package/docs/01-quickstart.mdx +1 -1
  148. package/docs/02-deployment.mdx +24 -8
  149. package/docs/04-migrating.mdx +16 -4
  150. package/docs/advanced/changelog.mdx +27 -1
  151. package/docs/advanced/skills.mdx +1 -1
  152. package/docs/cli/audit.mdx +1 -1
  153. package/docs/cli/doctor.mdx +2 -2
  154. package/docs/cli/evals.mdx +1 -1
  155. package/docs/cli/index.mdx +4 -2
  156. package/docs/cli/validate.mdx +10 -7
  157. package/docs/configuration/analytics.mdx +2 -0
  158. package/docs/configuration/customization.mdx +3 -1
  159. package/docs/configuration/index.mdx +7 -6
  160. package/docs/configuration/rate-limiting.mdx +20 -1
  161. package/docs/configuration/theming.mdx +5 -1
  162. package/docs/content/components.mdx +26 -6
  163. package/docs/content/frontmatter.mdx +1 -1
  164. package/docs/content/i18n.mdx +1 -1
  165. package/docs/content/includes.mdx +6 -2
  166. package/docs/content/index.mdx +11 -1
  167. package/docs/content/islands.mdx +2 -0
  168. package/docs/content/meta.mdx +9 -3
  169. package/docs/content/navigation.mdx +14 -6
  170. package/docs/content/sources/obsidian.mdx +1 -1
  171. package/docs/content/sources/remote-mdx.mdx +3 -1
  172. package/docs/content/syntax.mdx +76 -8
  173. package/docs/content/variables.mdx +3 -1
  174. package/docs/discoverability/agent-discovery.mdx +1 -1
  175. package/docs/discoverability/json-api.mdx +1 -1
  176. package/docs/discoverability/llms-txt.mdx +1 -1
  177. package/docs/discoverability/markdown.mdx +2 -2
  178. package/docs/discoverability/mcp.mdx +40 -8
  179. package/docs/discoverability/open-graph.mdx +1 -1
  180. package/docs/discoverability/sitemap-and-robots.mdx +1 -1
  181. package/docs/references/graphql.mdx +2 -0
  182. package/docs/references/openapi.mdx +45 -7
  183. package/package.json +4 -4
  184. package/skills/blume/SKILL.md +2 -2
  185. package/skills/blume-migrate/SKILL.md +51 -29
  186. package/skills/blume-migrate/references/docsify.md +262 -0
  187. package/skills/blume-migrate/references/docus.md +298 -0
  188. package/skills/blume-migrate/references/docusaurus.md +5 -5
  189. package/skills/blume-migrate/references/fern.md +327 -0
  190. package/skills/blume-migrate/references/fumadocs.md +1 -1
  191. package/skills/blume-migrate/references/gitbook.md +267 -0
  192. package/skills/blume-migrate/references/github-wiki.md +259 -0
  193. package/skills/blume-migrate/references/jekyll.md +253 -0
  194. package/skills/blume-migrate/references/mdbook.md +256 -0
  195. package/skills/blume-migrate/references/mintlify.md +5 -5
  196. package/skills/blume-migrate/references/mkdocs.md +236 -0
  197. package/skills/blume-migrate/references/monorepo.md +20 -8
  198. package/skills/blume-migrate/references/nextra.md +5 -5
  199. package/skills/blume-migrate/references/readme.md +257 -0
  200. package/skills/blume-migrate/references/redocly.md +198 -0
  201. package/skills/blume-migrate/references/starlight.md +3 -3
  202. package/skills/blume-migrate/references/vitepress.md +204 -0
  203. package/skills/blume-migrate/references/vuepress.md +271 -0
  204. package/skills/blume-migrate/scripts/docsify-codemod.mjs +2387 -0
  205. package/skills/blume-migrate/scripts/docus-codemod.mjs +2542 -0
  206. package/skills/blume-migrate/scripts/fern-codemod.mjs +2633 -0
  207. package/skills/blume-migrate/scripts/github-wiki-codemod.mjs +2808 -0
  208. package/skills/blume-migrate/scripts/include-excerpts.mjs +649 -0
  209. package/skills/blume-migrate/scripts/jekyll-codemod.mjs +3649 -0
  210. package/skills/blume-migrate/scripts/mintlify-codemod.mjs +17 -13
  211. package/skills/blume-migrate/scripts/mkdocs-codemod.mjs +2526 -0
  212. package/skills/blume-migrate/scripts/operation-routes.mjs +508 -0
  213. package/skills/blume-migrate/scripts/pin-heading-ids.mjs +1049 -0
  214. package/skills/blume-migrate/scripts/readme-codemod.mjs +4139 -0
  215. package/skills/blume-migrate/scripts/vitepress-codemod.mjs +1511 -0
  216. package/src/ai/changelog-components.ts +24 -0
  217. package/src/ai/changelog-markdown.ts +45 -41
  218. package/src/ai/component-markdown.ts +22 -9
  219. package/src/ai/llms.ts +36 -5
  220. package/src/ai/markdown.ts +2 -2
  221. package/src/ai/openapi-components.ts +25 -9
  222. package/src/ai/operation-details.ts +208 -0
  223. package/src/ai/relative-links.ts +48 -8
  224. package/src/ai/serializers.ts +7 -6
  225. package/src/ai/site-skill.ts +6 -2
  226. package/src/analytics/head.ts +11 -5
  227. package/src/analytics/script.ts +13 -3
  228. package/src/astro/generate.ts +47 -11
  229. package/src/astro/index.ts +1 -0
  230. package/src/astro/integration.ts +27 -1
  231. package/src/astro/mdx-source-errors.ts +46 -0
  232. package/src/astro/templates.ts +93 -189
  233. package/src/audit/checks/redirects.ts +5 -1
  234. package/src/audit/redirects.ts +36 -19
  235. package/src/audit/report.ts +22 -9
  236. package/src/audit/run.ts +12 -28
  237. package/src/audit/terms.ts +23 -0
  238. package/src/audit/url.ts +2 -2
  239. package/src/cli/build-failure.ts +256 -7
  240. package/src/cli/command-meta.ts +1 -1
  241. package/src/cli/commands/audit.ts +1 -1
  242. package/src/cli/commands/build.ts +12 -3
  243. package/src/cli/commands/check.ts +13 -2
  244. package/src/cli/commands/dev.ts +1 -1
  245. package/src/cli/commands/doctor.ts +4 -2
  246. package/src/cli/commands/init.ts +3 -3
  247. package/src/cli/commands/preview.ts +17 -1
  248. package/src/cli/commands/validate.ts +22 -10
  249. package/src/cli/prepare.ts +1 -1
  250. package/src/cli/preview-pages.ts +161 -0
  251. package/src/cli/required-secrets.ts +0 -1
  252. package/src/cli/unknown-flags.ts +1 -42
  253. package/src/components/code-copy.ts +51 -0
  254. package/src/components/code-language.ts +75 -0
  255. package/src/components/content/AccordionItem.astro +16 -1
  256. package/src/components/content/Callout.astro +11 -1
  257. package/src/components/content/Changelog.astro +189 -0
  258. package/src/components/content/CodeBlock.astro +8 -11
  259. package/src/components/content/Tabs.astro +16 -2
  260. package/src/components/content/YouTube.astro +6 -4
  261. package/src/components/content/code-block.ts +33 -0
  262. package/src/components/content/content-strings.ts +5 -1
  263. package/src/components/content/inline-markdown.ts +35 -8
  264. package/src/components/content/youtube.ts +49 -7
  265. package/src/components/layout/Analytics.astro +5 -1
  266. package/src/components/layout/NavTree.astro +8 -3
  267. package/src/components/layout/PageActions.astro +81 -23
  268. package/src/components/layout/RootLayout.astro +35 -32
  269. package/src/components/layout/SiteFooter.astro +31 -8
  270. package/src/components/layout/nav-utils.ts +14 -0
  271. package/src/components/layout/search/pagefind.ts +2 -1
  272. package/src/components/openapi/Operation.astro +4 -0
  273. package/src/components/openapi/PanelTabs.astro +9 -3
  274. package/src/components/openapi/RequestBody.astro +42 -8
  275. package/src/components/openapi/RequestPanel.astro +34 -53
  276. package/src/components/openapi/example-panels.ts +110 -0
  277. package/src/components/openapi/helpers.ts +195 -20
  278. package/src/components/openapi/operation-model.ts +63 -26
  279. package/src/components/openapi/request.ts +13 -0
  280. package/src/components/openapi/snippets.ts +14 -2
  281. package/src/core/alert-diagnostics.ts +89 -0
  282. package/src/core/builtin-tags.ts +76 -0
  283. package/src/core/changelog-list.ts +87 -0
  284. package/src/core/closest-match.ts +41 -0
  285. package/src/core/code-fence-diagnostics.ts +267 -0
  286. package/src/core/code-fences.ts +43 -7
  287. package/src/core/component-diagnostics.ts +65 -12
  288. package/src/core/config-input.ts +39 -5
  289. package/src/core/config.ts +46 -1
  290. package/src/core/content-assets.ts +64 -144
  291. package/src/core/data.ts +10 -3
  292. package/src/core/diagnostics.ts +36 -3
  293. package/src/core/directive-diagnostics.ts +265 -47
  294. package/src/core/former-routes.ts +46 -0
  295. package/src/core/git-ignored.ts +53 -0
  296. package/src/core/github.ts +5 -4
  297. package/src/core/heading-markers.ts +156 -2
  298. package/src/core/hidden-pages.ts +64 -0
  299. package/src/core/includes.ts +181 -41
  300. package/src/core/last-modified.ts +47 -10
  301. package/src/core/links.ts +438 -83
  302. package/src/core/load-module.ts +98 -9
  303. package/src/core/manifest.ts +12 -9
  304. package/src/core/markdown-mirrors.ts +52 -0
  305. package/src/core/mcp-clients.ts +87 -0
  306. package/src/core/mdx-elements.ts +153 -0
  307. package/src/core/mdx-syntax.ts +377 -0
  308. package/src/core/meta-diagnostics.ts +134 -0
  309. package/src/core/meta.ts +154 -55
  310. package/src/core/nav-diagnostics.ts +41 -4
  311. package/src/core/navigation.ts +70 -10
  312. package/src/core/ordering-prefix.ts +22 -2
  313. package/src/core/pinned-ids.ts +141 -0
  314. package/src/core/project-graph.ts +221 -29
  315. package/src/core/redirect-patterns.ts +41 -0
  316. package/src/core/relative-files.ts +145 -0
  317. package/src/core/schema.ts +110 -6
  318. package/src/core/sources/mdx-remote.ts +75 -14
  319. package/src/core/sources/normalize.ts +885 -179
  320. package/src/core/sources/notion.ts +5 -4
  321. package/src/core/sources/obsidian.ts +2 -5
  322. package/src/core/sources/types.ts +17 -0
  323. package/src/core/static-files.ts +40 -0
  324. package/src/core/static-host.ts +125 -0
  325. package/src/core/svg-images.ts +98 -0
  326. package/src/core/syntax-diagnostics.ts +491 -0
  327. package/src/core/types.ts +43 -1
  328. package/src/deploy/artifacts.ts +2 -28
  329. package/src/deploy/generated-files.ts +128 -0
  330. package/src/deploy/platforms/vercel.ts +25 -1
  331. package/src/deploy/redirects.ts +43 -16
  332. package/src/deploy/sitemap.ts +2 -1
  333. package/src/markdown/base-links.ts +87 -6
  334. package/src/markdown/code-title.ts +29 -13
  335. package/src/markdown/content-assets.ts +210 -0
  336. package/src/markdown/directives.ts +69 -5
  337. package/src/markdown/fence-language.ts +106 -0
  338. package/src/markdown/fence-meta.ts +42 -0
  339. package/src/markdown/github-alerts.ts +172 -0
  340. package/src/markdown/heading-anchors.ts +265 -56
  341. package/src/markdown/include.ts +30 -3
  342. package/src/markdown/index.ts +145 -40
  343. package/src/markdown/prompt-text.ts +95 -0
  344. package/src/markdown/relative-links.ts +37 -2
  345. package/src/markdown/route-snapshot.ts +22 -12
  346. package/src/markdown/svg-fallback.ts +51 -0
  347. package/src/markdown/title-heading.ts +134 -0
  348. package/src/migrate/migrate.ts +127 -2
  349. package/src/og/card.ts +14 -4
  350. package/src/openapi/asyncapi.ts +14 -6
  351. package/src/openapi/checks.ts +160 -15
  352. package/src/openapi/model.ts +172 -33
  353. package/src/openapi/parse.ts +13 -4
  354. package/src/openapi/render-mdx.ts +55 -9
  355. package/src/openapi/source.ts +87 -6
  356. package/src/ratelimit/index.ts +2 -0
  357. package/src/ratelimit/memory.ts +1 -1
  358. package/src/ratelimit/runtime.ts +81 -0
  359. package/src/ratelimit/schema.ts +2 -0
  360. package/src/ratelimit/unkey.ts +61 -0
  361. package/src/registry/eject.ts +0 -1
  362. package/src/registry/registry.ts +1 -1
  363. package/src/search/documents.ts +10 -2
  364. package/src/sources/filesystem.ts +28 -3
  365. package/src/sources/mdx-remote.ts +7 -15
  366. package/src/theme/color.ts +14 -0
  367. package/src/theme/entry.ts +22 -1
  368. package/src/theme/palette.ts +74 -1
  369. package/dist/cli/chunk-0pmb4tr4.js.map +0 -35
  370. package/dist/cli/chunk-0w6hs479.js.map +0 -10
  371. package/dist/cli/chunk-150jk7km.js +0 -52
  372. package/dist/cli/chunk-150jk7km.js.map +0 -10
  373. package/dist/cli/chunk-36bxs9c7.js.map +0 -10
  374. package/dist/cli/chunk-53jqw8z0.js +0 -89
  375. package/dist/cli/chunk-53jqw8z0.js.map +0 -10
  376. package/dist/cli/chunk-60hz265r.js.map +0 -10
  377. package/dist/cli/chunk-desvm72z.js.map +0 -14
  378. package/dist/cli/chunk-dpy8qdjf.js.map +0 -17
  379. package/dist/cli/chunk-es8h0v3j.js +0 -441
  380. package/dist/cli/chunk-es8h0v3j.js.map +0 -11
  381. package/dist/cli/chunk-kdpzw38a.js.map +0 -11
  382. package/dist/cli/chunk-nbyvgnnm.js.map +0 -36
  383. package/dist/cli/chunk-s0bdnc7v.js.map +0 -10
  384. package/dist/cli/chunk-twy7psdz.js.map +0 -10
  385. package/dist/cli/chunk-ydp3065p.js +0 -64
  386. package/dist/cli/chunk-ydp3065p.js.map +0 -10
  387. /package/dist/cli/{chunk-y4msrwm9.js.map → chunk-080mfch6.js.map} +0 -0
  388. /package/dist/cli/{chunk-9qzgg6mj.js.map → chunk-34wap3ed.js.map} +0 -0
  389. /package/dist/cli/{chunk-1f882900.js.map → chunk-c5bjxq8v.js.map} +0 -0
  390. /package/dist/cli/{chunk-bxwhtvw8.js.map → chunk-f260jdrn.js.map} +0 -0
  391. /package/dist/cli/{chunk-74wfhv79.js.map → chunk-fnxgtjeq.js.map} +0 -0
  392. /package/dist/cli/{chunk-dhwtqnnd.js.map → chunk-gxhcf2hs.js.map} +0 -0
  393. /package/dist/cli/{chunk-tfycddbt.js.map → chunk-h0qwdbem.js.map} +0 -0
  394. /package/dist/cli/{chunk-j1x92mx9.js.map → chunk-j4nfgn2j.js.map} +0 -0
  395. /package/dist/cli/{chunk-ave1wcbr.js.map → chunk-qcyxkj44.js.map} +0 -0
  396. /package/dist/cli/{chunk-58bt3hag.js.map → chunk-x7bh6d9j.js.map} +0 -0
  397. /package/dist/cli/{chunk-hvcxng5f.js.map → chunk-ydqzkhjn.js.map} +0 -0
@@ -3,7 +3,8 @@ import {
3
3
  packageRoot,
4
4
  getBlumeVersion,
5
5
  BlumeError,
6
- enrichDiagnostic
6
+ enrichDiagnostic,
7
+ formatDiagnostic
7
8
  } from "./index.js";
8
9
  import {
9
10
  resolveFallbackLocale,
@@ -45,7 +46,7 @@ import {
45
46
  EN_UI,
46
47
  resolveUIStrings,
47
48
  buildIncludeGraph,
48
- rewriteRelativeImages,
49
+ rewriteRelativeAssets,
49
50
  collectContentAssets,
50
51
  buildRssFeeds,
51
52
  renderRssFeed,
@@ -54,8 +55,19 @@ import {
54
55
  readOverlaidSpec,
55
56
  isOpenApiSource,
56
57
  buildRawMarkdown,
57
- markdownRoutePaths
58
- } from "./chunk-124fvmzq.js";
58
+ markdownRoutePaths,
59
+ resolveAccent,
60
+ resolveRadius,
61
+ buildThemeCss
62
+ } from "./chunk-r5nm9w0c.js";
63
+ import {
64
+ validateSearchPopularIcons,
65
+ validateMcpClientIcons,
66
+ validateNavTargets,
67
+ gitEnv,
68
+ realPath,
69
+ gitRepositoryRoot
70
+ } from "./chunk-zxd5jrgx.js";
59
71
  import {
60
72
  trimChar,
61
73
  normalizeBasePath,
@@ -64,15 +76,11 @@ import {
64
76
  siteRoot,
65
77
  absoluteUrl2
66
78
  } from "./chunk-zccbjcj0.js";
67
- import {
68
- validateSearchPopularIcons,
69
- validateNavTargets
70
- } from "./chunk-0pmb4tr4.js";
71
79
  import {
72
80
  EXPANDABLE_VISIBLE_LINES,
73
81
  buildSearchDocuments,
74
82
  buildMcpData
75
- } from "./chunk-desvm72z.js";
83
+ } from "./chunk-b680sv30.js";
76
84
  import {
77
85
  planComponentSlots,
78
86
  publishRuntimeModules,
@@ -113,9 +121,13 @@ import {
113
121
  examplesPageTemplate,
114
122
  runtimePackageTemplate,
115
123
  runtimeTsconfigTemplate
116
- } from "./chunk-dpy8qdjf.js";
124
+ } from "./chunk-k45sq16q.js";
125
+ import {
126
+ servedFiles
127
+ } from "./chunk-487b95qy.js";
117
128
  import {
118
129
  validateUsedComponents,
130
+ unknownPropDiagnostics,
119
131
  missingExampleDiagnostics,
120
132
  discoverIslands,
121
133
  EXAMPLE_SCAN_GLOB,
@@ -123,22 +135,17 @@ import {
123
135
  discoverExamples,
124
136
  exampleMarkdownLookup,
125
137
  missingDependencyDiagnostic
126
- } from "./chunk-ckrcm08h.js";
138
+ } from "./chunk-rtvgmg2j.js";
127
139
  import {
128
140
  emptyComponentOverrides,
129
141
  analyzeComponentOverrides
130
- } from "./chunk-j1x92mx9.js";
142
+ } from "./chunk-j4nfgn2j.js";
131
143
  import {
132
144
  writeTextAtomic
133
145
  } from "./chunk-jq5n4avg.js";
134
- import {
135
- resolveAccent,
136
- resolveRadius,
137
- buildThemeCss
138
- } from "./chunk-es8h0v3j.js";
139
146
  import {
140
147
  registry
141
- } from "./chunk-dqhg54mr.js";
148
+ } from "./chunk-9h8mh2tk.js";
142
149
 
143
150
  // src/astro/integration.ts
144
151
  import { join as join4, relative, resolve as resolve2 } from "pathe";
@@ -246,10 +253,6 @@ import { dirname as dirname2, join as join2 } from "pathe";
246
253
  var jsonBytes = (value) => Buffer.byteLength(JSON.stringify(value), "utf-8");
247
254
  var WIDEST_CHARACTER = jsonBytes("\x00");
248
255
 
249
- // src/deploy/sitemap.ts
250
- import { escape as escapeXml } from "html-escaper";
251
- var ERROR_ROUTES = new Set(["/404", "/500"]);
252
-
253
256
  // src/astro/integration.ts
254
257
  var REGISTRY_KEY = Symbol.for("blume.integration");
255
258
  var registry2 = () => {
@@ -382,7 +385,7 @@ import {
382
385
  import { createRequire as createRequire2 } from "node:module";
383
386
  import { pathToFileURL } from "node:url";
384
387
  import pMap from "p-map";
385
- import { dirname as dirname8, isAbsolute as isAbsolute5, join as join11, normalize as normalize2, relative as relative5, resolve as resolve6 } from "pathe";
388
+ import { dirname as dirname8, isAbsolute as isAbsolute6, join as join11, normalize as normalize2, relative as relative6, resolve as resolve6 } from "pathe";
386
389
  import { glob } from "tinyglobby";
387
390
 
388
391
  // src/ai/api/problem.ts
@@ -959,6 +962,39 @@ var navVariants = (data, hiddenDefault = null) => [
959
962
  })))
960
963
  ];
961
964
 
965
+ // src/core/git-ignored.ts
966
+ import { execFileSync } from "node:child_process";
967
+ import { isAbsolute, relative as relative2 } from "pathe";
968
+ var gitIgnoredPaths = (root, paths) => {
969
+ const gitRoot = paths.length > 0 ? gitRepositoryRoot(root) : null;
970
+ if (gitRoot === null) {
971
+ return new Set;
972
+ }
973
+ const top = realPath(gitRoot);
974
+ const byRepoPath = new Map;
975
+ for (const path of paths) {
976
+ const rel = relative2(top, realPath(path));
977
+ if (!(rel.startsWith("..") || isAbsolute(rel))) {
978
+ byRepoPath.set(rel, path);
979
+ }
980
+ }
981
+ try {
982
+ const output = execFileSync("git", ["-C", top, "check-ignore", "-z", "--stdin"], {
983
+ encoding: "utf-8",
984
+ env: gitEnv(),
985
+ input: [...byRepoPath.keys()].map((rel) => `${rel}\x00`).join(""),
986
+ maxBuffer: 256 * 1024 * 1024,
987
+ stdio: ["pipe", "pipe", "ignore"]
988
+ });
989
+ return new Set(output.split("\x00").flatMap((rel) => {
990
+ const path = byRepoPath.get(rel);
991
+ return path === undefined ? [] : [path];
992
+ }));
993
+ } catch {
994
+ return new Set;
995
+ }
996
+ };
997
+
962
998
  // src/core/svg-dimensions.ts
963
999
  var ROOT = /<svg\s(?:[^>"']|"[^"]*"|'[^']*')*>/u;
964
1000
  var WIDTH = /\swidth=(?<quote>['"])(?<value>[^%]+?)\k<quote>/u;
@@ -1207,9 +1243,9 @@ var hasMermaidFence = (text) => MERMAID_FENCE.test(text);
1207
1243
 
1208
1244
  // src/og/derive.ts
1209
1245
  import { existsSync as existsSync3 } from "node:fs";
1210
- import { isAbsolute, join as join7 } from "pathe";
1246
+ import { isAbsolute as isAbsolute2, join as join7 } from "pathe";
1211
1247
  var CARD_WEIGHTS = [400, 600];
1212
- var absoluteSrc = (root, src) => isAbsolute(src) ? src : join7(root, src);
1248
+ var absoluteSrc = (root, src) => isAbsolute2(src) ? src : join7(root, src);
1213
1249
  var isNumericWeight = (weight) => typeof weight === "number";
1214
1250
  var isRangeWeight = (weight) => typeof weight === "string";
1215
1251
  var isFontName = (value) => typeof value === "string";
@@ -1405,7 +1441,7 @@ var resolveOgLogo = (project, source) => {
1405
1441
 
1406
1442
  // src/openapi/scalar.ts
1407
1443
  import { readFile as readFile2 } from "node:fs/promises";
1408
- import { isAbsolute as isAbsolute2, join as join9 } from "pathe";
1444
+ import { isAbsolute as isAbsolute3, join as join9 } from "pathe";
1409
1445
  var URL_SPEC = /^https?:\/\//u;
1410
1446
  var referencePagePath = (route) => {
1411
1447
  const segments = trimChar(route, "/");
@@ -1442,7 +1478,7 @@ var specConfiguration = async (ref, root) => {
1442
1478
  if (URL_SPEC.test(spec)) {
1443
1479
  return { config: { url: spec } };
1444
1480
  }
1445
- const absolute = isAbsolute2(spec) ? spec : join9(root, spec);
1481
+ const absolute = isAbsolute3(spec) ? spec : join9(root, spec);
1446
1482
  try {
1447
1483
  return { config: { content: await readFile2(absolute, "utf-8") } };
1448
1484
  } catch {
@@ -1522,10 +1558,10 @@ var resolveSearchPopular = (popular, basePath) => popular.map(({ href, icon, lab
1522
1558
  });
1523
1559
 
1524
1560
  // src/search/source-pages.ts
1525
- import { relative as relative2 } from "pathe";
1561
+ import { relative as relative3 } from "pathe";
1526
1562
  var sourcePages = (project) => project.manifest.routes.flatMap((route) => route.indexable && route.sourcePath ? [
1527
1563
  [
1528
- relative2(project.context.root, route.sourcePath),
1564
+ relative3(project.context.root, route.sourcePath),
1529
1565
  { title: route.title, url: route.path }
1530
1566
  ]
1531
1567
  ] : []);
@@ -1562,13 +1598,18 @@ var TOKEN_DEFAULTS = `:root {
1562
1598
  --blume-action: var(--blume-accent);
1563
1599
  --blume-action-foreground: var(--blume-accent-foreground);
1564
1600
  --blume-code-background: oklch(0.99 0 0);
1565
- /* Shiki notation transformers: line/word highlight, diff add/remove. */
1601
+ /* Shiki notation transformers: line/word highlight, diff add/remove, and
1602
+ error/warning lines. */
1566
1603
  --blume-code-highlight: oklch(0.55 0.16 255 / 0.1);
1567
1604
  --blume-code-highlight-border: oklch(0.55 0.16 255 / 0.55);
1568
1605
  --blume-code-add: oklch(0.72 0.16 150 / 0.16);
1569
1606
  --blume-code-add-border: oklch(0.52 0.15 150 / 0.7);
1570
1607
  --blume-code-remove: oklch(0.66 0.21 22 / 0.16);
1571
1608
  --blume-code-remove-border: oklch(0.55 0.2 22 / 0.7);
1609
+ --blume-code-error: oklch(0.66 0.21 22 / 0.16);
1610
+ --blume-code-error-border: oklch(0.55 0.2 22 / 0.7);
1611
+ --blume-code-warning: oklch(0.8 0.16 80 / 0.2);
1612
+ --blume-code-warning-border: oklch(0.66 0.15 70 / 0.75);
1572
1613
  --blume-code-word: oklch(0.55 0.16 255 / 0.16);
1573
1614
  --blume-code-word-border: oklch(0.55 0.16 255 / 0.5);
1574
1615
  --blume-radius: 0.75rem;
@@ -1628,6 +1669,10 @@ var TOKEN_DEFAULTS = `:root {
1628
1669
  --blume-code-add-border: oklch(0.72 0.16 150 / 0.7);
1629
1670
  --blume-code-remove: oklch(0.72 0.21 22 / 0.22);
1630
1671
  --blume-code-remove-border: oklch(0.7 0.2 22 / 0.7);
1672
+ --blume-code-error: oklch(0.72 0.21 22 / 0.22);
1673
+ --blume-code-error-border: oklch(0.7 0.2 22 / 0.7);
1674
+ --blume-code-warning: oklch(0.82 0.16 80 / 0.18);
1675
+ --blume-code-warning-border: oklch(0.82 0.16 80 / 0.7);
1631
1676
  --blume-code-word: oklch(0.7 0.14 255 / 0.22);
1632
1677
  --blume-code-word-border: oklch(0.7 0.14 255 / 0.55);
1633
1678
  }`;
@@ -2350,6 +2395,18 @@ pre[data-line-numbers] .line::before {
2350
2395
  box-shadow: inset 2px 0 0 0 var(--blume-code-remove-border);
2351
2396
  }
2352
2397
 
2398
+ /* Error and warning lines (\`// [!code error]\`, \`// [!code warning]\`) are
2399
+ highlighted lines with a level class, tinted red and amber. */
2400
+ .line.highlighted.error {
2401
+ background-color: var(--blume-code-error) !important;
2402
+ box-shadow: inset 2px 0 0 0 var(--blume-code-error-border);
2403
+ }
2404
+
2405
+ .line.highlighted.warning {
2406
+ background-color: var(--blume-code-warning) !important;
2407
+ box-shadow: inset 2px 0 0 0 var(--blume-code-warning-border);
2408
+ }
2409
+
2353
2410
  /* Word highlight (\`// [!code word:x]\`) wraps matches in an inline span. The
2354
2411
  element selector keeps it ahead of the transparent token-span rule. */
2355
2412
  span.highlighted-word {
@@ -2544,15 +2601,15 @@ ${options.userCss}
2544
2601
  `;
2545
2602
 
2546
2603
  // src/theme/sources.ts
2547
- import { dirname as dirname6, isAbsolute as isAbsolute3, relative as relative3, resolve as resolve4 } from "pathe";
2604
+ import { dirname as dirname6, isAbsolute as isAbsolute4, relative as relative4, resolve as resolve4 } from "pathe";
2548
2605
  var SOURCE_DIRECTIVE = /@source(?<not>\s+not)?\s+(?<quote>["'])(?<path>[^"']+)\k<quote>/gu;
2549
2606
  var rebaseSourceDirectives = (css, options) => {
2550
2607
  const base = dirname6(options.from);
2551
2608
  return css.replace(SOURCE_DIRECTIVE, (directive, not, quote, path) => {
2552
- if (isAbsolute3(path)) {
2609
+ if (isAbsolute4(path)) {
2553
2610
  return directive;
2554
2611
  }
2555
- const rebased = relative3(options.to, resolve4(base, path));
2612
+ const rebased = relative4(options.to, resolve4(base, path));
2556
2613
  return `@source${not ?? ""} ${quote}${rebased}${quote}`;
2557
2614
  });
2558
2615
  };
@@ -2644,10 +2701,10 @@ import { existsSync as existsSync5, realpathSync } from "node:fs";
2644
2701
  import {
2645
2702
  basename,
2646
2703
  dirname as dirname7,
2647
- isAbsolute as isAbsolute4,
2704
+ isAbsolute as isAbsolute5,
2648
2705
  join as join10,
2649
2706
  normalize,
2650
- relative as relative4,
2707
+ relative as relative5,
2651
2708
  resolve as resolve5
2652
2709
  } from "pathe";
2653
2710
  var depsCandidates = (pkgDir) => [
@@ -2856,7 +2913,7 @@ var loadIntegrationBridge = async (config, context) => {
2856
2913
  return;
2857
2914
  }
2858
2915
  return {
2859
- configFile: relative5(context.outDir, context.configFile),
2916
+ configFile: relative6(context.outDir, context.configFile),
2860
2917
  sourceHash: hashConfigSource(await readOptional(context.configFile))
2861
2918
  };
2862
2919
  };
@@ -2892,7 +2949,7 @@ var collectStaged = (project) => {
2892
2949
  const staged = new Map;
2893
2950
  for (const page of project.graph.pages) {
2894
2951
  if (page.collection === "staged" && page.entryId && page.body) {
2895
- const text = page.sourcePath ? rewriteRelativeImages({
2952
+ const text = page.sourcePath ? rewriteRelativeAssets({
2896
2953
  deployBase: project.config.deployment.options.base,
2897
2954
  projectRoot: project.context.root,
2898
2955
  source: page.body.text,
@@ -3066,7 +3123,7 @@ var resolveApiPages = (config) => {
3066
3123
  };
3067
3124
  var resolveFooter = (config) => {
3068
3125
  const { footer } = config;
3069
- return footer && (footer.links.length > 0 || Object.keys(footer.socials).length > 0) ? footer : null;
3126
+ return footer && (footer.copyright !== undefined || footer.links.length > 0 || Object.keys(footer.socials).length > 0) ? footer : null;
3070
3127
  };
3071
3128
  var resolveOgMark = (project, siteLogo) => {
3072
3129
  const configured = project.config.seo.og.logo;
@@ -3120,14 +3177,15 @@ var buildRuntimeData = (project) => {
3120
3177
  const editBase = github ? editBaseUrl(github) : null;
3121
3178
  const logo = resolveLogo(project);
3122
3179
  const ogLogo = resolveOgMark(project, logo?.svg);
3180
+ const ignored = editBase ? gitIgnoredPaths(context.root, manifest.routes.flatMap((route) => route.editUrl === undefined && route.sourcePath ? [route.sourcePath] : [])) : new Set;
3123
3181
  const editUrlFor = (sourcePath) => {
3124
- if (!(editBase && sourcePath)) {
3182
+ if (!(editBase && sourcePath) || ignored.has(sourcePath)) {
3125
3183
  return null;
3126
3184
  }
3127
- const rel = relative5(context.root, sourcePath).split("\\").join("/");
3185
+ const rel = relative6(context.root, sourcePath).split("\\").join("/");
3128
3186
  const editDir = trimChar(github?.dir ?? "", "/");
3129
3187
  const editPath = normalize2(editDir ? join11(editDir, rel) : rel);
3130
- if (editPath.startsWith("..") || isAbsolute5(editPath)) {
3188
+ if (editPath.startsWith("..") || isAbsolute6(editPath)) {
3131
3189
  return null;
3132
3190
  }
3133
3191
  return `${editBase}/${editPath}`;
@@ -3203,6 +3261,7 @@ var buildRuntimeData = (project) => {
3203
3261
  imageZoom: config.markdown.imageZoom,
3204
3262
  logo,
3205
3263
  mcp: config.agents.mcp.enabled ? {
3264
+ clients: config.agents.mcp.clients,
3206
3265
  name: config.agents.mcp.name ?? config.title,
3207
3266
  route: config.agents.mcp.route
3208
3267
  } : null,
@@ -3636,7 +3695,8 @@ var generateRuntime = async (project) => {
3636
3695
  config,
3637
3696
  context,
3638
3697
  filesystem: hasFilesystemSource,
3639
- staged: hasStaged
3698
+ staged: hasStaged,
3699
+ unparsable: project.unparsable
3640
3700
  })),
3641
3701
  write(join11(srcDir, "pages", "[...slug].astro"), catchAllPageTemplate({
3642
3702
  exportEpub,
@@ -3686,8 +3746,7 @@ var generateRuntime = async (project) => {
3686
3746
  await write(join11(srcDir, "pages", "changelog.astro"), changelogIndexTemplate({
3687
3747
  exportEpub,
3688
3748
  exportPdf,
3689
- needsReact,
3690
- staged: hasStaged
3749
+ needsReact
3691
3750
  }));
3692
3751
  }
3693
3752
  const [examplesWarnings] = await Promise.all([
@@ -3740,14 +3799,15 @@ var generateRuntime = async (project) => {
3740
3799
  ...overrideWarnings
3741
3800
  ];
3742
3801
  warnings.push(...[
3743
- ...validateNavTargets(project.graph.navigation, navTargetRoutes(project, pages)),
3744
- ...validateSearchPopularIcons(config.search.popular)
3802
+ ...validateNavTargets(project.graph.navigation, navTargetRoutes(project, pages), servedFiles(project)),
3803
+ ...validateSearchPopularIcons(config.search.popular),
3804
+ ...config.agents.mcp.enabled ? validateMcpClientIcons(config.agents.mcp.clients, config.i18n?.defaultLocale) : []
3745
3805
  ].map(diagnosticWarning));
3746
3806
  const knownComponentTags = new Set([
3747
3807
  ...islandDiscovery.islands.map((island) => island.name),
3748
3808
  ...overrideAnalysis.mdx.map((entry) => entry.key)
3749
3809
  ]);
3750
- warnings.push(...validateUsedComponents(project.graph.pages, knownComponentTags, new Set(registry.map((item) => item.name))).map(diagnosticWarning), ...missingExampleDiagnostics(project.graph.pages, exampleDiscovery, context.root, knownComponentTags).map(diagnosticWarning), ...dependencyWarnings);
3810
+ warnings.push(...validateUsedComponents(project.graph.pages, knownComponentTags, new Set(registry.map((item) => item.name))).map(diagnosticWarning), ...missingExampleDiagnostics(project.graph.pages, exampleDiscovery, context.root, knownComponentTags).map(diagnosticWarning), ...unknownPropDiagnostics(project.graph.pages, knownComponentTags).map((diagnostic) => formatDiagnostic(enrichDiagnostic(diagnostic), context.root)), ...dependencyWarnings);
3751
3811
  if (hasScalarReferences(config)) {
3752
3812
  const references = await buildReferenceFiles({
3753
3813
  config,
@@ -3772,5 +3832,5 @@ var generateRuntime = async (project) => {
3772
3832
 
3773
3833
  export { publishBuildProject, refreshBlumeContent, showBlumeErrorOverlay, ogCacheDir, pruneCardCache, cardCacheTally, buildApiSpec, buildAskData, resolveOgFonts, buildReferenceFiles, sourcePages, tailwindEntryTemplate, examplesEntryTemplate, rebaseSourceDirectives, twoslashCss, packageDirFrom, detectNeedsReact, detectUsesMath, collectStaged, playgroundProxyPattern, buildRuntimeData, PLAYGROUND_PROXY_ENTRY, specOrigins, proxyAllowlistWarnings, analyzeComponentsFile, languageIconCssFor, clientFeaturesFor, generateRuntime };
3774
3834
 
3775
- //# debugId=02FADD64003B143964756E2164756E21
3776
- //# sourceMappingURL=chunk-nbyvgnnm.js.map
3835
+ //# debugId=059A60BA29892E2564756E2164756E21
3836
+ //# sourceMappingURL=chunk-hktq4j5r.js.map