blume 1.7.3 → 2.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 (673) hide show
  1. package/AGENTS.md +19 -0
  2. package/CHANGELOG.md +217 -0
  3. package/README.md +34 -21
  4. package/dist/cli/chunk-11j0384y.js +148 -0
  5. package/dist/cli/chunk-11j0384y.js.map +10 -0
  6. package/dist/cli/{chunk-rqy0s5wh.js → chunk-1w8dp3qb.js} +17 -16
  7. package/dist/cli/{chunk-rqy0s5wh.js.map → chunk-1w8dp3qb.js.map} +3 -3
  8. package/dist/cli/chunk-2q1dwty4.js +75 -0
  9. package/dist/cli/chunk-2q1dwty4.js.map +11 -0
  10. package/dist/cli/chunk-41za066z.js +122 -0
  11. package/dist/cli/chunk-41za066z.js.map +11 -0
  12. package/dist/cli/chunk-5a2z0198.js +133 -0
  13. package/dist/cli/chunk-5a2z0198.js.map +10 -0
  14. package/dist/cli/{chunk-5g0w1e2c.js → chunk-6k8vp3ta.js} +25 -13
  15. package/dist/cli/{chunk-5g0w1e2c.js.map → chunk-6k8vp3ta.js.map} +4 -4
  16. package/dist/cli/{chunk-5qk08vmp.js → chunk-79njf86q.js} +133 -54
  17. package/dist/cli/chunk-79njf86q.js.map +11 -0
  18. package/dist/cli/{chunk-e7f42gdj.js → chunk-7ez8ny0t.js} +2 -2
  19. package/dist/cli/{chunk-nn13znc2.js → chunk-88cpgt6h.js} +1 -1
  20. package/dist/cli/chunk-a9kptbw5.js +361 -0
  21. package/dist/cli/chunk-a9kptbw5.js.map +14 -0
  22. package/dist/cli/chunk-abh8yjkn.js +31 -0
  23. package/dist/cli/chunk-abh8yjkn.js.map +10 -0
  24. package/dist/cli/chunk-b5aj94ah.js +91 -0
  25. package/dist/cli/chunk-b5aj94ah.js.map +10 -0
  26. package/dist/cli/{chunk-b27xqwn9.js → chunk-bctazmbk.js} +9 -5
  27. package/dist/cli/chunk-bctazmbk.js.map +10 -0
  28. package/dist/cli/chunk-beat36xx.js +279 -0
  29. package/dist/cli/chunk-beat36xx.js.map +10 -0
  30. package/dist/cli/chunk-bnbmcwfb.js +145 -0
  31. package/dist/cli/chunk-bnbmcwfb.js.map +11 -0
  32. package/dist/cli/{chunk-0xjyb285.js → chunk-bw22s759.js} +15 -5
  33. package/dist/cli/{chunk-0xjyb285.js.map → chunk-bw22s759.js.map} +4 -4
  34. package/dist/cli/chunk-by2290sx.js +39 -0
  35. package/dist/cli/chunk-by2290sx.js.map +10 -0
  36. package/dist/cli/chunk-d1tadaw7.js +79 -0
  37. package/dist/cli/chunk-d1tadaw7.js.map +10 -0
  38. package/dist/cli/{chunk-ahnw3kxw.js → chunk-d80hr03s.js} +24 -19
  39. package/dist/cli/chunk-d80hr03s.js.map +15 -0
  40. package/dist/cli/chunk-ernrthtr.js +97 -0
  41. package/dist/cli/chunk-ernrthtr.js.map +10 -0
  42. package/dist/cli/chunk-f2972sbt.js +374 -0
  43. package/dist/cli/chunk-f2972sbt.js.map +10 -0
  44. package/dist/cli/{chunk-vacwm2hv.js → chunk-f7t03s3g.js} +2 -2
  45. package/dist/cli/{chunk-2z47ypj8.js → chunk-fa25z98p.js} +16 -3
  46. package/dist/cli/chunk-fa25z98p.js.map +11 -0
  47. package/dist/cli/{chunk-cjtn640a.js → chunk-fh5hj5jt.js} +43 -20
  48. package/dist/cli/chunk-fh5hj5jt.js.map +10 -0
  49. package/dist/cli/{chunk-yg63d42r.js → chunk-j8mw0za6.js} +86 -57
  50. package/dist/cli/chunk-j8mw0za6.js.map +35 -0
  51. package/dist/cli/{chunk-ct47dqpx.js → chunk-jts8mvcz.js} +67 -7
  52. package/dist/cli/{chunk-2mzebbbz.js.map → chunk-jts8mvcz.js.map} +6 -4
  53. package/dist/cli/{chunk-ps4m1xh4.js → chunk-mnqj32sj.js} +505 -542
  54. package/dist/cli/chunk-mnqj32sj.js.map +12 -0
  55. package/dist/cli/{chunk-8cjtbafj.js → chunk-mwt1k8n7.js} +100 -374
  56. package/dist/cli/chunk-mwt1k8n7.js.map +10 -0
  57. package/dist/cli/chunk-nk3ts2xk.js +51 -0
  58. package/dist/cli/chunk-nk3ts2xk.js.map +10 -0
  59. package/dist/cli/{chunk-3r45185y.js → chunk-pat2zzwc.js} +9 -11
  60. package/dist/cli/{chunk-3r45185y.js.map → chunk-pat2zzwc.js.map} +2 -2
  61. package/dist/cli/chunk-pnnvybbk.js +176 -0
  62. package/dist/cli/chunk-pnnvybbk.js.map +11 -0
  63. package/dist/cli/{chunk-4x36ddpw.js → chunk-sqn5t4q0.js} +81 -87
  64. package/dist/cli/chunk-sqn5t4q0.js.map +10 -0
  65. package/dist/cli/{chunk-bvwwhd84.js → chunk-tzne8qfq.js} +15 -15
  66. package/dist/cli/{chunk-bvwwhd84.js.map → chunk-tzne8qfq.js.map} +1 -1
  67. package/dist/cli/chunk-xaz13gwg.js +12449 -0
  68. package/dist/cli/chunk-xaz13gwg.js.map +182 -0
  69. package/dist/cli/chunk-y3e45rc8.js +102 -0
  70. package/dist/cli/chunk-y3e45rc8.js.map +10 -0
  71. package/dist/cli/chunk-z01ze5c1.js +261 -0
  72. package/dist/cli/chunk-z01ze5c1.js.map +10 -0
  73. package/dist/cli/{chunk-k79xp7av.js → chunk-z1f5arsg.js} +219 -689
  74. package/dist/cli/chunk-z1f5arsg.js.map +36 -0
  75. package/dist/cli/{chunk-1jefwnfs.js → chunk-zg2gtj10.js} +1076 -2592
  76. package/dist/cli/chunk-zg2gtj10.js.map +35 -0
  77. package/dist/cli/{chunk-dwgcp5sm.js → chunk-zxccj738.js} +1 -1
  78. package/dist/cli/index.js +214 -57
  79. package/dist/cli/index.js.map +8 -7
  80. package/dist/types/ai/agent-readability.d.ts +52 -0
  81. package/dist/types/ai/ai-catalog.d.ts +42 -0
  82. package/dist/types/ai/api/paths.d.ts +17 -0
  83. package/dist/types/ai/api-catalog.d.ts +18 -0
  84. package/dist/types/ai/ask.d.ts +368 -0
  85. package/dist/types/ai/changelog-markdown.d.ts +2 -0
  86. package/dist/types/ai/component-markdown.d.ts +2 -2
  87. package/dist/types/ai/index.d.ts +24 -0
  88. package/dist/types/ai/link-headers.d.ts +24 -0
  89. package/dist/types/ai/llms.d.ts +25 -0
  90. package/dist/types/ai/markdown.d.ts +45 -0
  91. package/dist/types/ai/mcp/discovery.d.ts +68 -0
  92. package/dist/types/ai/mcp/tools.d.ts +16 -0
  93. package/dist/types/ai/openapi-components.d.ts +43 -0
  94. package/dist/types/ai/relative-links.d.ts +26 -0
  95. package/dist/types/ai/serializers.d.ts +15 -0
  96. package/dist/types/ai/skills.d.ts +42 -0
  97. package/dist/types/ai/tar.d.ts +25 -0
  98. package/dist/types/ai/visibility.d.ts +17 -0
  99. package/dist/types/ai/web-bot-auth.d.ts +16 -0
  100. package/dist/types/analytics/adobe.d.ts +35 -0
  101. package/dist/types/analytics/amplitude.d.ts +50 -0
  102. package/dist/types/analytics/clarity.d.ts +31 -0
  103. package/dist/types/analytics/clearbit.d.ts +29 -0
  104. package/dist/types/analytics/cloudflare.d.ts +41 -0
  105. package/dist/types/analytics/fathom.d.ts +41 -0
  106. package/dist/types/analytics/google-analytics.d.ts +44 -0
  107. package/dist/types/analytics/google-tag-manager.d.ts +40 -0
  108. package/dist/types/analytics/head.d.ts +30 -0
  109. package/dist/types/analytics/heap.d.ts +40 -0
  110. package/dist/types/analytics/hightouch.d.ts +44 -0
  111. package/dist/types/analytics/hotjar.d.ts +33 -0
  112. package/dist/types/analytics/index.d.ts +61 -0
  113. package/dist/types/analytics/inline.d.ts +17 -0
  114. package/dist/types/analytics/logrocket.d.ts +44 -0
  115. package/dist/types/analytics/mixpanel.d.ts +67 -0
  116. package/dist/types/analytics/pirsch.d.ts +42 -0
  117. package/dist/types/analytics/plausible.d.ts +56 -0
  118. package/dist/types/analytics/posthog.d.ts +45 -0
  119. package/dist/types/analytics/schema.d.ts +320 -0
  120. package/dist/types/analytics/script.d.ts +46 -0
  121. package/dist/types/analytics/segment.d.ts +50 -0
  122. package/dist/types/analytics/vercel.d.ts +48 -0
  123. package/dist/types/astro/integration.d.ts +76 -0
  124. package/dist/types/astro/markdown-negotiation.d.ts +23 -0
  125. package/dist/types/astro/module-types.d.ts +14 -0
  126. package/dist/types/astro/pages.d.ts +44 -0
  127. package/dist/types/cli/env.d.ts +12 -0
  128. package/dist/types/cli/init/scaffold.d.ts +154 -0
  129. package/dist/types/components/layout/nav-utils.d.ts +11 -0
  130. package/dist/types/core/adapter.d.ts +47 -0
  131. package/dist/types/core/api-name.d.ts +7 -0
  132. package/dist/types/core/changelog-index.d.ts +13 -0
  133. package/dist/types/core/config-input.d.ts +186 -515
  134. package/dist/types/core/config.d.ts +60 -34
  135. package/dist/types/core/content-assets.d.ts +76 -0
  136. package/dist/types/core/custom-pages.d.ts +33 -0
  137. package/dist/types/core/data.d.ts +27 -12
  138. package/dist/types/core/define-components.d.ts +12 -9
  139. package/dist/types/core/deployment-env.d.ts +6 -11
  140. package/dist/types/core/frontmatter.d.ts +10 -0
  141. package/dist/types/core/graph.d.ts +18 -0
  142. package/dist/types/core/heading-markers.d.ts +54 -0
  143. package/dist/types/core/i18n-ui.d.ts +6 -2
  144. package/dist/types/core/i18n.d.ts +87 -0
  145. package/dist/types/core/includes.d.ts +138 -0
  146. package/dist/types/core/last-modified.d.ts +47 -0
  147. package/dist/types/core/links.d.ts +95 -0
  148. package/dist/types/core/locale-links.d.ts +60 -0
  149. package/dist/types/core/manifest.d.ts +17 -0
  150. package/dist/types/core/meta.d.ts +38 -0
  151. package/dist/types/core/nav-diagnostics.d.ts +26 -0
  152. package/dist/types/core/navigation.d.ts +6 -0
  153. package/dist/types/core/node-require.d.ts +19 -0
  154. package/dist/types/core/package-json.d.ts +13 -0
  155. package/dist/types/core/probe.d.ts +42 -0
  156. package/dist/types/core/project-graph.d.ts +51 -0
  157. package/dist/types/core/project.d.ts +2 -0
  158. package/dist/types/core/safe-href.d.ts +2 -0
  159. package/dist/types/core/safe-links.d.ts +26 -0
  160. package/dist/types/core/schema.d.ts +2282 -452
  161. package/dist/types/core/site-url.d.ts +16 -0
  162. package/dist/types/core/sources/assets.d.ts +36 -0
  163. package/dist/types/core/sources/cache.d.ts +37 -0
  164. package/dist/types/core/sources/collection.d.ts +28 -0
  165. package/dist/types/core/sources/contentful-rich-text.d.ts +31 -0
  166. package/dist/types/core/sources/contentful.d.ts +40 -0
  167. package/dist/types/core/sources/filesystem.d.ts +24 -0
  168. package/dist/types/core/sources/github-releases.d.ts +31 -0
  169. package/dist/types/core/sources/json.d.ts +30 -0
  170. package/dist/types/core/sources/lexical.d.ts +19 -0
  171. package/dist/types/core/sources/lower.d.ts +75 -0
  172. package/dist/types/core/sources/mdx-remote.d.ts +28 -0
  173. package/dist/types/core/sources/normalize.d.ts +147 -0
  174. package/dist/types/core/sources/notion.d.ts +131 -0
  175. package/dist/types/core/sources/obsidian.d.ts +46 -0
  176. package/dist/types/core/sources/payload.d.ts +39 -0
  177. package/dist/types/core/sources/portable-text.d.ts +42 -0
  178. package/dist/types/core/sources/read.d.ts +23 -0
  179. package/dist/types/core/sources/remote.d.ts +74 -0
  180. package/dist/types/core/sources/resolve.d.ts +19 -0
  181. package/dist/types/core/sources/sanity.d.ts +43 -0
  182. package/dist/types/core/sources/strapi-blocks.d.ts +12 -0
  183. package/dist/types/core/sources/strapi.d.ts +33 -0
  184. package/dist/types/core/sources/types.d.ts +7 -0
  185. package/dist/types/core/sources/watch.d.ts +45 -0
  186. package/dist/types/core/text-width.d.ts +11 -0
  187. package/dist/types/core/types.d.ts +15 -1
  188. package/dist/types/core/unrecognized-keys.d.ts +7 -0
  189. package/dist/types/core/versions.d.ts +72 -0
  190. package/dist/types/core/yaml.d.ts +9 -0
  191. package/dist/types/deploy/adapter-output.d.ts +45 -0
  192. package/dist/types/deploy/adapters/cloudflare.d.ts +40 -0
  193. package/dist/types/deploy/adapters/index.d.ts +29 -0
  194. package/dist/types/deploy/adapters/netlify.d.ts +37 -0
  195. package/dist/types/deploy/adapters/node.d.ts +37 -0
  196. package/dist/types/deploy/adapters/registry.d.ts +133 -0
  197. package/dist/types/deploy/adapters/types.d.ts +71 -0
  198. package/dist/types/deploy/adapters/vercel.d.ts +38 -0
  199. package/dist/types/deploy/artifacts.d.ts +65 -0
  200. package/dist/types/deploy/cloudflare-negotiation.d.ts +196 -0
  201. package/dist/types/deploy/function-bundle.d.ts +80 -0
  202. package/dist/types/deploy/headers.d.ts +50 -0
  203. package/dist/types/deploy/node-headers.d.ts +42 -0
  204. package/dist/types/deploy/platforms/cloudflare.d.ts +40 -0
  205. package/dist/types/deploy/platforms/index.d.ts +18 -0
  206. package/dist/types/deploy/platforms/netlify.d.ts +13 -0
  207. package/dist/types/deploy/platforms/node.d.ts +11 -0
  208. package/dist/types/deploy/platforms/paths.d.ts +27 -0
  209. package/dist/types/deploy/platforms/static.d.ts +10 -0
  210. package/dist/types/deploy/platforms/types.d.ts +104 -0
  211. package/dist/types/deploy/platforms/vercel.d.ts +32 -0
  212. package/dist/types/deploy/redirects.d.ts +53 -0
  213. package/dist/types/deploy/robots.d.ts +8 -0
  214. package/dist/types/deploy/rss.d.ts +31 -0
  215. package/dist/types/deploy/sitemap.d.ts +21 -0
  216. package/dist/types/deploy/vercel-negotiation.d.ts +109 -0
  217. package/dist/types/markdown/code-title.d.ts +32 -0
  218. package/dist/types/markdown/fence-meta.d.ts +23 -0
  219. package/dist/types/markdown/themes.d.ts +3 -3
  220. package/dist/types/openapi/asyncapi.d.ts +129 -0
  221. package/dist/types/openapi/graphql-build.d.ts +8 -0
  222. package/dist/types/openapi/graphql.d.ts +122 -0
  223. package/dist/types/openapi/model.d.ts +158 -0
  224. package/dist/types/openapi/parse.d.ts +57 -0
  225. package/dist/types/openapi/references.d.ts +37 -25
  226. package/dist/types/openapi/render-mdx.d.ts +33 -0
  227. package/dist/types/openapi/sentence.d.ts +7 -0
  228. package/dist/types/openapi/signature.d.ts +10 -0
  229. package/dist/types/openapi/source.d.ts +22 -0
  230. package/dist/types/openapi/spec-dependency-error.d.ts +10 -0
  231. package/dist/types/reference/asyncapi.d.ts +166 -0
  232. package/dist/types/reference/graphql.d.ts +181 -0
  233. package/dist/types/reference/index.d.ts +32 -0
  234. package/dist/types/reference/openapi.d.ts +165 -0
  235. package/dist/types/reference/options.d.ts +157 -0
  236. package/dist/types/reference/scalar.d.ts +136 -0
  237. package/dist/types/reference/schema.d.ts +630 -0
  238. package/dist/types/search/adapters/algolia.d.ts +32 -0
  239. package/dist/types/search/adapters/flexsearch.d.ts +12 -0
  240. package/dist/types/search/adapters/index.d.ts +31 -0
  241. package/dist/types/search/adapters/mixedbread.d.ts +22 -0
  242. package/dist/types/search/adapters/orama-cloud.d.ts +33 -0
  243. package/dist/types/search/adapters/orama.d.ts +13 -0
  244. package/dist/types/search/adapters/pagefind.d.ts +12 -0
  245. package/dist/types/search/adapters/registry.d.ts +228 -0
  246. package/dist/types/search/adapters/types.d.ts +34 -0
  247. package/dist/types/search/adapters/typesense.d.ts +42 -0
  248. package/dist/types/search/build.d.ts +23 -0
  249. package/dist/types/search/documents.d.ts +90 -0
  250. package/dist/types/search/facets.d.ts +3 -0
  251. package/dist/types/search/sync/algolia.d.ts +14 -0
  252. package/dist/types/search/sync/index.d.ts +14 -0
  253. package/dist/types/search/sync/orama-cloud.d.ts +10 -0
  254. package/dist/types/search/sync/typesense.d.ts +14 -0
  255. package/dist/types/sources/contentful.d.ts +68 -0
  256. package/dist/types/sources/custom.d.ts +20 -0
  257. package/dist/types/sources/filesystem.d.ts +42 -0
  258. package/dist/types/sources/github-releases.d.ts +46 -0
  259. package/dist/types/sources/index.d.ts +48 -0
  260. package/dist/types/sources/mdx-remote.d.ts +63 -0
  261. package/dist/types/sources/notion.d.ts +65 -0
  262. package/dist/types/sources/obsidian.d.ts +34 -0
  263. package/dist/types/sources/payload.d.ts +68 -0
  264. package/dist/types/sources/registry.d.ts +1414 -0
  265. package/dist/types/sources/sanity.d.ts +69 -0
  266. package/dist/types/sources/shared.d.ts +46 -0
  267. package/dist/types/sources/strapi.d.ts +66 -0
  268. package/dist/types/theme/icon-kind.d.ts +11 -0
  269. package/dist/types/theme/icons.d.ts +20 -0
  270. package/docs/01-quickstart.mdx +18 -18
  271. package/docs/02-deployment.mdx +50 -26
  272. package/docs/03-upgrading.mdx +351 -0
  273. package/docs/04-migrating.mdx +58 -0
  274. package/docs/08-faq.mdx +3 -3
  275. package/docs/advanced/blog.mdx +13 -6
  276. package/docs/advanced/changelog.mdx +23 -35
  277. package/docs/advanced/custom-pages.mdx +20 -8
  278. package/docs/advanced/meta.ts +1 -8
  279. package/docs/advanced/skills.mdx +8 -0
  280. package/docs/cli/audit.mdx +646 -0
  281. package/docs/cli/doctor.mdx +29 -0
  282. package/docs/{reference/eval.mdx → cli/evals.mdx} +9 -8
  283. package/docs/cli/index.mdx +105 -0
  284. package/docs/cli/meta.ts +7 -0
  285. package/docs/{reference → cli}/translate.mdx +1 -1
  286. package/docs/cli/validate.mdx +41 -0
  287. package/docs/cli/version.mdx +40 -0
  288. package/docs/configuration/analytics.mdx +350 -59
  289. package/docs/configuration/ask-ai.mdx +162 -61
  290. package/docs/configuration/customization.mdx +15 -9
  291. package/docs/configuration/index.mdx +50 -31
  292. package/docs/configuration/search.mdx +75 -54
  293. package/docs/configuration/theming.mdx +24 -15
  294. package/docs/content/components.mdx +21 -5
  295. package/docs/{reference → content}/frontmatter.mdx +35 -1
  296. package/docs/content/i18n.mdx +8 -6
  297. package/docs/content/includes.mdx +2 -4
  298. package/docs/content/index.mdx +1 -1
  299. package/docs/content/islands.mdx +10 -5
  300. package/docs/content/meta.mdx +1 -1
  301. package/docs/content/meta.ts +1 -0
  302. package/docs/content/navigation.mdx +9 -7
  303. package/docs/content/sources.mdx +145 -50
  304. package/docs/content/syntax.mdx +16 -12
  305. package/docs/content/versioning.mdx +3 -3
  306. package/docs/discoverability/agent-discovery.mdx +11 -11
  307. package/docs/discoverability/index.mdx +4 -4
  308. package/docs/discoverability/json-api.mdx +4 -4
  309. package/docs/discoverability/llms-txt.mdx +6 -6
  310. package/docs/discoverability/markdown.mdx +4 -4
  311. package/docs/discoverability/mcp.mdx +11 -11
  312. package/docs/discoverability/sitemap-and-robots.mdx +3 -3
  313. package/docs/index.mdx +2 -2
  314. package/docs/references/asyncapi.mdx +59 -0
  315. package/docs/{advanced → references}/graphql.mdx +45 -32
  316. package/docs/{reference → references}/meta.ts +2 -2
  317. package/docs/references/openapi.mdx +171 -0
  318. package/docs/references/scalar.mdx +64 -0
  319. package/package.json +42 -8
  320. package/skills/blume/SKILL.md +21 -8
  321. package/skills/blume-migrate/SKILL.md +22 -21
  322. package/skills/blume-migrate/assets/oxfmt@0.67.0.patch +49 -0
  323. package/skills/blume-migrate/references/docusaurus.md +5 -4
  324. package/skills/blume-migrate/references/fumadocs.md +4 -4
  325. package/skills/blume-migrate/references/mintlify.md +23 -8
  326. package/skills/blume-migrate/references/monorepo.md +6 -6
  327. package/skills/blume-migrate/references/starlight.md +4 -4
  328. package/src/ai/agent-readability.ts +21 -22
  329. package/src/ai/ai-catalog.ts +50 -32
  330. package/src/ai/api/handlers.ts +46 -11
  331. package/src/ai/api-catalog.ts +8 -8
  332. package/src/ai/ask-data.ts +1 -1
  333. package/src/ai/ask.ts +624 -100
  334. package/src/ai/changelog-markdown.ts +91 -0
  335. package/src/ai/component-markdown.ts +328 -12
  336. package/src/ai/index.ts +45 -0
  337. package/src/ai/link-headers.ts +7 -6
  338. package/src/ai/llms.ts +20 -15
  339. package/src/ai/markdown.ts +35 -5
  340. package/src/ai/mcp/data.ts +9 -5
  341. package/src/ai/openapi-components.ts +4 -1
  342. package/src/ai/relative-links.ts +170 -0
  343. package/src/ai/serializers.ts +2 -2
  344. package/src/ai/skills.ts +1 -1
  345. package/src/ai/web-bot-auth.ts +2 -2
  346. package/src/analytics/adobe.ts +46 -0
  347. package/src/analytics/amplitude.ts +79 -0
  348. package/src/analytics/clarity.ts +46 -0
  349. package/src/analytics/clearbit.ts +47 -0
  350. package/src/analytics/cloudflare.ts +67 -0
  351. package/src/analytics/fathom.ts +64 -0
  352. package/src/analytics/google-analytics.ts +84 -0
  353. package/src/analytics/google-tag-manager.ts +61 -0
  354. package/src/analytics/head.ts +130 -0
  355. package/src/analytics/heap.ts +65 -0
  356. package/src/analytics/hightouch.ts +77 -0
  357. package/src/analytics/hotjar.ts +47 -0
  358. package/src/analytics/index.ts +71 -0
  359. package/src/analytics/inline.ts +21 -0
  360. package/src/analytics/logrocket.ts +71 -0
  361. package/src/analytics/mixpanel.ts +92 -0
  362. package/src/analytics/pirsch.ts +66 -0
  363. package/src/analytics/plausible.ts +83 -0
  364. package/src/analytics/posthog.ts +78 -0
  365. package/src/analytics/schema.ts +60 -0
  366. package/src/analytics/script.ts +60 -0
  367. package/src/analytics/segment.ts +85 -0
  368. package/src/analytics/vercel.ts +50 -0
  369. package/src/astro/adapter-root.ts +7 -9
  370. package/src/astro/component-slots.ts +131 -91
  371. package/src/astro/generate.ts +112 -345
  372. package/src/astro/integration.ts +2 -6
  373. package/src/astro/pages.ts +13 -101
  374. package/src/astro/render-deps.ts +379 -0
  375. package/src/astro/runtime-deps.ts +201 -0
  376. package/src/astro/templates.ts +554 -541
  377. package/src/audit/agent.ts +24 -0
  378. package/src/audit/catalog.ts +2 -2
  379. package/src/audit/checks/assets.ts +2 -2
  380. package/src/audit/checks/dns-aid.ts +1 -1
  381. package/src/audit/checks/duplicates.ts +3 -1
  382. package/src/audit/checks/i18n.ts +1 -1
  383. package/src/audit/checks/indexability.ts +7 -7
  384. package/src/audit/checks/links.ts +2 -2
  385. package/src/audit/checks/llms.ts +6 -6
  386. package/src/audit/checks/network.ts +3 -3
  387. package/src/audit/checks/og-image.ts +2 -2
  388. package/src/audit/checks/robots.ts +1 -1
  389. package/src/audit/checks/sitemap.ts +2 -2
  390. package/src/audit/checks/social.ts +1 -1
  391. package/src/audit/run.ts +4 -3
  392. package/src/audit/terms.ts +31 -0
  393. package/src/audit/url.ts +13 -13
  394. package/src/cli/command-meta.ts +10 -0
  395. package/src/cli/commands/audit.ts +39 -20
  396. package/src/cli/commands/build.ts +71 -316
  397. package/src/cli/commands/check.ts +1 -0
  398. package/src/cli/commands/dev.ts +40 -1
  399. package/src/cli/commands/doctor.ts +90 -14
  400. package/src/cli/commands/eject.ts +44 -7
  401. package/src/cli/commands/eval.ts +2 -2
  402. package/src/cli/commands/init.ts +161 -41
  403. package/src/cli/commands/migrate.ts +121 -0
  404. package/src/cli/commands/preview.ts +7 -1
  405. package/src/cli/commands/translate.ts +2 -2
  406. package/src/cli/commands/upgrade.ts +141 -0
  407. package/src/cli/commands/version.ts +57 -44
  408. package/src/cli/eject-scripts.ts +121 -6
  409. package/src/cli/index.ts +11 -1
  410. package/src/cli/init/install.ts +70 -0
  411. package/src/cli/init/questions.ts +7 -0
  412. package/src/cli/init/scaffold.ts +459 -75
  413. package/src/cli/lazy-command.ts +37 -1
  414. package/src/cli/prepare.ts +40 -6
  415. package/src/cli/required-secrets.ts +38 -11
  416. package/src/cli/unknown-flags.ts +266 -0
  417. package/src/cli/yarn-pnp.ts +52 -0
  418. package/src/components/content/AccordionItem.astro +7 -1
  419. package/src/components/content/Card.astro +4 -3
  420. package/src/components/content/ColorItem.astro +22 -4
  421. package/src/components/content/GithubInfo.astro +2 -2
  422. package/src/components/content/Prompt.astro +25 -25
  423. package/src/components/content/Tabs.astro +3 -1
  424. package/src/components/content/Tile.astro +2 -3
  425. package/src/components/content/Tooltip.astro +57 -9
  426. package/src/components/content/content-strings.ts +34 -0
  427. package/src/components/content/diff.ts +1 -1
  428. package/src/components/content/mermaid-element.ts +13 -2
  429. package/src/components/content/prompt-markdown.ts +292 -0
  430. package/src/components/content/tooltip-id.ts +41 -0
  431. package/src/components/islands/hooks.ts +25 -2
  432. package/src/components/layout/Analytics.astro +21 -79
  433. package/src/components/layout/Banner.astro +3 -1
  434. package/src/components/layout/DiscoveryLinks.astro +69 -0
  435. package/src/components/layout/Header.astro +83 -20
  436. package/src/components/layout/LanguageSwitcher.astro +4 -1
  437. package/src/components/layout/Logo.astro +23 -2
  438. package/src/components/layout/NavSelector.astro +13 -2
  439. package/src/components/layout/NavTree.astro +12 -3
  440. package/src/components/layout/NavTreeScript.astro +17 -3
  441. package/src/components/layout/PageActions.astro +3 -3
  442. package/src/components/layout/PageFeedback.astro +11 -1
  443. package/src/components/layout/PageLayout.astro +52 -5
  444. package/src/components/layout/ReferenceLayout.astro +21 -12
  445. package/src/components/layout/RootLayout.astro +69 -66
  446. package/src/components/layout/Search.astro +30 -6
  447. package/src/components/layout/WebMcp.astro +1 -1
  448. package/src/components/layout/analytics-client.ts +72 -15
  449. package/src/components/layout/drawer-inert.ts +113 -15
  450. package/src/components/layout/dropdown-clamp.ts +105 -0
  451. package/src/components/layout/head-scripts.ts +15 -6
  452. package/src/components/layout/nav-utils.ts +17 -0
  453. package/src/components/layout/search/algolia.ts +8 -8
  454. package/src/components/layout/search/orama-cloud.ts +9 -7
  455. package/src/components/layout/search/typesense.ts +11 -17
  456. package/src/components/openapi/MessageComposer.astro +2 -2
  457. package/src/components/openapi/Playground.astro +2 -2
  458. package/src/components/openapi/playground-client.ts +79 -10
  459. package/src/core/changelog-index.ts +24 -0
  460. package/src/core/component-overrides.ts +399 -154
  461. package/src/core/config-input.ts +188 -553
  462. package/src/core/config.ts +130 -41
  463. package/src/core/custom-pages.ts +105 -0
  464. package/src/core/data.ts +31 -12
  465. package/src/core/define-components.ts +12 -9
  466. package/src/core/deployment-env.ts +18 -74
  467. package/src/core/diagnostics.ts +14 -7
  468. package/src/core/graph.ts +69 -25
  469. package/src/core/i18n-ui.ts +6 -2
  470. package/src/core/i18n.ts +17 -0
  471. package/src/core/includes.ts +156 -38
  472. package/src/core/last-modified.ts +6 -11
  473. package/src/core/links.ts +166 -2
  474. package/src/core/manifest.ts +10 -3
  475. package/src/core/navigation.ts +115 -16
  476. package/src/core/new-tab.ts +35 -0
  477. package/src/core/node-require.ts +21 -0
  478. package/src/core/project-graph.ts +42 -26
  479. package/src/core/project.ts +9 -4
  480. package/src/core/request-body.ts +61 -0
  481. package/src/core/safe-href.ts +28 -0
  482. package/src/core/safe-links.ts +68 -0
  483. package/src/core/schema.ts +517 -739
  484. package/src/core/server-features.ts +8 -9
  485. package/src/core/sources/assets.ts +47 -11
  486. package/src/core/sources/collection.ts +67 -0
  487. package/src/core/sources/contentful-rich-text.ts +285 -0
  488. package/src/core/sources/contentful.ts +173 -0
  489. package/src/core/sources/github-releases.ts +51 -1
  490. package/src/core/sources/json.ts +71 -0
  491. package/src/core/sources/lexical.ts +195 -0
  492. package/src/core/sources/lower.ts +226 -0
  493. package/src/core/sources/normalize.ts +52 -2
  494. package/src/core/sources/notion.ts +39 -28
  495. package/src/core/sources/payload.ts +135 -0
  496. package/src/core/sources/portable-text.ts +11 -16
  497. package/src/core/sources/remote.ts +226 -0
  498. package/src/core/sources/resolve.ts +104 -166
  499. package/src/core/sources/sanity.ts +16 -49
  500. package/src/core/sources/strapi-blocks.ts +124 -0
  501. package/src/core/sources/strapi.ts +191 -0
  502. package/src/core/sources/types.ts +12 -1
  503. package/src/core/types.ts +15 -1
  504. package/src/core/ui-packs/ar.ts +6 -2
  505. package/src/core/ui-packs/bg.ts +6 -2
  506. package/src/core/ui-packs/bn.ts +6 -2
  507. package/src/core/ui-packs/ca.ts +3 -1
  508. package/src/core/ui-packs/cs.ts +6 -2
  509. package/src/core/ui-packs/da.ts +6 -2
  510. package/src/core/ui-packs/de.ts +6 -2
  511. package/src/core/ui-packs/el.ts +3 -1
  512. package/src/core/ui-packs/es.ts +3 -1
  513. package/src/core/ui-packs/fa.ts +6 -2
  514. package/src/core/ui-packs/fi.ts +6 -2
  515. package/src/core/ui-packs/fr.ts +3 -1
  516. package/src/core/ui-packs/he.ts +6 -2
  517. package/src/core/ui-packs/hi.ts +6 -2
  518. package/src/core/ui-packs/hr.ts +6 -2
  519. package/src/core/ui-packs/hu.ts +6 -2
  520. package/src/core/ui-packs/id.ts +6 -2
  521. package/src/core/ui-packs/it.ts +3 -1
  522. package/src/core/ui-packs/ja.ts +3 -1
  523. package/src/core/ui-packs/ko.ts +3 -1
  524. package/src/core/ui-packs/nl.ts +6 -2
  525. package/src/core/ui-packs/no.ts +6 -2
  526. package/src/core/ui-packs/pl.ts +6 -2
  527. package/src/core/ui-packs/pt-br.ts +3 -1
  528. package/src/core/ui-packs/pt.ts +3 -1
  529. package/src/core/ui-packs/ro.ts +6 -2
  530. package/src/core/ui-packs/ru.ts +6 -2
  531. package/src/core/ui-packs/sk.ts +6 -2
  532. package/src/core/ui-packs/sr.ts +6 -2
  533. package/src/core/ui-packs/sv.ts +6 -2
  534. package/src/core/ui-packs/th.ts +3 -1
  535. package/src/core/ui-packs/tr.ts +6 -2
  536. package/src/core/ui-packs/uk.ts +6 -2
  537. package/src/core/ui-packs/vi.ts +3 -1
  538. package/src/core/ui-packs/zh-tw.ts +3 -1
  539. package/src/core/ui-packs/zh.ts +3 -1
  540. package/src/core/unrecognized-keys.ts +10 -0
  541. package/src/core/version-cut.ts +116 -8
  542. package/src/deploy/adapter-output.ts +57 -97
  543. package/src/deploy/adapters/cloudflare.ts +39 -0
  544. package/src/deploy/adapters/index.ts +41 -0
  545. package/src/deploy/adapters/netlify.ts +34 -0
  546. package/src/deploy/adapters/node.ts +34 -0
  547. package/src/deploy/adapters/registry.ts +127 -0
  548. package/src/deploy/adapters/types.ts +92 -0
  549. package/src/deploy/adapters/vercel.ts +35 -0
  550. package/src/deploy/artifacts.ts +55 -27
  551. package/src/deploy/cloudflare-negotiation.ts +179 -100
  552. package/src/deploy/function-bundle.ts +18 -3
  553. package/src/deploy/headers.ts +124 -23
  554. package/src/deploy/node-headers.ts +198 -0
  555. package/src/deploy/platforms/cloudflare.ts +312 -0
  556. package/src/deploy/platforms/index.ts +67 -0
  557. package/src/deploy/platforms/netlify.ts +52 -0
  558. package/src/deploy/platforms/node.ts +40 -0
  559. package/src/deploy/platforms/paths.ts +42 -0
  560. package/src/deploy/platforms/static.ts +29 -0
  561. package/src/deploy/platforms/types.ts +112 -0
  562. package/src/deploy/platforms/vercel.ts +193 -0
  563. package/src/deploy/redirects.ts +30 -18
  564. package/src/deploy/robots.ts +3 -3
  565. package/src/deploy/rss.ts +2 -2
  566. package/src/deploy/sitemap.ts +2 -2
  567. package/src/deploy/vercel-negotiation.ts +2 -2
  568. package/src/eval/agents.ts +32 -1
  569. package/src/eval/findings.ts +19 -11
  570. package/src/eval/report.ts +10 -2
  571. package/src/markdown/external-links.ts +65 -0
  572. package/src/markdown/include.ts +45 -27
  573. package/src/markdown/index.ts +34 -9
  574. package/src/markdown/inline-code.ts +12 -6
  575. package/src/markdown/relative-links.ts +324 -0
  576. package/src/markdown/themes.ts +3 -3
  577. package/src/migrate/migrate.ts +149 -0
  578. package/src/openapi/parse.ts +64 -16
  579. package/src/openapi/proxy.ts +62 -10
  580. package/src/openapi/references.ts +147 -147
  581. package/src/openapi/render-mdx.ts +32 -10
  582. package/src/openapi/scalar.ts +15 -13
  583. package/src/openapi/sentence.ts +14 -0
  584. package/src/openapi/source.ts +37 -21
  585. package/src/openapi/spec-dependency-error.ts +15 -0
  586. package/src/reference/asyncapi.ts +83 -0
  587. package/src/reference/graphql.ts +89 -0
  588. package/src/reference/index.ts +40 -0
  589. package/src/reference/openapi.ts +83 -0
  590. package/src/reference/options.ts +201 -0
  591. package/src/reference/scalar.ts +136 -0
  592. package/src/reference/schema.ts +88 -0
  593. package/src/registry/eject.ts +97 -42
  594. package/src/search/adapters/algolia.ts +46 -0
  595. package/src/search/adapters/flexsearch.ts +29 -0
  596. package/src/search/adapters/index.ts +39 -0
  597. package/src/search/adapters/mixedbread.ts +39 -0
  598. package/src/search/adapters/orama-cloud.ts +51 -0
  599. package/src/search/adapters/orama.ts +24 -0
  600. package/src/search/adapters/pagefind.ts +27 -0
  601. package/src/search/adapters/registry.ts +131 -0
  602. package/src/search/adapters/types.ts +46 -0
  603. package/src/search/adapters/typesense.ts +57 -0
  604. package/src/search/build.ts +8 -4
  605. package/src/search/documents.ts +6 -0
  606. package/src/search/sync/algolia.ts +12 -11
  607. package/src/search/sync/index.ts +35 -20
  608. package/src/search/sync/orama-cloud.ts +12 -9
  609. package/src/search/sync/typesense.ts +15 -13
  610. package/src/sources/contentful.ts +63 -0
  611. package/src/sources/custom.ts +38 -0
  612. package/src/sources/filesystem.ts +51 -0
  613. package/src/sources/github-releases.ts +52 -0
  614. package/src/sources/index.ts +60 -0
  615. package/src/sources/mdx-remote.ts +76 -0
  616. package/src/sources/notion.ts +63 -0
  617. package/src/sources/obsidian.ts +38 -0
  618. package/src/sources/payload.ts +60 -0
  619. package/src/sources/registry.ts +182 -0
  620. package/src/sources/sanity.ts +66 -0
  621. package/src/sources/shared.ts +52 -0
  622. package/src/sources/strapi.ts +58 -0
  623. package/src/theme/entry.ts +24 -2
  624. package/src/translate/report.ts +40 -7
  625. package/src/upgrade/upgrade.ts +499 -0
  626. package/dist/cli/chunk-0qymqwzz.js +0 -164
  627. package/dist/cli/chunk-0qymqwzz.js.map +0 -15
  628. package/dist/cli/chunk-1jefwnfs.js.map +0 -48
  629. package/dist/cli/chunk-2mzebbbz.js +0 -69
  630. package/dist/cli/chunk-2z47ypj8.js.map +0 -11
  631. package/dist/cli/chunk-4x36ddpw.js.map +0 -11
  632. package/dist/cli/chunk-5093q3n7.js +0 -68
  633. package/dist/cli/chunk-5093q3n7.js.map +0 -10
  634. package/dist/cli/chunk-5qk08vmp.js.map +0 -11
  635. package/dist/cli/chunk-7s8hm3b6.js +0 -5347
  636. package/dist/cli/chunk-7s8hm3b6.js.map +0 -58
  637. package/dist/cli/chunk-8cjtbafj.js.map +0 -13
  638. package/dist/cli/chunk-97r59kpr.js +0 -381
  639. package/dist/cli/chunk-97r59kpr.js.map +0 -12
  640. package/dist/cli/chunk-ahnw3kxw.js.map +0 -15
  641. package/dist/cli/chunk-b27xqwn9.js.map +0 -10
  642. package/dist/cli/chunk-bf6bt1xt.js +0 -185
  643. package/dist/cli/chunk-bf6bt1xt.js.map +0 -11
  644. package/dist/cli/chunk-cjtn640a.js.map +0 -10
  645. package/dist/cli/chunk-ct47dqpx.js.map +0 -11
  646. package/dist/cli/chunk-esphfr8p.js +0 -107
  647. package/dist/cli/chunk-esphfr8p.js.map +0 -11
  648. package/dist/cli/chunk-ex56aa81.js +0 -1016
  649. package/dist/cli/chunk-ex56aa81.js.map +0 -13
  650. package/dist/cli/chunk-garjf5z9.js +0 -30
  651. package/dist/cli/chunk-garjf5z9.js.map +0 -10
  652. package/dist/cli/chunk-js7saxwm.js +0 -1045
  653. package/dist/cli/chunk-js7saxwm.js.map +0 -22
  654. package/dist/cli/chunk-k79xp7av.js.map +0 -39
  655. package/dist/cli/chunk-ps4m1xh4.js.map +0 -15
  656. package/dist/cli/chunk-q4rae3bg.js +0 -60
  657. package/dist/cli/chunk-q4rae3bg.js.map +0 -10
  658. package/dist/cli/chunk-rz9jmfhz.js +0 -108
  659. package/dist/cli/chunk-rz9jmfhz.js.map +0 -10
  660. package/dist/cli/chunk-vh9w1sgp.js +0 -73
  661. package/dist/cli/chunk-vh9w1sgp.js.map +0 -10
  662. package/dist/cli/chunk-vrfp10qk.js +0 -81
  663. package/dist/cli/chunk-vrfp10qk.js.map +0 -10
  664. package/dist/cli/chunk-yg63d42r.js.map +0 -34
  665. package/docs/advanced/api-reference.mdx +0 -240
  666. package/docs/reference/cli.mdx +0 -197
  667. package/skills/blume-migrate/assets/oxfmt@0.55.0.patch +0 -20
  668. package/src/components/content/changelog-element.ts +0 -69
  669. package/src/search/providers.ts +0 -91
  670. /package/dist/cli/{chunk-e7f42gdj.js.map → chunk-7ez8ny0t.js.map} +0 -0
  671. /package/dist/cli/{chunk-nn13znc2.js.map → chunk-88cpgt6h.js.map} +0 -0
  672. /package/dist/cli/{chunk-vacwm2hv.js.map → chunk-f7t03s3g.js.map} +0 -0
  673. /package/dist/cli/{chunk-dwgcp5sm.js.map → chunk-zxccj738.js.map} +0 -0
@@ -0,0 +1,191 @@
1
+ import type { JsonObject } from "./json.ts";
2
+ import { asNumber, asObject, asString, getPath, objectsIn } from "./json.ts";
3
+ import type { RemoteFieldMap, RestClient } from "./remote.ts";
4
+ import {
5
+ documentEntry,
6
+ fetchJson,
7
+ queryString,
8
+ remoteSource,
9
+ } from "./remote.ts";
10
+ import { strapiBlocksToMarkdown } from "./strapi-blocks.ts";
11
+ import type { ContentSource, SourceContext, SourceEntry } from "./types.ts";
12
+
13
+ export interface StrapiSourceOptions {
14
+ name: string;
15
+ prefix?: string;
16
+ /** The Strapi origin (`https://cms.acme.dev`); its REST API is at `/api`. */
17
+ url: string;
18
+ /** The content type's plural API id (`articles`). */
19
+ contentType: string;
20
+ /** Locale code to fetch, for a localized content type. */
21
+ locale?: string;
22
+ /** The `populate` parameter; default `*`, which fills media and relations. */
23
+ populate?: string;
24
+ /**
25
+ * Field paths mapping an entry onto Blume meta + body. Defaults:
26
+ * `title`, `description`, `slug`, `content`, `updatedAt`.
27
+ */
28
+ fields?: RemoteFieldMap;
29
+ /** Extra query parameters for the request (`filters[...]`, `sort`). */
30
+ params?: Record<string, string>;
31
+ /** API token; defaults to `STRAPI_API_TOKEN`. */
32
+ token?: string;
33
+ /** Opt-in dev polling interval (seconds); omit to freeze for the session. */
34
+ pollInterval?: number;
35
+ /** Injected for tests; defaults to the global `fetch`. */
36
+ fetchImpl?: typeof fetch;
37
+ }
38
+
39
+ const PAGE_SIZE = 100;
40
+
41
+ const DEFAULT_FIELDS: Required<RemoteFieldMap> = {
42
+ body: "content",
43
+ description: "description",
44
+ lastModified: "updatedAt",
45
+ slug: "slug",
46
+ title: "title",
47
+ };
48
+
49
+ /**
50
+ * The entry as a flat document. Strapi 5 returns fields at the top level
51
+ * beside `documentId`; Strapi 4 wraps them in `attributes` under a numeric
52
+ * `id`, and that envelope is flattened so the same field paths apply.
53
+ */
54
+ const flatten = (item: JsonObject): JsonObject => {
55
+ const attributes = asObject(item.attributes);
56
+ return attributes ? { ...attributes, id: item.id ?? null } : item;
57
+ };
58
+
59
+ const idOf = (doc: JsonObject): string => {
60
+ const raw = doc.documentId ?? doc.id;
61
+ return asString(raw) ?? String(asNumber(raw) ?? "");
62
+ };
63
+
64
+ /** Every entry one query returns, across its pages, flattened. */
65
+ interface StrapiListing {
66
+ docs: JsonObject[];
67
+ /** Whether any entry came in Strapi 4's `attributes` envelope. */
68
+ v4: boolean;
69
+ }
70
+
71
+ /** Strapi 4 marks an unpublished entry with a null `publishedAt`. */
72
+ const unpublished = (doc: JsonObject): boolean => doc.publishedAt === null;
73
+
74
+ /**
75
+ * Strapi content source. Pages through a content type's REST endpoint, maps
76
+ * each entry's fields to frontmatter, and lowers its Blocks body to
77
+ * Markdown. Published entries only, unless `--preview` asks for drafts.
78
+ */
79
+ export const strapiSource = (
80
+ options: StrapiSourceOptions,
81
+ ctx?: SourceContext
82
+ ): ContentSource => {
83
+ const fields = { ...DEFAULT_FIELDS, ...options.fields };
84
+ const origin = options.url.replace(/\/+$/u, "");
85
+
86
+ const fetchEntries = async (): Promise<SourceEntry[]> => {
87
+ const token = options.token ?? process.env.STRAPI_API_TOKEN;
88
+ const client: RestClient = {
89
+ fetchImpl: options.fetchImpl,
90
+ headers: token ? { authorization: `Bearer ${token}` } : {},
91
+ };
92
+ const base = `${origin}/api/${options.contentType}`;
93
+
94
+ const list = async (
95
+ publication: Record<string, string>
96
+ ): Promise<StrapiListing> => {
97
+ const listing: StrapiListing = { docs: [], v4: false };
98
+ let page = 1;
99
+ let more = true;
100
+ while (more) {
101
+ // The user's params go first so the paging controls always win — a
102
+ // `params` key that shadowed them would refetch the same page forever.
103
+ const query = queryString({
104
+ ...options.params,
105
+ locale: options.locale,
106
+ "pagination[pageSize]": String(PAGE_SIZE),
107
+ "pagination[page]": String(page),
108
+ populate: options.populate ?? "*",
109
+ ...publication,
110
+ });
111
+ // oxlint-disable-next-line no-await-in-loop -- pages are sequential: each response says whether another exists.
112
+ const result = asObject(await fetchJson(`${base}?${query}`, client));
113
+ if (!result) {
114
+ throw new Error("Strapi returned a non-object response");
115
+ }
116
+ const items = objectsIn(result.data);
117
+ for (const item of items) {
118
+ listing.v4 ||= asObject(item.attributes) !== undefined;
119
+ listing.docs.push(flatten(item));
120
+ }
121
+ const pageCount =
122
+ asNumber(getPath(result, "meta.pagination.pageCount")) ?? 1;
123
+ more = items.length > 0 && page < pageCount;
124
+ page += 1;
125
+ }
126
+ return listing;
127
+ };
128
+
129
+ const toEntries = (
130
+ docs: JsonObject[],
131
+ isDraft: (doc: JsonObject) => boolean
132
+ ): SourceEntry[] =>
133
+ docs.map((doc) =>
134
+ documentEntry(
135
+ doc,
136
+ fields,
137
+ idOf(doc),
138
+ (body) => strapiBlocksToMarkdown(body, { baseUrl: origin }),
139
+ isDraft(doc)
140
+ )
141
+ );
142
+
143
+ // The default publication state is the published one in both Strapi 4
144
+ // and 5, and its response shape says which version is answering.
145
+ const published = await list({});
146
+ if (!ctx?.preview) {
147
+ return toEntries(published.docs, () => false);
148
+ }
149
+ // Strapi 4 previews with `publicationState=preview`, which returns drafts
150
+ // and published entries together, a draft's `publishedAt` being null.
151
+ if (published.v4) {
152
+ const previewed = await list({ publicationState: "preview" });
153
+ return toEntries(previewed.docs, unpublished);
154
+ }
155
+ // Strapi 5 answers `status=draft` with the draft version of every
156
+ // document, `publishedAt` null even when a published version exists, so a
157
+ // document is a draft only when it has no published version.
158
+ const drafts = await list({ status: "draft" });
159
+ if (drafts.docs.length === 0 && published.docs.length === 0) {
160
+ // Strapi 4 ignores `status`, so a Strapi 4 content type holding only
161
+ // drafts reads as empty on both requests. Ask with its own parameter;
162
+ // Strapi 5 either ignores it or rejects it (`strictParams`), and in
163
+ // both cases has nothing more to return.
164
+ const previewed = await list({ publicationState: "preview" }).catch(
165
+ () => null
166
+ );
167
+ return previewed ? toEntries(previewed.docs, unpublished) : [];
168
+ }
169
+ const publishedIds = new Set(published.docs.map(idOf));
170
+ const draftIds = new Set(drafts.docs.map(idOf));
171
+ // A published document with no draft version (a content type without
172
+ // Draft & Publish) still belongs in the preview.
173
+ return [
174
+ ...toEntries(drafts.docs, (doc) => !publishedIds.has(idOf(doc))),
175
+ ...toEntries(
176
+ published.docs.filter((doc) => !draftIds.has(idOf(doc))),
177
+ () => false
178
+ ),
179
+ ];
180
+ };
181
+
182
+ return remoteSource(
183
+ {
184
+ fetchEntries,
185
+ name: options.name,
186
+ pollInterval: options.pollInterval,
187
+ prefix: options.prefix,
188
+ },
189
+ ctx
190
+ );
191
+ };
@@ -117,6 +117,12 @@ export interface ContentSource {
117
117
  readonly staged: boolean;
118
118
  /** Optional route prefix; the source's routes namespace under `/<prefix>/`. */
119
119
  readonly prefix?: string;
120
+ /**
121
+ * True for a source whose entries exist in one language and can never be
122
+ * translated (GitHub Releases). Its pages render without a language
123
+ * switcher, since every other locale would only repeat the same text.
124
+ */
125
+ readonly monolingual?: boolean;
120
126
  /**
121
127
  * Resolved on-disk root, set by sources whose entries live on disk. For
122
128
  * filesystem sources it drives folder-meta discovery (scan under this root)
@@ -141,7 +147,12 @@ export interface ContentSource {
141
147
 
142
148
  /** Context passed to `normalizeEntry`, describing the owning source. */
143
149
  export interface NormalizeContext {
144
- source: { name: string; prefix?: string; staged: boolean };
150
+ source: {
151
+ monolingual?: boolean;
152
+ name: string;
153
+ prefix?: string;
154
+ staged: boolean;
155
+ };
145
156
  /** Site-wide route mount point (`""` or `/seg`), prepended to every route. */
146
157
  basePath?: string;
147
158
  defaultType: string;
package/src/core/types.ts CHANGED
@@ -154,6 +154,11 @@ export interface PageRecord {
154
154
  * checks skip these.
155
155
  */
156
156
  fallback?: boolean;
157
+ /**
158
+ * True for pages from a source that publishes one language only (GitHub
159
+ * Releases): they render without a language switcher.
160
+ */
161
+ monolingual?: boolean;
157
162
  /**
158
163
  * Content-relative path with the leading locale directory stripped, used for
159
164
  * sidebar grouping so the locale dir is not surfaced as a nav group. Equals
@@ -313,6 +318,13 @@ export interface Navigation {
313
318
  featured: FeaturedLink[];
314
319
  /** Repo URL for the header link, or null when hidden (`navigation.repo`). */
315
320
  repoUrl?: string | null;
321
+ /**
322
+ * Where the header's brand link points in this locale: `logo.href` moved
323
+ * into the locale's prefix when the locale serves that route, else left on
324
+ * the default route (a custom home page exists only at `/`). Set on i18n
325
+ * locale trees.
326
+ */
327
+ brandHref?: string;
316
328
  }
317
329
 
318
330
  /** The full content graph: the source of truth for generated modules. */
@@ -399,6 +411,8 @@ export interface RouteManifestEntry {
399
411
  versionAlternates: VersionAlternate[];
400
412
  /** True when this route renders fallback content for a missing translation. */
401
413
  fallback?: boolean;
414
+ /** True when the page's source publishes one language only (no switcher). */
415
+ monolingual?: boolean;
402
416
  /** Resolved "last updated" ISO date, when the feature is enabled. */
403
417
  lastModified?: string;
404
418
  }
@@ -409,6 +423,6 @@ export interface BlumeManifest {
409
423
  blumeVersion: string;
410
424
  projectRoot: string;
411
425
  contentRoot: string;
412
- output: ResolvedConfig["deployment"]["output"];
426
+ output: ResolvedConfig["deployment"]["options"]["output"];
413
427
  routes: RouteManifestEntry[];
414
428
  }
@@ -41,10 +41,13 @@ export const ar: UIStringsOverride = {
41
41
  banner: { dismiss: "إغلاق الإعلان" },
42
42
  changelog: {
43
43
  description: "تحديثات المنتج وملاحظات الإصدارات.",
44
- showReleases: "عرض إصدارات {version}",
45
44
  title: "سجل التغييرات",
46
45
  },
47
- content: { diagramError: "تعذّر عرض هذا المخطط." },
46
+ content: {
47
+ copyColor: "نسخ اللون {name} {value}",
48
+ copyPrompt: "نسخ الموجّه",
49
+ diagramError: "تعذّر عرض هذا المخطط.",
50
+ },
48
51
  feedback: {
49
52
  no: "لا",
50
53
  question: "هل كانت هذه الصفحة مفيدة؟",
@@ -60,6 +63,7 @@ export const ar: UIStringsOverride = {
60
63
  featured: "مميز",
61
64
  githubRepository: "مستودع GitHub",
62
65
  navigation: "التنقل",
66
+ opensInNewTab: "يفتح في علامة تبويب جديدة",
63
67
  primary: "رئيسي",
64
68
  sections: "الأقسام",
65
69
  toggleNavigation: "تبديل التنقل",
@@ -42,10 +42,13 @@ export const bg: UIStringsOverride = {
42
42
  banner: { dismiss: "Затваряне на съобщението" },
43
43
  changelog: {
44
44
  description: "Актуализации на продукта и бележки към изданията.",
45
- showReleases: "Покажи изданията на {version}",
46
45
  title: "Дневник на промените",
47
46
  },
48
- content: { diagramError: "Тази диаграма не можа да бъде показана." },
47
+ content: {
48
+ copyColor: "Копирай цвета {name} {value}",
49
+ copyPrompt: "Копирай подканата",
50
+ diagramError: "Тази диаграма не можа да бъде показана.",
51
+ },
49
52
  feedback: {
50
53
  no: "Не",
51
54
  question: "Беше ли полезна тази страница?",
@@ -61,6 +64,7 @@ export const bg: UIStringsOverride = {
61
64
  featured: "Препоръчано",
62
65
  githubRepository: "Хранилище в GitHub",
63
66
  navigation: "Навигация",
67
+ opensInNewTab: "Отваря се в нов раздел",
64
68
  primary: "Основно",
65
69
  sections: "Раздели",
66
70
  toggleNavigation: "Превключи навигацията",
@@ -41,10 +41,13 @@ export const bn: UIStringsOverride = {
41
41
  banner: { dismiss: "ঘোষণা বন্ধ করুন" },
42
42
  changelog: {
43
43
  description: "পণ্য আপডেট এবং রিলিজ নোট।",
44
- showReleases: "{version} রিলিজ দেখান",
45
44
  title: "পরিবর্তন লগ",
46
45
  },
47
- content: { diagramError: "এই ডায়াগ্রামটি রেন্ডার করা যায়নি।" },
46
+ content: {
47
+ copyColor: "{name} রং {value} অনুলিপি করুন",
48
+ copyPrompt: "প্রম্পট অনুলিপি করুন",
49
+ diagramError: "এই ডায়াগ্রামটি রেন্ডার করা যায়নি।",
50
+ },
48
51
  feedback: {
49
52
  no: "না",
50
53
  question: "এই পৃষ্ঠাটি কি সহায়ক ছিল?",
@@ -60,6 +63,7 @@ export const bn: UIStringsOverride = {
60
63
  featured: "ফিচার্ড",
61
64
  githubRepository: "GitHub রিপোজিটরি",
62
65
  navigation: "নেভিগেশন",
66
+ opensInNewTab: "নতুন ট্যাবে খোলে",
63
67
  primary: "প্রধান",
64
68
  sections: "বিভাগসমূহ",
65
69
  toggleNavigation: "নেভিগেশন টগল করুন",
@@ -42,10 +42,11 @@ export const ca: UIStringsOverride = {
42
42
  banner: { dismiss: "Tanca l'anunci" },
43
43
  changelog: {
44
44
  description: "Actualitzacions del producte i notes de la versió.",
45
- showReleases: "Mostra les versions {version}",
46
45
  title: "Registre de canvis",
47
46
  },
48
47
  content: {
48
+ copyColor: "Copia el color {name} {value}",
49
+ copyPrompt: "Copia la indicació",
49
50
  diagramError: "No s'ha pogut mostrar aquest diagrama.",
50
51
  },
51
52
  feedback: {
@@ -63,6 +64,7 @@ export const ca: UIStringsOverride = {
63
64
  featured: "Destacat",
64
65
  githubRepository: "Repositori de GitHub",
65
66
  navigation: "Navegació",
67
+ opensInNewTab: "S'obre en una pestanya nova",
66
68
  primary: "Principal",
67
69
  sections: "Seccions",
68
70
  toggleNavigation: "Mostra o amaga la navegació",
@@ -41,10 +41,13 @@ export const cs: UIStringsOverride = {
41
41
  banner: { dismiss: "Zavřít oznámení" },
42
42
  changelog: {
43
43
  description: "Novinky produktu a poznámky k vydání.",
44
- showReleases: "Zobrazit vydání {version}",
45
44
  title: "Seznam změn",
46
45
  },
47
- content: { diagramError: "Tento diagram se nepodařilo vykreslit." },
46
+ content: {
47
+ copyColor: "Kopírovat barvu {name} {value}",
48
+ copyPrompt: "Kopírovat prompt",
49
+ diagramError: "Tento diagram se nepodařilo vykreslit.",
50
+ },
48
51
  feedback: {
49
52
  no: "Ne",
50
53
  question: "Byla tato stránka užitečná?",
@@ -60,6 +63,7 @@ export const cs: UIStringsOverride = {
60
63
  featured: "Doporučené",
61
64
  githubRepository: "Repozitář na GitHubu",
62
65
  navigation: "Navigace",
66
+ opensInNewTab: "Otevře se na nové kartě",
63
67
  primary: "Hlavní",
64
68
  sections: "Sekce",
65
69
  toggleNavigation: "Přepnout navigaci",
@@ -41,10 +41,13 @@ export const da: UIStringsOverride = {
41
41
  banner: { dismiss: "Luk meddelelsen" },
42
42
  changelog: {
43
43
  description: "Produktopdateringer og udgivelsesnoter.",
44
- showReleases: "Vis udgivelser for {version}",
45
44
  title: "Ændringslog",
46
45
  },
47
- content: { diagramError: "Dette diagram kunne ikke vises." },
46
+ content: {
47
+ copyColor: "Kopiér farven {name} {value}",
48
+ copyPrompt: "Kopiér prompt",
49
+ diagramError: "Dette diagram kunne ikke vises.",
50
+ },
48
51
  feedback: {
49
52
  no: "Nej",
50
53
  question: "Var denne side nyttig?",
@@ -60,6 +63,7 @@ export const da: UIStringsOverride = {
60
63
  featured: "Udvalgt",
61
64
  githubRepository: "GitHub-repositorium",
62
65
  navigation: "Navigation",
66
+ opensInNewTab: "Åbner i en ny fane",
63
67
  primary: "Primær",
64
68
  sections: "Sektioner",
65
69
  toggleNavigation: "Vis eller skjul navigationen",
@@ -42,10 +42,13 @@ export const de: UIStringsOverride = {
42
42
  banner: { dismiss: "Ankündigung schließen" },
43
43
  changelog: {
44
44
  description: "Produkt-Updates und Versionshinweise.",
45
- showReleases: "Releases für {version} anzeigen",
46
45
  title: "Änderungsprotokoll",
47
46
  },
48
- content: { diagramError: "Dieses Diagramm konnte nicht dargestellt werden." },
47
+ content: {
48
+ copyColor: "Farbe {name} {value} kopieren",
49
+ copyPrompt: "Prompt kopieren",
50
+ diagramError: "Dieses Diagramm konnte nicht dargestellt werden.",
51
+ },
49
52
  feedback: {
50
53
  no: "Nein",
51
54
  question: "War diese Seite hilfreich?",
@@ -61,6 +64,7 @@ export const de: UIStringsOverride = {
61
64
  featured: "Empfohlen",
62
65
  githubRepository: "GitHub-Repository",
63
66
  navigation: "Navigation",
67
+ opensInNewTab: "Öffnet sich in einem neuen Tab",
64
68
  primary: "Primär",
65
69
  sections: "Abschnitte",
66
70
  toggleNavigation: "Navigation umschalten",
@@ -42,10 +42,11 @@ export const el: UIStringsOverride = {
42
42
  banner: { dismiss: "Κλείσιμο ανακοίνωσης" },
43
43
  changelog: {
44
44
  description: "Ενημερώσεις προϊόντος και σημειώσεις έκδοσης.",
45
- showReleases: "Εμφάνιση εκδόσεων {version}",
46
45
  title: "Ιστορικό αλλαγών",
47
46
  },
48
47
  content: {
48
+ copyColor: "Αντιγραφή χρώματος {name} {value}",
49
+ copyPrompt: "Αντιγραφή προτροπής",
49
50
  diagramError: "Δεν ήταν δυνατή η απόδοση αυτού του διαγράμματος.",
50
51
  },
51
52
  feedback: {
@@ -63,6 +64,7 @@ export const el: UIStringsOverride = {
63
64
  featured: "Προτεινόμενα",
64
65
  githubRepository: "Αποθετήριο GitHub",
65
66
  navigation: "Πλοήγηση",
67
+ opensInNewTab: "Ανοίγει σε νέα καρτέλα",
66
68
  primary: "Κύρια",
67
69
  sections: "Ενότητες",
68
70
  toggleNavigation: "Εναλλαγή πλοήγησης",
@@ -42,10 +42,11 @@ export const es: UIStringsOverride = {
42
42
  banner: { dismiss: "Cerrar el anuncio" },
43
43
  changelog: {
44
44
  description: "Novedades del producto y notas de la versión.",
45
- showReleases: "Mostrar versiones {version}",
46
45
  title: "Registro de cambios",
47
46
  },
48
47
  content: {
48
+ copyColor: "Copiar el color {name} {value}",
49
+ copyPrompt: "Copiar prompt",
49
50
  diagramError: "No se pudo mostrar este diagrama.",
50
51
  },
51
52
  feedback: {
@@ -63,6 +64,7 @@ export const es: UIStringsOverride = {
63
64
  featured: "Destacado",
64
65
  githubRepository: "Repositorio de GitHub",
65
66
  navigation: "Navegación",
67
+ opensInNewTab: "Se abre en una pestaña nueva",
66
68
  primary: "Principal",
67
69
  sections: "Secciones",
68
70
  toggleNavigation: "Mostrar u ocultar la navegación",
@@ -41,10 +41,13 @@ export const fa: UIStringsOverride = {
41
41
  banner: { dismiss: "بستن اطلاعیه" },
42
42
  changelog: {
43
43
  description: "به‌روزرسانی‌های محصول و یادداشت‌های انتشار.",
44
- showReleases: "نمایش انتشارهای {version}",
45
44
  title: "گزارش تغییرات",
46
45
  },
47
- content: { diagramError: "نمایش این نمودار ممکن نشد." },
46
+ content: {
47
+ copyColor: "کپی رنگ {name} {value}",
48
+ copyPrompt: "کپی پرامپت",
49
+ diagramError: "نمایش این نمودار ممکن نشد.",
50
+ },
48
51
  feedback: {
49
52
  no: "خیر",
50
53
  question: "آیا این صفحه مفید بود؟",
@@ -60,6 +63,7 @@ export const fa: UIStringsOverride = {
60
63
  featured: "ویژه",
61
64
  githubRepository: "مخزن GitHub",
62
65
  navigation: "ناوبری",
66
+ opensInNewTab: "در زبانه‌ای جدید باز می‌شود",
63
67
  primary: "اصلی",
64
68
  sections: "بخش‌ها",
65
69
  toggleNavigation: "تغییر وضعیت ناوبری",
@@ -41,10 +41,13 @@ export const fi: UIStringsOverride = {
41
41
  banner: { dismiss: "Sulje ilmoitus" },
42
42
  changelog: {
43
43
  description: "Tuotepäivitykset ja julkaisutiedot.",
44
- showReleases: "Näytä version {version} julkaisut",
45
44
  title: "Muutosloki",
46
45
  },
47
- content: { diagramError: "Tätä kaaviota ei voitu näyttää." },
46
+ content: {
47
+ copyColor: "Kopioi väri {name} {value}",
48
+ copyPrompt: "Kopioi kehote",
49
+ diagramError: "Tätä kaaviota ei voitu näyttää.",
50
+ },
48
51
  feedback: {
49
52
  no: "Ei",
50
53
  question: "Oliko tästä sivusta apua?",
@@ -60,6 +63,7 @@ export const fi: UIStringsOverride = {
60
63
  featured: "Suositellut",
61
64
  githubRepository: "GitHub-repositorio",
62
65
  navigation: "Navigaatio",
66
+ opensInNewTab: "Avautuu uudelle välilehdelle",
63
67
  primary: "Ensisijainen",
64
68
  sections: "Osiot",
65
69
  toggleNavigation: "Näytä tai piilota navigaatio",
@@ -42,10 +42,11 @@ export const fr: UIStringsOverride = {
42
42
  banner: { dismiss: "Fermer l'annonce" },
43
43
  changelog: {
44
44
  description: "Nouveautés du produit et notes de version.",
45
- showReleases: "Afficher les versions {version}",
46
45
  title: "Journal des modifications",
47
46
  },
48
47
  content: {
48
+ copyColor: "Copier la couleur {name} {value}",
49
+ copyPrompt: "Copier le prompt",
49
50
  diagramError: "Impossible d'afficher ce diagramme.",
50
51
  },
51
52
  feedback: {
@@ -63,6 +64,7 @@ export const fr: UIStringsOverride = {
63
64
  featured: "En vedette",
64
65
  githubRepository: "Dépôt GitHub",
65
66
  navigation: "Navigation",
67
+ opensInNewTab: "S'ouvre dans un nouvel onglet",
66
68
  primary: "Principal",
67
69
  sections: "Sections",
68
70
  toggleNavigation: "Afficher ou masquer la navigation",
@@ -41,10 +41,13 @@ export const he: UIStringsOverride = {
41
41
  banner: { dismiss: "סגירת ההודעה" },
42
42
  changelog: {
43
43
  description: "עדכוני מוצר והערות גרסה.",
44
- showReleases: "הצג גרסאות {version}",
45
44
  title: "יומן שינויים",
46
45
  },
47
- content: { diagramError: "לא ניתן להציג את התרשים הזה." },
46
+ content: {
47
+ copyColor: "העתק את הצבע {name} {value}",
48
+ copyPrompt: "העתק הנחיה",
49
+ diagramError: "לא ניתן להציג את התרשים הזה.",
50
+ },
48
51
  feedback: {
49
52
  no: "לא",
50
53
  question: "האם העמוד הזה היה מועיל?",
@@ -60,6 +63,7 @@ export const he: UIStringsOverride = {
60
63
  featured: "מומלץ",
61
64
  githubRepository: "מאגר GitHub",
62
65
  navigation: "ניווט",
66
+ opensInNewTab: "נפתח בכרטיסייה חדשה",
63
67
  primary: "ראשי",
64
68
  sections: "מקטעים",
65
69
  toggleNavigation: "החלף מצב ניווט",
@@ -41,10 +41,13 @@ export const hi: UIStringsOverride = {
41
41
  banner: { dismiss: "घोषणा बंद करें" },
42
42
  changelog: {
43
43
  description: "उत्पाद अपडेट और रिलीज़ नोट्स।",
44
- showReleases: "{version} रिलीज़ दिखाएँ",
45
44
  title: "परिवर्तन लॉग",
46
45
  },
47
- content: { diagramError: "यह डायग्राम रेंडर नहीं हो सका।" },
46
+ content: {
47
+ copyColor: "{name} रंग {value} कॉपी करें",
48
+ copyPrompt: "प्रॉम्प्ट कॉपी करें",
49
+ diagramError: "यह डायग्राम रेंडर नहीं हो सका।",
50
+ },
48
51
  feedback: {
49
52
  no: "नहीं",
50
53
  question: "क्या यह पेज सहायक था?",
@@ -60,6 +63,7 @@ export const hi: UIStringsOverride = {
60
63
  featured: "फ़ीचर्ड",
61
64
  githubRepository: "GitHub रिपॉज़िटरी",
62
65
  navigation: "नेविगेशन",
66
+ opensInNewTab: "नए टैब में खुलता है",
63
67
  primary: "प्राथमिक",
64
68
  sections: "अनुभाग",
65
69
  toggleNavigation: "नेविगेशन टॉगल करें",
@@ -42,10 +42,13 @@ export const hr: UIStringsOverride = {
42
42
  banner: { dismiss: "Zatvori obavijest" },
43
43
  changelog: {
44
44
  description: "Ažuriranja proizvoda i napomene o izdanjima.",
45
- showReleases: "Prikaži izdanja {version}",
46
45
  title: "Popis promjena",
47
46
  },
48
- content: { diagramError: "Ovaj dijagram nije moguće prikazati." },
47
+ content: {
48
+ copyColor: "Kopiraj boju {name} {value}",
49
+ copyPrompt: "Kopiraj upit",
50
+ diagramError: "Ovaj dijagram nije moguće prikazati.",
51
+ },
49
52
  feedback: {
50
53
  no: "Ne",
51
54
  question: "Je li vam ova stranica bila korisna?",
@@ -61,6 +64,7 @@ export const hr: UIStringsOverride = {
61
64
  featured: "Istaknuto",
62
65
  githubRepository: "GitHub repozitorij",
63
66
  navigation: "Navigacija",
67
+ opensInNewTab: "Otvara se u novoj kartici",
64
68
  primary: "Glavna",
65
69
  sections: "Odjeljci",
66
70
  toggleNavigation: "Otvori ili zatvori navigaciju",
@@ -42,10 +42,13 @@ export const hu: UIStringsOverride = {
42
42
  banner: { dismiss: "Közlemény bezárása" },
43
43
  changelog: {
44
44
  description: "Termékfrissítések és kiadási megjegyzések.",
45
- showReleases: "{version} kiadások megjelenítése",
46
45
  title: "Változásnapló",
47
46
  },
48
- content: { diagramError: "Ezt a diagramot nem sikerült megjeleníteni." },
47
+ content: {
48
+ copyColor: "{name} szín másolása: {value}",
49
+ copyPrompt: "Prompt másolása",
50
+ diagramError: "Ezt a diagramot nem sikerült megjeleníteni.",
51
+ },
49
52
  feedback: {
50
53
  no: "Nem",
51
54
  question: "Hasznos volt ez az oldal?",
@@ -61,6 +64,7 @@ export const hu: UIStringsOverride = {
61
64
  featured: "Kiemelt",
62
65
  githubRepository: "GitHub-tároló",
63
66
  navigation: "Navigáció",
67
+ opensInNewTab: "Új lapon nyílik meg",
64
68
  primary: "Elsődleges",
65
69
  sections: "Szakaszok",
66
70
  toggleNavigation: "Navigáció ki-/bekapcsolása",
@@ -42,10 +42,13 @@ export const id: UIStringsOverride = {
42
42
  banner: { dismiss: "Tutup pengumuman" },
43
43
  changelog: {
44
44
  description: "Pembaruan produk dan catatan rilis.",
45
- showReleases: "Tampilkan rilis {version}",
46
45
  title: "Log perubahan",
47
46
  },
48
- content: { diagramError: "Tidak dapat menampilkan diagram ini." },
47
+ content: {
48
+ copyColor: "Salin warna {name} {value}",
49
+ copyPrompt: "Salin prompt",
50
+ diagramError: "Tidak dapat menampilkan diagram ini.",
51
+ },
49
52
  feedback: {
50
53
  no: "Tidak",
51
54
  question: "Apakah halaman ini membantu?",
@@ -61,6 +64,7 @@ export const id: UIStringsOverride = {
61
64
  featured: "Unggulan",
62
65
  githubRepository: "Repositori GitHub",
63
66
  navigation: "Navigasi",
67
+ opensInNewTab: "Terbuka di tab baru",
64
68
  primary: "Utama",
65
69
  sections: "Bagian",
66
70
  toggleNavigation: "Buka/tutup navigasi",